@palantir/pack.document-schema.type-gen 0.9.0 → 0.11.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 (156) hide show
  1. package/build/esm/commands/asset/__tests__/buildPrefixRewriteFetch.test.js +85 -0
  2. package/build/esm/commands/asset/__tests__/buildPrefixRewriteFetch.test.js.map +1 -0
  3. package/build/esm/commands/asset/assetDeployHandler.js +36 -1
  4. package/build/esm/commands/asset/assetDeployHandler.js.map +1 -1
  5. package/build/esm/commands/asset/assetUpdateSchemaHandler.js +84 -0
  6. package/build/esm/commands/asset/assetUpdateSchemaHandler.js.map +1 -0
  7. package/build/esm/commands/asset/registerAssetCommands.js +3 -1
  8. package/build/esm/commands/asset/registerAssetCommands.js.map +1 -1
  9. package/build/esm/commands/ir/irGenTypesHandler.js +49 -0
  10. package/build/esm/commands/ir/irGenTypesHandler.js.map +1 -0
  11. package/build/esm/commands/ir/registerIrCommands.js +2 -0
  12. package/build/esm/commands/ir/registerIrCommands.js.map +1 -1
  13. package/build/esm/commands/schema/registerSchemaCommands.js +2 -2
  14. package/build/esm/commands/schema/registerSchemaCommands.js.map +1 -1
  15. package/build/esm/commands/schema/schemaIrHandler.js +56 -0
  16. package/build/esm/commands/schema/schemaIrHandler.js.map +1 -0
  17. package/build/esm/index.js +0 -6
  18. package/build/esm/index.js.map +1 -1
  19. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js +1 -1
  20. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js.map +1 -1
  21. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js +1 -1
  22. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js.map +1 -1
  23. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js +1 -1
  24. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js.map +1 -1
  25. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js +1 -1
  26. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js.map +1 -1
  27. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js +1 -1
  28. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js.map +1 -1
  29. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js +1 -1
  30. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js.map +1 -1
  31. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js +1 -1
  32. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js.map +1 -1
  33. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js +1 -1
  34. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js.map +1 -1
  35. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js +1 -1
  36. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js.map +1 -1
  37. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js +1 -1
  38. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js.map +1 -1
  39. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js +1 -1
  40. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js.map +1 -1
  41. package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js +23 -0
  42. package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js.map +1 -1
  43. package/build/esm/utils/ir/irFieldHelpers.js +383 -0
  44. package/build/esm/utils/ir/irFieldHelpers.js.map +1 -0
  45. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/single-version.js.map +1 -1
  46. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/three-version-chain.js.map +1 -1
  47. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/two-version.js.map +1 -1
  48. package/build/esm/utils/schema/__tests__/convertSchemaToSteps.test.js +13 -0
  49. package/build/esm/utils/schema/__tests__/convertSchemaToSteps.test.js.map +1 -1
  50. package/build/esm/utils/schema/__tests__/fixtures.js +78 -13
  51. package/build/esm/utils/schema/__tests__/fixtures.js.map +1 -1
  52. package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js +19 -7
  53. package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js.map +1 -1
  54. package/build/esm/utils/schema/__tests__/generateModelMetadataFromSchema.test.js +12 -7
  55. package/build/esm/utils/schema/__tests__/generateModelMetadataFromSchema.test.js.map +1 -1
  56. package/build/esm/utils/schema/__tests__/generateScopeFromSchema.test.js +6 -5
  57. package/build/esm/utils/schema/__tests__/generateScopeFromSchema.test.js.map +1 -1
  58. package/build/esm/utils/schema/__tests__/generateVersionedTypesFromSchema.test.js +19 -10
  59. package/build/esm/utils/schema/__tests__/generateVersionedTypesFromSchema.test.js.map +1 -1
  60. package/build/esm/utils/schema/__tests__/generateVersionedZodFromSchema.test.js +15 -10
  61. package/build/esm/utils/schema/__tests__/generateVersionedZodFromSchema.test.js.map +1 -1
  62. package/build/esm/utils/schema/__tests__/generateVersionsFromSchema.test.js +6 -5
  63. package/build/esm/utils/schema/__tests__/generateVersionsFromSchema.test.js.map +1 -1
  64. package/build/esm/utils/schema/__tests__/snapshotUtils.js +3 -0
  65. package/build/esm/utils/schema/__tests__/snapshotUtils.js.map +1 -1
  66. package/build/esm/utils/schema/convertSchemaToSteps.js +6 -0
  67. package/build/esm/utils/schema/convertSchemaToSteps.js.map +1 -1
  68. package/build/esm/utils/schema/generateIndexFromSchema.js +21 -14
  69. package/build/esm/utils/schema/generateIndexFromSchema.js.map +1 -1
  70. package/build/esm/utils/schema/generateInternalFromSchema.js +202 -191
  71. package/build/esm/utils/schema/generateInternalFromSchema.js.map +1 -1
  72. package/build/esm/utils/schema/generateModelMetadataFromSchema.js +89 -80
  73. package/build/esm/utils/schema/generateModelMetadataFromSchema.js.map +1 -1
  74. package/build/esm/utils/schema/generateScopeFromSchema.js +29 -33
  75. package/build/esm/utils/schema/generateScopeFromSchema.js.map +1 -1
  76. package/build/esm/utils/schema/generateTypesFromSchema.js +9 -1
  77. package/build/esm/utils/schema/generateTypesFromSchema.js.map +1 -1
  78. package/build/esm/utils/schema/generateVersionedTypesFromSchema.js +61 -155
  79. package/build/esm/utils/schema/generateVersionedTypesFromSchema.js.map +1 -1
  80. package/build/esm/utils/schema/generateVersionedZodFromSchema.js +58 -94
  81. package/build/esm/utils/schema/generateVersionedZodFromSchema.js.map +1 -1
  82. package/build/esm/utils/schema/generateVersionsFromSchema.js +7 -5
  83. package/build/esm/utils/schema/generateVersionsFromSchema.js.map +1 -1
  84. package/build/esm/utils/schema/loadSchemaModule.js +53 -0
  85. package/build/esm/utils/schema/loadSchemaModule.js.map +1 -0
  86. package/build/esm/utils/schema/resolveSchemaChain.js +68 -9
  87. package/build/esm/utils/schema/resolveSchemaChain.js.map +1 -1
  88. package/build/esm/utils/schema/runtimeSchema.js +3 -27
  89. package/build/esm/utils/schema/runtimeSchema.js.map +1 -1
  90. package/build/esm/utils/schema/writeAllSdkFiles.js +113 -0
  91. package/build/esm/utils/schema/writeAllSdkFiles.js.map +1 -0
  92. package/build/esm/utils/steps/__tests__/__snapshots__/types/arrayFields.js.map +1 -1
  93. package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js +1 -1
  94. package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js.map +1 -1
  95. package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js +1 -1
  96. package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js.map +1 -1
  97. package/build/esm/utils/steps/__tests__/__snapshots__/types/refTypes.js.map +1 -1
  98. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleRecord.js.map +1 -1
  99. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js +1 -1
  100. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js.map +1 -1
  101. package/build/esm/utils/steps/__tests__/convertStepsToIr.test.js +93 -1
  102. package/build/esm/utils/steps/__tests__/convertStepsToIr.test.js.map +1 -1
  103. package/build/esm/utils/steps/convertStepsToIr.js +43 -35
  104. package/build/esm/utils/steps/convertStepsToIr.js.map +1 -1
  105. package/build/types/commands/asset/__tests__/buildPrefixRewriteFetch.test.d.ts +2 -0
  106. package/build/types/commands/asset/__tests__/buildPrefixRewriteFetch.test.d.ts.map +1 -0
  107. package/build/types/commands/asset/assetDeployHandler.d.ts +15 -0
  108. package/build/types/commands/asset/assetDeployHandler.d.ts.map +1 -1
  109. package/build/types/commands/asset/assetUpdateSchemaHandler.d.ts +12 -0
  110. package/build/types/commands/asset/assetUpdateSchemaHandler.d.ts.map +1 -0
  111. package/build/types/commands/asset/registerAssetCommands.d.ts.map +1 -1
  112. package/build/types/commands/ir/irGenTypesHandler.d.ts +8 -0
  113. package/build/types/commands/ir/irGenTypesHandler.d.ts.map +1 -0
  114. package/build/types/commands/ir/registerIrCommands.d.ts.map +1 -1
  115. package/build/types/commands/schema/registerSchemaCommands.d.ts.map +1 -1
  116. package/build/types/commands/schema/schemaIrHandler.d.ts +19 -0
  117. package/build/types/commands/schema/schemaIrHandler.d.ts.map +1 -0
  118. package/build/types/index.d.ts +1 -6
  119. package/build/types/index.d.ts.map +1 -1
  120. package/build/types/utils/ir/irFieldHelpers.d.ts +36 -0
  121. package/build/types/utils/ir/irFieldHelpers.d.ts.map +1 -0
  122. package/build/types/utils/schema/__tests__/fixtures.d.ts +10 -1
  123. package/build/types/utils/schema/__tests__/fixtures.d.ts.map +1 -1
  124. package/build/types/utils/schema/__tests__/snapshotUtils.d.ts +2 -0
  125. package/build/types/utils/schema/__tests__/snapshotUtils.d.ts.map +1 -1
  126. package/build/types/utils/schema/convertSchemaToSteps.d.ts.map +1 -1
  127. package/build/types/utils/schema/generateIndexFromSchema.d.ts +5 -3
  128. package/build/types/utils/schema/generateIndexFromSchema.d.ts.map +1 -1
  129. package/build/types/utils/schema/generateInternalFromSchema.d.ts +6 -7
  130. package/build/types/utils/schema/generateInternalFromSchema.d.ts.map +1 -1
  131. package/build/types/utils/schema/generateModelMetadataFromSchema.d.ts +3 -8
  132. package/build/types/utils/schema/generateModelMetadataFromSchema.d.ts.map +1 -1
  133. package/build/types/utils/schema/generateScopeFromSchema.d.ts +2 -2
  134. package/build/types/utils/schema/generateScopeFromSchema.d.ts.map +1 -1
  135. package/build/types/utils/schema/generateTypesFromSchema.d.ts.map +1 -1
  136. package/build/types/utils/schema/generateVersionedTypesFromSchema.d.ts +4 -7
  137. package/build/types/utils/schema/generateVersionedTypesFromSchema.d.ts.map +1 -1
  138. package/build/types/utils/schema/generateVersionedZodFromSchema.d.ts +3 -7
  139. package/build/types/utils/schema/generateVersionedZodFromSchema.d.ts.map +1 -1
  140. package/build/types/utils/schema/generateVersionsFromSchema.d.ts +3 -3
  141. package/build/types/utils/schema/generateVersionsFromSchema.d.ts.map +1 -1
  142. package/build/types/utils/schema/loadSchemaModule.d.ts +14 -0
  143. package/build/types/utils/schema/loadSchemaModule.d.ts.map +1 -0
  144. package/build/types/utils/schema/resolveSchemaChain.d.ts +29 -8
  145. package/build/types/utils/schema/resolveSchemaChain.d.ts.map +1 -1
  146. package/build/types/utils/schema/runtimeSchema.d.ts +2 -32
  147. package/build/types/utils/schema/runtimeSchema.d.ts.map +1 -1
  148. package/build/types/utils/schema/writeAllSdkFiles.d.ts +8 -0
  149. package/build/types/utils/schema/writeAllSdkFiles.d.ts.map +1 -0
  150. package/build/types/utils/steps/convertStepsToIr.d.ts +3 -3
  151. package/build/types/utils/steps/convertStepsToIr.d.ts.map +1 -1
  152. package/package.json +4 -4
  153. package/build/esm/commands/schema/schemaGenTypesHandler.js +0 -147
  154. package/build/esm/commands/schema/schemaGenTypesHandler.js.map +0 -1
  155. package/build/types/commands/schema/schemaGenTypesHandler.d.ts +0 -8
  156. package/build/types/commands/schema/schemaGenTypesHandler.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","names":["defineRecord","defineSchema","defineSchemaUpdate","defineUnion","modelToRef","nextSchema","P","singleVersionModels","ShapeBox","docs","fields","left","Double","right","top","bottom","color","Optional","String","singleVersionSchemaNarrow","singleVersionSchema","twoVersionFieldRemovalSchema","type","models","fillColor","strokeColor","opacity","version","previous","addFillColorUpdate","schema","addField","build","twoVersionAdditiveSchema","addSchemaUpdate","CircleRecord","radius","DocRef","UserRefField","refFieldsSchema","Circle","Drawing","mainShape","extraShapes","Array","background","attachment","owner","RectangleRecord","width","height","unionTypesSchema","Rectangle","Shape","variants","circle","rectangle","nestedOptionalsSchema","Config","tags","matrix","label","pointCloud","twoVersionDerivedFieldsSchema","migrations","derivedFrom","forward","threeVersionChainSchema","v1Models","Item","name","v2Models","hexColor","v3Models"],"sources":["fixtures.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 { SchemaBuilder, SchemaDefinition } from \"@palantir/pack.schema\";\nimport {\n defineRecord,\n defineSchema,\n defineSchemaUpdate,\n defineUnion,\n modelToRef,\n nextSchema,\n} from \"@palantir/pack.schema\";\nimport * as P from \"@palantir/pack.schema\";\n\n/** Single-version schema: ShapeBox with 5 fields */\nconst singleVersionModels = {\n ShapeBox: defineRecord(\"ShapeBox\", {\n docs: \"A box shape\",\n fields: {\n left: P.Double,\n right: P.Double,\n top: P.Double,\n bottom: P.Double,\n color: P.Optional(P.String),\n },\n }),\n};\nconst singleVersionSchemaNarrow = defineSchema(singleVersionModels);\nexport const singleVersionSchema: SchemaDefinition = singleVersionSchemaNarrow;\n\n/** Two-version schema with field removal (color removed, fillColor + strokeColor + opacity added) */\nexport const twoVersionFieldRemovalSchema: SchemaDefinition = {\n type: \"versioned\",\n models: {\n ShapeBox: defineRecord(\"ShapeBox\", {\n docs: \"A box shape\",\n fields: {\n left: P.Double,\n right: P.Double,\n top: P.Double,\n bottom: P.Double,\n fillColor: P.Optional(P.String),\n strokeColor: P.Optional(P.String),\n opacity: P.Optional(P.Double),\n },\n }),\n },\n version: 2,\n previous: singleVersionSchema,\n};\n\n/** Two-version schema with additive change only (adds fillColor) */\nconst addFillColorUpdate = defineSchemaUpdate(\n \"addFillColor\",\n (schema: SchemaBuilder<typeof singleVersionModels>) => ({\n ShapeBox: schema.ShapeBox\n .addField(\"fillColor\", P.Optional(P.String))\n .build(),\n }),\n);\n\nexport const twoVersionAdditiveSchema: SchemaDefinition = nextSchema(singleVersionSchemaNarrow)\n .addSchemaUpdate(addFillColorUpdate)\n .build();\n\n/** Schema with ref fields: tests import paths for record refs, DocumentRef, UserRef */\nconst CircleRecord = defineRecord(\"Circle\", {\n docs: \"A circle\",\n fields: {\n radius: P.Double,\n },\n});\n\nconst DocRef: P.DocRef = { type: \"docRef\" };\nconst UserRefField: P.UserRef = { type: \"userRef\" };\n\nexport const refFieldsSchema: SchemaDefinition = defineSchema({\n Circle: CircleRecord,\n Drawing: defineRecord(\"Drawing\", {\n docs: \"A drawing with references\",\n fields: {\n mainShape: CircleRecord,\n extraShapes: P.Array(modelToRef(CircleRecord)),\n background: P.Optional(modelToRef(CircleRecord)),\n attachment: DocRef,\n owner: P.Optional(UserRefField),\n },\n }),\n});\n\n/** Schema with union types: tests union variant interfaces, discriminated union, and type guards */\nconst RectangleRecord = defineRecord(\"Rectangle\", {\n docs: \"A rectangle\",\n fields: {\n width: P.Double,\n height: P.Double,\n },\n});\n\nexport const unionTypesSchema: SchemaDefinition = defineSchema({\n Circle: CircleRecord,\n Rectangle: RectangleRecord,\n Shape: defineUnion(\"Shape\", {\n docs: \"A shape\",\n variants: {\n circle: CircleRecord,\n rectangle: RectangleRecord,\n },\n }),\n});\n\n/** Schema with nested optionals: tests that optional inside array/nested structures is preserved */\nexport const nestedOptionalsSchema: SchemaDefinition = defineSchema({\n Config: defineRecord(\"Config\", {\n docs: \"A config with nested optional fields\",\n fields: {\n tags: P.Array(P.Optional(P.String)),\n matrix: P.Array(P.Array(P.Optional(P.Double))),\n label: P.Optional(P.String),\n // Sparse 3D point cloud: pages of rows where each row may omit coordinate triples\n pointCloud: P.Array(P.Array(P.Optional(P.Array(P.Double)))),\n },\n }),\n});\n\n/** Two-version schema with derived fields (color split into fillColor + strokeColor) */\nexport const twoVersionDerivedFieldsSchema: SchemaDefinition = {\n type: \"versioned\",\n models: {\n ShapeBox: defineRecord(\"ShapeBox\", {\n docs: \"A box shape\",\n fields: {\n left: P.Double,\n right: P.Double,\n top: P.Double,\n bottom: P.Double,\n fillColor: P.Optional(P.String),\n strokeColor: P.Optional(P.String),\n opacity: P.Optional(P.Double),\n },\n }),\n },\n version: 2,\n previous: singleVersionSchema,\n migrations: {\n ShapeBox: {\n fillColor: {\n derivedFrom: [\"color\"],\n forward: ({ color }: Record<string, unknown>) => color,\n },\n strokeColor: {\n derivedFrom: [\"color\"],\n forward: ({ color }: Record<string, unknown>) => color,\n },\n },\n },\n};\n\n/** Three-version chain: Item (name, color -> name, hexColor -> name, hexColor, tags) */\nexport const threeVersionChainSchema: SchemaDefinition = (() => {\n const v1Models = {\n Item: defineRecord(\"Item\", {\n docs: \"\",\n fields: {\n name: P.String,\n color: P.Optional(P.String),\n },\n }),\n };\n const v2Models = {\n Item: defineRecord(\"Item\", {\n docs: \"\",\n fields: {\n name: P.String,\n hexColor: P.Optional(P.String),\n },\n }),\n };\n const v3Models = {\n Item: defineRecord(\"Item\", {\n docs: \"\",\n fields: {\n name: P.String,\n hexColor: P.Optional(P.String),\n tags: P.Optional(P.String),\n },\n }),\n };\n return {\n type: \"versioned\",\n models: v3Models,\n version: 3,\n previous: {\n type: \"versioned\",\n models: v2Models,\n version: 2,\n previous: { type: \"initial\", version: 1, models: v1Models },\n },\n };\n})();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fixtures.js","names":["defineRecord","defineSchema","defineSchemaUpdate","defineUnion","modelToRef","nextSchema","P","singleVersionModels","ShapeBox","docs","fields","left","Double","right","top","bottom","color","Optional","String","singleVersionSchemaNarrow","singleVersionSchema","twoVersionFieldRemovalSchema","type","models","fillColor","strokeColor","opacity","version","previous","addFillColorUpdate","schema","addField","build","twoVersionAdditiveSchema","addSchemaUpdate","CircleRecord","radius","DocRef","UserRefField","refFieldsSchema","Circle","Drawing","mainShape","extraShapes","Array","background","attachment","owner","RectangleRecord","width","height","unionTypesSchema","Rectangle","Shape","variants","circle","rectangle","nestedOptionalsSchema","Config","tags","scores","label","twoVersionDerivedFieldsSchema","migrations","derivedFrom","aliasedEntryNameSchema","FooAlias","name","AnimalRecord","species","PlantRecord","genus","LivingBeingUnion","animal","plant","nestedUnionSchema","Animal","Plant","LivingBeing","Entity","livingBeing","optionalToRequiredFieldSchema","v1","Item","threeVersionChainSchema","v1Models","v2Models","hexColor","v3Models"],"sources":["fixtures.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 { SchemaBuilder, SchemaDefinition } from \"@palantir/pack.schema\";\nimport {\n defineRecord,\n defineSchema,\n defineSchemaUpdate,\n defineUnion,\n modelToRef,\n nextSchema,\n} from \"@palantir/pack.schema\";\nimport * as P from \"@palantir/pack.schema\";\n\n/** Single-version schema: ShapeBox with 5 fields */\nconst singleVersionModels = {\n ShapeBox: defineRecord(\"ShapeBox\", {\n docs: \"A box shape\",\n fields: {\n left: P.Double,\n right: P.Double,\n top: P.Double,\n bottom: P.Double,\n color: P.Optional(P.String),\n },\n }),\n};\nconst singleVersionSchemaNarrow = defineSchema(singleVersionModels);\nexport const singleVersionSchema: SchemaDefinition = singleVersionSchemaNarrow;\n\n/** Two-version schema with field removal (color removed, fillColor + strokeColor + opacity added) */\nexport const twoVersionFieldRemovalSchema: SchemaDefinition = {\n type: \"versioned\",\n models: {\n ShapeBox: defineRecord(\"ShapeBox\", {\n docs: \"A box shape\",\n fields: {\n left: P.Double,\n right: P.Double,\n top: P.Double,\n bottom: P.Double,\n fillColor: P.Optional(P.String),\n strokeColor: P.Optional(P.String),\n opacity: P.Optional(P.Double),\n },\n }),\n },\n version: 2,\n previous: singleVersionSchema,\n};\n\n/** Two-version schema with additive change only (adds fillColor) */\nconst addFillColorUpdate = defineSchemaUpdate(\n \"addFillColor\",\n (schema: SchemaBuilder<typeof singleVersionModels>) => ({\n ShapeBox: schema.ShapeBox\n .addField(\"fillColor\", P.Optional(P.String))\n .build(),\n }),\n);\n\nexport const twoVersionAdditiveSchema: SchemaDefinition = nextSchema(singleVersionSchemaNarrow)\n .addSchemaUpdate(addFillColorUpdate)\n .build();\n\n/** Schema with ref fields: tests import paths for record refs, DocumentRef, UserRef */\nconst CircleRecord = defineRecord(\"Circle\", {\n docs: \"A circle\",\n fields: {\n radius: P.Double,\n },\n});\n\nconst DocRef: P.DocRef = { type: \"docRef\" };\nconst UserRefField: P.UserRef = { type: \"userRef\" };\n\nexport const refFieldsSchema: SchemaDefinition = defineSchema({\n Circle: CircleRecord,\n Drawing: defineRecord(\"Drawing\", {\n docs: \"A drawing with references\",\n fields: {\n mainShape: CircleRecord,\n extraShapes: P.Array(modelToRef(CircleRecord)),\n background: P.Optional(modelToRef(CircleRecord)),\n attachment: DocRef,\n owner: P.Optional(UserRefField),\n },\n }),\n});\n\n/** Schema with union types: tests union variant interfaces, discriminated union, and type guards */\nconst RectangleRecord = defineRecord(\"Rectangle\", {\n docs: \"A rectangle\",\n fields: {\n width: P.Double,\n height: P.Double,\n },\n});\n\nexport const unionTypesSchema: SchemaDefinition = defineSchema({\n Circle: CircleRecord,\n Rectangle: RectangleRecord,\n Shape: defineUnion(\"Shape\", {\n docs: \"A shape\",\n variants: {\n circle: CircleRecord,\n rectangle: RectangleRecord,\n },\n }),\n});\n\n/** Schema with nested optionals: tests that optional inside array structures is preserved */\nexport const nestedOptionalsSchema: SchemaDefinition = defineSchema({\n Config: defineRecord(\"Config\", {\n docs: \"A config with nested optional fields\",\n fields: {\n tags: P.Array(P.Optional(P.String)),\n scores: P.Array(P.Optional(P.Double)),\n label: P.Optional(P.String),\n },\n }),\n});\n\n/** Two-version schema with derived fields (color split into fillColor + strokeColor) */\nexport const twoVersionDerivedFieldsSchema: SchemaDefinition = {\n type: \"versioned\",\n models: {\n ShapeBox: defineRecord(\"ShapeBox\", {\n docs: \"A box shape\",\n fields: {\n left: P.Double,\n right: P.Double,\n top: P.Double,\n bottom: P.Double,\n fillColor: P.Optional(P.String),\n strokeColor: P.Optional(P.String),\n opacity: P.Optional(P.Double),\n },\n }),\n },\n version: 2,\n previous: singleVersionSchema,\n migrations: {\n ShapeBox: {\n fillColor: {\n derivedFrom: [\"color\"],\n },\n strokeColor: {\n derivedFrom: [\"color\"],\n },\n },\n },\n};\n\n/** Schema with aliased export key: export key \"FooAlias\" differs from model name \"Foo\" */\nexport const aliasedEntryNameSchema: SchemaDefinition = defineSchema({\n FooAlias: defineRecord(\"Foo\", {\n docs: \"A record exported under an alias\",\n fields: {\n name: P.String,\n },\n }),\n});\n\n/** Schema with nested union: Entity union has a variant that points to another union (LivingBeing) */\nconst AnimalRecord = defineRecord(\"Animal\", {\n docs: \"An animal\",\n fields: { species: P.String },\n});\n\nconst PlantRecord = defineRecord(\"Plant\", {\n docs: \"A plant\",\n fields: { genus: P.String },\n});\n\nconst LivingBeingUnion = defineUnion(\"LivingBeing\", {\n docs: \"A living being\",\n variants: {\n animal: AnimalRecord,\n plant: PlantRecord,\n },\n});\n\nexport const nestedUnionSchema: SchemaDefinition = defineSchema({\n Animal: AnimalRecord,\n Plant: PlantRecord,\n LivingBeing: LivingBeingUnion,\n Entity: defineUnion(\"Entity\", {\n docs: \"An entity\",\n variants: {\n livingBeing: LivingBeingUnion,\n },\n }),\n});\n\n/**\n * Two-version schema where a field starts as Optional(String) in v1 and becomes\n * required (String) in v2. The internal schema must remain optional because\n * documents written under v1 may legitimately omit the field.\n */\nexport const optionalToRequiredFieldSchema: SchemaDefinition = (() => {\n const v1 = defineSchema({\n Item: defineRecord(\"Item\", {\n docs: \"An item\",\n fields: {\n name: P.String,\n label: P.Optional(P.String),\n },\n }),\n });\n return {\n type: \"versioned\" as const,\n models: {\n Item: defineRecord(\"Item\", {\n docs: \"An item\",\n fields: {\n name: P.String,\n label: P.String,\n },\n }),\n },\n version: 2,\n previous: v1,\n };\n})();\n\n/** Three-version chain: Item (name, color -> name, hexColor -> name, hexColor, tags) */\nexport const threeVersionChainSchema: SchemaDefinition = (() => {\n const v1Models = {\n Item: defineRecord(\"Item\", {\n docs: \"\",\n fields: {\n name: P.String,\n color: P.Optional(P.String),\n },\n }),\n };\n const v2Models = {\n Item: defineRecord(\"Item\", {\n docs: \"\",\n fields: {\n name: P.String,\n hexColor: P.Optional(P.String),\n },\n }),\n };\n const v3Models = {\n Item: defineRecord(\"Item\", {\n docs: \"\",\n fields: {\n name: P.String,\n hexColor: P.Optional(P.String),\n tags: P.Optional(P.String),\n },\n }),\n };\n return {\n type: \"versioned\",\n models: v3Models,\n version: 3,\n previous: {\n type: \"versioned\",\n models: v2Models,\n version: 2,\n previous: { type: \"initial\", version: 1, models: v1Models },\n },\n };\n})();\n"],"mappings":"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","ignoreList":[]}
@@ -16,26 +16,38 @@
16
16
 
17
17
  import path from "path";
18
18
  import { describe, expect, it } from "vitest";
19
- import { generateInternalFromSchema } from "../generateInternalFromSchema.js";
20
- import { nestedOptionalsSchema, singleVersionSchema, twoVersionDerivedFieldsSchema, twoVersionFieldRemovalSchema } from "./fixtures.js";
19
+ import { generateInternalFromChain } from "../generateInternalFromSchema.js";
20
+ import { resolveSchemaChain } from "../resolveSchemaChain.js";
21
+ import { nestedOptionalsSchema, nestedUnionSchema, optionalToRequiredFieldSchema, singleVersionSchema, twoVersionDerivedFieldsSchema, twoVersionFieldRemovalSchema } from "./fixtures.js";
21
22
  import { formatInternalTypesSnapshot } from "./snapshotUtils.js";
22
- describe("generateInternalFromSchema", () => {
23
+ describe("generateInternalFromChain", () => {
23
24
  const snapshotDir = path.join(__dirname, "__snapshots__", "generateInternalFromSchema");
24
25
  it("single-version schema", async () => {
25
- const result = generateInternalFromSchema(singleVersionSchema);
26
+ const result = generateInternalFromChain(resolveSchemaChain(singleVersionSchema));
26
27
  await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "single-version.snap"));
27
28
  });
28
29
  it("nested optionals inside arrays", async () => {
29
- const result = generateInternalFromSchema(nestedOptionalsSchema);
30
+ const result = generateInternalFromChain(resolveSchemaChain(nestedOptionalsSchema));
30
31
  await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "nested-optionals.snap"));
31
32
  });
32
33
  it("two-version field removal", async () => {
33
- const result = generateInternalFromSchema(twoVersionFieldRemovalSchema);
34
+ const result = generateInternalFromChain(resolveSchemaChain(twoVersionFieldRemovalSchema));
34
35
  await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-field-removal.snap"));
35
36
  });
36
37
  it("two-version derived fields", async () => {
37
- const result = generateInternalFromSchema(twoVersionDerivedFieldsSchema);
38
+ const result = generateInternalFromChain(resolveSchemaChain(twoVersionDerivedFieldsSchema));
38
39
  await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-derived-fields.snap"));
39
40
  });
41
+ it("nested union schema generates upgrade registries for all variant targets", async () => {
42
+ const result = generateInternalFromChain(resolveSchemaChain(nestedUnionSchema));
43
+ await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "nested-union.snap"));
44
+ });
45
+ it("field optional in v1 and required in v2 stays optional in internal schema", async () => {
46
+ const result = generateInternalFromChain(resolveSchemaChain(optionalToRequiredFieldSchema));
47
+ // "label" is Optional(String) in v1 but String in v2.
48
+ // The internal Zod schema must keep it optional because v1 documents
49
+ // may legitimately omit the field.
50
+ await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-optional-fields.snap"));
51
+ });
40
52
  });
41
53
  //# sourceMappingURL=generateInternalFromSchema.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateInternalFromSchema.test.js","names":["path","describe","expect","it","generateInternalFromSchema","nestedOptionalsSchema","singleVersionSchema","twoVersionDerivedFieldsSchema","twoVersionFieldRemovalSchema","formatInternalTypesSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateInternalFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateInternalFromSchema } from \"../generateInternalFromSchema.js\";\nimport {\n nestedOptionalsSchema,\n singleVersionSchema,\n twoVersionDerivedFieldsSchema,\n twoVersionFieldRemovalSchema,\n} from \"./fixtures.js\";\nimport { formatInternalTypesSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateInternalFromSchema\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateInternalFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateInternalFromSchema(singleVersionSchema);\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"nested optionals inside arrays\", async () => {\n const result = generateInternalFromSchema(nestedOptionalsSchema);\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"nested-optionals.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateInternalFromSchema(twoVersionFieldRemovalSchema);\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"two-version derived fields\", async () => {\n const result = generateInternalFromSchema(twoVersionDerivedFieldsSchema);\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-derived-fields.snap\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SACEC,qBAAqB,EACrBC,mBAAmB,EACnBC,6BAA6B,EAC7BC,4BAA4B,QACvB,eAAe;AACtB,SAASC,2BAA2B,QAAQ,oBAAoB;AAEhER,QAAQ,CAAC,4BAA4B,EAAE,MAAM;EAC3C,MAAMS,WAAW,GAAGV,IAAI,CAACW,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,4BAA4B,CAAC;EAEvFT,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMU,MAAM,GAAGT,0BAA0B,CAACE,mBAAmB,CAAC;IAC9D,MAAMJ,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,qBAAqB,CAC9C,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,gCAAgC,EAAE,YAAY;IAC/C,MAAMU,MAAM,GAAGT,0BAA0B,CAACC,qBAAqB,CAAC;IAChE,MAAMH,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,uBAAuB,CAChD,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAMU,MAAM,GAAGT,0BAA0B,CAACI,4BAA4B,CAAC;IACvE,MAAMN,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,gCAAgC,CACzD,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,4BAA4B,EAAE,YAAY;IAC3C,MAAMU,MAAM,GAAGT,0BAA0B,CAACG,6BAA6B,CAAC;IACxE,MAAML,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,iCAAiC,CAC1D,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"generateInternalFromSchema.test.js","names":["path","describe","expect","it","generateInternalFromChain","resolveSchemaChain","nestedOptionalsSchema","nestedUnionSchema","optionalToRequiredFieldSchema","singleVersionSchema","twoVersionDerivedFieldsSchema","twoVersionFieldRemovalSchema","formatInternalTypesSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateInternalFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateInternalFromChain } from \"../generateInternalFromSchema.js\";\nimport { resolveSchemaChain } from \"../resolveSchemaChain.js\";\nimport {\n nestedOptionalsSchema,\n nestedUnionSchema,\n optionalToRequiredFieldSchema,\n singleVersionSchema,\n twoVersionDerivedFieldsSchema,\n twoVersionFieldRemovalSchema,\n} from \"./fixtures.js\";\nimport { formatInternalTypesSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateInternalFromChain\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateInternalFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateInternalFromChain(resolveSchemaChain(singleVersionSchema));\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"nested optionals inside arrays\", async () => {\n const result = generateInternalFromChain(resolveSchemaChain(nestedOptionalsSchema));\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"nested-optionals.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateInternalFromChain(resolveSchemaChain(twoVersionFieldRemovalSchema));\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"two-version derived fields\", async () => {\n const result = generateInternalFromChain(resolveSchemaChain(twoVersionDerivedFieldsSchema));\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-derived-fields.snap\"),\n );\n });\n\n it(\"nested union schema generates upgrade registries for all variant targets\", async () => {\n const result = generateInternalFromChain(resolveSchemaChain(nestedUnionSchema));\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"nested-union.snap\"),\n );\n });\n\n it(\"field optional in v1 and required in v2 stays optional in internal schema\", async () => {\n const result = generateInternalFromChain(resolveSchemaChain(optionalToRequiredFieldSchema));\n // \"label\" is Optional(String) in v1 but String in v2.\n // The internal Zod schema must keep it optional because v1 documents\n // may legitimately omit the field.\n await expect(await formatInternalTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-optional-fields.snap\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,yBAAyB,QAAQ,kCAAkC;AAC5E,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SACEC,qBAAqB,EACrBC,iBAAiB,EACjBC,6BAA6B,EAC7BC,mBAAmB,EACnBC,6BAA6B,EAC7BC,4BAA4B,QACvB,eAAe;AACtB,SAASC,2BAA2B,QAAQ,oBAAoB;AAEhEX,QAAQ,CAAC,2BAA2B,EAAE,MAAM;EAC1C,MAAMY,WAAW,GAAGb,IAAI,CAACc,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,4BAA4B,CAAC;EAEvFZ,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMa,MAAM,GAAGZ,yBAAyB,CAACC,kBAAkB,CAACI,mBAAmB,CAAC,CAAC;IACjF,MAAMP,MAAM,CAAC,MAAMU,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEjB,IAAI,CAACc,IAAI,CAACD,WAAW,EAAE,qBAAqB,CAC9C,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,gCAAgC,EAAE,YAAY;IAC/C,MAAMa,MAAM,GAAGZ,yBAAyB,CAACC,kBAAkB,CAACC,qBAAqB,CAAC,CAAC;IACnF,MAAMJ,MAAM,CAAC,MAAMU,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEjB,IAAI,CAACc,IAAI,CAACD,WAAW,EAAE,uBAAuB,CAChD,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAMa,MAAM,GAAGZ,yBAAyB,CAACC,kBAAkB,CAACM,4BAA4B,CAAC,CAAC;IAC1F,MAAMT,MAAM,CAAC,MAAMU,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEjB,IAAI,CAACc,IAAI,CAACD,WAAW,EAAE,gCAAgC,CACzD,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,4BAA4B,EAAE,YAAY;IAC3C,MAAMa,MAAM,GAAGZ,yBAAyB,CAACC,kBAAkB,CAACK,6BAA6B,CAAC,CAAC;IAC3F,MAAMR,MAAM,CAAC,MAAMU,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEjB,IAAI,CAACc,IAAI,CAACD,WAAW,EAAE,iCAAiC,CAC1D,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,0EAA0E,EAAE,YAAY;IACzF,MAAMa,MAAM,GAAGZ,yBAAyB,CAACC,kBAAkB,CAACE,iBAAiB,CAAC,CAAC;IAC/E,MAAML,MAAM,CAAC,MAAMU,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEjB,IAAI,CAACc,IAAI,CAACD,WAAW,EAAE,mBAAmB,CAC5C,CAAC;EACH,CAAC,CAAC;EAEFV,EAAE,CAAC,2EAA2E,EAAE,YAAY;IAC1F,MAAMa,MAAM,GAAGZ,yBAAyB,CAACC,kBAAkB,CAACG,6BAA6B,CAAC,CAAC;IAC3F;IACA;IACA;IACA,MAAMN,MAAM,CAAC,MAAMU,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEjB,IAAI,CAACc,IAAI,CAACD,WAAW,EAAE,kCAAkC,CAC3D,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -16,26 +16,31 @@
16
16
 
17
17
  import path from "path";
18
18
  import { describe, expect, it } from "vitest";
19
- import { generateModelMetadataFromSchema } from "../generateModelMetadataFromSchema.js";
20
- import { singleVersionSchema, threeVersionChainSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from "./fixtures.js";
19
+ import { generateModelMetadataFromChain } from "../generateModelMetadataFromSchema.js";
20
+ import { resolveSchemaChain } from "../resolveSchemaChain.js";
21
+ import { singleVersionSchema, threeVersionChainSchema, twoVersionDerivedFieldsSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from "./fixtures.js";
21
22
  import { formatModelMetadataSnapshot } from "./snapshotUtils.js";
22
- describe("generateModelMetadataFromSchema", () => {
23
+ describe("generateModelMetadataFromChain", () => {
23
24
  const snapshotDir = path.join(__dirname, "__snapshots__", "generateModelMetadataFromSchema");
24
25
  it("single-version schema", async () => {
25
- const result = generateModelMetadataFromSchema(singleVersionSchema);
26
+ const result = generateModelMetadataFromChain(resolveSchemaChain(singleVersionSchema));
26
27
  await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "single-version.snap"));
27
28
  });
28
29
  it("two-version field removal", async () => {
29
- const result = generateModelMetadataFromSchema(twoVersionFieldRemovalSchema, 1);
30
+ const result = generateModelMetadataFromChain(resolveSchemaChain(twoVersionFieldRemovalSchema, 1), 1);
30
31
  await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-field-removal.snap"));
31
32
  });
32
33
  it("three-version chain", async () => {
33
- const result = generateModelMetadataFromSchema(threeVersionChainSchema, 1);
34
+ const result = generateModelMetadataFromChain(resolveSchemaChain(threeVersionChainSchema, 1), 1);
34
35
  await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "three-version-chain.snap"));
35
36
  });
36
37
  it("union types schema", async () => {
37
- const result = generateModelMetadataFromSchema(unionTypesSchema);
38
+ const result = generateModelMetadataFromChain(resolveSchemaChain(unionTypesSchema));
38
39
  await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "union-types.snap"));
39
40
  });
41
+ it("two-version schema with derived fields emits DocumentModel as a factory", async () => {
42
+ const result = generateModelMetadataFromChain(resolveSchemaChain(twoVersionDerivedFieldsSchema, 1), 1);
43
+ await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-derived-fields.snap"));
44
+ });
40
45
  });
41
46
  //# sourceMappingURL=generateModelMetadataFromSchema.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateModelMetadataFromSchema.test.js","names":["path","describe","expect","it","generateModelMetadataFromSchema","singleVersionSchema","threeVersionChainSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatModelMetadataSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateModelMetadataFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateModelMetadataFromSchema } from \"../generateModelMetadataFromSchema.js\";\nimport {\n singleVersionSchema,\n threeVersionChainSchema,\n twoVersionFieldRemovalSchema,\n unionTypesSchema,\n} from \"./fixtures.js\";\nimport { formatModelMetadataSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateModelMetadataFromSchema\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateModelMetadataFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateModelMetadataFromSchema(singleVersionSchema);\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateModelMetadataFromSchema(twoVersionFieldRemovalSchema, 1);\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"three-version chain\", async () => {\n const result = generateModelMetadataFromSchema(threeVersionChainSchema, 1);\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"three-version-chain.snap\"),\n );\n });\n\n it(\"union types schema\", async () => {\n const result = generateModelMetadataFromSchema(unionTypesSchema);\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,+BAA+B,QAAQ,uCAAuC;AACvF,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,4BAA4B,EAC5BC,gBAAgB,QACX,eAAe;AACtB,SAASC,2BAA2B,QAAQ,oBAAoB;AAEhER,QAAQ,CAAC,iCAAiC,EAAE,MAAM;EAChD,MAAMS,WAAW,GAAGV,IAAI,CAACW,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,iCAAiC,CAAC;EAE5FT,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMU,MAAM,GAAGT,+BAA+B,CAACC,mBAAmB,CAAC;IACnE,MAAMH,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,qBAAqB,CAC9C,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAMU,MAAM,GAAGT,+BAA+B,CAACG,4BAA4B,EAAE,CAAC,CAAC;IAC/E,MAAML,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,gCAAgC,CACzD,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,qBAAqB,EAAE,YAAY;IACpC,MAAMU,MAAM,GAAGT,+BAA+B,CAACE,uBAAuB,EAAE,CAAC,CAAC;IAC1E,MAAMJ,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,0BAA0B,CACnD,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,oBAAoB,EAAE,YAAY;IACnC,MAAMU,MAAM,GAAGT,+BAA+B,CAACI,gBAAgB,CAAC;IAChE,MAAMN,MAAM,CAAC,MAAMO,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,kBAAkB,CAC3C,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"generateModelMetadataFromSchema.test.js","names":["path","describe","expect","it","generateModelMetadataFromChain","resolveSchemaChain","singleVersionSchema","threeVersionChainSchema","twoVersionDerivedFieldsSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatModelMetadataSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateModelMetadataFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateModelMetadataFromChain } from \"../generateModelMetadataFromSchema.js\";\nimport { resolveSchemaChain } from \"../resolveSchemaChain.js\";\nimport {\n singleVersionSchema,\n threeVersionChainSchema,\n twoVersionDerivedFieldsSchema,\n twoVersionFieldRemovalSchema,\n unionTypesSchema,\n} from \"./fixtures.js\";\nimport { formatModelMetadataSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateModelMetadataFromChain\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateModelMetadataFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateModelMetadataFromChain(resolveSchemaChain(singleVersionSchema));\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateModelMetadataFromChain(\n resolveSchemaChain(twoVersionFieldRemovalSchema, 1),\n 1,\n );\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"three-version chain\", async () => {\n const result = generateModelMetadataFromChain(\n resolveSchemaChain(threeVersionChainSchema, 1),\n 1,\n );\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"three-version-chain.snap\"),\n );\n });\n\n it(\"union types schema\", async () => {\n const result = generateModelMetadataFromChain(resolveSchemaChain(unionTypesSchema));\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n\n it(\"two-version schema with derived fields emits DocumentModel as a factory\", async () => {\n const result = generateModelMetadataFromChain(\n resolveSchemaChain(twoVersionDerivedFieldsSchema, 1),\n 1,\n );\n await expect(await formatModelMetadataSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-derived-fields.snap\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,8BAA8B,QAAQ,uCAAuC;AACtF,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,6BAA6B,EAC7BC,4BAA4B,EAC5BC,gBAAgB,QACX,eAAe;AACtB,SAASC,2BAA2B,QAAQ,oBAAoB;AAEhEV,QAAQ,CAAC,gCAAgC,EAAE,MAAM;EAC/C,MAAMW,WAAW,GAAGZ,IAAI,CAACa,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,iCAAiC,CAAC;EAE5FX,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMY,MAAM,GAAGX,8BAA8B,CAACC,kBAAkB,CAACC,mBAAmB,CAAC,CAAC;IACtF,MAAMJ,MAAM,CAAC,MAAMS,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEhB,IAAI,CAACa,IAAI,CAACD,WAAW,EAAE,qBAAqB,CAC9C,CAAC;EACH,CAAC,CAAC;EAEFT,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAMY,MAAM,GAAGX,8BAA8B,CAC3CC,kBAAkB,CAACI,4BAA4B,EAAE,CAAC,CAAC,EACnD,CACF,CAAC;IACD,MAAMP,MAAM,CAAC,MAAMS,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEhB,IAAI,CAACa,IAAI,CAACD,WAAW,EAAE,gCAAgC,CACzD,CAAC;EACH,CAAC,CAAC;EAEFT,EAAE,CAAC,qBAAqB,EAAE,YAAY;IACpC,MAAMY,MAAM,GAAGX,8BAA8B,CAC3CC,kBAAkB,CAACE,uBAAuB,EAAE,CAAC,CAAC,EAC9C,CACF,CAAC;IACD,MAAML,MAAM,CAAC,MAAMS,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEhB,IAAI,CAACa,IAAI,CAACD,WAAW,EAAE,0BAA0B,CACnD,CAAC;EACH,CAAC,CAAC;EAEFT,EAAE,CAAC,oBAAoB,EAAE,YAAY;IACnC,MAAMY,MAAM,GAAGX,8BAA8B,CAACC,kBAAkB,CAACK,gBAAgB,CAAC,CAAC;IACnF,MAAMR,MAAM,CAAC,MAAMS,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEhB,IAAI,CAACa,IAAI,CAACD,WAAW,EAAE,kBAAkB,CAC3C,CAAC;EACH,CAAC,CAAC;EAEFT,EAAE,CAAC,yEAAyE,EAAE,YAAY;IACxF,MAAMY,MAAM,GAAGX,8BAA8B,CAC3CC,kBAAkB,CAACG,6BAA6B,EAAE,CAAC,CAAC,EACpD,CACF,CAAC;IACD,MAAMN,MAAM,CAAC,MAAMS,2BAA2B,CAACI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACzEhB,IAAI,CAACa,IAAI,CAACD,WAAW,EAAE,iCAAiC,CAC1D,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -16,21 +16,22 @@
16
16
 
17
17
  import path from "path";
18
18
  import { describe, expect, it } from "vitest";
19
- import { generateScopeFromSchema } from "../generateScopeFromSchema.js";
19
+ import { generateScopeFromChain } from "../generateScopeFromSchema.js";
20
+ import { resolveSchemaChain } from "../resolveSchemaChain.js";
20
21
  import { singleVersionSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from "./fixtures.js";
21
22
  import { formatSingleSnapshot } from "./snapshotUtils.js";
22
- describe("generateScopeFromSchema", () => {
23
+ describe("generateScopeFromChain", () => {
23
24
  const snapshotDir = path.join(__dirname, "__snapshots__", "generateScopeFromSchema");
24
25
  it("single-version schema", async () => {
25
- const result = generateScopeFromSchema(singleVersionSchema);
26
+ const result = generateScopeFromChain(resolveSchemaChain(singleVersionSchema));
26
27
  await expect(await formatSingleSnapshot("versionedDocRef.ts", result)).toMatchFileSnapshot(path.join(snapshotDir, "single-version.snap"));
27
28
  });
28
29
  it("two-version field removal", async () => {
29
- const result = generateScopeFromSchema(twoVersionFieldRemovalSchema, 1);
30
+ const result = generateScopeFromChain(resolveSchemaChain(twoVersionFieldRemovalSchema, 1), 1);
30
31
  await expect(await formatSingleSnapshot("versionedDocRef.ts", result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-field-removal.snap"));
31
32
  });
32
33
  it("union types schema", async () => {
33
- const result = generateScopeFromSchema(unionTypesSchema);
34
+ const result = generateScopeFromChain(resolveSchemaChain(unionTypesSchema));
34
35
  await expect(await formatSingleSnapshot("versionedDocRef.ts", result)).toMatchFileSnapshot(path.join(snapshotDir, "union-types.snap"));
35
36
  });
36
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generateScopeFromSchema.test.js","names":["path","describe","expect","it","generateScopeFromSchema","singleVersionSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatSingleSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateScopeFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateScopeFromSchema } from \"../generateScopeFromSchema.js\";\nimport { singleVersionSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from \"./fixtures.js\";\nimport { formatSingleSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateScopeFromSchema\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateScopeFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateScopeFromSchema(singleVersionSchema);\n await expect(await formatSingleSnapshot(\"versionedDocRef.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateScopeFromSchema(twoVersionFieldRemovalSchema, 1);\n await expect(await formatSingleSnapshot(\"versionedDocRef.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"union types schema\", async () => {\n const result = generateScopeFromSchema(unionTypesSchema);\n await expect(await formatSingleSnapshot(\"versionedDocRef.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,uBAAuB,QAAQ,+BAA+B;AACvE,SAASC,mBAAmB,EAAEC,4BAA4B,EAAEC,gBAAgB,QAAQ,eAAe;AACnG,SAASC,oBAAoB,QAAQ,oBAAoB;AAEzDP,QAAQ,CAAC,yBAAyB,EAAE,MAAM;EACxC,MAAMQ,WAAW,GAAGT,IAAI,CAACU,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,yBAAyB,CAAC;EAEpFR,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMS,MAAM,GAAGR,uBAAuB,CAACC,mBAAmB,CAAC;IAC3D,MAAMH,MAAM,CAAC,MAAMM,oBAAoB,CAAC,oBAAoB,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACxFb,IAAI,CAACU,IAAI,CAACD,WAAW,EAAE,qBAAqB,CAC9C,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAMS,MAAM,GAAGR,uBAAuB,CAACE,4BAA4B,EAAE,CAAC,CAAC;IACvE,MAAMJ,MAAM,CAAC,MAAMM,oBAAoB,CAAC,oBAAoB,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACxFb,IAAI,CAACU,IAAI,CAACD,WAAW,EAAE,gCAAgC,CACzD,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,oBAAoB,EAAE,YAAY;IACnC,MAAMS,MAAM,GAAGR,uBAAuB,CAACG,gBAAgB,CAAC;IACxD,MAAML,MAAM,CAAC,MAAMM,oBAAoB,CAAC,oBAAoB,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACxFb,IAAI,CAACU,IAAI,CAACD,WAAW,EAAE,kBAAkB,CAC3C,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"generateScopeFromSchema.test.js","names":["path","describe","expect","it","generateScopeFromChain","resolveSchemaChain","singleVersionSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatSingleSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateScopeFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateScopeFromChain } from \"../generateScopeFromSchema.js\";\nimport { resolveSchemaChain } from \"../resolveSchemaChain.js\";\nimport { singleVersionSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from \"./fixtures.js\";\nimport { formatSingleSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateScopeFromChain\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateScopeFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateScopeFromChain(resolveSchemaChain(singleVersionSchema));\n await expect(await formatSingleSnapshot(\"versionedDocRef.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateScopeFromChain(resolveSchemaChain(twoVersionFieldRemovalSchema, 1), 1);\n await expect(await formatSingleSnapshot(\"versionedDocRef.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"union types schema\", async () => {\n const result = generateScopeFromChain(resolveSchemaChain(unionTypesSchema));\n await expect(await formatSingleSnapshot(\"versionedDocRef.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,sBAAsB,QAAQ,+BAA+B;AACtE,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,mBAAmB,EAAEC,4BAA4B,EAAEC,gBAAgB,QAAQ,eAAe;AACnG,SAASC,oBAAoB,QAAQ,oBAAoB;AAEzDR,QAAQ,CAAC,wBAAwB,EAAE,MAAM;EACvC,MAAMS,WAAW,GAAGV,IAAI,CAACW,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,yBAAyB,CAAC;EAEpFT,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMU,MAAM,GAAGT,sBAAsB,CAACC,kBAAkB,CAACC,mBAAmB,CAAC,CAAC;IAC9E,MAAMJ,MAAM,CAAC,MAAMO,oBAAoB,CAAC,oBAAoB,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACxFd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,qBAAqB,CAC9C,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAMU,MAAM,GAAGT,sBAAsB,CAACC,kBAAkB,CAACE,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7F,MAAML,MAAM,CAAC,MAAMO,oBAAoB,CAAC,oBAAoB,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACxFd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,gCAAgC,CACzD,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,oBAAoB,EAAE,YAAY;IACnC,MAAMU,MAAM,GAAGT,sBAAsB,CAACC,kBAAkB,CAACG,gBAAgB,CAAC,CAAC;IAC3E,MAAMN,MAAM,CAAC,MAAMO,oBAAoB,CAAC,oBAAoB,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACxFd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,kBAAkB,CAC3C,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -16,37 +16,46 @@
16
16
 
17
17
  import path from "path";
18
18
  import { describe, expect, it } from "vitest";
19
- import { generateVersionedTypesFromSchema } from "../generateVersionedTypesFromSchema.js";
20
- import { refFieldsSchema, singleVersionSchema, threeVersionChainSchema, twoVersionAdditiveSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from "./fixtures.js";
19
+ import { generateVersionedTypesFromChain } from "../generateVersionedTypesFromSchema.js";
20
+ import { resolveSchemaChain } from "../resolveSchemaChain.js";
21
+ import { aliasedEntryNameSchema, nestedUnionSchema, refFieldsSchema, singleVersionSchema, threeVersionChainSchema, twoVersionAdditiveSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from "./fixtures.js";
21
22
  import { formatVersionedTypesSnapshot } from "./snapshotUtils.js";
22
- describe("generateVersionedTypesFromSchema", () => {
23
+ describe("generateVersionedTypesFromChain", () => {
23
24
  const snapshotDir = path.join(__dirname, "__snapshots__", "generateVersionedTypesFromSchema");
24
25
  it("single-version schema", async () => {
25
- const result = generateVersionedTypesFromSchema(singleVersionSchema);
26
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(singleVersionSchema));
26
27
  await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "single-version.snap"));
27
28
  });
28
29
  it("two-version additive change", async () => {
29
- const result = generateVersionedTypesFromSchema(twoVersionAdditiveSchema, 1);
30
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(twoVersionAdditiveSchema, 1), 1);
30
31
  await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-additive.snap"));
31
32
  });
32
33
  it("two-version field removal", async () => {
33
- const result = generateVersionedTypesFromSchema(twoVersionFieldRemovalSchema, 1);
34
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(twoVersionFieldRemovalSchema, 1), 1);
34
35
  await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-field-removal.snap"));
35
36
  });
36
37
  it("three-version chain", async () => {
37
- const result = generateVersionedTypesFromSchema(threeVersionChainSchema, 1);
38
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(threeVersionChainSchema, 1), 1);
38
39
  await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "three-version-chain.snap"));
39
40
  });
40
41
  it("schema with ref fields", async () => {
41
- const result = generateVersionedTypesFromSchema(refFieldsSchema);
42
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(refFieldsSchema));
42
43
  await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "ref-fields.snap"));
43
44
  });
44
45
  it("schema with union types", async () => {
45
- const result = generateVersionedTypesFromSchema(unionTypesSchema);
46
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(unionTypesSchema));
46
47
  await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "union-types.snap"));
47
48
  });
49
+ it("preserves aliased export name when export key differs from model name", async () => {
50
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(aliasedEntryNameSchema));
51
+ await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "alias-types.snap"));
52
+ });
53
+ it("includes value field for union variants that reference another union", async () => {
54
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(nestedUnionSchema));
55
+ await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "union-reference-union.snap"));
56
+ });
48
57
  it("respects minSupportedVersion default (latest only)", () => {
49
- const result = generateVersionedTypesFromSchema(twoVersionAdditiveSchema);
58
+ const result = generateVersionedTypesFromChain(resolveSchemaChain(twoVersionAdditiveSchema));
50
59
  expect(result.readTypes.size).toBe(1);
51
60
  expect(result.readTypes.has(2)).toBe(true);
52
61
  expect(result.readTypes.has(1)).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"generateVersionedTypesFromSchema.test.js","names":["path","describe","expect","it","generateVersionedTypesFromSchema","refFieldsSchema","singleVersionSchema","threeVersionChainSchema","twoVersionAdditiveSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatVersionedTypesSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot","readTypes","size","toBe","has"],"sources":["generateVersionedTypesFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateVersionedTypesFromSchema } from \"../generateVersionedTypesFromSchema.js\";\nimport {\n refFieldsSchema,\n singleVersionSchema,\n threeVersionChainSchema,\n twoVersionAdditiveSchema,\n twoVersionFieldRemovalSchema,\n unionTypesSchema,\n} from \"./fixtures.js\";\nimport { formatVersionedTypesSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateVersionedTypesFromSchema\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateVersionedTypesFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateVersionedTypesFromSchema(singleVersionSchema);\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version additive change\", async () => {\n const result = generateVersionedTypesFromSchema(twoVersionAdditiveSchema, 1);\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-additive.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateVersionedTypesFromSchema(twoVersionFieldRemovalSchema, 1);\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"three-version chain\", async () => {\n const result = generateVersionedTypesFromSchema(threeVersionChainSchema, 1);\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"three-version-chain.snap\"),\n );\n });\n\n it(\"schema with ref fields\", async () => {\n const result = generateVersionedTypesFromSchema(refFieldsSchema);\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"ref-fields.snap\"),\n );\n });\n\n it(\"schema with union types\", async () => {\n const result = generateVersionedTypesFromSchema(unionTypesSchema);\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n\n it(\"respects minSupportedVersion default (latest only)\", () => {\n const result = generateVersionedTypesFromSchema(twoVersionAdditiveSchema);\n expect(result.readTypes.size).toBe(1);\n expect(result.readTypes.has(2)).toBe(true);\n expect(result.readTypes.has(1)).toBe(false);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"generateVersionedTypesFromSchema.test.js","names":["path","describe","expect","it","generateVersionedTypesFromChain","resolveSchemaChain","aliasedEntryNameSchema","nestedUnionSchema","refFieldsSchema","singleVersionSchema","threeVersionChainSchema","twoVersionAdditiveSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatVersionedTypesSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot","readTypes","size","toBe","has"],"sources":["generateVersionedTypesFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateVersionedTypesFromChain } from \"../generateVersionedTypesFromSchema.js\";\nimport { resolveSchemaChain } from \"../resolveSchemaChain.js\";\nimport {\n aliasedEntryNameSchema,\n nestedUnionSchema,\n refFieldsSchema,\n singleVersionSchema,\n threeVersionChainSchema,\n twoVersionAdditiveSchema,\n twoVersionFieldRemovalSchema,\n unionTypesSchema,\n} from \"./fixtures.js\";\nimport { formatVersionedTypesSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateVersionedTypesFromChain\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateVersionedTypesFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateVersionedTypesFromChain(resolveSchemaChain(singleVersionSchema));\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version additive change\", async () => {\n const result = generateVersionedTypesFromChain(\n resolveSchemaChain(twoVersionAdditiveSchema, 1),\n 1,\n );\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-additive.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateVersionedTypesFromChain(\n resolveSchemaChain(twoVersionFieldRemovalSchema, 1),\n 1,\n );\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"three-version chain\", async () => {\n const result = generateVersionedTypesFromChain(\n resolveSchemaChain(threeVersionChainSchema, 1),\n 1,\n );\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"three-version-chain.snap\"),\n );\n });\n\n it(\"schema with ref fields\", async () => {\n const result = generateVersionedTypesFromChain(resolveSchemaChain(refFieldsSchema));\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"ref-fields.snap\"),\n );\n });\n\n it(\"schema with union types\", async () => {\n const result = generateVersionedTypesFromChain(resolveSchemaChain(unionTypesSchema));\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n\n it(\"preserves aliased export name when export key differs from model name\", async () => {\n const result = generateVersionedTypesFromChain(resolveSchemaChain(aliasedEntryNameSchema));\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"alias-types.snap\"),\n );\n });\n\n it(\"includes value field for union variants that reference another union\", async () => {\n const result = generateVersionedTypesFromChain(resolveSchemaChain(nestedUnionSchema));\n await expect(await formatVersionedTypesSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-reference-union.snap\"),\n );\n });\n\n it(\"respects minSupportedVersion default (latest only)\", () => {\n const result = generateVersionedTypesFromChain(resolveSchemaChain(twoVersionAdditiveSchema));\n expect(result.readTypes.size).toBe(1);\n expect(result.readTypes.has(2)).toBe(true);\n expect(result.readTypes.has(1)).toBe(false);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -16,37 +16,42 @@
16
16
 
17
17
  import path from "path";
18
18
  import { describe, expect, it } from "vitest";
19
- import { generateVersionedZodFromSchema } from "../generateVersionedZodFromSchema.js";
20
- import { nestedOptionalsSchema, refFieldsSchema, singleVersionSchema, twoVersionAdditiveSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from "./fixtures.js";
19
+ import { generateVersionedZodFromChain } from "../generateVersionedZodFromSchema.js";
20
+ import { resolveSchemaChain } from "../resolveSchemaChain.js";
21
+ import { nestedOptionalsSchema, nestedUnionSchema, refFieldsSchema, singleVersionSchema, twoVersionAdditiveSchema, twoVersionFieldRemovalSchema, unionTypesSchema } from "./fixtures.js";
21
22
  import { formatVersionedZodSnapshot } from "./snapshotUtils.js";
22
- describe("generateVersionedZodFromSchema", () => {
23
+ describe("generateVersionedZodFromChain", () => {
23
24
  const snapshotDir = path.join(__dirname, "__snapshots__", "generateVersionedZodFromSchema");
24
25
  it("single-version schema", async () => {
25
- const result = generateVersionedZodFromSchema(singleVersionSchema);
26
+ const result = generateVersionedZodFromChain(resolveSchemaChain(singleVersionSchema));
26
27
  await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "single-version.snap"));
27
28
  });
28
29
  it("two-version additive change", async () => {
29
- const result = generateVersionedZodFromSchema(twoVersionAdditiveSchema, 1);
30
+ const result = generateVersionedZodFromChain(resolveSchemaChain(twoVersionAdditiveSchema, 1), 1);
30
31
  await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-additive.snap"));
31
32
  });
32
33
  it("two-version field removal", async () => {
33
- const result = generateVersionedZodFromSchema(twoVersionFieldRemovalSchema, 1);
34
+ const result = generateVersionedZodFromChain(resolveSchemaChain(twoVersionFieldRemovalSchema, 1), 1);
34
35
  await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version-field-removal.snap"));
35
36
  });
36
37
  it("schema with union types", async () => {
37
- const result = generateVersionedZodFromSchema(unionTypesSchema);
38
+ const result = generateVersionedZodFromChain(resolveSchemaChain(unionTypesSchema));
38
39
  await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "union-types.snap"));
39
40
  });
40
41
  it("schema with ref fields", async () => {
41
- const result = generateVersionedZodFromSchema(refFieldsSchema);
42
+ const result = generateVersionedZodFromChain(resolveSchemaChain(refFieldsSchema));
42
43
  await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "ref-fields.snap"));
43
44
  });
44
45
  it("nested optionals inside arrays", async () => {
45
- const result = generateVersionedZodFromSchema(nestedOptionalsSchema);
46
+ const result = generateVersionedZodFromChain(resolveSchemaChain(nestedOptionalsSchema));
46
47
  await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "nested-optionals.snap"));
47
48
  });
49
+ it("includes value field in Zod schema for union variants that reference another union", async () => {
50
+ const result = generateVersionedZodFromChain(resolveSchemaChain(nestedUnionSchema));
51
+ await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(path.join(snapshotDir, "union-reference-union.snap"));
52
+ });
48
53
  it("respects minSupportedVersion default (latest only)", () => {
49
- const result = generateVersionedZodFromSchema(twoVersionAdditiveSchema);
54
+ const result = generateVersionedZodFromChain(resolveSchemaChain(twoVersionAdditiveSchema));
50
55
  expect(result.zodSchemas.size).toBe(1);
51
56
  expect(result.zodSchemas.has(2)).toBe(true);
52
57
  expect(result.zodSchemas.has(1)).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"generateVersionedZodFromSchema.test.js","names":["path","describe","expect","it","generateVersionedZodFromSchema","nestedOptionalsSchema","refFieldsSchema","singleVersionSchema","twoVersionAdditiveSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatVersionedZodSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot","zodSchemas","size","toBe","has"],"sources":["generateVersionedZodFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateVersionedZodFromSchema } from \"../generateVersionedZodFromSchema.js\";\nimport {\n nestedOptionalsSchema,\n refFieldsSchema,\n singleVersionSchema,\n twoVersionAdditiveSchema,\n twoVersionFieldRemovalSchema,\n unionTypesSchema,\n} from \"./fixtures.js\";\nimport { formatVersionedZodSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateVersionedZodFromSchema\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateVersionedZodFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateVersionedZodFromSchema(singleVersionSchema);\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version additive change\", async () => {\n const result = generateVersionedZodFromSchema(twoVersionAdditiveSchema, 1);\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-additive.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateVersionedZodFromSchema(twoVersionFieldRemovalSchema, 1);\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"schema with union types\", async () => {\n const result = generateVersionedZodFromSchema(unionTypesSchema);\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n\n it(\"schema with ref fields\", async () => {\n const result = generateVersionedZodFromSchema(refFieldsSchema);\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"ref-fields.snap\"),\n );\n });\n\n it(\"nested optionals inside arrays\", async () => {\n const result = generateVersionedZodFromSchema(nestedOptionalsSchema);\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"nested-optionals.snap\"),\n );\n });\n\n it(\"respects minSupportedVersion default (latest only)\", () => {\n const result = generateVersionedZodFromSchema(twoVersionAdditiveSchema);\n expect(result.zodSchemas.size).toBe(1);\n expect(result.zodSchemas.has(2)).toBe(true);\n expect(result.zodSchemas.has(1)).toBe(false);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"generateVersionedZodFromSchema.test.js","names":["path","describe","expect","it","generateVersionedZodFromChain","resolveSchemaChain","nestedOptionalsSchema","nestedUnionSchema","refFieldsSchema","singleVersionSchema","twoVersionAdditiveSchema","twoVersionFieldRemovalSchema","unionTypesSchema","formatVersionedZodSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot","zodSchemas","size","toBe","has"],"sources":["generateVersionedZodFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateVersionedZodFromChain } from \"../generateVersionedZodFromSchema.js\";\nimport { resolveSchemaChain } from \"../resolveSchemaChain.js\";\nimport {\n nestedOptionalsSchema,\n nestedUnionSchema,\n refFieldsSchema,\n singleVersionSchema,\n twoVersionAdditiveSchema,\n twoVersionFieldRemovalSchema,\n unionTypesSchema,\n} from \"./fixtures.js\";\nimport { formatVersionedZodSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateVersionedZodFromChain\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateVersionedZodFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateVersionedZodFromChain(resolveSchemaChain(singleVersionSchema));\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.snap\"),\n );\n });\n\n it(\"two-version additive change\", async () => {\n const result = generateVersionedZodFromChain(\n resolveSchemaChain(twoVersionAdditiveSchema, 1),\n 1,\n );\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-additive.snap\"),\n );\n });\n\n it(\"two-version field removal\", async () => {\n const result = generateVersionedZodFromChain(\n resolveSchemaChain(twoVersionFieldRemovalSchema, 1),\n 1,\n );\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version-field-removal.snap\"),\n );\n });\n\n it(\"schema with union types\", async () => {\n const result = generateVersionedZodFromChain(resolveSchemaChain(unionTypesSchema));\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-types.snap\"),\n );\n });\n\n it(\"schema with ref fields\", async () => {\n const result = generateVersionedZodFromChain(resolveSchemaChain(refFieldsSchema));\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"ref-fields.snap\"),\n );\n });\n\n it(\"nested optionals inside arrays\", async () => {\n const result = generateVersionedZodFromChain(resolveSchemaChain(nestedOptionalsSchema));\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"nested-optionals.snap\"),\n );\n });\n\n it(\"includes value field in Zod schema for union variants that reference another union\", async () => {\n const result = generateVersionedZodFromChain(resolveSchemaChain(nestedUnionSchema));\n await expect(await formatVersionedZodSnapshot(result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"union-reference-union.snap\"),\n );\n });\n\n it(\"respects minSupportedVersion default (latest only)\", () => {\n const result = generateVersionedZodFromChain(resolveSchemaChain(twoVersionAdditiveSchema));\n expect(result.zodSchemas.size).toBe(1);\n expect(result.zodSchemas.has(2)).toBe(true);\n expect(result.zodSchemas.has(1)).toBe(false);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -16,21 +16,22 @@
16
16
 
17
17
  import path from "path";
18
18
  import { describe, expect, it } from "vitest";
19
- import { generateVersionsFromSchema } from "../generateVersionsFromSchema.js";
19
+ import { generateVersionsFromChain } from "../generateVersionsFromSchema.js";
20
+ import { resolveSchemaChain } from "../resolveSchemaChain.js";
20
21
  import { singleVersionSchema, threeVersionChainSchema, twoVersionAdditiveSchema } from "./fixtures.js";
21
22
  import { formatSingleSnapshot } from "./snapshotUtils.js";
22
- describe("generateVersionsFromSchema", () => {
23
+ describe("generateVersionsFromChain", () => {
23
24
  const snapshotDir = path.join(__dirname, "__snapshots__", "generateVersionsFromSchema");
24
25
  it("single-version schema", async () => {
25
- const result = generateVersionsFromSchema(singleVersionSchema);
26
+ const result = generateVersionsFromChain(resolveSchemaChain(singleVersionSchema));
26
27
  await expect(await formatSingleSnapshot("versions.ts", result)).toMatchFileSnapshot(path.join(snapshotDir, "single-version.ts"));
27
28
  });
28
29
  it("two-version with minSupportedVersion", async () => {
29
- const result = generateVersionsFromSchema(twoVersionAdditiveSchema, 1);
30
+ const result = generateVersionsFromChain(resolveSchemaChain(twoVersionAdditiveSchema, 1), 1);
30
31
  await expect(await formatSingleSnapshot("versions.ts", result)).toMatchFileSnapshot(path.join(snapshotDir, "two-version.ts"));
31
32
  });
32
33
  it("three-version chain", async () => {
33
- const result = generateVersionsFromSchema(threeVersionChainSchema, 1);
34
+ const result = generateVersionsFromChain(resolveSchemaChain(threeVersionChainSchema, 1), 1);
34
35
  await expect(await formatSingleSnapshot("versions.ts", result)).toMatchFileSnapshot(path.join(snapshotDir, "three-version-chain.ts"));
35
36
  });
36
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generateVersionsFromSchema.test.js","names":["path","describe","expect","it","generateVersionsFromSchema","singleVersionSchema","threeVersionChainSchema","twoVersionAdditiveSchema","formatSingleSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateVersionsFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateVersionsFromSchema } from \"../generateVersionsFromSchema.js\";\nimport {\n singleVersionSchema,\n threeVersionChainSchema,\n twoVersionAdditiveSchema,\n} from \"./fixtures.js\";\nimport { formatSingleSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateVersionsFromSchema\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateVersionsFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateVersionsFromSchema(singleVersionSchema);\n await expect(await formatSingleSnapshot(\"versions.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.ts\"),\n );\n });\n\n it(\"two-version with minSupportedVersion\", async () => {\n const result = generateVersionsFromSchema(twoVersionAdditiveSchema, 1);\n await expect(await formatSingleSnapshot(\"versions.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version.ts\"),\n );\n });\n\n it(\"three-version chain\", async () => {\n const result = generateVersionsFromSchema(threeVersionChainSchema, 1);\n await expect(await formatSingleSnapshot(\"versions.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"three-version-chain.ts\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,wBAAwB,QACnB,eAAe;AACtB,SAASC,oBAAoB,QAAQ,oBAAoB;AAEzDP,QAAQ,CAAC,4BAA4B,EAAE,MAAM;EAC3C,MAAMQ,WAAW,GAAGT,IAAI,CAACU,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,4BAA4B,CAAC;EAEvFR,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMS,MAAM,GAAGR,0BAA0B,CAACC,mBAAmB,CAAC;IAC9D,MAAMH,MAAM,CAAC,MAAMM,oBAAoB,CAAC,aAAa,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACjFb,IAAI,CAACU,IAAI,CAACD,WAAW,EAAE,mBAAmB,CAC5C,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMS,MAAM,GAAGR,0BAA0B,CAACG,wBAAwB,EAAE,CAAC,CAAC;IACtE,MAAML,MAAM,CAAC,MAAMM,oBAAoB,CAAC,aAAa,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACjFb,IAAI,CAACU,IAAI,CAACD,WAAW,EAAE,gBAAgB,CACzC,CAAC;EACH,CAAC,CAAC;EAEFN,EAAE,CAAC,qBAAqB,EAAE,YAAY;IACpC,MAAMS,MAAM,GAAGR,0BAA0B,CAACE,uBAAuB,EAAE,CAAC,CAAC;IACrE,MAAMJ,MAAM,CAAC,MAAMM,oBAAoB,CAAC,aAAa,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACjFb,IAAI,CAACU,IAAI,CAACD,WAAW,EAAE,wBAAwB,CACjD,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"generateVersionsFromSchema.test.js","names":["path","describe","expect","it","generateVersionsFromChain","resolveSchemaChain","singleVersionSchema","threeVersionChainSchema","twoVersionAdditiveSchema","formatSingleSnapshot","snapshotDir","join","__dirname","result","toMatchFileSnapshot"],"sources":["generateVersionsFromSchema.test.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 path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport { generateVersionsFromChain } from \"../generateVersionsFromSchema.js\";\nimport { resolveSchemaChain } from \"../resolveSchemaChain.js\";\nimport {\n singleVersionSchema,\n threeVersionChainSchema,\n twoVersionAdditiveSchema,\n} from \"./fixtures.js\";\nimport { formatSingleSnapshot } from \"./snapshotUtils.js\";\n\ndescribe(\"generateVersionsFromChain\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateVersionsFromSchema\");\n\n it(\"single-version schema\", async () => {\n const result = generateVersionsFromChain(resolveSchemaChain(singleVersionSchema));\n await expect(await formatSingleSnapshot(\"versions.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"single-version.ts\"),\n );\n });\n\n it(\"two-version with minSupportedVersion\", async () => {\n const result = generateVersionsFromChain(resolveSchemaChain(twoVersionAdditiveSchema, 1), 1);\n await expect(await formatSingleSnapshot(\"versions.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"two-version.ts\"),\n );\n });\n\n it(\"three-version chain\", async () => {\n const result = generateVersionsFromChain(resolveSchemaChain(threeVersionChainSchema, 1), 1);\n await expect(await formatSingleSnapshot(\"versions.ts\", result)).toMatchFileSnapshot(\n path.join(snapshotDir, \"three-version-chain.ts\"),\n );\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,yBAAyB,QAAQ,kCAAkC;AAC5E,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,wBAAwB,QACnB,eAAe;AACtB,SAASC,oBAAoB,QAAQ,oBAAoB;AAEzDR,QAAQ,CAAC,2BAA2B,EAAE,MAAM;EAC1C,MAAMS,WAAW,GAAGV,IAAI,CAACW,IAAI,CAACC,SAAS,EAAE,eAAe,EAAE,4BAA4B,CAAC;EAEvFT,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMU,MAAM,GAAGT,yBAAyB,CAACC,kBAAkB,CAACC,mBAAmB,CAAC,CAAC;IACjF,MAAMJ,MAAM,CAAC,MAAMO,oBAAoB,CAAC,aAAa,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACjFd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,mBAAmB,CAC5C,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,sCAAsC,EAAE,YAAY;IACrD,MAAMU,MAAM,GAAGT,yBAAyB,CAACC,kBAAkB,CAACG,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,MAAMN,MAAM,CAAC,MAAMO,oBAAoB,CAAC,aAAa,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACjFd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,gBAAgB,CACzC,CAAC;EACH,CAAC,CAAC;EAEFP,EAAE,CAAC,qBAAqB,EAAE,YAAY;IACpC,MAAMU,MAAM,GAAGT,yBAAyB,CAACC,kBAAkB,CAACE,uBAAuB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,MAAML,MAAM,CAAC,MAAMO,oBAAoB,CAAC,aAAa,EAAEI,MAAM,CAAC,CAAC,CAACC,mBAAmB,CACjFd,IAAI,CAACW,IAAI,CAACD,WAAW,EAAE,wBAAwB,CACjD,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -95,12 +95,15 @@ export async function formatVersionedZodSnapshot(result) {
95
95
  * ...
96
96
  * // === _internal/schema.ts ===
97
97
  * ...
98
+ * // === _internal/upgradeFns.ts ===
99
+ * ...
98
100
  */
99
101
  export async function formatInternalTypesSnapshot(result) {
100
102
  const sections = [];
101
103
  sections.push(section("_internal/types.ts", await fmt(result.internalTypes)));
102
104
  sections.push(section("_internal/upgrades.ts", await fmt(result.upgrades)));
103
105
  sections.push(section("_internal/schema.ts", await fmt(result.internalSchema)));
106
+ sections.push(section("_internal/upgradeFns.ts", await fmt(result.internalUpgradeFns)));
104
107
  return sections.join("\n");
105
108
  }
106
109
  //# sourceMappingURL=snapshotUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshotUtils.js","names":["format","prettierOpts","parser","singleQuote","trailingComma","fmt","code","section","filename","content","bar","repeat","formatVersionedTypesSnapshot","result","sections","sortedVersions","readTypes","keys","sort","a","b","version","push","get","writeTypes","typesReExport","join","formatModelMetadataSnapshot","modelsFile","formatSingleSnapshot","formatVersionedZodSnapshot","zodSchemas","schemaReExport","formatInternalTypesSnapshot","internalTypes","upgrades","internalSchema"],"sources":["snapshotUtils.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 { format } from \"prettier\";\nimport type { InternalTypesOutput } from \"../generateInternalFromSchema.js\";\nimport type { ModelMetadataOutput } from \"../generateModelMetadataFromSchema.js\";\nimport type { VersionedTypesOutput } from \"../generateVersionedTypesFromSchema.js\";\nimport type { VersionedZodOutput } from \"../generateVersionedZodFromSchema.js\";\n\nconst prettierOpts = {\n parser: \"typescript\" as const,\n singleQuote: true,\n trailingComma: \"es5\" as const,\n};\n\nasync function fmt(code: string): Promise<string> {\n return format(code, prettierOpts);\n}\n\nfunction section(filename: string, content: string): string {\n const bar = \"=\".repeat(60);\n return `// ${bar}\\n// ${filename}\\n// ${bar}\\n\\n${content}`;\n}\n\n/**\n * Combine a VersionedTypesOutput into a single snapshot string.\n *\n * Layout:\n * // === types_v1.ts ===\n * ...formatted code...\n * // === writeTypes_v1.ts ===\n * ...\n * // === types.ts ===\n * ...\n */\nexport async function formatVersionedTypesSnapshot(\n result: VersionedTypesOutput,\n): Promise<string> {\n const sections: string[] = [];\n\n const sortedVersions = [...result.readTypes.keys()].sort((a, b) => a - b);\n\n for (const version of sortedVersions) {\n sections.push(section(`types_v${version}.ts`, await fmt(result.readTypes.get(version)!)));\n }\n for (const version of sortedVersions) {\n sections.push(section(`writeTypes_v${version}.ts`, await fmt(result.writeTypes.get(version)!)));\n }\n sections.push(section(\"types.ts\", await fmt(result.typesReExport)));\n\n return sections.join(\"\\n\");\n}\n\n/**\n * Format a ModelMetadataOutput into a snapshot string.\n */\nexport async function formatModelMetadataSnapshot(\n result: ModelMetadataOutput,\n): Promise<string> {\n return section(\"models.ts\", await fmt(result.modelsFile));\n}\n\n/**\n * Format a single generated string into a snapshot.\n */\nexport async function formatSingleSnapshot(\n filename: string,\n code: string,\n): Promise<string> {\n return section(filename, await fmt(code));\n}\n\n/**\n * Combine a VersionedZodOutput into a single snapshot string.\n *\n * Layout:\n * // === schema_v1.ts ===\n * ...formatted code...\n * // === schema.ts ===\n * ...\n */\nexport async function formatVersionedZodSnapshot(\n result: VersionedZodOutput,\n): Promise<string> {\n const sections: string[] = [];\n\n const sortedVersions = [...result.zodSchemas.keys()].sort((a, b) => a - b);\n\n for (const version of sortedVersions) {\n sections.push(section(`schema_v${version}.ts`, await fmt(result.zodSchemas.get(version)!)));\n }\n sections.push(section(\"schema.ts\", await fmt(result.schemaReExport)));\n\n return sections.join(\"\\n\");\n}\n\n/**\n * Combine an InternalTypesOutput into a single snapshot string.\n *\n * Layout:\n * // === _internal/types.ts ===\n * ...formatted code...\n * // === _internal/upgrades.ts ===\n * ...\n * // === _internal/schema.ts ===\n * ...\n */\nexport async function formatInternalTypesSnapshot(\n result: InternalTypesOutput,\n): Promise<string> {\n const sections: string[] = [];\n\n sections.push(section(\"_internal/types.ts\", await fmt(result.internalTypes)));\n sections.push(section(\"_internal/upgrades.ts\", await fmt(result.upgrades)));\n sections.push(section(\"_internal/schema.ts\", await fmt(result.internalSchema)));\n\n return sections.join(\"\\n\");\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"snapshotUtils.js","names":["format","prettierOpts","parser","singleQuote","trailingComma","fmt","code","section","filename","content","bar","repeat","formatVersionedTypesSnapshot","result","sections","sortedVersions","readTypes","keys","sort","a","b","version","push","get","writeTypes","typesReExport","join","formatModelMetadataSnapshot","modelsFile","formatSingleSnapshot","formatVersionedZodSnapshot","zodSchemas","schemaReExport","formatInternalTypesSnapshot","internalTypes","upgrades","internalSchema","internalUpgradeFns"],"sources":["snapshotUtils.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 { format } from \"prettier\";\nimport type { InternalTypesOutput } from \"../generateInternalFromSchema.js\";\nimport type { ModelMetadataOutput } from \"../generateModelMetadataFromSchema.js\";\nimport type { VersionedTypesOutput } from \"../generateVersionedTypesFromSchema.js\";\nimport type { VersionedZodOutput } from \"../generateVersionedZodFromSchema.js\";\n\nconst prettierOpts = {\n parser: \"typescript\" as const,\n singleQuote: true,\n trailingComma: \"es5\" as const,\n};\n\nasync function fmt(code: string): Promise<string> {\n return format(code, prettierOpts);\n}\n\nfunction section(filename: string, content: string): string {\n const bar = \"=\".repeat(60);\n return `// ${bar}\\n// ${filename}\\n// ${bar}\\n\\n${content}`;\n}\n\n/**\n * Combine a VersionedTypesOutput into a single snapshot string.\n *\n * Layout:\n * // === types_v1.ts ===\n * ...formatted code...\n * // === writeTypes_v1.ts ===\n * ...\n * // === types.ts ===\n * ...\n */\nexport async function formatVersionedTypesSnapshot(\n result: VersionedTypesOutput,\n): Promise<string> {\n const sections: string[] = [];\n\n const sortedVersions = [...result.readTypes.keys()].sort((a, b) => a - b);\n\n for (const version of sortedVersions) {\n sections.push(section(`types_v${version}.ts`, await fmt(result.readTypes.get(version)!)));\n }\n for (const version of sortedVersions) {\n sections.push(section(`writeTypes_v${version}.ts`, await fmt(result.writeTypes.get(version)!)));\n }\n sections.push(section(\"types.ts\", await fmt(result.typesReExport)));\n\n return sections.join(\"\\n\");\n}\n\n/**\n * Format a ModelMetadataOutput into a snapshot string.\n */\nexport async function formatModelMetadataSnapshot(\n result: ModelMetadataOutput,\n): Promise<string> {\n return section(\"models.ts\", await fmt(result.modelsFile));\n}\n\n/**\n * Format a single generated string into a snapshot.\n */\nexport async function formatSingleSnapshot(\n filename: string,\n code: string,\n): Promise<string> {\n return section(filename, await fmt(code));\n}\n\n/**\n * Combine a VersionedZodOutput into a single snapshot string.\n *\n * Layout:\n * // === schema_v1.ts ===\n * ...formatted code...\n * // === schema.ts ===\n * ...\n */\nexport async function formatVersionedZodSnapshot(\n result: VersionedZodOutput,\n): Promise<string> {\n const sections: string[] = [];\n\n const sortedVersions = [...result.zodSchemas.keys()].sort((a, b) => a - b);\n\n for (const version of sortedVersions) {\n sections.push(section(`schema_v${version}.ts`, await fmt(result.zodSchemas.get(version)!)));\n }\n sections.push(section(\"schema.ts\", await fmt(result.schemaReExport)));\n\n return sections.join(\"\\n\");\n}\n\n/**\n * Combine an InternalTypesOutput into a single snapshot string.\n *\n * Layout:\n * // === _internal/types.ts ===\n * ...formatted code...\n * // === _internal/upgrades.ts ===\n * ...\n * // === _internal/schema.ts ===\n * ...\n * // === _internal/upgradeFns.ts ===\n * ...\n */\nexport async function formatInternalTypesSnapshot(\n result: InternalTypesOutput,\n): Promise<string> {\n const sections: string[] = [];\n\n sections.push(section(\"_internal/types.ts\", await fmt(result.internalTypes)));\n sections.push(section(\"_internal/upgrades.ts\", await fmt(result.upgrades)));\n sections.push(section(\"_internal/schema.ts\", await fmt(result.internalSchema)));\n sections.push(section(\"_internal/upgradeFns.ts\", await fmt(result.internalUpgradeFns)));\n\n return sections.join(\"\\n\");\n}\n"],"mappings":"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","ignoreList":[]}