72 lines
2.0 KiB
TypeScript
72 lines
2.0 KiB
TypeScript
import { ApiVersion } from "./ApiVersion.js";
|
|
|
|
export interface VersionMetadata {
|
|
semver: ApiVersion;
|
|
calver: string;
|
|
releasedAt: number;
|
|
description: string;
|
|
deprecated?: boolean;
|
|
migrateToVersion?: ApiVersion;
|
|
}
|
|
|
|
/**
|
|
* Version Registry (descending order - newest first)
|
|
* SemVer ↔ CalVer mappings and metadata
|
|
*/
|
|
export const VERSION_REGISTRY: Record<ApiVersion, VersionMetadata> = {
|
|
[ApiVersion.V2_3]: {
|
|
semver: ApiVersion.V2_3,
|
|
calver: "2026-05-13",
|
|
releasedAt: new Date("2026-05-13").getTime(),
|
|
description: "Cursor pagination on list endpoints",
|
|
},
|
|
[ApiVersion.V2_2]: {
|
|
semver: ApiVersion.V2_2,
|
|
calver: "2026-03-18",
|
|
releasedAt: new Date("2026-03-18").getTime(),
|
|
description: "Customer eligibility with attach_action and status",
|
|
},
|
|
[ApiVersion.V2_1]: {
|
|
semver: ApiVersion.V2_1,
|
|
calver: "2026-03-17",
|
|
releasedAt: new Date("2026-03-17").getTime(),
|
|
description: "Plan items with max_purchase",
|
|
},
|
|
[ApiVersion.V2_0]: {
|
|
semver: ApiVersion.V2_0,
|
|
calver: "2026-03-16",
|
|
releasedAt: new Date("2026-03-16").getTime(),
|
|
description: "Plan features with max_purchase",
|
|
},
|
|
[ApiVersion.V1_Beta]: {
|
|
semver: ApiVersion.V1_Beta,
|
|
calver: "beta",
|
|
releasedAt: new Date("2025-06-01").getTime(),
|
|
description: "Beta version with experimental features",
|
|
},
|
|
[ApiVersion.V1_2]: {
|
|
semver: ApiVersion.V1_2,
|
|
calver: "2025-05-05",
|
|
releasedAt: new Date("2025-05-05").getTime(),
|
|
description: "Features as object (keyed by feature_id)",
|
|
},
|
|
[ApiVersion.V1_1]: {
|
|
semver: ApiVersion.V1_1,
|
|
calver: "2025-04-17",
|
|
releasedAt: new Date("2025-04-17").getTime(),
|
|
description: "Merged customer response, features as array",
|
|
},
|
|
[ApiVersion.V0_2]: {
|
|
semver: ApiVersion.V0_2,
|
|
calver: "2025-04-01",
|
|
releasedAt: new Date("2025-04-01").getTime(),
|
|
description: "Customer products with items field",
|
|
},
|
|
[ApiVersion.V0_1]: {
|
|
semver: ApiVersion.V0_1,
|
|
calver: "2025-02-01",
|
|
releasedAt: new Date("2025-02-01").getTime(),
|
|
description: "Original customer schema",
|
|
},
|
|
};
|