@palantir/pack.document-schema.type-gen 0.32.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +7 -0
  2. package/build/esm/commands/ir/__tests__/irDeployFirstParty.test.js +1 -1
  3. package/build/esm/commands/ir/__tests__/irDeployFirstParty.test.js.map +1 -1
  4. package/build/esm/commands/ir/__tests__/irUpdateSchemaHandler.test.js +96 -0
  5. package/build/esm/commands/ir/__tests__/irUpdateSchemaHandler.test.js.map +1 -0
  6. package/build/esm/commands/ir/__tests__/resolveIrInput.test.js +80 -0
  7. package/build/esm/commands/ir/__tests__/resolveIrInput.test.js.map +1 -1
  8. package/build/esm/commands/ir/irDeployHandler.js +6 -1
  9. package/build/esm/commands/ir/irDeployHandler.js.map +1 -1
  10. package/build/esm/commands/ir/irGenAssetHandler.js +6 -1
  11. package/build/esm/commands/ir/irGenAssetHandler.js.map +1 -1
  12. package/build/esm/commands/ir/irGenTypesHandler.js +7 -3
  13. package/build/esm/commands/ir/irGenTypesHandler.js.map +1 -1
  14. package/build/esm/commands/ir/irUpdateSchemaHandler.js +19 -12
  15. package/build/esm/commands/ir/irUpdateSchemaHandler.js.map +1 -1
  16. package/build/esm/commands/ir/resolveIrInput.js +6 -5
  17. package/build/esm/commands/ir/resolveIrInput.js.map +1 -1
  18. package/build/esm/commands/schema/registerSchemaCommands.js +1 -1
  19. package/build/esm/commands/schema/registerSchemaCommands.js.map +1 -1
  20. package/build/esm/commands/schema/schemaIrHandler.js +15 -8
  21. package/build/esm/commands/schema/schemaIrHandler.js.map +1 -1
  22. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/schemaMeta.js.map +1 -1
  23. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/unionDef.js.map +1 -1
  24. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js +1 -1
  25. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js.map +1 -1
  26. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js +1 -1
  27. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js.map +1 -1
  28. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js +1 -1
  29. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js.map +1 -1
  30. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js +1 -1
  31. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js.map +1 -1
  32. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js +1 -1
  33. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js.map +1 -1
  34. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js +1 -1
  35. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js.map +1 -1
  36. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js +1 -1
  37. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js.map +1 -1
  38. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js +1 -1
  39. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js.map +1 -1
  40. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js +1 -1
  41. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js.map +1 -1
  42. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js +1 -1
  43. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js.map +1 -1
  44. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js +1 -1
  45. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js.map +1 -1
  46. package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js +71 -0
  47. package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js.map +1 -1
  48. package/build/esm/utils/ir/convertIrToWireSchema.js +10 -7
  49. package/build/esm/utils/ir/convertIrToWireSchema.js.map +1 -1
  50. package/build/esm/utils/schema/__tests__/__snapshots__/generateDocumentTypeFromSchema/with-name-and-description.js +1 -1
  51. package/build/esm/utils/schema/__tests__/__snapshots__/generateDocumentTypeFromSchema/with-name-and-description.js.map +1 -1
  52. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/single-version.js.map +1 -1
  53. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/three-version-chain.js.map +1 -1
  54. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/two-version.js.map +1 -1
  55. package/build/esm/utils/schema/__tests__/assertSdkNamesUnique.test.js +178 -0
  56. package/build/esm/utils/schema/__tests__/assertSdkNamesUnique.test.js.map +1 -0
  57. package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js +71 -1
  58. package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js.map +1 -1
  59. package/build/esm/utils/schema/__tests__/resolveSchemaChain.test.js +122 -3
  60. package/build/esm/utils/schema/__tests__/resolveSchemaChain.test.js.map +1 -1
  61. package/build/esm/utils/schema/assertSdkNamesUnique.js +151 -0
  62. package/build/esm/utils/schema/assertSdkNamesUnique.js.map +1 -0
  63. package/build/esm/utils/schema/generateIndexFromSchema.js +3 -5
  64. package/build/esm/utils/schema/generateIndexFromSchema.js.map +1 -1
  65. package/build/esm/utils/schema/generateInternalFromSchema.js +42 -19
  66. package/build/esm/utils/schema/generateInternalFromSchema.js.map +1 -1
  67. package/build/esm/utils/schema/generateModelMetadataFromSchema.js +9 -11
  68. package/build/esm/utils/schema/generateModelMetadataFromSchema.js.map +1 -1
  69. package/build/esm/utils/schema/generateScopeFromSchema.js +6 -9
  70. package/build/esm/utils/schema/generateScopeFromSchema.js.map +1 -1
  71. package/build/esm/utils/schema/generateVersionedTypesFromSchema.js +8 -9
  72. package/build/esm/utils/schema/generateVersionedTypesFromSchema.js.map +1 -1
  73. package/build/esm/utils/schema/generateVersionedZodFromSchema.js +13 -16
  74. package/build/esm/utils/schema/generateVersionedZodFromSchema.js.map +1 -1
  75. package/build/esm/utils/schema/resolveSchemaChain.js +137 -21
  76. package/build/esm/utils/schema/resolveSchemaChain.js.map +1 -1
  77. package/build/esm/utils/schema/runtimeSchema.js +47 -0
  78. package/build/esm/utils/schema/runtimeSchema.js.map +1 -1
  79. package/build/esm/utils/schema/writeAllSdkFiles.js +2 -0
  80. package/build/esm/utils/schema/writeAllSdkFiles.js.map +1 -1
  81. package/build/esm/utils/steps/__tests__/__snapshots__/types/arrayFields.js.map +1 -1
  82. package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js +1 -1
  83. package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js.map +1 -1
  84. package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js +1 -1
  85. package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js.map +1 -1
  86. package/build/esm/utils/steps/__tests__/__snapshots__/types/refTypes.js.map +1 -1
  87. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleRecord.js.map +1 -1
  88. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js +1 -1
  89. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js.map +1 -1
  90. package/build/esm/utils/steps/convertStepsToIr.js +30 -2
  91. package/build/esm/utils/steps/convertStepsToIr.js.map +1 -1
  92. package/build/types/commands/ir/__tests__/irUpdateSchemaHandler.test.d.ts +2 -0
  93. package/build/types/commands/ir/__tests__/irUpdateSchemaHandler.test.d.ts.map +1 -0
  94. package/build/types/commands/ir/irDeployHandler.d.ts +1 -1
  95. package/build/types/commands/ir/irDeployHandler.d.ts.map +1 -1
  96. package/build/types/commands/ir/irGenAssetHandler.d.ts +1 -1
  97. package/build/types/commands/ir/irGenAssetHandler.d.ts.map +1 -1
  98. package/build/types/commands/ir/irGenTypesHandler.d.ts.map +1 -1
  99. package/build/types/commands/ir/irUpdateSchemaHandler.d.ts.map +1 -1
  100. package/build/types/commands/ir/resolveIrInput.d.ts +1 -0
  101. package/build/types/commands/ir/resolveIrInput.d.ts.map +1 -1
  102. package/build/types/commands/schema/schemaIrHandler.d.ts +3 -3
  103. package/build/types/commands/schema/schemaIrHandler.d.ts.map +1 -1
  104. package/build/types/lib/pack-docschema-api/pack-docschema-ir/schemaMeta.d.ts +1 -0
  105. package/build/types/lib/pack-docschema-api/pack-docschema-ir/schemaMeta.d.ts.map +1 -1
  106. package/build/types/lib/pack-docschema-api/pack-docschema-ir/unionDef.d.ts +3 -0
  107. package/build/types/lib/pack-docschema-api/pack-docschema-ir/unionDef.d.ts.map +1 -1
  108. package/build/types/utils/ir/convertIrToWireSchema.d.ts +2 -2
  109. package/build/types/utils/ir/convertIrToWireSchema.d.ts.map +1 -1
  110. package/build/types/utils/schema/__tests__/assertSdkNamesUnique.test.d.ts +2 -0
  111. package/build/types/utils/schema/__tests__/assertSdkNamesUnique.test.d.ts.map +1 -0
  112. package/build/types/utils/schema/assertSdkNamesUnique.d.ts +9 -0
  113. package/build/types/utils/schema/assertSdkNamesUnique.d.ts.map +1 -0
  114. package/build/types/utils/schema/generateIndexFromSchema.d.ts.map +1 -1
  115. package/build/types/utils/schema/generateInternalFromSchema.d.ts.map +1 -1
  116. package/build/types/utils/schema/generateModelMetadataFromSchema.d.ts.map +1 -1
  117. package/build/types/utils/schema/generateScopeFromSchema.d.ts.map +1 -1
  118. package/build/types/utils/schema/generateVersionedTypesFromSchema.d.ts.map +1 -1
  119. package/build/types/utils/schema/generateVersionedZodFromSchema.d.ts.map +1 -1
  120. package/build/types/utils/schema/resolveSchemaChain.d.ts +24 -1
  121. package/build/types/utils/schema/resolveSchemaChain.d.ts.map +1 -1
  122. package/build/types/utils/schema/runtimeSchema.d.ts +19 -0
  123. package/build/types/utils/schema/runtimeSchema.d.ts.map +1 -1
  124. package/build/types/utils/schema/writeAllSdkFiles.d.ts.map +1 -1
  125. package/build/types/utils/steps/convertStepsToIr.d.ts +4 -0
  126. package/build/types/utils/steps/convertStepsToIr.d.ts.map +1 -1
  127. package/package.json +19 -5
  128. package/build/esm/utils/unknownVariantSuffix.js +0 -22
  129. package/build/esm/utils/unknownVariantSuffix.js.map +0 -1
  130. package/build/types/utils/unknownVariantSuffix.d.ts +0 -3
  131. package/build/types/utils/unknownVariantSuffix.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resolveSchemaChain.js","names":["IModelDef","IModelDefCtor","convertSchemaToIr","collectVersionedIrChain","input","identity","schemas","collectSchemaDefinitions","provenances","deriveProvenance","map","schema","index","version","ir","models","name","description","type","migrations","serializeMigrations","current","unshift","previous","firstModelVersions","Map","firstFieldVersions","modelVersions","fieldVersions","modelKey","modelDef","Object","entries","has","set","get","fieldVersionsForModel","fields","fieldKey","keys","length","deprecations","undefined","result","fieldEntries","fieldName","migration","derivedFrom","resolveMinVersion","chain","minSupportedVersion","Error","latestVersion","some","c","join","minVersion","capVersionedIrChain","maxVersion","filter","resolveSchemaChain","stripDeprecatedFieldsForSdk","entry","record","field","dep","metadata","deprecatedFromVersion","chainNeedsUpgradeFns","i","prevEntry","currEntry","currModelDef","prevModelDef","prevFields","Set","f","key","recordMigrations","isOptional"],"sources":["resolveSchemaChain.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { SchemaDefinition, VersionMigrations } from \"@palantir/pack.schema\";\nimport type {\n IModelDef,\n IRealTimeDocumentSchema,\n} from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { IModelDef as IModelDefCtor } from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport type { SchemaProvenance } from \"../steps/convertStepsToIr.js\";\nimport { convertSchemaToIr } from \"../steps/convertStepsToIr.js\";\n\n/** JSON-serializable form of a single field migration. */\nexport interface SerializedFieldMigration {\n readonly derivedFrom: readonly string[];\n}\n\n/** Serialized migrations keyed by `[recordModelName][fieldName]`. */\nexport type SerializedVersionMigrations = Record<\n string,\n Record<string, SerializedFieldMigration>\n>;\n\nexport interface VersionedIrEntry {\n version: number;\n ir: IRealTimeDocumentSchema;\n migrations?: SerializedVersionMigrations;\n}\n\nexport interface ResolvedIrChain {\n chain: VersionedIrEntry[];\n latestVersion: number;\n minVersion: number;\n}\n\nexport interface IrChainPayload {\n comment?: string;\n latestVersion: number;\n minSupportedVersion?: number;\n owningApplicationId?: string;\n chain: VersionedIrEntry[];\n}\n\nexport interface SchemaIdentity {\n readonly name?: string;\n readonly description?: string;\n}\n\nfunction collectVersionedIrChain(\n input: SchemaDefinition,\n identity: SchemaIdentity,\n): VersionedIrEntry[] {\n const schemas = collectSchemaDefinitions(input);\n const provenances = deriveProvenance(schemas);\n\n return schemas.map((schema, index): VersionedIrEntry => ({\n version: schema.version,\n ir: convertSchemaToIr(\n schema.models,\n { version: schema.version, name: identity.name, description: identity.description },\n provenances[index]!,\n ),\n ...(schema.type === \"versioned\" ? { migrations: serializeMigrations(schema.migrations) } : {}),\n }));\n}\n\nfunction collectSchemaDefinitions(input: SchemaDefinition): SchemaDefinition[] {\n const schemas: SchemaDefinition[] = [];\n let current: SchemaDefinition = input;\n\n while (current.type === \"versioned\") {\n schemas.unshift(current);\n current = current.previous;\n }\n schemas.unshift(current);\n\n return schemas;\n}\n\n/**\n * Build field/model provenance by walking the version chain from oldest to\n * newest. The first version where a model key or record field appears is the\n * version stamped into IR metadata.\n */\nfunction deriveProvenance(schemas: readonly SchemaDefinition[]): SchemaProvenance[] {\n const firstModelVersions = new Map<string, number>();\n const firstFieldVersions = new Map<string, Map<string, number>>();\n\n return schemas.map(schema => {\n const modelVersions: Record<string, number> = {};\n const fieldVersions: Record<string, Record<string, number>> = {};\n\n for (const [modelKey, modelDef] of Object.entries(schema.models)) {\n if (!firstModelVersions.has(modelKey)) {\n firstModelVersions.set(modelKey, schema.version);\n }\n modelVersions[modelKey] = firstModelVersions.get(modelKey)!;\n\n if (modelDef.type !== \"record\") continue;\n\n let fieldVersionsForModel = firstFieldVersions.get(modelKey);\n if (fieldVersionsForModel == null) {\n fieldVersionsForModel = new Map<string, number>();\n firstFieldVersions.set(modelKey, fieldVersionsForModel);\n }\n\n const fields: Record<string, number> = {};\n for (const fieldKey of Object.keys(modelDef.fields)) {\n if (!fieldVersionsForModel.has(fieldKey)) {\n fieldVersionsForModel.set(fieldKey, schema.version);\n }\n fields[fieldKey] = fieldVersionsForModel.get(fieldKey)!;\n }\n\n if (Object.keys(fields).length > 0) {\n fieldVersions[modelKey] = fields;\n }\n }\n\n return {\n fieldVersions,\n modelVersions,\n deprecations: \"deprecations\" in schema ? schema.deprecations : undefined,\n };\n });\n}\n\n/** Convert schema-builder migrations to their JSON-serializable form. */\nfunction serializeMigrations(\n migrations: VersionMigrations | undefined,\n): SerializedVersionMigrations | undefined {\n if (migrations == null) return undefined;\n const result: SerializedVersionMigrations = {};\n for (const [modelKey, fields] of Object.entries(migrations)) {\n const fieldEntries: Record<string, SerializedFieldMigration> = {};\n for (const [fieldName, migration] of Object.entries(fields)) {\n fieldEntries[fieldName] = {\n derivedFrom: [...migration.derivedFrom],\n };\n }\n result[modelKey] = fieldEntries;\n }\n return result;\n}\n\n/**\n * Validate `minSupportedVersion` against an already-resolved chain and return\n * the effective `minVersion`. Throws on invalid input.\n */\nexport function resolveMinVersion(\n chain: VersionedIrEntry[],\n minSupportedVersion: number | undefined,\n): { latestVersion: number; minVersion: number } {\n if (chain.length === 0) {\n throw new Error(\"Schema version chain is empty\");\n }\n\n const latestVersion = chain[chain.length - 1]!.version;\n\n if (minSupportedVersion != null && !chain.some(c => c.version === minSupportedVersion)) {\n throw new Error(\n `minSupportedVersion ${minSupportedVersion} is not in the schema chain `\n + `(available versions: ${chain.map(c => c.version).join(\", \")})`,\n );\n }\n\n return {\n latestVersion,\n minVersion: minSupportedVersion ?? latestVersion,\n };\n}\n\nfunction capVersionedIrChain(\n chain: VersionedIrEntry[],\n maxVersion: number | undefined,\n): VersionedIrEntry[] {\n if (maxVersion == null) {\n return chain;\n }\n\n if (!chain.some(c => c.version === maxVersion)) {\n throw new Error(\n `maxVersion ${maxVersion} is not in the schema chain `\n + `(available versions: ${chain.map(c => c.version).join(\", \")})`,\n );\n }\n\n return chain.filter(c => c.version <= maxVersion);\n}\n\n/**\n * Collect the version chain and resolve min/latest versions.\n * Each version's models are converted to IR (IRealTimeDocumentSchema).\n * `identity.name` / `identity.description` are embedded into each chain entry's\n * IR; when omitted (e.g. test callers), `convertSchemaToIr` falls back to its\n * defaults.\n * Throws on empty chain or invalid minSupportedVersion.\n */\nexport function resolveSchemaChain(\n schema: SchemaDefinition,\n minSupportedVersion?: number,\n identity: SchemaIdentity = {},\n maxVersion?: number,\n): ResolvedIrChain {\n const chain = capVersionedIrChain(collectVersionedIrChain(schema, identity), maxVersion);\n const { latestVersion, minVersion } = resolveMinVersion(chain, minSupportedVersion);\n return { chain, latestVersion, minVersion };\n}\n\n/**\n * Return a copy of the chain with deprecated fields removed from every version\n * at or after the version in which they were deprecated.\n *\n * The SDK type generators (`writeAllSdkFiles` and friends) must treat a\n * deprecated field exactly as a removed field: it disappears from that version's\n * public read/write types and per-version internal types, and the prev/curr diff\n * records it as a `removedField` (driving the upgrade lens). The field is still\n * collected into the all-versions `__Internal` type from earlier versions, which\n * are left untouched.\n */\nexport function stripDeprecatedFieldsForSdk(chain: VersionedIrEntry[]): VersionedIrEntry[] {\n return chain.map((entry): VersionedIrEntry => {\n const models: Record<string, IModelDef> = {};\n for (const [modelKey, modelDef] of Object.entries(entry.ir.models)) {\n if (modelDef.type === \"record\") {\n const fields = modelDef.record.fields.filter(field => {\n const dep = field.metadata.deprecatedFromVersion;\n return dep == null || entry.version < dep;\n });\n models[modelKey] = IModelDefCtor.record({ ...modelDef.record, fields });\n } else {\n models[modelKey] = modelDef;\n }\n }\n return { ...entry, ir: { ...entry.ir, models } };\n });\n}\n\n/**\n * True if the chain has any field that requires a runtime upgrade function.\n * Drives whether the generated SDK emits `DocumentModel` as a factory\n * (requires the app to supply typed upgrade functions) or as a const.\n *\n * Two cases trigger this:\n * - A field declares `derivedFrom` with one or more source fields — the app\n * must supply a forward function.\n * - A required field is added in a version past v1 (no `derivedFrom`) — the\n * app must supply a zero-arg thunk; `undefined` is not a legal value.\n *\n * Optional additive fields don't trigger it; the lens leaves them alone.\n */\nexport function chainNeedsUpgradeFns(chain: VersionedIrEntry[]): boolean {\n for (let i = 1; i < chain.length; i++) {\n const prevEntry = chain[i - 1]!;\n const currEntry = chain[i]!;\n for (const [modelKey, currModelDef] of Object.entries(currEntry.ir.models)) {\n if (currModelDef.type !== \"record\") continue;\n const prevModelDef = prevEntry.ir.models[modelKey];\n if (prevModelDef == null || prevModelDef.type !== \"record\") continue;\n const prevFields = new Set(prevModelDef.record.fields.map(f => f.key));\n const recordMigrations = currEntry.migrations?.[modelKey];\n for (const field of currModelDef.record.fields) {\n if (prevFields.has(field.key)) continue;\n const derivedFrom = recordMigrations?.[field.key]?.derivedFrom ?? [];\n if (derivedFrom.length > 0) return true;\n if (field.isOptional !== true) return true;\n }\n }\n }\n return false;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"resolveSchemaChain.js","names":["IModelDef","IModelDefCtor","convertSchemaToIr","getEntryMinorVersion","entry","minorVersion","formatSchemaVersion","major","minor","formatEntryVersion","version","getSchemaMinorVersion","schema","type","collectVersionedIrChain","input","identity","schemas","collectSchemaDefinitions","provenances","deriveProvenance","map","index","ir","models","name","description","migrations","serializeMigrations","current","unshift","previous","firstModelVersions","Map","firstFieldVersions","firstVariantVersions","currentVersion","modelVersions","modelMinorVersions","fieldVersions","fieldMinorVersions","variantVersions","variantMinorVersions","modelKey","modelDef","Object","entries","has","set","modelVersion","get","variantVersionsForModel","variants","minorVariants","variantName","keys","variantVersion","length","fieldVersionsForModel","fields","minorFields","fieldKey","fieldVersion","deprecations","undefined","result","fieldEntries","fieldName","migration","derivedFrom","resolveMinVersion","chain","minSupportedVersion","Error","latestVersion","some","c","join","minVersion","capVersionedIrChain","maxVersion","maxIndex","findIndex","slice","resolveSchemaChain","stripDeprecatedFieldsForSdk","record","filter","field","dep","metadata","deprecatedFromVersion","collapseChainToMajors","collapsed","mergeMigrations","collapsedEntry","push","base","override","chainNeedsUpgradeFns","i","prevEntry","currEntry","currModelDef","prevModelDef","prevFields","Set","f","key","recordMigrations","isOptional","upgradeStepKey"],"sources":["resolveSchemaChain.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { SchemaDefinition, VersionMigrations } from \"@palantir/pack.schema\";\nimport type {\n IModelDef,\n IRealTimeDocumentSchema,\n} from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { IModelDef as IModelDefCtor } from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport type { SchemaProvenance } from \"../steps/convertStepsToIr.js\";\nimport { convertSchemaToIr } from \"../steps/convertStepsToIr.js\";\n\n/** JSON-serializable form of a single field migration. */\nexport interface SerializedFieldMigration {\n readonly derivedFrom: readonly string[];\n}\n\n/** Serialized migrations keyed by `[recordModelName][fieldName]`. */\nexport type SerializedVersionMigrations = Record<\n string,\n Record<string, SerializedFieldMigration>\n>;\n\nexport interface VersionedIrEntry {\n version: number;\n minorVersion?: number;\n ir: IRealTimeDocumentSchema;\n migrations?: SerializedVersionMigrations;\n}\n\nexport interface ResolvedIrChain {\n chain: VersionedIrEntry[];\n latestVersion: number;\n minVersion: number;\n /**\n * Every version, including minors (e.g. 3.0, 3.1, 3.2). `chain` merges these into one entry per\n * major. Upgrade steps compare neighbors here, so `title` added in 3.2 gets a `v3_2` step.\n * If absent, `chain` is used.\n */\n stepChain?: VersionedIrEntry[];\n}\n\nexport interface IrChainPayload {\n comment?: string;\n latestVersion: number;\n minSupportedVersion?: number;\n owningApplicationId?: string;\n chain: VersionedIrEntry[];\n}\n\nexport interface FullSchemaVersion {\n readonly major: number;\n readonly minor: number;\n}\n\nexport function getEntryMinorVersion(entry: VersionedIrEntry): number {\n return entry.minorVersion ?? 0;\n}\n\nexport function formatSchemaVersion(major: number, minor: number): string {\n return minor > 0 ? `${major}.${minor}` : `${major}`;\n}\n\nfunction formatEntryVersion(entry: VersionedIrEntry): string {\n return formatSchemaVersion(entry.version, getEntryMinorVersion(entry));\n}\n\nfunction getSchemaMinorVersion(schema: SchemaDefinition): number {\n return schema.type === \"versioned\" ? schema.minorVersion ?? 0 : 0;\n}\n\nexport interface SchemaIdentity {\n readonly name?: string;\n readonly description?: string;\n}\n\nfunction collectVersionedIrChain(\n input: SchemaDefinition,\n identity: SchemaIdentity,\n): VersionedIrEntry[] {\n const schemas = collectSchemaDefinitions(input);\n const provenances = deriveProvenance(schemas);\n\n return schemas.map((schema, index): VersionedIrEntry => {\n const minorVersion = getSchemaMinorVersion(schema);\n return {\n version: schema.version,\n ...(minorVersion > 0 ? { minorVersion } : {}),\n ir: convertSchemaToIr(\n schema.models,\n { version: schema.version, name: identity.name, description: identity.description },\n provenances[index]!,\n ),\n ...(schema.type === \"versioned\"\n ? { migrations: serializeMigrations(schema.migrations) }\n : {}),\n };\n });\n}\n\nfunction collectSchemaDefinitions(input: SchemaDefinition): SchemaDefinition[] {\n const schemas: SchemaDefinition[] = [];\n let current: SchemaDefinition = input;\n\n while (current.type === \"versioned\") {\n schemas.unshift(current);\n current = current.previous;\n }\n schemas.unshift(current);\n\n return schemas;\n}\n\n/**\n * Build field/model provenance by walking the version chain from oldest to\n * newest. The first version (major and minor) where a model key or record field\n * appears is the version stamped into IR metadata.\n */\nfunction deriveProvenance(schemas: readonly SchemaDefinition[]): SchemaProvenance[] {\n const firstModelVersions = new Map<string, FullSchemaVersion>();\n const firstFieldVersions = new Map<string, Map<string, FullSchemaVersion>>();\n const firstVariantVersions = new Map<string, Map<string, FullSchemaVersion>>();\n\n return schemas.map(schema => {\n const currentVersion = { major: schema.version, minor: getSchemaMinorVersion(schema) };\n const modelVersions: Record<string, number> = {};\n const modelMinorVersions: Record<string, number> = {};\n const fieldVersions: Record<string, Record<string, number>> = {};\n const fieldMinorVersions: Record<string, Record<string, number>> = {};\n const variantVersions: Record<string, Record<string, number>> = {};\n const variantMinorVersions: Record<string, Record<string, number>> = {};\n\n for (const [modelKey, modelDef] of Object.entries(schema.models)) {\n if (!firstModelVersions.has(modelKey)) {\n firstModelVersions.set(modelKey, currentVersion);\n }\n const modelVersion = firstModelVersions.get(modelKey)!;\n modelVersions[modelKey] = modelVersion.major;\n if (modelVersion.minor > 0) {\n modelMinorVersions[modelKey] = modelVersion.minor;\n }\n\n if (modelDef.type === \"union\") {\n let variantVersionsForModel = firstVariantVersions.get(modelKey);\n if (variantVersionsForModel == null) {\n variantVersionsForModel = new Map<string, FullSchemaVersion>();\n firstVariantVersions.set(modelKey, variantVersionsForModel);\n }\n\n const variants: Record<string, number> = {};\n const minorVariants: Record<string, number> = {};\n for (const variantName of Object.keys(modelDef.variants)) {\n if (!variantVersionsForModel.has(variantName)) {\n variantVersionsForModel.set(variantName, currentVersion);\n }\n const variantVersion = variantVersionsForModel.get(variantName)!;\n variants[variantName] = variantVersion.major;\n if (variantVersion.minor > 0) {\n minorVariants[variantName] = variantVersion.minor;\n }\n }\n\n variantVersions[modelKey] = variants;\n if (Object.keys(minorVariants).length > 0) {\n variantMinorVersions[modelKey] = minorVariants;\n }\n continue;\n }\n\n let fieldVersionsForModel = firstFieldVersions.get(modelKey);\n if (fieldVersionsForModel == null) {\n fieldVersionsForModel = new Map<string, FullSchemaVersion>();\n firstFieldVersions.set(modelKey, fieldVersionsForModel);\n }\n\n const fields: Record<string, number> = {};\n const minorFields: Record<string, number> = {};\n for (const fieldKey of Object.keys(modelDef.fields)) {\n if (!fieldVersionsForModel.has(fieldKey)) {\n fieldVersionsForModel.set(fieldKey, currentVersion);\n }\n const fieldVersion = fieldVersionsForModel.get(fieldKey)!;\n fields[fieldKey] = fieldVersion.major;\n if (fieldVersion.minor > 0) {\n minorFields[fieldKey] = fieldVersion.minor;\n }\n }\n\n if (Object.keys(fields).length > 0) {\n fieldVersions[modelKey] = fields;\n }\n if (Object.keys(minorFields).length > 0) {\n fieldMinorVersions[modelKey] = minorFields;\n }\n }\n\n return {\n fieldVersions,\n modelVersions,\n fieldMinorVersions,\n modelMinorVersions,\n variantVersions,\n variantMinorVersions,\n deprecations: \"deprecations\" in schema ? schema.deprecations : undefined,\n };\n });\n}\n\n/** Convert schema-builder migrations to their JSON-serializable form. */\nfunction serializeMigrations(\n migrations: VersionMigrations | undefined,\n): SerializedVersionMigrations | undefined {\n if (migrations == null) return undefined;\n const result: SerializedVersionMigrations = {};\n for (const [modelKey, fields] of Object.entries(migrations)) {\n const fieldEntries: Record<string, SerializedFieldMigration> = {};\n for (const [fieldName, migration] of Object.entries(fields)) {\n fieldEntries[fieldName] = {\n derivedFrom: [...migration.derivedFrom],\n };\n }\n result[modelKey] = fieldEntries;\n }\n return result;\n}\n\n/**\n * Validate `minSupportedVersion` against an already-resolved chain and return\n * the effective `minVersion`. Throws on invalid input.\n */\nexport function resolveMinVersion(\n chain: VersionedIrEntry[],\n minSupportedVersion: number | undefined,\n): { latestVersion: number; minVersion: number } {\n if (chain.length === 0) {\n throw new Error(\"Schema version chain is empty\");\n }\n\n const latestVersion = chain[chain.length - 1]!.version;\n\n if (minSupportedVersion != null && !chain.some(c => c.version === minSupportedVersion)) {\n throw new Error(\n `minSupportedVersion ${minSupportedVersion} is not in the schema chain `\n + `(available versions: ${chain.map(formatEntryVersion).join(\", \")})`,\n );\n }\n\n return {\n latestVersion,\n minVersion: minSupportedVersion ?? latestVersion,\n };\n}\n\nfunction capVersionedIrChain(\n chain: VersionedIrEntry[],\n maxVersion: FullSchemaVersion | undefined,\n): VersionedIrEntry[] {\n if (maxVersion == null) {\n return chain;\n }\n\n const maxIndex = chain.findIndex(c =>\n c.version === maxVersion.major && getEntryMinorVersion(c) === maxVersion.minor\n );\n if (maxIndex === -1) {\n throw new Error(\n `maxVersion ${\n formatSchemaVersion(maxVersion.major, maxVersion.minor)\n } is not in the schema chain `\n + `(available versions: ${chain.map(formatEntryVersion).join(\", \")})`,\n );\n }\n\n // The chain is in version order, so everything up to the match is at or below it.\n return chain.slice(0, maxIndex + 1);\n}\n\n/**\n * Collect the version chain and resolve min/latest versions.\n * Each version's models are converted to IR (IRealTimeDocumentSchema).\n * `identity.name` / `identity.description` are embedded into each chain entry's\n * IR; when omitted (e.g. test callers), `convertSchemaToIr` falls back to its\n * defaults.\n * Throws on empty chain or invalid minSupportedVersion.\n */\nexport function resolveSchemaChain(\n schema: SchemaDefinition,\n minSupportedVersion?: number,\n identity: SchemaIdentity = {},\n maxVersion?: FullSchemaVersion,\n): ResolvedIrChain {\n const chain = capVersionedIrChain(collectVersionedIrChain(schema, identity), maxVersion);\n const { latestVersion, minVersion } = resolveMinVersion(chain, minSupportedVersion);\n return { chain, latestVersion, minVersion };\n}\n\n/**\n * Return a copy of the chain with deprecated fields removed from every version\n * at or after the version in which they were deprecated.\n *\n * The SDK type generators (`writeAllSdkFiles` and friends) must treat a\n * deprecated field exactly as a removed field: it disappears from that version's\n * public read/write types and per-version internal types, and the prev/curr diff\n * records it as a `removedField` (driving the upgrade lens). The field is still\n * collected into the all-versions `__Internal` type from earlier versions, which\n * are left untouched.\n */\nexport function stripDeprecatedFieldsForSdk(chain: VersionedIrEntry[]): VersionedIrEntry[] {\n return chain.map((entry): VersionedIrEntry => {\n const models: Record<string, IModelDef> = {};\n for (const [modelKey, modelDef] of Object.entries(entry.ir.models)) {\n if (modelDef.type === \"record\") {\n const fields = modelDef.record.fields.filter(field => {\n const dep = field.metadata.deprecatedFromVersion;\n return dep == null || entry.version < dep;\n });\n models[modelKey] = IModelDefCtor.record({ ...modelDef.record, fields });\n } else {\n models[modelKey] = modelDef;\n }\n }\n return { ...entry, ir: { ...entry.ir, models } };\n });\n}\n\n/**\n * Merge each major's minor versions into one entry, for generating SDK types.\n *\n * E.g. 3.0, 3.1 and 3.2 become one `3` entry that uses 3.2's IR, so `ShapeBox_v3` has every 3.x\n * field. Migrations from all three are kept, because each lives only on the version that added it.\n */\nexport function collapseChainToMajors(chain: VersionedIrEntry[]): VersionedIrEntry[] {\n const collapsed: VersionedIrEntry[] = [];\n for (const entry of chain) {\n const previous = collapsed[collapsed.length - 1];\n const migrations = previous?.version === entry.version\n ? mergeMigrations(previous.migrations, entry.migrations)\n : entry.migrations;\n const collapsedEntry: VersionedIrEntry = {\n version: entry.version,\n ir: entry.ir,\n ...(migrations != null ? { migrations } : {}),\n };\n if (previous?.version === entry.version) {\n collapsed[collapsed.length - 1] = collapsedEntry;\n } else {\n collapsed.push(collapsedEntry);\n }\n }\n return collapsed;\n}\n\nfunction mergeMigrations(\n base: SerializedVersionMigrations | undefined,\n override: SerializedVersionMigrations | undefined,\n): SerializedVersionMigrations | undefined {\n if (base == null) return override;\n if (override == null) return base;\n const result: SerializedVersionMigrations = { ...base };\n for (const [modelKey, fields] of Object.entries(override)) {\n result[modelKey] = { ...result[modelKey], ...fields };\n }\n return result;\n}\n\n/**\n * True if the chain has any field that requires a runtime upgrade function.\n * Drives whether the generated SDK emits `DocumentModel` as a factory\n * (requires the app to supply typed upgrade functions) or as a const.\n *\n * Two cases trigger this:\n * - A field declares `derivedFrom` with one or more source fields — the app\n * must supply a forward function.\n * - A required field is added in a version past v1 (no `derivedFrom`) — the\n * app must supply a zero-arg thunk; `undefined` is not a legal value.\n *\n * Optional additive fields don't trigger it; the lens leaves them alone.\n * Pass every version (`stepChain`), so a required field added in a minor, like `title` in 3.2, counts.\n */\nexport function chainNeedsUpgradeFns(chain: VersionedIrEntry[]): boolean {\n for (let i = 1; i < chain.length; i++) {\n const prevEntry = chain[i - 1]!;\n const currEntry = chain[i]!;\n for (const [modelKey, currModelDef] of Object.entries(currEntry.ir.models)) {\n if (currModelDef.type !== \"record\") continue;\n const prevModelDef = prevEntry.ir.models[modelKey];\n if (prevModelDef == null || prevModelDef.type !== \"record\") continue;\n const prevFields = new Set(prevModelDef.record.fields.map(f => f.key));\n const recordMigrations = currEntry.migrations?.[modelKey];\n for (const field of currModelDef.record.fields) {\n if (prevFields.has(field.key)) continue;\n const derivedFrom = recordMigrations?.[field.key]?.derivedFrom ?? [];\n if (derivedFrom.length > 0) return true;\n if (field.isOptional !== true) return true;\n }\n }\n }\n return false;\n}\n\n/** Upgrade function key for a step: `v2` for 2.0, `v2_1` for 2.1. Must match the key `applyReadLens` builds. */\nexport function upgradeStepKey(major: number, minor: number): string {\n return minor > 0 ? `v${major}_${minor}` : `v${major}`;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,8 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import { formatVariantName } from "@palantir/pack.schema";
18
+
17
19
  /** Versioned read type name: `RecordName_vN` */
18
20
  export function versionedTypeName(exportName, version) {
19
21
  return `${exportName}_v${version}`;
@@ -49,6 +51,51 @@ export function schemaName(exportName) {
49
51
  return `${exportName}Schema`;
50
52
  }
51
53
 
54
+ /** Union variant name: (`Shape_v1`, `"my-box"`) -> `Shape_v1MyBox`. */
55
+ export function unionVariantName(unionName, variantKey) {
56
+ return `${unionName}${formatVariantName(variantKey)}`;
57
+ }
58
+
59
+ /** Type guard function name: `isShape_v1Circle` */
60
+ export function typeGuardName(typeName) {
61
+ return `is${typeName}`;
62
+ }
63
+
64
+ /** Upgrade registry constant name: `RecordNameUpgrades` */
65
+ export function upgradesName(modelKey) {
66
+ return `${modelKey}Upgrades`;
67
+ }
68
+
69
+ /** All-versions internal type name: `RecordName__Internal` */
70
+ export function internalTypeName(modelKey) {
71
+ return `${modelKey}__Internal`;
72
+ }
73
+
74
+ /** Per-version internal type name: `RecordName__vN` */
75
+ export function versionedInternalTypeName(modelKey, version) {
76
+ return `${modelKey}__v${version}`;
77
+ }
78
+
79
+ /** Internal Zod schema name: `RecordNameInternalSchema` */
80
+ export function internalSchemaName(modelKey) {
81
+ return `${modelKey}InternalSchema`;
82
+ }
83
+
84
+ /** Versioned document ref type name: `VersionedDocRef_vN` */
85
+ export function versionedDocRefName(version) {
86
+ return `VersionedDocRef_v${version}`;
87
+ }
88
+
89
+ /**
90
+ * Names the SDK uses in the same files as model names, so no model may produce one. Other
91
+ * library names only appear next to suffixed names like `Foo_v1`, so they can't clash.
92
+ */
93
+ export const RESERVED_SDK_NAMES = [
94
+ // Fixed SDK exports
95
+ "DOCUMENT_TYPE_DESCRIPTION", "DOCUMENT_TYPE_NAME", "DocumentModel", "DocumentUpgradeFns", "LatestVersion", "MinSupportedVersion", "SupportedVersions", "VersionedDocRef", "asVersioned", "matchVersion",
96
+ // Imported or called by models.ts
97
+ "DocumentSchema", "Metadata", "RecordModel", "ReturnType", "UnionModel", "UpgradeFns"];
98
+
52
99
  /** Per-version types file path: `./types_vN.js` */
53
100
  export function typesFilePath(version) {
54
101
  return `./types_v${version}.js`;
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeSchema.js","names":["versionedTypeName","exportName","version","knownTypeName","unionTypeName","narrowKnownFunctionName","versionedWriteTypeName","versionedSchemaName","modelName","schemaName","typesFilePath","writeTypesFilePath","TYPES_REEXPORT_PATH","SCHEMA_REEXPORT_PATH","MODELS_PATH","INTERNAL_UPGRADES_PATH","INTERNAL_UPGRADE_FNS_PATH","VERSIONS_PATH","VERSIONED_DOC_REF_PATH","DOCUMENT_TYPE_PATH"],"sources":["runtimeSchema.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Versioned read type name: `RecordName_vN` */\nexport function versionedTypeName(exportName: string, version: number): string {\n return `${exportName}_v${version}`;\n}\n\n/** e.g. `NodeShape_v3` -> `KnownNodeShape_v3`: a union's variants without the Unknown case. */\nexport function knownTypeName(unionTypeName: string): string {\n return `Known${unionTypeName}`;\n}\n\n/** e.g. `NodeShape_v3` -> `narrowKnownNodeShape_v3`. */\nexport function narrowKnownFunctionName(unionTypeName: string): string {\n return `narrowKnown${unionTypeName}`;\n}\n\n/** Versioned write type name: `RecordNameUpdate_vN` */\nexport function versionedWriteTypeName(exportName: string, version: number): string {\n return `${exportName}Update_v${version}`;\n}\n\n/** Versioned Zod schema name: `RecordNameSchema_vN` */\nexport function versionedSchemaName(exportName: string, version: number): string {\n return `${exportName}Schema_v${version}`;\n}\n\n/** Model constant name: `RecordNameModel` */\nexport function modelName(exportName: string): string {\n return `${exportName}Model`;\n}\n\n/** Unversioned Zod schema name: `RecordNameSchema` */\nexport function schemaName(exportName: string): string {\n return `${exportName}Schema`;\n}\n\n/** Per-version types file path: `./types_vN.js` */\nexport function typesFilePath(version: number): string {\n return `./types_v${version}.js`;\n}\n\n/** Per-version write types file path: `./writeTypes_vN.js` */\nexport function writeTypesFilePath(version: number): string {\n return `./writeTypes_v${version}.js`;\n}\n\n/** Types re-export file path: `./types.js` */\nexport const TYPES_REEXPORT_PATH = \"./types.js\";\n\n/** Schema re-export file path: `./schema.js` */\nexport const SCHEMA_REEXPORT_PATH = \"./schema.js\";\n\n/** Models file path: `./models.js` */\nexport const MODELS_PATH = \"./models.js\";\n\n/** Internal upgrades file path: `./_internal/upgrades.js` */\nexport const INTERNAL_UPGRADES_PATH = \"./_internal/upgrades.js\";\n\n/** Internal upgrade-functions file path: `./_internal/upgradeFns.js` */\nexport const INTERNAL_UPGRADE_FNS_PATH = \"./_internal/upgradeFns.js\";\n\n/** Versions file path: `./versions.js` */\nexport const VERSIONS_PATH = \"./versions.js\";\n\n/** Versioned doc ref file path: `./versionedDocRef.js` */\nexport const VERSIONED_DOC_REF_PATH = \"./versionedDocRef.js\";\n\n/** Document type identity constants file path: `./documentType.js` */\nexport const DOCUMENT_TYPE_PATH = \"./documentType.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,SAASA,iBAAiBA,CAACC,UAAkB,EAAEC,OAAe,EAAU;EAC7E,OAAO,GAAGD,UAAU,KAAKC,OAAO,EAAE;AACpC;;AAEA;AACA,OAAO,SAASC,aAAaA,CAACC,aAAqB,EAAU;EAC3D,OAAO,QAAQA,aAAa,EAAE;AAChC;;AAEA;AACA,OAAO,SAASC,uBAAuBA,CAACD,aAAqB,EAAU;EACrE,OAAO,cAAcA,aAAa,EAAE;AACtC;;AAEA;AACA,OAAO,SAASE,sBAAsBA,CAACL,UAAkB,EAAEC,OAAe,EAAU;EAClF,OAAO,GAAGD,UAAU,WAAWC,OAAO,EAAE;AAC1C;;AAEA;AACA,OAAO,SAASK,mBAAmBA,CAACN,UAAkB,EAAEC,OAAe,EAAU;EAC/E,OAAO,GAAGD,UAAU,WAAWC,OAAO,EAAE;AAC1C;;AAEA;AACA,OAAO,SAASM,SAASA,CAACP,UAAkB,EAAU;EACpD,OAAO,GAAGA,UAAU,OAAO;AAC7B;;AAEA;AACA,OAAO,SAASQ,UAAUA,CAACR,UAAkB,EAAU;EACrD,OAAO,GAAGA,UAAU,QAAQ;AAC9B;;AAEA;AACA,OAAO,SAASS,aAAaA,CAACR,OAAe,EAAU;EACrD,OAAO,YAAYA,OAAO,KAAK;AACjC;;AAEA;AACA,OAAO,SAASS,kBAAkBA,CAACT,OAAe,EAAU;EAC1D,OAAO,iBAAiBA,OAAO,KAAK;AACtC;;AAEA;AACA,OAAO,MAAMU,mBAAmB,GAAG,YAAY;;AAE/C;AACA,OAAO,MAAMC,oBAAoB,GAAG,aAAa;;AAEjD;AACA,OAAO,MAAMC,WAAW,GAAG,aAAa;;AAExC;AACA,OAAO,MAAMC,sBAAsB,GAAG,yBAAyB;;AAE/D;AACA,OAAO,MAAMC,yBAAyB,GAAG,2BAA2B;;AAEpE;AACA,OAAO,MAAMC,aAAa,GAAG,eAAe;;AAE5C;AACA,OAAO,MAAMC,sBAAsB,GAAG,sBAAsB;;AAE5D;AACA,OAAO,MAAMC,kBAAkB,GAAG,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"runtimeSchema.js","names":["formatVariantName","versionedTypeName","exportName","version","knownTypeName","unionTypeName","narrowKnownFunctionName","versionedWriteTypeName","versionedSchemaName","modelName","schemaName","unionVariantName","unionName","variantKey","typeGuardName","typeName","upgradesName","modelKey","internalTypeName","versionedInternalTypeName","internalSchemaName","versionedDocRefName","RESERVED_SDK_NAMES","typesFilePath","writeTypesFilePath","TYPES_REEXPORT_PATH","SCHEMA_REEXPORT_PATH","MODELS_PATH","INTERNAL_UPGRADES_PATH","INTERNAL_UPGRADE_FNS_PATH","VERSIONS_PATH","VERSIONED_DOC_REF_PATH","DOCUMENT_TYPE_PATH"],"sources":["runtimeSchema.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { formatVariantName } from \"@palantir/pack.schema\";\n\n/** Versioned read type name: `RecordName_vN` */\nexport function versionedTypeName(exportName: string, version: number): string {\n return `${exportName}_v${version}`;\n}\n\n/** e.g. `NodeShape_v3` -> `KnownNodeShape_v3`: a union's variants without the Unknown case. */\nexport function knownTypeName(unionTypeName: string): string {\n return `Known${unionTypeName}`;\n}\n\n/** e.g. `NodeShape_v3` -> `narrowKnownNodeShape_v3`. */\nexport function narrowKnownFunctionName(unionTypeName: string): string {\n return `narrowKnown${unionTypeName}`;\n}\n\n/** Versioned write type name: `RecordNameUpdate_vN` */\nexport function versionedWriteTypeName(exportName: string, version: number): string {\n return `${exportName}Update_v${version}`;\n}\n\n/** Versioned Zod schema name: `RecordNameSchema_vN` */\nexport function versionedSchemaName(exportName: string, version: number): string {\n return `${exportName}Schema_v${version}`;\n}\n\n/** Model constant name: `RecordNameModel` */\nexport function modelName(exportName: string): string {\n return `${exportName}Model`;\n}\n\n/** Unversioned Zod schema name: `RecordNameSchema` */\nexport function schemaName(exportName: string): string {\n return `${exportName}Schema`;\n}\n\n/** Union variant name: (`Shape_v1`, `\"my-box\"`) -> `Shape_v1MyBox`. */\nexport function unionVariantName(unionName: string, variantKey: string): string {\n return `${unionName}${formatVariantName(variantKey)}`;\n}\n\n/** Type guard function name: `isShape_v1Circle` */\nexport function typeGuardName(typeName: string): string {\n return `is${typeName}`;\n}\n\n/** Upgrade registry constant name: `RecordNameUpgrades` */\nexport function upgradesName(modelKey: string): string {\n return `${modelKey}Upgrades`;\n}\n\n/** All-versions internal type name: `RecordName__Internal` */\nexport function internalTypeName(modelKey: string): string {\n return `${modelKey}__Internal`;\n}\n\n/** Per-version internal type name: `RecordName__vN` */\nexport function versionedInternalTypeName(modelKey: string, version: number): string {\n return `${modelKey}__v${version}`;\n}\n\n/** Internal Zod schema name: `RecordNameInternalSchema` */\nexport function internalSchemaName(modelKey: string): string {\n return `${modelKey}InternalSchema`;\n}\n\n/** Versioned document ref type name: `VersionedDocRef_vN` */\nexport function versionedDocRefName(version: number): string {\n return `VersionedDocRef_v${version}`;\n}\n\n/**\n * Names the SDK uses in the same files as model names, so no model may produce one. Other\n * library names only appear next to suffixed names like `Foo_v1`, so they can't clash.\n */\nexport const RESERVED_SDK_NAMES: readonly string[] = [\n // Fixed SDK exports\n \"DOCUMENT_TYPE_DESCRIPTION\",\n \"DOCUMENT_TYPE_NAME\",\n \"DocumentModel\",\n \"DocumentUpgradeFns\",\n \"LatestVersion\",\n \"MinSupportedVersion\",\n \"SupportedVersions\",\n \"VersionedDocRef\",\n \"asVersioned\",\n \"matchVersion\",\n // Imported or called by models.ts\n \"DocumentSchema\",\n \"Metadata\",\n \"RecordModel\",\n \"ReturnType\",\n \"UnionModel\",\n \"UpgradeFns\",\n];\n\n/** Per-version types file path: `./types_vN.js` */\nexport function typesFilePath(version: number): string {\n return `./types_v${version}.js`;\n}\n\n/** Per-version write types file path: `./writeTypes_vN.js` */\nexport function writeTypesFilePath(version: number): string {\n return `./writeTypes_v${version}.js`;\n}\n\n/** Types re-export file path: `./types.js` */\nexport const TYPES_REEXPORT_PATH = \"./types.js\";\n\n/** Schema re-export file path: `./schema.js` */\nexport const SCHEMA_REEXPORT_PATH = \"./schema.js\";\n\n/** Models file path: `./models.js` */\nexport const MODELS_PATH = \"./models.js\";\n\n/** Internal upgrades file path: `./_internal/upgrades.js` */\nexport const INTERNAL_UPGRADES_PATH = \"./_internal/upgrades.js\";\n\n/** Internal upgrade-functions file path: `./_internal/upgradeFns.js` */\nexport const INTERNAL_UPGRADE_FNS_PATH = \"./_internal/upgradeFns.js\";\n\n/** Versions file path: `./versions.js` */\nexport const VERSIONS_PATH = \"./versions.js\";\n\n/** Versioned doc ref file path: `./versionedDocRef.js` */\nexport const VERSIONED_DOC_REF_PATH = \"./versionedDocRef.js\";\n\n/** Document type identity constants file path: `./documentType.js` */\nexport const DOCUMENT_TYPE_PATH = \"./documentType.js\";\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,7 @@
17
17
  import { consola } from "consola";
18
18
  import fs from "fs-extra";
19
19
  import path from "path";
20
+ import { assertSdkNamesUnique } from "./assertSdkNamesUnique.js";
20
21
  import { generateDocumentTypeFromChain } from "./generateDocumentTypeFromSchema.js";
21
22
  import { generateIndexFromChain } from "./generateIndexFromSchema.js";
22
23
  import { generateInternalFromChain } from "./generateInternalFromSchema.js";
@@ -30,6 +31,7 @@ import { generateVersionsFromChain } from "./generateVersionsFromSchema.js";
30
31
  * them to `outputDir`.
31
32
  */
32
33
  export async function writeAllSdkFiles(resolved, outputDir, minSupportedVersion) {
34
+ assertSdkNamesUnique(resolved.chain, minSupportedVersion);
33
35
  await fs.ensureDir(outputDir);
34
36
 
35
37
  // Versioned types
@@ -1 +1 @@
1
- {"version":3,"file":"writeAllSdkFiles.js","names":["consola","fs","path","generateDocumentTypeFromChain","generateIndexFromChain","generateInternalFromChain","generateModelMetadataFromChain","generateScopeFromChain","generateVersionedTypesFromChain","generateVersionedZodFromChain","generateVersionsFromChain","writeAllSdkFiles","resolved","outputDir","minSupportedVersion","ensureDir","info","types","version","content","readTypes","filePath","join","writeFile","success","writeTypes","typesPath","typesReExport","zod","zodSchemas","schemaPath","schemaReExport","internal","internalDir","internalTypes","upgrades","internalSchema","internalUpgradeFns","versionsContent","versionsPath","indexContent","indexPath","modelMetadata","modelsPath","modelsFile","versionedDocRefContent","versionedDocRefPath","documentTypeContent","documentTypePath"],"sources":["writeAllSdkFiles.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"consola\";\nimport fs from \"fs-extra\";\nimport path from \"path\";\nimport { generateDocumentTypeFromChain } from \"./generateDocumentTypeFromSchema.js\";\nimport { generateIndexFromChain } from \"./generateIndexFromSchema.js\";\nimport { generateInternalFromChain } from \"./generateInternalFromSchema.js\";\nimport { generateModelMetadataFromChain } from \"./generateModelMetadataFromSchema.js\";\nimport { generateScopeFromChain } from \"./generateScopeFromSchema.js\";\nimport { generateVersionedTypesFromChain } from \"./generateVersionedTypesFromSchema.js\";\nimport { generateVersionedZodFromChain } from \"./generateVersionedZodFromSchema.js\";\nimport { generateVersionsFromChain } from \"./generateVersionsFromSchema.js\";\nimport type { ResolvedIrChain } from \"./resolveSchemaChain.js\";\n\n/**\n * Generate every versioned SDK output file from a resolved IR chain and write\n * them to `outputDir`.\n */\nexport async function writeAllSdkFiles(\n resolved: ResolvedIrChain,\n outputDir: string,\n minSupportedVersion: number | undefined,\n): Promise<void> {\n await fs.ensureDir(outputDir);\n\n // Versioned types\n consola.info(\"Generating versioned types...\");\n const types = generateVersionedTypesFromChain(resolved, minSupportedVersion);\n for (const [version, content] of types.readTypes) {\n const filePath = path.join(outputDir, `types_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated read types: ${filePath}`);\n }\n for (const [version, content] of types.writeTypes) {\n const filePath = path.join(outputDir, `writeTypes_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated write types: ${filePath}`);\n }\n const typesPath = path.join(outputDir, \"types.ts\");\n await fs.writeFile(typesPath, types.typesReExport, \"utf8\");\n consola.success(`Generated types re-export: ${typesPath}`);\n\n // Versioned Zod\n consola.info(\"Generating versioned Zod schemas...\");\n const zod = generateVersionedZodFromChain(resolved, minSupportedVersion);\n for (const [version, content] of zod.zodSchemas) {\n const filePath = path.join(outputDir, `schema_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated Zod schema: ${filePath}`);\n }\n const schemaPath = path.join(outputDir, \"schema.ts\");\n await fs.writeFile(schemaPath, zod.schemaReExport, \"utf8\");\n consola.success(`Generated schema re-export: ${schemaPath}`);\n\n // Internal\n consola.info(\"Generating internal types and upgrades...\");\n const internal = generateInternalFromChain(resolved);\n const internalDir = path.join(outputDir, \"_internal\");\n await fs.ensureDir(internalDir);\n await fs.writeFile(path.join(internalDir, \"types.ts\"), internal.internalTypes, \"utf8\");\n consola.success(`Generated internal types: ${path.join(internalDir, \"types.ts\")}`);\n await fs.writeFile(path.join(internalDir, \"upgrades.ts\"), internal.upgrades, \"utf8\");\n consola.success(`Generated upgrades: ${path.join(internalDir, \"upgrades.ts\")}`);\n await fs.writeFile(path.join(internalDir, \"schema.ts\"), internal.internalSchema, \"utf8\");\n consola.success(`Generated internal schema: ${path.join(internalDir, \"schema.ts\")}`);\n await fs.writeFile(path.join(internalDir, \"upgradeFns.ts\"), internal.internalUpgradeFns, \"utf8\");\n consola.success(`Generated upgrade functions: ${path.join(internalDir, \"upgradeFns.ts\")}`);\n\n // versions.ts\n consola.info(\"Generating version types...\");\n const versionsContent = generateVersionsFromChain(resolved, minSupportedVersion);\n const versionsPath = path.join(outputDir, \"versions.ts\");\n await fs.writeFile(versionsPath, versionsContent, \"utf8\");\n consola.success(`Generated versions: ${versionsPath}`);\n\n // index.ts\n consola.info(\"Generating index barrel export...\");\n const indexContent = generateIndexFromChain(resolved, minSupportedVersion);\n const indexPath = path.join(outputDir, \"index.ts\");\n await fs.writeFile(indexPath, indexContent, \"utf8\");\n consola.success(`Generated index: ${indexPath}`);\n\n // models.ts\n consola.info(\"Generating model metadata...\");\n const modelMetadata = generateModelMetadataFromChain(resolved, minSupportedVersion);\n const modelsPath = path.join(outputDir, \"models.ts\");\n await fs.writeFile(modelsPath, modelMetadata.modelsFile, \"utf8\");\n consola.success(`Generated models: ${modelsPath}`);\n\n // versionedDocRef.ts\n consola.info(\"Generating versioned document ref types...\");\n const versionedDocRefContent = generateScopeFromChain(resolved, minSupportedVersion);\n const versionedDocRefPath = path.join(outputDir, \"versionedDocRef.ts\");\n await fs.writeFile(versionedDocRefPath, versionedDocRefContent, \"utf8\");\n consola.success(`Generated versioned doc ref: ${versionedDocRefPath}`);\n\n // documentType.ts\n consola.info(\"Generating document type identity constants...\");\n const documentTypeContent = generateDocumentTypeFromChain(resolved);\n const documentTypePath = path.join(outputDir, \"documentType.ts\");\n await fs.writeFile(documentTypePath, documentTypeContent, \"utf8\");\n consola.success(`Generated document type: ${documentTypePath}`);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,SAAS;AACjC,OAAOC,EAAE,MAAM,UAAU;AACzB,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,6BAA6B,QAAQ,qCAAqC;AACnF,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,yBAAyB,QAAQ,iCAAiC;AAC3E,SAASC,8BAA8B,QAAQ,sCAAsC;AACrF,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,+BAA+B,QAAQ,uCAAuC;AACvF,SAASC,6BAA6B,QAAQ,qCAAqC;AACnF,SAASC,yBAAyB,QAAQ,iCAAiC;AAG3E;AACA;AACA;AACA;AACA,OAAO,eAAeC,gBAAgBA,CACpCC,QAAyB,EACzBC,SAAiB,EACjBC,mBAAuC,EACxB;EACf,MAAMb,EAAE,CAACc,SAAS,CAACF,SAAS,CAAC;;EAE7B;EACAb,OAAO,CAACgB,IAAI,CAAC,+BAA+B,CAAC;EAC7C,MAAMC,KAAK,GAAGT,+BAA+B,CAACI,QAAQ,EAAEE,mBAAmB,CAAC;EAC5E,KAAK,MAAM,CAACI,OAAO,EAAEC,OAAO,CAAC,IAAIF,KAAK,CAACG,SAAS,EAAE;IAChD,MAAMC,QAAQ,GAAGnB,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,UAAUK,OAAO,KAAK,CAAC;IAC7D,MAAMjB,EAAE,CAACsB,SAAS,CAACF,QAAQ,EAAEF,OAAO,EAAE,MAAM,CAAC;IAC7CnB,OAAO,CAACwB,OAAO,CAAC,yBAAyBH,QAAQ,EAAE,CAAC;EACtD;EACA,KAAK,MAAM,CAACH,OAAO,EAAEC,OAAO,CAAC,IAAIF,KAAK,CAACQ,UAAU,EAAE;IACjD,MAAMJ,QAAQ,GAAGnB,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,eAAeK,OAAO,KAAK,CAAC;IAClE,MAAMjB,EAAE,CAACsB,SAAS,CAACF,QAAQ,EAAEF,OAAO,EAAE,MAAM,CAAC;IAC7CnB,OAAO,CAACwB,OAAO,CAAC,0BAA0BH,QAAQ,EAAE,CAAC;EACvD;EACA,MAAMK,SAAS,GAAGxB,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,UAAU,CAAC;EAClD,MAAMZ,EAAE,CAACsB,SAAS,CAACG,SAAS,EAAET,KAAK,CAACU,aAAa,EAAE,MAAM,CAAC;EAC1D3B,OAAO,CAACwB,OAAO,CAAC,8BAA8BE,SAAS,EAAE,CAAC;;EAE1D;EACA1B,OAAO,CAACgB,IAAI,CAAC,qCAAqC,CAAC;EACnD,MAAMY,GAAG,GAAGnB,6BAA6B,CAACG,QAAQ,EAAEE,mBAAmB,CAAC;EACxE,KAAK,MAAM,CAACI,OAAO,EAAEC,OAAO,CAAC,IAAIS,GAAG,CAACC,UAAU,EAAE;IAC/C,MAAMR,QAAQ,GAAGnB,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,WAAWK,OAAO,KAAK,CAAC;IAC9D,MAAMjB,EAAE,CAACsB,SAAS,CAACF,QAAQ,EAAEF,OAAO,EAAE,MAAM,CAAC;IAC7CnB,OAAO,CAACwB,OAAO,CAAC,yBAAyBH,QAAQ,EAAE,CAAC;EACtD;EACA,MAAMS,UAAU,GAAG5B,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,WAAW,CAAC;EACpD,MAAMZ,EAAE,CAACsB,SAAS,CAACO,UAAU,EAAEF,GAAG,CAACG,cAAc,EAAE,MAAM,CAAC;EAC1D/B,OAAO,CAACwB,OAAO,CAAC,+BAA+BM,UAAU,EAAE,CAAC;;EAE5D;EACA9B,OAAO,CAACgB,IAAI,CAAC,2CAA2C,CAAC;EACzD,MAAMgB,QAAQ,GAAG3B,yBAAyB,CAACO,QAAQ,CAAC;EACpD,MAAMqB,WAAW,GAAG/B,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,WAAW,CAAC;EACrD,MAAMZ,EAAE,CAACc,SAAS,CAACkB,WAAW,CAAC;EAC/B,MAAMhC,EAAE,CAACsB,SAAS,CAACrB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,UAAU,CAAC,EAAED,QAAQ,CAACE,aAAa,EAAE,MAAM,CAAC;EACtFlC,OAAO,CAACwB,OAAO,CAAC,6BAA6BtB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;EAClF,MAAMhC,EAAE,CAACsB,SAAS,CAACrB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,aAAa,CAAC,EAAED,QAAQ,CAACG,QAAQ,EAAE,MAAM,CAAC;EACpFnC,OAAO,CAACwB,OAAO,CAAC,uBAAuBtB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;EAC/E,MAAMhC,EAAE,CAACsB,SAAS,CAACrB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,WAAW,CAAC,EAAED,QAAQ,CAACI,cAAc,EAAE,MAAM,CAAC;EACxFpC,OAAO,CAACwB,OAAO,CAAC,8BAA8BtB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;EACpF,MAAMhC,EAAE,CAACsB,SAAS,CAACrB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,eAAe,CAAC,EAAED,QAAQ,CAACK,kBAAkB,EAAE,MAAM,CAAC;EAChGrC,OAAO,CAACwB,OAAO,CAAC,gCAAgCtB,IAAI,CAACoB,IAAI,CAACW,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC;;EAE1F;EACAjC,OAAO,CAACgB,IAAI,CAAC,6BAA6B,CAAC;EAC3C,MAAMsB,eAAe,GAAG5B,yBAAyB,CAACE,QAAQ,EAAEE,mBAAmB,CAAC;EAChF,MAAMyB,YAAY,GAAGrC,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,aAAa,CAAC;EACxD,MAAMZ,EAAE,CAACsB,SAAS,CAACgB,YAAY,EAAED,eAAe,EAAE,MAAM,CAAC;EACzDtC,OAAO,CAACwB,OAAO,CAAC,uBAAuBe,YAAY,EAAE,CAAC;;EAEtD;EACAvC,OAAO,CAACgB,IAAI,CAAC,mCAAmC,CAAC;EACjD,MAAMwB,YAAY,GAAGpC,sBAAsB,CAACQ,QAAQ,EAAEE,mBAAmB,CAAC;EAC1E,MAAM2B,SAAS,GAAGvC,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,UAAU,CAAC;EAClD,MAAMZ,EAAE,CAACsB,SAAS,CAACkB,SAAS,EAAED,YAAY,EAAE,MAAM,CAAC;EACnDxC,OAAO,CAACwB,OAAO,CAAC,oBAAoBiB,SAAS,EAAE,CAAC;;EAEhD;EACAzC,OAAO,CAACgB,IAAI,CAAC,8BAA8B,CAAC;EAC5C,MAAM0B,aAAa,GAAGpC,8BAA8B,CAACM,QAAQ,EAAEE,mBAAmB,CAAC;EACnF,MAAM6B,UAAU,GAAGzC,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,WAAW,CAAC;EACpD,MAAMZ,EAAE,CAACsB,SAAS,CAACoB,UAAU,EAAED,aAAa,CAACE,UAAU,EAAE,MAAM,CAAC;EAChE5C,OAAO,CAACwB,OAAO,CAAC,qBAAqBmB,UAAU,EAAE,CAAC;;EAElD;EACA3C,OAAO,CAACgB,IAAI,CAAC,4CAA4C,CAAC;EAC1D,MAAM6B,sBAAsB,GAAGtC,sBAAsB,CAACK,QAAQ,EAAEE,mBAAmB,CAAC;EACpF,MAAMgC,mBAAmB,GAAG5C,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,oBAAoB,CAAC;EACtE,MAAMZ,EAAE,CAACsB,SAAS,CAACuB,mBAAmB,EAAED,sBAAsB,EAAE,MAAM,CAAC;EACvE7C,OAAO,CAACwB,OAAO,CAAC,gCAAgCsB,mBAAmB,EAAE,CAAC;;EAEtE;EACA9C,OAAO,CAACgB,IAAI,CAAC,gDAAgD,CAAC;EAC9D,MAAM+B,mBAAmB,GAAG5C,6BAA6B,CAACS,QAAQ,CAAC;EACnE,MAAMoC,gBAAgB,GAAG9C,IAAI,CAACoB,IAAI,CAACT,SAAS,EAAE,iBAAiB,CAAC;EAChE,MAAMZ,EAAE,CAACsB,SAAS,CAACyB,gBAAgB,EAAED,mBAAmB,EAAE,MAAM,CAAC;EACjE/C,OAAO,CAACwB,OAAO,CAAC,4BAA4BwB,gBAAgB,EAAE,CAAC;AACjE","ignoreList":[]}
1
+ {"version":3,"file":"writeAllSdkFiles.js","names":["consola","fs","path","assertSdkNamesUnique","generateDocumentTypeFromChain","generateIndexFromChain","generateInternalFromChain","generateModelMetadataFromChain","generateScopeFromChain","generateVersionedTypesFromChain","generateVersionedZodFromChain","generateVersionsFromChain","writeAllSdkFiles","resolved","outputDir","minSupportedVersion","chain","ensureDir","info","types","version","content","readTypes","filePath","join","writeFile","success","writeTypes","typesPath","typesReExport","zod","zodSchemas","schemaPath","schemaReExport","internal","internalDir","internalTypes","upgrades","internalSchema","internalUpgradeFns","versionsContent","versionsPath","indexContent","indexPath","modelMetadata","modelsPath","modelsFile","versionedDocRefContent","versionedDocRefPath","documentTypeContent","documentTypePath"],"sources":["writeAllSdkFiles.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { consola } from \"consola\";\nimport fs from \"fs-extra\";\nimport path from \"path\";\nimport { assertSdkNamesUnique } from \"./assertSdkNamesUnique.js\";\nimport { generateDocumentTypeFromChain } from \"./generateDocumentTypeFromSchema.js\";\nimport { generateIndexFromChain } from \"./generateIndexFromSchema.js\";\nimport { generateInternalFromChain } from \"./generateInternalFromSchema.js\";\nimport { generateModelMetadataFromChain } from \"./generateModelMetadataFromSchema.js\";\nimport { generateScopeFromChain } from \"./generateScopeFromSchema.js\";\nimport { generateVersionedTypesFromChain } from \"./generateVersionedTypesFromSchema.js\";\nimport { generateVersionedZodFromChain } from \"./generateVersionedZodFromSchema.js\";\nimport { generateVersionsFromChain } from \"./generateVersionsFromSchema.js\";\nimport type { ResolvedIrChain } from \"./resolveSchemaChain.js\";\n\n/**\n * Generate every versioned SDK output file from a resolved IR chain and write\n * them to `outputDir`.\n */\nexport async function writeAllSdkFiles(\n resolved: ResolvedIrChain,\n outputDir: string,\n minSupportedVersion: number | undefined,\n): Promise<void> {\n assertSdkNamesUnique(resolved.chain, minSupportedVersion);\n await fs.ensureDir(outputDir);\n\n // Versioned types\n consola.info(\"Generating versioned types...\");\n const types = generateVersionedTypesFromChain(resolved, minSupportedVersion);\n for (const [version, content] of types.readTypes) {\n const filePath = path.join(outputDir, `types_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated read types: ${filePath}`);\n }\n for (const [version, content] of types.writeTypes) {\n const filePath = path.join(outputDir, `writeTypes_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated write types: ${filePath}`);\n }\n const typesPath = path.join(outputDir, \"types.ts\");\n await fs.writeFile(typesPath, types.typesReExport, \"utf8\");\n consola.success(`Generated types re-export: ${typesPath}`);\n\n // Versioned Zod\n consola.info(\"Generating versioned Zod schemas...\");\n const zod = generateVersionedZodFromChain(resolved, minSupportedVersion);\n for (const [version, content] of zod.zodSchemas) {\n const filePath = path.join(outputDir, `schema_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated Zod schema: ${filePath}`);\n }\n const schemaPath = path.join(outputDir, \"schema.ts\");\n await fs.writeFile(schemaPath, zod.schemaReExport, \"utf8\");\n consola.success(`Generated schema re-export: ${schemaPath}`);\n\n // Internal\n consola.info(\"Generating internal types and upgrades...\");\n const internal = generateInternalFromChain(resolved);\n const internalDir = path.join(outputDir, \"_internal\");\n await fs.ensureDir(internalDir);\n await fs.writeFile(path.join(internalDir, \"types.ts\"), internal.internalTypes, \"utf8\");\n consola.success(`Generated internal types: ${path.join(internalDir, \"types.ts\")}`);\n await fs.writeFile(path.join(internalDir, \"upgrades.ts\"), internal.upgrades, \"utf8\");\n consola.success(`Generated upgrades: ${path.join(internalDir, \"upgrades.ts\")}`);\n await fs.writeFile(path.join(internalDir, \"schema.ts\"), internal.internalSchema, \"utf8\");\n consola.success(`Generated internal schema: ${path.join(internalDir, \"schema.ts\")}`);\n await fs.writeFile(path.join(internalDir, \"upgradeFns.ts\"), internal.internalUpgradeFns, \"utf8\");\n consola.success(`Generated upgrade functions: ${path.join(internalDir, \"upgradeFns.ts\")}`);\n\n // versions.ts\n consola.info(\"Generating version types...\");\n const versionsContent = generateVersionsFromChain(resolved, minSupportedVersion);\n const versionsPath = path.join(outputDir, \"versions.ts\");\n await fs.writeFile(versionsPath, versionsContent, \"utf8\");\n consola.success(`Generated versions: ${versionsPath}`);\n\n // index.ts\n consola.info(\"Generating index barrel export...\");\n const indexContent = generateIndexFromChain(resolved, minSupportedVersion);\n const indexPath = path.join(outputDir, \"index.ts\");\n await fs.writeFile(indexPath, indexContent, \"utf8\");\n consola.success(`Generated index: ${indexPath}`);\n\n // models.ts\n consola.info(\"Generating model metadata...\");\n const modelMetadata = generateModelMetadataFromChain(resolved, minSupportedVersion);\n const modelsPath = path.join(outputDir, \"models.ts\");\n await fs.writeFile(modelsPath, modelMetadata.modelsFile, \"utf8\");\n consola.success(`Generated models: ${modelsPath}`);\n\n // versionedDocRef.ts\n consola.info(\"Generating versioned document ref types...\");\n const versionedDocRefContent = generateScopeFromChain(resolved, minSupportedVersion);\n const versionedDocRefPath = path.join(outputDir, \"versionedDocRef.ts\");\n await fs.writeFile(versionedDocRefPath, versionedDocRefContent, \"utf8\");\n consola.success(`Generated versioned doc ref: ${versionedDocRefPath}`);\n\n // documentType.ts\n consola.info(\"Generating document type identity constants...\");\n const documentTypeContent = generateDocumentTypeFromChain(resolved);\n const documentTypePath = path.join(outputDir, \"documentType.ts\");\n await fs.writeFile(documentTypePath, documentTypeContent, \"utf8\");\n consola.success(`Generated document type: ${documentTypePath}`);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"arrayFields.js","names":[],"sources":["arrayFields.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */\n\n\nexport interface Container {\n readonly items: readonly string[];\n readonly numbers: readonly number[];\n}\n\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"arrayFields.js","names":[],"sources":["arrayFields.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */\n\n\nexport interface Container {\n readonly items: readonly string[];\n readonly numbers: readonly number[];\n}\n\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- /* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */
1
+ /* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */
2
2
 
3
3
  /**
4
4
  * A cat
@@ -1 +1 @@
1
- {"version":3,"file":"customDiscriminant.js","names":["isAnimalCat","value","kind","isAnimalDog"],"sources":["customDiscriminant.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */\n\n\n/**\n * A cat\n */\nexport interface Cat {\n readonly meow: string;\n readonly whiskers: number;\n}\n\n/**\n * A dog\n */\nexport interface Dog {\n readonly bark: string;\n readonly tailWags: number;\n}\n\nexport interface AnimalCat extends Cat {\n readonly kind: \"cat\";\n}\n\nexport interface AnimalDog extends Dog {\n readonly kind: \"dog\";\n}\n\nexport type Animal = AnimalCat | AnimalDog;\n\nexport function isAnimalCat(value: Animal): value is AnimalCat {\n return value.kind === \"cat\";\n}\n\nexport function isAnimalDog(value: Animal): value is AnimalDog {\n return value.kind === \"dog\";\n}\n\n"],"mappings":"AAAA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAgBA,OAAO,SAASA,WAAWA,CAACC,KAAa,EAAsB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,KAAK;AAC7B;AAEA,OAAO,SAASC,WAAWA,CAACF,KAAa,EAAsB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,KAAK;AAC7B","ignoreList":[]}
1
+ {"version":3,"file":"customDiscriminant.js","names":["isAnimalCat","value","kind","isAnimalDog"],"sources":["customDiscriminant.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */\n\n\n/**\n * A cat\n */\nexport interface Cat {\n readonly meow: string;\n readonly whiskers: number;\n}\n\n/**\n * A dog\n */\nexport interface Dog {\n readonly bark: string;\n readonly tailWags: number;\n}\n\nexport interface AnimalCat extends Cat {\n readonly kind: \"cat\";\n}\n\nexport interface AnimalDog extends Dog {\n readonly kind: \"dog\";\n}\n\nexport type Animal = AnimalCat | AnimalDog;\n\nexport function isAnimalCat(value: Animal): value is AnimalCat {\n return value.kind === \"cat\";\n}\n\nexport function isAnimalDog(value: Animal): value is AnimalDog {\n return value.kind === \"dog\";\n}\n\n"],"mappings":"AAAA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAgBA,OAAO,SAASA,WAAWA,CAACC,KAAa,EAAsB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,KAAK;AAC7B;AAEA,OAAO,SAASC,WAAWA,CAACF,KAAa,EAAsB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,KAAK;AAC7B","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- /* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */
1
+ /* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */
2
2
 
3
3
  /**
4
4
  * Represents an edge in a graph
@@ -1 +1 @@
1
- {"version":3,"file":"generateTypeScriptInterfaces.js","names":["isNodeObject","value","type","isNodeTextBox"],"sources":["generateTypeScriptInterfaces.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */\n\n\n/**\n * Represents an edge in a graph\n */\nexport interface Edge {\n readonly source: ObjectNode;\n readonly target: ObjectNode;\n}\n\nexport interface ObjectNode {\n readonly x: number;\n readonly y: number;\n readonly label?: string;\n readonly color?: string;\n}\n\n/**\n * Represents a text box in a graph\n */\nexport interface TextBox {\n readonly x: number;\n readonly y: number;\n readonly text: string;\n}\n\nexport interface NodeObject extends ObjectNode {\n readonly type: \"object\";\n}\n\nexport interface NodeTextBox extends TextBox {\n readonly type: \"text-box\";\n}\n\nexport type Node = NodeObject | NodeTextBox;\n\nexport function isNodeObject(value: Node): value is NodeObject {\n return value.type === \"object\";\n}\n\nexport function isNodeTextBox(value: Node): value is NodeTextBox {\n return value.type === \"text-box\";\n}\n\n"],"mappings":"AAAA;;AAGA;AACA;AACA;;AAaA;AACA;AACA;;AAiBA,OAAO,SAASA,YAAYA,CAACC,KAAW,EAAuB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ;AAChC;AAEA,OAAO,SAASC,aAAaA,CAACF,KAAW,EAAwB;EAC/D,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU;AAClC","ignoreList":[]}
1
+ {"version":3,"file":"generateTypeScriptInterfaces.js","names":["isNodeObject","value","type","isNodeTextBox"],"sources":["generateTypeScriptInterfaces.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */\n\n\n/**\n * Represents an edge in a graph\n */\nexport interface Edge {\n readonly source: ObjectNode;\n readonly target: ObjectNode;\n}\n\nexport interface ObjectNode {\n readonly x: number;\n readonly y: number;\n readonly label?: string;\n readonly color?: string;\n}\n\n/**\n * Represents a text box in a graph\n */\nexport interface TextBox {\n readonly x: number;\n readonly y: number;\n readonly text: string;\n}\n\nexport interface NodeObject extends ObjectNode {\n readonly type: \"object\";\n}\n\nexport interface NodeTextBox extends TextBox {\n readonly type: \"text-box\";\n}\n\nexport type Node = NodeObject | NodeTextBox;\n\nexport function isNodeObject(value: Node): value is NodeObject {\n return value.type === \"object\";\n}\n\nexport function isNodeTextBox(value: Node): value is NodeTextBox {\n return value.type === \"text-box\";\n}\n\n"],"mappings":"AAAA;;AAGA;AACA;AACA;;AAaA;AACA;AACA;;AAiBA,OAAO,SAASA,YAAYA,CAACC,KAAW,EAAuB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ;AAChC;AAEA,OAAO,SAASC,aAAaA,CAACF,KAAW,EAAwB;EAC/D,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU;AAClC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"refTypes.js","names":[],"sources":["refTypes.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */\n\nimport type { DocumentId, MediaId, ObjectId, ResourceRid, UserId } from \"@palantir/pack.document-schema.model-types\";\n\n/**\n * A record containing all reference types\n */\nexport interface Document {\n readonly id: string;\n readonly docRef: DocumentId;\n readonly userRef: UserId;\n readonly objectRef: ObjectId;\n readonly mediaRef: MediaId;\n readonly resourceRef: ResourceRid;\n readonly optionalDocRef?: DocumentId;\n readonly docRefArray: readonly DocumentId[];\n readonly userRefArray: readonly UserId[];\n readonly optionalResourceRef?: ResourceRid;\n readonly resourceRefArray: readonly ResourceRid[];\n}\n\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"refTypes.js","names":[],"sources":["refTypes.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */\n\nimport type { DocumentId, MediaId, ObjectId, ResourceRid, UserId } from \"@palantir/pack.document-schema.model-types\";\n\n/**\n * A record containing all reference types\n */\nexport interface Document {\n readonly id: string;\n readonly docRef: DocumentId;\n readonly userRef: UserId;\n readonly objectRef: ObjectId;\n readonly mediaRef: MediaId;\n readonly resourceRef: ResourceRid;\n readonly optionalDocRef?: DocumentId;\n readonly docRefArray: readonly DocumentId[];\n readonly userRefArray: readonly UserId[];\n readonly optionalResourceRef?: ResourceRid;\n readonly resourceRefArray: readonly ResourceRid[];\n}\n\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"simpleRecord.js","names":[],"sources":["simpleRecord.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */\n\n\n/**\n * A person record\n */\nexport interface Person {\n readonly name: string;\n readonly age: number;\n readonly email?: string;\n}\n\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"simpleRecord.js","names":[],"sources":["simpleRecord.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */\n\n\n/**\n * A person record\n */\nexport interface Person {\n readonly name: string;\n readonly age: number;\n readonly email?: string;\n}\n\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- /* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */
1
+ /* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */
2
2
 
3
3
  /**
4
4
  * A node in the graph
@@ -1 +1 @@
1
- {"version":3,"file":"simpleSteps.js","names":["isNodeObject","value","type","isNodeTextBox"],"sources":["simpleSteps.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.32.0 */\n\n\n/**\n * A node in the graph\n */\nexport interface ObjectNode {\n readonly x: number;\n readonly y: number;\n readonly object: string;\n readonly label?: string;\n readonly edges: readonly Edge[];\n}\n\n/**\n * A text box in the graph\n */\nexport interface TextBox {\n readonly x: number;\n readonly y: number;\n readonly text: string;\n}\n\n/**\n * An edge in the graph\n */\nexport interface Edge {\n readonly source: ObjectNode;\n readonly target: ObjectNode;\n}\n\nexport interface NodeObject extends ObjectNode {\n readonly type: \"object\";\n}\n\nexport interface NodeTextBox extends TextBox {\n readonly type: \"textBox\";\n}\n\nexport type Node = NodeObject | NodeTextBox;\n\nexport function isNodeObject(value: Node): value is NodeObject {\n return value.type === \"object\";\n}\n\nexport function isNodeTextBox(value: Node): value is NodeTextBox {\n return value.type === \"textBox\";\n}\n\n"],"mappings":"AAAA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAOA;AACA;AACA;;AAgBA,OAAO,SAASA,YAAYA,CAACC,KAAW,EAAuB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ;AAChC;AAEA,OAAO,SAASC,aAAaA,CAACF,KAAW,EAAwB;EAC/D,OAAOA,KAAK,CAACC,IAAI,KAAK,SAAS;AACjC","ignoreList":[]}
1
+ {"version":3,"file":"simpleSteps.js","names":["isNodeObject","value","type","isNodeTextBox"],"sources":["simpleSteps.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.34.0 */\n\n\n/**\n * A node in the graph\n */\nexport interface ObjectNode {\n readonly x: number;\n readonly y: number;\n readonly object: string;\n readonly label?: string;\n readonly edges: readonly Edge[];\n}\n\n/**\n * A text box in the graph\n */\nexport interface TextBox {\n readonly x: number;\n readonly y: number;\n readonly text: string;\n}\n\n/**\n * An edge in the graph\n */\nexport interface Edge {\n readonly source: ObjectNode;\n readonly target: ObjectNode;\n}\n\nexport interface NodeObject extends ObjectNode {\n readonly type: \"object\";\n}\n\nexport interface NodeTextBox extends TextBox {\n readonly type: \"textBox\";\n}\n\nexport type Node = NodeObject | NodeTextBox;\n\nexport function isNodeObject(value: Node): value is NodeObject {\n return value.type === \"object\";\n}\n\nexport function isNodeTextBox(value: Node): value is NodeTextBox {\n return value.type === \"textBox\";\n}\n\n"],"mappings":"AAAA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAOA;AACA;AACA;;AAgBA,OAAO,SAASA,YAAYA,CAACC,KAAW,EAAuB;EAC7D,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ;AAChC;AAEA,OAAO,SAASC,aAAaA,CAACF,KAAW,EAAwB;EAC/D,OAAOA,KAAK,CAACC,IAAI,KAAK,SAAS;AACjC","ignoreList":[]}
@@ -94,9 +94,11 @@ function collectModels(exportKey, modelDef, nameToExportKey, outModels, fallback
94
94
  export function convertRecordDefToIr(recordDef, exportKey, nameToExportKey, fallbackVersion = 1, provenance) {
95
95
  const modelKey = exportKey ?? recordDef.name;
96
96
  const fieldVersions = provenance?.fieldVersions?.[modelKey];
97
+ const fieldMinorVersions = provenance?.fieldMinorVersions?.[modelKey];
97
98
  const deprecations = provenance?.deprecations?.[modelKey];
98
99
  const fields = Object.entries(recordDef.fields).map(([fieldKey, fieldType]) => {
99
100
  const dep = deprecations?.[fieldKey];
101
+ const addedInMinorVersion = fieldMinorVersions?.[fieldKey] ?? 0;
100
102
  return {
101
103
  key: fieldKey,
102
104
  name: fieldKey,
@@ -104,6 +106,9 @@ export function convertRecordDefToIr(recordDef, exportKey, nameToExportKey, fall
104
106
  fieldType: convertTypeToFieldTypeUnion(fieldType, nameToExportKey),
105
107
  metadata: {
106
108
  addedInVersion: fieldVersions?.[fieldKey] ?? fallbackVersion,
109
+ ...(addedInMinorVersion > 0 ? {
110
+ addedInMinorVersion
111
+ } : {}),
107
112
  ...(dep != null ? {
108
113
  deprecatedFromVersion: dep.fromVersion,
109
114
  ...(dep.message != null ? {
@@ -125,6 +130,23 @@ export function convertUnionDefToIr(unionDef, exportKey, nameToExportKey, fallba
125
130
  const modelKey = exportKey ?? unionDef.name;
126
131
  const variantEntries = Object.entries(unionDef.variants).map(([variantName, modelRef]) => [variantName, nameToExportKey?.get(modelRef.name) ?? modelRef.name]);
127
132
  const unionAddedIn = provenance?.modelVersions?.[modelKey] ?? fallbackVersion;
133
+ const unionAddedInMinor = provenance?.modelMinorVersions?.[modelKey] ?? 0;
134
+
135
+ // Only variants added after the union get an entry; the rest inherit the union's version. A union
136
+ // that never gained a variant has no variantMetadata, so its output stays the same.
137
+ const variantMetadata = {};
138
+ for (const variantName of Object.keys(unionDef.variants)) {
139
+ const addedIn = provenance?.variantVersions?.[modelKey]?.[variantName] ?? unionAddedIn;
140
+ const addedInMinor = provenance?.variantMinorVersions?.[modelKey]?.[variantName] ?? 0;
141
+ if (addedIn !== unionAddedIn || addedInMinor !== unionAddedInMinor) {
142
+ variantMetadata[variantName] = {
143
+ addedInVersion: addedIn,
144
+ ...(addedInMinor > 0 ? {
145
+ addedInMinorVersion: addedInMinor
146
+ } : {})
147
+ };
148
+ }
149
+ }
128
150
  return {
129
151
  key: modelKey,
130
152
  name: unionDef.name,
@@ -132,8 +154,14 @@ export function convertUnionDefToIr(unionDef, exportKey, nameToExportKey, fallba
132
154
  discriminant: unionDef.discriminant,
133
155
  variants: Object.fromEntries(variantEntries),
134
156
  metadata: {
135
- addedInVersion: unionAddedIn
136
- }
157
+ addedInVersion: unionAddedIn,
158
+ ...(unionAddedInMinor > 0 ? {
159
+ addedInMinorVersion: unionAddedInMinor
160
+ } : {})
161
+ },
162
+ ...(Object.keys(variantMetadata).length > 0 ? {
163
+ variantMetadata
164
+ } : {})
137
165
  };
138
166
  }
139
167
 
@@ -1 +1 @@
1
- {"version":3,"file":"convertStepsToIr.js","names":["invariant","IFieldTypeUnion","IFieldValueUnion","IModelDef","assertNever","convertStepsToSchema","convertStepsToIr","steps","metadata","recordDefinitions","unionDefinitions","schema","Object","fromEntries","map","def","name","convertSchemaToIr","inputSchema","provenance","nameToExportKey","Map","exportKey","modelDef","entries","existing","get","process","env","NODE_ENV","set","fallbackVersion","version","primaryModelKeys","models","collectModels","push","description","outModels","has","type","record","convertRecordDefToIr","union","convertUnionDefToIr","recordDef","modelKey","fieldVersions","deprecations","fields","fieldKey","fieldType","dep","key","undefined","convertTypeToFieldTypeUnion","addedInVersion","deprecatedFromVersion","fromVersion","message","deprecatedMessage","isOptional","docs","unionDef","variantEntries","variants","variantName","modelRef","unionAddedIn","modelVersions","discriminant","schemaType","items","allowNullValue","elementType","item","array","value","convertTypeToFieldValueUnion","Error","resourceRef","resourceRids","boolean","docRef","documentTypeRids","double","mediaRef","object","interfaceTypeRids","objectTypeRids","modelTypes","string","unmanagedJson","userRef"],"sources":["convertStepsToIr.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type * as P from \"@palantir/pack.schema\";\nimport invariant from \"tiny-invariant\";\nimport type {\n IModelTypeKey,\n IUnionVariantKey,\n} from \"../../lib/pack-docschema-api/pack-docschema-api\";\nimport type {\n IFieldDef,\n IRealTimeDocumentSchema,\n IRecordDef,\n IUnionDef,\n} from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport {\n IFieldTypeUnion,\n IFieldValueUnion,\n IModelDef,\n} from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { assertNever } from \"../assertNever.js\";\nimport { convertStepsToSchema } from \"./convertStepsToSchema.js\";\nimport type { MigrationStep } from \"./parseMigrationSteps.js\";\n\nexport interface SchemaMetadata {\n readonly name?: string;\n readonly description?: string;\n readonly version?: number;\n}\n\n/**\n * Per-field version provenance for a schema, keyed by model export key then\n * field name. Supplied by the version-aware caller (`resolveSchemaChain`) so the\n * IR records the version each field first appeared in (and any deprecation)\n * instead of a placeholder. When omitted, fields fall back to the schema's\n * top-level version (correct for single-version / steps-based callers).\n */\nexport interface SchemaProvenance {\n readonly fieldVersions?: Record<string, Record<string, number>>;\n readonly modelVersions?: Record<string, number>;\n readonly deprecations?: P.VersionDeprecations;\n}\n\n/**\n * Converts migration steps to Palantir IR format\n */\nexport function convertStepsToIr(\n steps: readonly MigrationStep[],\n metadata?: SchemaMetadata,\n): IRealTimeDocumentSchema {\n // First convert steps to document-schema-api format\n const { recordDefinitions, unionDefinitions } = convertStepsToSchema(steps as MigrationStep[]);\n\n const schema = {\n ...Object.fromEntries(recordDefinitions.map(def => [def.name, def])),\n ...Object.fromEntries(unionDefinitions.map(def => [def.name, def])),\n };\n\n return convertSchemaToIr(schema, metadata);\n}\n\n/**\n * Converts record and union definitions to Palantir IR format. When\n * `provenance` is supplied (by the version-aware caller), each field/model is\n * stamped with the version it first appeared in and any deprecation; otherwise\n * everything falls back to `metadata.version` (default 1).\n */\nexport function convertSchemaToIr(\n inputSchema: P.Schema<P.ReturnedSchema>,\n metadata?: SchemaMetadata,\n provenance?: SchemaProvenance,\n): IRealTimeDocumentSchema {\n // Build a mapping from declared model name → export key so that union variant\n // refs (which use declared model names) can be remapped to export keys.\n const nameToExportKey = new Map<string, string>();\n for (const [exportKey, modelDef] of Object.entries(inputSchema)) {\n const existing = nameToExportKey.get(modelDef.name);\n invariant(\n existing == null,\n `Duplicate declared model name \"${modelDef.name}\": exported as both \"${existing}\" and \"${exportKey}\"`,\n );\n nameToExportKey.set(modelDef.name, exportKey);\n }\n const fallbackVersion = metadata?.version ?? 1;\n\n const primaryModelKeys: IModelTypeKey[] = [];\n const models = new Map<IModelTypeKey, IModelDef>();\n\n for (const [exportKey, modelDef] of Object.entries(inputSchema)) {\n if (collectModels(exportKey, modelDef, nameToExportKey, models, fallbackVersion, provenance)) {\n primaryModelKeys.push(exportKey);\n }\n }\n\n return {\n name: metadata?.name ?? \"Generated Schema\",\n description: metadata?.description ?? \"Schema generated from migration steps\",\n version: fallbackVersion,\n primaryModelKeys,\n models: Object.fromEntries(models),\n };\n}\n\nfunction collectModels(\n exportKey: string,\n modelDef: P.ModelDef,\n nameToExportKey: Map<string, string>,\n outModels: Map<IModelTypeKey, IModelDef>,\n fallbackVersion: number,\n provenance?: SchemaProvenance,\n): boolean {\n invariant(\n !outModels.has(exportKey),\n `Duplicate model definition: ${exportKey}`,\n );\n\n switch (modelDef.type) {\n case \"record\": {\n outModels.set(\n exportKey,\n IModelDef.record(\n convertRecordDefToIr(modelDef, exportKey, nameToExportKey, fallbackVersion, provenance),\n ),\n );\n return true;\n }\n case \"union\": {\n outModels.set(\n exportKey,\n IModelDef.union(\n convertUnionDefToIr(modelDef, exportKey, nameToExportKey, fallbackVersion, provenance),\n ),\n );\n return true;\n }\n default:\n assertNever(modelDef);\n }\n}\n\nexport function convertRecordDefToIr(\n recordDef: P.RecordDef,\n exportKey?: string,\n nameToExportKey?: Map<string, string>,\n fallbackVersion: number = 1,\n provenance?: SchemaProvenance,\n): IRecordDef {\n const modelKey = exportKey ?? recordDef.name;\n const fieldVersions = provenance?.fieldVersions?.[modelKey];\n const deprecations = provenance?.deprecations?.[modelKey];\n const fields = Object.entries(recordDef.fields).map(([fieldKey, fieldType]): IFieldDef => {\n const dep = deprecations?.[fieldKey];\n return {\n key: fieldKey,\n name: fieldKey,\n description: undefined,\n fieldType: convertTypeToFieldTypeUnion(fieldType, nameToExportKey),\n metadata: {\n addedInVersion: fieldVersions?.[fieldKey] ?? fallbackVersion,\n ...(dep != null\n ? {\n deprecatedFromVersion: dep.fromVersion,\n ...(dep.message != null ? { deprecatedMessage: dep.message } : {}),\n }\n : {}),\n },\n isOptional: fieldType.type === \"optional\" ? true : undefined,\n };\n });\n\n return {\n key: modelKey,\n name: recordDef.name,\n description: recordDef.docs ?? undefined,\n fields,\n };\n}\n\nexport function convertUnionDefToIr(\n unionDef: P.UnionDef,\n exportKey?: string,\n nameToExportKey?: Map<string, string>,\n fallbackVersion: number = 1,\n provenance?: SchemaProvenance,\n): IUnionDef {\n const modelKey = exportKey ?? unionDef.name;\n const variantEntries = Object.entries(unionDef.variants).map((\n [variantName, modelRef],\n ) =>\n [\n variantName as IUnionVariantKey,\n (nameToExportKey?.get(modelRef.name) ?? modelRef.name) as IModelTypeKey,\n ] as const\n );\n\n const unionAddedIn = provenance?.modelVersions?.[modelKey] ?? fallbackVersion;\n\n return {\n key: modelKey,\n name: unionDef.name,\n description: unionDef.docs,\n discriminant: unionDef.discriminant,\n variants: Object.fromEntries(variantEntries),\n metadata: { addedInVersion: unionAddedIn },\n };\n}\n\n// TODO: rename to convertSchemaTypeToFieldTypeUnion\nexport function convertTypeToFieldTypeUnion(\n schemaType: P.Type,\n nameToExportKey?: Map<string, string>,\n): IFieldTypeUnion {\n switch (schemaType.type) {\n case \"array\": {\n // P.Array.items is typed as TypeBase due to the generic; narrow via type field\n const items = schemaType.items as P.Type;\n const allowNullValue = items.type === \"optional\";\n const elementType: P.Type = allowNullValue ? (items as P.Optional).item as P.Type : items;\n return IFieldTypeUnion.array({\n allowNullValue,\n value: convertTypeToFieldValueUnion(elementType, nameToExportKey),\n });\n }\n\n case \"optional\":\n // Optional flag is handled at field level; unwrap and recurse on inner type\n return convertTypeToFieldTypeUnion(schemaType.item as P.Type, nameToExportKey);\n\n case \"resourceRef\":\n case \"boolean\":\n case \"docRef\":\n case \"double\":\n case \"mediaRef\":\n case \"objectRef\":\n case \"ref\":\n case \"string\":\n case \"unknown\":\n case \"userRef\":\n return IFieldTypeUnion.value(convertTypeToFieldValueUnion(schemaType, nameToExportKey));\n\n default:\n assertNever(schemaType);\n }\n}\n\nfunction convertTypeToFieldValueUnion(\n schemaType: P.Type,\n nameToExportKey?: Map<string, string>,\n): IFieldValueUnion {\n switch (schemaType.type) {\n case \"array\":\n throw new Error(\n \"Nested arrays are not supported in the IR. \"\n + \"Wrap the inner array in a record instead.\",\n );\n\n case \"resourceRef\":\n return IFieldValueUnion.resourceRef({\n resourceRids: [],\n });\n\n case \"boolean\":\n return IFieldValueUnion.boolean({});\n\n case \"docRef\":\n return IFieldValueUnion.docRef({\n documentTypeRids: [], // FIXME: confirm whether we will use rids in the deployed schema.\n });\n\n case \"double\":\n return IFieldValueUnion.double({});\n\n case \"mediaRef\":\n return IFieldValueUnion.mediaRef({});\n\n case \"objectRef\":\n return IFieldValueUnion.object({\n // FIXME: confirm whether we will use rids in the deployed schema.\n interfaceTypeRids: [],\n objectTypeRids: [],\n });\n\n case \"optional\":\n // Nested optional — unwrap and continue\n // TODO: probably warn? maybe throw\n return convertTypeToFieldValueUnion(schemaType.item as P.Type, nameToExportKey);\n\n case \"ref\": {\n const modelKey = nameToExportKey?.get(schemaType.name) ?? schemaType.name;\n return IFieldValueUnion.modelRef({ modelTypes: [modelKey as IModelTypeKey] });\n }\n\n case \"string\":\n return IFieldValueUnion.string({});\n\n case \"unknown\":\n return IFieldValueUnion.unmanagedJson({});\n\n case \"userRef\":\n return IFieldValueUnion.userRef({});\n\n default:\n assertNever(schemaType);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAOA,SAAS,MAAM,gBAAgB;AAWtC,SACEC,eAAe,EACfC,gBAAgB,EAChBC,SAAS,QACJ,yDAAyD;AAChE,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,oBAAoB,QAAQ,2BAA2B;;AAShE;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,KAA+B,EAC/BC,QAAyB,EACA;EACzB;EACA,MAAM;IAAEC,iBAAiB;IAAEC;EAAiB,CAAC,GAAGL,oBAAoB,CAACE,KAAwB,CAAC;EAE9F,MAAMI,MAAM,GAAG;IACb,GAAGC,MAAM,CAACC,WAAW,CAACJ,iBAAiB,CAACK,GAAG,CAACC,GAAG,IAAI,CAACA,GAAG,CAACC,IAAI,EAAED,GAAG,CAAC,CAAC,CAAC;IACpE,GAAGH,MAAM,CAACC,WAAW,CAACH,gBAAgB,CAACI,GAAG,CAACC,GAAG,IAAI,CAACA,GAAG,CAACC,IAAI,EAAED,GAAG,CAAC,CAAC;EACpE,CAAC;EAED,OAAOE,iBAAiB,CAACN,MAAM,EAAEH,QAAQ,CAAC;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,iBAAiBA,CAC/BC,WAAuC,EACvCV,QAAyB,EACzBW,UAA6B,EACJ;EACzB;EACA;EACA,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;EACjD,KAAK,MAAM,CAACC,SAAS,EAAEC,QAAQ,CAAC,IAAIX,MAAM,CAACY,OAAO,CAACN,WAAW,CAAC,EAAE;IAC/D,MAAMO,QAAQ,GAAGL,eAAe,CAACM,GAAG,CAACH,QAAQ,CAACP,IAAI,CAAC;IACnD,EACES,QAAQ,IAAI,IAAI,IAAAE,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADlB7B,SAAS,QAEP,kCAAkCuB,QAAQ,CAACP,IAAI,wBAAwBS,QAAQ,UAAUH,SAAS,GAAG,IAFvGtB,SAAS;IAIToB,eAAe,CAACU,GAAG,CAACP,QAAQ,CAACP,IAAI,EAAEM,SAAS,CAAC;EAC/C;EACA,MAAMS,eAAe,GAAGvB,QAAQ,EAAEwB,OAAO,IAAI,CAAC;EAE9C,MAAMC,gBAAiC,GAAG,EAAE;EAC5C,MAAMC,MAAM,GAAG,IAAIb,GAAG,CAA2B,CAAC;EAElD,KAAK,MAAM,CAACC,SAAS,EAAEC,QAAQ,CAAC,IAAIX,MAAM,CAACY,OAAO,CAACN,WAAW,CAAC,EAAE;IAC/D,IAAIiB,aAAa,CAACb,SAAS,EAAEC,QAAQ,EAAEH,eAAe,EAAEc,MAAM,EAAEH,eAAe,EAAEZ,UAAU,CAAC,EAAE;MAC5Fc,gBAAgB,CAACG,IAAI,CAACd,SAAS,CAAC;IAClC;EACF;EAEA,OAAO;IACLN,IAAI,EAAER,QAAQ,EAAEQ,IAAI,IAAI,kBAAkB;IAC1CqB,WAAW,EAAE7B,QAAQ,EAAE6B,WAAW,IAAI,uCAAuC;IAC7EL,OAAO,EAAED,eAAe;IACxBE,gBAAgB;IAChBC,MAAM,EAAEtB,MAAM,CAACC,WAAW,CAACqB,MAAM;EACnC,CAAC;AACH;AAEA,SAASC,aAAaA,CACpBb,SAAiB,EACjBC,QAAoB,EACpBH,eAAoC,EACpCkB,SAAwC,EACxCP,eAAuB,EACvBZ,UAA6B,EACpB;EACT,CACE,CAACmB,SAAS,CAACC,GAAG,CAACjB,SAAS,CAAC,GAAAK,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD3B7B,SAAS,QAEP,+BAA+BsB,SAAS,EAAE,IAF5CtB,SAAS;EAKT,QAAQuB,QAAQ,CAACiB,IAAI;IACnB,KAAK,QAAQ;MAAE;QACbF,SAAS,CAACR,GAAG,CACXR,SAAS,EACTnB,SAAS,CAACsC,MAAM,CACdC,oBAAoB,CAACnB,QAAQ,EAAED,SAAS,EAAEF,eAAe,EAAEW,eAAe,EAAEZ,UAAU,CACxF,CACF,CAAC;QACD,OAAO,IAAI;MACb;IACA,KAAK,OAAO;MAAE;QACZmB,SAAS,CAACR,GAAG,CACXR,SAAS,EACTnB,SAAS,CAACwC,KAAK,CACbC,mBAAmB,CAACrB,QAAQ,EAAED,SAAS,EAAEF,eAAe,EAAEW,eAAe,EAAEZ,UAAU,CACvF,CACF,CAAC;QACD,OAAO,IAAI;MACb;IACA;MACEf,WAAW,CAACmB,QAAQ,CAAC;EACzB;AACF;AAEA,OAAO,SAASmB,oBAAoBA,CAClCG,SAAsB,EACtBvB,SAAkB,EAClBF,eAAqC,EACrCW,eAAuB,GAAG,CAAC,EAC3BZ,UAA6B,EACjB;EACZ,MAAM2B,QAAQ,GAAGxB,SAAS,IAAIuB,SAAS,CAAC7B,IAAI;EAC5C,MAAM+B,aAAa,GAAG5B,UAAU,EAAE4B,aAAa,GAAGD,QAAQ,CAAC;EAC3D,MAAME,YAAY,GAAG7B,UAAU,EAAE6B,YAAY,GAAGF,QAAQ,CAAC;EACzD,MAAMG,MAAM,GAAGrC,MAAM,CAACY,OAAO,CAACqB,SAAS,CAACI,MAAM,CAAC,CAACnC,GAAG,CAAC,CAAC,CAACoC,QAAQ,EAAEC,SAAS,CAAC,KAAgB;IACxF,MAAMC,GAAG,GAAGJ,YAAY,GAAGE,QAAQ,CAAC;IACpC,OAAO;MACLG,GAAG,EAAEH,QAAQ;MACblC,IAAI,EAAEkC,QAAQ;MACdb,WAAW,EAAEiB,SAAS;MACtBH,SAAS,EAAEI,2BAA2B,CAACJ,SAAS,EAAE/B,eAAe,CAAC;MAClEZ,QAAQ,EAAE;QACRgD,cAAc,EAAET,aAAa,GAAGG,QAAQ,CAAC,IAAInB,eAAe;QAC5D,IAAIqB,GAAG,IAAI,IAAI,GACX;UACAK,qBAAqB,EAAEL,GAAG,CAACM,WAAW;UACtC,IAAIN,GAAG,CAACO,OAAO,IAAI,IAAI,GAAG;YAAEC,iBAAiB,EAAER,GAAG,CAACO;UAAQ,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC,GACC,CAAC,CAAC;MACR,CAAC;MACDE,UAAU,EAAEV,SAAS,CAACX,IAAI,KAAK,UAAU,GAAG,IAAI,GAAGc;IACrD,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLD,GAAG,EAAEP,QAAQ;IACb9B,IAAI,EAAE6B,SAAS,CAAC7B,IAAI;IACpBqB,WAAW,EAAEQ,SAAS,CAACiB,IAAI,IAAIR,SAAS;IACxCL;EACF,CAAC;AACH;AAEA,OAAO,SAASL,mBAAmBA,CACjCmB,QAAoB,EACpBzC,SAAkB,EAClBF,eAAqC,EACrCW,eAAuB,GAAG,CAAC,EAC3BZ,UAA6B,EAClB;EACX,MAAM2B,QAAQ,GAAGxB,SAAS,IAAIyC,QAAQ,CAAC/C,IAAI;EAC3C,MAAMgD,cAAc,GAAGpD,MAAM,CAACY,OAAO,CAACuC,QAAQ,CAACE,QAAQ,CAAC,CAACnD,GAAG,CAAC,CAC3D,CAACoD,WAAW,EAAEC,QAAQ,CAAC,KAEvB,CACED,WAAW,EACV9C,eAAe,EAAEM,GAAG,CAACyC,QAAQ,CAACnD,IAAI,CAAC,IAAImD,QAAQ,CAACnD,IAAI,CAEzD,CAAC;EAED,MAAMoD,YAAY,GAAGjD,UAAU,EAAEkD,aAAa,GAAGvB,QAAQ,CAAC,IAAIf,eAAe;EAE7E,OAAO;IACLsB,GAAG,EAAEP,QAAQ;IACb9B,IAAI,EAAE+C,QAAQ,CAAC/C,IAAI;IACnBqB,WAAW,EAAE0B,QAAQ,CAACD,IAAI;IAC1BQ,YAAY,EAAEP,QAAQ,CAACO,YAAY;IACnCL,QAAQ,EAAErD,MAAM,CAACC,WAAW,CAACmD,cAAc,CAAC;IAC5CxD,QAAQ,EAAE;MAAEgD,cAAc,EAAEY;IAAa;EAC3C,CAAC;AACH;;AAEA;AACA,OAAO,SAASb,2BAA2BA,CACzCgB,UAAkB,EAClBnD,eAAqC,EACpB;EACjB,QAAQmD,UAAU,CAAC/B,IAAI;IACrB,KAAK,OAAO;MAAE;QACZ;QACA,MAAMgC,KAAK,GAAGD,UAAU,CAACC,KAAe;QACxC,MAAMC,cAAc,GAAGD,KAAK,CAAChC,IAAI,KAAK,UAAU;QAChD,MAAMkC,WAAmB,GAAGD,cAAc,GAAID,KAAK,CAAgBG,IAAI,GAAaH,KAAK;QACzF,OAAOvE,eAAe,CAAC2E,KAAK,CAAC;UAC3BH,cAAc;UACdI,KAAK,EAAEC,4BAA4B,CAACJ,WAAW,EAAEtD,eAAe;QAClE,CAAC,CAAC;MACJ;IAEA,KAAK,UAAU;MACb;MACA,OAAOmC,2BAA2B,CAACgB,UAAU,CAACI,IAAI,EAAYvD,eAAe,CAAC;IAEhF,KAAK,aAAa;IAClB,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,UAAU;IACf,KAAK,WAAW;IAChB,KAAK,KAAK;IACV,KAAK,QAAQ;IACb,KAAK,SAAS;IACd,KAAK,SAAS;MACZ,OAAOnB,eAAe,CAAC4E,KAAK,CAACC,4BAA4B,CAACP,UAAU,EAAEnD,eAAe,CAAC,CAAC;IAEzF;MACEhB,WAAW,CAACmE,UAAU,CAAC;EAC3B;AACF;AAEA,SAASO,4BAA4BA,CACnCP,UAAkB,EAClBnD,eAAqC,EACnB;EAClB,QAAQmD,UAAU,CAAC/B,IAAI;IACrB,KAAK,OAAO;MACV,MAAM,IAAIuC,KAAK,CACb,6CAA6C,GACzC,2CACN,CAAC;IAEH,KAAK,aAAa;MAChB,OAAO7E,gBAAgB,CAAC8E,WAAW,CAAC;QAClCC,YAAY,EAAE;MAChB,CAAC,CAAC;IAEJ,KAAK,SAAS;MACZ,OAAO/E,gBAAgB,CAACgF,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC,KAAK,QAAQ;MACX,OAAOhF,gBAAgB,CAACiF,MAAM,CAAC;QAC7BC,gBAAgB,EAAE,EAAE,CAAE;MACxB,CAAC,CAAC;IAEJ,KAAK,QAAQ;MACX,OAAOlF,gBAAgB,CAACmF,MAAM,CAAC,CAAC,CAAC,CAAC;IAEpC,KAAK,UAAU;MACb,OAAOnF,gBAAgB,CAACoF,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,KAAK,WAAW;MACd,OAAOpF,gBAAgB,CAACqF,MAAM,CAAC;QAC7B;QACAC,iBAAiB,EAAE,EAAE;QACrBC,cAAc,EAAE;MAClB,CAAC,CAAC;IAEJ,KAAK,UAAU;MACb;MACA;MACA,OAAOX,4BAA4B,CAACP,UAAU,CAACI,IAAI,EAAYvD,eAAe,CAAC;IAEjF,KAAK,KAAK;MAAE;QACV,MAAM0B,QAAQ,GAAG1B,eAAe,EAAEM,GAAG,CAAC6C,UAAU,CAACvD,IAAI,CAAC,IAAIuD,UAAU,CAACvD,IAAI;QACzE,OAAOd,gBAAgB,CAACiE,QAAQ,CAAC;UAAEuB,UAAU,EAAE,CAAC5C,QAAQ;QAAmB,CAAC,CAAC;MAC/E;IAEA,KAAK,QAAQ;MACX,OAAO5C,gBAAgB,CAACyF,MAAM,CAAC,CAAC,CAAC,CAAC;IAEpC,KAAK,SAAS;MACZ,OAAOzF,gBAAgB,CAAC0F,aAAa,CAAC,CAAC,CAAC,CAAC;IAE3C,KAAK,SAAS;MACZ,OAAO1F,gBAAgB,CAAC2F,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC;MACEzF,WAAW,CAACmE,UAAU,CAAC;EAC3B;AACF","ignoreList":[]}
1
+ {"version":3,"file":"convertStepsToIr.js","names":["invariant","IFieldTypeUnion","IFieldValueUnion","IModelDef","assertNever","convertStepsToSchema","convertStepsToIr","steps","metadata","recordDefinitions","unionDefinitions","schema","Object","fromEntries","map","def","name","convertSchemaToIr","inputSchema","provenance","nameToExportKey","Map","exportKey","modelDef","entries","existing","get","process","env","NODE_ENV","set","fallbackVersion","version","primaryModelKeys","models","collectModels","push","description","outModels","has","type","record","convertRecordDefToIr","union","convertUnionDefToIr","recordDef","modelKey","fieldVersions","fieldMinorVersions","deprecations","fields","fieldKey","fieldType","dep","addedInMinorVersion","key","undefined","convertTypeToFieldTypeUnion","addedInVersion","deprecatedFromVersion","fromVersion","message","deprecatedMessage","isOptional","docs","unionDef","variantEntries","variants","variantName","modelRef","unionAddedIn","modelVersions","unionAddedInMinor","modelMinorVersions","variantMetadata","keys","addedIn","variantVersions","addedInMinor","variantMinorVersions","discriminant","length","schemaType","items","allowNullValue","elementType","item","array","value","convertTypeToFieldValueUnion","Error","resourceRef","resourceRids","boolean","docRef","documentTypeRids","double","mediaRef","object","interfaceTypeRids","objectTypeRids","modelTypes","string","unmanagedJson","userRef"],"sources":["convertStepsToIr.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type * as P from \"@palantir/pack.schema\";\nimport invariant from \"tiny-invariant\";\nimport type {\n IModelTypeKey,\n IUnionVariantKey,\n} from \"../../lib/pack-docschema-api/pack-docschema-api\";\nimport type {\n IFieldDef,\n IRealTimeDocumentSchema,\n IRecordDef,\n ISchemaMeta,\n IUnionDef,\n} from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport {\n IFieldTypeUnion,\n IFieldValueUnion,\n IModelDef,\n} from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { assertNever } from \"../assertNever.js\";\nimport { convertStepsToSchema } from \"./convertStepsToSchema.js\";\nimport type { MigrationStep } from \"./parseMigrationSteps.js\";\n\nexport interface SchemaMetadata {\n readonly name?: string;\n readonly description?: string;\n readonly version?: number;\n}\n\n/**\n * Per-field version provenance for a schema, keyed by model export key then\n * field name. Supplied by the version-aware caller (`resolveSchemaChain`) so the\n * IR records the version each field first appeared in (and any deprecation)\n * instead of a placeholder. When omitted, fields fall back to the schema's\n * top-level version (correct for single-version / steps-based callers).\n */\nexport interface SchemaProvenance {\n readonly fieldVersions?: Record<string, Record<string, number>>;\n readonly modelVersions?: Record<string, number>;\n readonly fieldMinorVersions?: Record<string, Record<string, number>>;\n readonly modelMinorVersions?: Record<string, number>;\n readonly variantVersions?: Record<string, Record<string, number>>;\n readonly variantMinorVersions?: Record<string, Record<string, number>>;\n readonly deprecations?: P.VersionDeprecations;\n}\n\n/**\n * Converts migration steps to Palantir IR format\n */\nexport function convertStepsToIr(\n steps: readonly MigrationStep[],\n metadata?: SchemaMetadata,\n): IRealTimeDocumentSchema {\n // First convert steps to document-schema-api format\n const { recordDefinitions, unionDefinitions } = convertStepsToSchema(steps as MigrationStep[]);\n\n const schema = {\n ...Object.fromEntries(recordDefinitions.map(def => [def.name, def])),\n ...Object.fromEntries(unionDefinitions.map(def => [def.name, def])),\n };\n\n return convertSchemaToIr(schema, metadata);\n}\n\n/**\n * Converts record and union definitions to Palantir IR format. When\n * `provenance` is supplied (by the version-aware caller), each field/model is\n * stamped with the version it first appeared in and any deprecation; otherwise\n * everything falls back to `metadata.version` (default 1).\n */\nexport function convertSchemaToIr(\n inputSchema: P.Schema<P.ReturnedSchema>,\n metadata?: SchemaMetadata,\n provenance?: SchemaProvenance,\n): IRealTimeDocumentSchema {\n // Build a mapping from declared model name → export key so that union variant\n // refs (which use declared model names) can be remapped to export keys.\n const nameToExportKey = new Map<string, string>();\n for (const [exportKey, modelDef] of Object.entries(inputSchema)) {\n const existing = nameToExportKey.get(modelDef.name);\n invariant(\n existing == null,\n `Duplicate declared model name \"${modelDef.name}\": exported as both \"${existing}\" and \"${exportKey}\"`,\n );\n nameToExportKey.set(modelDef.name, exportKey);\n }\n const fallbackVersion = metadata?.version ?? 1;\n\n const primaryModelKeys: IModelTypeKey[] = [];\n const models = new Map<IModelTypeKey, IModelDef>();\n\n for (const [exportKey, modelDef] of Object.entries(inputSchema)) {\n if (collectModels(exportKey, modelDef, nameToExportKey, models, fallbackVersion, provenance)) {\n primaryModelKeys.push(exportKey);\n }\n }\n\n return {\n name: metadata?.name ?? \"Generated Schema\",\n description: metadata?.description ?? \"Schema generated from migration steps\",\n version: fallbackVersion,\n primaryModelKeys,\n models: Object.fromEntries(models),\n };\n}\n\nfunction collectModels(\n exportKey: string,\n modelDef: P.ModelDef,\n nameToExportKey: Map<string, string>,\n outModels: Map<IModelTypeKey, IModelDef>,\n fallbackVersion: number,\n provenance?: SchemaProvenance,\n): boolean {\n invariant(\n !outModels.has(exportKey),\n `Duplicate model definition: ${exportKey}`,\n );\n\n switch (modelDef.type) {\n case \"record\": {\n outModels.set(\n exportKey,\n IModelDef.record(\n convertRecordDefToIr(modelDef, exportKey, nameToExportKey, fallbackVersion, provenance),\n ),\n );\n return true;\n }\n case \"union\": {\n outModels.set(\n exportKey,\n IModelDef.union(\n convertUnionDefToIr(modelDef, exportKey, nameToExportKey, fallbackVersion, provenance),\n ),\n );\n return true;\n }\n default:\n assertNever(modelDef);\n }\n}\n\nexport function convertRecordDefToIr(\n recordDef: P.RecordDef,\n exportKey?: string,\n nameToExportKey?: Map<string, string>,\n fallbackVersion: number = 1,\n provenance?: SchemaProvenance,\n): IRecordDef {\n const modelKey = exportKey ?? recordDef.name;\n const fieldVersions = provenance?.fieldVersions?.[modelKey];\n const fieldMinorVersions = provenance?.fieldMinorVersions?.[modelKey];\n const deprecations = provenance?.deprecations?.[modelKey];\n const fields = Object.entries(recordDef.fields).map(([fieldKey, fieldType]): IFieldDef => {\n const dep = deprecations?.[fieldKey];\n const addedInMinorVersion = fieldMinorVersions?.[fieldKey] ?? 0;\n return {\n key: fieldKey,\n name: fieldKey,\n description: undefined,\n fieldType: convertTypeToFieldTypeUnion(fieldType, nameToExportKey),\n metadata: {\n addedInVersion: fieldVersions?.[fieldKey] ?? fallbackVersion,\n ...(addedInMinorVersion > 0 ? { addedInMinorVersion } : {}),\n ...(dep != null\n ? {\n deprecatedFromVersion: dep.fromVersion,\n ...(dep.message != null ? { deprecatedMessage: dep.message } : {}),\n }\n : {}),\n },\n isOptional: fieldType.type === \"optional\" ? true : undefined,\n };\n });\n\n return {\n key: modelKey,\n name: recordDef.name,\n description: recordDef.docs ?? undefined,\n fields,\n };\n}\n\nexport function convertUnionDefToIr(\n unionDef: P.UnionDef,\n exportKey?: string,\n nameToExportKey?: Map<string, string>,\n fallbackVersion: number = 1,\n provenance?: SchemaProvenance,\n): IUnionDef {\n const modelKey = exportKey ?? unionDef.name;\n const variantEntries = Object.entries(unionDef.variants).map((\n [variantName, modelRef],\n ) =>\n [\n variantName as IUnionVariantKey,\n (nameToExportKey?.get(modelRef.name) ?? modelRef.name) as IModelTypeKey,\n ] as const\n );\n\n const unionAddedIn = provenance?.modelVersions?.[modelKey] ?? fallbackVersion;\n const unionAddedInMinor = provenance?.modelMinorVersions?.[modelKey] ?? 0;\n\n // Only variants added after the union get an entry; the rest inherit the union's version. A union\n // that never gained a variant has no variantMetadata, so its output stays the same.\n const variantMetadata: Record<string, ISchemaMeta> = {};\n for (const variantName of Object.keys(unionDef.variants)) {\n const addedIn = provenance?.variantVersions?.[modelKey]?.[variantName] ?? unionAddedIn;\n const addedInMinor = provenance?.variantMinorVersions?.[modelKey]?.[variantName] ?? 0;\n if (addedIn !== unionAddedIn || addedInMinor !== unionAddedInMinor) {\n variantMetadata[variantName] = {\n addedInVersion: addedIn,\n ...(addedInMinor > 0 ? { addedInMinorVersion: addedInMinor } : {}),\n };\n }\n }\n\n return {\n key: modelKey,\n name: unionDef.name,\n description: unionDef.docs,\n discriminant: unionDef.discriminant,\n variants: Object.fromEntries(variantEntries),\n metadata: {\n addedInVersion: unionAddedIn,\n ...(unionAddedInMinor > 0 ? { addedInMinorVersion: unionAddedInMinor } : {}),\n },\n ...(Object.keys(variantMetadata).length > 0 ? { variantMetadata } : {}),\n };\n}\n\n// TODO: rename to convertSchemaTypeToFieldTypeUnion\nexport function convertTypeToFieldTypeUnion(\n schemaType: P.Type,\n nameToExportKey?: Map<string, string>,\n): IFieldTypeUnion {\n switch (schemaType.type) {\n case \"array\": {\n // P.Array.items is typed as TypeBase due to the generic; narrow via type field\n const items = schemaType.items as P.Type;\n const allowNullValue = items.type === \"optional\";\n const elementType: P.Type = allowNullValue ? (items as P.Optional).item as P.Type : items;\n return IFieldTypeUnion.array({\n allowNullValue,\n value: convertTypeToFieldValueUnion(elementType, nameToExportKey),\n });\n }\n\n case \"optional\":\n // Optional flag is handled at field level; unwrap and recurse on inner type\n return convertTypeToFieldTypeUnion(schemaType.item as P.Type, nameToExportKey);\n\n case \"resourceRef\":\n case \"boolean\":\n case \"docRef\":\n case \"double\":\n case \"mediaRef\":\n case \"objectRef\":\n case \"ref\":\n case \"string\":\n case \"unknown\":\n case \"userRef\":\n return IFieldTypeUnion.value(convertTypeToFieldValueUnion(schemaType, nameToExportKey));\n\n default:\n assertNever(schemaType);\n }\n}\n\nfunction convertTypeToFieldValueUnion(\n schemaType: P.Type,\n nameToExportKey?: Map<string, string>,\n): IFieldValueUnion {\n switch (schemaType.type) {\n case \"array\":\n throw new Error(\n \"Nested arrays are not supported in the IR. \"\n + \"Wrap the inner array in a record instead.\",\n );\n\n case \"resourceRef\":\n return IFieldValueUnion.resourceRef({\n resourceRids: [],\n });\n\n case \"boolean\":\n return IFieldValueUnion.boolean({});\n\n case \"docRef\":\n return IFieldValueUnion.docRef({\n documentTypeRids: [], // FIXME: confirm whether we will use rids in the deployed schema.\n });\n\n case \"double\":\n return IFieldValueUnion.double({});\n\n case \"mediaRef\":\n return IFieldValueUnion.mediaRef({});\n\n case \"objectRef\":\n return IFieldValueUnion.object({\n // FIXME: confirm whether we will use rids in the deployed schema.\n interfaceTypeRids: [],\n objectTypeRids: [],\n });\n\n case \"optional\":\n // Nested optional — unwrap and continue\n // TODO: probably warn? maybe throw\n return convertTypeToFieldValueUnion(schemaType.item as P.Type, nameToExportKey);\n\n case \"ref\": {\n const modelKey = nameToExportKey?.get(schemaType.name) ?? schemaType.name;\n return IFieldValueUnion.modelRef({ modelTypes: [modelKey as IModelTypeKey] });\n }\n\n case \"string\":\n return IFieldValueUnion.string({});\n\n case \"unknown\":\n return IFieldValueUnion.unmanagedJson({});\n\n case \"userRef\":\n return IFieldValueUnion.userRef({});\n\n default:\n assertNever(schemaType);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=irUpdateSchemaHandler.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"irUpdateSchemaHandler.test.d.ts","sourceRoot":"","sources":["../../../../../src/commands/ir/__tests__/irUpdateSchemaHandler.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import type { FileSystemType } from "@osdk/foundry.pack";
1
+ import type { FileSystemType } from "@palantir/pack.core/generatedPlatformSdk";
2
2
  interface DeployOptions {
3
3
  readonly ir: string;
4
4
  readonly baseUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"irDeployHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irDeployHandler.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAA6B,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAWpF,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6HAA6H;IAC7H,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iJAAiJ;IACjJ,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3E"}
1
+ {"version":3,"file":"irDeployHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irDeployHandler.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,0CAA0C,CAAC;AAWlD,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6HAA6H;IAC7H,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iJAAiJ;IACjJ,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC3E"}
@@ -1,4 +1,4 @@
1
- import type { FileSystemType } from "@osdk/foundry.pack";
1
+ import type { FileSystemType } from "@palantir/pack.core/generatedPlatformSdk";
2
2
  interface IrGenAssetOptions {
3
3
  readonly ir: string;
4
4
  readonly output: string;
@@ -1 +1 @@
1
- {"version":3,"file":"irGenAssetHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irGenAssetHandler.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAS5E,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAYD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CA6FlE"}
1
+ {"version":3,"file":"irGenAssetHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irGenAssetHandler.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAUlG,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAYD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAoGlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"irGenTypesHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irGenTypesHandler.ts"],"names":[],"mappings":"AA0BA,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBjF"}
1
+ {"version":3,"file":"irGenTypesHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irGenTypesHandler.ts"],"names":[],"mappings":"AA2BA,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"irUpdateSchemaHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irUpdateSchemaHandler.ts"],"names":[],"mappings":"AA2BA,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DzF"}
1
+ {"version":3,"file":"irUpdateSchemaHandler.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/irUpdateSchemaHandler.ts"],"names":[],"mappings":"AA+BA,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEzF"}
@@ -2,6 +2,7 @@ import type { IRealTimeDocumentSchema } from "../../lib/pack-docschema-api/pack-
2
2
  export interface ResolvedIrInput {
3
3
  readonly ir: IRealTimeDocumentSchema;
4
4
  readonly latestVersion: number;
5
+ readonly latestMinorVersion: number;
5
6
  readonly minSupportedVersion: number;
6
7
  readonly owningApplicationId?: string;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolveIrInput.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/resolveIrInput.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAGvG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AA4CD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAI/E"}
1
+ {"version":3,"file":"resolveIrInput.d.ts","sourceRoot":"","sources":["../../../../src/commands/ir/resolveIrInput.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAQvG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAuCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAI/E"}