@osdk/maker 0.15.0-beta.7 → 0.15.0-beta.9

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 (74) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +26 -22
  3. package/build/browser/api/action/ActionParameterConditionalOverride.js.map +1 -1
  4. package/build/browser/api/defineInterface.js.map +1 -1
  5. package/build/browser/api/defineOntology.js +6 -0
  6. package/build/browser/api/defineOntology.js.map +1 -1
  7. package/build/browser/api/defineValueType.js +25 -7
  8. package/build/browser/api/defineValueType.js.map +1 -1
  9. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
  10. package/build/browser/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
  11. package/build/browser/api/links/LinkType.js.map +1 -1
  12. package/build/browser/api/object/ObjectTypeStatus.js.map +1 -1
  13. package/build/browser/api/test/actions.test.js +8 -5
  14. package/build/browser/api/test/actions.test.js.map +1 -1
  15. package/build/browser/api/test/interfaces.test.js +12 -0
  16. package/build/browser/api/test/interfaces.test.js.map +1 -1
  17. package/build/browser/api/test/misc.test.js +4 -2
  18. package/build/browser/api/test/misc.test.js.map +1 -1
  19. package/build/browser/api/test/objects.test.js +3 -2
  20. package/build/browser/api/test/objects.test.js.map +1 -1
  21. package/build/browser/api/test/valueTypes.test.js +151 -0
  22. package/build/browser/api/test/valueTypes.test.js.map +1 -1
  23. package/build/browser/cli/main.js +1 -1
  24. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
  25. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  26. package/build/browser/conversion/toMarketplace/convertLink.js +30 -4
  27. package/build/browser/conversion/toMarketplace/convertLink.js.map +1 -1
  28. package/build/browser/conversion/toMarketplace/convertObject.js +6 -5
  29. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
  30. package/build/cjs/index.cjs +86 -22
  31. package/build/cjs/index.cjs.map +1 -1
  32. package/build/cjs/index.d.cts +29 -5
  33. package/build/esm/api/action/ActionParameterConditionalOverride.js.map +1 -1
  34. package/build/esm/api/defineInterface.js.map +1 -1
  35. package/build/esm/api/defineOntology.js +6 -0
  36. package/build/esm/api/defineOntology.js.map +1 -1
  37. package/build/esm/api/defineValueType.js +25 -7
  38. package/build/esm/api/defineValueType.js.map +1 -1
  39. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js +5 -0
  40. package/build/esm/api/interface/mapSimplifiedStatusToInterfaceTypeStatus.js.map +1 -1
  41. package/build/esm/api/links/LinkType.js.map +1 -1
  42. package/build/esm/api/object/ObjectTypeStatus.js.map +1 -1
  43. package/build/esm/api/test/actions.test.js +8 -5
  44. package/build/esm/api/test/actions.test.js.map +1 -1
  45. package/build/esm/api/test/interfaces.test.js +12 -0
  46. package/build/esm/api/test/interfaces.test.js.map +1 -1
  47. package/build/esm/api/test/misc.test.js +4 -2
  48. package/build/esm/api/test/misc.test.js.map +1 -1
  49. package/build/esm/api/test/objects.test.js +3 -2
  50. package/build/esm/api/test/objects.test.js.map +1 -1
  51. package/build/esm/api/test/valueTypes.test.js +151 -0
  52. package/build/esm/api/test/valueTypes.test.js.map +1 -1
  53. package/build/esm/cli/main.js +1 -1
  54. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
  55. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  56. package/build/esm/conversion/toMarketplace/convertLink.js +30 -4
  57. package/build/esm/conversion/toMarketplace/convertLink.js.map +1 -1
  58. package/build/esm/conversion/toMarketplace/convertObject.js +6 -5
  59. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
  60. package/build/types/api/action/ActionParameterConditionalOverride.d.ts +2 -0
  61. package/build/types/api/action/ActionParameterConditionalOverride.d.ts.map +1 -1
  62. package/build/types/api/defineInterface.d.ts +2 -0
  63. package/build/types/api/defineInterface.d.ts.map +1 -1
  64. package/build/types/api/defineOntology.d.ts.map +1 -1
  65. package/build/types/api/defineValueType.d.ts +10 -0
  66. package/build/types/api/defineValueType.d.ts.map +1 -1
  67. package/build/types/api/links/LinkType.d.ts +16 -4
  68. package/build/types/api/links/LinkType.d.ts.map +1 -1
  69. package/build/types/api/object/ObjectTypeStatus.d.ts +1 -1
  70. package/build/types/api/object/ObjectTypeStatus.d.ts.map +1 -1
  71. package/build/types/conversion/toMarketplace/convertLink.d.ts +3 -2
  72. package/build/types/conversion/toMarketplace/convertLink.d.ts.map +1 -1
  73. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
  74. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @osdk/maker
2
2
 
3
+ ## 0.15.0-beta.9
4
+
5
+ ### Minor Changes
6
+
7
+ - ace2d68: Allow custom "then" configuration on visibility overrides
8
+ - 044f478: Wire propertiesV2 to implementsInterface
9
+ - 3693275: Add flag to add namespace prefix to value type api names
10
+
11
+ ## 0.15.0-beta.8
12
+
13
+ ### Minor Changes
14
+
15
+ - c773e8f: Expose more status options on OAC
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [bb9d25c]
20
+ - @osdk/api@2.7.0-beta.12
21
+
3
22
  ## 0.15.0-beta.7
4
23
 
5
24
  ### Minor Changes
package/README.md CHANGED
@@ -239,10 +239,10 @@ const personInterface = defineInterface({
239
239
  displayName: "Person",
240
240
  description: "Represents a person",
241
241
  properties: {
242
- firstName: "string",
243
- lastName: "string",
244
- email: "string",
245
- age: "integer",
242
+ firstName: { type: "string" }, // creates an interface defined property
243
+ lastName: { type: "string" },
244
+ email: { type: "string" },
245
+ age: { type: "integer" },
246
246
  },
247
247
  });
248
248
 
@@ -254,10 +254,10 @@ const employeeInterface = defineInterface({
254
254
  properties: {
255
255
  firstName: nameProperty, // Using previously defined SPT
256
256
  lastName: nameProperty, // Using previously defined SPT
257
- employeeId: "string",
258
- department: "string",
259
- hireDate: "date",
260
- isActive: "boolean",
257
+ employeeId: { type: "string" },
258
+ department: { type: "string" },
259
+ hireDate: { type: "date" },
260
+ isActive: { type: "boolean" },
261
261
  },
262
262
  });
263
263
  ```
@@ -269,12 +269,16 @@ const customerInterface = defineInterface({
269
269
  apiName: "Customer",
270
270
  displayName: "Customer",
271
271
  properties: {
272
- name: "string",
273
- email: "string",
274
- // Define an optional property
272
+ // Define an optional interface defined property
273
+ name: {
274
+ type: "string",
275
+ required: false,
276
+ },
277
+ email: { type: "string" },
278
+ // Define an optional interface SPT
275
279
  phoneNumber: {
276
280
  required: false,
277
- propertyDefinition: "string",
281
+ sharedPropertyType: phoneNumber, // Using previously defined SPT
278
282
  },
279
283
  },
280
284
  });
@@ -288,8 +292,8 @@ const managerInterface = defineInterface({
288
292
  apiName: "Manager",
289
293
  displayName: "Manager",
290
294
  properties: {
291
- managementLevel: "string",
292
- directReports: "integer",
295
+ managementLevel: { type: "string" },
296
+ directReports: { type: "integer" },
293
297
  },
294
298
  extends: [employeeInterface], // Extends the Employee interface
295
299
  });
@@ -299,7 +303,7 @@ const executiveInterface = defineInterface({
299
303
  apiName: "Executive",
300
304
  displayName: "Executive",
301
305
  properties: {
302
- stockOptions: "boolean",
306
+ stockOptions: { type: "boolean" },
303
307
  },
304
308
  extends: ["Manager"], // Extends using apiName
305
309
  });
@@ -316,9 +320,9 @@ const productInterface = defineInterface({
316
320
  color: "#007bff",
317
321
  },
318
322
  properties: {
319
- name: "string",
320
- sku: "string",
321
- price: "decimal",
323
+ name: { type: "string" },
324
+ sku: { type: "string" },
325
+ price: { type: "decimal" },
322
326
  },
323
327
  });
324
328
  ```
@@ -330,8 +334,8 @@ const legacyInterface = defineInterface({
330
334
  apiName: "LegacySystem",
331
335
  displayName: "Legacy System",
332
336
  properties: {
333
- systemName: "string",
334
- version: "string",
337
+ systemName: { type: "string" },
338
+ version: { type: "string" },
335
339
  },
336
340
  status: {
337
341
  type: "deprecated",
@@ -344,8 +348,8 @@ const experimentalInterface = defineInterface({
344
348
  apiName: "ExperimentalFeature",
345
349
  displayName: "Experimental Feature",
346
350
  properties: {
347
- featureName: "string",
348
- enabled: "boolean",
351
+ featureName: { type: "string" },
352
+ enabled: { type: "boolean" },
349
353
  },
350
354
  status: {
351
355
  type: "experimental",
@@ -1 +1 @@
1
- {"version":3,"file":"ActionParameterConditionalOverride.js","names":[],"sources":["ActionParameterConditionalOverride.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 { OntologyIrParameterPrefill } from \"@osdk/client.unstable\";\nimport type { ActionParameterAllowedValues } from \"./ActionParameterAllowedValues.js\";\nimport type { ConditionDefinition } from \"./ConditionDefinition.js\";\n\nexport type ActionParameterConditionalOverride =\n | VisibilityOverride\n | DisabledOverride\n | RequiredOverride\n | DefaultValueOverride\n | ConstraintOverride;\n\nexport type VisibilityOverride = {\n type: \"visibility\";\n condition: ConditionDefinition;\n};\n\nexport type DisabledOverride = {\n type: \"disabled\";\n condition: ConditionDefinition;\n};\n\nexport type RequiredOverride = {\n type: \"required\";\n condition: ConditionDefinition;\n};\n\nexport type DefaultValueOverride = {\n type: \"defaultValue\";\n condition: ConditionDefinition;\n defaultValue: OntologyIrParameterPrefill;\n};\n\nexport type ConstraintOverride = {\n type: \"constraint\";\n condition: ConditionDefinition;\n constraint: ActionParameterAllowedValues;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ActionParameterConditionalOverride.js","names":[],"sources":["ActionParameterConditionalOverride.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 { OntologyIrParameterPrefill } from \"@osdk/client.unstable\";\nimport type { ActionParameterAllowedValues } from \"./ActionParameterAllowedValues.js\";\nimport type { ConditionDefinition } from \"./ConditionDefinition.js\";\n\nexport type ActionParameterConditionalOverride =\n | VisibilityOverride\n | DisabledOverride\n | RequiredOverride\n | DefaultValueOverride\n | ConstraintOverride;\n\nexport type VisibilityOverride = {\n type: \"visibility\";\n condition: ConditionDefinition;\n then?:\n | \"editable\"\n | \"disabled\"\n | \"hidden\";\n};\n\nexport type DisabledOverride = {\n type: \"disabled\";\n condition: ConditionDefinition;\n then?:\n | \"editable\"\n | \"disabled\"\n | \"hidden\";\n};\n\nexport type RequiredOverride = {\n type: \"required\";\n condition: ConditionDefinition;\n};\n\nexport type DefaultValueOverride = {\n type: \"defaultValue\";\n condition: ConditionDefinition;\n defaultValue: OntologyIrParameterPrefill;\n};\n\nexport type ConstraintOverride = {\n type: \"constraint\";\n condition: ConditionDefinition;\n constraint: ActionParameterAllowedValues;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"defineInterface.js","names":["invariant","OntologyEntityTypeEnum","namespace","ontologyDefinition","updateOntology","withoutNamespace","isInterfaceSharedPropertyType","mapSimplifiedStatusToInterfaceTypeStatus","combineApiNamespaceIfMissing","isExotic","isPropertyTypeType","defineInterface","interfaceDef","apiName","INTERFACE_TYPE","undefined","process","env","NODE_ENV","spts","Object","fromEntries","entries","properties","filter","_name","prop","map","s","spt","required","sharedPropertyType","propertiesV2","propName","type","sptApiName","verifyBasePropertyDefinition","propertiesV3","propertyBase","extendsInterfaces","extends","Array","isArray","status","deprecated","message","deadline","fullInterface","displayMetadata","displayName","description","icon","blueprint","color","locator","links","searchable","__type","unNamespacedTypeApiName","JSON","stringify","key"],"sources":["defineInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport {\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport { type InterfaceType } from \"./interface/InterfaceType.js\";\nimport { mapSimplifiedStatusToInterfaceTypeStatus } from \"./interface/mapSimplifiedStatusToInterfaceTypeStatus.js\";\nimport { combineApiNamespaceIfMissing } from \"./namespace/combineApiNamespaceIfMissing.js\";\nimport { isExotic, isPropertyTypeType } from \"./properties/PropertyTypeType.js\";\nimport { type SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\nexport type SimplifiedInterfaceTypeStatus =\n | { type: \"deprecated\"; message: string; deadline: string }\n | { type: \"active\" }\n | { type: \"experimental\" };\n\ntype PropertyBase =\n | SharedPropertyType\n | InterfaceDefinedProperty;\ntype SptWithOptional = {\n required: boolean;\n sharedPropertyType: SharedPropertyType;\n};\n\nexport type InterfaceTypeDefinition = {\n apiName: string;\n displayName?: string;\n description?: string;\n icon?: { locator: BlueprintIcon; color: string };\n status?: SimplifiedInterfaceTypeStatus;\n properties?: Record<\n string,\n PropertyBase | SptWithOptional\n >;\n extends?: InterfaceType | InterfaceType[];\n searchable?: boolean;\n};\n\nexport function defineInterface(\n interfaceDef: InterfaceTypeDefinition,\n): InterfaceType {\n const apiName = namespace + interfaceDef.apiName;\n invariant(\n ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName]\n === undefined,\n `Interface ${apiName} already exists`,\n );\n\n // legacy support for propertiesV2 (only SPTs)\n const spts: Record<string, SptWithOptional> = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).filter(([_name, prop]) => {\n return isInterfaceSharedPropertyType(prop) || \"apiName\" in prop;\n }).map(([s, spt]) => {\n const required = isInterfaceSharedPropertyType(spt) ? spt.required : true;\n return [s, {\n sharedPropertyType: (isInterfaceSharedPropertyType(spt)\n ? spt.sharedPropertyType\n : spt) as SharedPropertyType,\n required: required,\n }];\n }),\n );\n const propertiesV2 = Object.fromEntries(\n Object.entries(spts).map<\n [string, { required: boolean; sharedPropertyType: SharedPropertyType }]\n >(\n ([propName, type]) => {\n const sptApiName = combineApiNamespaceIfMissing(\n namespace,\n type.sharedPropertyType.apiName,\n );\n return [sptApiName, {\n required: type.required,\n sharedPropertyType: verifyBasePropertyDefinition(\n namespace,\n propName,\n type.sharedPropertyType,\n ),\n }];\n },\n ),\n );\n\n const propertiesV3 = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).map<\n [string, InterfacePropertyType]\n >(([apiName, prop]) => {\n const required =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.required\n : true;\n const propertyBase: PropertyBase =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.sharedPropertyType\n : prop;\n if (\n typeof propertyBase === \"object\"\n && \"nonNameSpacedApiName\" in propertyBase\n ) {\n // SPT\n return [apiName, {\n required: required,\n sharedPropertyType: propertyBase,\n }];\n } else {\n // IDP\n return [apiName, propertyBase];\n }\n }),\n );\n\n const extendsInterfaces = interfaceDef.extends\n ? (Array.isArray(interfaceDef.extends)\n ? interfaceDef.extends\n : [interfaceDef.extends])\n : [];\n\n const status: InterfaceTypeStatus = mapSimplifiedStatusToInterfaceTypeStatus(\n interfaceDef.status ?? { type: \"active\" },\n );\n\n invariant(\n status.type !== \"deprecated\"\n || (status.deprecated.message && status.deprecated.deadline),\n `Deprecated status must include message and deadline properties.`,\n );\n\n const fullInterface: InterfaceType = {\n apiName,\n displayMetadata: {\n displayName: interfaceDef.displayName ?? interfaceDef.apiName,\n description: interfaceDef.description ?? interfaceDef.displayName\n ?? interfaceDef.apiName,\n icon: interfaceDef.icon !== undefined\n ? {\n type: \"blueprint\",\n blueprint: {\n color: interfaceDef.icon.color,\n locator: interfaceDef.icon.locator,\n },\n }\n : undefined,\n },\n extendsInterfaces,\n links: [],\n status,\n propertiesV2: propertiesV2,\n propertiesV3: propertiesV3,\n searchable: interfaceDef.searchable ?? true,\n __type: OntologyEntityTypeEnum.INTERFACE_TYPE,\n };\n\n updateOntology(fullInterface);\n return fullInterface;\n}\n\nfunction verifyBasePropertyDefinition(\n namespace: string,\n apiName: string,\n type: SharedPropertyType,\n): SharedPropertyType {\n const unNamespacedTypeApiName = withoutNamespace(type.apiName);\n invariant(\n isPropertyTypeType(type.type) || isExotic(type.type),\n `Invalid data type ${\n JSON.stringify(type)\n } for property ${apiName} on InterfaceType ${apiName}`,\n );\n invariant(\n namespace + apiName === type.apiName\n || apiName === unNamespacedTypeApiName,\n `property key and it's apiName must be identical. ${\n JSON.stringify({ key: apiName, apiName: type.apiName })\n }`,\n );\n return type;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineInterface.js","names":["invariant","OntologyEntityTypeEnum","namespace","ontologyDefinition","updateOntology","withoutNamespace","isInterfaceSharedPropertyType","mapSimplifiedStatusToInterfaceTypeStatus","combineApiNamespaceIfMissing","isExotic","isPropertyTypeType","defineInterface","interfaceDef","apiName","INTERFACE_TYPE","undefined","process","env","NODE_ENV","spts","Object","fromEntries","entries","properties","filter","_name","prop","map","s","spt","required","sharedPropertyType","propertiesV2","propName","type","sptApiName","verifyBasePropertyDefinition","propertiesV3","propertyBase","extendsInterfaces","extends","Array","isArray","status","deprecated","message","deadline","fullInterface","displayMetadata","displayName","description","icon","blueprint","color","locator","links","searchable","__type","unNamespacedTypeApiName","JSON","stringify","key"],"sources":["defineInterface.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport {\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport { type InterfaceType } from \"./interface/InterfaceType.js\";\nimport { mapSimplifiedStatusToInterfaceTypeStatus } from \"./interface/mapSimplifiedStatusToInterfaceTypeStatus.js\";\nimport { combineApiNamespaceIfMissing } from \"./namespace/combineApiNamespaceIfMissing.js\";\nimport { isExotic, isPropertyTypeType } from \"./properties/PropertyTypeType.js\";\nimport { type SharedPropertyType } from \"./properties/SharedPropertyType.js\";\n\nexport type SimplifiedInterfaceTypeStatus =\n | { type: \"deprecated\"; message: string; deadline: string }\n | { type: \"active\" }\n | { type: \"experimental\" }\n | { type: \"example\" };\n\ntype PropertyBase =\n | SharedPropertyType\n | InterfaceDefinedProperty;\ntype SptWithOptional = {\n required: boolean;\n sharedPropertyType: SharedPropertyType;\n};\n\nexport type InterfaceTypeDefinition = {\n apiName: string;\n displayName?: string;\n description?: string;\n icon?: { locator: BlueprintIcon; color: string };\n status?: SimplifiedInterfaceTypeStatus;\n properties?: Record<\n string,\n PropertyBase | SptWithOptional\n >;\n extends?: InterfaceType | InterfaceType[];\n searchable?: boolean;\n};\n\nexport function defineInterface(\n interfaceDef: InterfaceTypeDefinition,\n): InterfaceType {\n const apiName = namespace + interfaceDef.apiName;\n invariant(\n ontologyDefinition[OntologyEntityTypeEnum.INTERFACE_TYPE][apiName]\n === undefined,\n `Interface ${apiName} already exists`,\n );\n\n // legacy support for propertiesV2 (only SPTs)\n const spts: Record<string, SptWithOptional> = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).filter(([_name, prop]) => {\n return isInterfaceSharedPropertyType(prop) || \"apiName\" in prop;\n }).map(([s, spt]) => {\n const required = isInterfaceSharedPropertyType(spt) ? spt.required : true;\n return [s, {\n sharedPropertyType: (isInterfaceSharedPropertyType(spt)\n ? spt.sharedPropertyType\n : spt) as SharedPropertyType,\n required: required,\n }];\n }),\n );\n const propertiesV2 = Object.fromEntries(\n Object.entries(spts).map<\n [string, { required: boolean; sharedPropertyType: SharedPropertyType }]\n >(\n ([propName, type]) => {\n const sptApiName = combineApiNamespaceIfMissing(\n namespace,\n type.sharedPropertyType.apiName,\n );\n return [sptApiName, {\n required: type.required,\n sharedPropertyType: verifyBasePropertyDefinition(\n namespace,\n propName,\n type.sharedPropertyType,\n ),\n }];\n },\n ),\n );\n\n const propertiesV3 = Object.fromEntries(\n Object.entries(interfaceDef.properties ?? {}).map<\n [string, InterfacePropertyType]\n >(([apiName, prop]) => {\n const required =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.required\n : true;\n const propertyBase: PropertyBase =\n (typeof prop === \"object\" && isInterfaceSharedPropertyType(prop))\n ? prop.sharedPropertyType\n : prop;\n if (\n typeof propertyBase === \"object\"\n && \"nonNameSpacedApiName\" in propertyBase\n ) {\n // SPT\n return [apiName, {\n required: required,\n sharedPropertyType: propertyBase,\n }];\n } else {\n // IDP\n return [apiName, propertyBase];\n }\n }),\n );\n\n const extendsInterfaces = interfaceDef.extends\n ? (Array.isArray(interfaceDef.extends)\n ? interfaceDef.extends\n : [interfaceDef.extends])\n : [];\n\n const status: InterfaceTypeStatus = mapSimplifiedStatusToInterfaceTypeStatus(\n interfaceDef.status ?? { type: \"active\" },\n );\n\n invariant(\n status.type !== \"deprecated\"\n || (status.deprecated.message && status.deprecated.deadline),\n `Deprecated status must include message and deadline properties.`,\n );\n\n const fullInterface: InterfaceType = {\n apiName,\n displayMetadata: {\n displayName: interfaceDef.displayName ?? interfaceDef.apiName,\n description: interfaceDef.description ?? interfaceDef.displayName\n ?? interfaceDef.apiName,\n icon: interfaceDef.icon !== undefined\n ? {\n type: \"blueprint\",\n blueprint: {\n color: interfaceDef.icon.color,\n locator: interfaceDef.icon.locator,\n },\n }\n : undefined,\n },\n extendsInterfaces,\n links: [],\n status,\n propertiesV2: propertiesV2,\n propertiesV3: propertiesV3,\n searchable: interfaceDef.searchable ?? true,\n __type: OntologyEntityTypeEnum.INTERFACE_TYPE,\n };\n\n updateOntology(fullInterface);\n return fullInterface;\n}\n\nfunction verifyBasePropertyDefinition(\n namespace: string,\n apiName: string,\n type: SharedPropertyType,\n): SharedPropertyType {\n const unNamespacedTypeApiName = withoutNamespace(type.apiName);\n invariant(\n isPropertyTypeType(type.type) || isExotic(type.type),\n `Invalid data type ${\n JSON.stringify(type)\n } for property ${apiName} on InterfaceType ${apiName}`,\n );\n invariant(\n namespace + apiName === type.apiName\n || apiName === unNamespacedTypeApiName,\n `property key and it's apiName must be identical. ${\n JSON.stringify({ key: apiName, apiName: type.apiName })\n }`,\n );\n return type;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -208,6 +208,12 @@ export function convertObjectStatus(status) {
208
208
  experimental: {}
209
209
  };
210
210
  }
211
+ if (status === "example") {
212
+ return {
213
+ type: "example",
214
+ example: {}
215
+ };
216
+ }
211
217
  if (typeof status === "object" && status.type === "deprecated") {
212
218
  return {
213
219
  type: "deprecated",
@@ -1 +1 @@
1
- {"version":3,"file":"defineOntology.js","names":["fs","path","convertActionParameters","convertActionSections","convertActionValidation","convertOntologyDefinition","convertOntologyToValueTypeIr","getFormContentOrdering","createCodeSnippets","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","codeSnippetFiles","snippetPackageName","snippetFileOutputDir","randomnessKey","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","buildDatasource","definition","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","datasourceName","datasource","editsConfiguration","onlyAllowPrivilegedEdits","redacted","dataSecurity","cleanAndValidateLinkTypeId","step1","linkTypeId","toLowerCase","test","Error","dumpOntologyFullMetadata","dumpValueTypeWireType","convertObjectStatus","status","type","active","experimental","deprecated","message","deadline","replacedBy","convertAction","action","actionValidation","actionParameters","actionSections","parameterOrdering","parameters","map","p","id","actionType","actionTypeLogic","logic","rules","validation","metadata","displayMetadata","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","description","displayName","icon","blueprint","locator","color","successMessage","submissionMetadata","typeClasses","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","extractAllowedValues","allowedValues","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","failureMessage","datetime","objectTypeReference","interfaceTypeRids","interfaceTypes","geotimeSeriesReference","geotimeSeries","user","filter","fromGroups","group","groupFilter","groupId","staticValue","string","name","parameterId","parameter","multipassGroup","k","renderHintFromBaseType","checkbox","numericInput","userDropdown","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith","addNamespaceIfNone","includes"],"sources":["defineOntology.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n ActionTypeStatus,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrAllowedParameterValues,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrParameter,\n OntologyIrSection,\n OntologyIrValueTypeBlockData,\n ParameterId,\n ParameterRenderHint,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { convertActionParameters } from \"../conversion/toMarketplace/convertActionParameters.js\";\nimport { convertActionSections } from \"../conversion/toMarketplace/convertActionSections.js\";\nimport { convertActionValidation } from \"../conversion/toMarketplace/convertActionValidation.js\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { convertOntologyToValueTypeIr } from \"../conversion/toMarketplace/convertOntologyToValueTypeIr.js\";\nimport { getFormContentOrdering } from \"../conversion/toMarketplace/getFormContentOrdering.js\";\nimport type {\n ActionParameter,\n ActionParameterValidation,\n} from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionType } from \"./action/ActionType.js\";\nimport { createCodeSnippets } from \"./code-snippets/createCodeSnippets.js\";\nimport type { OntologyDefinition } from \"./common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport type { OntologyEntityType } from \"./common/OntologyEntityTypeMapping.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n codeSnippetFiles?: boolean,\n snippetPackageName?: string,\n snippetFileOutputDir?: string,\n randomnessKey?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n if (codeSnippetFiles) {\n createCodeSnippets(\n ontologyDefinition,\n snippetPackageName,\n snippetFileOutputDir,\n );\n }\n\n return convertOntologyDefinition(ontologyDefinition, randomnessKey);\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\n/** @type {import('@osdk/maker').${entityTypeName}} */\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString()\n + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nexport function buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n datasourceName: apiName,\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\n });\n}\n\nexport function cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertOntologyDefinition(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nexport function convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nexport function convertAction(\n action: ActionType,\n): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n entities: action.entities,\n },\n },\n };\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n case \"user\":\n return {\n type: \"user\",\n user: {\n type: \"user\",\n user: {\n filter: (allowedValues.fromGroups ?? []).map(group => {\n return {\n type: \"groupFilter\",\n groupFilter: {\n groupId: group.type === \"static\"\n ? {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: group.name,\n },\n }\n : {\n type: \"parameterId\",\n parameterId: group.parameter,\n },\n },\n };\n }),\n },\n },\n };\n case \"multipassGroup\":\n return {\n type: \"multipassGroup\",\n multipassGroup: {\n type: \"group\",\n group: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nexport function renderHintFromBaseType(\n parameter: ActionParameter,\n validation?: ActionParameterValidation,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n if (\n validation?.allowedValues?.type === \"user\"\n || validation?.allowedValues?.type === \"multipassGroup\"\n ) {\n return { type: \"userDropdown\", userDropdown: {} };\n }\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineOntology.js","names":["fs","path","convertActionParameters","convertActionSections","convertActionValidation","convertOntologyDefinition","convertOntologyToValueTypeIr","getFormContentOrdering","createCodeSnippets","OntologyEntityTypeEnum","ontologyDefinition","importedTypes","dependencies","namespace","updateOntology","entity","__type","VALUE_TYPE","apiName","undefined","push","defineOntology","ns","body","outputDir","dependencyFile","codeSnippetFiles","snippetPackageName","snippetFileOutputDir","randomnessKey","OBJECT_TYPE","ACTION_TYPE","LINK_TYPE","INTERFACE_TYPE","SHARED_PROPERTY_TYPE","e","console","error","writeStaticObjects","writeDependencyFile","codegenDir","resolve","typeDirs","existsSync","mkdirSync","recursive","Object","values","forEach","typeDirNameFromMap","currentTypeDirPath","join","rmSync","force","topLevelExportStatements","entries","ontologyTypeEnumKey","entities","typeDirName","typeDirPath","entityModuleNames","entityFileNameBase","camel","withoutNamespace","filePath","entityTypeName","getEntityTypeName","entityJSON","JSON","stringify","replace","_","prefix","value","content","slice","writeFileSync","flag","entityModuleName","length","mainIndexContent","dependencyInjectionString","mainIndexFilePath","buildDatasource","definition","classificationMarkingGroupName","mandatoryMarkingGroupName","needsSecurity","securityConfig","classificationConstraint","markingGroupName","markingConstraint","datasourceName","datasource","editsConfiguration","onlyAllowPrivilegedEdits","redacted","dataSecurity","cleanAndValidateLinkTypeId","step1","linkTypeId","toLowerCase","test","Error","dumpOntologyFullMetadata","dumpValueTypeWireType","convertObjectStatus","status","type","active","experimental","example","deprecated","message","deadline","replacedBy","convertAction","action","actionValidation","actionParameters","actionSections","parameterOrdering","parameters","map","p","id","actionType","actionTypeLogic","logic","rules","validation","metadata","displayMetadata","configuration","defaultLayout","defaultFormat","displayAndFormat","table","columnWidthByParameterRid","enableFileImport","fitHorizontally","frozenColumnCount","rowHeightInLines","enableLayoutUserSwitch","enableLayoutSwitch","description","displayName","icon","blueprint","locator","color","successMessage","submissionMetadata","typeClasses","submitButtonDisplayMetadata","undoButtonConfiguration","formContentOrdering","sections","extractAllowedValues","allowedValues","oneOf","labelledValues","otherValueAllowed","allowed","min","max","range","minimum","inclusive","maximum","minLength","maxLength","regex","text","failureMessage","datetime","objectTypeReference","interfaceTypeRids","interfaceTypes","geotimeSeriesReference","geotimeSeries","user","filter","fromGroups","group","groupFilter","groupId","staticValue","string","name","parameterId","parameter","multipassGroup","k","renderHintFromBaseType","checkbox","numericInput","userDropdown","textInput","dateTimePicker","filePicker","mandatoryMarkingPicker","cbacMarkingPicker","dropdown","extractNamespace","substring","lastIndexOf","lastDot","str","result","c","toUpperCase","charAt","namespaceNoDot","endsWith","addNamespaceIfNone","includes"],"sources":["defineOntology.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n ActionTypeStatus,\n OntologyIr,\n OntologyIrActionTypeBlockDataV2,\n OntologyIrAllowedParameterValues,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrParameter,\n OntologyIrSection,\n OntologyIrValueTypeBlockData,\n ParameterId,\n ParameterRenderHint,\n SectionId,\n} from \"@osdk/client.unstable\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { convertActionParameters } from \"../conversion/toMarketplace/convertActionParameters.js\";\nimport { convertActionSections } from \"../conversion/toMarketplace/convertActionSections.js\";\nimport { convertActionValidation } from \"../conversion/toMarketplace/convertActionValidation.js\";\nimport { convertOntologyDefinition } from \"../conversion/toMarketplace/convertOntologyDefinition.js\";\nimport { convertOntologyToValueTypeIr } from \"../conversion/toMarketplace/convertOntologyToValueTypeIr.js\";\nimport { getFormContentOrdering } from \"../conversion/toMarketplace/getFormContentOrdering.js\";\nimport type {\n ActionParameter,\n ActionParameterValidation,\n} from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionType } from \"./action/ActionType.js\";\nimport { createCodeSnippets } from \"./code-snippets/createCodeSnippets.js\";\nimport type { OntologyDefinition } from \"./common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport type { OntologyEntityType } from \"./common/OntologyEntityTypeMapping.js\";\n\n// type -> apiName -> entity\n/** @internal */\nexport let ontologyDefinition: OntologyDefinition;\n\n// type -> apiName -> entity\n/** @internal */\nexport let importedTypes: OntologyDefinition;\n\n// namespace -> version\n/** @internal */\nexport let dependencies: Record<string, string>;\n\n/** @internal */\nexport let namespace: string;\n\nexport function updateOntology<\n T extends OntologyEntityType,\n>(\n entity: T,\n): void {\n if (entity.__type !== OntologyEntityTypeEnum.VALUE_TYPE) {\n ontologyDefinition[entity.__type][entity.apiName] = entity;\n return;\n }\n // value types are a special case\n if (\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n === undefined\n ) {\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName] = [];\n }\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][entity.apiName]\n .push(entity);\n}\n\nexport async function defineOntology(\n ns: string,\n body: () => void | Promise<void>,\n outputDir: string | undefined,\n dependencyFile?: string,\n codeSnippetFiles?: boolean,\n snippetPackageName?: string,\n snippetFileOutputDir?: string,\n randomnessKey?: string,\n): Promise<OntologyIr> {\n namespace = ns;\n dependencies = {};\n ontologyDefinition = {\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n SHARED_PROPERTY_TYPE: {},\n VALUE_TYPE: {},\n };\n importedTypes = {\n SHARED_PROPERTY_TYPE: {},\n OBJECT_TYPE: {},\n ACTION_TYPE: {},\n LINK_TYPE: {},\n INTERFACE_TYPE: {},\n VALUE_TYPE: {},\n };\n try {\n await body();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unexpected error while processing the body of the ontology\",\n e,\n );\n throw e;\n }\n if (outputDir) {\n writeStaticObjects(outputDir);\n }\n if (dependencyFile) {\n writeDependencyFile(dependencyFile);\n }\n if (codeSnippetFiles) {\n createCodeSnippets(\n ontologyDefinition,\n snippetPackageName,\n snippetFileOutputDir,\n );\n }\n\n return convertOntologyDefinition(ontologyDefinition, randomnessKey);\n}\n\nexport function writeStaticObjects(outputDir: string): void {\n const codegenDir = path.resolve(outputDir, \"codegen\");\n const typeDirs = {\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"shared-property-types\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"action-types\",\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"object-types\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"link-types\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"interface-types\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"value-types\",\n };\n\n if (!fs.existsSync(codegenDir)) {\n fs.mkdirSync(codegenDir, { recursive: true });\n }\n\n Object.values(typeDirs).forEach(typeDirNameFromMap => {\n const currentTypeDirPath = path.join(codegenDir, typeDirNameFromMap);\n if (fs.existsSync(currentTypeDirPath)) {\n fs.rmSync(currentTypeDirPath, { recursive: true, force: true });\n }\n fs.mkdirSync(currentTypeDirPath, { recursive: true });\n });\n\n const topLevelExportStatements: string[] = [];\n\n Object.entries(ontologyDefinition).forEach(\n ([ontologyTypeEnumKey, entities]) => {\n const typeDirName =\n typeDirs[ontologyTypeEnumKey as OntologyEntityTypeEnum];\n\n const typeDirPath = path.join(codegenDir, typeDirName);\n const entityModuleNames: string[] = [];\n\n Object.entries(entities).forEach(\n ([apiName, entity]: [string, OntologyEntityType]) => {\n const entityFileNameBase = camel(withoutNamespace(apiName))\n + (ontologyTypeEnumKey as OntologyEntityTypeEnum\n === OntologyEntityTypeEnum.VALUE_TYPE\n ? \"ValueType\"\n : \"\");\n const filePath = path.join(typeDirPath, `${entityFileNameBase}.ts`);\n const entityTypeName = getEntityTypeName(ontologyTypeEnumKey);\n const entityJSON = JSON.stringify(entity, null, 2).replace(\n /(\"__type\"\\s*:\\s*)\"([^\"]*)\"/g,\n (_, prefix, value) => `${prefix}OntologyEntityTypeEnum.${value}`,\n );\n const content = `\nimport { wrapWithProxy, OntologyEntityTypeEnum } from '@osdk/maker';\nimport type { ${entityTypeName} } from '@osdk/maker';\n\n/** @type {import('@osdk/maker').${entityTypeName}} */\nconst ${entityFileNameBase}_base: ${entityTypeName} = ${\n ontologyTypeEnumKey === \"VALUE_TYPE\"\n ? entityJSON.slice(1, -2)\n : entityJSON\n } as unknown as ${entityTypeName};\n \nexport const ${entityFileNameBase}: ${entityTypeName} = wrapWithProxy(${entityFileNameBase}_base);\n `;\n fs.writeFileSync(filePath, content, { flag: \"w\" });\n entityModuleNames.push(entityFileNameBase);\n },\n );\n\n for (const entityModuleName of entityModuleNames) {\n topLevelExportStatements.push(\n `export { ${entityModuleName} } from \"./codegen/${typeDirName}/${entityModuleName}.js\";`,\n );\n }\n },\n );\n\n if (topLevelExportStatements.length > 0) {\n const mainIndexContent = dependencyInjectionString()\n + topLevelExportStatements.join(\"\\n\") + \"\\n\";\n const mainIndexFilePath = path.join(outputDir, \"index.ts\");\n fs.writeFileSync(mainIndexFilePath, mainIndexContent, { flag: \"w\" });\n }\n}\n\nexport function buildDatasource(\n apiName: string,\n definition: OntologyIrObjectTypeDatasourceDefinition,\n classificationMarkingGroupName?: string,\n mandatoryMarkingGroupName?: string,\n): OntologyIrObjectTypeDatasource {\n const needsSecurity = classificationMarkingGroupName !== undefined\n || mandatoryMarkingGroupName !== undefined;\n\n const securityConfig = needsSecurity\n ? {\n classificationConstraint: classificationMarkingGroupName\n ? {\n markingGroupName: classificationMarkingGroupName,\n }\n : undefined,\n markingConstraint: mandatoryMarkingGroupName\n ? {\n markingGroupName: mandatoryMarkingGroupName,\n }\n : undefined,\n }\n : undefined;\n return ({\n datasourceName: apiName,\n datasource: definition,\n editsConfiguration: {\n onlyAllowPrivilegedEdits: false,\n },\n redacted: false,\n ...((securityConfig !== undefined) && { dataSecurity: securityConfig }),\n });\n}\n\nexport function cleanAndValidateLinkTypeId(apiName: string): string {\n // Insert a dash before any uppercase letter that follows a lowercase letter or digit\n const step1 = apiName.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\");\n // Insert a dash after a sequence of uppercase letters when followed by a lowercase letter\n // then convert the whole string to lowercase\n // e.g., apiName, APIname, and apiNAME will all be converted to api-name\n const linkTypeId = step1.replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .toLowerCase();\n\n const VALIDATION_PATTERN = /^([a-z][a-z0-9\\-]*)$/;\n if (!VALIDATION_PATTERN.test(linkTypeId)) {\n throw new Error(\n `LinkType id '${linkTypeId}' must be lower case with dashes.`,\n );\n }\n return linkTypeId;\n}\n\nexport function dumpOntologyFullMetadata(): OntologyIr {\n return convertOntologyDefinition(ontologyDefinition);\n}\n\nexport function dumpValueTypeWireType(): OntologyIrValueTypeBlockData {\n return convertOntologyToValueTypeIr(ontologyDefinition);\n}\n\nexport function convertObjectStatus(status: any): any {\n if (status === undefined) {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"active\") {\n return {\n type: \"active\",\n active: {},\n };\n }\n\n if (status === \"experimental\") {\n return {\n type: \"experimental\",\n experimental: {},\n };\n }\n\n if (status === \"example\") {\n return {\n type: \"example\",\n example: {},\n };\n }\n\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n }\n\n return status;\n}\n\nexport function convertAction(\n action: ActionType,\n): OntologyIrActionTypeBlockDataV2 {\n const actionValidation = convertActionValidation(action);\n const actionParameters: Record<ParameterId, OntologyIrParameter> =\n convertActionParameters(action);\n const actionSections: Record<SectionId, OntologyIrSection> =\n convertActionSections(action);\n const parameterOrdering = action.parameterOrdering\n ?? (action.parameters ?? []).map(p => p.id);\n return {\n actionType: {\n actionTypeLogic: {\n logic: {\n rules: action.rules,\n },\n validation: actionValidation,\n },\n metadata: {\n apiName: action.apiName,\n displayMetadata: {\n configuration: {\n defaultLayout: action.defaultFormat ?? \"FORM\",\n displayAndFormat: action.displayAndFormat ?? {\n table: {\n columnWidthByParameterRid: {},\n enableFileImport: true,\n fitHorizontally: false,\n frozenColumnCount: 0,\n rowHeightInLines: 1,\n },\n },\n enableLayoutUserSwitch: action.enableLayoutSwitch ?? false,\n },\n description: action.description ?? \"\",\n displayName: action.displayName,\n icon: {\n type: \"blueprint\",\n blueprint: action.icon ?? { locator: \"edit\", color: \"#000000\" },\n },\n successMessage: action.submissionMetadata?.successMessage\n ? [{\n type: \"message\",\n message: action.submissionMetadata.successMessage,\n }]\n : [],\n typeClasses: action.typeClasses ?? [],\n ...(action.submissionMetadata?.submitButtonDisplayMetadata\n && {\n submitButtonDisplayMetadata:\n action.submissionMetadata.submitButtonDisplayMetadata,\n }),\n ...(action.submissionMetadata?.undoButtonConfiguration\n && {\n undoButtonConfiguration:\n action.submissionMetadata.undoButtonConfiguration,\n }),\n },\n parameterOrdering: parameterOrdering,\n formContentOrdering: getFormContentOrdering(action, parameterOrdering),\n parameters: actionParameters,\n sections: actionSections,\n status: typeof action.status === \"string\"\n ? {\n type: action.status,\n [action.status]: {},\n } as unknown as ActionTypeStatus\n : action.status,\n entities: action.entities,\n },\n },\n };\n}\n\nexport function extractAllowedValues(\n allowedValues: ActionParameterAllowedValues,\n): OntologyIrAllowedParameterValues {\n switch (allowedValues.type) {\n case \"oneOf\":\n return {\n type: \"oneOf\",\n oneOf: {\n type: \"oneOf\",\n oneOf: {\n labelledValues: allowedValues.oneOf,\n otherValueAllowed: {\n allowed: allowedValues.otherValueAllowed\n ?? false,\n },\n },\n },\n };\n case \"range\":\n const { min, max } = allowedValues;\n return {\n type: \"range\",\n range: {\n type: \"range\",\n range: {\n ...(min === undefined\n ? {}\n : { minimum: { inclusive: true, value: min } }),\n ...(max === undefined\n ? {}\n : { maximum: { inclusive: true, value: max } }),\n },\n },\n };\n case \"text\":\n const { minLength, maxLength, regex } = allowedValues;\n return {\n type: \"text\",\n text: {\n type: \"text\",\n text: {\n ...(minLength === undefined\n ? {}\n : { minLength: minLength }),\n ...(maxLength === undefined\n ? {}\n : { maxLength: maxLength }),\n ...(regex === undefined\n ? {}\n : { regex: { regex: regex, failureMessage: \"Invalid input\" } }),\n },\n },\n };\n case \"datetime\":\n const { minimum, maximum } = allowedValues;\n return {\n type: \"datetime\",\n datetime: {\n type: \"datetime\",\n datetime: {\n minimum,\n maximum,\n },\n },\n };\n case \"objectTypeReference\":\n return {\n type: \"objectTypeReference\",\n objectTypeReference: {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: allowedValues.interfaceTypes,\n },\n },\n };\n case \"redacted\":\n return {\n type: \"redacted\",\n redacted: {},\n };\n case \"geotimeSeriesReference\":\n return {\n type: \"geotimeSeriesReference\",\n geotimeSeriesReference: {\n type: \"geotimeSeries\",\n geotimeSeries: {},\n },\n };\n case \"user\":\n return {\n type: \"user\",\n user: {\n type: \"user\",\n user: {\n filter: (allowedValues.fromGroups ?? []).map(group => {\n return {\n type: \"groupFilter\",\n groupFilter: {\n groupId: group.type === \"static\"\n ? {\n type: \"staticValue\",\n staticValue: {\n type: \"string\",\n string: group.name,\n },\n }\n : {\n type: \"parameterId\",\n parameterId: group.parameter,\n },\n },\n };\n }),\n },\n },\n };\n case \"multipassGroup\":\n return {\n type: \"multipassGroup\",\n multipassGroup: {\n type: \"group\",\n group: {},\n },\n };\n default:\n const k: Partial<OntologyIrAllowedParameterValues[\"type\"]> =\n allowedValues.type;\n return {\n type: k,\n [k]: {\n type: k,\n [k]: {},\n },\n } as unknown as OntologyIrAllowedParameterValues;\n // TODO(dpaquin): there's probably a TS clean way to do this\n }\n}\n\nexport function renderHintFromBaseType(\n parameter: ActionParameter,\n validation?: ActionParameterValidation,\n): ParameterRenderHint {\n // TODO(dpaquin): these are just guesses, we should find where they're actually defined\n const type = typeof parameter.type === \"string\"\n ? parameter.type\n : parameter.type.type;\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"checkbox\", checkbox: {} };\n case \"integer\":\n case \"integerList\":\n case \"long\":\n case \"longList\":\n case \"double\":\n case \"doubleList\":\n case \"decimal\":\n case \"decimalList\":\n return { type: \"numericInput\", numericInput: {} };\n case \"string\":\n if (\n validation?.allowedValues?.type === \"user\"\n || validation?.allowedValues?.type === \"multipassGroup\"\n ) {\n return { type: \"userDropdown\", userDropdown: {} };\n }\n case \"stringList\":\n case \"geohash\":\n case \"geohashList\":\n case \"geoshape\":\n case \"geoshapeList\":\n case \"objectSetRid\":\n return { type: \"textInput\", textInput: {} };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"dateTimePicker\", dateTimePicker: {} };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"filePicker\", filePicker: {} };\n case \"marking\":\n case \"markingList\":\n if (parameter.validation.allowedValues?.type === \"mandatoryMarking\") {\n return { type: \"mandatoryMarkingPicker\", mandatoryMarkingPicker: {} };\n } else if (parameter.validation.allowedValues?.type === \"cbacMarking\") {\n return { type: \"cbacMarkingPicker\", cbacMarkingPicker: {} };\n } else {\n throw new Error(\n `The allowed values for \"${parameter.displayName}\" are not compatible with the base parameter type`,\n );\n }\n case \"timeSeriesReference\":\n case \"objectReference\":\n case \"objectReferenceList\":\n case \"interfaceReference\":\n case \"interfaceReferenceList\":\n case \"objectTypeReference\":\n case \"mediaReference\":\n case \"mediaReferenceList\":\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"dropdown\", dropdown: {} };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type ${type}`);\n }\n}\n\nexport function extractNamespace(apiName: string): string {\n return apiName.substring(0, apiName.lastIndexOf(\".\") + 1);\n}\n\nexport function withoutNamespace(apiName: string): string {\n const lastDot = apiName.lastIndexOf(\".\");\n if (lastDot === -1) {\n return apiName;\n }\n return apiName.substring(lastDot + 1);\n}\n\nfunction camel(str: string): string {\n if (!str) {\n return str;\n }\n let result = str.replace(/[-_]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n result = result.charAt(0).toLowerCase() + result.slice(1);\n return result;\n}\n\n/**\n * Gets the TypeScript type name corresponding to an OntologyEntityTypeEnum value\n */\nfunction getEntityTypeName(type: string): string {\n return {\n [OntologyEntityTypeEnum.OBJECT_TYPE]: \"ObjectType\",\n [OntologyEntityTypeEnum.LINK_TYPE]: \"LinkType\",\n [OntologyEntityTypeEnum.INTERFACE_TYPE]: \"InterfaceType\",\n [OntologyEntityTypeEnum.SHARED_PROPERTY_TYPE]: \"SharedPropertyType\",\n [OntologyEntityTypeEnum.ACTION_TYPE]: \"ActionType\",\n [OntologyEntityTypeEnum.VALUE_TYPE]: \"ValueTypeDefinitionVersion\",\n }[type]!;\n}\n\nfunction writeDependencyFile(dependencyFile: string): void {\n fs.writeFileSync(dependencyFile, JSON.stringify(dependencies, null, 2));\n}\n\nfunction dependencyInjectionString(): string {\n const namespaceNoDot: string = namespace.endsWith(\".\")\n ? namespace.slice(0, -1)\n : namespace;\n\n return `import { addDependency } from \"@osdk/maker\";\n// @ts-ignore\naddDependency(\"${namespaceNoDot}\", new URL(import.meta.url).pathname);\n`;\n}\n\nexport function addNamespaceIfNone(apiName: string): string {\n return apiName.includes(\".\") ? apiName : namespace + apiName;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@
16
16
 
17
17
  import invariant from "tiny-invariant";
18
18
  import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
19
- import { namespace, updateOntology } from "./defineOntology.js";
19
+ import { namespace, ontologyDefinition, updateOntology } from "./defineOntology.js";
20
20
  function convertValueTypeTypeToBaseType(valueType) {
21
21
  if (typeof valueType === "string") {}
22
22
  switch (true) {
@@ -63,13 +63,18 @@ function convertValueTypeTypeToBaseType(valueType) {
63
63
  }
64
64
  export function defineValueType(valueTypeDef) {
65
65
  const {
66
- apiName,
66
+ apiName: inputApiName,
67
67
  displayName,
68
68
  description,
69
69
  type,
70
- version
70
+ version,
71
+ namespacePrefix
71
72
  } = valueTypeDef;
73
+ const apiName = namespacePrefix ? namespace + inputApiName : inputApiName;
72
74
  !/^((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)$/.test(version) ? process.env.NODE_ENV !== "production" ? invariant(false, "Version is not a valid semver") : invariant(false) : void 0;
75
+ const existingVersions = ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][apiName] ?? [];
76
+ const duplicateVersion = existingVersions.find(vt => vt.version === version);
77
+ !(duplicateVersion === undefined) ? process.env.NODE_ENV !== "production" ? invariant(false, `Value type with apiName ${apiName} and version ${version} is already defined`) : invariant(false) : void 0;
73
78
  const typeName = typeof type.type === "string" ? type.type : type.type.type === "struct" ? "structV2" : type.type.type;
74
79
  // These suck but TS doesn't understand the relationship from the key of the base type to the type string
75
80
  const constraints = type.constraints ? type.constraints.map(constraint => {
@@ -92,10 +97,7 @@ export function defineValueType(valueTypeDef) {
92
97
  displayName: displayName,
93
98
  description: description ?? ""
94
99
  },
95
- status: {
96
- type: "active",
97
- active: {}
98
- },
100
+ status: convertUserValueTypeStatusToValueTypeStatus(valueTypeDef.status),
99
101
  version: version,
100
102
  baseType: baseType,
101
103
  constraints: constraints,
@@ -105,4 +107,20 @@ export function defineValueType(valueTypeDef) {
105
107
  updateOntology(vt);
106
108
  return vt;
107
109
  }
110
+ export function convertUserValueTypeStatusToValueTypeStatus(status) {
111
+ if (typeof status === "object" && status.type === "deprecated") {
112
+ return {
113
+ type: "deprecated",
114
+ deprecated: {
115
+ message: status.message,
116
+ deadline: status.deadline,
117
+ replacedBy: status.replacedBy
118
+ }
119
+ };
120
+ }
121
+ return {
122
+ type: "active",
123
+ active: {}
124
+ };
125
+ }
108
126
  //# sourceMappingURL=defineValueType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defineValueType.js","names":["invariant","OntologyEntityTypeEnum","namespace","updateOntology","convertValueTypeTypeToBaseType","valueType","type","array","elementType","structV2","fields","map","field","identifier","baseType","keyType","optional","wrappedType","Error","defineValueType","valueTypeDef","apiName","displayName","description","version","test","process","env","NODE_ENV","typeName","constraints","constraint","output","failureMessage","vt","packageNamespace","substring","length","displayMetadata","status","active","exampleValues","__type","VALUE_TYPE"],"sources":["defineValueType.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n BaseType,\n DataConstraint,\n DataConstraintWrapper,\n FailureMessage,\n ValueTypeDataConstraint,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { namespace, updateOntology } from \"./defineOntology.js\";\nimport { type ValueTypeDefinitionVersion } from \"./values/ValueTypeDefinitionVersion.js\";\nimport { type ValueTypeType } from \"./values/ValueTypeType.js\";\n\ntype ZipBaseAndConstraint<Base, Constraint> = {\n [PropertyType in (BaseType[\"type\"] & DataConstraint[\"type\"])]: Base extends\n { type: PropertyType } ? {\n baseType: Omit<Base, \"type\">;\n constraints?: Constraint extends { type: PropertyType } ? {\n constraint: Omit<Constraint, \"type\">;\n failureMessage?: FailureMessage;\n }[]\n : undefined;\n }\n : never;\n};\n\ntype MappedZip = ZipBaseAndConstraint<BaseType, DataConstraint>;\n\ntype TypeNames = ValueTypeType[\"type\"];\n\ntype ValueTypeDefinitionBacking = {\n [Type in ValueTypeType[\"type\"] & DataConstraint[\"type\"]]: {\n baseType: { \"type\": Extract<ValueTypeType, { type: Type }>[\"value\"] } & {\n constraints: {\n constraint: Extract<\n DataConstraint,\n { type: Type }\n >[keyof Omit<Extract<DataConstraint, { type: Type }>, \"type\">];\n failureMessage?: FailureMessage;\n }[];\n };\n };\n};\n\ntype NewValueTypeDefinitionBacking = {\n [Type in ValueTypeType as Type[\"type\"]]: {\n type: Type[\"value\"];\n constraints?: Type[\"constraints\"];\n };\n};\ntype NewValueTypeDefinition =\n NewValueTypeDefinitionBacking[keyof NewValueTypeDefinitionBacking];\n\nfunction convertValueTypeTypeToBaseType(\n valueType: ValueTypeType[\"value\"],\n): BaseType {\n if (typeof valueType === \"string\") {\n }\n switch (true) {\n case (typeof valueType === \"object\" && valueType.type === \"array\"):\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"struct\"):\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType),\n })),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"map\"):\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"optional\"):\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType),\n },\n };\n case (typeof valueType === \"string\"):\n return { type: valueType, [valueType]: {} } as any;\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\n\nexport type ValueTypeDefinition = {\n apiName: string;\n displayName: string;\n description?: string;\n type: NewValueTypeDefinition;\n version: string;\n};\n\nexport function defineValueType(\n valueTypeDef: ValueTypeDefinition,\n): ValueTypeDefinitionVersion {\n const { apiName, displayName, description, type, version } = valueTypeDef;\n const semverValidation =\n /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n invariant(semverValidation.test(version), \"Version is not a valid semver\");\n\n const typeName: TypeNames = typeof type.type === \"string\"\n ? type.type\n : type.type.type === \"struct\"\n ? \"structV2\"\n : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints\n ? type.constraints.map<ValueTypeDataConstraint>(constraint => {\n const output: any = {\n constraint: { type: typeName, [typeName]: constraint.constraint },\n failureMessage: constraint.failureMessage,\n };\n return { constraint: output as DataConstraintWrapper };\n })\n : [];\n\n const baseType: BaseType = convertValueTypeTypeToBaseType(type.type);\n\n const vt: ValueTypeDefinitionVersion = {\n apiName,\n packageNamespace: namespace.substring(0, namespace.length - 1),\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\",\n },\n status: { type: \"active\", active: {} },\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: [],\n __type: OntologyEntityTypeEnum.VALUE_TYPE,\n };\n updateOntology(vt);\n return vt;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defineValueType.js","names":["invariant","OntologyEntityTypeEnum","namespace","ontologyDefinition","updateOntology","convertValueTypeTypeToBaseType","valueType","type","array","elementType","structV2","fields","map","field","identifier","baseType","keyType","optional","wrappedType","Error","defineValueType","valueTypeDef","apiName","inputApiName","displayName","description","version","namespacePrefix","test","process","env","NODE_ENV","existingVersions","VALUE_TYPE","duplicateVersion","find","vt","undefined","typeName","constraints","constraint","output","failureMessage","packageNamespace","substring","length","displayMetadata","status","convertUserValueTypeStatusToValueTypeStatus","exampleValues","__type","deprecated","message","deadline","replacedBy","active"],"sources":["defineValueType.ts"],"sourcesContent":["/*\n * Copyright 2024 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 {\n BaseType,\n DataConstraint,\n DataConstraintWrapper,\n FailureMessage,\n ValueTypeDataConstraint,\n ValueTypeRid,\n ValueTypeStatus,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport {\n namespace,\n ontologyDefinition,\n updateOntology,\n} from \"./defineOntology.js\";\nimport { type ValueTypeDefinitionVersion } from \"./values/ValueTypeDefinitionVersion.js\";\nimport { type ValueTypeType } from \"./values/ValueTypeType.js\";\n\ntype ZipBaseAndConstraint<Base, Constraint> = {\n [PropertyType in (BaseType[\"type\"] & DataConstraint[\"type\"])]: Base extends\n { type: PropertyType } ? {\n baseType: Omit<Base, \"type\">;\n constraints?: Constraint extends { type: PropertyType } ? {\n constraint: Omit<Constraint, \"type\">;\n failureMessage?: FailureMessage;\n }[]\n : undefined;\n }\n : never;\n};\n\ntype MappedZip = ZipBaseAndConstraint<BaseType, DataConstraint>;\n\ntype TypeNames = ValueTypeType[\"type\"];\n\ntype ValueTypeDefinitionBacking = {\n [Type in ValueTypeType[\"type\"] & DataConstraint[\"type\"]]: {\n baseType: { \"type\": Extract<ValueTypeType, { type: Type }>[\"value\"] } & {\n constraints: {\n constraint: Extract<\n DataConstraint,\n { type: Type }\n >[keyof Omit<Extract<DataConstraint, { type: Type }>, \"type\">];\n failureMessage?: FailureMessage;\n }[];\n };\n };\n};\n\ntype NewValueTypeDefinitionBacking = {\n [Type in ValueTypeType as Type[\"type\"]]: {\n type: Type[\"value\"];\n constraints?: Type[\"constraints\"];\n };\n};\ntype NewValueTypeDefinition =\n NewValueTypeDefinitionBacking[keyof NewValueTypeDefinitionBacking];\n\nfunction convertValueTypeTypeToBaseType(\n valueType: ValueTypeType[\"value\"],\n): BaseType {\n if (typeof valueType === \"string\") {\n }\n switch (true) {\n case (typeof valueType === \"object\" && valueType.type === \"array\"):\n return {\n type: \"array\",\n array: {\n elementType: convertValueTypeTypeToBaseType(valueType.elementType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"struct\"):\n return {\n type: \"structV2\",\n structV2: {\n fields: valueType.fields.map(field => ({\n identifier: field.identifier,\n baseType: convertValueTypeTypeToBaseType(field.baseType),\n })),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"map\"):\n return {\n type: \"map\",\n map: {\n keyType: convertValueTypeTypeToBaseType(valueType.keyType),\n valueType: convertValueTypeTypeToBaseType(valueType.valueType),\n },\n };\n case (typeof valueType === \"object\" && valueType.type === \"optional\"):\n return {\n type: \"optional\",\n optional: {\n wrappedType: convertValueTypeTypeToBaseType(valueType.wrappedType),\n },\n };\n case (typeof valueType === \"string\"):\n return { type: valueType, [valueType]: {} } as any;\n default:\n throw new Error(\"Invalid ValueTypeType\");\n }\n}\n\nexport type ValueTypeDefinition = {\n apiName: string;\n displayName: string;\n description?: string;\n type: NewValueTypeDefinition;\n version: string;\n status?: UserValueTypeStatus;\n namespacePrefix?: boolean;\n};\n\nexport type UserValueTypeStatus = \"active\" | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n replacedBy?: ValueTypeRid;\n};\n\nexport function defineValueType(\n valueTypeDef: ValueTypeDefinition,\n): ValueTypeDefinitionVersion {\n const {\n apiName: inputApiName,\n displayName,\n description,\n type,\n version,\n namespacePrefix,\n } = valueTypeDef;\n const apiName = namespacePrefix ? namespace + inputApiName : inputApiName;\n const semverValidation =\n /^((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)$/;\n invariant(semverValidation.test(version), \"Version is not a valid semver\");\n\n const existingVersions =\n ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][apiName] ?? [];\n const duplicateVersion = existingVersions.find(vt => vt.version === version);\n invariant(\n duplicateVersion === undefined,\n `Value type with apiName ${apiName} and version ${version} is already defined`,\n );\n\n const typeName: TypeNames = typeof type.type === \"string\"\n ? type.type\n : type.type.type === \"struct\"\n ? \"structV2\"\n : type.type.type;\n // These suck but TS doesn't understand the relationship from the key of the base type to the type string\n const constraints = type.constraints\n ? type.constraints.map<ValueTypeDataConstraint>(constraint => {\n const output: any = {\n constraint: { type: typeName, [typeName]: constraint.constraint },\n failureMessage: constraint.failureMessage,\n };\n return { constraint: output as DataConstraintWrapper };\n })\n : [];\n\n const baseType: BaseType = convertValueTypeTypeToBaseType(type.type);\n\n const vt: ValueTypeDefinitionVersion = {\n apiName,\n packageNamespace: namespace.substring(0, namespace.length - 1),\n displayMetadata: {\n displayName: displayName,\n description: description ?? \"\",\n },\n status: convertUserValueTypeStatusToValueTypeStatus(valueTypeDef.status),\n version: version,\n baseType: baseType,\n constraints: constraints,\n exampleValues: [],\n __type: OntologyEntityTypeEnum.VALUE_TYPE,\n };\n updateOntology(vt);\n return vt;\n}\n\nexport function convertUserValueTypeStatusToValueTypeStatus(\n status: UserValueTypeStatus | undefined,\n): ValueTypeStatus {\n if (typeof status === \"object\" && status.type === \"deprecated\") {\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: status.replacedBy,\n },\n };\n }\n return { type: \"active\", active: {} };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,11 @@ export function mapSimplifiedStatusToInterfaceTypeStatus(status) {
35
35
  type: "experimental",
36
36
  experimental: {}
37
37
  };
38
+ case "example":
39
+ return {
40
+ type: "example",
41
+ example: {}
42
+ };
38
43
  default:
39
44
  throw new Error(`Invalid status type: ${status.type}`);
40
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mapSimplifiedStatusToInterfaceTypeStatus.js","names":["mapSimplifiedStatusToInterfaceTypeStatus","status","type","deprecated","message","deadline","replacedBy","undefined","active","experimental","Error"],"sources":["mapSimplifiedStatusToInterfaceTypeStatus.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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport type { SimplifiedInterfaceTypeStatus } from \"../defineInterface.js\";\n\nexport function mapSimplifiedStatusToInterfaceTypeStatus(\n status: SimplifiedInterfaceTypeStatus,\n): InterfaceTypeStatus {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n case \"active\":\n return {\n type: \"active\",\n active: {},\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {},\n };\n default:\n throw new Error(`Invalid status type: ${(status as any).type}`);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,wCAAwCA,CACtDC,MAAqC,EAChB;EACrB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,YAAY;MACf,OAAO;QACLA,IAAI,EAAE,YAAY;QAClBC,UAAU,EAAE;UACVC,OAAO,EAAEH,MAAM,CAACG,OAAO;UACvBC,QAAQ,EAAEJ,MAAM,CAACI,QAAQ;UACzBC,UAAU,EAAEC;QACd;MACF,CAAC;IACH,KAAK,QAAQ;MACX,OAAO;QACLL,IAAI,EAAE,QAAQ;QACdM,MAAM,EAAE,CAAC;MACX,CAAC;IACH,KAAK,cAAc;MACjB,OAAO;QACLN,IAAI,EAAE,cAAc;QACpBO,YAAY,EAAE,CAAC;MACjB,CAAC;IACH;MACE,MAAM,IAAIC,KAAK,CAAC,wBAAyBT,MAAM,CAASC,IAAI,EAAE,CAAC;EACnE;AACF","ignoreList":[]}
1
+ {"version":3,"file":"mapSimplifiedStatusToInterfaceTypeStatus.js","names":["mapSimplifiedStatusToInterfaceTypeStatus","status","type","deprecated","message","deadline","replacedBy","undefined","active","experimental","example","Error"],"sources":["mapSimplifiedStatusToInterfaceTypeStatus.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 { InterfaceTypeStatus } from \"@osdk/client.unstable\";\nimport type { SimplifiedInterfaceTypeStatus } from \"../defineInterface.js\";\n\nexport function mapSimplifiedStatusToInterfaceTypeStatus(\n status: SimplifiedInterfaceTypeStatus,\n): InterfaceTypeStatus {\n switch (status.type) {\n case \"deprecated\":\n return {\n type: \"deprecated\",\n deprecated: {\n message: status.message,\n deadline: status.deadline,\n replacedBy: undefined,\n },\n };\n case \"active\":\n return {\n type: \"active\",\n active: {},\n };\n case \"experimental\":\n return {\n type: \"experimental\",\n experimental: {},\n };\n case \"example\":\n return {\n type: \"example\",\n example: {},\n };\n default:\n throw new Error(`Invalid status type: ${(status as any).type}`);\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,wCAAwCA,CACtDC,MAAqC,EAChB;EACrB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,YAAY;MACf,OAAO;QACLA,IAAI,EAAE,YAAY;QAClBC,UAAU,EAAE;UACVC,OAAO,EAAEH,MAAM,CAACG,OAAO;UACvBC,QAAQ,EAAEJ,MAAM,CAACI,QAAQ;UACzBC,UAAU,EAAEC;QACd;MACF,CAAC;IACH,KAAK,QAAQ;MACX,OAAO;QACLL,IAAI,EAAE,QAAQ;QACdM,MAAM,EAAE,CAAC;MACX,CAAC;IACH,KAAK,cAAc;MACjB,OAAO;QACLN,IAAI,EAAE,cAAc;QACpBO,YAAY,EAAE,CAAC;MACjB,CAAC;IACH,KAAK,SAAS;MACZ,OAAO;QACLP,IAAI,EAAE,SAAS;QACfQ,OAAO,EAAE,CAAC;MACZ,CAAC;IACH;MACE,MAAM,IAAIC,KAAK,CAAC,wBAAyBV,MAAM,CAASC,IAAI,EAAE,CAAC;EACnE;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkType.js","names":[],"sources":["LinkType.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 {\n LinkTypeDisplayMetadata,\n LinkTypeMetadata,\n OntologyIrLinkTypeStatus,\n Visibility,\n} from \"@osdk/client.unstable\";\nimport type { OptionalFields } from \"../../util/OptionalFields.js\";\nimport type { RequiredFields } from \"../../util/RequiredFields.js\";\nimport type { OntologyEntityBase } from \"../common/OntologyEntityBase.js\";\nimport type { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { ObjectTypeDefinition } from \"../object/ObjectTypeDefinition.js\";\n\nexport type LinkType =\n | (OntologyEntityBase & OneToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & IntermediaryLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n });\n\nexport type LinkTypeDefinition =\n | Omit<\n OntologyEntityBase & OneToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & IntermediaryLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >;\n\nexport type ObjectTypePropertyApiName = string;\n\nexport interface OneToManyLinkTypeDefinition {\n apiName: string;\n one: OneToManyObjectLinkReference;\n toMany: OneToManyObjectLinkReference;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality: \"OneToMany\" | \"OneToOne\" | undefined;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface OneToManyObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n}\n\nexport interface OneToManyLinkTypeUserDefinition {\n apiName: string;\n one: OneToManyObjectLinkReferenceUserDefinition;\n toMany: OneToManyObjectLinkReferenceUserDefinition;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality?: \"OneToMany\" | \"OneToOne\" | undefined;\n}\n\nexport interface OneToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface ManyToManyLinkTypeDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReference;\n toMany: ManyToManyObjectLinkReference;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface ManyToManyObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n}\n\nexport interface ManyToManyLinkTypeUserDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReferenceUserDefinition;\n toMany: ManyToManyObjectLinkReferenceUserDefinition;\n}\n\nexport interface ManyToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface IntermediaryLinkTypeDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReference;\n toMany: IntermediaryObjectLinkReference;\n intermediaryObjectType: ObjectTypeDefinition;\n editsEnabled?: boolean;\n status?: OntologyIrLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface IntermediaryObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n linkToIntermediary: LinkType;\n}\n\nexport interface IntermediaryLinkTypeUserDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReferenceUserDefinition;\n toMany: IntermediaryObjectLinkReferenceUserDefinition;\n intermediaryObjectType: ObjectTypeDefinition | string;\n}\n\nexport interface IntermediaryObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n linkToIntermediary: LinkType;\n}\n\nexport interface LinkTypeMetadataUserDefinition {\n apiName: string;\n displayName?: string;\n pluralDisplayName?: string;\n visibility?: Visibility;\n groupDisplayName?: string;\n}\n\nexport type LinkSideMetadata = OptionalFields<\n RequiredFields<\n Omit<LinkTypeMetadata, \"displayMetadata\"> & LinkTypeDisplayMetadata,\n \"apiName\"\n >,\n \"visibility\" | \"typeClasses\"\n>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"LinkType.js","names":[],"sources":["LinkType.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 {\n LinkTypeDisplayMetadata,\n LinkTypeId,\n LinkTypeMetadata,\n Visibility,\n} from \"@osdk/client.unstable\";\nimport type { OptionalFields } from \"../../util/OptionalFields.js\";\nimport type { RequiredFields } from \"../../util/RequiredFields.js\";\nimport type { OntologyEntityBase } from \"../common/OntologyEntityBase.js\";\nimport type { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { ObjectTypeDefinition } from \"../object/ObjectTypeDefinition.js\";\n\nexport type LinkType =\n | (OntologyEntityBase & OneToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & ManyToManyLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n })\n | (OntologyEntityBase & IntermediaryLinkTypeDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n });\n\nexport type LinkTypeDefinition =\n | Omit<\n OntologyEntityBase & OneToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & ManyToManyLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >\n | Omit<\n OntologyEntityBase & IntermediaryLinkTypeUserDefinition & {\n __type: OntologyEntityTypeEnum.LINK_TYPE;\n },\n \"__type\"\n >;\n\nexport type ObjectTypePropertyApiName = string;\n\nexport interface OneToManyLinkTypeDefinition {\n apiName: string;\n one: OneToManyObjectLinkReference;\n toMany: OneToManyObjectLinkReference;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n cardinality: \"OneToMany\" | \"OneToOne\" | undefined;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface OneToManyObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n}\n\nexport interface OneToManyLinkTypeUserDefinition {\n apiName: string;\n one: OneToManyObjectLinkReferenceUserDefinition;\n toMany: OneToManyObjectLinkReferenceUserDefinition;\n manyForeignKeyProperty: ObjectTypePropertyApiName;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n cardinality?: \"OneToMany\" | \"OneToOne\" | undefined;\n}\n\nexport interface OneToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface ManyToManyLinkTypeDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReference;\n toMany: ManyToManyObjectLinkReference;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface ManyToManyObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n}\n\nexport interface ManyToManyLinkTypeUserDefinition {\n apiName: string;\n many: ManyToManyObjectLinkReferenceUserDefinition;\n toMany: ManyToManyObjectLinkReferenceUserDefinition;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n}\n\nexport interface ManyToManyObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n}\n\nexport interface IntermediaryLinkTypeDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReference;\n toMany: IntermediaryObjectLinkReference;\n intermediaryObjectType: ObjectTypeDefinition;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n redacted?: boolean;\n}\n\nexport interface IntermediaryObjectLinkReference {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadata;\n linkToIntermediary: LinkType;\n}\n\nexport interface IntermediaryLinkTypeUserDefinition {\n apiName: string;\n many: IntermediaryObjectLinkReferenceUserDefinition;\n toMany: IntermediaryObjectLinkReferenceUserDefinition;\n intermediaryObjectType: ObjectTypeDefinition | string;\n editsEnabled?: boolean;\n status?: UserLinkTypeStatus;\n}\n\nexport interface IntermediaryObjectLinkReferenceUserDefinition {\n object: ObjectTypeDefinition | string;\n metadata: LinkTypeMetadataUserDefinition;\n linkToIntermediary: LinkType;\n}\n\nexport interface LinkTypeMetadataUserDefinition {\n apiName: string;\n displayName?: string;\n pluralDisplayName?: string;\n visibility?: Visibility;\n groupDisplayName?: string;\n}\n\nexport type LinkSideMetadata = OptionalFields<\n RequiredFields<\n Omit<LinkTypeMetadata, \"displayMetadata\"> & LinkTypeDisplayMetadata,\n \"apiName\"\n >,\n \"visibility\" | \"typeClasses\"\n>;\n\nexport type UserLinkTypeStatus =\n | \"active\"\n | \"experimental\"\n | \"example\"\n | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n replacedBy?: LinkTypeId;\n };\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectTypeStatus.js","names":[],"sources":["ObjectTypeStatus.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 type ObjectTypeStatus =\n | \"active\"\n | \"experimental\"\n | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n };\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ObjectTypeStatus.js","names":[],"sources":["ObjectTypeStatus.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 type ObjectTypeStatus =\n | \"active\"\n | \"experimental\"\n | \"example\"\n | {\n type: \"deprecated\";\n message: string;\n deadline: string;\n };\n"],"mappings":"","ignoreList":[]}