@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.
- package/CHANGELOG.md +8 -0
- package/build/browser/api/action/ActionParameterConditionalOverride.js.map +1 -1
- package/build/browser/api/defineValueType.js +8 -3
- package/build/browser/api/defineValueType.js.map +1 -1
- package/build/browser/api/test/actions.test.js +8 -5
- package/build/browser/api/test/actions.test.js.map +1 -1
- package/build/browser/api/test/misc.test.js +4 -2
- package/build/browser/api/test/misc.test.js.map +1 -1
- package/build/browser/api/test/objects.test.js +3 -2
- package/build/browser/api/test/objects.test.js.map +1 -1
- package/build/browser/api/test/valueTypes.test.js +82 -0
- package/build/browser/api/test/valueTypes.test.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
- package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertObject.js +6 -5
- package/build/browser/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/cjs/index.cjs +28 -14
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +3 -0
- package/build/esm/api/action/ActionParameterConditionalOverride.js.map +1 -1
- package/build/esm/api/defineValueType.js +8 -3
- package/build/esm/api/defineValueType.js.map +1 -1
- package/build/esm/api/test/actions.test.js +8 -5
- package/build/esm/api/test/actions.test.js.map +1 -1
- package/build/esm/api/test/misc.test.js +4 -2
- package/build/esm/api/test/misc.test.js.map +1 -1
- package/build/esm/api/test/objects.test.js +3 -2
- package/build/esm/api/test/objects.test.js.map +1 -1
- package/build/esm/api/test/valueTypes.test.js +82 -0
- package/build/esm/api/test/valueTypes.test.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js +15 -7
- package/build/esm/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertObject.js +6 -5
- package/build/esm/conversion/toMarketplace/convertObject.js.map +1 -1
- package/build/types/api/action/ActionParameterConditionalOverride.d.ts +2 -0
- package/build/types/api/action/ActionParameterConditionalOverride.d.ts.map +1 -1
- package/build/types/api/defineValueType.d.ts +1 -0
- package/build/types/api/defineValueType.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertObject.d.ts.map +1 -1
- 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.
|
|
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:
|
|
41
|
+
visibility: overrideType === "editable" ? {
|
|
42
|
+
type: "editable",
|
|
43
|
+
editable: {}
|
|
44
|
+
} : overrideType === "hidden" ? {
|
|
41
45
|
type: "hidden",
|
|
42
46
|
hidden: {}
|
|
43
47
|
} : {
|
|
44
|
-
type: "
|
|
45
|
-
|
|
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:
|
|
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
|
};
|
package/build/browser/conversion/toMarketplace/convertActionParameterConditionalOverride.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertActionParameterConditionalOverride.js","names":["extractAllowedValues","convertConditionDefinition","convertActionParameterConditionalOverride","override","validation","actionParameters","parameterBlockOverride","type","parameterRequired","required","notRequired","
|
|
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 {
|
|
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
|
-
|
|
60
|
-
propertyTypeRid:
|
|
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":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -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:
|
|
651
|
+
visibility: overrideType === "editable" ? {
|
|
652
|
+
type: "editable",
|
|
653
|
+
editable: {}
|
|
654
|
+
} : overrideType === "hidden" ? {
|
|
651
655
|
type: "hidden",
|
|
652
656
|
hidden: {}
|
|
653
657
|
} : {
|
|
654
|
-
type: "
|
|
655
|
-
|
|
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:
|
|
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
|
-
|
|
1486
|
-
propertyTypeRid:
|
|
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.
|
|
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 = {
|