@osdk/maker 0.15.0-beta.8 → 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 (42) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/browser/api/action/ActionParameterConditionalOverride.js.map +1 -1
  3. package/build/browser/api/defineValueType.js +8 -3
  4. package/build/browser/api/defineValueType.js.map +1 -1
  5. package/build/browser/api/test/actions.test.js +8 -5
  6. package/build/browser/api/test/actions.test.js.map +1 -1
  7. package/build/browser/api/test/misc.test.js +4 -2
  8. package/build/browser/api/test/misc.test.js.map +1 -1
  9. package/build/browser/api/test/objects.test.js +3 -2
  10. package/build/browser/api/test/objects.test.js.map +1 -1
  11. package/build/browser/api/test/valueTypes.test.js +82 -0
  12. package/build/browser/api/test/valueTypes.test.js.map +1 -1
  13. package/build/browser/cli/main.js +1 -1
  14. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
  15. package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  16. package/build/browser/conversion/toMarketplace/convertObject.js +6 -5
  17. package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
  18. package/build/cjs/index.cjs +28 -14
  19. package/build/cjs/index.cjs.map +1 -1
  20. package/build/cjs/index.d.cts +3 -0
  21. package/build/esm/api/action/ActionParameterConditionalOverride.js.map +1 -1
  22. package/build/esm/api/defineValueType.js +8 -3
  23. package/build/esm/api/defineValueType.js.map +1 -1
  24. package/build/esm/api/test/actions.test.js +8 -5
  25. package/build/esm/api/test/actions.test.js.map +1 -1
  26. package/build/esm/api/test/misc.test.js +4 -2
  27. package/build/esm/api/test/misc.test.js.map +1 -1
  28. package/build/esm/api/test/objects.test.js +3 -2
  29. package/build/esm/api/test/objects.test.js.map +1 -1
  30. package/build/esm/api/test/valueTypes.test.js +82 -0
  31. package/build/esm/api/test/valueTypes.test.js.map +1 -1
  32. package/build/esm/cli/main.js +1 -1
  33. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
  34. package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
  35. package/build/esm/conversion/toMarketplace/convertObject.js +6 -5
  36. package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
  37. package/build/types/api/action/ActionParameterConditionalOverride.d.ts +2 -0
  38. package/build/types/api/action/ActionParameterConditionalOverride.d.ts.map +1 -1
  39. package/build/types/api/defineValueType.d.ts +1 -0
  40. package/build/types/api/defineValueType.d.ts.map +1 -1
  41. package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
  42. package/package.json +3 -3
@@ -221,5 +221,87 @@ describe("Value Types", () => {
221
221
  }
222
222
  `);
223
223
  });
224
+ it("Prefixes apiName with namespace when namespacePrefix is true", () => {
225
+ defineValueType({
226
+ apiName: "myValueType",
227
+ displayName: "My Value Type",
228
+ type: {
229
+ type: "string"
230
+ },
231
+ version: "1.0.0",
232
+ namespacePrefix: true
233
+ });
234
+ expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`
235
+ {
236
+ "valueTypes": [
237
+ {
238
+ "metadata": {
239
+ "apiName": "com.palantir.myValueType",
240
+ "displayMetadata": {
241
+ "description": "",
242
+ "displayName": "My Value Type",
243
+ },
244
+ "packageNamespace": "com.palantir",
245
+ "status": {
246
+ "active": {},
247
+ "type": "active",
248
+ },
249
+ },
250
+ "versions": [
251
+ {
252
+ "baseType": {
253
+ "string": {},
254
+ "type": "string",
255
+ },
256
+ "constraints": [],
257
+ "exampleValues": [],
258
+ "version": "1.0.0",
259
+ },
260
+ ],
261
+ },
262
+ ],
263
+ }
264
+ `);
265
+ });
266
+ it("Fails to define duplicate value type with same apiName and version", () => {
267
+ defineValueType({
268
+ apiName: "duplicateTest",
269
+ displayName: "First Value Type",
270
+ type: {
271
+ type: "string"
272
+ },
273
+ version: "1.0.0"
274
+ });
275
+ expect(() => defineValueType({
276
+ apiName: "duplicateTest",
277
+ displayName: "Second Value Type",
278
+ type: {
279
+ type: "boolean"
280
+ },
281
+ version: "1.0.0"
282
+ })).toThrowErrorMatchingInlineSnapshot("[Error: Invariant failed: Value type with apiName duplicateTest and version 1.0.0 is already defined]");
283
+ });
284
+ it("Allows multiple versions of the same value type", () => {
285
+ defineValueType({
286
+ apiName: "multiVersion",
287
+ displayName: "Multi Version Type",
288
+ type: {
289
+ type: "string"
290
+ },
291
+ version: "1.0.0"
292
+ });
293
+ defineValueType({
294
+ apiName: "multiVersion",
295
+ displayName: "Multi Version Type",
296
+ type: {
297
+ type: "string"
298
+ },
299
+ version: "2.0.0"
300
+ });
301
+ const wireType = dumpValueTypeWireType();
302
+ expect(wireType.valueTypes).toHaveLength(1);
303
+ expect(wireType.valueTypes[0].versions).toHaveLength(2);
304
+ expect(wireType.valueTypes[0].versions.map(v => v.version)).toEqual(["1.0.0", "2.0.0"]);
305
+ });
224
306
  });
225
307
  //# sourceMappingURL=valueTypes.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"valueTypes.test.js","names":["beforeEach","describe","expect","it","defineObject","defineOntology","dumpOntologyFullMetadata","dumpValueTypeWireType","defineValueType","apiName","displayName","type","constraints","constraint","version","toThrowErrorMatchingInlineSnapshot","testStringValueType","description","length","minSize","maxSize","failureMessage","message","titlePropertyApiName","pluralDisplayName","primaryKeyPropertyApiName","properties","valueType","ontology","objectPropertyType","objectTypes","objectType","propertyTypes","toEqual","packageNamespace","displayMetadata","dataConstraints","toBeDefined","propertyTypeConstraints","toHaveLength","constraintWrapper","toBe","string","toMatchInlineSnapshot","status","deadline"],"sources":["valueTypes.test.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 { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineObject } from \"../defineObject.js\";\nimport {\n defineOntology,\n dumpOntologyFullMetadata,\n dumpValueTypeWireType,\n} from \"../defineOntology.js\";\nimport { defineValueType } from \"../defineValueType.js\";\n\ndescribe(\"Value Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails to define value type with incorrect semver\", () => {\n expect(() =>\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"not a version\",\n })\n ).toThrowErrorMatchingInlineSnapshot(\n \"[Error: Invariant failed: Version is not a valid semver]\",\n );\n });\n\n it(\"Tests convertProperty function with valueType constraints for string\", () => {\n const testStringValueType = defineValueType({\n apiName: \"stringWithConstraints\",\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n type: {\n \"type\": \"string\",\n constraints: [\n {\n constraint: {\n type: \"length\",\n length: {\n minSize: 5,\n maxSize: 20,\n },\n },\n failureMessage: {\n message: \"String must be between 5 and 20 characters\",\n },\n },\n ],\n },\n version: \"1.0.0\",\n });\n\n const object = defineObject({\n titlePropertyApiName: \"constrainedString\",\n displayName: \"Test Object\",\n pluralDisplayName: \"Test Objects\",\n apiName: \"testObject\",\n primaryKeyPropertyApiName: \"constrainedString\",\n properties: {\n \"constrainedString\": {\n type: \"string\",\n displayName: \"Constrained String\",\n valueType: testStringValueType,\n },\n },\n });\n\n const ontology = dumpOntologyFullMetadata();\n const objectPropertyType =\n ontology.ontology.objectTypes[\"com.palantir.testObject\"]\n .objectType.propertyTypes[\"constrainedString\"];\n\n expect(objectPropertyType.valueType).toEqual({\n apiName: \"stringWithConstraints\",\n version: \"1.0.0\",\n packageNamespace: \"com.palantir\",\n displayMetadata: {\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n },\n });\n\n expect(objectPropertyType.dataConstraints).toBeDefined();\n expect(objectPropertyType.dataConstraints?.propertyTypeConstraints)\n .toHaveLength(1);\n\n const constraintWrapper = objectPropertyType.dataConstraints\n ?.propertyTypeConstraints[0];\n expect(constraintWrapper?.constraints?.type).toBe(\"string\");\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.minSize,\n ).toBe(5);\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.maxSize,\n ).toBe(20);\n expect(constraintWrapper?.failureMessage?.message).toBe(\n \"String must be between 5 and 20 characters\",\n );\n });\n\n it(\"Correctly serializes a value type\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n it(\"Correctly sets a status\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n status: {\n type: \"deprecated\",\n deadline: \"2026-01-01\",\n message: \"This value type is deprecated\",\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"deprecated\": {\n \"deadline\": \"2026-01-01\",\n \"message\": \"This value type is deprecated\",\n \"replacedBy\": undefined,\n },\n \"type\": \"deprecated\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n});\n"],"mappings":"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SAAS;MAClBC,WAAW,EAAE,aAAa;MAC1BC,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS;QACjBC,WAAW,EAAE,CAAC;UAAEC,UAAU,EAAE;YAAE,eAAe,EAAE,CAAC,YAAY;UAAE;QAAE,CAAC;MACnE,CAAC;MACDC,OAAO,EAAE;IACX,CAAC,CAAC;IACFZ,MAAM,CAACK,qBAAqB,CAAC,CAAC,CAAC,CAACoC,qBAAqB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EACFxC,EAAE,CAAC,yBAAyB,EAAE,MAAM;IAClCK,eAAe,CAAC;MACdC,OAAO,EAAE,SAAS;MAClBC,WAAW,EAAE,aAAa;MAC1BC,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS;QACjBC,WAAW,EAAE,CAAC;UAAEC,UAAU,EAAE;YAAE,eAAe,EAAE,CAAC,YAAY;UAAE;QAAE,CAAC;MACnE,CAAC;MACD+B,MAAM,EAAE;QACNjC,IAAI,EAAE,YAAY;QAClBkC,QAAQ,EAAE,YAAY;QACtBvB,OAAO,EAAE;MACX,CAAC;MACDR,OAAO,EAAE;IACX,CAAC,CAAC;IACFZ,MAAM,CAACK,qBAAqB,CAAC,CAAC,CAAC,CAACoC,qBAAqB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"valueTypes.test.js","names":["beforeEach","describe","expect","it","defineObject","defineOntology","dumpOntologyFullMetadata","dumpValueTypeWireType","defineValueType","apiName","displayName","type","constraints","constraint","version","toThrowErrorMatchingInlineSnapshot","testStringValueType","description","length","minSize","maxSize","failureMessage","message","titlePropertyApiName","pluralDisplayName","primaryKeyPropertyApiName","properties","valueType","ontology","objectPropertyType","objectTypes","objectType","propertyTypes","toEqual","packageNamespace","displayMetadata","dataConstraints","toBeDefined","propertyTypeConstraints","toHaveLength","constraintWrapper","toBe","string","toMatchInlineSnapshot","status","deadline","namespacePrefix","wireType","valueTypes","versions","map","v"],"sources":["valueTypes.test.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 { beforeEach, describe, expect, it } from \"vitest\";\nimport { defineObject } from \"../defineObject.js\";\nimport {\n defineOntology,\n dumpOntologyFullMetadata,\n dumpValueTypeWireType,\n} from \"../defineOntology.js\";\nimport { defineValueType } from \"../defineValueType.js\";\n\ndescribe(\"Value Types\", () => {\n beforeEach(async () => {\n await defineOntology(\"com.palantir.\", () => {}, \"/tmp/\");\n });\n\n it(\"Fails to define value type with incorrect semver\", () => {\n expect(() =>\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"not a version\",\n })\n ).toThrowErrorMatchingInlineSnapshot(\n \"[Error: Invariant failed: Version is not a valid semver]\",\n );\n });\n\n it(\"Tests convertProperty function with valueType constraints for string\", () => {\n const testStringValueType = defineValueType({\n apiName: \"stringWithConstraints\",\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n type: {\n \"type\": \"string\",\n constraints: [\n {\n constraint: {\n type: \"length\",\n length: {\n minSize: 5,\n maxSize: 20,\n },\n },\n failureMessage: {\n message: \"String must be between 5 and 20 characters\",\n },\n },\n ],\n },\n version: \"1.0.0\",\n });\n\n const object = defineObject({\n titlePropertyApiName: \"constrainedString\",\n displayName: \"Test Object\",\n pluralDisplayName: \"Test Objects\",\n apiName: \"testObject\",\n primaryKeyPropertyApiName: \"constrainedString\",\n properties: {\n \"constrainedString\": {\n type: \"string\",\n displayName: \"Constrained String\",\n valueType: testStringValueType,\n },\n },\n });\n\n const ontology = dumpOntologyFullMetadata();\n const objectPropertyType =\n ontology.ontology.objectTypes[\"com.palantir.testObject\"]\n .objectType.propertyTypes[\"constrainedString\"];\n\n expect(objectPropertyType.valueType).toEqual({\n apiName: \"stringWithConstraints\",\n version: \"1.0.0\",\n packageNamespace: \"com.palantir\",\n displayMetadata: {\n displayName: \"String With Constraints\",\n description: \"A string type with additional constraints\",\n },\n });\n\n expect(objectPropertyType.dataConstraints).toBeDefined();\n expect(objectPropertyType.dataConstraints?.propertyTypeConstraints)\n .toHaveLength(1);\n\n const constraintWrapper = objectPropertyType.dataConstraints\n ?.propertyTypeConstraints[0];\n expect(constraintWrapper?.constraints?.type).toBe(\"string\");\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.minSize,\n ).toBe(5);\n expect(\n (constraintWrapper?.constraints as {\n type: \"string\";\n string: { length: { minSize: number; maxSize: number } };\n }).string.length.maxSize,\n ).toBe(20);\n expect(constraintWrapper?.failureMessage?.message).toBe(\n \"String must be between 5 and 20 characters\",\n );\n });\n\n it(\"Correctly serializes a value type\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n it(\"Correctly sets a status\", () => {\n defineValueType({\n apiName: \"apiName\",\n displayName: \"displayName\",\n type: {\n \"type\": \"boolean\",\n constraints: [{ constraint: { \"allowedValues\": [\"TRUE_VALUE\"] } }],\n },\n status: {\n type: \"deprecated\",\n deadline: \"2026-01-01\",\n message: \"This value type is deprecated\",\n },\n version: \"0.1.0\",\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"apiName\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"displayName\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"deprecated\": {\n \"deadline\": \"2026-01-01\",\n \"message\": \"This value type is deprecated\",\n \"replacedBy\": undefined,\n },\n \"type\": \"deprecated\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"boolean\": {},\n \"type\": \"boolean\",\n },\n \"constraints\": [\n {\n \"constraint\": {\n \"constraint\": {\n \"boolean\": {\n \"allowedValues\": [\n \"TRUE_VALUE\",\n ],\n },\n \"type\": \"boolean\",\n },\n \"failureMessage\": undefined,\n },\n },\n ],\n \"exampleValues\": [],\n \"version\": \"0.1.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n\n it(\"Prefixes apiName with namespace when namespacePrefix is true\", () => {\n defineValueType({\n apiName: \"myValueType\",\n displayName: \"My Value Type\",\n type: {\n type: \"string\",\n },\n version: \"1.0.0\",\n namespacePrefix: true,\n });\n expect(dumpValueTypeWireType()).toMatchInlineSnapshot(`\n {\n \"valueTypes\": [\n {\n \"metadata\": {\n \"apiName\": \"com.palantir.myValueType\",\n \"displayMetadata\": {\n \"description\": \"\",\n \"displayName\": \"My Value Type\",\n },\n \"packageNamespace\": \"com.palantir\",\n \"status\": {\n \"active\": {},\n \"type\": \"active\",\n },\n },\n \"versions\": [\n {\n \"baseType\": {\n \"string\": {},\n \"type\": \"string\",\n },\n \"constraints\": [],\n \"exampleValues\": [],\n \"version\": \"1.0.0\",\n },\n ],\n },\n ],\n }\n `);\n });\n\n it(\"Fails to define duplicate value type with same apiName and version\", () => {\n defineValueType({\n apiName: \"duplicateTest\",\n displayName: \"First Value Type\",\n type: {\n type: \"string\",\n },\n version: \"1.0.0\",\n });\n\n expect(() =>\n defineValueType({\n apiName: \"duplicateTest\",\n displayName: \"Second Value Type\",\n type: {\n type: \"boolean\",\n },\n version: \"1.0.0\",\n })\n ).toThrowErrorMatchingInlineSnapshot(\n \"[Error: Invariant failed: Value type with apiName duplicateTest and version 1.0.0 is already defined]\",\n );\n });\n\n it(\"Allows multiple versions of the same value type\", () => {\n defineValueType({\n apiName: \"multiVersion\",\n displayName: \"Multi Version Type\",\n type: {\n type: \"string\",\n },\n version: \"1.0.0\",\n });\n\n defineValueType({\n apiName: \"multiVersion\",\n displayName: \"Multi Version Type\",\n type: {\n type: \"string\",\n },\n version: \"2.0.0\",\n });\n\n const wireType = dumpValueTypeWireType();\n expect(wireType.valueTypes).toHaveLength(1);\n expect(wireType.valueTypes[0].versions).toHaveLength(2);\n expect(wireType.valueTypes[0].versions.map(v => v.version)).toEqual([\n \"1.0.0\",\n \"2.0.0\",\n ]);\n });\n});\n"],"mappings":"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SAAS;MAClBC,WAAW,EAAE,aAAa;MAC1BC,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS;QACjBC,WAAW,EAAE,CAAC;UAAEC,UAAU,EAAE;YAAE,eAAe,EAAE,CAAC,YAAY;UAAE;QAAE,CAAC;MACnE,CAAC;MACDC,OAAO,EAAE;IACX,CAAC,CAAC;IACFZ,MAAM,CAACK,qBAAqB,CAAC,CAAC,CAAC,CAACoC,qBAAqB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;EACN,CAAC,CAAC;EACFxC,EAAE,CAAC,yBAAyB,EAAE,MAAM;IAClCK,eAAe,CAAC;MACdC,OAAO,EAAE,SAAS;MAClBC,WAAW,EAAE,aAAa;MAC1BC,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS;QACjBC,WAAW,EAAE,CAAC;UAAEC,UAAU,EAAE;YAAE,eAAe,EAAE,CAAC,YAAY;UAAE;QAAE,CAAC;MACnE,CAAC;MACD+B,MAAM,EAAE;QACNjC,IAAI,EAAE,YAAY;QAClBkC,QAAQ,EAAE,YAAY;QACtBvB,OAAO,EAAE;MACX,CAAC;MACDR,OAAO,EAAE;IACX,CAAC,CAAC;IACFZ,MAAM,CAACK,qBAAqB,CAAC,CAAC,CAAC,CAACoC,qBAAqB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFxC,EAAE,CAAC,8DAA8D,EAAE,MAAM;IACvEK,eAAe,CAAC;MACdC,OAAO,EAAE,aAAa;MACtBC,WAAW,EAAE,eAAe;MAC5BC,IAAI,EAAE;QACJA,IAAI,EAAE;MACR,CAAC;MACDG,OAAO,EAAE,OAAO;MAChBgC,eAAe,EAAE;IACnB,CAAC,CAAC;IACF5C,MAAM,CAACK,qBAAqB,CAAC,CAAC,CAAC,CAACoC,qBAAqB,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFxC,EAAE,CAAC,oEAAoE,EAAE,MAAM;IAC7EK,eAAe,CAAC;MACdC,OAAO,EAAE,eAAe;MACxBC,WAAW,EAAE,kBAAkB;MAC/BC,IAAI,EAAE;QACJA,IAAI,EAAE;MACR,CAAC;MACDG,OAAO,EAAE;IACX,CAAC,CAAC;IAEFZ,MAAM,CAAC,MACLM,eAAe,CAAC;MACdC,OAAO,EAAE,eAAe;MACxBC,WAAW,EAAE,mBAAmB;MAChCC,IAAI,EAAE;QACJA,IAAI,EAAE;MACR,CAAC;MACDG,OAAO,EAAE;IACX,CAAC,CACH,CAAC,CAACC,kCAAkC,CAClC,uGACF,CAAC;EACH,CAAC,CAAC;EAEFZ,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1DK,eAAe,CAAC;MACdC,OAAO,EAAE,cAAc;MACvBC,WAAW,EAAE,oBAAoB;MACjCC,IAAI,EAAE;QACJA,IAAI,EAAE;MACR,CAAC;MACDG,OAAO,EAAE;IACX,CAAC,CAAC;IAEFN,eAAe,CAAC;MACdC,OAAO,EAAE,cAAc;MACvBC,WAAW,EAAE,oBAAoB;MACjCC,IAAI,EAAE;QACJA,IAAI,EAAE;MACR,CAAC;MACDG,OAAO,EAAE;IACX,CAAC,CAAC;IAEF,MAAMiC,QAAQ,GAAGxC,qBAAqB,CAAC,CAAC;IACxCL,MAAM,CAAC6C,QAAQ,CAACC,UAAU,CAAC,CAACT,YAAY,CAAC,CAAC,CAAC;IAC3CrC,MAAM,CAAC6C,QAAQ,CAACC,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAACV,YAAY,CAAC,CAAC,CAAC;IACvDrC,MAAM,CAAC6C,QAAQ,CAACC,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACrC,OAAO,CAAC,CAAC,CAACmB,OAAO,CAAC,CAClE,OAAO,EACP,OAAO,CACR,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -24,7 +24,7 @@ import { defineOntology } from "../api/defineOntology.js";
24
24
  const apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
25
25
  const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
26
26
  export default async function main(args = process.argv) {
27
- const commandLineOpts = await yargs(hideBin(args)).version("0.15.0-beta.8" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
27
+ const commandLineOpts = await yargs(hideBin(args)).version("0.15.0-beta.9" ?? "").wrap(Math.min(150, yargs().terminalWidth())).strict().help().options({
28
28
  input: {
29
29
  alias: "i",
30
30
  describe: "Input file",
@@ -34,29 +34,37 @@ export function convertActionParameterConditionalOverride(override, validation,
34
34
  };
35
35
  break;
36
36
  case "visibility":
37
+ let overrideType = override.then ?? (validation.defaultVisibility === "editable" ? "hidden" : "editable");
37
38
  parameterBlockOverride = {
38
39
  type: "visibility",
39
40
  visibility: {
40
- visibility: validation.defaultVisibility === "editable" ? {
41
+ visibility: overrideType === "editable" ? {
42
+ type: "editable",
43
+ editable: {}
44
+ } : overrideType === "hidden" ? {
41
45
  type: "hidden",
42
46
  hidden: {}
43
47
  } : {
44
- type: "editable",
45
- editable: {}
48
+ type: "disabled",
49
+ disabled: {}
46
50
  }
47
51
  }
48
52
  };
49
53
  break;
50
54
  case "disabled":
55
+ overrideType = override.then ?? (validation.defaultVisibility === "editable" ? "disabled" : "editable");
51
56
  parameterBlockOverride = {
52
57
  type: "visibility",
53
58
  visibility: {
54
- visibility: validation.defaultVisibility === "editable" ? {
55
- type: "disabled",
56
- disabled: {}
57
- } : {
59
+ visibility: overrideType === "editable" ? {
58
60
  type: "editable",
59
61
  editable: {}
62
+ } : overrideType === "hidden" ? {
63
+ type: "hidden",
64
+ hidden: {}
65
+ } : {
66
+ type: "disabled",
67
+ disabled: {}
60
68
  }
61
69
  }
62
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"convertActionParameterConditionalOverride.js","names":["extractAllowedValues","convertConditionDefinition","convertActionParameterConditionalOverride","override","validation","actionParameters","parameterBlockOverride","type","parameterRequired","required","notRequired","visibility","defaultVisibility","hidden","editable","disabled","prefill","defaultValue","allowedValues","constraint","Error","condition","parameterBlockOverrides"],"sources":["convertActionParameterConditionalOverride.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 OntologyIrConditionalOverride,\n OntologyIrParameterValidationBlockOverride,\n} from \"@osdk/client.unstable\";\nimport type {\n ActionParameter,\n ActionParameterValidation,\n} from \"../../api/action/ActionParameter.js\";\nimport type { ActionParameterConditionalOverride } from \"../../api/action/ActionParameterConditionalOverride.js\";\nimport { extractAllowedValues } from \"../../api/defineOntology.js\";\nimport { convertConditionDefinition } from \"./convertConditionDefinition.js\";\n\nexport function convertActionParameterConditionalOverride(\n override: ActionParameterConditionalOverride,\n validation: ActionParameterValidation,\n actionParameters?: ActionParameter[],\n): OntologyIrConditionalOverride {\n let parameterBlockOverride: OntologyIrParameterValidationBlockOverride;\n switch (override.type) {\n case \"required\":\n parameterBlockOverride = {\n type: \"parameterRequired\",\n parameterRequired: {\n required: validation.required\n ? {\n type: \"notRequired\",\n notRequired: {},\n }\n : {\n type: \"required\",\n required: {},\n },\n },\n };\n break;\n case \"visibility\":\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: validation.defaultVisibility === \"editable\"\n ? {\n type: \"hidden\",\n hidden: {},\n }\n : {\n type: \"editable\",\n editable: {},\n },\n },\n };\n break;\n case \"disabled\":\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: validation.defaultVisibility === \"editable\"\n ? {\n type: \"disabled\",\n disabled: {},\n }\n : {\n type: \"editable\",\n editable: {},\n },\n },\n };\n break;\n case \"defaultValue\":\n parameterBlockOverride = {\n type: \"prefill\",\n prefill: {\n prefill: override.defaultValue,\n },\n };\n break;\n case \"constraint\":\n parameterBlockOverride = {\n type: \"allowedValues\",\n allowedValues: {\n allowedValues: extractAllowedValues(override.constraint),\n },\n };\n break;\n default:\n throw new Error(`Unknown parameter override type`);\n }\n return {\n condition: convertConditionDefinition(override.condition, actionParameters),\n parameterBlockOverrides: [parameterBlockOverride],\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,SAASA,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,0BAA0B,QAAQ,iCAAiC;AAE5E,OAAO,SAASC,yCAAyCA,CACvDC,QAA4C,EAC5CC,UAAqC,EACrCC,gBAAoC,EACL;EAC/B,IAAIC,sBAAkE;EACtE,QAAQH,QAAQ,CAACI,IAAI;IACnB,KAAK,UAAU;MACbD,sBAAsB,GAAG;QACvBC,IAAI,EAAE,mBAAmB;QACzBC,iBAAiB,EAAE;UACjBC,QAAQ,EAAEL,UAAU,CAACK,QAAQ,GACzB;YACAF,IAAI,EAAE,aAAa;YACnBG,WAAW,EAAE,CAAC;UAChB,CAAC,GACC;YACAH,IAAI,EAAE,UAAU;YAChBE,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACfH,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBI,UAAU,EAAE;UACVA,UAAU,EAAEP,UAAU,CAACQ,iBAAiB,KAAK,UAAU,GACnD;YACAL,IAAI,EAAE,QAAQ;YACdM,MAAM,EAAE,CAAC;UACX,CAAC,GACC;YACAN,IAAI,EAAE,UAAU;YAChBO,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,UAAU;MACbR,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBI,UAAU,EAAE;UACVA,UAAU,EAAEP,UAAU,CAACQ,iBAAiB,KAAK,UAAU,GACnD;YACAL,IAAI,EAAE,UAAU;YAChBQ,QAAQ,EAAE,CAAC;UACb,CAAC,GACC;YACAR,IAAI,EAAE,UAAU;YAChBO,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,cAAc;MACjBR,sBAAsB,GAAG;QACvBC,IAAI,EAAE,SAAS;QACfS,OAAO,EAAE;UACPA,OAAO,EAAEb,QAAQ,CAACc;QACpB;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACfX,sBAAsB,GAAG;QACvBC,IAAI,EAAE,eAAe;QACrBW,aAAa,EAAE;UACbA,aAAa,EAAElB,oBAAoB,CAACG,QAAQ,CAACgB,UAAU;QACzD;MACF,CAAC;MACD;IACF;MACE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EACtD;EACA,OAAO;IACLC,SAAS,EAAEpB,0BAA0B,CAACE,QAAQ,CAACkB,SAAS,EAAEhB,gBAAgB,CAAC;IAC3EiB,uBAAuB,EAAE,CAAChB,sBAAsB;EAClD,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"convertActionParameterConditionalOverride.js","names":["extractAllowedValues","convertConditionDefinition","convertActionParameterConditionalOverride","override","validation","actionParameters","parameterBlockOverride","type","parameterRequired","required","notRequired","overrideType","then","defaultVisibility","visibility","editable","hidden","disabled","prefill","defaultValue","allowedValues","constraint","Error","condition","parameterBlockOverrides"],"sources":["convertActionParameterConditionalOverride.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 OntologyIrConditionalOverride,\n OntologyIrParameterValidationBlockOverride,\n} from \"@osdk/client.unstable\";\nimport type {\n ActionParameter,\n ActionParameterValidation,\n} from \"../../api/action/ActionParameter.js\";\nimport type { ActionParameterConditionalOverride } from \"../../api/action/ActionParameterConditionalOverride.js\";\nimport { extractAllowedValues } from \"../../api/defineOntology.js\";\nimport { convertConditionDefinition } from \"./convertConditionDefinition.js\";\n\nexport function convertActionParameterConditionalOverride(\n override: ActionParameterConditionalOverride,\n validation: ActionParameterValidation,\n actionParameters?: ActionParameter[],\n): OntologyIrConditionalOverride {\n let parameterBlockOverride: OntologyIrParameterValidationBlockOverride;\n switch (override.type) {\n case \"required\":\n parameterBlockOverride = {\n type: \"parameterRequired\",\n parameterRequired: {\n required: validation.required\n ? {\n type: \"notRequired\",\n notRequired: {},\n }\n : {\n type: \"required\",\n required: {},\n },\n },\n };\n break;\n case \"visibility\":\n let overrideType = override.then ?? (\n validation.defaultVisibility === \"editable\" ? \"hidden\" : \"editable\"\n );\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: overrideType === \"editable\"\n ? {\n type: \"editable\",\n editable: {},\n }\n : overrideType === \"hidden\"\n ? {\n type: \"hidden\",\n hidden: {},\n }\n : {\n type: \"disabled\",\n disabled: {},\n },\n },\n };\n break;\n case \"disabled\":\n overrideType = override.then ?? (\n validation.defaultVisibility === \"editable\" ? \"disabled\" : \"editable\"\n );\n parameterBlockOverride = {\n type: \"visibility\",\n visibility: {\n visibility: overrideType === \"editable\"\n ? {\n type: \"editable\",\n editable: {},\n }\n : overrideType === \"hidden\"\n ? {\n type: \"hidden\",\n hidden: {},\n }\n : {\n type: \"disabled\",\n disabled: {},\n },\n },\n };\n break;\n case \"defaultValue\":\n parameterBlockOverride = {\n type: \"prefill\",\n prefill: {\n prefill: override.defaultValue,\n },\n };\n break;\n case \"constraint\":\n parameterBlockOverride = {\n type: \"allowedValues\",\n allowedValues: {\n allowedValues: extractAllowedValues(override.constraint),\n },\n };\n break;\n default:\n throw new Error(`Unknown parameter override type`);\n }\n return {\n condition: convertConditionDefinition(override.condition, actionParameters),\n parameterBlockOverrides: [parameterBlockOverride],\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,SAASA,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,0BAA0B,QAAQ,iCAAiC;AAE5E,OAAO,SAASC,yCAAyCA,CACvDC,QAA4C,EAC5CC,UAAqC,EACrCC,gBAAoC,EACL;EAC/B,IAAIC,sBAAkE;EACtE,QAAQH,QAAQ,CAACI,IAAI;IACnB,KAAK,UAAU;MACbD,sBAAsB,GAAG;QACvBC,IAAI,EAAE,mBAAmB;QACzBC,iBAAiB,EAAE;UACjBC,QAAQ,EAAEL,UAAU,CAACK,QAAQ,GACzB;YACAF,IAAI,EAAE,aAAa;YACnBG,WAAW,EAAE,CAAC;UAChB,CAAC,GACC;YACAH,IAAI,EAAE,UAAU;YAChBE,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACf,IAAIE,YAAY,GAAGR,QAAQ,CAACS,IAAI,KAC9BR,UAAU,CAACS,iBAAiB,KAAK,UAAU,GAAG,QAAQ,GAAG,UAAU,CACpE;MACDP,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBO,UAAU,EAAE;UACVA,UAAU,EAAEH,YAAY,KAAK,UAAU,GACnC;YACAJ,IAAI,EAAE,UAAU;YAChBQ,QAAQ,EAAE,CAAC;UACb,CAAC,GACCJ,YAAY,KAAK,QAAQ,GACzB;YACAJ,IAAI,EAAE,QAAQ;YACdS,MAAM,EAAE,CAAC;UACX,CAAC,GACC;YACAT,IAAI,EAAE,UAAU;YAChBU,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,UAAU;MACbN,YAAY,GAAGR,QAAQ,CAACS,IAAI,KAC1BR,UAAU,CAACS,iBAAiB,KAAK,UAAU,GAAG,UAAU,GAAG,UAAU,CACtE;MACDP,sBAAsB,GAAG;QACvBC,IAAI,EAAE,YAAY;QAClBO,UAAU,EAAE;UACVA,UAAU,EAAEH,YAAY,KAAK,UAAU,GACnC;YACAJ,IAAI,EAAE,UAAU;YAChBQ,QAAQ,EAAE,CAAC;UACb,CAAC,GACCJ,YAAY,KAAK,QAAQ,GACzB;YACAJ,IAAI,EAAE,QAAQ;YACdS,MAAM,EAAE,CAAC;UACX,CAAC,GACC;YACAT,IAAI,EAAE,UAAU;YAChBU,QAAQ,EAAE,CAAC;UACb;QACJ;MACF,CAAC;MACD;IACF,KAAK,cAAc;MACjBX,sBAAsB,GAAG;QACvBC,IAAI,EAAE,SAAS;QACfW,OAAO,EAAE;UACPA,OAAO,EAAEf,QAAQ,CAACgB;QACpB;MACF,CAAC;MACD;IACF,KAAK,YAAY;MACfb,sBAAsB,GAAG;QACvBC,IAAI,EAAE,eAAe;QACrBa,aAAa,EAAE;UACbA,aAAa,EAAEpB,oBAAoB,CAACG,QAAQ,CAACkB,UAAU;QACzD;MACF,CAAC;MACD;IACF;MACE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EACtD;EACA,OAAO;IACLC,SAAS,EAAEtB,0BAA0B,CAACE,QAAQ,CAACoB,SAAS,EAAElB,gBAAgB,CAAC;IAC3EmB,uBAAuB,EAAE,CAAClB,sBAAsB;EAClD,CAAC;AACH","ignoreList":[]}
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { addNamespaceIfNone, buildDatasource, cleanAndValidateLinkTypeId, convertObjectStatus } from "../../api/defineOntology.js";
17
+ import { buildDatasource, cleanAndValidateLinkTypeId, convertObjectStatus } from "../../api/defineOntology.js";
18
18
  import { isExotic } from "../../api/properties/PropertyTypeType.js";
19
19
  import { convertDatasourceDefinition } from "./convertDatasourceDefinition.js";
20
20
  import { convertObjectPropertyType } from "./convertObjectPropertyType.js";
@@ -55,10 +55,11 @@ export function convertObject(objectType) {
55
55
  implementsInterfaces2: implementations.map(impl => ({
56
56
  interfaceTypeApiName: impl.implements.apiName,
57
57
  linksV2: {},
58
- propertiesV2: {},
59
- properties: Object.fromEntries(impl.propertyMapping.map(mapping => [addNamespaceIfNone(mapping.interfaceProperty), {
60
- propertyTypeRid: mapping.mapsTo
61
- }]))
58
+ propertiesV2: Object.fromEntries(impl.propertyMapping.map(mappings => [mappings.interfaceProperty, {
59
+ type: "propertyTypeRid",
60
+ propertyTypeRid: mappings.mapsTo
61
+ }])),
62
+ properties: {}
62
63
  })),
63
64
  allImplementsInterfaces: {}
64
65
  },
@@ -1 +1 @@
1
- {"version":3,"file":"convertObject.js","names":["addNamespaceIfNone","buildDatasource","cleanAndValidateLinkTypeId","convertObjectStatus","isExotic","convertDatasourceDefinition","convertObjectPropertyType","convertObject","objectType","derivedDatasources","derivedPropertyNames","extractDerivedDatasources","propertyDatasources","properties","filter","prop","includes","apiName","flatMap","extractPropertyDatasource","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","length","reduce","l","r","undefined","mandatoryInputGroup","objectDatasource","implementations","implementsInterfaces","displayMetadata","description","displayName","groupDisplayName","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","propertyTypes","Object","fromEntries","map","val","titlePropertyTypeRid","titlePropertyApiName","status","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","propertiesV2","propertyMapping","mapping","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","aliases","markingType","markingInputGroupName","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","uploadProperties","inputDerivedDatasources","ds","i","buildDerivedDatasource","keys","datasource","index","linkDefinition","multiHopLink","steps","step","searchAround","linkTypeIdentifier","linkType","linkTypeSide","side","isLinkedProperties","values","derivedDefinition","linkedProperties","propertyTypeMapping","entries","sourceProp","targetProp","propertyType","aggregatedProperties","agg","buildAggregation","toString","derived","definition","limit","foreignProperty","innerDef"],"sources":["convertObject.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 OntologyIrDerivedPropertiesDefinition,\n OntologyIrDerivedPropertyAggregation,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrPropertyType,\n} from \"@osdk/client.unstable\";\nimport {\n addNamespaceIfNone,\n buildDatasource,\n cleanAndValidateLinkTypeId,\n convertObjectStatus,\n} from \"../../api/defineOntology.js\";\nimport type { ObjectPropertyType } from \"../../api/object/ObjectPropertyType.js\";\nimport type { ObjectType } from \"../../api/object/ObjectType.js\";\nimport type {\n DerivedPropertyAggregation,\n ObjectTypeDatasourceDefinition_derived,\n} from \"../../api/object/ObjectTypeDatasourceDefinition.js\";\nimport { isExotic } from \"../../api/properties/PropertyTypeType.js\";\nimport { convertDatasourceDefinition } from \"./convertDatasourceDefinition.js\";\nimport { convertObjectPropertyType } from \"./convertObjectPropertyType.js\";\n\nexport function convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const { derivedDatasources, derivedPropertyNames } =\n extractDerivedDatasources(objectType);\n\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .filter(prop => !derivedPropertyNames.includes(prop.apiName))\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const classificationGroupMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"CBAC\",\n );\n\n const mandatoryMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"MANDATORY\",\n );\n\n const classificationInputGroup = classificationGroupMarkingNames.length > 0\n ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0\n ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n (objectType.properties ?? []).filter(prop =>\n !derivedPropertyNames.includes(prop.apiName)\n ),\n ),\n classificationInputGroup,\n mandatoryInputGroup,\n );\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertObjectPropertyType(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n linksV2: {},\n propertiesV2: {},\n properties: Object.fromEntries(\n impl.propertyMapping.map(\n mapping => [addNamespaceIfNone(mapping.interfaceProperty), {\n propertyTypeRid: mapping.mapsTo,\n }],\n ),\n ),\n })),\n allImplementsInterfaces: {},\n },\n datasources: [\n ...propertyDatasources,\n ...derivedDatasources,\n objectDatasource,\n ],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false,\n aliases: objectType.aliases ?? [],\n },\n };\n}\n\n/**\n * Extracts marking group names of a specific type from object properties\n */\nexport function extractMarkingGroups(\n properties: ObjectPropertyType[],\n markingType: \"CBAC\" | \"MANDATORY\",\n): string[] {\n return properties\n .map(prop => {\n if (\n typeof prop.type === \"object\"\n && prop.type.type === \"marking\"\n && prop.type.markingType === markingType\n ) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n })\n .filter((val): val is string => val !== undefined);\n}\nexport function extractPropertyDatasource(\n property: ObjectPropertyType,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource[] {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type as string) {\n case \"geotimeSeries\":\n const geotimeDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName],\n uploadProperties: [],\n },\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\n\nfunction extractDerivedDatasources(\n objectType: ObjectType,\n): {\n derivedDatasources: OntologyIrObjectTypeDatasource[];\n derivedPropertyNames: string[];\n} {\n const inputDerivedDatasources = (objectType.datasources ?? []).filter(ds =>\n ds.type === \"derived\"\n );\n const derivedDatasources = inputDerivedDatasources.map((ds, i) =>\n buildDerivedDatasource(ds, i, objectType.apiName)\n );\n const derivedPropertyNames = inputDerivedDatasources.flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\n return { derivedDatasources, derivedPropertyNames };\n}\n\nfunction buildDerivedDatasource(\n datasource: ObjectTypeDatasourceDefinition_derived,\n index: number,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource {\n const linkDefinition = {\n type: \"multiHopLink\",\n multiHopLink: {\n steps: datasource.linkDefinition.map(step => ({\n type: \"searchAround\",\n searchAround: {\n linkTypeIdentifier: {\n type: \"linkType\",\n linkType: cleanAndValidateLinkTypeId(step.linkType.apiName),\n },\n linkTypeSide: step.side ?? \"SOURCE\",\n },\n })),\n },\n };\n\n const isLinkedProperties =\n typeof Object.values(datasource.propertyMapping)[0] === \"string\";\n const derivedDefinition = isLinkedProperties\n ? {\n type: \"linkedProperties\",\n linkedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, targetProp],\n ) => [sourceProp, {\n type: \"propertyType\",\n propertyType: targetProp,\n }]),\n ),\n },\n }\n : {\n type: \"aggregatedProperties\",\n aggregatedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, agg],\n ) => [sourceProp, buildAggregation(agg)]),\n ),\n },\n };\n const fullDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"derived\",\n derived: {\n definition: derivedDefinition as OntologyIrDerivedPropertiesDefinition,\n },\n };\n return buildDatasource(\n objectTypeApiName + \".derived.\" + index.toString(),\n fullDefinition,\n );\n}\n\nfunction buildAggregation(\n agg: DerivedPropertyAggregation,\n): OntologyIrDerivedPropertyAggregation {\n const type = agg.type;\n const limit = \"limit\" in agg ? agg.limit : undefined;\n const foreignProperty = \"property\" in agg ? agg.property : undefined;\n const innerDef: any = {};\n if (type !== \"count\") {\n if ([\"collectList\", \"collectSet\"].includes(type)) {\n innerDef[\"linkedProperty\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n innerDef[\"limit\"] = limit;\n } else {\n innerDef[\"property\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n }\n }\n return {\n type,\n [type]: innerDef,\n } as unknown as OntologyIrDerivedPropertyAggregation;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"convertObject.js","names":["buildDatasource","cleanAndValidateLinkTypeId","convertObjectStatus","isExotic","convertDatasourceDefinition","convertObjectPropertyType","convertObject","objectType","derivedDatasources","derivedPropertyNames","extractDerivedDatasources","propertyDatasources","properties","filter","prop","includes","apiName","flatMap","extractPropertyDatasource","classificationGroupMarkingNames","extractMarkingGroups","mandatoryMarkingNames","classificationInputGroup","length","reduce","l","r","undefined","mandatoryInputGroup","objectDatasource","implementations","implementsInterfaces","displayMetadata","description","displayName","groupDisplayName","icon","type","blueprint","locator","color","pluralDisplayName","visibility","primaryKeys","primaryKeyPropertyApiName","propertyTypes","Object","fromEntries","map","val","titlePropertyTypeRid","titlePropertyApiName","status","redacted","implementsInterfaces2","impl","interfaceTypeApiName","implements","linksV2","propertiesV2","propertyMapping","mappings","interfaceProperty","propertyTypeRid","mapsTo","allImplementsInterfaces","datasources","entityMetadata","arePatchesEnabled","editsEnabled","aliases","markingType","markingInputGroupName","property","objectTypeApiName","identifier","geotimeDefinition","geotimeSeries","geotimeSeriesIntegrationRid","mediaSetDefinition","mediaSetView","assumedMarkings","mediaSetViewLocator","uploadProperties","inputDerivedDatasources","ds","i","buildDerivedDatasource","keys","datasource","index","linkDefinition","multiHopLink","steps","step","searchAround","linkTypeIdentifier","linkType","linkTypeSide","side","isLinkedProperties","values","derivedDefinition","linkedProperties","propertyTypeMapping","entries","sourceProp","targetProp","propertyType","aggregatedProperties","agg","buildAggregation","toString","derived","definition","limit","foreignProperty","innerDef"],"sources":["convertObject.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 OntologyIrDerivedPropertiesDefinition,\n OntologyIrDerivedPropertyAggregation,\n OntologyIrObjectTypeBlockDataV2,\n OntologyIrObjectTypeDatasource,\n OntologyIrObjectTypeDatasourceDefinition,\n OntologyIrPropertyType,\n} from \"@osdk/client.unstable\";\nimport {\n buildDatasource,\n cleanAndValidateLinkTypeId,\n convertObjectStatus,\n} from \"../../api/defineOntology.js\";\nimport type { ObjectPropertyType } from \"../../api/object/ObjectPropertyType.js\";\nimport type { ObjectType } from \"../../api/object/ObjectType.js\";\nimport type {\n DerivedPropertyAggregation,\n ObjectTypeDatasourceDefinition_derived,\n} from \"../../api/object/ObjectTypeDatasourceDefinition.js\";\nimport { isExotic } from \"../../api/properties/PropertyTypeType.js\";\nimport { convertDatasourceDefinition } from \"./convertDatasourceDefinition.js\";\nimport { convertObjectPropertyType } from \"./convertObjectPropertyType.js\";\n\nexport function convertObject(\n objectType: ObjectType,\n): OntologyIrObjectTypeBlockDataV2 {\n const { derivedDatasources, derivedPropertyNames } =\n extractDerivedDatasources(objectType);\n\n const propertyDatasources: OntologyIrObjectTypeDatasource[] =\n (objectType.properties ?? [])\n .filter(prop => !derivedPropertyNames.includes(prop.apiName))\n .flatMap(prop => extractPropertyDatasource(prop, objectType.apiName));\n\n const classificationGroupMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"CBAC\",\n );\n\n const mandatoryMarkingNames = extractMarkingGroups(\n objectType.properties ?? [],\n \"MANDATORY\",\n );\n\n const classificationInputGroup = classificationGroupMarkingNames.length > 0\n ? classificationGroupMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const mandatoryInputGroup = mandatoryMarkingNames.length > 0\n ? mandatoryMarkingNames.reduce((l, r) => l + \"/\" + r)\n : undefined;\n\n const objectDatasource = buildDatasource(\n objectType.apiName,\n convertDatasourceDefinition(\n objectType,\n (objectType.properties ?? []).filter(prop =>\n !derivedPropertyNames.includes(prop.apiName)\n ),\n ),\n classificationInputGroup,\n mandatoryInputGroup,\n );\n\n const implementations = objectType.implementsInterfaces ?? [];\n\n return {\n objectType: {\n displayMetadata: {\n description: objectType.description,\n displayName: objectType.displayName,\n groupDisplayName: undefined,\n icon: {\n type: \"blueprint\",\n blueprint: objectType.icon ?? { locator: \"cube\", color: \"#2D72D2\" },\n },\n pluralDisplayName: objectType.pluralDisplayName,\n visibility: objectType.visibility ?? \"NORMAL\",\n },\n primaryKeys: [objectType.primaryKeyPropertyApiName],\n propertyTypes: Object.fromEntries(\n objectType.properties?.map<[string, OntologyIrPropertyType]>(\n val => [val.apiName, convertObjectPropertyType(val)],\n ) ?? [],\n ),\n titlePropertyTypeRid: objectType.titlePropertyApiName,\n apiName: objectType.apiName,\n status: convertObjectStatus(objectType.status),\n redacted: false,\n implementsInterfaces2: implementations.map(impl => ({\n interfaceTypeApiName: impl.implements.apiName,\n linksV2: {},\n propertiesV2: Object.fromEntries(impl.propertyMapping\n .map(\n mappings => [mappings.interfaceProperty, {\n type: \"propertyTypeRid\",\n propertyTypeRid: mappings.mapsTo,\n }],\n )),\n properties: {},\n })),\n allImplementsInterfaces: {},\n },\n datasources: [\n ...propertyDatasources,\n ...derivedDatasources,\n objectDatasource,\n ],\n entityMetadata: {\n arePatchesEnabled: objectType.editsEnabled ?? false,\n aliases: objectType.aliases ?? [],\n },\n };\n}\n\n/**\n * Extracts marking group names of a specific type from object properties\n */\nexport function extractMarkingGroups(\n properties: ObjectPropertyType[],\n markingType: \"CBAC\" | \"MANDATORY\",\n): string[] {\n return properties\n .map(prop => {\n if (\n typeof prop.type === \"object\"\n && prop.type.type === \"marking\"\n && prop.type.markingType === markingType\n ) {\n return prop.type.markingInputGroupName;\n }\n return undefined;\n })\n .filter((val): val is string => val !== undefined);\n}\nexport function extractPropertyDatasource(\n property: ObjectPropertyType,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource[] {\n if (!isExotic(property.type)) {\n return [];\n }\n const identifier = objectTypeApiName + \".\" + property.apiName;\n switch (property.type as string) {\n case \"geotimeSeries\":\n const geotimeDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"geotimeSeries\",\n geotimeSeries: {\n geotimeSeriesIntegrationRid: identifier,\n properties: [property.apiName],\n },\n };\n return [buildDatasource(property.apiName, geotimeDefinition)];\n case \"mediaReference\":\n const mediaSetDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"mediaSetView\",\n mediaSetView: {\n assumedMarkings: [],\n mediaSetViewLocator: identifier,\n properties: [property.apiName],\n uploadProperties: [],\n },\n };\n return [buildDatasource(property.apiName, mediaSetDefinition)];\n default:\n return [];\n }\n}\n\nfunction extractDerivedDatasources(\n objectType: ObjectType,\n): {\n derivedDatasources: OntologyIrObjectTypeDatasource[];\n derivedPropertyNames: string[];\n} {\n const inputDerivedDatasources = (objectType.datasources ?? []).filter(ds =>\n ds.type === \"derived\"\n );\n const derivedDatasources = inputDerivedDatasources.map((ds, i) =>\n buildDerivedDatasource(ds, i, objectType.apiName)\n );\n const derivedPropertyNames = inputDerivedDatasources.flatMap(ds =>\n Object.keys(ds.propertyMapping)\n );\n return { derivedDatasources, derivedPropertyNames };\n}\n\nfunction buildDerivedDatasource(\n datasource: ObjectTypeDatasourceDefinition_derived,\n index: number,\n objectTypeApiName: string,\n): OntologyIrObjectTypeDatasource {\n const linkDefinition = {\n type: \"multiHopLink\",\n multiHopLink: {\n steps: datasource.linkDefinition.map(step => ({\n type: \"searchAround\",\n searchAround: {\n linkTypeIdentifier: {\n type: \"linkType\",\n linkType: cleanAndValidateLinkTypeId(step.linkType.apiName),\n },\n linkTypeSide: step.side ?? \"SOURCE\",\n },\n })),\n },\n };\n\n const isLinkedProperties =\n typeof Object.values(datasource.propertyMapping)[0] === \"string\";\n const derivedDefinition = isLinkedProperties\n ? {\n type: \"linkedProperties\",\n linkedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, targetProp],\n ) => [sourceProp, {\n type: \"propertyType\",\n propertyType: targetProp,\n }]),\n ),\n },\n }\n : {\n type: \"aggregatedProperties\",\n aggregatedProperties: {\n linkDefinition,\n propertyTypeMapping: Object.fromEntries(\n Object.entries(datasource.propertyMapping).map((\n [sourceProp, agg],\n ) => [sourceProp, buildAggregation(agg)]),\n ),\n },\n };\n const fullDefinition: OntologyIrObjectTypeDatasourceDefinition = {\n type: \"derived\",\n derived: {\n definition: derivedDefinition as OntologyIrDerivedPropertiesDefinition,\n },\n };\n return buildDatasource(\n objectTypeApiName + \".derived.\" + index.toString(),\n fullDefinition,\n );\n}\n\nfunction buildAggregation(\n agg: DerivedPropertyAggregation,\n): OntologyIrDerivedPropertyAggregation {\n const type = agg.type;\n const limit = \"limit\" in agg ? agg.limit : undefined;\n const foreignProperty = \"property\" in agg ? agg.property : undefined;\n const innerDef: any = {};\n if (type !== \"count\") {\n if ([\"collectList\", \"collectSet\"].includes(type)) {\n innerDef[\"linkedProperty\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n innerDef[\"limit\"] = limit;\n } else {\n innerDef[\"property\"] = {\n type: \"propertyType\",\n propertyType: foreignProperty,\n };\n }\n }\n return {\n type,\n [type]: innerDef,\n } as unknown as OntologyIrDerivedPropertyAggregation;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -644,29 +644,37 @@ function convertActionParameterConditionalOverride(override, validation, actionP
644
644
  };
645
645
  break;
646
646
  case "visibility":
647
+ let overrideType = override.then ?? (validation.defaultVisibility === "editable" ? "hidden" : "editable");
647
648
  parameterBlockOverride = {
648
649
  type: "visibility",
649
650
  visibility: {
650
- visibility: validation.defaultVisibility === "editable" ? {
651
+ visibility: overrideType === "editable" ? {
652
+ type: "editable",
653
+ editable: {}
654
+ } : overrideType === "hidden" ? {
651
655
  type: "hidden",
652
656
  hidden: {}
653
657
  } : {
654
- type: "editable",
655
- editable: {}
658
+ type: "disabled",
659
+ disabled: {}
656
660
  }
657
661
  }
658
662
  };
659
663
  break;
660
664
  case "disabled":
665
+ overrideType = override.then ?? (validation.defaultVisibility === "editable" ? "disabled" : "editable");
661
666
  parameterBlockOverride = {
662
667
  type: "visibility",
663
668
  visibility: {
664
- visibility: validation.defaultVisibility === "editable" ? {
665
- type: "disabled",
666
- disabled: {}
667
- } : {
669
+ visibility: overrideType === "editable" ? {
668
670
  type: "editable",
669
671
  editable: {}
672
+ } : overrideType === "hidden" ? {
673
+ type: "hidden",
674
+ hidden: {}
675
+ } : {
676
+ type: "disabled",
677
+ disabled: {}
670
678
  }
671
679
  }
672
680
  };
@@ -1481,10 +1489,11 @@ function convertObject(objectType) {
1481
1489
  implementsInterfaces2: implementations.map((impl) => ({
1482
1490
  interfaceTypeApiName: impl.implements.apiName,
1483
1491
  linksV2: {},
1484
- propertiesV2: {},
1485
- properties: Object.fromEntries(impl.propertyMapping.map((mapping) => [addNamespaceIfNone(mapping.interfaceProperty), {
1486
- propertyTypeRid: mapping.mapsTo
1487
- }]))
1492
+ propertiesV2: Object.fromEntries(impl.propertyMapping.map((mappings) => [mappings.interfaceProperty, {
1493
+ type: "propertyTypeRid",
1494
+ propertyTypeRid: mappings.mapsTo
1495
+ }])),
1496
+ properties: {}
1488
1497
  })),
1489
1498
  allImplementsInterfaces: {}
1490
1499
  },
@@ -2334,7 +2343,7 @@ function addNamespaceIfNone(apiName) {
2334
2343
  var apiNamespaceRegex = /^[a-z0-9-]+(\.[a-z0-9-]+)*\.$/;
2335
2344
  var uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
2336
2345
  async function main(args = process.argv) {
2337
- const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.15.0-beta.8").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
2346
+ const commandLineOpts = await yargs__default.default(helpers.hideBin(args)).version("0.15.0-beta.9").wrap(Math.min(150, yargs__default.default().terminalWidth())).strict().help().options({
2338
2347
  input: {
2339
2348
  alias: "i",
2340
2349
  describe: "Input file",
@@ -3915,14 +3924,19 @@ function convertValueTypeTypeToBaseType(valueType) {
3915
3924
  }
3916
3925
  function defineValueType(valueTypeDef) {
3917
3926
  const {
3918
- apiName,
3927
+ apiName: inputApiName,
3919
3928
  displayName,
3920
3929
  description,
3921
3930
  type,
3922
- version
3931
+ version,
3932
+ namespacePrefix
3923
3933
  } = valueTypeDef;
3934
+ const apiName = namespacePrefix ? namespace + inputApiName : inputApiName;
3924
3935
  const semverValidation = /^((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)$/;
3925
3936
  !semverValidation.test(version) ? process.env.NODE_ENV !== "production" ? invariant7__default.default(false, "Version is not a valid semver") : invariant7__default.default(false) : void 0;
3937
+ const existingVersions = ontologyDefinition[OntologyEntityTypeEnum.VALUE_TYPE][apiName] ?? [];
3938
+ const duplicateVersion = existingVersions.find((vt2) => vt2.version === version);
3939
+ !(duplicateVersion === void 0) ? process.env.NODE_ENV !== "production" ? invariant7__default.default(false, `Value type with apiName ${apiName} and version ${version} is already defined`) : invariant7__default.default(false) : void 0;
3926
3940
  const typeName = typeof type.type === "string" ? type.type : type.type.type === "struct" ? "structV2" : type.type.type;
3927
3941
  const constraints = type.constraints ? type.constraints.map((constraint) => {
3928
3942
  const output = {