@osdk/maker 0.16.0-beta.2 → 0.16.0-beta.4
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 +25 -0
- package/README.md +14 -0
- package/build/browser/api/cloneDefinition.js +36 -0
- package/build/browser/api/cloneDefinition.js.map +1 -0
- package/build/browser/api/code-snippets/createCodeSnippets.js +1 -1
- package/build/browser/api/code-snippets/createCodeSnippets.js.map +1 -1
- package/build/browser/api/defineAction.js +3 -1
- package/build/browser/api/defineAction.js.map +1 -1
- package/build/browser/api/defineCreateInterfaceObjectAction.js +3 -1
- package/build/browser/api/defineCreateInterfaceObjectAction.js.map +1 -1
- package/build/browser/api/defineCreateObjectAction.js +3 -1
- package/build/browser/api/defineCreateObjectAction.js.map +1 -1
- package/build/browser/api/defineCreateOrModifyObjectAction.js +3 -1
- package/build/browser/api/defineCreateOrModifyObjectAction.js.map +1 -1
- package/build/browser/api/defineDeleteInterfaceObjectAction.js +3 -1
- package/build/browser/api/defineDeleteInterfaceObjectAction.js.map +1 -1
- package/build/browser/api/defineDeleteObjectAction.js +3 -1
- package/build/browser/api/defineDeleteObjectAction.js.map +1 -1
- package/build/browser/api/defineInterface.js +3 -1
- package/build/browser/api/defineInterface.js.map +1 -1
- package/build/browser/api/defineInterfaceLinkConstraint.js +6 -2
- package/build/browser/api/defineInterfaceLinkConstraint.js.map +1 -1
- package/build/browser/api/defineLink.js +3 -1
- package/build/browser/api/defineLink.js.map +1 -1
- package/build/browser/api/defineModifyInterfaceObjectAction.js +3 -1
- package/build/browser/api/defineModifyInterfaceObjectAction.js.map +1 -1
- package/build/browser/api/defineModifyObjectAction.js +3 -1
- package/build/browser/api/defineModifyObjectAction.js.map +1 -1
- package/build/browser/api/defineObject.js +29 -10
- package/build/browser/api/defineObject.js.map +1 -1
- package/build/browser/api/defineSpt.js +3 -1
- package/build/browser/api/defineSpt.js.map +1 -1
- package/build/browser/api/defineValueType.js +3 -1
- package/build/browser/api/defineValueType.js.map +1 -1
- package/build/browser/api/object/ObjectPropertyType.js.map +1 -1
- package/build/browser/api/properties/PropertyTypeType.js.map +1 -1
- package/build/browser/api/properties/ReducerType.js +2 -0
- package/build/browser/api/properties/ReducerType.js.map +1 -0
- package/build/browser/api/properties/SharedPropertyType.js.map +1 -1
- package/build/browser/api/test/actions.test.js +5 -0
- package/build/browser/api/test/actions.test.js.map +1 -1
- package/build/browser/api/test/objectStatus.test.js +93 -1
- package/build/browser/api/test/objectStatus.test.js.map +1 -1
- package/build/browser/api/test/objects.test.js +576 -0
- package/build/browser/api/test/objects.test.js.map +1 -1
- package/build/browser/api/test/spt.test.js +62 -61
- package/build/browser/api/test/spt.test.js.map +1 -1
- package/build/browser/cli/main.js +1 -1
- package/build/browser/conversion/toMarketplace/convertMainValue.js +36 -0
- package/build/browser/conversion/toMarketplace/convertMainValue.js.map +1 -0
- package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js +4 -3
- package/build/browser/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
- package/build/browser/conversion/toMarketplace/convertReducers.js +53 -0
- package/build/browser/conversion/toMarketplace/convertReducers.js.map +1 -0
- package/build/browser/conversion/toMarketplace/convertSpt.js +5 -3
- package/build/browser/conversion/toMarketplace/convertSpt.js.map +1 -1
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -2
- package/build/browser/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
- package/build/cjs/index.cjs +194 -98
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +27 -15
- package/build/esm/api/cloneDefinition.js +36 -0
- package/build/esm/api/cloneDefinition.js.map +1 -0
- package/build/esm/api/code-snippets/createCodeSnippets.js +1 -1
- package/build/esm/api/code-snippets/createCodeSnippets.js.map +1 -1
- package/build/esm/api/defineAction.js +3 -1
- package/build/esm/api/defineAction.js.map +1 -1
- package/build/esm/api/defineCreateInterfaceObjectAction.js +3 -1
- package/build/esm/api/defineCreateInterfaceObjectAction.js.map +1 -1
- package/build/esm/api/defineCreateObjectAction.js +3 -1
- package/build/esm/api/defineCreateObjectAction.js.map +1 -1
- package/build/esm/api/defineCreateOrModifyObjectAction.js +3 -1
- package/build/esm/api/defineCreateOrModifyObjectAction.js.map +1 -1
- package/build/esm/api/defineDeleteInterfaceObjectAction.js +3 -1
- package/build/esm/api/defineDeleteInterfaceObjectAction.js.map +1 -1
- package/build/esm/api/defineDeleteObjectAction.js +3 -1
- package/build/esm/api/defineDeleteObjectAction.js.map +1 -1
- package/build/esm/api/defineInterface.js +3 -1
- package/build/esm/api/defineInterface.js.map +1 -1
- package/build/esm/api/defineInterfaceLinkConstraint.js +6 -2
- package/build/esm/api/defineInterfaceLinkConstraint.js.map +1 -1
- package/build/esm/api/defineLink.js +3 -1
- package/build/esm/api/defineLink.js.map +1 -1
- package/build/esm/api/defineModifyInterfaceObjectAction.js +3 -1
- package/build/esm/api/defineModifyInterfaceObjectAction.js.map +1 -1
- package/build/esm/api/defineModifyObjectAction.js +3 -1
- package/build/esm/api/defineModifyObjectAction.js.map +1 -1
- package/build/esm/api/defineObject.js +29 -10
- package/build/esm/api/defineObject.js.map +1 -1
- package/build/esm/api/defineSpt.js +3 -1
- package/build/esm/api/defineSpt.js.map +1 -1
- package/build/esm/api/defineValueType.js +3 -1
- package/build/esm/api/defineValueType.js.map +1 -1
- package/build/esm/api/object/ObjectPropertyType.js.map +1 -1
- package/build/esm/api/properties/PropertyTypeType.js.map +1 -1
- package/build/esm/api/properties/ReducerType.js +2 -0
- package/build/esm/api/properties/ReducerType.js.map +1 -0
- package/build/esm/api/properties/SharedPropertyType.js.map +1 -1
- package/build/esm/api/test/actions.test.js +5 -0
- package/build/esm/api/test/actions.test.js.map +1 -1
- package/build/esm/api/test/objectStatus.test.js +93 -1
- package/build/esm/api/test/objectStatus.test.js.map +1 -1
- package/build/esm/api/test/objects.test.js +576 -0
- package/build/esm/api/test/objects.test.js.map +1 -1
- package/build/esm/api/test/spt.test.js +62 -61
- package/build/esm/api/test/spt.test.js.map +1 -1
- package/build/esm/cli/main.js +1 -1
- package/build/esm/conversion/toMarketplace/convertMainValue.js +36 -0
- package/build/esm/conversion/toMarketplace/convertMainValue.js.map +1 -0
- package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js +4 -3
- package/build/esm/conversion/toMarketplace/convertObjectPropertyType.js.map +1 -1
- package/build/esm/conversion/toMarketplace/convertReducers.js +53 -0
- package/build/esm/conversion/toMarketplace/convertReducers.js.map +1 -0
- package/build/esm/conversion/toMarketplace/convertSpt.js +5 -3
- package/build/esm/conversion/toMarketplace/convertSpt.js.map +1 -1
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js +4 -2
- package/build/esm/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.js.map +1 -1
- package/build/types/api/cloneDefinition.d.ts +9 -0
- package/build/types/api/cloneDefinition.d.ts.map +1 -0
- package/build/types/api/defineAction.d.ts +1 -1
- package/build/types/api/defineAction.d.ts.map +1 -1
- package/build/types/api/defineCreateInterfaceObjectAction.d.ts +1 -1
- package/build/types/api/defineCreateInterfaceObjectAction.d.ts.map +1 -1
- package/build/types/api/defineCreateObjectAction.d.ts +1 -1
- package/build/types/api/defineCreateObjectAction.d.ts.map +1 -1
- package/build/types/api/defineCreateOrModifyObjectAction.d.ts +1 -1
- package/build/types/api/defineCreateOrModifyObjectAction.d.ts.map +1 -1
- package/build/types/api/defineDeleteInterfaceObjectAction.d.ts +1 -1
- package/build/types/api/defineDeleteInterfaceObjectAction.d.ts.map +1 -1
- package/build/types/api/defineDeleteObjectAction.d.ts +1 -1
- package/build/types/api/defineDeleteObjectAction.d.ts.map +1 -1
- package/build/types/api/defineInterface.d.ts +1 -1
- package/build/types/api/defineInterface.d.ts.map +1 -1
- package/build/types/api/defineInterfaceLinkConstraint.d.ts +1 -1
- package/build/types/api/defineInterfaceLinkConstraint.d.ts.map +1 -1
- package/build/types/api/defineLink.d.ts +1 -1
- package/build/types/api/defineLink.d.ts.map +1 -1
- package/build/types/api/defineModifyInterfaceObjectAction.d.ts +1 -1
- package/build/types/api/defineModifyInterfaceObjectAction.d.ts.map +1 -1
- package/build/types/api/defineModifyObjectAction.d.ts +1 -1
- package/build/types/api/defineModifyObjectAction.d.ts.map +1 -1
- package/build/types/api/defineObject.d.ts +1 -1
- package/build/types/api/defineObject.d.ts.map +1 -1
- package/build/types/api/defineSpt.d.ts +3 -1
- package/build/types/api/defineSpt.d.ts.map +1 -1
- package/build/types/api/defineValueType.d.ts +1 -1
- package/build/types/api/defineValueType.d.ts.map +1 -1
- package/build/types/api/object/ObjectPropertyType.d.ts +2 -0
- package/build/types/api/object/ObjectPropertyType.d.ts.map +1 -1
- package/build/types/api/properties/PropertyTypeType.d.ts +4 -0
- package/build/types/api/properties/PropertyTypeType.d.ts.map +1 -1
- package/build/types/api/properties/ReducerType.d.ts +4 -0
- package/build/types/api/properties/ReducerType.d.ts.map +1 -0
- package/build/types/api/properties/SharedPropertyType.d.ts +2 -0
- package/build/types/api/properties/SharedPropertyType.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertMainValue.d.ts +4 -0
- package/build/types/conversion/toMarketplace/convertMainValue.d.ts.map +1 -0
- package/build/types/conversion/toMarketplace/convertObjectPropertyType.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/convertReducers.d.ts +6 -0
- package/build/types/conversion/toMarketplace/convertReducers.d.ts.map +1 -0
- package/build/types/conversion/toMarketplace/convertSpt.d.ts +1 -1
- package/build/types/conversion/toMarketplace/convertSpt.d.ts.map +1 -1
- package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.d.ts +2 -1
- package/build/types/conversion/toMarketplace/propertyTypeTypeToOntologyIrType.d.ts.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @osdk/maker
|
|
2
2
|
|
|
3
|
+
## 0.16.0-beta.4
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ab50d31: Remove propertiesV2 from code-snippets
|
|
8
|
+
- 2b15836: Disallow ILCs on imported interfaces
|
|
9
|
+
- e0ba9eb: Shallow clone arrays in definition when passed in to defineFoo methods
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- @osdk/api@2.8.0-beta.6
|
|
14
|
+
|
|
15
|
+
## 0.16.0-beta.3
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 8f92197: update code snippet to have interface dependent properties
|
|
20
|
+
- 6499ff9: Support reducers and struct main values in oac
|
|
21
|
+
- 5b938ef: Enforce OT and prop statuses match
|
|
22
|
+
- e9f9f58: Allow primitive struct main values to be title props
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- @osdk/api@2.8.0-beta.5
|
|
27
|
+
|
|
3
28
|
## 0.16.0-beta.2
|
|
4
29
|
|
|
5
30
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -97,6 +97,10 @@ const tagsProperty = defineSharedPropertyType({
|
|
|
97
97
|
array: true,
|
|
98
98
|
displayName: "Tags",
|
|
99
99
|
description: "List of tags",
|
|
100
|
+
// optionally add a reducer
|
|
101
|
+
reducers: [{
|
|
102
|
+
direction: "descending",
|
|
103
|
+
}],
|
|
100
104
|
});
|
|
101
105
|
```
|
|
102
106
|
|
|
@@ -120,6 +124,11 @@ const addressProperty = defineSharedPropertyType({
|
|
|
120
124
|
},
|
|
121
125
|
country: "string",
|
|
122
126
|
},
|
|
127
|
+
// optionally add a main value
|
|
128
|
+
mainValue: {
|
|
129
|
+
fields: "street",
|
|
130
|
+
type: "string",
|
|
131
|
+
},
|
|
123
132
|
},
|
|
124
133
|
displayName: "Address",
|
|
125
134
|
description: "Physical address information",
|
|
@@ -438,6 +447,11 @@ const customerObject = defineObject({
|
|
|
438
447
|
zipCode: "string",
|
|
439
448
|
country: "string",
|
|
440
449
|
},
|
|
450
|
+
// optionally add a main value
|
|
451
|
+
mainValue: {
|
|
452
|
+
fields: "street",
|
|
453
|
+
type: "string",
|
|
454
|
+
},
|
|
441
455
|
},
|
|
442
456
|
displayName: "Address",
|
|
443
457
|
},
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Shallow-clones a definition object, copying any array-valued properties
|
|
19
|
+
* to prevent shared-array mutation bugs (e.g. when users pass the same
|
|
20
|
+
* datasources constant to multiple defineObject calls).
|
|
21
|
+
*
|
|
22
|
+
* Does NOT deep-clone nested objects so that entity references (interfaces,
|
|
23
|
+
* link types, etc.) preserve their identity for registry lookups.
|
|
24
|
+
*/
|
|
25
|
+
export function cloneDefinition(input) {
|
|
26
|
+
const clone = {
|
|
27
|
+
...input
|
|
28
|
+
};
|
|
29
|
+
for (const key in clone) {
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(clone, key) && Array.isArray(clone[key])) {
|
|
31
|
+
clone[key] = [...clone[key]];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return clone;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=cloneDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloneDefinition.js","names":["cloneDefinition","input","clone","key","Object","prototype","hasOwnProperty","call","Array","isArray"],"sources":["cloneDefinition.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\n/**\n * Shallow-clones a definition object, copying any array-valued properties\n * to prevent shared-array mutation bugs (e.g. when users pass the same\n * datasources constant to multiple defineObject calls).\n *\n * Does NOT deep-clone nested objects so that entity references (interfaces,\n * link types, etc.) preserve their identity for registry lookups.\n */\nexport function cloneDefinition<T extends object>(\n input: T,\n): T {\n const clone = { ...input };\n for (const key in clone) {\n if (\n Object.prototype.hasOwnProperty.call(clone, key)\n && Array.isArray(clone[key])\n ) {\n (clone as any)[key] = [...(clone[key] as unknown[])];\n }\n }\n return clone;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAC7BC,KAAQ,EACL;EACH,MAAMC,KAAK,GAAG;IAAE,GAAGD;EAAM,CAAC;EAC1B,KAAK,MAAME,GAAG,IAAID,KAAK,EAAE;IACvB,IACEE,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAK,EAAEC,GAAG,CAAC,IAC7CK,KAAK,CAACC,OAAO,CAACP,KAAK,CAACC,GAAG,CAAC,CAAC,EAC5B;MACCD,KAAK,CAASC,GAAG,CAAC,GAAG,CAAC,GAAID,KAAK,CAACC,GAAG,CAAe,CAAC;IACtD;EACF;EACA,OAAOD,KAAK;AACd","ignoreList":[]}
|
|
@@ -60,7 +60,7 @@ function generateInterfaceSnippet(interfaceType, packageName) {
|
|
|
60
60
|
"interfaceApiName": interfaceType.apiName,
|
|
61
61
|
"packageName": packageName,
|
|
62
62
|
"objectOrInterfaceApiName": interfaceType.apiName,
|
|
63
|
-
"propertyNames": Object.keys(interfaceType.
|
|
63
|
+
"propertyNames": Object.keys(interfaceType.propertiesV3),
|
|
64
64
|
"interfaceName": interfaceType.displayMetadata.displayName
|
|
65
65
|
};
|
|
66
66
|
return getSnippets(interfaceSnippets, interfaceContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCodeSnippets.js","names":["TYPESCRIPT_OSDK_SNIPPETS","consola","fs","Mustache","path","OntologyEntityTypeEnum","actionSnippets","interfaceSnippets","objectSnippets","snippetNameMapping","createCodeSnippets","ontology","packageName","outputDir","undefined","existsSync","mkdirSync","recursive","info","type","Object","values","object","snippet","OBJECT_TYPE","generateObjectSnippet","ACTION_TYPE","generateActionSnippet","INTERFACE_TYPE","generateInterfaceSnippet","writeFileSync","join","apiName","JSON","stringify","interfaceType","interfaceContext","keys","
|
|
1
|
+
{"version":3,"file":"createCodeSnippets.js","names":["TYPESCRIPT_OSDK_SNIPPETS","consola","fs","Mustache","path","OntologyEntityTypeEnum","actionSnippets","interfaceSnippets","objectSnippets","snippetNameMapping","createCodeSnippets","ontology","packageName","outputDir","undefined","existsSync","mkdirSync","recursive","info","type","Object","values","object","snippet","OBJECT_TYPE","generateObjectSnippet","ACTION_TYPE","generateActionSnippet","INTERFACE_TYPE","generateInterfaceSnippet","writeFileSync","join","apiName","JSON","stringify","interfaceType","interfaceContext","keys","propertiesV3","displayMetadata","displayName","getSnippets","objectType","objectContext","actionType","actionContext","snippetType","context","allSnippets","templateName","filter","key","isNaN","Number","versions","latestTemplate","slice","reverse","find","v","snippets","at","template","renderedTemplate","render","snippetName","get"],"sources":["createCodeSnippets.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 { TYPESCRIPT_OSDK_SNIPPETS } from \"@osdk/typescript-sdk-docs\";\nimport { consola } from \"consola\";\nimport * as fs from \"fs\";\nimport Mustache from \"mustache\";\nimport * as path from \"path\";\nimport type { ActionType } from \"../action/ActionType.js\";\nimport type { OntologyDefinition } from \"../common/OntologyDefinition.js\";\nimport { OntologyEntityTypeEnum } from \"../common/OntologyEntityTypeEnum.js\";\nimport type { InterfaceType } from \"../interface/InterfaceType.js\";\nimport type { ObjectType } from \"../object/ObjectType.js\";\nimport {\n actionSnippets,\n interfaceSnippets,\n objectSnippets,\n snippetNameMapping,\n} from \"./snippetTypes.js\";\n\nexport function createCodeSnippets(\n ontology: OntologyDefinition,\n packageName: string | undefined,\n outputDir: string | undefined,\n): void {\n if (outputDir === undefined) {\n outputDir = \"./code-snippets\";\n }\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n if (packageName === undefined) {\n packageName = \"\";\n }\n consola.info(\"Generating code snippets to \", outputDir);\n for (const type of Object.values(OntologyEntityTypeEnum)) {\n for (const object of Object.values(ontology[type])) {\n let snippet = {};\n switch (type) {\n case OntologyEntityTypeEnum.OBJECT_TYPE:\n snippet = generateObjectSnippet(object, packageName);\n break;\n case OntologyEntityTypeEnum.ACTION_TYPE:\n snippet = generateActionSnippet(object, packageName);\n break;\n case OntologyEntityTypeEnum.INTERFACE_TYPE:\n snippet = generateInterfaceSnippet(object, packageName);\n break;\n default:\n continue;\n }\n fs.writeFileSync(\n path.join(outputDir, object.apiName),\n JSON.stringify(snippet),\n );\n }\n }\n consola.info(\"Finished Code Snippet Generation\");\n}\n\nfunction generateInterfaceSnippet(\n interfaceType: InterfaceType,\n packageName: string,\n) {\n const interfaceContext = {\n \"interfaceApiName\": interfaceType.apiName,\n \"packageName\": packageName,\n \"objectOrInterfaceApiName\": interfaceType.apiName,\n \"propertyNames\": Object.keys(interfaceType.propertiesV3),\n \"interfaceName\": interfaceType.displayMetadata.displayName,\n };\n\n return getSnippets(interfaceSnippets, interfaceContext);\n}\n\nfunction generateObjectSnippet(objectType: ObjectType, packageName: string) {\n const objectContext = {\n \"objectType\": objectType.apiName,\n \"packageName\": packageName,\n \"objectOrInterfaceApiName\": objectType.apiName,\n };\n return getSnippets(objectSnippets, objectContext);\n}\n\nfunction generateActionSnippet(actionType: ActionType, packageName: string) {\n const actionContext = {\n \"actionApiName\": actionType.apiName,\n \"packageName\": packageName,\n };\n return getSnippets(actionSnippets, actionContext);\n}\n\nfunction getSnippets(\n snippetType:\n | typeof interfaceSnippets\n | typeof actionSnippets\n | typeof objectSnippets,\n context: {},\n) {\n const allSnippets = {};\n for (\n const templateName of Object.keys(snippetType).filter(key =>\n isNaN(Number(key))\n )\n ) {\n const versions = Object.values(TYPESCRIPT_OSDK_SNIPPETS.versions);\n const latestTemplate = versions\n .slice()\n .reverse()\n .find(v => v.snippets[templateName])\n ?.snippets[templateName]\n .at(-1)?.template ?? \"\";\n const renderedTemplate = Mustache.render(latestTemplate, context);\n const snippetName = snippetNameMapping.get(templateName);\n\n (allSnippets as any)[\n snippetName !== undefined\n ? Mustache.render(snippetName, context)\n : templateName\n ] = renderedTemplate;\n }\n return allSnippets;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import invariant from "tiny-invariant";
|
|
18
18
|
import { convertConditionDefinition } from "../conversion/toMarketplace/convertConditionDefinition.js";
|
|
19
19
|
import { isActionParameterTypePrimitive } from "./action/ActionParameterType.js";
|
|
20
|
+
import { cloneDefinition } from "./cloneDefinition.js";
|
|
20
21
|
import { OntologyEntityTypeEnum } from "./common/OntologyEntityTypeEnum.js";
|
|
21
22
|
import { uppercaseFirstLetter } from "./defineObject.js";
|
|
22
23
|
import { addNamespaceIfNone, importedTypes, namespace, ontologyDefinition, updateOntology, withoutNamespace } from "./defineOntology.js";
|
|
@@ -28,7 +29,8 @@ export const CREATE_OR_MODIFY_OBJECT_PARAMETER = "objectToCreateOrModifyParamete
|
|
|
28
29
|
export const DELETE_OBJECT_PARAMETER = "objectToDeleteParameter";
|
|
29
30
|
export const CREATE_INTERFACE_OBJECT_PARAMETER = "objectTypeParameter";
|
|
30
31
|
export const MODIFY_INTERFACE_OBJECT_PARAMETER = "interfaceObjectToModifyParameter";
|
|
31
|
-
export function defineAction(
|
|
32
|
+
export function defineAction(actionDefInput) {
|
|
33
|
+
const actionDef = cloneDefinition(actionDefInput);
|
|
32
34
|
const apiName = namespace + actionDef.apiName;
|
|
33
35
|
const parameterIds = (actionDef.parameters ?? []).map(p => p.id);
|
|
34
36
|
if (ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName] !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","DELETE_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","objectType","properties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","propertyMetadata","sharedPropertyType","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","renderHint","push","objectReferenceList","objectTypeId","objectReference","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop","createInterfacePropertyLogicRuleValue","structLogicRuleValue","structDefinition","fieldValue","structListParameterFieldValue","structFieldApiName","structParameterFieldValue","logicRuleValue"],"sources":["defineAction.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 OntologyIrInterfacePropertyLogicRuleValue,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport const DELETE_OBJECT_PARAMETER: string = \"objectToDeleteParameter\";\n\nexport const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport function defineAction(actionDef: ActionTypeDefinition): ActionType {\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\n });\n }\n });\n\n const fullAction = {\n ...actionDef,\n apiName: apiName,\n entities: actionDef.entities ?? {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n __type: OntologyEntityTypeEnum.ACTION_TYPE,\n } as ActionType;\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n if (\"interfaceType\" in def) {\n return (Object.keys(getFlattenedInterfaceProperties(def.interfaceType))\n .includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name));\n }\n return (\n Object.keys(def.objectType.properties ?? {}).includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, InterfacePropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => {\n let propertyMetadata = undefined;\n if (id in propertyMap) {\n propertyMetadata = \"sharedPropertyType\" in propertyMap[id]\n ? propertyMap[id].sharedPropertyType\n : propertyMap[id];\n }\n return {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMetadata?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMetadata!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n propertyMetadata!.type,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMetadata?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMetadata!.array ?? false)\n ? {\n listLength: propertyMetadata!.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMetadata?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMetadata?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n renderHint: def.parameterConfiguration?.[id]?.renderHint,\n };\n },\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType!.apiName,\n maybeCreateObjectOption: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (def.primaryKeyOption === \"autoGenerated\")\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && !(\"interfaceType\" in def)) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete Object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\n}\n\nfunction referencedParameterIds(\n actionDef: ActionTypeDefinition,\n): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .flatMap(p => p.parameters).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n },\n );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n },\n );\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n return { type: \"geohash\" };\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n return { type: \"attachment\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"string\":\n return { type: \"text\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nexport function kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nexport function convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n actionParameters?: ActionParameter[],\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, actionParameters),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n });\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\n condition: ConditionDefinition,\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n): void {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n invariant(\n parameters?.some(p => p.id === overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`,\n );\n invariant(\n overrideParamId !== currentParameterId,\n `Parameter condition on ${currentParameterId} is referencing itself`,\n );\n invariant(\n seenParameterIds.has(overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`,\n );\n break;\n case \"and\":\n // this will not catch the niche edge case where users use the full syntax for unions\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"comparison\":\n case \"group\":\n case \"not\":\n case \"markings\":\n case \"regex\":\n case \"redacted\":\n case \"true\":\n break;\n default:\n throw new Error(\n `Unknown condition type on parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || properties.includes(withoutNamespace(id)),\n `Property ${id} does not exist as a property on ${name}`,\n );\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n\nexport function createInterfacePropertyLogicRuleValue(\n id: string,\n def: InterfacePropertyType,\n actionDef: InterfaceActionTypeUserDefinition,\n): OntologyIrInterfacePropertyLogicRuleValue {\n const type = getInterfacePropertyTypeType(def);\n const array = isInterfaceSharedPropertyType(def)\n ? def.sharedPropertyType.array\n : def.array;\n const parameterId = actionDef.useNonNamespacedParameters\n ? getNonNamespacedParameterName(actionDef, id)\n : id;\n if (isStruct(type)) {\n return {\n type: \"structLogicRuleValue\",\n structLogicRuleValue: Object.fromEntries(\n Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {\n return [\n apiName,\n array\n ? {\n type: \"structListParameterFieldValue\",\n structListParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: parameterId,\n },\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,SAASC,0BAA0B,QAAQ,2DAA2D;AAKtG,SAGEC,8BAA8B,QACzB,iCAAiC;AAWxC,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,oBAAoB,QAAQ,mBAAmB;AACxD,SACEC,kBAAkB,EAClBC,aAAa,EACbC,SAAS,EACTC,kBAAkB,EAClBC,cAAc,EACdC,gBAAgB,QACX,qBAAqB;AAC5B,SAASC,+BAA+B,QAAQ,gDAAgD;AAChG,SACEC,4BAA4B,EAG5BC,6BAA6B,QACxB,sCAAsC;AAK7C,SACEC,QAAQ,QAEH,kCAAkC;AAEzC,OAAO,MAAMC,uBAA+B,GAAG,yBAAyB;AAExE,OAAO,MAAMC,iCAAyC,GACpD,iCAAiC;AAEnC,OAAO,MAAMC,uBAA+B,GAAG,yBAAyB;AAExE,OAAO,MAAMC,iCAAyC,GAAG,qBAAqB;AAE9E,OAAO,MAAMC,iCAAyC,GACpD,kCAAkC;AA8CpC,OAAO,SAASC,YAAYA,CAACC,SAA+B,EAAc;EACxE,MAAMC,OAAO,GAAGf,SAAS,GAAGc,SAAS,CAACC,OAAO;EAC7C,MAAMC,YAAY,GAAG,CAACF,SAAS,CAACG,UAAU,IAAI,EAAE,EAAEC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,CAAC;EAEhE,IACEnB,kBAAkB,CAACL,sBAAsB,CAACyB,WAAW,CAAC,CAACN,OAAO,CAAC,KACzDO,SAAS,EACf;IACA,MAAM,IAAIC,KAAK,CACb,4BAA4BT,SAAS,CAACC,OAAO,qBAC/C,CAAC;EACH;EACA,CACE,0BAA0B,CAACS,IAAI,CAACV,SAAS,CAACC,OAAO,CAAC,GAAAU,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADpDlC,SAAS,QAEP,wBAAwBqB,SAAS,CAACC,OAAO,mDAAmD,IAF9FtB,SAAS;EAKT,MAAMmC,eAAe,GAAG,IAAIC,GAAG,CAACb,YAAY,CAAC;EAC7C,EACEY,eAAe,CAACE,IAAI,KAAKd,YAAY,CAACe,MAAM,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD9ClC,SAAS,QAEP,8BAA8B,IAFhCA,SAAS;EAKT,MAAMuC,oBAAoB,GAAGC,KAAK,CAACC,IAAI,CAACC,sBAAsB,CAACrB,SAAS,CAAC,CAAC,CACvEsB,MAAM,CAACjB,CAAC,IAAI,CAACS,eAAe,CAACS,GAAG,CAAClB,CAAC,CAAC,CAAC;EACvC,EACEa,oBAAoB,CAACD,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADnClC,SAAS,QAEP,cACE6C,IAAI,CAACC,SAAS,CAACP,oBAAoB,CAAC,kCACJ,IAJpCvC,SAAS;EAOT,MAAM+C,iBAAiB,GAAG,IAAIX,GAAG,CAACY,MAAM,CAACC,IAAI,CAAC5B,SAAS,CAAC6B,QAAQ,IAAI,EAAE,CAAC,CAAC;EACxE,MAAMC,2BAA2B,GAAG,CAAC9B,SAAS,CAAC+B,mBAAmB,IAAI,EAAE,EACrEC,OAAO,CACNC,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAK,aAAa,GAAG,EAAE,GAAG,CAACD,CAAC,CAACE,SAAS,CACnD,CAAC,CAACb,MAAM,CAACc,GAAG,IAAI,CAACV,iBAAiB,CAACH,GAAG,CAACa,GAAG,CAAC,CAAC;EAC9C,EACEN,2BAA2B,CAACb,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD1ClC,SAAS,QAEP,aAAamD,2BAA2B,uDAAuD,IAFjGnD,SAAS;EAKT,EACEqB,SAAS,CAACqC,KAAK,CAACpB,MAAM,GAAG,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD5BlC,SAAS,QAEP,eAAeqB,SAAS,CAACC,OAAO,oCAAoC,IAFtEtB,SAAS;EAITqB,SAAS,CAACqC,KAAK,CAACC,OAAO,CAACC,IAAI,IAAI;IAC9B,IAAIA,IAAI,CAACL,IAAI,KAAK,kBAAkB,EAAE;MACpC,CACEhC,YAAY,CAACsC,IAAI,CAAClC,EAAE,IAAIA,EAAE,KAAKiC,IAAI,CAACE,gBAAgB,CAACC,cAAc,CAAC,GAAA/B,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADtElC,SAAS,QAEP,0DAA0D,IAF5DA,SAAS;IAIX;IACA,IAAI4D,IAAI,CAACL,IAAI,KAAK,kBAAkB,EAAE;MACpC,CACEhC,YAAY,CAACsC,IAAI,CAAClC,EAAE,IAAIA,EAAE,KAAKiC,IAAI,CAACI,gBAAgB,CAACC,cAAc,CAAC,GAAAjC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADtElC,SAAS,QAEP,0DAA0D,IAF5DA,SAAS;IAIX;IACA,IAAI4D,IAAI,CAACL,IAAI,KAAK,qBAAqB,EAAE;MACvC;MACA,MAAMW,cAAc,GAAG7C,SAAS,CAACG,UAAU,CAAE2C,IAAI,CAACzC,CAAC,IACjDA,CAAC,CAACC,EAAE,KAAKiC,IAAI,CAACQ,mBAAmB,CAACC,gCACpC,CAAC;MACD,EACEH,cAAc,KAAKrC,SAAS,IAAI,OAAOqC,cAAc,CAACX,IAAI,KAAK,QAAQ,KACjEW,cAAc,CAACX,IAAI,CAACA,IAAI,KAAK,oBAAoB,IAChDW,cAAc,CAACX,IAAI,CAACA,IAAI,KAAK,wBAAwB,CAAC,IAAAvB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAH/DlC,SAAS,QAIP,qEAAqE,IAJvEA,SAAS;MAMT,MAAMsE,kBAAkB,GACtBJ,cAAc,CAACX,IAAI,CAACA,IAAI,KAAK,oBAAoB,GAC7CW,cAAc,CAACX,IAAI,CAACe,kBAAkB,CAACC,gBAAgB,GACvDL,cAAc,CAACX,IAAI,CAACiB,sBAAsB,CAACD,gBAAgB;MACjE,EACE/D,kBAAkB,CAACiE,cAAc,CAACH,kBAAkB,CAAC,KAAKzC,SAAS,IAC9DvB,aAAa,CAACmE,cAAc,CAACH,kBAAkB,CAAC,KAAKzC,SAAS,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFrElC,SAAS,QAGP,kBAAkBsE,kBAAkB,iBAAiB,IAHvDtE,SAAS;;MAMT;MACA,MAAM0E,aAAa,GACjBlE,kBAAkB,CAACiE,cAAc,CAACH,kBAAkB,CAAC;MACvDtB,MAAM,CAACC,IAAI,CAACW,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAAC,CAAChB,OAAO,CAChEiB,GAAG,IAAI;QACL,CACE5B,MAAM,CAACC,IAAI,CAACtC,+BAA+B,CAAC+D,aAAa,CAAC,CAAC,CACxDG,QAAQ,CAACD,GAAG,CAAC,GAAA5C,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFlBlC,SAAS,QAGP,wBAAwB4E,GAAG,qCAAqCN,kBAAkB,EAAE,IAHtFtE,SAAS;MAKX,CACF,CAAC;IACH;IACA,IAAI4D,IAAI,CAACL,IAAI,KAAK,kBAAkB,EAAE;MACpC;MACA,MAAMmB,aAAa,GAAGlE,kBAAkB,CACrCiE,cAAc,CAACb,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,CAAC,IACpDzE,aAAa,CAACmE,cAAc,CAACb,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,CAAC;MACzE,EACEL,aAAa,KAAK7C,SAAS,IAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAD7BlC,SAAS,QAEP,kBAAkB4D,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,iBAAiB,IAF3E/E,SAAS;;MAKT;MACAgD,MAAM,CAACC,IAAI,CAACW,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAAC,CAAChB,OAAO,CAACiB,GAAG,IAAI;QACrE,CACE5B,MAAM,CAACC,IAAI,CAACtC,+BAA+B,CAAC+D,aAAa,CAAC,CAAC,CAACG,QAAQ,CAClED,GACF,CAAC,GAAA5C,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHlC,SAAS,QAIP,wBAAwB4E,GAAG,qCAAqCF,aAAa,CAACpD,OAAO,EAAE,IAJzFtB,SAAS;MAMX,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,MAAMgF,UAAU,GAAG;IACjB,GAAG3D,SAAS;IACZC,OAAO,EAAEA,OAAO;IAChB2D,QAAQ,EAAE5D,SAAS,CAAC4D,QAAQ,IAAI;MAC9BC,sBAAsB,EAAE,EAAE;MAC1BC,mBAAmB,EAAE,EAAE;MACvBC,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAE;IACd,CAAC;IACDC,MAAM,EAAEnF,sBAAsB,CAACyB;EACjC,CAAe;EACf2D,2BAA2B,CAACP,UAAU,CAAC;EACvCvE,cAAc,CAACuE,UAAU,CAAC;EAC1B,OAAOA,UAAU;AACnB;AAEA,OAAO,SAASQ,mBAAmBA,CACjCC,GAAiE,EACjEC,IAAY,EACZnC,IAAsB,EACb;EACT,IAAI,eAAe,IAAIkC,GAAG,EAAE;IAC1B,OAAQzC,MAAM,CAACC,IAAI,CAACtC,+BAA+B,CAAC8E,GAAG,CAACf,aAAa,CAAC,CAAC,CACpEG,QAAQ,CAACa,IAAI,CAAC,IACZ,CAAC1C,MAAM,CAACC,IAAI,CAACwC,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAACd,QAAQ,CAACa,IAAI,CAAC,IAC3D,CAAC5E,QAAQ,CAACyC,IAAI,CAAC,IACf,CAACkC,GAAG,CAACG,kBAAkB,EAAEf,QAAQ,CAACa,IAAI,CAAC;EAC9C;EACA,OACE1C,MAAM,CAACC,IAAI,CAACwC,GAAG,CAACI,UAAU,CAACC,UAAU,IAAI,CAAC,CAAC,CAAC,CAACjB,QAAQ,CAACa,IAAI,CAAC,IACxD,CAAC1C,MAAM,CAACC,IAAI,CAACwC,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAACd,QAAQ,CAACa,IAAI,CAAC,IAC3D,CAAC5E,QAAQ,CAACyC,IAAI,CAAC,IACf,CAACkC,GAAG,CAACG,kBAAkB,EAAEf,QAAQ,CAACa,IAAI,CAAC;AAE9C;AAEA,OAAO,SAASK,gBAAgBA,CAC9BN,GAAiE,EACjEO,WAEyC,EACzCC,YAAyB,EACzBC,WAAqC,EACb;EACxB,MAAMC,YAAY,GAAGC,mBAAmB,CAACX,GAAG,EAAEQ,YAAY,CAAC;EAC3D,OAAO,CACL,GAAGE,YAAY,EACf,GAAG3D,KAAK,CAACC,IAAI,CAACwD,YAAY,CAAC,CAACxE,GAAG,CAC7BE,EAAE,IAAI;IACJ,IAAI0E,gBAAgB,GAAGxE,SAAS;IAChC,IAAIF,EAAE,IAAIqE,WAAW,EAAE;MACrBK,gBAAgB,GAAG,oBAAoB,IAAIL,WAAW,CAACrE,EAAE,CAAC,GACtDqE,WAAW,CAACrE,EAAE,CAAC,CAAC2E,kBAAkB,GAClCN,WAAW,CAACrE,EAAE,CAAC;IACrB;IACA,OAAO;MACLA,EAAE;MACF4E,WAAW,EAAEd,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,EAAE4E,WAAW,IACrDF,gBAAgB,EAAEE,WAAW,IAC7BnG,oBAAoB,CAACuB,EAAE,CAAC;MAC7B4B,IAAI,EAAEkC,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,EAAE8E,mBAAmB,IACtDC,0BAA0B,CAACL,gBAAiB,CAAC;MAClDM,UAAU,EAAGlB,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,KAAKE,SAAS,GACvD;QACA,GAAG4D,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC;QACnCiF,aAAa,EAAEnB,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,CAACiF,aAAa,KACvDnB,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,CAAC8E,mBAAmB,GACpDI,2CAA2C,CAC3CpB,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,CAAC8E,mBACnC,CAAC,GACCK,oCAAoC,CACpCT,gBAAgB,CAAE9C,IACpB,CAAC,CAAC;QACNwD,QAAQ,EAAEtB,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,CAACoF,QAAQ,IAC7CV,gBAAgB,EAAEW,WAAW,EAAEC,OAAO,IACrC;MACT,CAAC,GACC;QACAF,QAAQ,EAAGV,gBAAgB,CAAEa,KAAK,IAAI,KAAK,GACvC;UACAC,UAAU,EAAEd,gBAAgB,CAAEW,WAAW,EACnCI,kBAAkB,GACpB;YAAEC,GAAG,EAAE;UAAE,CAAC,GACV,CAAC;QACP,CAAC,GACCnB,WAAW,GAAGvE,EAAE,CAAC,IACd0E,gBAAgB,EAAEW,WAAW,EAAEC,OAAO,IACtC,KAAK;QACZL,aAAa,EAAEE,oCAAoC,CACjDT,gBAAgB,EAAE9C,IACpB;MACF,CAAC;MACH+D,YAAY,EAAE7B,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,EAAE2F,YAAY;MAC5DC,WAAW,EAAE9B,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,EAAE4F,WAAW;MAC1DC,UAAU,EAAE/B,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,EAAE6F;IAChD,CAAC;EACH,CACF,CAAC,CACF;AACH;AAEA,SAASpB,mBAAmBA,CAC1BX,GAAiE,EACjEQ,YAAyB,EACD;EACxB,MAAME,YAAoC,GAAG,EAAE;EAC/CF,YAAY,CAACtC,OAAO,CAAC+B,IAAI,IAAI;IAC3B,IAAIA,IAAI,KAAK3E,uBAAuB,EAAE;MACpCoF,YAAY,CAACsB,IAAI,CAAC;QAChB9F,EAAE,EAAEZ,uBAAuB;QAC3BwF,WAAW,EAAEd,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEa,WAAW,IACvD,eAAe;QACpBhD,IAAI,EAAG,OAAOkC,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAItB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,GAC/D;UACAxD,IAAI,EAAE,qBAAqB;UAC3BmE,mBAAmB,EAAE;YAAEC,YAAY,EAAElC,GAAG,CAACI,UAAU,CAAEvE;UAAQ;QAC/D,CAAC,GACC;UACAiC,IAAI,EAAE,iBAAiB;UACvBqE,eAAe,EAAE;YAAED,YAAY,EAAElC,GAAG,CAACI,UAAU,CAAEvE;UAAQ;QAC3D,CAAC;QACHqF,UAAU,EAAE;UACV,GAAGlB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC;UACrCkB,aAAa,EAAE;YAAErD,IAAI,EAAE;UAAc,CAAC;UACtCwD,QAAQ,EAAEtB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,IAAI;QAC5D,CAAC;QACDO,YAAY,EAAE7B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE4B,YAAY;QAC9DC,WAAW,EAAE9B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE6B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAC9G,uBAAuB,CAAC;IAC9C;IACA,IAAI2E,IAAI,KAAK1E,iCAAiC,EAAE;MAC9CmF,YAAY,CAACsB,IAAI,CAAC;QAChB9F,EAAE,EAAEX,iCAAiC;QACrCuF,WAAW,EAAEd,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEa,WAAW,IACvD,yBAAyB;QAC9BhD,IAAI,EAAE;UACJA,IAAI,EAAE,iBAAiB;UACvBqE,eAAe,EAAE;YACfD,YAAY,EAAElC,GAAG,CAACI,UAAU,CAAEvE,OAAO;YACrCwG,uBAAuB,EAAE,EAAE,kBAAkB,IAAIrC,GAAG,CAAC,GACjD;cACAlC,IAAI,EAAE,eAAe;cACrBwE,aAAa,EAAE,CAAC;YAClB,CAAC,GACEtC,GAAG,CAACuC,gBAAgB,KAAK,eAAe,GACzC;cACAzE,IAAI,EAAE,eAAe;cACrBwE,aAAa,EAAE,CAAC;YAClB,CAAC,GACC;cACAxE,IAAI,EAAE,WAAW;cACjB0E,SAAS,EAAE,CAAC;YACd;UACJ;QACF,CAAC;QACDtB,UAAU,EAAE;UACV,GAAGlB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC;UACrCkB,aAAa,EAAE;YAAErD,IAAI,EAAE;UAAc,CAAC;UACtCwD,QAAQ,EAAEtB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,IAAI;QAC5D,CAAC;QACDO,YAAY,EAAE7B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE4B,YAAY;QAC9DC,WAAW,EAAE9B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE6B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAC7G,iCAAiC,CAAC;IACxD;IACA,IAAI0E,IAAI,KAAKzE,uBAAuB,IAAI,EAAE,eAAe,IAAIwE,GAAG,CAAC,EAAE;MACjEU,YAAY,CAACsB,IAAI,CAAC;QAChB9F,EAAE,EAAEV,uBAAuB;QAC3BsF,WAAW,EAAEd,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEa,WAAW,IACvD,eAAe;QACpBhD,IAAI,EAAG,OAAOkC,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAItB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,GAC/D;UACAxD,IAAI,EAAE,qBAAqB;UAC3BmE,mBAAmB,EAAE;YAAEC,YAAY,EAAElC,GAAG,CAACI,UAAU,CAAEvE;UAAQ;QAC/D,CAAC,GACC;UACAiC,IAAI,EAAE,iBAAiB;UACvBqE,eAAe,EAAE;YAAED,YAAY,EAAElC,GAAG,CAACI,UAAU,CAAEvE;UAAQ;QAC3D,CAAC;QACHqF,UAAU,EAAE;UACV,GAAGlB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC;UACrCkB,aAAa,EAAE;YAAErD,IAAI,EAAE;UAAc,CAAC;UACtCwD,QAAQ,EAAEtB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,IAAI;QAC5D,CAAC;QACDO,YAAY,EAAE7B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE4B,YAAY;QAC9DC,WAAW,EAAE9B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE6B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAC5G,uBAAuB,CAAC;IAC9C;IACA,IAAIyE,IAAI,KAAKxE,iCAAiC,IAAI,eAAe,IAAIuE,GAAG,EAAE;MACxEU,YAAY,CAACsB,IAAI,CAAC;QAChB9F,EAAE,EAAET,iCAAiC;QACrCqF,WAAW,EAAEd,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEa,WAAW,IACvD,uBAAuB;QAC5BhD,IAAI,EAAG,OAAOkC,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAItB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,GAC/D;UACAxD,IAAI,EAAE,qBAAqB;UAC3BmE,mBAAmB,EAAE;YAAEC,YAAY,EAAElC,GAAG,CAACI,UAAU,CAAEvE;UAAQ;QAC/D,CAAC,GACC;UACAiC,IAAI,EAAE,qBAAqB;UAC3B2E,mBAAmB,EAAE;YACnBC,iBAAiB,EAAE,CAAC1C,GAAG,CAACf,aAAa,CAACpD,OAAO;UAC/C;QACF,CAAC;QACHqF,UAAU,EAAE;UACV,GAAGlB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC;UACrCqB,QAAQ,EAAE,IAAI;UACdH,aAAa,EAAEnB,GAAG,CAACI,UAAU,KAAKhE,SAAS,GACvC;YACA0B,IAAI,EAAE,qBAAqB;YAC3B6E,cAAc,EAAE,CAAC3C,GAAG,CAACf,aAAa,CAACpD,OAAO;UAC5C,CAAC,GACC;YACAiC,IAAI,EAAE,OAAO;YACb8E,KAAK,EAAE,CAAC;cACNC,KAAK,EAAE7C,GAAG,CAACI,UAAU,CAACU,WAAW;cACjCgC,KAAK,EAAE;gBACLhF,IAAI,EAAE,YAAY;gBAClBsC,UAAU,EAAE;kBAAE8B,YAAY,EAAElC,GAAG,CAACI,UAAU,CAACvE;gBAAQ;cACrD;YACF,CAAC;UACH;QACJ,CAAC;QACDgG,YAAY,EAAE7B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE4B,YAAY;QAC9DC,WAAW,EAAE9B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE6B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAC3G,iCAAiC,CAAC;IACxD;IACA,IAAIwE,IAAI,KAAKvE,iCAAiC,IAAI,eAAe,IAAIsE,GAAG,EAAE;MACxEU,YAAY,CAACsB,IAAI,CAAC;QAChB9F,EAAE,EAAER,iCAAiC;QACrCoF,WAAW,EAAEd,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEa,WAAW,IACvD,uBAAuB;QAC5BhD,IAAI,EAAG,OAAOkC,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAItB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,GAC/D;UACAxD,IAAI,EAAE,wBAAwB;UAC9BiB,sBAAsB,EAAE;YACtBD,gBAAgB,EAAEkB,GAAG,CAACf,aAAa,CAACpD;UACtC;QACF,CAAC,GACC;UACAiC,IAAI,EAAE,oBAAoB;UAC1Be,kBAAkB,EAAE;YAClBC,gBAAgB,EAAEkB,GAAG,CAACf,aAAa,CAACpD;UACtC;QACF,CAAC;QACHqF,UAAU,EAAE;UACV,GAAGlB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC;UACrCqB,QAAQ,EAAE,IAAI;UACdH,aAAa,EAAEnB,GAAG,CAACI,UAAU,KAAKhE,SAAS,GACvC;YAAE0B,IAAI,EAAE;UAAuB,CAAC,GAChC;YACAA,IAAI,EAAE,OAAO;YACb8E,KAAK,EAAE,CAAC;cACNC,KAAK,EAAE7C,GAAG,CAACI,UAAU,CAACU,WAAW;cACjCgC,KAAK,EAAE;gBACLhF,IAAI,EAAE,YAAY;gBAClBsC,UAAU,EAAE;kBAAE8B,YAAY,EAAElC,GAAG,CAACI,UAAU,CAACvE;gBAAQ;cACrD;YACF,CAAC;UACH;QACJ,CAAC;QACDgG,YAAY,EAAE7B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE4B,YAAY;QAC9DC,WAAW,EAAE9B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE6B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAC1G,iCAAiC,CAAC;IACxD;IACA,IAAIuE,IAAI,KAAKzE,uBAAuB,IAAI,eAAe,IAAIwE,GAAG,EAAE;MAC9DU,YAAY,CAACsB,IAAI,CAAC;QAChB9F,EAAE,EAAEV,uBAAuB;QAC3BsF,WAAW,EAAEd,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEa,WAAW,IACvD,eAAe;QACpBhD,IAAI,EAAG,OAAOkC,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,KAAK,QAAQ,IAChE,YAAY,IAAItB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAEqB,QAAQ,GAC/D;UACAxD,IAAI,EAAE,wBAAwB;UAC9BiB,sBAAsB,EAAE;YACtBD,gBAAgB,EAAEkB,GAAG,CAACf,aAAa,CAACpD;UACtC;QACF,CAAC,GACC;UACAiC,IAAI,EAAE,oBAAoB;UAC1Be,kBAAkB,EAAE;YAClBC,gBAAgB,EAAEkB,GAAG,CAACf,aAAa,CAACpD;UACtC;QACF,CAAC;QACHqF,UAAU,EAAE;UACV,GAAGlB,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC;UACrCqB,QAAQ,EAAE,IAAI;UACdH,aAAa,EAAEnB,GAAG,CAACI,UAAU,KAAKhE,SAAS,GACvC;YAAE0B,IAAI,EAAE;UAAuB,CAAC,GAChC;YACAA,IAAI,EAAE,OAAO;YACb8E,KAAK,EAAE,CAAC;cACNC,KAAK,EAAE7C,GAAG,CAACI,UAAU,CAACU,WAAW;cACjCgC,KAAK,EAAE;gBACLhF,IAAI,EAAE,YAAY;gBAClBsC,UAAU,EAAE;kBAAE8B,YAAY,EAAElC,GAAG,CAACI,UAAU,CAACvE;gBAAQ;cACrD;YACF,CAAC;UACH;QACJ,CAAC;QACDgG,YAAY,EAAE7B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE4B,YAAY;QAC9DC,WAAW,EAAE9B,GAAG,CAACe,sBAAsB,GAAGd,IAAI,CAAC,EAAE6B;MACnD,CAAC,CAAC;MACFtB,YAAY,CAAC4B,MAAM,CAAC5G,uBAAuB,CAAC;IAC9C;EACF,CAAC,CAAC;EACF,OAAOkF,YAAY;AACrB;AAEA,SAASzD,sBAAsBA,CAC7BrB,SAA+B,EACb;EAClB,MAAME,YAA8B,GAAG,IAAIa,GAAG,CAAC,CAAC;;EAEhD;EACAY,MAAM,CAACwF,MAAM,CAACnH,SAAS,CAAC6B,QAAQ,IAAI,CAAC,CAAC,CAAC,CACpCG,OAAO,CAAC3B,CAAC,IAAIA,CAAC,CAACF,UAAU,CAAC,CAACmC,OAAO,CAAC8E,GAAG,IAAIlH,YAAY,CAACmH,GAAG,CAACD,GAAG,CAAC,CAAC;;EAEnE;EACA,CAACpH,SAAS,CAAC+B,mBAAmB,IAAI,EAAE,EAAEO,OAAO,CAACgF,IAAI,IAAI;IACpD,IAAIA,IAAI,CAACpF,IAAI,KAAK,aAAa,EAAE;MAC/BhC,YAAY,CAACmH,GAAG,CAACC,IAAI,CAACC,WAAW,CAAC;IACpC;EACF,CAAC,CAAC;;EAEF;EACAvH,SAAS,CAACqC,KAAK,CAACC,OAAO,CAACC,IAAI,IAAI;IAC9B;IACA,QAAQA,IAAI,CAACL,IAAI;MACf,KAAK,kBAAkB;QACrBK,IAAI,CAACkB,gBAAgB,CAACC,gBAAgB,GAAG8D,QAAQ,CAC/CjF,IAAI,CAACkB,gBAAgB,CAACC,gBACxB,CAAC;QACDxD,YAAY,CAACmH,GAAG,CAAC9E,IAAI,CAACkB,gBAAgB,CAACgE,mBAAmB,CAAC;QAC3D9F,MAAM,CAAC+F,OAAO,CAACnF,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAAC,CAAChB,OAAO,CAChE,CAAC,CAACqF,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC1F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACmH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;UACA,OAAOhF,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAACqE,CAAC,CAAC;UACpDpF,IAAI,CAACkB,gBAAgB,CAACH,oBAAoB,CAACkE,QAAQ,CAACG,CAAC,CAAC,CAAC,GAAGC,CAAC;QAC7D,CACF,CAAC;QACD;MACF,KAAK,qBAAqB;QACxB1H,YAAY,CAACmH,GAAG,CACd9E,IAAI,CAACQ,mBAAmB,CAACC,gCAC3B,CAAC;QACDrB,MAAM,CAAC+F,OAAO,CAACnF,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAAC,CAAChB,OAAO,CACnE,CAAC,CAACqF,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC1F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACmH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;UACA,OAAOhF,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAACqE,CAAC,CAAC;UACvDpF,IAAI,CAACQ,mBAAmB,CAACO,oBAAoB,CAACkE,QAAQ,CAACG,CAAC,CAAC,CAAC,GAAGC,CAAC;QAChE,CACF,CAAC;QACD;MACF,KAAK,eAAe;QAClBjG,MAAM,CAAC+F,OAAO,CAACnF,IAAI,CAACsF,aAAa,CAACC,cAAc,CAAC,CAACxF,OAAO,CAAC,CAAC,CAACqF,CAAC,EAAEC,CAAC,CAAC,KAAK;UACpE,IAAIA,CAAC,CAAC1F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACmH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;QACF,CAAC,CAAC;QACF;MACF,KAAK,kBAAkB;QACrB5F,MAAM,CAAC+F,OAAO,CAACnF,IAAI,CAACE,gBAAgB,CAACqF,cAAc,CAAC,CAACxF,OAAO,CAC1D,CAAC,CAACqF,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC1F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACmH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;QACF,CACF,CAAC;QACD;MACF,KAAK,yBAAyB;QAC5B5F,MAAM,CAAC+F,OAAO,CAACnF,IAAI,CAACwF,uBAAuB,CAACD,cAAc,CAAC,CAACxF,OAAO,CACjE,CAAC,CAACqF,CAAC,EAAEC,CAAC,CAAC,KAAK;UACV,IAAIA,CAAC,CAAC1F,IAAI,KAAK,aAAa,EAAE;YAC5BhC,YAAY,CAACmH,GAAG,CAACO,CAAC,CAACL,WAAW,CAAC;UACjC;QACF,CACF,CAAC;QACD;IACJ;EACF,CAAC,CAAC;EACF,OAAOrH,YAAY;AACrB;AAEA,SAASsF,2CAA2CA,CAClDtD,IAAyB,EACK;EAC9B,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,QAAQA,IAAI,CAACA,IAAI;MACf,KAAK,iBAAiB;MACtB,KAAK,qBAAqB;QACxB,OAAO;UAAEA,IAAI,EAAE;QAAc,CAAC;MAChC,KAAK,QAAQ;MACb,KAAK,YAAY;QACf,MAAM,IAAIzB,KAAK,CAAC,+BAA+B,CAAC;MAClD;QACE,MAAM,IAAIA,KAAK,CACb,+BAA+ByB,IAAI,CAACA,IAAI,+DAC1C,CAAC;IACL;EACF;EACA,QAAQA,IAAI;IACV,KAAK,SAAS;IACd,KAAK,aAAa;MAChB,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,SAAS;IACd,KAAK,aAAa;IAClB,KAAK,SAAS;IACd,KAAK,aAAa;IAClB,KAAK,QAAQ;IACb,KAAK,YAAY;IACjB,KAAK,MAAM;IACX,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAQ,CAAC;IAC1B,KAAK,WAAW;IAChB,KAAK,eAAe;IACpB,KAAK,MAAM;IACX,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,QAAQ;IACb,KAAK,YAAY;MACf,OAAO;QAAEA,IAAI,EAAE;MAAO,CAAC;IACzB,KAAK,SAAS;IACd,KAAK,aAAa;MAChB,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,UAAU;IACf,KAAK,cAAc;MACjB,OAAO;QAAEA,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,gBAAgB;IACrB,KAAK,oBAAoB;MACvB,OAAO;QAAEA,IAAI,EAAE;MAAiB,CAAC;IACnC,KAAK,wBAAwB;IAC7B,KAAK,4BAA4B;MAC/B,OAAO;QAAEA,IAAI,EAAE;MAAyB,CAAC;IAC3C,KAAK,YAAY;IACjB,KAAK,gBAAgB;MACnB,OAAO;QAAEA,IAAI,EAAE;MAAa,CAAC;IAC/B;MACE,MAAM,IAAIzB,KAAK,CACb,+BAA+ByB,IAAI,+DACrC,CAAC;EACL;AACF;AAEA,SAASuD,oCAAoCA,CAC3CvD,IAAsB,EACQ;EAC9B,QAAQA,IAAI;IACV,KAAK,SAAS;MACZ,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,MAAM;MACT,OAAO;QACLA,IAAI,EAAE,OAAO;QACb8D,GAAG,EAAE;UACH9D,IAAI,EAAE,aAAa;UACnB8F,WAAW,EAAE;YAAE9F,IAAI,EAAE,SAAS;YAAE+F,OAAO,EAAE;UAAE;QAC7C,CAAC;QACDC,GAAG,EAAE;UACHhG,IAAI,EAAE,aAAa;UACnB8F,WAAW,EAAE;YAAE9F,IAAI,EAAE,SAAS;YAAE+F,OAAO,EAAE;UAAI;QAC/C;MACF,CAAC;IACH,KAAK,WAAW;IAChB,KAAK,MAAM;MACT,OAAO;QAAE/F,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,MAAM;MACT,OAAO;QAAEA,IAAI,EAAE;MAAQ,CAAC;IAC1B,KAAK,OAAO;MACV,OAAO;QACLA,IAAI,EAAE,OAAO;QACb8D,GAAG,EAAE;UACH9D,IAAI,EAAE,aAAa;UACnB8F,WAAW,EAAE;YAAE9F,IAAI,EAAE,SAAS;YAAE+F,OAAO,EAAE;UAAE;QAC7C,CAAC;QACDC,GAAG,EAAE;UACHhG,IAAI,EAAE,aAAa;UACnB8F,WAAW,EAAE;YAAE9F,IAAI,EAAE,SAAS;YAAE+F,OAAO,EAAE;UAAM;QACjD;MACF,CAAC;IACH,KAAK,QAAQ;MACX,OAAO;QAAE/F,IAAI,EAAE;MAAO,CAAC;IACzB,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAU,CAAC;IAC5B,KAAK,UAAU;MACb,OAAO;QAAEA,IAAI,EAAE;MAAW,CAAC;IAC7B,KAAK,gBAAgB;MACnB,OAAO;QAAEA,IAAI,EAAE;MAAiB,CAAC;IACnC,KAAK,eAAe;MAClB,OAAO;QAAEA,IAAI,EAAE;MAAyB,CAAC;IAC3C,KAAK,YAAY;MACf,OAAO;QAAEA,IAAI,EAAE;MAAa,CAAC;IAC/B;MACE,QAAQA,IAAI,CAACA,IAAI;QACf,KAAK,SAAS;UACZ,OAAOA,IAAI,CAACiG,WAAW,KAAK,MAAM,GAC9B;YAAEjG,IAAI,EAAE;UAAc,CAAC,GACvB;YAAEA,IAAI,EAAE;UAAmB,CAAC;QAClC,KAAK,QAAQ;UACX,OAAO;YAAEA,IAAI,EAAE;UAAO,CAAC;QACzB,KAAK,QAAQ;UACX,MAAM,IAAIzB,KAAK,CAAC,+BAA+B,CAAC;QAClD;UACE,MAAM,IAAIA,KAAK,CAAC,cAAc,CAAC;MACnC;MACA;EACJ;AACF;AAEA,SAAS4E,0BAA0BA,CACjC+C,EAGoC,EACf;EACrB,MAAMC,QAAQ,GAAGD,EAAE,CAAClG,IAAI;EACxB,IAAI,OAAOmG,QAAQ,KAAK,QAAQ,EAAE;IAChC,QAAQA,QAAQ,CAACnG,IAAI;MACnB,KAAK,SAAS;QACZ,OAAOoG,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;MACpC,KAAK,QAAQ;QACX,OAAOE,YAAY,CAAC,QAAQ,EAAEF,EAAE,CAAC;MACnC,KAAK,QAAQ;QACX,MAAM,IAAI3H,KAAK,CAAC,+BAA+B,CAAC;MAClD;QACE,MAAM,IAAIA,KAAK,CAAC,cAAc,CAAC;IACnC;EACF;EACA,IACE,OAAO4H,QAAQ,KAAK,QAAQ,IAAIxJ,8BAA8B,CAACwJ,QAAQ,CAAC,EACxE;IACA,OAAOC,YAAY,CAACD,QAAQ,EAAED,EAAE,CAAC;EACnC;EACA,QAAQC,QAAQ;IACd,KAAK,MAAM;IACX,KAAK,OAAO;MACV,OAAOC,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;IACpC,KAAK,UAAU;MACb,OAAOE,YAAY,CAAC,SAAS,EAAEF,EAAE,CAAC;IACpC,KAAK,OAAO;MACV,OAAOE,YAAY,CAAC,QAAQ,EAAEF,EAAE,CAAC;IACnC,KAAK,eAAe;MAClB,OAAOE,YAAY,CAAC,wBAAwB,EAAEF,EAAE,CAAC;IACnD;MACE,MAAM,IAAI3H,KAAK,CAAC,cAAc,CAAC;EACnC;AACF;AAEA,SAAS6H,YAAYA,CACnBpG,IAAkC,EAClCkG,EAGoC,EACf;EACrB,OAASA,EAAE,CAACvC,KAAK,IAAI,KAAK,GAAI3D,IAAI,GAAG,MAAM,GAAGA,IAAI;AACpD;AAEA,OAAO,SAASqG,KAAKA,CAACtG,CAAS,EAAU;EACvC,OAAOA,CAAC,CACLuG,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACnCA,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CACxCA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBC,WAAW,CAAC,CAAC;AAClB;AAEA,SAASjB,QAAQA,CAACvF,CAAS,EAAU;EACnC,OAAOA,CAAC,CAACuB,QAAQ,CAAC,GAAG,CAAC,GAAGvB,CAAC,GAAG/C,SAAS,GAAG+C,CAAC;AAC5C;AAEA,OAAO,SAASyG,qBAAqBA,CACnCC,gBAAiD,EACjDC,gBAAoC,EACP;EAC7B,OAAOD,gBAAgB,CAACvI,GAAG,CAACmC,IAAI,IAAI;IAClC,OAAO;MACLsG,SAAS,EAAEjK,0BAA0B,CAAC2D,IAAI,CAACsG,SAAS,EAAED,gBAAgB,CAAC;MACvEE,eAAe,EAAEvG,IAAI,CAACuG,eAAe,IAAI;QACvCC,cAAc,EAAE,4BAA4B;QAC5CC,WAAW,EAAE;MACf;IACF,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,SAAS9E,2BAA2BA,CAAC+E,MAAkB,EAAQ;EAC7D,MAAMC,gBAAgB,GAAG,IAAInI,GAAG,CAAc,CAAC;EAC/C,MAAMoI,YAA6C,GACjDF,MAAM,CAAC9I,UAAU,EAAEiJ,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IACxCD,GAAG,CAACC,KAAK,CAAChJ,EAAE,CAAC,GAAGgJ,KAAK;IACrB,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAoC,CAAC,IAAI,CAAC,CAAC;EACjD,MAAME,iBAAiB,GACrBN,MAAM,CAACO,iBAAiB,EAAEpJ,GAAG,CAACE,EAAE,IAAI6I,YAAY,CAAC7I,EAAE,CAAC,CAAC,IAAI2I,MAAM,CAAC9I,UAAU;EAC5EoJ,iBAAiB,EAAEjH,OAAO,CAACgH,KAAK,IAAI;IAClCA,KAAK,CAAChE,UAAU,CAACmE,oBAAoB,EAAEnH,OAAO,CAACoH,QAAQ,IAAI;MACzDC,0BAA0B,CACxBD,QAAQ,CAACb,SAAS,EAClBS,KAAK,CAAChJ,EAAE,EACR4I,gBAAgB,EAChBD,MAAM,CAAC9I,UACT,CAAC;IACH,CAAC,CAAC;IACFyJ,wBAAwB,CACtBN,KAAK,CAAChJ,EAAE,EACR4I,gBAAgB,EAChBD,MAAM,CAAC9I,UAAU,EACjBmJ,KAAK,CAACrD,YACR,CAAC;IACDiD,gBAAgB,CAAC7B,GAAG,CAACiC,KAAK,CAAChJ,EAAE,CAAC;EAChC,CAAC,CAAC;AACJ;AAEA,SAASqJ,0BAA0BA,CACjCd,SAA8B,EAC9BgB,kBAA+B,EAC/BX,gBAAkC,EAClC/I,UAA8B,EACxB;EACN,QAAQ0I,SAAS,CAAC3G,IAAI;IACpB,KAAK,WAAW;MACd,MAAM4H,eAAe,GAAGjB,SAAS,CAACtB,WAAW;MAC7C,CACEpH,UAAU,EAAEqC,IAAI,CAACnC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKwJ,eAAe,CAAC,GAAAnJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADjDlC,SAAS,QAEP,0BAA0BkL,kBAAkB,qCAAqCC,eAAe,EAAE,IAFpGnL,SAAS;MAIT,EACEmL,eAAe,KAAKD,kBAAkB,IAAAlJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADxClC,SAAS,QAEP,0BAA0BkL,kBAAkB,wBAAwB,IAFtElL,SAAS;MAIT,CACEuK,gBAAgB,CAAC3H,GAAG,CAACuI,eAAe,CAAC,GAAAnJ,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADvClC,SAAS,QAEP,0BAA0BkL,kBAAkB,mCAAmCC,eAAe,EAAE,IAFlGnL,SAAS;MAIT;IACF,KAAK,KAAK;MACR;MACA,IAAI,YAAY,IAAIkK,SAAS,EAAE;QAC7BA,SAAS,CAACkB,UAAU,CAACzH,OAAO,CAAC0H,CAAC,IAC5BL,0BAA0B,CACxBK,CAAC,EACDH,kBAAkB,EAClBX,gBAAgB,EAChB/I,UACF,CACF,CAAC;MACH;MACA;IACF,KAAK,IAAI;MACP,IAAI,YAAY,IAAI0I,SAAS,EAAE;QAC7BA,SAAS,CAACkB,UAAU,CAACzH,OAAO,CAAC0H,CAAC,IAC5BL,0BAA0B,CACxBK,CAAC,EACDH,kBAAkB,EAClBX,gBAAgB,EAChB/I,UACF,CACF,CAAC;MACH;MACA;IACF,KAAK,YAAY;IACjB,KAAK,OAAO;IACZ,KAAK,KAAK;IACV,KAAK,UAAU;IACf,KAAK,OAAO;IACZ,KAAK,UAAU;IACf,KAAK,MAAM;MACT;IACF;MACE,MAAM,IAAIM,KAAK,CACb,uCAAuCoJ,kBAAkB,EAC3D,CAAC;EACL;AACF;AAEA,SAASD,wBAAwBA,CAC/BC,kBAA+B,EAC/BX,gBAAkC,EAClC/I,UAA8B,EAC9B8F,YAAyC,EACnC;EACN,IAAI,CAACA,YAAY,EAAE;EACnB,QAAQA,YAAY,CAAC/D,IAAI;IACvB,KAAK,8BAA8B;MACjC,CACE/B,UAAU,EAAEqC,IAAI,CAACnC,CAAC,IAChBA,CAAC,CAACC,EAAE,KAAK2F,YAAY,CAACgE,4BAA4B,CAAC1C,WACrD,CAAC,GAAA5G,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHlC,SAAS,QAIP,+BAA+BkL,kBAAkB,qCAAqC5D,YAAY,CAACgE,4BAA4B,CAAC1C,WAAW,EAAE,IAJ/I5I,SAAS;MAMT,CACEuK,gBAAgB,CAAC3H,GAAG,CAClB0E,YAAY,CAACgE,4BAA4B,CAAC1C,WAC5C,CAAC,GAAA5G,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHHlC,SAAS,QAIP,+BAA+BkL,kBAAkB,mCAAmC5D,YAAY,CAACgE,4BAA4B,CAAC1C,WAAW,EAAE,IAJ7I5I,SAAS;MAMT;IACF,KAAK,aAAa;MAChB,EACEsH,YAAY,CAAC+B,WAAW,CAAC9F,IAAI,KACvB/B,UAAU,EAAE2C,IAAI,CAACzC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKuJ,kBAAkB,CAAC,EAAE3H,IAAI,IAAAvB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFhElC,SAAS,QAGP,sCAAsCkL,kBAAkB,sBAAsB,IAHhFlL,SAAS;MAKT;IACF,KAAK,cAAc;IACnB,KAAK,iCAAiC;IACtC,KAAK,oBAAoB;IACzB,KAAK,0BAA0B;IAC/B,KAAK,qBAAqB;IAC1B,KAAK,UAAU;MACb;IACF;MACE,MAAM,IAAI8B,KAAK,CACb,4CAA4CoJ,kBAAkB,EAChE,CAAC;EACL;AACF;AAEA,OAAO,SAASK,wBAAwBA,CACtC9F,GAAiE,EACjEK,UAAyB,EACzBJ,IAAY,EACN;EACN;EACA,CACE,GAAG1C,MAAM,CAACC,IAAI,CAACwC,GAAG,CAACe,sBAAsB,IAAI,CAAC,CAAC,CAAC,CACjD,CAAC7C,OAAO,CAAChC,EAAE,IAAI;IACd,EACEmE,UAAU,CAACjB,QAAQ,CAAClD,EAAE,CAAC,IAClBmE,UAAU,CAACjB,QAAQ,CAACxE,kBAAkB,CAACsB,EAAE,CAAC,CAAC,IAC1C8D,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,CAAC8E,mBAAmB,KAAK5E,SAAU,IACpE2J,iBAAiB,CAAC7J,EAAE,CAAC,IAAAK,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAJ5BlC,SAAS,QAKP,aAAa2B,EAAE,oCAAoC+D,IAAI,yCAAyC,IALlG1F,SAAS;EAOX,CAAC,CAAC;EACF,CACE,GAAGgD,MAAM,CAACC,IAAI,CAACwC,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,EAC9C,IAAGF,GAAG,CAACG,kBAAkB,IAAI,EAAE,EAChC,CAACjC,OAAO,CAAChC,EAAE,IAAI;IACd,EACEmE,UAAU,CAACjB,QAAQ,CAAClD,EAAE,CAAC,IAClBmE,UAAU,CAACjB,QAAQ,CAACxE,kBAAkB,CAACsB,EAAE,CAAC,CAAC,IAC3CmE,UAAU,CAACjB,QAAQ,CAACnE,gBAAgB,CAACiB,EAAE,CAAC,CAAC,IAAAK,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAHhDlC,SAAS,QAIP,YAAY2B,EAAE,oCAAoC+D,IAAI,EAAE,IAJ1D1F,SAAS;EAMX,CAAC,CAAC;AACJ;;AAEA;AACA;AACA,OAAO,SAASyL,8BAA8BA,CAC5ChG,GAAiE,EACjEK,UAAyB,EACzBtE,UAA6B,EAC7BkK,UAAmB,EACT;EACV,OAAO,CACL,IAAGA,UAAU,GAAG,CAACA,UAAU,CAAC,GAAG,EAAE,GACjC,GAAG1I,MAAM,CAACC,IAAI,CAACwC,GAAG,CAACe,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAAC7D,MAAM,CAAChB,EAAE,IACxDA,EAAE,KAAK+J,UACT,CAAC,EACD,GAAG5F,UAAU,CAACnD,MAAM,CAAChB,EAAE,IACrB,CAAC8D,GAAG,CAACe,sBAAsB,GAAG7E,EAAE,CAAC,IAAIH,UAAU,CAACqC,IAAI,CAACnC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKA,EAAE,CACvE,CAAC,CACF;AACH;AAEA,OAAO,SAASgK,yBAAyBA,CACvCd,iBAA2B,EAC3B5E,YAAyB,EACzB2F,aAAqB,EACf;EACN,MAAMC,WAAW,GAAG,IAAIzJ,GAAG,CAACyI,iBAAiB,CAAC;EAC9C,MAAMiB,iBAAiB,GAAG,CAAC,GAAG7F,YAAY,CAAC,CAACtD,MAAM,CAChDgI,KAAK,IAAI,CAACkB,WAAW,CAACjJ,GAAG,CAAC+H,KAAK,CACjC,CAAC;EACD,MAAMoB,oBAAoB,GAAGlB,iBAAiB,CAAClI,MAAM,CAACgI,KAAK,IACzD,CAAC1E,YAAY,CAACrD,GAAG,CAAC+H,KAAK,CACzB,CAAC;EACD,EACEoB,oBAAoB,CAACzJ,MAAM,KAAK,CAAC,IAC5BwJ,iBAAiB,CAACxJ,MAAM,KAAK,CAAC,IAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAFrClC,SAAS,QAGP,iCAAiC4L,aAAa,4EAA4EG,oBAAoB,uCAAuCD,iBAAiB,GAAG,IAH3M9L,SAAS;AAKX;AAEA,OAAO,SAASwL,iBAAiBA,CAAC5C,WAAmB,EAAW;EAC9D,OAAOA,WAAW,KAAK7H,uBAAuB,IACzC6H,WAAW,KAAK5H,iCAAiC,IACjD4H,WAAW,KAAK1H,iCAAiC,IACjD0H,WAAW,KAAKzH,iCAAiC;AACxD;AAEA,OAAO,SAAS6K,8BAA8BA,CAC5CvG,GAAsC,EAChC;EACNA,GAAG,CAACe,sBAAsB,GAAGxD,MAAM,CAACiJ,WAAW,CAC7CjJ,MAAM,CAAC+F,OAAO,CAACtD,GAAG,CAACe,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAC7C/E,GAAG,CAAC,CACH,CAACE,EAAE,EAAEuK,MAAM,CAAC,KACT,CAACC,yBAAyB,CAAC1G,GAAG,EAAE9D,EAAE,CAAC,EAAEuK,MAAM,CAAC,CACrD,CAAC;EACDzG,GAAG,CAACE,oBAAoB,GAAG3C,MAAM,CAACiJ,WAAW,CAC3CjJ,MAAM,CAAC+F,OAAO,CAACtD,GAAG,CAACE,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAC3ClE,GAAG,CAAC,CAAC,CAACE,EAAE,EAAE4G,KAAK,CAAC,KAAK,CAAClI,kBAAkB,CAACsB,EAAE,CAAC,EAAE4G,KAAK,CAAC,CACzD,CAAC;EACD9C,GAAG,CAACG,kBAAkB,GAAG,CAACH,GAAG,CAACG,kBAAkB,IAC3C,EAAE,EAAEnE,GAAG,CAACE,EAAE,IAAItB,kBAAkB,CAACsB,EAAE,CAAC,CAAC;EAC1C8D,GAAG,CAACvC,QAAQ,GAAGuC,GAAG,CAACvC,QAAQ,EAAEzB,GAAG,CAAC2K,OAAO,KAAK;IAC3C,GAAGA,OAAO;IACV5K,UAAU,EAAE4K,OAAO,CAAC5K,UAAU,CAACC,GAAG,CAACC,CAAC,IAAIyK,yBAAyB,CAAC1G,GAAG,EAAE/D,CAAC,CAAC;EAC3E,CAAC,CAAC,CAAC;AACL;;AAEA;AACA,OAAO,SAASyK,yBAAyBA,CACvC1G,GAAsC,EACtC4G,SAAiB,EACT;EACR,IAAI5G,GAAG,CAAC6G,0BAA0B,EAAE;IAClC,OAAOC,6BAA6B,CAAC9G,GAAG,EAAE4G,SAAS,CAAC;EACtD;EACA,OAAQb,iBAAiB,CAACa,SAAS,CAAC,IAC7B,CAACrJ,MAAM,CAACC,IAAI,CAACwC,GAAG,CAACf,aAAa,CAAC8H,YAAY,CAAC,CAAC3H,QAAQ,CACtDxE,kBAAkB,CAACgM,SAAS,CAC9B,CAAC,GACDA,SAAS,GACThM,kBAAkB,CAACgM,SAAS,CAAC;AACnC;AAEA,OAAO,SAASE,6BAA6BA,CAC3C9G,GAAsC,EACtC4G,SAAiB,EACT;EACR,OAAO5G,GAAG,CAACgH,6BAA6B,GAAGJ,SAAS,CAAC,KAC/CA,SAAS,CAACK,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAIN,SAAS,CAAC;AAChD;AAEA,OAAO,SAASO,qCAAqCA,CACnDjL,EAAU,EACV8D,GAA0B,EAC1BpE,SAA4C,EACD;EAC3C,MAAMkC,IAAI,GAAG3C,4BAA4B,CAAC6E,GAAG,CAAC;EAC9C,MAAMyB,KAAK,GAAGrG,6BAA6B,CAAC4E,GAAG,CAAC,GAC5CA,GAAG,CAACa,kBAAkB,CAACY,KAAK,GAC5BzB,GAAG,CAACyB,KAAK;EACb,MAAM0B,WAAW,GAAGvH,SAAS,CAACiL,0BAA0B,GACpDC,6BAA6B,CAAClL,SAAS,EAAEM,EAAE,CAAC,GAC5CA,EAAE;EACN,IAAIb,QAAQ,CAACyC,IAAI,CAAC,EAAE;IAClB,OAAO;MACLA,IAAI,EAAE,sBAAsB;MAC5BsJ,oBAAoB,EAAE7J,MAAM,CAACiJ,WAAW,CACtCjJ,MAAM,CAAC+F,OAAO,CAACxF,IAAI,CAACuJ,gBAAgB,CAAC,CAACrL,GAAG,CAAC,CAAC,CAACH,OAAO,EAAEyL,UAAU,CAAC,KAAK;QACnE,OAAO,CACLzL,OAAO,EACP4F,KAAK,GACD;UACA3D,IAAI,EAAE,+BAA+B;UACrCyJ,6BAA6B,EAAE;YAC7BpE,WAAW,EAAEA,WAAW;YACxBqE,kBAAkB,EAAE3L;UACtB;QACF,CAAC,GACC;UACAiC,IAAI,EAAE,2BAA2B;UACjC2J,yBAAyB,EAAE;YACzBtE,WAAW,EAAEA,WAAW;YACxBqE,kBAAkB,EAAE3L;UACtB;QACF,CAAC,CACJ;MACH,CAAC,CACH;IACF,CAAC;EACH;EACA,OAAO;IACLiC,IAAI,EAAE,gBAAgB;IACtB4J,cAAc,EAAE;MACd5J,IAAI,EAAE,aAAa;MACnBqF,WAAW,EAAEA;IACf;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"defineAction.js","names":["invariant","convertConditionDefinition","isActionParameterTypePrimitive","cloneDefinition","OntologyEntityTypeEnum","uppercaseFirstLetter","addNamespaceIfNone","importedTypes","namespace","ontologyDefinition","updateOntology","withoutNamespace","getFlattenedInterfaceProperties","getInterfacePropertyTypeType","isInterfaceSharedPropertyType","isStruct","MODIFY_OBJECT_PARAMETER","CREATE_OR_MODIFY_OBJECT_PARAMETER","DELETE_OBJECT_PARAMETER","CREATE_INTERFACE_OBJECT_PARAMETER","MODIFY_INTERFACE_OBJECT_PARAMETER","defineAction","actionDefInput","actionDef","apiName","parameterIds","parameters","map","p","id","ACTION_TYPE","undefined","Error","test","process","env","NODE_ENV","parameterIdsSet","Set","size","length","parameterIdsNotFound","Array","from","referencedParameterIds","filter","has","JSON","stringify","definedSectionIds","Object","keys","sections","undefinedSectionsInOrdering","formContentOrdering","flatMap","s","type","sectionId","sId","rules","forEach","rule","some","modifyObjectRule","objectToModify","deleteObjectRule","objectToDelete","interfaceParam","find","modifyInterfaceRule","interfaceObjectToModifyParameter","interfaceReference","interfaceTypeRid","interfaceReferenceList","INTERFACE_TYPE","interfaceType","sharedPropertyValues","spt","includes","addInterfaceRule","interfaceApiName","fullAction","entities","affectedInterfaceTypes","affectedObjectTypes","affectedLinkTypes","typeGroups","__type","validateActionConfiguration","isPropertyParameter","def","name","nonParameterMappings","excludedProperties","objectType","properties","createParameters","propertyMap","parameterSet","requiredMap","targetParams","getTargetParameters","propertyMetadata","sharedPropertyType","displayName","parameterConfiguration","customParameterType","extractActionParameterType","validation","allowedValues","extractAllowedValuesFromActionParameterType","extractAllowedValuesFromPropertyType","required","nullability","noNulls","array","listLength","noEmptyCollections","min","defaultValue","description","renderHint","push","objectReferenceList","objectTypeId","objectReference","delete","maybeCreateObjectOption","autoGenerated","primaryKeyOption","userInput","objectTypeReference","interfaceTypeRids","interfaceTypes","oneOf","label","value","values","pId","add","item","parameterId","sanitize","objectTypeParameter","entries","k","v","addObjectRule","propertyValues","addOrModifyObjectRuleV2","staticValue","integer","max","markingType","pt","typeType","maybeAddList","kebab","replace","toLowerCase","convertValidationRule","actionValidation","actionParameters","condition","displayMetadata","failureMessage","typeClasses","action","seenParameterIds","parameterMap","reduce","acc","param","orderedParameters","parameterOrdering","conditionalOverrides","override","validateParameterCondition","validateParameterPrefill","currentParameterId","overrideParamId","conditions","c","objectParameterPropertyValue","validateActionParameters","isTargetParameter","createDefaultParameterOrdering","priorityId","validateParameterOrdering","actionApiName","orderingSet","missingParameters","extraneousParameters","addNamespaceToActionDefinition","fromEntries","config","getInterfaceParameterName","section","parameter","useNonNamespacedParameters","getNonNamespacedParameterName","propertiesV2","conflictingParameterOverrides","split","pop","createInterfacePropertyLogicRuleValue","structLogicRuleValue","structDefinition","fieldValue","structListParameterFieldValue","structFieldApiName","structParameterFieldValue","logicRuleValue"],"sources":["defineAction.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 OntologyIrInterfacePropertyLogicRuleValue,\n OntologyIrParameterPrefill,\n ParameterId,\n} from \"@osdk/client.unstable\";\nimport invariant from \"tiny-invariant\";\nimport { convertConditionDefinition } from \"../conversion/toMarketplace/convertConditionDefinition.js\";\nimport type { ActionLevelValidationDefinition } from \"./action/ActionLevelValidationDefinition.js\";\nimport { type ActionParameter } from \"./action/ActionParameter.js\";\nimport type { ActionParameterAllowedValues } from \"./action/ActionParameterAllowedValues.js\";\nimport type { ActionParameterConfiguration } from \"./action/ActionParameterConfiguration.js\";\nimport {\n type ActionParameterType,\n type ActionParameterTypePrimitive,\n isActionParameterTypePrimitive,\n} from \"./action/ActionParameterType.js\";\nimport type { ActionSection } from \"./action/ActionSection.js\";\nimport type { ActionStatus } from \"./action/ActionStatus.js\";\nimport { type ActionType } from \"./action/ActionType.js\";\nimport type { ActionValidationRule } from \"./action/ActionValidationRule.js\";\nimport type { ConditionDefinition } from \"./action/ConditionDefinition.js\";\nimport type { DefaultFormat } from \"./action/DefaultFormat.js\";\nimport type { MappingValue } from \"./action/MappingValue.js\";\nimport type { SubmissionMetadata } from \"./action/SubmissionMetadata.js\";\nimport type { TableConfiguration } from \"./action/TableConfiguration.js\";\nimport { cloneDefinition } from \"./cloneDefinition.js\";\nimport type { BlueprintIcon } from \"./common/BlueprintIcons.js\";\nimport { OntologyEntityTypeEnum } from \"./common/OntologyEntityTypeEnum.js\";\nimport { uppercaseFirstLetter } from \"./defineObject.js\";\nimport {\n addNamespaceIfNone,\n importedTypes,\n namespace,\n ontologyDefinition,\n updateOntology,\n withoutNamespace,\n} from \"./defineOntology.js\";\nimport { getFlattenedInterfaceProperties } from \"./interface/getFlattenedInterfaceProperties.js\";\nimport {\n getInterfacePropertyTypeType,\n type InterfaceDefinedProperty,\n type InterfacePropertyType,\n isInterfaceSharedPropertyType,\n} from \"./interface/InterfacePropertyType.js\";\nimport type { InterfaceType } from \"./interface/InterfaceType.js\";\nimport type { ObjectPropertyType } from \"./object/ObjectPropertyType.js\";\nimport type { ObjectPropertyTypeUserDefinition } from \"./object/ObjectPropertyTypeUserDefinition.js\";\nimport type { ObjectTypeDefinition } from \"./object/ObjectTypeDefinition.js\";\nimport {\n isStruct,\n type PropertyTypeType,\n} from \"./properties/PropertyTypeType.js\";\n\nexport const MODIFY_OBJECT_PARAMETER: string = \"objectToModifyParameter\";\n\nexport const CREATE_OR_MODIFY_OBJECT_PARAMETER: string =\n \"objectToCreateOrModifyParameter\";\n\nexport const DELETE_OBJECT_PARAMETER: string = \"objectToDeleteParameter\";\n\nexport const CREATE_INTERFACE_OBJECT_PARAMETER: string = \"objectTypeParameter\";\n\nexport const MODIFY_INTERFACE_OBJECT_PARAMETER: string =\n \"interfaceObjectToModifyParameter\";\n\nexport type ActionTypeDefinition = Omit<ActionType, \"__type\">;\n\nexport type ActionTypeUserDefinition = {\n objectType: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<ParameterId>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Used for Create or Modify actions\n primaryKeyOption?: \"autoGenerated\" | \"userInput\";\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport type InterfaceActionTypeUserDefinition = {\n interfaceType: InterfaceType;\n objectType?: ObjectTypeDefinition;\n apiName?: string;\n displayName?: string;\n status?: ActionStatus;\n parameterConfiguration?: Record<string, ActionParameterConfiguration>;\n nonParameterMappings?: Record<string, MappingValue>;\n actionLevelValidation?: ActionLevelValidationDefinition;\n excludedProperties?: Array<string>;\n sections?: Array<ActionSection>;\n defaultFormat?: DefaultFormat;\n enableLayoutSwitch?: boolean;\n tableConfiguration?: TableConfiguration;\n parameterOrdering?: Array<string>;\n submissionMetadata?: SubmissionMetadata;\n // Use the below options for Java OSDK compatibility\n useNonNamespacedParameters?: boolean;\n conflictingParameterOverrides?: Record<string, string>;\n icon?: { locator: BlueprintIcon; color: string };\n};\n\nexport function defineAction(actionDefInput: ActionTypeDefinition): ActionType {\n const actionDef = cloneDefinition(actionDefInput);\n const apiName = namespace + actionDef.apiName;\n const parameterIds = (actionDef.parameters ?? []).map(p => p.id);\n\n if (\n ontologyDefinition[OntologyEntityTypeEnum.ACTION_TYPE][apiName]\n !== undefined\n ) {\n throw new Error(\n `Action type with apiName ${actionDef.apiName} is already defined`,\n );\n }\n invariant(\n /^[a-z0-9]+(-[a-z0-9]+)*$/.test(actionDef.apiName),\n `Action type apiName \"${actionDef.apiName}\" must be alphanumeric, lowercase, and kebab-case`,\n );\n\n const parameterIdsSet = new Set(parameterIds);\n invariant(\n parameterIdsSet.size === parameterIds.length,\n `Parameter ids must be unique`,\n );\n\n const parameterIdsNotFound = Array.from(referencedParameterIds(actionDef))\n .filter(p => !parameterIdsSet.has(p));\n invariant(\n parameterIdsNotFound.length === 0,\n `Parameters ${\n JSON.stringify(parameterIdsNotFound)\n } were referenced but not defined`,\n );\n\n const definedSectionIds = new Set(Object.keys(actionDef.sections ?? []));\n const undefinedSectionsInOrdering = (actionDef.formContentOrdering ?? [])\n .flatMap(\n s => s.type === \"parameterId\" ? [] : [s.sectionId],\n ).filter(sId => !definedSectionIds.has(sId));\n invariant(\n undefinedSectionsInOrdering.length === 0,\n `Sections [${undefinedSectionsInOrdering}] were referenced in content ordering but not defined`,\n );\n\n invariant(\n actionDef.rules.length > 0,\n `Action type ${actionDef.apiName} must have at least one logic rule`,\n );\n actionDef.rules.forEach(rule => {\n if (rule.type === \"modifyObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.modifyObjectRule.objectToModify),\n `Object to modify parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"deleteObjectRule\") {\n invariant(\n parameterIds.some(id => id === rule.deleteObjectRule.objectToDelete),\n `Object to delete parameter must be defined in parameters`,\n );\n }\n if (rule.type === \"modifyInterfaceRule\") {\n // The there must be a parameter for the interface, and the interface there must exist\n const interfaceParam = actionDef.parameters!.find(p =>\n p.id === rule.modifyInterfaceRule.interfaceObjectToModifyParameter\n );\n invariant(\n interfaceParam !== undefined && typeof interfaceParam.type === \"object\"\n && (interfaceParam.type.type === \"interfaceReference\"\n || interfaceParam.type.type === \"interfaceReferenceList\"),\n `Interface object to modify parameter must be an interface reference`,\n );\n const interfaceReference =\n interfaceParam.type.type === \"interfaceReference\"\n ? interfaceParam.type.interfaceReference.interfaceTypeRid\n : interfaceParam.type.interfaceReferenceList.interfaceTypeRid;\n invariant(\n ontologyDefinition.INTERFACE_TYPE[interfaceReference] !== undefined\n || importedTypes.INTERFACE_TYPE[interfaceReference] !== undefined,\n `Interface type ${interfaceReference} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n const interfaceType =\n ontologyDefinition.INTERFACE_TYPE[interfaceReference];\n Object.keys(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType))\n .includes(spt),\n `Shared property type ${spt} does not exist in interface type ${interfaceReference}`,\n );\n },\n );\n }\n if (rule.type === \"addInterfaceRule\") {\n // The referenced interface must exist globally\n const interfaceType = ontologyDefinition\n .INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName]\n ?? importedTypes.INTERFACE_TYPE[rule.addInterfaceRule.interfaceApiName];\n invariant(\n interfaceType !== undefined,\n `Interface type ${rule.addInterfaceRule.interfaceApiName} does not exist`,\n );\n\n // All referenced SPTs must exist on the interface\n Object.keys(rule.addInterfaceRule.sharedPropertyValues).forEach(spt => {\n invariant(\n Object.keys(getFlattenedInterfaceProperties(interfaceType)).includes(\n spt,\n ),\n `Shared property type ${spt} does not exist in interface type ${interfaceType.apiName}`,\n );\n });\n }\n });\n\n const fullAction = {\n ...actionDef,\n apiName: apiName,\n entities: actionDef.entities ?? {\n affectedInterfaceTypes: [],\n affectedObjectTypes: [],\n affectedLinkTypes: [],\n typeGroups: [],\n },\n __type: OntologyEntityTypeEnum.ACTION_TYPE,\n } as ActionType;\n validateActionConfiguration(fullAction);\n updateOntology(fullAction);\n return fullAction;\n}\n\nexport function isPropertyParameter(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n name: string,\n type: PropertyTypeType,\n): boolean {\n if (\"interfaceType\" in def) {\n return (Object.keys(getFlattenedInterfaceProperties(def.interfaceType))\n .includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name));\n }\n return (\n Object.keys(def.objectType.properties ?? {}).includes(name)\n && !Object.keys(def.nonParameterMappings ?? {}).includes(name)\n && !isStruct(type)\n && !def.excludedProperties?.includes(name)\n );\n}\n\nexport function createParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n propertyMap:\n | Record<string, ObjectPropertyTypeUserDefinition>\n | Record<string, InterfacePropertyType>,\n parameterSet: Set<string>,\n requiredMap?: Record<string, boolean>,\n): Array<ActionParameter> {\n const targetParams = getTargetParameters(def, parameterSet);\n return [\n ...targetParams,\n ...Array.from(parameterSet).map(\n id => {\n let propertyMetadata = undefined;\n if (id in propertyMap) {\n propertyMetadata = \"sharedPropertyType\" in propertyMap[id]\n ? propertyMap[id].sharedPropertyType\n : propertyMap[id];\n }\n return {\n id,\n displayName: def.parameterConfiguration?.[id]?.displayName\n ?? propertyMetadata?.displayName\n ?? uppercaseFirstLetter(id),\n type: def.parameterConfiguration?.[id]?.customParameterType\n ?? extractActionParameterType(propertyMetadata!),\n validation: (def.parameterConfiguration?.[id] !== undefined)\n ? {\n ...def.parameterConfiguration?.[id],\n allowedValues: def.parameterConfiguration?.[id].allowedValues\n ?? (def.parameterConfiguration?.[id].customParameterType\n ? extractAllowedValuesFromActionParameterType(\n def.parameterConfiguration?.[id].customParameterType,\n )\n : extractAllowedValuesFromPropertyType(\n propertyMetadata!.type,\n )),\n required: def.parameterConfiguration?.[id].required\n ?? (propertyMetadata?.nullability?.noNulls\n ?? false),\n }\n : {\n required: (propertyMetadata!.array ?? false)\n ? {\n listLength: propertyMetadata!.nullability\n ?.noEmptyCollections\n ? { min: 1 }\n : {},\n }\n : requiredMap?.[id]\n ?? propertyMetadata?.nullability?.noNulls\n ?? false,\n allowedValues: extractAllowedValuesFromPropertyType(\n propertyMetadata?.type!,\n ),\n },\n defaultValue: def.parameterConfiguration?.[id]?.defaultValue,\n description: def.parameterConfiguration?.[id]?.description,\n renderHint: def.parameterConfiguration?.[id]?.renderHint,\n };\n },\n ),\n ];\n}\n\nfunction getTargetParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n parameterSet: Set<string>,\n): Array<ActionParameter> {\n const targetParams: Array<ActionParameter> = [];\n parameterSet.forEach(name => {\n if (name === MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Modify object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_OBJECT_PARAMETER);\n }\n if (name === CREATE_OR_MODIFY_OBJECT_PARAMETER) {\n targetParams.push({\n id: CREATE_OR_MODIFY_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Create or modify object\",\n type: {\n type: \"objectReference\",\n objectReference: {\n objectTypeId: def.objectType!.apiName,\n maybeCreateObjectOption: !(\"primaryKeyOption\" in def)\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : (def.primaryKeyOption === \"autoGenerated\")\n ? {\n type: \"autoGenerated\",\n autoGenerated: {},\n }\n : {\n type: \"userInput\",\n userInput: {},\n },\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_OR_MODIFY_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && !(\"interfaceType\" in def)) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectReference\",\n objectReference: { objectTypeId: def.objectType!.apiName },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n allowedValues: { type: \"objectQuery\" },\n required: def.parameterConfiguration?.[name]?.required ?? true,\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n if (name === CREATE_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: CREATE_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to create\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"objectReferenceList\",\n objectReferenceList: { objectTypeId: def.objectType!.apiName },\n }\n : {\n type: \"objectTypeReference\",\n objectTypeReference: {\n interfaceTypeRids: [def.interfaceType.apiName],\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? {\n type: \"objectTypeReference\",\n interfaceTypes: [def.interfaceType.apiName],\n }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(CREATE_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === MODIFY_INTERFACE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: MODIFY_INTERFACE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Object type to modify\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(MODIFY_INTERFACE_OBJECT_PARAMETER);\n }\n if (name === DELETE_OBJECT_PARAMETER && \"interfaceType\" in def) {\n targetParams.push({\n id: DELETE_OBJECT_PARAMETER,\n displayName: def.parameterConfiguration?.[name]?.displayName\n ?? \"Delete Object\",\n type: (typeof def.parameterConfiguration?.[name]?.required === \"object\"\n && \"listLength\" in def.parameterConfiguration?.[name]?.required)\n ? {\n type: \"interfaceReferenceList\",\n interfaceReferenceList: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n }\n : {\n type: \"interfaceReference\",\n interfaceReference: {\n interfaceTypeRid: def.interfaceType.apiName,\n },\n },\n validation: {\n ...def.parameterConfiguration?.[name],\n required: true,\n allowedValues: def.objectType === undefined\n ? { type: \"interfaceObjectQuery\" }\n : {\n type: \"oneOf\",\n oneOf: [{\n label: def.objectType.displayName,\n value: {\n type: \"objectType\",\n objectType: { objectTypeId: def.objectType.apiName },\n },\n }],\n },\n },\n defaultValue: def.parameterConfiguration?.[name]?.defaultValue,\n description: def.parameterConfiguration?.[name]?.description,\n });\n parameterSet.delete(DELETE_OBJECT_PARAMETER);\n }\n });\n return targetParams;\n}\n\nfunction referencedParameterIds(\n actionDef: ActionTypeDefinition,\n): Set<ParameterId> {\n const parameterIds: Set<ParameterId> = new Set();\n\n // section definitions\n Object.values(actionDef.sections ?? {})\n .flatMap(p => p.parameters).forEach(pId => parameterIds.add(pId));\n\n // form content ordering\n (actionDef.formContentOrdering ?? []).forEach(item => {\n if (item.type === \"parameterId\") {\n parameterIds.add(item.parameterId);\n }\n });\n\n // logic rules\n actionDef.rules.forEach(rule => {\n // when visiting each rule, we also do drive-by namespace prefixing\n switch (rule.type) {\n case \"addInterfaceRule\":\n rule.addInterfaceRule.interfaceApiName = sanitize(\n rule.addInterfaceRule.interfaceApiName,\n );\n parameterIds.add(rule.addInterfaceRule.objectTypeParameter);\n Object.entries(rule.addInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.addInterfaceRule.sharedPropertyValues[k];\n rule.addInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n },\n );\n break;\n case \"modifyInterfaceRule\":\n parameterIds.add(\n rule.modifyInterfaceRule.interfaceObjectToModifyParameter,\n );\n Object.entries(rule.modifyInterfaceRule.sharedPropertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n delete rule.modifyInterfaceRule.sharedPropertyValues[k];\n rule.modifyInterfaceRule.sharedPropertyValues[sanitize(k)] = v;\n },\n );\n break;\n case \"addObjectRule\":\n Object.entries(rule.addObjectRule.propertyValues).forEach(([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n });\n break;\n case \"modifyObjectRule\":\n Object.entries(rule.modifyObjectRule.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n case \"addOrModifyObjectRuleV2\":\n Object.entries(rule.addOrModifyObjectRuleV2.propertyValues).forEach(\n ([k, v]) => {\n if (v.type === \"parameterId\") {\n parameterIds.add(v.parameterId);\n }\n },\n );\n break;\n }\n });\n return parameterIds;\n}\n\nfunction extractAllowedValuesFromActionParameterType(\n type: ActionParameterType,\n): ActionParameterAllowedValues {\n if (typeof type === \"object\") {\n switch (type.type) {\n case \"objectReference\":\n case \"objectReferenceList\":\n return { type: \"objectQuery\" };\n case \"struct\":\n case \"structList\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\n `Inferred allowed values for ${type.type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n }\n switch (type) {\n case \"boolean\":\n case \"booleanList\":\n return { type: \"boolean\" };\n case \"integer\":\n case \"integerList\":\n case \"decimal\":\n case \"decimalList\":\n case \"double\":\n case \"doubleList\":\n case \"long\":\n case \"longList\":\n return { type: \"range\" };\n case \"timestamp\":\n case \"timestampList\":\n case \"date\":\n case \"dateList\":\n return { type: \"datetime\" };\n case \"string\":\n case \"stringList\":\n return { type: \"text\" };\n case \"geohash\":\n case \"geohashList\":\n return { type: \"geohash\" };\n case \"geoshape\":\n case \"geoshapeList\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n case \"mediaReferenceList\":\n return { type: \"mediaReference\" };\n case \"geotimeSeriesReference\":\n case \"geotimeSeriesReferenceList\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n case \"attachmentList\":\n return { type: \"attachment\" };\n default:\n throw new Error(\n `Inferred allowed values for ${type} not yet supported. Please explicitly provide allowed values.`,\n );\n }\n}\n\nfunction extractAllowedValuesFromPropertyType(\n type: PropertyTypeType,\n): ActionParameterAllowedValues {\n switch (type) {\n case \"boolean\":\n return { type: \"boolean\" };\n case \"byte\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 255 },\n },\n };\n case \"timestamp\":\n case \"date\":\n return { type: \"datetime\" };\n case \"decimal\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n return { type: \"range\" };\n case \"short\":\n return {\n type: \"range\",\n min: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 0 },\n },\n max: {\n type: \"staticValue\",\n staticValue: { type: \"integer\", integer: 65535 },\n },\n };\n case \"string\":\n return { type: \"text\" };\n case \"geopoint\":\n return { type: \"geohash\" };\n case \"geoshape\":\n return { type: \"geoshape\" };\n case \"mediaReference\":\n return { type: \"mediaReference\" };\n case \"geotimeSeries\":\n return { type: \"geotimeSeriesReference\" };\n case \"attachment\":\n return { type: \"attachment\" };\n default:\n switch (type.type) {\n case \"marking\":\n return type.markingType === \"CBAC\"\n ? { type: \"cbacMarking\" }\n : { type: \"mandatoryMarking\" };\n case \"string\":\n return { type: \"text\" };\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(\"Unknown type\");\n }\n break;\n }\n}\n\nfunction extractActionParameterType(\n pt:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n const typeType = pt.type;\n if (typeof typeType === \"object\") {\n switch (typeType.type) {\n case \"marking\":\n return maybeAddList(\"marking\", pt);\n case \"string\":\n return maybeAddList(\"string\", pt);\n case \"struct\":\n throw new Error(\"Structs are not supported yet\");\n default:\n throw new Error(`Unknown type`);\n }\n }\n if (\n typeof typeType === \"string\" && isActionParameterTypePrimitive(typeType)\n ) {\n return maybeAddList(typeType, pt);\n }\n switch (typeType) {\n case \"byte\":\n case \"short\":\n return maybeAddList(\"integer\", pt);\n case \"geopoint\":\n return maybeAddList(\"geohash\", pt);\n case \"float\":\n return maybeAddList(\"double\", pt);\n case \"geotimeSeries\":\n return maybeAddList(\"geotimeSeriesReference\", pt);\n default:\n throw new Error(\"Unknown type\");\n }\n}\n\nfunction maybeAddList(\n type: ActionParameterTypePrimitive,\n pt:\n | InterfaceDefinedProperty\n | ObjectPropertyType\n | ObjectPropertyTypeUserDefinition,\n): ActionParameterType {\n return ((pt.array ?? false) ? type + \"List\" : type) as ActionParameterType;\n}\n\nexport function kebab(s: string): string {\n return s\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/([A-Z])([A-Z][a-z])/g, \"$1-$2\")\n .replace(/\\./g, \"-\")\n .toLowerCase();\n}\n\nfunction sanitize(s: string): string {\n return s.includes(\".\") ? s : namespace + s;\n}\n\nexport function convertValidationRule(\n actionValidation: ActionLevelValidationDefinition,\n actionParameters?: ActionParameter[],\n): Array<ActionValidationRule> {\n return actionValidation.map(rule => {\n return {\n condition: convertConditionDefinition(rule.condition, actionParameters),\n displayMetadata: rule.displayMetadata ?? {\n failureMessage: \"Did not satisfy validation\",\n typeClasses: [],\n },\n };\n });\n}\n\nfunction validateActionConfiguration(action: ActionType): void {\n const seenParameterIds = new Set<ParameterId>();\n const parameterMap: Record<string, ActionParameter> =\n action.parameters?.reduce((acc, param) => {\n acc[param.id] = param;\n return acc;\n }, {} as Record<string, ActionParameter>) ?? {};\n const orderedParameters =\n action.parameterOrdering?.map(id => parameterMap[id]) ?? action.parameters;\n orderedParameters?.forEach(param => {\n param.validation.conditionalOverrides?.forEach(override => {\n validateParameterCondition(\n override.condition,\n param.id,\n seenParameterIds,\n action.parameters,\n );\n });\n validateParameterPrefill(\n param.id,\n seenParameterIds,\n action.parameters,\n param.defaultValue,\n );\n seenParameterIds.add(param.id);\n });\n}\n\nfunction validateParameterCondition(\n condition: ConditionDefinition,\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n): void {\n switch (condition.type) {\n case \"parameter\":\n const overrideParamId = condition.parameterId;\n invariant(\n parameters?.some(p => p.id === overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing unknown parameter ${overrideParamId}`,\n );\n invariant(\n overrideParamId !== currentParameterId,\n `Parameter condition on ${currentParameterId} is referencing itself`,\n );\n invariant(\n seenParameterIds.has(overrideParamId),\n `Parameter condition on ${currentParameterId} is referencing later parameter ${overrideParamId}`,\n );\n break;\n case \"and\":\n // this will not catch the niche edge case where users use the full syntax for unions\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"or\":\n if (\"conditions\" in condition) {\n condition.conditions.forEach(c =>\n validateParameterCondition(\n c,\n currentParameterId,\n seenParameterIds,\n parameters,\n )\n );\n }\n break;\n case \"comparison\":\n case \"group\":\n case \"not\":\n case \"markings\":\n case \"regex\":\n case \"redacted\":\n case \"true\":\n break;\n default:\n throw new Error(\n `Unknown condition type on parameter ${currentParameterId}`,\n );\n }\n}\n\nfunction validateParameterPrefill(\n currentParameterId: ParameterId,\n seenParameterIds: Set<ParameterId>,\n parameters?: ActionParameter[],\n defaultValue?: OntologyIrParameterPrefill,\n): void {\n if (!defaultValue) return;\n switch (defaultValue.type) {\n case \"objectParameterPropertyValue\":\n invariant(\n parameters?.some(p =>\n p.id === defaultValue.objectParameterPropertyValue.parameterId\n ),\n `Default value for parameter ${currentParameterId} is referencing unknown parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n invariant(\n seenParameterIds.has(\n defaultValue.objectParameterPropertyValue.parameterId,\n ),\n `Default value for parameter ${currentParameterId} is referencing later parameter ${defaultValue.objectParameterPropertyValue.parameterId}`,\n );\n break;\n case \"staticValue\":\n invariant(\n defaultValue.staticValue.type\n === parameters?.find(p => p.id === currentParameterId)?.type,\n `Default static value for parameter ${currentParameterId} does not match type`,\n );\n break;\n case \"staticObject\":\n case \"interfaceParameterPropertyValue\":\n case \"objectQueryPrefill\":\n case \"objectQueryPropertyValue\":\n case \"objectSetRidPrefill\":\n case \"redacted\":\n break;\n default:\n throw new Error(\n `Unknown default value type for parameter ${currentParameterId}`,\n );\n }\n}\n\nexport function validateActionParameters(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n name: string,\n): void {\n // validates that parameters either exist as object properties or have a type defined\n [\n ...Object.keys(def.parameterConfiguration ?? {}),\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || (def.parameterConfiguration?.[id].customParameterType !== undefined)\n || isTargetParameter(id),\n `Parameter ${id} does not exist as a property on ${name} and its type is not explicitly defined`,\n );\n });\n [\n ...Object.keys(def.nonParameterMappings ?? {}),\n ...def.excludedProperties ?? [],\n ].forEach(id => {\n invariant(\n properties.includes(id)\n || properties.includes(addNamespaceIfNone(id))\n || properties.includes(withoutNamespace(id)),\n `Property ${id} does not exist as a property on ${name}`,\n );\n });\n}\n\n// Parameters with configurations will be ordered first in the order they were defined\n// followed by the rest of the parameters in the order they were defined on the object type.\nexport function createDefaultParameterOrdering(\n def: ActionTypeUserDefinition | InterfaceActionTypeUserDefinition,\n properties: Array<string>,\n parameters: ActionParameter[],\n priorityId?: string,\n): string[] {\n return [\n ...priorityId ? [priorityId] : [],\n ...Object.keys(def.parameterConfiguration ?? {}).filter(id =>\n id !== priorityId\n ),\n ...properties.filter(id =>\n !def.parameterConfiguration?.[id] && parameters.some(p => p.id === id)\n ),\n ];\n}\n\nexport function validateParameterOrdering(\n parameterOrdering: string[],\n parameterSet: Set<string>,\n actionApiName: string,\n): void {\n const orderingSet = new Set(parameterOrdering);\n const missingParameters = [...parameterSet].filter(\n param => !orderingSet.has(param),\n );\n const extraneousParameters = parameterOrdering.filter(param =>\n !parameterSet.has(param)\n );\n invariant(\n extraneousParameters.length === 0\n && missingParameters.length === 0,\n `Action parameter ordering for ${actionApiName} does not match expected parameters. Extraneous parameters in ordering: {${extraneousParameters}}, Missing parameters in ordering: {${missingParameters}}`,\n );\n}\n\nexport function isTargetParameter(parameterId: string): boolean {\n return parameterId === MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_OR_MODIFY_OBJECT_PARAMETER\n || parameterId === CREATE_INTERFACE_OBJECT_PARAMETER\n || parameterId === MODIFY_INTERFACE_OBJECT_PARAMETER;\n}\n\nexport function addNamespaceToActionDefinition(\n def: InterfaceActionTypeUserDefinition,\n): void {\n def.parameterConfiguration = Object.fromEntries(\n Object.entries(def.parameterConfiguration ?? {})\n .map((\n [id, config],\n ) => [getInterfaceParameterName(def, id), config]),\n );\n def.nonParameterMappings = Object.fromEntries(\n Object.entries(def.nonParameterMappings ?? {})\n .map(([id, value]) => [addNamespaceIfNone(id), value]),\n );\n def.excludedProperties = (def.excludedProperties\n ?? []).map(id => addNamespaceIfNone(id));\n def.sections = def.sections?.map(section => ({\n ...section,\n parameters: section.parameters.map(p => getInterfaceParameterName(def, p)),\n }));\n}\n\n// Adds a namespace to an interface parameter name if it is supposed to be namespaced\nexport function getInterfaceParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n if (def.useNonNamespacedParameters) {\n return getNonNamespacedParameterName(def, parameter);\n }\n return (isTargetParameter(parameter)\n || !Object.keys(def.interfaceType.propertiesV2).includes(\n addNamespaceIfNone(parameter),\n ))\n ? parameter\n : addNamespaceIfNone(parameter);\n}\n\nexport function getNonNamespacedParameterName(\n def: InterfaceActionTypeUserDefinition,\n parameter: string,\n): string {\n return def.conflictingParameterOverrides?.[parameter]\n ?? (parameter.split(\".\").pop() || parameter);\n}\n\nexport function createInterfacePropertyLogicRuleValue(\n id: string,\n def: InterfacePropertyType,\n actionDef: InterfaceActionTypeUserDefinition,\n): OntologyIrInterfacePropertyLogicRuleValue {\n const type = getInterfacePropertyTypeType(def);\n const array = isInterfaceSharedPropertyType(def)\n ? def.sharedPropertyType.array\n : def.array;\n const parameterId = actionDef.useNonNamespacedParameters\n ? getNonNamespacedParameterName(actionDef, id)\n : id;\n if (isStruct(type)) {\n return {\n type: \"structLogicRuleValue\",\n structLogicRuleValue: Object.fromEntries(\n Object.entries(type.structDefinition).map(([apiName, fieldValue]) => {\n return [\n apiName,\n array\n ? {\n type: \"structListParameterFieldValue\",\n structListParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n }\n : {\n type: \"structParameterFieldValue\",\n structParameterFieldValue: {\n parameterId: parameterId,\n structFieldApiName: apiName,\n },\n },\n ];\n }),\n ),\n };\n }\n return {\n type: \"logicRuleValue\",\n logicRuleValue: {\n type: \"parameterId\",\n parameterId: parameterId,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,10 +15,12 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { convertInterfacePropertyMappingValue, convertMappingValue } from "../conversion/toMarketplace/convertMappingValue.js";
|
|
18
|
+
import { cloneDefinition } from "./cloneDefinition.js";
|
|
18
19
|
import { convertValidationRule, CREATE_INTERFACE_OBJECT_PARAMETER, createDefaultParameterOrdering, createParameters, defineAction, getInterfaceParameterName, getNonNamespacedParameterName, isPropertyParameter, kebab, validateActionParameters, validateParameterOrdering } from "./defineAction.js";
|
|
19
20
|
import { getFlattenedInterfaceProperties } from "./interface/getFlattenedInterfaceProperties.js";
|
|
20
21
|
import { getInterfacePropertyTypeType, isInterfaceSharedPropertyType } from "./interface/InterfacePropertyType.js";
|
|
21
|
-
export function defineCreateInterfaceObjectAction(
|
|
22
|
+
export function defineCreateInterfaceObjectAction(defInput) {
|
|
23
|
+
const def = cloneDefinition(defInput);
|
|
22
24
|
const allProperties = getFlattenedInterfaceProperties(def.interfaceType);
|
|
23
25
|
validateActionParameters(def, Object.keys(allProperties), def.interfaceType.apiName);
|
|
24
26
|
const actionInterfaceProperties = Object.entries(allProperties).filter(([apiName, type]) => isPropertyParameter(def, apiName, getInterfacePropertyTypeType(type)));
|