@palantir/pack.document-schema.type-gen 0.7.0 → 0.9.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 (195) hide show
  1. package/build/esm/cli.js +2 -0
  2. package/build/esm/cli.js.map +1 -1
  3. package/build/esm/commands/asset/assetDeployHandler.js +60 -0
  4. package/build/esm/commands/asset/assetDeployHandler.js.map +1 -0
  5. package/build/esm/commands/asset/registerAssetCommands.js +22 -0
  6. package/build/esm/commands/asset/registerAssetCommands.js.map +1 -0
  7. package/build/esm/commands/ir/irDeployHandler.js +5 -4
  8. package/build/esm/commands/ir/irDeployHandler.js.map +1 -1
  9. package/build/esm/commands/ir/irGenAssetHandler.js +19 -13
  10. package/build/esm/commands/ir/irGenAssetHandler.js.map +1 -1
  11. package/build/esm/commands/schema/registerSchemaCommands.js +2 -0
  12. package/build/esm/commands/schema/registerSchemaCommands.js.map +1 -1
  13. package/build/esm/commands/schema/schemaGenTypesHandler.js +147 -0
  14. package/build/esm/commands/schema/schemaGenTypesHandler.js.map +1 -0
  15. package/build/esm/commands/steps/stepsGenIrHandler.js +6 -1
  16. package/build/esm/commands/steps/stepsGenIrHandler.js.map +1 -1
  17. package/build/esm/commands/types.js +2 -0
  18. package/build/esm/commands/types.js.map +1 -0
  19. package/build/esm/index.js +6 -0
  20. package/build/esm/index.js.map +1 -1
  21. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/fieldDef.js.map +1 -1
  22. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/fieldValueDatetime.js.map +1 -1
  23. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/fieldValueMediaRef.js.map +1 -1
  24. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/fieldValueText.js.map +1 -1
  25. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/recordDef.js.map +1 -1
  26. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/schemaMeta.js.map +1 -1
  27. package/build/esm/lib/pack-docschema-api/pack-docschema-ir/unionDef.js.map +1 -1
  28. package/build/esm/utils/generatedFileHeader.js +1 -0
  29. package/build/esm/utils/generatedFileHeader.js.map +1 -1
  30. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js +1 -1
  31. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js.map +1 -1
  32. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js +1 -1
  33. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js.map +1 -1
  34. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js +1 -1
  35. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js.map +1 -1
  36. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js +1 -1
  37. package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js.map +1 -1
  38. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js +1 -1
  39. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js.map +1 -1
  40. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js +1 -1
  41. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js.map +1 -1
  42. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js +1 -1
  43. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js.map +1 -1
  44. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js +1 -1
  45. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js.map +1 -1
  46. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js +1 -1
  47. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js.map +1 -1
  48. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js +1 -1
  49. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js.map +1 -1
  50. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js +1 -1
  51. package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js.map +1 -1
  52. package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js +323 -0
  53. package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js.map +1 -0
  54. package/build/esm/utils/ir/__tests__/generateModelsFromIr.test.js +43 -61
  55. package/build/esm/utils/ir/__tests__/generateModelsFromIr.test.js.map +1 -1
  56. package/build/esm/utils/ir/__tests__/generateZodSchemasFromIr.test.js +73 -103
  57. package/build/esm/utils/ir/__tests__/generateZodSchemasFromIr.test.js.map +1 -1
  58. package/build/esm/utils/ir/convertIrToWireSchema.js +201 -0
  59. package/build/esm/utils/ir/convertIrToWireSchema.js.map +1 -0
  60. package/build/esm/utils/ir/generateModelsFromIr.js +2 -2
  61. package/build/esm/utils/ir/generateModelsFromIr.js.map +1 -1
  62. package/build/esm/utils/ir/generateZodSchemasFromIr.js +2 -2
  63. package/build/esm/utils/ir/generateZodSchemasFromIr.js.map +1 -1
  64. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/single-version.js +2 -0
  65. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/single-version.js.map +1 -0
  66. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/three-version-chain.js +2 -0
  67. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/three-version-chain.js.map +1 -0
  68. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/two-version.js +2 -0
  69. package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/two-version.js.map +1 -0
  70. package/build/esm/utils/schema/__tests__/fixtures.js +207 -0
  71. package/build/esm/utils/schema/__tests__/fixtures.js.map +1 -0
  72. package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js +41 -0
  73. package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js.map +1 -0
  74. package/build/esm/utils/schema/__tests__/generateModelMetadataFromSchema.test.js +41 -0
  75. package/build/esm/utils/schema/__tests__/generateModelMetadataFromSchema.test.js.map +1 -0
  76. package/build/esm/utils/schema/__tests__/generateScopeFromSchema.test.js +37 -0
  77. package/build/esm/utils/schema/__tests__/generateScopeFromSchema.test.js.map +1 -0
  78. package/build/esm/utils/schema/__tests__/generateVersionedTypesFromSchema.test.js +55 -0
  79. package/build/esm/utils/schema/__tests__/generateVersionedTypesFromSchema.test.js.map +1 -0
  80. package/build/esm/utils/schema/__tests__/generateVersionedZodFromSchema.test.js +55 -0
  81. package/build/esm/utils/schema/__tests__/generateVersionedZodFromSchema.test.js.map +1 -0
  82. package/build/esm/utils/schema/__tests__/generateVersionsFromSchema.test.js +37 -0
  83. package/build/esm/utils/schema/__tests__/generateVersionsFromSchema.test.js.map +1 -0
  84. package/build/esm/utils/schema/__tests__/snapshotUtils.js +106 -0
  85. package/build/esm/utils/schema/__tests__/snapshotUtils.js.map +1 -0
  86. package/build/esm/utils/schema/generateIndexFromSchema.js +72 -0
  87. package/build/esm/utils/schema/generateIndexFromSchema.js.map +1 -0
  88. package/build/esm/utils/schema/generateInternalFromSchema.js +380 -0
  89. package/build/esm/utils/schema/generateInternalFromSchema.js.map +1 -0
  90. package/build/esm/utils/schema/generateModelMetadataFromSchema.js +195 -0
  91. package/build/esm/utils/schema/generateModelMetadataFromSchema.js.map +1 -0
  92. package/build/esm/utils/schema/generateScopeFromSchema.js +155 -0
  93. package/build/esm/utils/schema/generateScopeFromSchema.js.map +1 -0
  94. package/build/esm/utils/schema/generateTypesFromSchema.js +16 -30
  95. package/build/esm/utils/schema/generateTypesFromSchema.js.map +1 -1
  96. package/build/esm/utils/schema/generateVersionedTypesFromSchema.js +281 -0
  97. package/build/esm/utils/schema/generateVersionedTypesFromSchema.js.map +1 -0
  98. package/build/esm/utils/schema/generateVersionedZodFromSchema.js +189 -0
  99. package/build/esm/utils/schema/generateVersionedZodFromSchema.js.map +1 -0
  100. package/build/esm/utils/schema/generateVersionsFromSchema.js +50 -0
  101. package/build/esm/utils/schema/generateVersionsFromSchema.js.map +1 -0
  102. package/build/esm/utils/schema/resolveSchemaChain.js +54 -0
  103. package/build/esm/utils/schema/resolveSchemaChain.js.map +1 -0
  104. package/build/esm/utils/schema/runtimeSchema.js +96 -0
  105. package/build/esm/utils/schema/runtimeSchema.js.map +1 -0
  106. package/build/esm/utils/steps/__tests__/__snapshots__/types/arrayFields.js.map +1 -1
  107. package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js +1 -1
  108. package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js.map +1 -1
  109. package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js +1 -1
  110. package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js.map +1 -1
  111. package/build/esm/utils/steps/__tests__/__snapshots__/types/refTypes.js.map +1 -1
  112. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleRecord.js.map +1 -1
  113. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js +1 -1
  114. package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js.map +1 -1
  115. package/build/esm/utils/steps/__tests__/convertStepsToIr.test.js +81 -8
  116. package/build/esm/utils/steps/__tests__/convertStepsToIr.test.js.map +1 -1
  117. package/build/esm/utils/steps/convertStepsToIr.js +8 -13
  118. package/build/esm/utils/steps/convertStepsToIr.js.map +1 -1
  119. package/build/esm/utils/steps/parseMigrationSteps.js +4 -2
  120. package/build/esm/utils/steps/parseMigrationSteps.js.map +1 -1
  121. package/build/types/cli.d.ts.map +1 -1
  122. package/build/types/commands/asset/assetDeployHandler.d.ts +10 -0
  123. package/build/types/commands/asset/assetDeployHandler.d.ts.map +1 -0
  124. package/build/types/commands/asset/registerAssetCommands.d.ts +3 -0
  125. package/build/types/commands/asset/registerAssetCommands.d.ts.map +1 -0
  126. package/build/types/commands/ir/irDeployHandler.d.ts +1 -1
  127. package/build/types/commands/ir/irDeployHandler.d.ts.map +1 -1
  128. package/build/types/commands/ir/irGenAssetHandler.d.ts +1 -1
  129. package/build/types/commands/ir/irGenAssetHandler.d.ts.map +1 -1
  130. package/build/types/commands/schema/registerSchemaCommands.d.ts.map +1 -1
  131. package/build/types/commands/schema/schemaGenTypesHandler.d.ts +8 -0
  132. package/build/types/commands/schema/schemaGenTypesHandler.d.ts.map +1 -0
  133. package/build/types/commands/steps/stepsGenIrHandler.d.ts.map +1 -1
  134. package/build/types/commands/types.d.ts +12 -0
  135. package/build/types/commands/types.d.ts.map +1 -0
  136. package/build/types/index.d.ts +6 -0
  137. package/build/types/index.d.ts.map +1 -1
  138. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldDef.d.ts +2 -2
  139. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldDef.d.ts.map +1 -1
  140. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldValueDatetime.d.ts +1 -0
  141. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldValueDatetime.d.ts.map +1 -1
  142. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldValueMediaRef.d.ts +1 -0
  143. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldValueMediaRef.d.ts.map +1 -1
  144. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldValueText.d.ts +3 -0
  145. package/build/types/lib/pack-docschema-api/pack-docschema-ir/fieldValueText.d.ts.map +1 -1
  146. package/build/types/lib/pack-docschema-api/pack-docschema-ir/recordDef.d.ts +0 -2
  147. package/build/types/lib/pack-docschema-api/pack-docschema-ir/recordDef.d.ts.map +1 -1
  148. package/build/types/lib/pack-docschema-api/pack-docschema-ir/schemaMeta.d.ts +2 -2
  149. package/build/types/lib/pack-docschema-api/pack-docschema-ir/schemaMeta.d.ts.map +1 -1
  150. package/build/types/lib/pack-docschema-api/pack-docschema-ir/unionDef.d.ts +1 -1
  151. package/build/types/lib/pack-docschema-api/pack-docschema-ir/unionDef.d.ts.map +1 -1
  152. package/build/types/utils/generatedFileHeader.d.ts +1 -0
  153. package/build/types/utils/generatedFileHeader.d.ts.map +1 -1
  154. package/build/types/utils/ir/__tests__/convertIrToWireSchema.test.d.ts +2 -0
  155. package/build/types/utils/ir/__tests__/convertIrToWireSchema.test.d.ts.map +1 -0
  156. package/build/types/utils/ir/convertIrToWireSchema.d.ts +17 -0
  157. package/build/types/utils/ir/convertIrToWireSchema.d.ts.map +1 -0
  158. package/build/types/utils/schema/__tests__/fixtures.d.ts +14 -0
  159. package/build/types/utils/schema/__tests__/fixtures.d.ts.map +1 -0
  160. package/build/types/utils/schema/__tests__/generateInternalFromSchema.test.d.ts +2 -0
  161. package/build/types/utils/schema/__tests__/generateInternalFromSchema.test.d.ts.map +1 -0
  162. package/build/types/utils/schema/__tests__/generateModelMetadataFromSchema.test.d.ts +2 -0
  163. package/build/types/utils/schema/__tests__/generateModelMetadataFromSchema.test.d.ts.map +1 -0
  164. package/build/types/utils/schema/__tests__/generateScopeFromSchema.test.d.ts +2 -0
  165. package/build/types/utils/schema/__tests__/generateScopeFromSchema.test.d.ts.map +1 -0
  166. package/build/types/utils/schema/__tests__/generateVersionedTypesFromSchema.test.d.ts +2 -0
  167. package/build/types/utils/schema/__tests__/generateVersionedTypesFromSchema.test.d.ts.map +1 -0
  168. package/build/types/utils/schema/__tests__/generateVersionedZodFromSchema.test.d.ts +2 -0
  169. package/build/types/utils/schema/__tests__/generateVersionedZodFromSchema.test.d.ts.map +1 -0
  170. package/build/types/utils/schema/__tests__/generateVersionsFromSchema.test.d.ts +2 -0
  171. package/build/types/utils/schema/__tests__/generateVersionsFromSchema.test.d.ts.map +1 -0
  172. package/build/types/utils/schema/__tests__/snapshotUtils.d.ts +47 -0
  173. package/build/types/utils/schema/__tests__/snapshotUtils.d.ts.map +1 -0
  174. package/build/types/utils/schema/generateIndexFromSchema.d.ts +14 -0
  175. package/build/types/utils/schema/generateIndexFromSchema.d.ts.map +1 -0
  176. package/build/types/utils/schema/generateInternalFromSchema.d.ts +18 -0
  177. package/build/types/utils/schema/generateInternalFromSchema.d.ts.map +1 -0
  178. package/build/types/utils/schema/generateModelMetadataFromSchema.d.ts +15 -0
  179. package/build/types/utils/schema/generateModelMetadataFromSchema.d.ts.map +1 -0
  180. package/build/types/utils/schema/generateScopeFromSchema.d.ts +13 -0
  181. package/build/types/utils/schema/generateScopeFromSchema.d.ts.map +1 -0
  182. package/build/types/utils/schema/generateTypesFromSchema.d.ts.map +1 -1
  183. package/build/types/utils/schema/generateVersionedTypesFromSchema.d.ts +18 -0
  184. package/build/types/utils/schema/generateVersionedTypesFromSchema.d.ts.map +1 -0
  185. package/build/types/utils/schema/generateVersionedZodFromSchema.d.ts +16 -0
  186. package/build/types/utils/schema/generateVersionedZodFromSchema.d.ts.map +1 -0
  187. package/build/types/utils/schema/generateVersionsFromSchema.d.ts +13 -0
  188. package/build/types/utils/schema/generateVersionsFromSchema.d.ts.map +1 -0
  189. package/build/types/utils/schema/resolveSchemaChain.d.ts +18 -0
  190. package/build/types/utils/schema/resolveSchemaChain.d.ts.map +1 -0
  191. package/build/types/utils/schema/runtimeSchema.d.ts +59 -0
  192. package/build/types/utils/schema/runtimeSchema.d.ts.map +1 -0
  193. package/build/types/utils/steps/convertStepsToIr.d.ts.map +1 -1
  194. package/build/types/utils/steps/parseMigrationSteps.d.ts.map +1 -1
  195. package/package.json +4 -4
package/build/esm/cli.js CHANGED
@@ -15,12 +15,14 @@
15
15
  */
16
16
 
17
17
  import { Command } from "commander";
18
+ import { registerAssetCommands } from "./commands/asset/registerAssetCommands.js";
18
19
  import { registerIrCommands } from "./commands/ir/registerIrCommands.js";
19
20
  import { registerSchemaCommands } from "./commands/schema/registerSchemaCommands.js";
20
21
  import { registerStepsCommands } from "./commands/steps/registerStepsCommands.js";
21
22
  export function cli(args) {
22
23
  const program = new Command();
23
24
  program.name("document-schema-type-gen").description("Document schema type generation CLI").version("0.0.1");
25
+ registerAssetCommands(program);
24
26
  registerIrCommands(program);
25
27
  registerSchemaCommands(program);
26
28
  registerStepsCommands(program);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","names":["Command","registerIrCommands","registerSchemaCommands","registerStepsCommands","cli","args","program","name","description","version","parse"],"sources":["cli.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Command } from \"commander\";\nimport { registerIrCommands } from \"./commands/ir/registerIrCommands.js\";\nimport { registerSchemaCommands } from \"./commands/schema/registerSchemaCommands.js\";\nimport { registerStepsCommands } from \"./commands/steps/registerStepsCommands.js\";\n\nexport function cli(args: string[]): void {\n const program = new Command();\n\n program\n .name(\"document-schema-type-gen\")\n .description(\"Document schema type generation CLI\")\n .version(\"0.0.1\");\n\n registerIrCommands(program);\n registerSchemaCommands(program);\n registerStepsCommands(program);\n\n program.parse(args);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,WAAW;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,sBAAsB,QAAQ,6CAA6C;AACpF,SAASC,qBAAqB,QAAQ,2CAA2C;AAEjF,OAAO,SAASC,GAAGA,CAACC,IAAc,EAAQ;EACxC,MAAMC,OAAO,GAAG,IAAIN,OAAO,CAAC,CAAC;EAE7BM,OAAO,CACJC,IAAI,CAAC,0BAA0B,CAAC,CAChCC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,OAAO,CAAC,OAAO,CAAC;EAEnBR,kBAAkB,CAACK,OAAO,CAAC;EAC3BJ,sBAAsB,CAACI,OAAO,CAAC;EAC/BH,qBAAqB,CAACG,OAAO,CAAC;EAE9BA,OAAO,CAACI,KAAK,CAACL,IAAI,CAAC;AACrB","ignoreList":[]}
1
+ {"version":3,"file":"cli.js","names":["Command","registerAssetCommands","registerIrCommands","registerSchemaCommands","registerStepsCommands","cli","args","program","name","description","version","parse"],"sources":["cli.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Command } from \"commander\";\nimport { registerAssetCommands } from \"./commands/asset/registerAssetCommands.js\";\nimport { registerIrCommands } from \"./commands/ir/registerIrCommands.js\";\nimport { registerSchemaCommands } from \"./commands/schema/registerSchemaCommands.js\";\nimport { registerStepsCommands } from \"./commands/steps/registerStepsCommands.js\";\n\nexport function cli(args: string[]): void {\n const program = new Command();\n\n program\n .name(\"document-schema-type-gen\")\n .description(\"Document schema type generation CLI\")\n .version(\"0.0.1\");\n\n registerAssetCommands(program);\n registerIrCommands(program);\n registerSchemaCommands(program);\n registerStepsCommands(program);\n\n program.parse(args);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,WAAW;AACnC,SAASC,qBAAqB,QAAQ,2CAA2C;AACjF,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,sBAAsB,QAAQ,6CAA6C;AACpF,SAASC,qBAAqB,QAAQ,2CAA2C;AAEjF,OAAO,SAASC,GAAGA,CAACC,IAAc,EAAQ;EACxC,MAAMC,OAAO,GAAG,IAAIP,OAAO,CAAC,CAAC;EAE7BO,OAAO,CACJC,IAAI,CAAC,0BAA0B,CAAC,CAChCC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,OAAO,CAAC,OAAO,CAAC;EAEnBT,qBAAqB,CAACM,OAAO,CAAC;EAC9BL,kBAAkB,CAACK,OAAO,CAAC;EAC3BJ,sBAAsB,CAACI,OAAO,CAAC;EAC/BH,qBAAqB,CAACG,OAAO,CAAC;EAE9BA,OAAO,CAACI,KAAK,CAACL,IAAI,CAAC;AACrB","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { createPlatformClient, PalantirApiError } from "@osdk/client";
18
+ import { DocumentTypes } from "@osdk/foundry.pack";
19
+ import { CommanderError } from "commander";
20
+ import { consola } from "consola";
21
+ import { readFileSync } from "fs";
22
+ import { resolve } from "path";
23
+ /** Useful for manually deploying a document type during development to test schema changes. */
24
+ export async function assetDeployHandler(options) {
25
+ try {
26
+ const assetPath = resolve(options.input);
27
+ consola.info(`Reading asset file from: ${assetPath}`);
28
+ const assetContent = readFileSync(assetPath, "utf8");
29
+ const asset = JSON.parse(assetContent);
30
+ const osdkClient = createPlatformClient(options.baseUrl, () => Promise.resolve(options.auth));
31
+ const request = {
32
+ requestBody: {
33
+ name: asset.documentTypeName,
34
+ ontologyRid: options.ontologyRid,
35
+ schema: asset.documentStorageType.yjs,
36
+ fileSystemType: asset.fileSystemType,
37
+ version: asset.schemaVersion
38
+ }
39
+ };
40
+ consola.info("Creating first-party document type", request);
41
+ const result = await DocumentTypes.createFirstParty(osdkClient, request, {
42
+ preview: true
43
+ });
44
+ consola.success("Successfully created first-party document type", result);
45
+ } catch (error) {
46
+ if (error instanceof PalantirApiError) {
47
+ const {
48
+ message,
49
+ errorName,
50
+ errorCode
51
+ } = error;
52
+ const details = [errorName, errorCode].filter(Boolean).join(" ");
53
+ consola.error(`❌ Error during first-party deploy: ${message}${details ? ` [${details}]` : ""}`);
54
+ } else {
55
+ consola.error("❌ Error during first-party deploy:", error);
56
+ }
57
+ throw new CommanderError(1, "ERRASSETDEPLOY", "Error deploying document type from asset");
58
+ }
59
+ }
60
+ //# sourceMappingURL=assetDeployHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetDeployHandler.js","names":["createPlatformClient","PalantirApiError","DocumentTypes","CommanderError","consola","readFileSync","resolve","assetDeployHandler","options","assetPath","input","info","assetContent","asset","JSON","parse","osdkClient","baseUrl","Promise","auth","request","requestBody","name","documentTypeName","ontologyRid","schema","documentStorageType","yjs","fileSystemType","version","schemaVersion","result","createFirstParty","preview","success","error","message","errorName","errorCode","details","filter","Boolean","join"],"sources":["assetDeployHandler.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createPlatformClient, PalantirApiError } from \"@osdk/client\";\nimport type { CreateFirstPartyDocumentTypeRequest } from \"@osdk/foundry.pack\";\nimport { DocumentTypes } from \"@osdk/foundry.pack\";\nimport { CommanderError } from \"commander\";\nimport { consola } from \"consola\";\nimport { readFileSync } from \"fs\";\nimport { resolve } from \"path\";\nimport type { DocumentTypeAsset } from \"../types.js\";\n\ninterface AssetDeployOptions {\n readonly input: string;\n readonly baseUrl: string;\n readonly auth: string;\n readonly ontologyRid: string;\n}\n\n/** Useful for manually deploying a document type during development to test schema changes. */\nexport async function assetDeployHandler(options: AssetDeployOptions): Promise<void> {\n try {\n const assetPath = resolve(options.input);\n\n consola.info(`Reading asset file from: ${assetPath}`);\n\n const assetContent = readFileSync(assetPath, \"utf8\");\n const asset = JSON.parse(assetContent) as DocumentTypeAsset;\n\n const osdkClient = createPlatformClient(\n options.baseUrl,\n () => Promise.resolve(options.auth),\n );\n\n const request: CreateFirstPartyDocumentTypeRequest = {\n requestBody: {\n name: asset.documentTypeName,\n ontologyRid: options.ontologyRid,\n schema: asset.documentStorageType.yjs,\n fileSystemType: asset.fileSystemType,\n version: asset.schemaVersion,\n },\n };\n\n consola.info(\"Creating first-party document type\", request);\n\n const result = await DocumentTypes.createFirstParty(osdkClient, request, { preview: true });\n\n consola.success(\"Successfully created first-party document type\", result);\n } catch (error) {\n if (error instanceof PalantirApiError) {\n const { message, errorName, errorCode } = error;\n const details = [errorName, errorCode].filter(Boolean).join(\" \");\n consola.error(\n `❌ Error during first-party deploy: ${message}${details ? ` [${details}]` : \"\"}`,\n );\n } else {\n consola.error(\"❌ Error during first-party deploy:\", error);\n }\n throw new CommanderError(1, \"ERRASSETDEPLOY\", \"Error deploying document type from asset\");\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,oBAAoB,EAAEC,gBAAgB,QAAQ,cAAc;AAErE,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,OAAO,QAAQ,SAAS;AACjC,SAASC,YAAY,QAAQ,IAAI;AACjC,SAASC,OAAO,QAAQ,MAAM;AAU9B;AACA,OAAO,eAAeC,kBAAkBA,CAACC,OAA2B,EAAiB;EACnF,IAAI;IACF,MAAMC,SAAS,GAAGH,OAAO,CAACE,OAAO,CAACE,KAAK,CAAC;IAExCN,OAAO,CAACO,IAAI,CAAC,4BAA4BF,SAAS,EAAE,CAAC;IAErD,MAAMG,YAAY,GAAGP,YAAY,CAACI,SAAS,EAAE,MAAM,CAAC;IACpD,MAAMI,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACH,YAAY,CAAsB;IAE3D,MAAMI,UAAU,GAAGhB,oBAAoB,CACrCQ,OAAO,CAACS,OAAO,EACf,MAAMC,OAAO,CAACZ,OAAO,CAACE,OAAO,CAACW,IAAI,CACpC,CAAC;IAED,MAAMC,OAA4C,GAAG;MACnDC,WAAW,EAAE;QACXC,IAAI,EAAET,KAAK,CAACU,gBAAgB;QAC5BC,WAAW,EAAEhB,OAAO,CAACgB,WAAW;QAChCC,MAAM,EAAEZ,KAAK,CAACa,mBAAmB,CAACC,GAAG;QACrCC,cAAc,EAAEf,KAAK,CAACe,cAAc;QACpCC,OAAO,EAAEhB,KAAK,CAACiB;MACjB;IACF,CAAC;IAED1B,OAAO,CAACO,IAAI,CAAC,oCAAoC,EAAES,OAAO,CAAC;IAE3D,MAAMW,MAAM,GAAG,MAAM7B,aAAa,CAAC8B,gBAAgB,CAAChB,UAAU,EAAEI,OAAO,EAAE;MAAEa,OAAO,EAAE;IAAK,CAAC,CAAC;IAE3F7B,OAAO,CAAC8B,OAAO,CAAC,gDAAgD,EAAEH,MAAM,CAAC;EAC3E,CAAC,CAAC,OAAOI,KAAK,EAAE;IACd,IAAIA,KAAK,YAAYlC,gBAAgB,EAAE;MACrC,MAAM;QAAEmC,OAAO;QAAEC,SAAS;QAAEC;MAAU,CAAC,GAAGH,KAAK;MAC/C,MAAMI,OAAO,GAAG,CAACF,SAAS,EAAEC,SAAS,CAAC,CAACE,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MAChEtC,OAAO,CAAC+B,KAAK,CACX,sCAAsCC,OAAO,GAAGG,OAAO,GAAG,KAAKA,OAAO,GAAG,GAAG,EAAE,EAChF,CAAC;IACH,CAAC,MAAM;MACLnC,OAAO,CAAC+B,KAAK,CAAC,oCAAoC,EAAEA,KAAK,CAAC;IAC5D;IACA,MAAM,IAAIhC,cAAc,CAAC,CAAC,EAAE,gBAAgB,EAAE,0CAA0C,CAAC;EAC3F;AACF","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { assetDeployHandler } from "./assetDeployHandler.js";
18
+ export function registerAssetCommands(program) {
19
+ const assetCmd = program.command("asset").description("Asset-based document type commands");
20
+ assetCmd.command("deploy").description("Deploy a document type to a Foundry stack using an asset JSON file").requiredOption("-i, --input <file>", "Path to asset JSON file (output of 'ir asset')").requiredOption("-b, --base-url <url>", "Base URL for Foundry API").requiredOption("-a, --auth <token>", "Authentication token for Foundry API").requiredOption("-o, --ontology-rid <rid>", "Target ontology RID").action(assetDeployHandler);
21
+ }
22
+ //# sourceMappingURL=registerAssetCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerAssetCommands.js","names":["assetDeployHandler","registerAssetCommands","program","assetCmd","command","description","requiredOption","action"],"sources":["registerAssetCommands.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Command } from \"commander\";\nimport { assetDeployHandler } from \"./assetDeployHandler.js\";\n\nexport function registerAssetCommands(program: Command): void {\n const assetCmd = program\n .command(\"asset\")\n .description(\"Asset-based document type commands\");\n\n assetCmd\n .command(\"deploy\")\n .description(\"Deploy a document type to a Foundry stack using an asset JSON file\")\n .requiredOption(\"-i, --input <file>\", \"Path to asset JSON file (output of 'ir asset')\")\n .requiredOption(\"-b, --base-url <url>\", \"Base URL for Foundry API\")\n .requiredOption(\"-a, --auth <token>\", \"Authentication token for Foundry API\")\n .requiredOption(\"-o, --ontology-rid <rid>\", \"Target ontology RID\")\n .action(assetDeployHandler);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,kBAAkB,QAAQ,yBAAyB;AAE5D,OAAO,SAASC,qBAAqBA,CAACC,OAAgB,EAAQ;EAC5D,MAAMC,QAAQ,GAAGD,OAAO,CACrBE,OAAO,CAAC,OAAO,CAAC,CAChBC,WAAW,CAAC,oCAAoC,CAAC;EAEpDF,QAAQ,CACLC,OAAO,CAAC,QAAQ,CAAC,CACjBC,WAAW,CAAC,oEAAoE,CAAC,CACjFC,cAAc,CAAC,oBAAoB,EAAE,gDAAgD,CAAC,CACtFA,cAAc,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAClEA,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC,CAC5EA,cAAc,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CACjEC,MAAM,CAACP,kBAAkB,CAAC;AAC/B","ignoreList":[]}
@@ -20,6 +20,7 @@ import { CommanderError } from "commander";
20
20
  import { consola } from "consola";
21
21
  import { readFileSync } from "fs";
22
22
  import { resolve } from "path";
23
+ import { convertIrToWireSchema } from "../../utils/ir/convertIrToWireSchema.js";
23
24
  export async function irDeployHandler(options) {
24
25
  try {
25
26
  const irPath = resolve(options.ir);
@@ -29,16 +30,16 @@ export async function irDeployHandler(options) {
29
30
  // TODO: conjureToZod based validation that IR content matches the conjure IR shape
30
31
  const ir = JSON.parse(irContent);
31
32
  const osdkClient = createPlatformClient(options.baseUrl, () => Promise.resolve(options.auth));
33
+ const schema = convertIrToWireSchema(ir);
32
34
  const request = {
33
35
  name: ir.name,
34
- parentFolderRid: options.parentFolder
36
+ parentFolderRid: options.parentFolder,
37
+ schema
35
38
  };
36
39
  if (options.fileSystemType != null) {
37
40
  request.fileSystemType = options.fileSystemType;
38
41
  }
39
-
40
- // PACK BE does not yet support storing schemas...
41
- consola.warn("Creating document type without schema information", request);
42
+ consola.info("Creating document type with schema", request);
42
43
  await DocumentTypes.create(osdkClient, request, {
43
44
  preview: true
44
45
  });
@@ -1 +1 @@
1
- {"version":3,"file":"irDeployHandler.js","names":["createPlatformClient","DocumentTypes","CommanderError","consola","readFileSync","resolve","irDeployHandler","options","irPath","ir","info","irContent","JSON","parse","osdkClient","baseUrl","Promise","auth","request","name","parentFolderRid","parentFolder","fileSystemType","warn","create","preview","error"],"sources":["irDeployHandler.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createPlatformClient } from \"@osdk/client\";\nimport type { CreateDocumentTypeRequest } from \"@osdk/foundry.pack\";\nimport { DocumentTypes } from \"@osdk/foundry.pack\";\nimport { CommanderError } from \"commander\";\nimport { consola } from \"consola\";\nimport { readFileSync } from \"fs\";\nimport { resolve } from \"path\";\nimport type { IRealTimeDocumentSchema } from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\n\ntype FileSystemType = \"ARTIFACTS\" | \"COMPASS\";\n\ninterface DeployOptions {\n readonly ir: string;\n readonly baseUrl: string;\n readonly auth: string;\n readonly parentFolder: string;\n readonly fileSystemType: FileSystemType;\n}\n\nexport async function irDeployHandler(options: DeployOptions): Promise<void> {\n try {\n const irPath = resolve(options.ir);\n\n consola.info(`Reading schema from: ${irPath}`);\n\n const irContent = readFileSync(irPath, \"utf8\");\n\n // TODO: conjureToZod based validation that IR content matches the conjure IR shape\n const ir = JSON.parse(irContent) as IRealTimeDocumentSchema;\n\n const osdkClient = createPlatformClient(\n options.baseUrl,\n () => Promise.resolve(options.auth),\n );\n\n const request: CreateDocumentTypeRequest = {\n name: ir.name,\n parentFolderRid: options.parentFolder,\n };\n\n if (options.fileSystemType != null) {\n request.fileSystemType = options.fileSystemType;\n }\n\n // PACK BE does not yet support storing schemas...\n consola.warn(\"Creating document type without schema information\", request);\n\n await DocumentTypes.create(osdkClient, request, { preview: true });\n } catch (error) {\n consola.error(\"❌ Error during Deploy:\", error);\n throw new CommanderError(1, \"ERRIRMDEPLOY\", \"Error deploying IR document schema\");\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,oBAAoB,QAAQ,cAAc;AAEnD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,OAAO,QAAQ,SAAS;AACjC,SAASC,YAAY,QAAQ,IAAI;AACjC,SAASC,OAAO,QAAQ,MAAM;AAa9B,OAAO,eAAeC,eAAeA,CAACC,OAAsB,EAAiB;EAC3E,IAAI;IACF,MAAMC,MAAM,GAAGH,OAAO,CAACE,OAAO,CAACE,EAAE,CAAC;IAElCN,OAAO,CAACO,IAAI,CAAC,wBAAwBF,MAAM,EAAE,CAAC;IAE9C,MAAMG,SAAS,GAAGP,YAAY,CAACI,MAAM,EAAE,MAAM,CAAC;;IAE9C;IACA,MAAMC,EAAE,GAAGG,IAAI,CAACC,KAAK,CAACF,SAAS,CAA4B;IAE3D,MAAMG,UAAU,GAAGd,oBAAoB,CACrCO,OAAO,CAACQ,OAAO,EACf,MAAMC,OAAO,CAACX,OAAO,CAACE,OAAO,CAACU,IAAI,CACpC,CAAC;IAED,MAAMC,OAAkC,GAAG;MACzCC,IAAI,EAAEV,EAAE,CAACU,IAAI;MACbC,eAAe,EAAEb,OAAO,CAACc;IAC3B,CAAC;IAED,IAAId,OAAO,CAACe,cAAc,IAAI,IAAI,EAAE;MAClCJ,OAAO,CAACI,cAAc,GAAGf,OAAO,CAACe,cAAc;IACjD;;IAEA;IACAnB,OAAO,CAACoB,IAAI,CAAC,mDAAmD,EAAEL,OAAO,CAAC;IAE1E,MAAMjB,aAAa,CAACuB,MAAM,CAACV,UAAU,EAAEI,OAAO,EAAE;MAAEO,OAAO,EAAE;IAAK,CAAC,CAAC;EACpE,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdvB,OAAO,CAACuB,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;IAC9C,MAAM,IAAIxB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,oCAAoC,CAAC;EACnF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"irDeployHandler.js","names":["createPlatformClient","DocumentTypes","CommanderError","consola","readFileSync","resolve","convertIrToWireSchema","irDeployHandler","options","irPath","ir","info","irContent","JSON","parse","osdkClient","baseUrl","Promise","auth","schema","request","name","parentFolderRid","parentFolder","fileSystemType","create","preview","error"],"sources":["irDeployHandler.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createPlatformClient } from \"@osdk/client\";\nimport type { CreateDocumentTypeRequest } from \"@osdk/foundry.pack\";\nimport { DocumentTypes } from \"@osdk/foundry.pack\";\nimport { CommanderError } from \"commander\";\nimport { consola } from \"consola\";\nimport { readFileSync } from \"fs\";\nimport { resolve } from \"path\";\nimport type { IRealTimeDocumentSchema } from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { convertIrToWireSchema } from \"../../utils/ir/convertIrToWireSchema.js\";\nimport type { FileSystemType } from \"../types.js\";\n\ninterface DeployOptions {\n readonly ir: string;\n readonly baseUrl: string;\n readonly auth: string;\n readonly parentFolder: string;\n readonly fileSystemType: FileSystemType;\n}\n\nexport async function irDeployHandler(options: DeployOptions): Promise<void> {\n try {\n const irPath = resolve(options.ir);\n\n consola.info(`Reading schema from: ${irPath}`);\n\n const irContent = readFileSync(irPath, \"utf8\");\n\n // TODO: conjureToZod based validation that IR content matches the conjure IR shape\n const ir = JSON.parse(irContent) as IRealTimeDocumentSchema;\n\n const osdkClient = createPlatformClient(\n options.baseUrl,\n () => Promise.resolve(options.auth),\n );\n\n const schema = convertIrToWireSchema(ir);\n\n const request: CreateDocumentTypeRequest = {\n name: ir.name,\n parentFolderRid: options.parentFolder,\n schema,\n };\n\n if (options.fileSystemType != null) {\n request.fileSystemType = options.fileSystemType;\n }\n\n consola.info(\"Creating document type with schema\", request);\n\n await DocumentTypes.create(osdkClient, request, { preview: true });\n } catch (error) {\n consola.error(\"❌ Error during Deploy:\", error);\n throw new CommanderError(1, \"ERRIRMDEPLOY\", \"Error deploying IR document schema\");\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,oBAAoB,QAAQ,cAAc;AAEnD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,OAAO,QAAQ,SAAS;AACjC,SAASC,YAAY,QAAQ,IAAI;AACjC,SAASC,OAAO,QAAQ,MAAM;AAE9B,SAASC,qBAAqB,QAAQ,yCAAyC;AAW/E,OAAO,eAAeC,eAAeA,CAACC,OAAsB,EAAiB;EAC3E,IAAI;IACF,MAAMC,MAAM,GAAGJ,OAAO,CAACG,OAAO,CAACE,EAAE,CAAC;IAElCP,OAAO,CAACQ,IAAI,CAAC,wBAAwBF,MAAM,EAAE,CAAC;IAE9C,MAAMG,SAAS,GAAGR,YAAY,CAACK,MAAM,EAAE,MAAM,CAAC;;IAE9C;IACA,MAAMC,EAAE,GAAGG,IAAI,CAACC,KAAK,CAACF,SAAS,CAA4B;IAE3D,MAAMG,UAAU,GAAGf,oBAAoB,CACrCQ,OAAO,CAACQ,OAAO,EACf,MAAMC,OAAO,CAACZ,OAAO,CAACG,OAAO,CAACU,IAAI,CACpC,CAAC;IAED,MAAMC,MAAM,GAAGb,qBAAqB,CAACI,EAAE,CAAC;IAExC,MAAMU,OAAkC,GAAG;MACzCC,IAAI,EAAEX,EAAE,CAACW,IAAI;MACbC,eAAe,EAAEd,OAAO,CAACe,YAAY;MACrCJ;IACF,CAAC;IAED,IAAIX,OAAO,CAACgB,cAAc,IAAI,IAAI,EAAE;MAClCJ,OAAO,CAACI,cAAc,GAAGhB,OAAO,CAACgB,cAAc;IACjD;IAEArB,OAAO,CAACQ,IAAI,CAAC,oCAAoC,EAAES,OAAO,CAAC;IAE3D,MAAMnB,aAAa,CAACwB,MAAM,CAACV,UAAU,EAAEK,OAAO,EAAE;MAAEM,OAAO,EAAE;IAAK,CAAC,CAAC;EACpE,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdxB,OAAO,CAACwB,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;IAC9C,MAAM,IAAIzB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,oCAAoC,CAAC;EACnF;AACF","ignoreList":[]}
@@ -18,6 +18,8 @@ import { CommanderError } from "commander";
18
18
  import { consola } from "consola";
19
19
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
20
20
  import { dirname, resolve } from "path";
21
+ import { GENERATED_JSON_COMMENT } from "../../utils/generatedFileHeader.js";
22
+ import { convertIrToWireSchema } from "../../utils/ir/convertIrToWireSchema.js";
21
23
  /**
22
24
  * Generates a document type asset JSON file from an IR schema.
23
25
  *
@@ -36,12 +38,12 @@ export function irGenAssetHandler(options) {
36
38
  throw new CommanderError(1, "ENOENT", `IR file does not exist: ${irPath}`);
37
39
  }
38
40
  consola.info(`Reading IR schema from: ${irPath}`);
41
+ const irSchema = JSON.parse(readFileSync(irPath, "utf8"));
39
42
  const {
40
43
  name: documentTypeName,
41
- description: _description,
42
- version: schemaVersion,
43
- ...irSchema
44
- } = JSON.parse(readFileSync(irPath, "utf8"));
44
+ version: schemaVersion
45
+ } = irSchema;
46
+ const wireSchema = convertIrToWireSchema(irSchema);
45
47
  const fileSystemType = options.fileSystemType ?? "ARTIFACTS";
46
48
  if (fileSystemType !== "ARTIFACTS" && fileSystemType !== "COMPASS") {
47
49
  throw new CommanderError(1, "EINVAL", `Invalid fileSystemType "${fileSystemType}". Must be "ARTIFACTS" or "COMPASS".`);
@@ -52,15 +54,19 @@ export function irGenAssetHandler(options) {
52
54
  recursive: true
53
55
  });
54
56
  }
55
- writeFileSync(outputPath, JSON.stringify({
56
- documentTypeName,
57
- documentStorageType: {
58
- type: "yjs",
59
- yjs: irSchema
60
- },
61
- fileSystemType,
62
- schemaVersion
63
- }, null, 2), "utf8");
57
+ const output = {
58
+ __comment: GENERATED_JSON_COMMENT,
59
+ ...{
60
+ documentTypeName,
61
+ documentStorageType: {
62
+ type: "yjs",
63
+ yjs: wireSchema
64
+ },
65
+ fileSystemType,
66
+ schemaVersion
67
+ }
68
+ };
69
+ writeFileSync(outputPath, JSON.stringify(output, null, 2), "utf8");
64
70
  consola.success("Successfully generated document type asset");
65
71
  consola.info(` Output: ${outputPath}`);
66
72
  consola.info(` Document type: ${documentTypeName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"irGenAssetHandler.js","names":["CommanderError","consola","existsSync","mkdirSync","readFileSync","writeFileSync","dirname","resolve","irGenAssetHandler","options","irPath","ir","outputPath","output","info","name","documentTypeName","description","_description","version","schemaVersion","irSchema","JSON","parse","fileSystemType","outputDir","recursive","stringify","documentStorageType","type","yjs","success","error"],"sources":["irGenAssetHandler.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CommanderError } from \"commander\";\nimport { consola } from \"consola\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"fs\";\nimport { dirname, resolve } from \"path\";\nimport type { IRealTimeDocumentSchema } from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\n\ntype FileSystemType = \"ARTIFACTS\" | \"COMPASS\";\n\ninterface IrGenAssetOptions {\n readonly ir: string;\n readonly output: string;\n readonly fileSystemType?: FileSystemType;\n}\n\ninterface DocumentTypeAsset {\n readonly documentTypeName: string;\n readonly documentStorageType: {\n readonly type: \"yjs\";\n readonly yjs: Omit<IRealTimeDocumentSchema, \"name\" | \"description\" | \"version\">;\n };\n readonly fileSystemType: FileSystemType;\n readonly schemaVersion: number;\n}\n\n/**\n * Generates a document type asset JSON file from an IR schema.\n *\n * This command is intended for internal platform applications where the document\n * type asset must exist on disk so the platform can discover it and register the\n * document type automatically at deploy time. Most users should use `ir deploy`\n * to register document types via the Foundry API instead.\n *\n * If you are unsure whether you need this command, you almost certainly do not.\n */\nexport function irGenAssetHandler(options: IrGenAssetOptions): void {\n try {\n const irPath = resolve(options.ir);\n const outputPath = resolve(options.output);\n\n if (!existsSync(irPath)) {\n throw new CommanderError(1, \"ENOENT\", `IR file does not exist: ${irPath}`);\n }\n\n consola.info(`Reading IR schema from: ${irPath}`);\n const {\n name: documentTypeName,\n description: _description,\n version: schemaVersion,\n ...irSchema\n } = JSON.parse(\n readFileSync(irPath, \"utf8\"),\n ) as IRealTimeDocumentSchema;\n\n const fileSystemType = options.fileSystemType ?? \"ARTIFACTS\";\n if (fileSystemType !== \"ARTIFACTS\" && fileSystemType !== \"COMPASS\") {\n throw new CommanderError(\n 1,\n \"EINVAL\",\n `Invalid fileSystemType \"${fileSystemType}\". Must be \"ARTIFACTS\" or \"COMPASS\".`,\n );\n }\n\n const asset: DocumentTypeAsset = {\n documentTypeName,\n documentStorageType: {\n type: \"yjs\",\n yjs: irSchema,\n },\n fileSystemType,\n schemaVersion,\n };\n\n const outputDir = dirname(outputPath);\n if (!existsSync(outputDir)) {\n mkdirSync(outputDir, { recursive: true });\n }\n writeFileSync(outputPath, JSON.stringify(asset, null, 2), \"utf8\");\n\n consola.success(\"Successfully generated document type asset\");\n consola.info(` Output: ${outputPath}`);\n consola.info(` Document type: ${documentTypeName}`);\n consola.info(` Schema version: ${schemaVersion}`);\n consola.info(` File system type: ${fileSystemType}`);\n } catch (error) {\n if (error instanceof CommanderError) {\n throw error;\n }\n consola.error(\"Error generating document type asset:\", error);\n throw new CommanderError(1, \"IR_ASSET_ERROR\", \"Failed to generate document type asset\");\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,WAAW;AAC1C,SAASC,OAAO,QAAQ,SAAS;AACjC,SAASC,UAAU,EAAEC,SAAS,EAAEC,YAAY,EAAEC,aAAa,QAAQ,IAAI;AACvE,SAASC,OAAO,EAAEC,OAAO,QAAQ,MAAM;AAqBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,OAA0B,EAAQ;EAClE,IAAI;IACF,MAAMC,MAAM,GAAGH,OAAO,CAACE,OAAO,CAACE,EAAE,CAAC;IAClC,MAAMC,UAAU,GAAGL,OAAO,CAACE,OAAO,CAACI,MAAM,CAAC;IAE1C,IAAI,CAACX,UAAU,CAACQ,MAAM,CAAC,EAAE;MACvB,MAAM,IAAIV,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,2BAA2BU,MAAM,EAAE,CAAC;IAC5E;IAEAT,OAAO,CAACa,IAAI,CAAC,2BAA2BJ,MAAM,EAAE,CAAC;IACjD,MAAM;MACJK,IAAI,EAAEC,gBAAgB;MACtBC,WAAW,EAAEC,YAAY;MACzBC,OAAO,EAAEC,aAAa;MACtB,GAAGC;IACL,CAAC,GAAGC,IAAI,CAACC,KAAK,CACZnB,YAAY,CAACM,MAAM,EAAE,MAAM,CAC7B,CAA4B;IAE5B,MAAMc,cAAc,GAAGf,OAAO,CAACe,cAAc,IAAI,WAAW;IAC5D,IAAIA,cAAc,KAAK,WAAW,IAAIA,cAAc,KAAK,SAAS,EAAE;MAClE,MAAM,IAAIxB,cAAc,CACtB,CAAC,EACD,QAAQ,EACR,2BAA2BwB,cAAc,sCAC3C,CAAC;IACH;IAYA,MAAMC,SAAS,GAAGnB,OAAO,CAACM,UAAU,CAAC;IACrC,IAAI,CAACV,UAAU,CAACuB,SAAS,CAAC,EAAE;MAC1BtB,SAAS,CAACsB,SAAS,EAAE;QAAEC,SAAS,EAAE;MAAK,CAAC,CAAC;IAC3C;IACArB,aAAa,CAACO,UAAU,EAAEU,IAAI,CAACK,SAAS,CAdP;MAC/BX,gBAAgB;MAChBY,mBAAmB,EAAE;QACnBC,IAAI,EAAE,KAAK;QACXC,GAAG,EAAET;MACP,CAAC;MACDG,cAAc;MACdJ;IACF,CAAC,EAM+C,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAEjEnB,OAAO,CAAC8B,OAAO,CAAC,4CAA4C,CAAC;IAC7D9B,OAAO,CAACa,IAAI,CAAC,cAAcF,UAAU,EAAE,CAAC;IACxCX,OAAO,CAACa,IAAI,CAAC,qBAAqBE,gBAAgB,EAAE,CAAC;IACrDf,OAAO,CAACa,IAAI,CAAC,sBAAsBM,aAAa,EAAE,CAAC;IACnDnB,OAAO,CAACa,IAAI,CAAC,wBAAwBU,cAAc,EAAE,CAAC;EACxD,CAAC,CAAC,OAAOQ,KAAK,EAAE;IACd,IAAIA,KAAK,YAAYhC,cAAc,EAAE;MACnC,MAAMgC,KAAK;IACb;IACA/B,OAAO,CAAC+B,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;IAC7D,MAAM,IAAIhC,cAAc,CAAC,CAAC,EAAE,gBAAgB,EAAE,wCAAwC,CAAC;EACzF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"irGenAssetHandler.js","names":["CommanderError","consola","existsSync","mkdirSync","readFileSync","writeFileSync","dirname","resolve","GENERATED_JSON_COMMENT","convertIrToWireSchema","irGenAssetHandler","options","irPath","ir","outputPath","output","info","irSchema","JSON","parse","name","documentTypeName","version","schemaVersion","wireSchema","fileSystemType","outputDir","recursive","__comment","documentStorageType","type","yjs","stringify","success","error"],"sources":["irGenAssetHandler.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CommanderError } from \"commander\";\nimport { consola } from \"consola\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"fs\";\nimport { dirname, resolve } from \"path\";\nimport type { IRealTimeDocumentSchema } from \"../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { GENERATED_JSON_COMMENT } from \"../../utils/generatedFileHeader.js\";\nimport { convertIrToWireSchema } from \"../../utils/ir/convertIrToWireSchema.js\";\nimport type { DocumentTypeAsset, FileSystemType } from \"../types.js\";\n\ninterface IrGenAssetOptions {\n readonly ir: string;\n readonly output: string;\n readonly fileSystemType?: FileSystemType;\n}\n\n/**\n * Generates a document type asset JSON file from an IR schema.\n *\n * This command is intended for internal platform applications where the document\n * type asset must exist on disk so the platform can discover it and register the\n * document type automatically at deploy time. Most users should use `ir deploy`\n * to register document types via the Foundry API instead.\n *\n * If you are unsure whether you need this command, you almost certainly do not.\n */\nexport function irGenAssetHandler(options: IrGenAssetOptions): void {\n try {\n const irPath = resolve(options.ir);\n const outputPath = resolve(options.output);\n\n if (!existsSync(irPath)) {\n throw new CommanderError(1, \"ENOENT\", `IR file does not exist: ${irPath}`);\n }\n\n consola.info(`Reading IR schema from: ${irPath}`);\n const irSchema = JSON.parse(\n readFileSync(irPath, \"utf8\"),\n ) as IRealTimeDocumentSchema;\n\n const { name: documentTypeName, version: schemaVersion } = irSchema;\n const wireSchema = convertIrToWireSchema(irSchema);\n\n const fileSystemType = options.fileSystemType ?? \"ARTIFACTS\";\n if (fileSystemType !== \"ARTIFACTS\" && fileSystemType !== \"COMPASS\") {\n throw new CommanderError(\n 1,\n \"EINVAL\",\n `Invalid fileSystemType \"${fileSystemType}\". Must be \"ARTIFACTS\" or \"COMPASS\".`,\n );\n }\n\n const asset: DocumentTypeAsset = {\n documentTypeName,\n documentStorageType: {\n type: \"yjs\",\n yjs: wireSchema,\n },\n fileSystemType,\n schemaVersion,\n };\n\n const outputDir = dirname(outputPath);\n if (!existsSync(outputDir)) {\n mkdirSync(outputDir, { recursive: true });\n }\n const output = { __comment: GENERATED_JSON_COMMENT, ...asset };\n writeFileSync(outputPath, JSON.stringify(output, null, 2), \"utf8\");\n\n consola.success(\"Successfully generated document type asset\");\n consola.info(` Output: ${outputPath}`);\n consola.info(` Document type: ${documentTypeName}`);\n consola.info(` Schema version: ${schemaVersion}`);\n consola.info(` File system type: ${fileSystemType}`);\n } catch (error) {\n if (error instanceof CommanderError) {\n throw error;\n }\n consola.error(\"Error generating document type asset:\", error);\n throw new CommanderError(1, \"IR_ASSET_ERROR\", \"Failed to generate document type asset\");\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,WAAW;AAC1C,SAASC,OAAO,QAAQ,SAAS;AACjC,SAASC,UAAU,EAAEC,SAAS,EAAEC,YAAY,EAAEC,aAAa,QAAQ,IAAI;AACvE,SAASC,OAAO,EAAEC,OAAO,QAAQ,MAAM;AAEvC,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,qBAAqB,QAAQ,yCAAyC;AAS/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,OAA0B,EAAQ;EAClE,IAAI;IACF,MAAMC,MAAM,GAAGL,OAAO,CAACI,OAAO,CAACE,EAAE,CAAC;IAClC,MAAMC,UAAU,GAAGP,OAAO,CAACI,OAAO,CAACI,MAAM,CAAC;IAE1C,IAAI,CAACb,UAAU,CAACU,MAAM,CAAC,EAAE;MACvB,MAAM,IAAIZ,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,2BAA2BY,MAAM,EAAE,CAAC;IAC5E;IAEAX,OAAO,CAACe,IAAI,CAAC,2BAA2BJ,MAAM,EAAE,CAAC;IACjD,MAAMK,QAAQ,GAAGC,IAAI,CAACC,KAAK,CACzBf,YAAY,CAACQ,MAAM,EAAE,MAAM,CAC7B,CAA4B;IAE5B,MAAM;MAAEQ,IAAI,EAAEC,gBAAgB;MAAEC,OAAO,EAAEC;IAAc,CAAC,GAAGN,QAAQ;IACnE,MAAMO,UAAU,GAAGf,qBAAqB,CAACQ,QAAQ,CAAC;IAElD,MAAMQ,cAAc,GAAGd,OAAO,CAACc,cAAc,IAAI,WAAW;IAC5D,IAAIA,cAAc,KAAK,WAAW,IAAIA,cAAc,KAAK,SAAS,EAAE;MAClE,MAAM,IAAIzB,cAAc,CACtB,CAAC,EACD,QAAQ,EACR,2BAA2ByB,cAAc,sCAC3C,CAAC;IACH;IAYA,MAAMC,SAAS,GAAGpB,OAAO,CAACQ,UAAU,CAAC;IACrC,IAAI,CAACZ,UAAU,CAACwB,SAAS,CAAC,EAAE;MAC1BvB,SAAS,CAACuB,SAAS,EAAE;QAAEC,SAAS,EAAE;MAAK,CAAC,CAAC;IAC3C;IACA,MAAMZ,MAAM,GAAG;MAAEa,SAAS,EAAEpB,sBAAsB;MAAE,GAdnB;QAC/Ba,gBAAgB;QAChBQ,mBAAmB,EAAE;UACnBC,IAAI,EAAE,KAAK;UACXC,GAAG,EAAEP;QACP,CAAC;QACDC,cAAc;QACdF;MACF;IAM6D,CAAC;IAC9DlB,aAAa,CAACS,UAAU,EAAEI,IAAI,CAACc,SAAS,CAACjB,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAElEd,OAAO,CAACgC,OAAO,CAAC,4CAA4C,CAAC;IAC7DhC,OAAO,CAACe,IAAI,CAAC,cAAcF,UAAU,EAAE,CAAC;IACxCb,OAAO,CAACe,IAAI,CAAC,qBAAqBK,gBAAgB,EAAE,CAAC;IACrDpB,OAAO,CAACe,IAAI,CAAC,sBAAsBO,aAAa,EAAE,CAAC;IACnDtB,OAAO,CAACe,IAAI,CAAC,wBAAwBS,cAAc,EAAE,CAAC;EACxD,CAAC,CAAC,OAAOS,KAAK,EAAE;IACd,IAAIA,KAAK,YAAYlC,cAAc,EAAE;MACnC,MAAMkC,KAAK;IACb;IACAjC,OAAO,CAACiC,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;IAC7D,MAAM,IAAIlC,cAAc,CAAC,CAAC,EAAE,gBAAgB,EAAE,wCAAwC,CAAC;EACzF;AACF","ignoreList":[]}
@@ -14,9 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import { schemaGenTypesHandler } from "./schemaGenTypesHandler.js";
17
18
  import { schemaToYamlHandler } from "./schemaToYamlHandler.js";
18
19
  export function registerSchemaCommands(program) {
19
20
  const schemaCmd = program.command("schema").description("Commands for working with TypeScript schema definitions");
20
21
  schemaCmd.command("yaml").description("Convert TypeScript schema to YAML migration steps").requiredOption("-i, --input <file>", "Input TypeScript schema file").requiredOption("-o, --output <file>", "Output YAML file").action(schemaToYamlHandler);
22
+ schemaCmd.command("gen-types").description("Generate versioned TypeScript types from a schema module").requiredOption("-i, --input <file>", "Input TypeScript/JavaScript schema module").requiredOption("-o, --output <dir>", "Output directory").option("--min-version <version>", "Minimum supported version").action(schemaGenTypesHandler);
21
23
  }
22
24
  //# sourceMappingURL=registerSchemaCommands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerSchemaCommands.js","names":["schemaToYamlHandler","registerSchemaCommands","program","schemaCmd","command","description","requiredOption","action"],"sources":["registerSchemaCommands.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Command } from \"commander\";\nimport { schemaToYamlHandler } from \"./schemaToYamlHandler.js\";\n\nexport function registerSchemaCommands(program: Command): void {\n const schemaCmd = program\n .command(\"schema\")\n .description(\"Commands for working with TypeScript schema definitions\");\n\n schemaCmd\n .command(\"yaml\")\n .description(\"Convert TypeScript schema to YAML migration steps\")\n .requiredOption(\"-i, --input <file>\", \"Input TypeScript schema file\")\n .requiredOption(\"-o, --output <file>\", \"Output YAML file\")\n .action(schemaToYamlHandler);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,mBAAmB,QAAQ,0BAA0B;AAE9D,OAAO,SAASC,sBAAsBA,CAACC,OAAgB,EAAQ;EAC7D,MAAMC,SAAS,GAAGD,OAAO,CACtBE,OAAO,CAAC,QAAQ,CAAC,CACjBC,WAAW,CAAC,yDAAyD,CAAC;EAEzEF,SAAS,CACNC,OAAO,CAAC,MAAM,CAAC,CACfC,WAAW,CAAC,mDAAmD,CAAC,CAChEC,cAAc,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CACpEA,cAAc,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CACzDC,MAAM,CAACP,mBAAmB,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"file":"registerSchemaCommands.js","names":["schemaGenTypesHandler","schemaToYamlHandler","registerSchemaCommands","program","schemaCmd","command","description","requiredOption","action","option"],"sources":["registerSchemaCommands.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Command } from \"commander\";\nimport { schemaGenTypesHandler } from \"./schemaGenTypesHandler.js\";\nimport { schemaToYamlHandler } from \"./schemaToYamlHandler.js\";\n\nexport function registerSchemaCommands(program: Command): void {\n const schemaCmd = program\n .command(\"schema\")\n .description(\"Commands for working with TypeScript schema definitions\");\n\n schemaCmd\n .command(\"yaml\")\n .description(\"Convert TypeScript schema to YAML migration steps\")\n .requiredOption(\"-i, --input <file>\", \"Input TypeScript schema file\")\n .requiredOption(\"-o, --output <file>\", \"Output YAML file\")\n .action(schemaToYamlHandler);\n\n schemaCmd\n .command(\"gen-types\")\n .description(\"Generate versioned TypeScript types from a schema module\")\n .requiredOption(\"-i, --input <file>\", \"Input TypeScript/JavaScript schema module\")\n .requiredOption(\"-o, --output <dir>\", \"Output directory\")\n .option(\"--min-version <version>\", \"Minimum supported version\")\n .action(schemaGenTypesHandler);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,mBAAmB,QAAQ,0BAA0B;AAE9D,OAAO,SAASC,sBAAsBA,CAACC,OAAgB,EAAQ;EAC7D,MAAMC,SAAS,GAAGD,OAAO,CACtBE,OAAO,CAAC,QAAQ,CAAC,CACjBC,WAAW,CAAC,yDAAyD,CAAC;EAEzEF,SAAS,CACNC,OAAO,CAAC,MAAM,CAAC,CACfC,WAAW,CAAC,mDAAmD,CAAC,CAChEC,cAAc,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CACpEA,cAAc,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CACzDC,MAAM,CAACP,mBAAmB,CAAC;EAE9BG,SAAS,CACNC,OAAO,CAAC,WAAW,CAAC,CACpBC,WAAW,CAAC,0DAA0D,CAAC,CACvEC,cAAc,CAAC,oBAAoB,EAAE,2CAA2C,CAAC,CACjFA,cAAc,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CACxDE,MAAM,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAC9DD,MAAM,CAACR,qBAAqB,CAAC;AAClC","ignoreList":[]}
@@ -0,0 +1,147 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { consola } from "consola";
18
+ import fs from "fs-extra";
19
+ import path from "path";
20
+ import { pathToFileURL } from "url";
21
+ import { generateIndexFromSchema } from "../../utils/schema/generateIndexFromSchema.js";
22
+ import { generateInternalFromSchema } from "../../utils/schema/generateInternalFromSchema.js";
23
+ import { generateModelMetadataFromSchema } from "../../utils/schema/generateModelMetadataFromSchema.js";
24
+ import { generateScopeFromSchema } from "../../utils/schema/generateScopeFromSchema.js";
25
+ import { generateVersionedTypesFromSchema } from "../../utils/schema/generateVersionedTypesFromSchema.js";
26
+ import { generateVersionedZodFromSchema } from "../../utils/schema/generateVersionedZodFromSchema.js";
27
+ import { generateVersionsFromSchema } from "../../utils/schema/generateVersionsFromSchema.js";
28
+ import { extractValidSchema } from "../../utils/schema/validateSchemaModule.js";
29
+ function extractSchemaDefinition(schemaModule) {
30
+ const defaultExport = schemaModule.default;
31
+ if (typeof defaultExport === "object" && defaultExport != null && "type" in defaultExport && (defaultExport.type === "initial" || defaultExport.type === "versioned")) {
32
+ return defaultExport;
33
+ }
34
+
35
+ // Wrap plain ModelDefs as InitialSchema
36
+ const models = extractValidSchema(schemaModule);
37
+ return {
38
+ type: "initial",
39
+ version: 1,
40
+ models
41
+ };
42
+ }
43
+ export async function schemaGenTypesHandler(options) {
44
+ const {
45
+ input,
46
+ output: outputDir,
47
+ minVersion
48
+ } = options;
49
+ const inputPath = path.resolve(input);
50
+ if (!(await fs.pathExists(inputPath))) {
51
+ throw new Error(`Input file not found: ${inputPath}`);
52
+ }
53
+ consola.info(`Loading schema from: ${inputPath}`);
54
+ const schemaUrl = pathToFileURL(inputPath).href;
55
+ const schemaModule = await import(schemaUrl);
56
+ const schema = extractSchemaDefinition(schemaModule);
57
+ let minSupportedVersion;
58
+ if (minVersion != null) {
59
+ minSupportedVersion = parseInt(minVersion, 10);
60
+ if (isNaN(minSupportedVersion)) {
61
+ throw new Error(`--min-version must be a valid integer, got: "${minVersion}"`);
62
+ }
63
+ }
64
+ const resolvedOutputDir = path.resolve(outputDir);
65
+ await fs.ensureDir(resolvedOutputDir);
66
+
67
+ // Generate versioned types
68
+ consola.info("Generating versioned types...");
69
+ const result = generateVersionedTypesFromSchema(schema, minSupportedVersion);
70
+
71
+ // Write per-version read types
72
+ for (const [version, content] of result.readTypes) {
73
+ const filePath = path.join(resolvedOutputDir, `types_v${version}.ts`);
74
+ await fs.writeFile(filePath, content, "utf8");
75
+ consola.success(`Generated read types: ${filePath}`);
76
+ }
77
+
78
+ // Write per-version write types
79
+ for (const [version, content] of result.writeTypes) {
80
+ const filePath = path.join(resolvedOutputDir, `writeTypes_v${version}.ts`);
81
+ await fs.writeFile(filePath, content, "utf8");
82
+ consola.success(`Generated write types: ${filePath}`);
83
+ }
84
+
85
+ // Write types.ts re-export
86
+ const typesPath = path.join(resolvedOutputDir, "types.ts");
87
+ await fs.writeFile(typesPath, result.typesReExport, "utf8");
88
+ consola.success(`Generated types re-export: ${typesPath}`);
89
+
90
+ // Generate per-version Zod schemas
91
+ consola.info("Generating versioned Zod schemas...");
92
+ const zodResult = generateVersionedZodFromSchema(schema, minSupportedVersion);
93
+ for (const [version, content] of zodResult.zodSchemas) {
94
+ const filePath = path.join(resolvedOutputDir, `schema_v${version}.ts`);
95
+ await fs.writeFile(filePath, content, "utf8");
96
+ consola.success(`Generated Zod schema: ${filePath}`);
97
+ }
98
+
99
+ // Write schema.ts re-export
100
+ const schemaPath = path.join(resolvedOutputDir, "schema.ts");
101
+ await fs.writeFile(schemaPath, zodResult.schemaReExport, "utf8");
102
+ consola.success(`Generated schema re-export: ${schemaPath}`);
103
+
104
+ // Generate internal files
105
+ consola.info("Generating internal types and upgrades...");
106
+ const internal = generateInternalFromSchema(schema);
107
+ const internalDir = path.join(resolvedOutputDir, "_internal");
108
+ await fs.ensureDir(internalDir);
109
+ const internalTypesPath = path.join(internalDir, "types.ts");
110
+ await fs.writeFile(internalTypesPath, internal.internalTypes, "utf8");
111
+ consola.success(`Generated internal types: ${internalTypesPath}`);
112
+ const upgradesPath = path.join(internalDir, "upgrades.ts");
113
+ await fs.writeFile(upgradesPath, internal.upgrades, "utf8");
114
+ consola.success(`Generated upgrades: ${upgradesPath}`);
115
+ const internalSchemaPath = path.join(internalDir, "schema.ts");
116
+ await fs.writeFile(internalSchemaPath, internal.internalSchema, "utf8");
117
+ consola.success(`Generated internal schema: ${internalSchemaPath}`);
118
+
119
+ // Generate versions.ts
120
+ consola.info("Generating version types...");
121
+ const versionsContent = generateVersionsFromSchema(schema, minSupportedVersion);
122
+ const versionsPath = path.join(resolvedOutputDir, "versions.ts");
123
+ await fs.writeFile(versionsPath, versionsContent, "utf8");
124
+ consola.success(`Generated versions: ${versionsPath}`);
125
+
126
+ // Generate index.ts barrel export
127
+ consola.info("Generating index barrel export...");
128
+ const indexContent = generateIndexFromSchema(schema, minSupportedVersion);
129
+ const indexPath = path.join(resolvedOutputDir, "index.ts");
130
+ await fs.writeFile(indexPath, indexContent, "utf8");
131
+ consola.success(`Generated index: ${indexPath}`);
132
+
133
+ // Generate models.ts with version metadata
134
+ consola.info("Generating model metadata...");
135
+ const modelMetadata = generateModelMetadataFromSchema(schema, minSupportedVersion);
136
+ const modelsPath = path.join(resolvedOutputDir, "models.ts");
137
+ await fs.writeFile(modelsPath, modelMetadata.modelsFile, "utf8");
138
+ consola.success(`Generated models: ${modelsPath}`);
139
+
140
+ // Generate versionedDocRef.ts
141
+ consola.info("Generating versioned document ref types...");
142
+ const versionedDocRefContent = generateScopeFromSchema(schema, minSupportedVersion);
143
+ const versionedDocRefPath = path.join(resolvedOutputDir, "versionedDocRef.ts");
144
+ await fs.writeFile(versionedDocRefPath, versionedDocRefContent, "utf8");
145
+ consola.success(`Generated versioned doc ref: ${versionedDocRefPath}`);
146
+ }
147
+ //# sourceMappingURL=schemaGenTypesHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaGenTypesHandler.js","names":["consola","fs","path","pathToFileURL","generateIndexFromSchema","generateInternalFromSchema","generateModelMetadataFromSchema","generateScopeFromSchema","generateVersionedTypesFromSchema","generateVersionedZodFromSchema","generateVersionsFromSchema","extractValidSchema","extractSchemaDefinition","schemaModule","defaultExport","default","type","models","version","schemaGenTypesHandler","options","input","output","outputDir","minVersion","inputPath","resolve","pathExists","Error","info","schemaUrl","href","schema","minSupportedVersion","parseInt","isNaN","resolvedOutputDir","ensureDir","result","content","readTypes","filePath","join","writeFile","success","writeTypes","typesPath","typesReExport","zodResult","zodSchemas","schemaPath","schemaReExport","internal","internalDir","internalTypesPath","internalTypes","upgradesPath","upgrades","internalSchemaPath","internalSchema","versionsContent","versionsPath","indexContent","indexPath","modelMetadata","modelsPath","modelsFile","versionedDocRefContent","versionedDocRefPath"],"sources":["schemaGenTypesHandler.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 { InitialSchema, SchemaDefinition } from \"@palantir/pack.schema\";\nimport { consola } from \"consola\";\nimport fs from \"fs-extra\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { generateIndexFromSchema } from \"../../utils/schema/generateIndexFromSchema.js\";\nimport { generateInternalFromSchema } from \"../../utils/schema/generateInternalFromSchema.js\";\nimport { generateModelMetadataFromSchema } from \"../../utils/schema/generateModelMetadataFromSchema.js\";\nimport { generateScopeFromSchema } from \"../../utils/schema/generateScopeFromSchema.js\";\nimport { generateVersionedTypesFromSchema } from \"../../utils/schema/generateVersionedTypesFromSchema.js\";\nimport { generateVersionedZodFromSchema } from \"../../utils/schema/generateVersionedZodFromSchema.js\";\nimport { generateVersionsFromSchema } from \"../../utils/schema/generateVersionsFromSchema.js\";\nimport { extractValidSchema } from \"../../utils/schema/validateSchemaModule.js\";\n\ninterface SchemaGenTypesOptions {\n input: string;\n output: string;\n minVersion?: string;\n}\n\nfunction extractSchemaDefinition(schemaModule: unknown): SchemaDefinition {\n const mod = schemaModule as Record<string, unknown>;\n const defaultExport = mod.default;\n\n if (\n typeof defaultExport === \"object\" && defaultExport != null\n && \"type\" in defaultExport\n && (defaultExport.type === \"initial\" || defaultExport.type === \"versioned\")\n ) {\n return defaultExport as SchemaDefinition;\n }\n\n // Wrap plain ModelDefs as InitialSchema\n const models = extractValidSchema(schemaModule);\n return { type: \"initial\", version: 1, models } satisfies InitialSchema;\n}\n\nexport async function schemaGenTypesHandler(options: SchemaGenTypesOptions): Promise<void> {\n const { input, output: outputDir, minVersion } = options;\n\n const inputPath = path.resolve(input);\n\n if (!await fs.pathExists(inputPath)) {\n throw new Error(`Input file not found: ${inputPath}`);\n }\n\n consola.info(`Loading schema from: ${inputPath}`);\n\n const schemaUrl = pathToFileURL(inputPath).href;\n const schemaModule: unknown = await import(schemaUrl);\n\n const schema = extractSchemaDefinition(schemaModule);\n let minSupportedVersion: number | undefined;\n if (minVersion != null) {\n minSupportedVersion = parseInt(minVersion, 10);\n if (isNaN(minSupportedVersion)) {\n throw new Error(`--min-version must be a valid integer, got: \"${minVersion}\"`);\n }\n }\n\n const resolvedOutputDir = path.resolve(outputDir);\n await fs.ensureDir(resolvedOutputDir);\n\n // Generate versioned types\n consola.info(\"Generating versioned types...\");\n const result = generateVersionedTypesFromSchema(schema, minSupportedVersion);\n\n // Write per-version read types\n for (const [version, content] of result.readTypes) {\n const filePath = path.join(resolvedOutputDir, `types_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated read types: ${filePath}`);\n }\n\n // Write per-version write types\n for (const [version, content] of result.writeTypes) {\n const filePath = path.join(resolvedOutputDir, `writeTypes_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated write types: ${filePath}`);\n }\n\n // Write types.ts re-export\n const typesPath = path.join(resolvedOutputDir, \"types.ts\");\n await fs.writeFile(typesPath, result.typesReExport, \"utf8\");\n consola.success(`Generated types re-export: ${typesPath}`);\n\n // Generate per-version Zod schemas\n consola.info(\"Generating versioned Zod schemas...\");\n const zodResult = generateVersionedZodFromSchema(schema, minSupportedVersion);\n\n for (const [version, content] of zodResult.zodSchemas) {\n const filePath = path.join(resolvedOutputDir, `schema_v${version}.ts`);\n await fs.writeFile(filePath, content, \"utf8\");\n consola.success(`Generated Zod schema: ${filePath}`);\n }\n\n // Write schema.ts re-export\n const schemaPath = path.join(resolvedOutputDir, \"schema.ts\");\n await fs.writeFile(schemaPath, zodResult.schemaReExport, \"utf8\");\n consola.success(`Generated schema re-export: ${schemaPath}`);\n\n // Generate internal files\n consola.info(\"Generating internal types and upgrades...\");\n const internal = generateInternalFromSchema(schema);\n\n const internalDir = path.join(resolvedOutputDir, \"_internal\");\n await fs.ensureDir(internalDir);\n\n const internalTypesPath = path.join(internalDir, \"types.ts\");\n await fs.writeFile(internalTypesPath, internal.internalTypes, \"utf8\");\n consola.success(`Generated internal types: ${internalTypesPath}`);\n\n const upgradesPath = path.join(internalDir, \"upgrades.ts\");\n await fs.writeFile(upgradesPath, internal.upgrades, \"utf8\");\n consola.success(`Generated upgrades: ${upgradesPath}`);\n\n const internalSchemaPath = path.join(internalDir, \"schema.ts\");\n await fs.writeFile(internalSchemaPath, internal.internalSchema, \"utf8\");\n consola.success(`Generated internal schema: ${internalSchemaPath}`);\n\n // Generate versions.ts\n consola.info(\"Generating version types...\");\n const versionsContent = generateVersionsFromSchema(schema, minSupportedVersion);\n const versionsPath = path.join(resolvedOutputDir, \"versions.ts\");\n await fs.writeFile(versionsPath, versionsContent, \"utf8\");\n consola.success(`Generated versions: ${versionsPath}`);\n\n // Generate index.ts barrel export\n consola.info(\"Generating index barrel export...\");\n const indexContent = generateIndexFromSchema(schema, minSupportedVersion);\n const indexPath = path.join(resolvedOutputDir, \"index.ts\");\n await fs.writeFile(indexPath, indexContent, \"utf8\");\n consola.success(`Generated index: ${indexPath}`);\n\n // Generate models.ts with version metadata\n consola.info(\"Generating model metadata...\");\n const modelMetadata = generateModelMetadataFromSchema(schema, minSupportedVersion);\n\n const modelsPath = path.join(resolvedOutputDir, \"models.ts\");\n await fs.writeFile(modelsPath, modelMetadata.modelsFile, \"utf8\");\n consola.success(`Generated models: ${modelsPath}`);\n\n // Generate versionedDocRef.ts\n consola.info(\"Generating versioned document ref types...\");\n const versionedDocRefContent = generateScopeFromSchema(schema, minSupportedVersion);\n const versionedDocRefPath = path.join(resolvedOutputDir, \"versionedDocRef.ts\");\n await fs.writeFile(versionedDocRefPath, versionedDocRefContent, \"utf8\");\n consola.success(`Generated versioned doc ref: ${versionedDocRefPath}`);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ import { consola } from "consola";
19
19
  import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from "fs";
20
20
  import { dirname, join } from "path";
21
21
  import * as YAML from "yaml";
22
+ import { GENERATED_JSON_COMMENT } from "../../utils/generatedFileHeader.js";
22
23
  import { convertStepsToIr } from "../../utils/steps/convertStepsToIr.js";
23
24
  import { parseMigrationSteps } from "../../utils/steps/parseMigrationSteps.js";
24
25
  export function stepsGenIrHandler(options) {
@@ -61,7 +62,11 @@ export function stepsGenIrHandler(options) {
61
62
  recursive: true
62
63
  });
63
64
  }
64
- writeFileSync(outputFile, JSON.stringify(schema, null, 2), "utf8");
65
+ const output = {
66
+ __comment: GENERATED_JSON_COMMENT,
67
+ ...schema
68
+ };
69
+ writeFileSync(outputFile, JSON.stringify(output, null, 2), "utf8");
65
70
  consola.success("✅ Successfully converted migration steps to IR format");
66
71
  consola.info(` Generated types written to: ${outputFile}`);
67
72
  consola.info(` Schema: ${schema.name} v${schema.version}`);
@@ -1 +1 @@
1
- {"version":3,"file":"stepsGenIrHandler.js","names":["CommanderError","consola","existsSync","mkdirSync","readdirSync","readFileSync","statSync","writeFileSync","dirname","join","YAML","convertStepsToIr","parseMigrationSteps","stepsGenIrHandler","options","input","inputDir","output","outputFile","isDirectory","files","filter","file","endsWith","length","sortedFiles","sort","a","b","localeCompare","migrationSteps","filePath","fileContent","parsed","parse","parsedCommands","push","info","metadata","name","schemaName","description","schemaDescription","version","parseInt","undefined","schema","outputDir","recursive","JSON","stringify","success","Object","keys","models","primaryModelKeys","error"],"sources":["stepsGenIrHandler.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CommanderError } from \"commander\";\nimport { consola } from \"consola\";\nimport { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from \"fs\";\nimport { dirname, join } from \"path\";\nimport * as YAML from \"yaml\";\nimport { convertStepsToIr, type SchemaMetadata } from \"../../utils/steps/convertStepsToIr.js\";\nimport type { MigrationStep } from \"../../utils/steps/parseMigrationSteps.js\";\nimport { parseMigrationSteps } from \"../../utils/steps/parseMigrationSteps.js\";\n\ninterface StepsGenIrOptions {\n input: string;\n output: string;\n schemaName?: string;\n schemaDescription?: string;\n version?: string;\n}\n\nexport function stepsGenIrHandler(options: StepsGenIrOptions): void {\n try {\n const { input: inputDir, output: outputFile } = options;\n\n if (!existsSync(inputDir)) {\n throw new CommanderError(1, \"ENOENT\", `Input directory does not exist: ${inputDir}`);\n }\n\n if (!statSync(inputDir).isDirectory()) {\n throw new CommanderError(1, \"ENOTDIR\", `Input path is not a directory: ${inputDir}`);\n }\n\n const files = readdirSync(inputDir)\n .filter(file => file.endsWith(\".yml\") || file.endsWith(\".yaml\"));\n\n if (files.length === 0) {\n throw new CommanderError(1, \"ENOFILES\", `No YAML files found in directory: ${inputDir}`);\n }\n\n const sortedFiles = files.sort((a, b) => a.localeCompare(b));\n\n const migrationSteps: MigrationStep[] = [];\n for (const file of sortedFiles) {\n const filePath = join(inputDir, file);\n const fileContent = readFileSync(filePath, \"utf8\");\n const parsed = YAML.parse(fileContent) as unknown;\n const parsedCommands = parseMigrationSteps(parsed);\n migrationSteps.push(...parsedCommands);\n }\n\n consola.info(`Converting ${migrationSteps.length} migration step(s) to IR format...`);\n\n // Prepare metadata if provided\n const metadata: SchemaMetadata = {\n name: options.schemaName,\n description: options.schemaDescription,\n version: options.version ? parseInt(options.version, 10) : undefined,\n };\n\n const schema = convertStepsToIr(migrationSteps, metadata);\n\n const outputDir = dirname(outputFile);\n if (!existsSync(outputDir)) {\n mkdirSync(outputDir, { recursive: true });\n }\n writeFileSync(outputFile, JSON.stringify(schema, null, 2), \"utf8\");\n\n consola.success(\"✅ Successfully converted migration steps to IR format\");\n consola.info(` Generated types written to: ${outputFile}`);\n consola.info(` Schema: ${schema.name} v${schema.version}`);\n consola.info(` Models: ${Object.keys(schema.models).length}`);\n consola.info(` Primary models: ${schema.primaryModelKeys.length}`);\n } catch (error) {\n consola.error(\"❌ Error converting steps to IR:\", error);\n throw new CommanderError(1, \"STEPS_IR_ERROR\", \"Failed to convert steps to IR format\");\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"stepsGenIrHandler.js","names":["CommanderError","consola","existsSync","mkdirSync","readdirSync","readFileSync","statSync","writeFileSync","dirname","join","YAML","GENERATED_JSON_COMMENT","convertStepsToIr","parseMigrationSteps","stepsGenIrHandler","options","input","inputDir","output","outputFile","isDirectory","files","filter","file","endsWith","length","sortedFiles","sort","a","b","localeCompare","migrationSteps","filePath","fileContent","parsed","parse","parsedCommands","push","info","metadata","name","schemaName","description","schemaDescription","version","parseInt","undefined","schema","outputDir","recursive","__comment","JSON","stringify","success","Object","keys","models","primaryModelKeys","error"],"sources":["stepsGenIrHandler.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CommanderError } from \"commander\";\nimport { consola } from \"consola\";\nimport { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from \"fs\";\nimport { dirname, join } from \"path\";\nimport * as YAML from \"yaml\";\nimport { GENERATED_JSON_COMMENT } from \"../../utils/generatedFileHeader.js\";\nimport { convertStepsToIr, type SchemaMetadata } from \"../../utils/steps/convertStepsToIr.js\";\nimport type { MigrationStep } from \"../../utils/steps/parseMigrationSteps.js\";\nimport { parseMigrationSteps } from \"../../utils/steps/parseMigrationSteps.js\";\n\ninterface StepsGenIrOptions {\n input: string;\n output: string;\n schemaName?: string;\n schemaDescription?: string;\n version?: string;\n}\n\nexport function stepsGenIrHandler(options: StepsGenIrOptions): void {\n try {\n const { input: inputDir, output: outputFile } = options;\n\n if (!existsSync(inputDir)) {\n throw new CommanderError(1, \"ENOENT\", `Input directory does not exist: ${inputDir}`);\n }\n\n if (!statSync(inputDir).isDirectory()) {\n throw new CommanderError(1, \"ENOTDIR\", `Input path is not a directory: ${inputDir}`);\n }\n\n const files = readdirSync(inputDir)\n .filter(file => file.endsWith(\".yml\") || file.endsWith(\".yaml\"));\n\n if (files.length === 0) {\n throw new CommanderError(1, \"ENOFILES\", `No YAML files found in directory: ${inputDir}`);\n }\n\n const sortedFiles = files.sort((a, b) => a.localeCompare(b));\n\n const migrationSteps: MigrationStep[] = [];\n for (const file of sortedFiles) {\n const filePath = join(inputDir, file);\n const fileContent = readFileSync(filePath, \"utf8\");\n const parsed = YAML.parse(fileContent) as unknown;\n const parsedCommands = parseMigrationSteps(parsed);\n migrationSteps.push(...parsedCommands);\n }\n\n consola.info(`Converting ${migrationSteps.length} migration step(s) to IR format...`);\n\n // Prepare metadata if provided\n const metadata: SchemaMetadata = {\n name: options.schemaName,\n description: options.schemaDescription,\n version: options.version ? parseInt(options.version, 10) : undefined,\n };\n\n const schema = convertStepsToIr(migrationSteps, metadata);\n\n const outputDir = dirname(outputFile);\n if (!existsSync(outputDir)) {\n mkdirSync(outputDir, { recursive: true });\n }\n const output = { __comment: GENERATED_JSON_COMMENT, ...schema };\n writeFileSync(outputFile, JSON.stringify(output, null, 2), \"utf8\");\n\n consola.success(\"✅ Successfully converted migration steps to IR format\");\n consola.info(` Generated types written to: ${outputFile}`);\n consola.info(` Schema: ${schema.name} v${schema.version}`);\n consola.info(` Models: ${Object.keys(schema.models).length}`);\n consola.info(` Primary models: ${schema.primaryModelKeys.length}`);\n } catch (error) {\n consola.error(\"❌ Error converting steps to IR:\", error);\n throw new CommanderError(1, \"STEPS_IR_ERROR\", \"Failed to convert steps to IR format\");\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["types.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { DocumentTypeSchema } from \"@osdk/foundry.pack\";\n\nexport type FileSystemType = \"ARTIFACTS\" | \"COMPASS\";\n\nexport interface DocumentTypeAsset {\n readonly documentTypeName: string;\n readonly documentStorageType: {\n readonly type: \"yjs\";\n readonly yjs: DocumentTypeSchema;\n };\n readonly fileSystemType: FileSystemType;\n readonly schemaVersion: number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -20,7 +20,13 @@ export { registerSchemaCommands } from "./commands/schema/registerSchemaCommands
20
20
  export { registerStepsCommands } from "./commands/steps/registerStepsCommands.js";
21
21
  export { generateZodSchemasFromIr } from "./utils/ir/generateZodSchemasFromIr.js";
22
22
  export { convertSchemaToSteps, convertStepsToYamlString } from "./utils/schema/convertSchemaToSteps.js";
23
+ export { generateInternalFromSchema } from "./utils/schema/generateInternalFromSchema.js";
24
+ export { generateModelMetadataFromSchema } from "./utils/schema/generateModelMetadataFromSchema.js";
25
+ export { generateScopeFromSchema } from "./utils/schema/generateScopeFromSchema.js";
23
26
  export { generateTypesFromSchema } from "./utils/schema/generateTypesFromSchema.js";
27
+ export { generateVersionedTypesFromSchema } from "./utils/schema/generateVersionedTypesFromSchema.js";
28
+ export { generateVersionedZodFromSchema } from "./utils/schema/generateVersionedZodFromSchema.js";
29
+ export { generateVersionsFromSchema } from "./utils/schema/generateVersionsFromSchema.js";
24
30
  export { generateZodFromSchema } from "./utils/schema/generateZodFromSchema.js";
25
31
  export { convertRecordDefToIr, convertSchemaToIr, convertStepsToIr, convertTypeToFieldTypeUnion } from "./utils/steps/convertStepsToIr.js";
26
32
  export { generateZodFromStepsSchema } from "./utils/steps/generateZodFromStepsSchema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["cli","registerIrCommands","registerSchemaCommands","registerStepsCommands","generateZodSchemasFromIr","convertSchemaToSteps","convertStepsToYamlString","generateTypesFromSchema","generateZodFromSchema","convertRecordDefToIr","convertSchemaToIr","convertStepsToIr","convertTypeToFieldTypeUnion","generateZodFromStepsSchema"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { cli } from \"./cli.js\";\nexport { registerIrCommands } from \"./commands/ir/registerIrCommands.js\";\nexport { registerSchemaCommands } from \"./commands/schema/registerSchemaCommands.js\";\nexport { registerStepsCommands } from \"./commands/steps/registerStepsCommands.js\";\nexport { generateZodSchemasFromIr } from \"./utils/ir/generateZodSchemasFromIr.js\";\nexport {\n convertSchemaToSteps,\n convertStepsToYamlString,\n} from \"./utils/schema/convertSchemaToSteps.js\";\nexport { generateTypesFromSchema } from \"./utils/schema/generateTypesFromSchema.js\";\nexport { generateZodFromSchema } from \"./utils/schema/generateZodFromSchema.js\";\nexport {\n convertRecordDefToIr,\n convertSchemaToIr,\n convertStepsToIr,\n convertTypeToFieldTypeUnion,\n type SchemaMetadata,\n} from \"./utils/steps/convertStepsToIr.js\";\nexport { generateZodFromStepsSchema } from \"./utils/steps/generateZodFromStepsSchema.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,GAAG,QAAQ,UAAU;AAC9B,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,sBAAsB,QAAQ,6CAA6C;AACpF,SAASC,qBAAqB,QAAQ,2CAA2C;AACjF,SAASC,wBAAwB,QAAQ,wCAAwC;AACjF,SACEC,oBAAoB,EACpBC,wBAAwB,QACnB,wCAAwC;AAC/C,SAASC,uBAAuB,QAAQ,2CAA2C;AACnF,SAASC,qBAAqB,QAAQ,yCAAyC;AAC/E,SACEC,oBAAoB,EACpBC,iBAAiB,EACjBC,gBAAgB,EAChBC,2BAA2B,QAEtB,mCAAmC;AAC1C,SAASC,0BAA0B,QAAQ,6CAA6C","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["cli","registerIrCommands","registerSchemaCommands","registerStepsCommands","generateZodSchemasFromIr","convertSchemaToSteps","convertStepsToYamlString","generateInternalFromSchema","generateModelMetadataFromSchema","generateScopeFromSchema","generateTypesFromSchema","generateVersionedTypesFromSchema","generateVersionedZodFromSchema","generateVersionsFromSchema","generateZodFromSchema","convertRecordDefToIr","convertSchemaToIr","convertStepsToIr","convertTypeToFieldTypeUnion","generateZodFromStepsSchema"],"sources":["index.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { cli } from \"./cli.js\";\nexport { registerIrCommands } from \"./commands/ir/registerIrCommands.js\";\nexport { registerSchemaCommands } from \"./commands/schema/registerSchemaCommands.js\";\nexport { registerStepsCommands } from \"./commands/steps/registerStepsCommands.js\";\nexport { generateZodSchemasFromIr } from \"./utils/ir/generateZodSchemasFromIr.js\";\nexport {\n convertSchemaToSteps,\n convertStepsToYamlString,\n} from \"./utils/schema/convertSchemaToSteps.js\";\nexport { generateInternalFromSchema } from \"./utils/schema/generateInternalFromSchema.js\";\nexport {\n generateModelMetadataFromSchema,\n type ModelMetadataOutput,\n} from \"./utils/schema/generateModelMetadataFromSchema.js\";\nexport { generateScopeFromSchema } from \"./utils/schema/generateScopeFromSchema.js\";\nexport { generateTypesFromSchema } from \"./utils/schema/generateTypesFromSchema.js\";\nexport { generateVersionedTypesFromSchema } from \"./utils/schema/generateVersionedTypesFromSchema.js\";\nexport { generateVersionedZodFromSchema } from \"./utils/schema/generateVersionedZodFromSchema.js\";\nexport { generateVersionsFromSchema } from \"./utils/schema/generateVersionsFromSchema.js\";\nexport { generateZodFromSchema } from \"./utils/schema/generateZodFromSchema.js\";\nexport {\n convertRecordDefToIr,\n convertSchemaToIr,\n convertStepsToIr,\n convertTypeToFieldTypeUnion,\n type SchemaMetadata,\n} from \"./utils/steps/convertStepsToIr.js\";\nexport { generateZodFromStepsSchema } from \"./utils/steps/generateZodFromStepsSchema.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,GAAG,QAAQ,UAAU;AAC9B,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,sBAAsB,QAAQ,6CAA6C;AACpF,SAASC,qBAAqB,QAAQ,2CAA2C;AACjF,SAASC,wBAAwB,QAAQ,wCAAwC;AACjF,SACEC,oBAAoB,EACpBC,wBAAwB,QACnB,wCAAwC;AAC/C,SAASC,0BAA0B,QAAQ,8CAA8C;AACzF,SACEC,+BAA+B,QAE1B,mDAAmD;AAC1D,SAASC,uBAAuB,QAAQ,2CAA2C;AACnF,SAASC,uBAAuB,QAAQ,2CAA2C;AACnF,SAASC,gCAAgC,QAAQ,oDAAoD;AACrG,SAASC,8BAA8B,QAAQ,kDAAkD;AACjG,SAASC,0BAA0B,QAAQ,8CAA8C;AACzF,SAASC,qBAAqB,QAAQ,yCAAyC;AAC/E,SACEC,oBAAoB,EACpBC,iBAAiB,EACjBC,gBAAgB,EAChBC,2BAA2B,QAEtB,mCAAmC;AAC1C,SAASC,0BAA0B,QAAQ,6CAA6C","ignoreList":[]}