@osdk/generator 2.8.0-beta.25 → 2.8.0-beta.26
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 +13 -0
- package/build/browser/GenerateContext/EnhancedAction.js +13 -0
- package/build/browser/GenerateContext/EnhancedAction.js.map +1 -1
- package/build/browser/GenerateContext/GenerateContext.js.map +1 -1
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js +1 -4
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -1
- package/build/browser/v2.0/generatePerActionDataFiles.js +2 -6
- package/build/browser/v2.0/generatePerActionDataFiles.js.map +1 -1
- package/build/cjs/index.cjs +16 -73
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/GenerateContext/EnhancedAction.js +13 -0
- package/build/esm/GenerateContext/EnhancedAction.js.map +1 -1
- package/build/esm/GenerateContext/GenerateContext.js.map +1 -1
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js +1 -4
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -1
- package/build/esm/v2.0/generatePerActionDataFiles.js +2 -6
- package/build/esm/v2.0/generatePerActionDataFiles.js.map +1 -1
- package/build/types/GenerateContext/EnhancedAction.d.ts +2 -0
- package/build/types/GenerateContext/EnhancedAction.d.ts.map +1 -1
- package/build/types/GenerateContext/GenerateContext.d.ts +0 -2
- package/build/types/GenerateContext/GenerateContext.d.ts.map +1 -1
- package/build/types/v2.0/generateClientSdkVersionTwoPointZero.d.ts.map +1 -1
- package/build/types/v2.0/generatePerActionDataFiles.d.ts +1 -1
- package/build/types/v2.0/generatePerActionDataFiles.d.ts.map +1 -1
- package/package.json +3 -3
- package/build/browser/shared/sanitizeMetadata.js +0 -42
- package/build/browser/shared/sanitizeMetadata.js.map +0 -1
- package/build/esm/shared/sanitizeMetadata.js +0 -42
- package/build/esm/shared/sanitizeMetadata.js.map +0 -1
- package/build/types/shared/sanitizeMetadata.d.ts +0 -1
- package/build/types/shared/sanitizeMetadata.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @osdk/generator
|
|
2
2
|
|
|
3
|
+
## 2.8.0-beta.26
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 60b5ffb: Add `platformApiName` field to actions to preserve the original API name used by the Foundry platform
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [60b5ffb]
|
|
12
|
+
- Updated dependencies [61e33ab]
|
|
13
|
+
- @osdk/api@2.8.0-beta.26
|
|
14
|
+
- @osdk/generator-converters@2.8.0-beta.26
|
|
15
|
+
|
|
3
16
|
## 2.8.0-beta.25
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -16,13 +16,23 @@
|
|
|
16
16
|
|
|
17
17
|
import { EnhancedBase } from "./EnhancedBase.js";
|
|
18
18
|
export class EnhancedAction extends EnhancedBase {
|
|
19
|
+
#unsanitizedApiName;
|
|
19
20
|
constructor(common, raw) {
|
|
21
|
+
const unsanitizedApiName = raw.apiName;
|
|
22
|
+
raw = {
|
|
23
|
+
...raw,
|
|
24
|
+
apiName: camelize(raw.apiName)
|
|
25
|
+
};
|
|
20
26
|
super(common, raw, raw.apiName, "./ontology/actions");
|
|
21
27
|
this.raw = raw;
|
|
28
|
+
this.#unsanitizedApiName = unsanitizedApiName;
|
|
22
29
|
}
|
|
23
30
|
get description() {
|
|
24
31
|
return this.raw.description;
|
|
25
32
|
}
|
|
33
|
+
get unsanitizedApiName() {
|
|
34
|
+
return this.#unsanitizedApiName;
|
|
35
|
+
}
|
|
26
36
|
get parameters() {
|
|
27
37
|
return this.raw.parameters;
|
|
28
38
|
}
|
|
@@ -39,4 +49,7 @@ export class EnhancedAction extends EnhancedBase {
|
|
|
39
49
|
return `${this.shortApiName}.ParamsDefinition`;
|
|
40
50
|
}
|
|
41
51
|
}
|
|
52
|
+
function camelize(name) {
|
|
53
|
+
return name.replace(/-./g, segment => segment[1].toUpperCase());
|
|
54
|
+
}
|
|
42
55
|
//# sourceMappingURL=EnhancedAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnhancedAction.js","names":["EnhancedBase","EnhancedAction","constructor","common","raw","apiName","description","parameters","operations","paramsIdentifier","shortApiName","definitionIdentifier","definitionParamsIdentifier"],"sources":["EnhancedAction.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ActionTypeV2, LogicRule } from \"@osdk/foundry.ontologies\";\nimport type { EnhanceCommon } from \"./EnhanceCommon.js\";\nimport { EnhancedBase } from \"./EnhancedBase.js\";\n\nexport class EnhancedAction extends EnhancedBase<ActionTypeV2> {\n constructor(common: EnhanceCommon, public raw: ActionTypeV2) {\n super(common, raw, raw.apiName, \"./ontology/actions\");\n }\n\n get description(): string | undefined {\n return this.raw.description;\n }\n\n get parameters(): ActionTypeV2[\"parameters\"] {\n return this.raw.parameters;\n }\n\n get operations(): LogicRule[] {\n return this.raw.operations;\n }\n\n get paramsIdentifier() {\n return `${this.shortApiName}.Params`;\n }\n\n get definitionIdentifier() {\n return `${this.shortApiName}.Definition`;\n }\n\n get definitionParamsIdentifier() {\n return `${this.shortApiName}.ParamsDefinition`;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAY,QAAQ,mBAAmB;AAEhD,OAAO,MAAMC,cAAc,SAASD,YAAY,CAAe;
|
|
1
|
+
{"version":3,"file":"EnhancedAction.js","names":["EnhancedBase","EnhancedAction","unsanitizedApiName","constructor","common","raw","apiName","camelize","description","parameters","operations","paramsIdentifier","shortApiName","definitionIdentifier","definitionParamsIdentifier","name","replace","segment","toUpperCase"],"sources":["EnhancedAction.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ActionTypeV2, LogicRule } from \"@osdk/foundry.ontologies\";\nimport type { EnhanceCommon } from \"./EnhanceCommon.js\";\nimport { EnhancedBase } from \"./EnhancedBase.js\";\n\nexport class EnhancedAction extends EnhancedBase<ActionTypeV2> {\n #unsanitizedApiName?: string;\n constructor(common: EnhanceCommon, public raw: ActionTypeV2) {\n const unsanitizedApiName = raw.apiName;\n raw = { ...raw, apiName: camelize(raw.apiName) };\n super(common, raw, raw.apiName, \"./ontology/actions\");\n this.#unsanitizedApiName = unsanitizedApiName;\n }\n\n get description(): string | undefined {\n return this.raw.description;\n }\n\n get unsanitizedApiName(): string | undefined {\n return this.#unsanitizedApiName;\n }\n\n get parameters(): ActionTypeV2[\"parameters\"] {\n return this.raw.parameters;\n }\n\n get operations(): LogicRule[] {\n return this.raw.operations;\n }\n\n get paramsIdentifier() {\n return `${this.shortApiName}.Params`;\n }\n\n get definitionIdentifier() {\n return `${this.shortApiName}.Definition`;\n }\n\n get definitionParamsIdentifier() {\n return `${this.shortApiName}.ParamsDefinition`;\n }\n}\n\nfunction camelize(name: string) {\n return name.replace(/-./g, segment => segment[1]!.toUpperCase());\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAY,QAAQ,mBAAmB;AAEhD,OAAO,MAAMC,cAAc,SAASD,YAAY,CAAe;EAC7D,CAACE,kBAAkB;EACnBC,WAAWA,CAACC,MAAqB,EAASC,GAAiB,EAAE;IAC3D,MAAMH,kBAAkB,GAAGG,GAAG,CAACC,OAAO;IACtCD,GAAG,GAAG;MAAE,GAAGA,GAAG;MAAEC,OAAO,EAAEC,QAAQ,CAACF,GAAG,CAACC,OAAO;IAAE,CAAC;IAChD,KAAK,CAACF,MAAM,EAAEC,GAAG,EAAEA,GAAG,CAACC,OAAO,EAAE,oBAAoB,CAAC;IAAC,KAHdD,GAAiB,GAAjBA,GAAiB;IAIzD,IAAI,CAAC,CAACH,kBAAkB,GAAGA,kBAAkB;EAC/C;EAEA,IAAIM,WAAWA,CAAA,EAAuB;IACpC,OAAO,IAAI,CAACH,GAAG,CAACG,WAAW;EAC7B;EAEA,IAAIN,kBAAkBA,CAAA,EAAuB;IAC3C,OAAO,IAAI,CAAC,CAACA,kBAAkB;EACjC;EAEA,IAAIO,UAAUA,CAAA,EAA+B;IAC3C,OAAO,IAAI,CAACJ,GAAG,CAACI,UAAU;EAC5B;EAEA,IAAIC,UAAUA,CAAA,EAAgB;IAC5B,OAAO,IAAI,CAACL,GAAG,CAACK,UAAU;EAC5B;EAEA,IAAIC,gBAAgBA,CAAA,EAAG;IACrB,OAAO,GAAG,IAAI,CAACC,YAAY,SAAS;EACtC;EAEA,IAAIC,oBAAoBA,CAAA,EAAG;IACzB,OAAO,GAAG,IAAI,CAACD,YAAY,aAAa;EAC1C;EAEA,IAAIE,0BAA0BA,CAAA,EAAG;IAC/B,OAAO,GAAG,IAAI,CAACF,YAAY,mBAAmB;EAChD;AACF;AAEA,SAASL,QAAQA,CAACQ,IAAY,EAAE;EAC9B,OAAOA,IAAI,CAACC,OAAO,CAAC,KAAK,EAAEC,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC,CAAEC,WAAW,CAAC,CAAC,CAAC;AAClE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateContext.js","names":[],"sources":["GenerateContext.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MinimalFs } from \"../MinimalFs.js\";\nimport type {
|
|
1
|
+
{"version":3,"file":"GenerateContext.js","names":[],"sources":["GenerateContext.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MinimalFs } from \"../MinimalFs.js\";\nimport type { EnhancedOntologyDefinition } from \"./EnhancedOntologyDefinition.js\";\n\nexport interface GenerateContext {\n ontology: EnhancedOntologyDefinition;\n\n importExt?: string;\n fs: MinimalFs;\n\n outDir: string;\n fixedVersionQueryTypes: string[];\n ontologyApiNamespace?: string | undefined;\n apiNamespacePackageMap?: Map<string, string>;\n forInternalUse?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { enhanceOntology } from "../GenerateContext/enhanceOntology.js";
|
|
18
|
-
import { sanitizeMetadata } from "../shared/sanitizeMetadata.js";
|
|
19
18
|
import { verifyOutDir } from "../util/verifyOutDir.js";
|
|
20
19
|
import { generateOntologyMetadataFile } from "./generateMetadata.js";
|
|
21
20
|
import { generatePerActionDataFiles } from "./generatePerActionDataFiles.js";
|
|
@@ -30,19 +29,17 @@ export async function generateClientSdkVersionTwoPointZero(ontology, userAgent,
|
|
|
30
29
|
// with one per package.
|
|
31
30
|
|
|
32
31
|
await verifyOutDir(outDir, fs);
|
|
33
|
-
const sanitizedOntology = sanitizeMetadata(ontology);
|
|
34
32
|
await fs.mkdir(outDir, {
|
|
35
33
|
recursive: true
|
|
36
34
|
});
|
|
37
35
|
const enhancedOntology = enhanceOntology({
|
|
38
|
-
sanitized:
|
|
36
|
+
sanitized: ontology,
|
|
39
37
|
importExt,
|
|
40
38
|
externalObjects,
|
|
41
39
|
externalInterfaces,
|
|
42
40
|
externalSpts
|
|
43
41
|
});
|
|
44
42
|
const ctx = {
|
|
45
|
-
sanitizedOntology,
|
|
46
43
|
ontology: enhancedOntology,
|
|
47
44
|
importExt,
|
|
48
45
|
fs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateClientSdkVersionTwoPointZero.js","names":["enhanceOntology","
|
|
1
|
+
{"version":3,"file":"generateClientSdkVersionTwoPointZero.js","names":["enhanceOntology","verifyOutDir","generateOntologyMetadataFile","generatePerActionDataFiles","generatePerInterfaceDataFiles","generatePerObjectDataFiles","generatePerQueryDataFilesV2","generateRootIndexTsFile","generateClientSdkVersionTwoPointZero","ontology","userAgent","fs","outDir","packageType","externalObjects","Map","externalInterfaces","externalSpts","forInternalUse","fixedVersionQueryTypes","importExt","mkdir","recursive","enhancedOntology","sanitized","ctx"],"sources":["generateClientSdkVersionTwoPointZero.ts"],"sourcesContent":["/*\n * Copyright 2023 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 { enhanceOntology } from \"../GenerateContext/enhanceOntology.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport type { MinimalFs } from \"../MinimalFs.js\";\nimport { verifyOutDir } from \"../util/verifyOutDir.js\";\nimport type { WireOntologyDefinition } from \"../WireOntologyDefinition.js\";\nimport { generateOntologyMetadataFile } from \"./generateMetadata.js\";\nimport { generatePerActionDataFiles } from \"./generatePerActionDataFiles.js\";\nimport { generatePerInterfaceDataFiles } from \"./generatePerInterfaceDataFiles.js\";\nimport { generatePerObjectDataFiles } from \"./generatePerObjectDataFiles.js\";\nimport { generatePerQueryDataFilesV2 } from \"./generatePerQueryDataFiles.js\";\nimport { generateRootIndexTsFile } from \"./generateRootIndexTsFile.js\";\n\nexport async function generateClientSdkVersionTwoPointZero(\n ontology: WireOntologyDefinition,\n userAgent: string,\n fs: MinimalFs,\n outDir: string,\n packageType: \"module\" | \"commonjs\" = \"commonjs\",\n externalObjects: Map<string, string> = new Map(),\n externalInterfaces: Map<string, string> = new Map(),\n externalSpts: Map<string, string> = new Map(),\n forInternalUse: boolean = false,\n fixedVersionQueryTypes: string[] = [],\n): Promise<void> {\n const importExt = \".js\"; // turns out you can always use the extension\n\n // Structurally, we need to have multiple ontologies read in\n // with one per package.\n\n await verifyOutDir(outDir, fs);\n\n await fs.mkdir(outDir, { recursive: true });\n const enhancedOntology = enhanceOntology({\n sanitized: ontology,\n importExt,\n externalObjects,\n externalInterfaces,\n externalSpts,\n });\n\n const ctx: GenerateContext = {\n ontology: enhancedOntology,\n importExt,\n fs,\n outDir,\n forInternalUse,\n fixedVersionQueryTypes,\n };\n\n await generateRootIndexTsFile(ctx);\n await generateOntologyMetadataFile(ctx, userAgent);\n await generatePerObjectDataFiles(ctx);\n await generatePerInterfaceDataFiles(ctx);\n await generatePerActionDataFiles(ctx);\n await generatePerQueryDataFilesV2(ctx, true);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,QAAQ,uCAAuC;AAGvE,SAASC,YAAY,QAAQ,yBAAyB;AAEtD,SAASC,4BAA4B,QAAQ,uBAAuB;AACpE,SAASC,0BAA0B,QAAQ,iCAAiC;AAC5E,SAASC,6BAA6B,QAAQ,oCAAoC;AAClF,SAASC,0BAA0B,QAAQ,iCAAiC;AAC5E,SAASC,2BAA2B,QAAQ,gCAAgC;AAC5E,SAASC,uBAAuB,QAAQ,8BAA8B;AAEtE,OAAO,eAAeC,oCAAoCA,CACxDC,QAAgC,EAChCC,SAAiB,EACjBC,EAAa,EACbC,MAAc,EACdC,WAAkC,GAAG,UAAU,EAC/CC,eAAoC,GAAG,IAAIC,GAAG,CAAC,CAAC,EAChDC,kBAAuC,GAAG,IAAID,GAAG,CAAC,CAAC,EACnDE,YAAiC,GAAG,IAAIF,GAAG,CAAC,CAAC,EAC7CG,cAAuB,GAAG,KAAK,EAC/BC,sBAAgC,GAAG,EAAE,EACtB;EACf,MAAMC,SAAS,GAAG,KAAK,CAAC,CAAC;;EAEzB;EACA;;EAEA,MAAMnB,YAAY,CAACW,MAAM,EAAED,EAAE,CAAC;EAE9B,MAAMA,EAAE,CAACU,KAAK,CAACT,MAAM,EAAE;IAAEU,SAAS,EAAE;EAAK,CAAC,CAAC;EAC3C,MAAMC,gBAAgB,GAAGvB,eAAe,CAAC;IACvCwB,SAAS,EAAEf,QAAQ;IACnBW,SAAS;IACTN,eAAe;IACfE,kBAAkB;IAClBC;EACF,CAAC,CAAC;EAEF,MAAMQ,GAAoB,GAAG;IAC3BhB,QAAQ,EAAEc,gBAAgB;IAC1BH,SAAS;IACTT,EAAE;IACFC,MAAM;IACNM,cAAc;IACdC;EACF,CAAC;EAED,MAAMZ,uBAAuB,CAACkB,GAAG,CAAC;EAClC,MAAMvB,4BAA4B,CAACuB,GAAG,EAAEf,SAAS,CAAC;EAClD,MAAML,0BAA0B,CAACoB,GAAG,CAAC;EACrC,MAAMrB,6BAA6B,CAACqB,GAAG,CAAC;EACxC,MAAMtB,0BAA0B,CAACsB,GAAG,CAAC;EACrC,MAAMnB,2BAA2B,CAACmB,GAAG,EAAE,IAAI,CAAC;AAC9C","ignoreList":[]}
|
|
@@ -19,11 +19,10 @@ import path from "node:path";
|
|
|
19
19
|
import { getObjectImports } from "../shared/getObjectImports.js";
|
|
20
20
|
import { deleteUndefineds } from "../util/deleteUndefineds.js";
|
|
21
21
|
import { stringify } from "../util/stringify.js";
|
|
22
|
-
import { stringUnionFrom } from "../util/stringUnionFrom.js";
|
|
23
22
|
import { formatTs } from "../util/test/formatTs.js";
|
|
24
23
|
import { getDescriptionIfPresent } from "./getDescriptionIfPresent.js";
|
|
25
24
|
export async function generatePerActionDataFiles({
|
|
26
|
-
|
|
25
|
+
ontology,
|
|
27
26
|
fs,
|
|
28
27
|
outDir: rootOutDir,
|
|
29
28
|
importExt = "",
|
|
@@ -36,10 +35,7 @@ export async function generatePerActionDataFiles({
|
|
|
36
35
|
});
|
|
37
36
|
await Promise.all(Object.values(enhancedOntology.actionTypes).map(async action => {
|
|
38
37
|
const currentFilePath = path.join("ontology", "actions", `${action.shortApiName}.ts`);
|
|
39
|
-
const
|
|
40
|
-
const uniqueApiNames = new Set(uniqueApiNamesArray);
|
|
41
|
-
stringUnionFrom([...uniqueApiNames]);
|
|
42
|
-
const fullActionDef = deleteUndefineds(wireActionTypeV2ToSdkActionMetadata(action.raw));
|
|
38
|
+
const fullActionDef = deleteUndefineds(wireActionTypeV2ToSdkActionMetadata(action.raw, action.unsanitizedApiName));
|
|
43
39
|
function createParamsDef() {
|
|
44
40
|
const entries = Object.entries(fullActionDef.parameters ?? {});
|
|
45
41
|
entries.sort((a, b) => a[0].localeCompare(b[0]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePerActionDataFiles.js","names":["wireActionTypeV2ToSdkActionMetadata","path","getObjectImports","deleteUndefineds","stringify","stringUnionFrom","formatTs","getDescriptionIfPresent","generatePerActionDataFiles","sanitizedOntology","ontology","fs","outDir","rootOutDir","importExt","enhancedOntology","forInternalUse","join","mkdir","recursive","Promise","all","Object","values","actionTypes","map","action","currentFilePath","shortApiName","uniqueApiNamesArray","extractReferencedObjectsFromAction","raw","uniqueApiNames","Set","fullActionDef","createParamsDef","entries","parameters","sort","a","b","localeCompare","length","key","value","description","d","undefined","type","JSON","obj","requireObjectType","object","getImportedDefinitionIdentifier","objectSet","requireInterfaceType","interface","struct","getActionParamType","input","referencedObjectDefs","p","dataType","objectApiName","add","objectTypeApiName","interfaceTypeApiName","subType","imports","writeFile","jsDocBlock","push","hasNullableParams","some","param","nullable","*","ogValue","_","ogKey","multiplicity","paramsIdentifier","definitionParamsIdentifier","displayName","modifiedEntities","rid","status","indexFileRelPath","exportConstLine","getImportPathRelTo","keys","actionType","referencedObjectsInParameters","flatMap","objectTypeReference","extractReferencedObjectsFromActionParameter","referenceObjectsInEdits","operations","actionParameter"],"sources":["generatePerActionDataFiles.ts"],"sourcesContent":["/*\n * Copyright 2023 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 { ActionMetadata } from \"@osdk/api\";\nimport type {\n ActionParameterType,\n ActionTypeV2,\n} from \"@osdk/foundry.ontologies\";\nimport { wireActionTypeV2ToSdkActionMetadata } from \"@osdk/generator-converters\";\nimport path from \"node:path\";\nimport type { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\nimport { stringUnionFrom } from \"../util/stringUnionFrom.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\nimport { getDescriptionIfPresent } from \"./getDescriptionIfPresent.js\";\n\nexport async function generatePerActionDataFiles(\n {\n sanitizedOntology: ontology,\n fs,\n outDir: rootOutDir,\n importExt = \"\",\n ontology: enhancedOntology,\n forInternalUse = false,\n }: Pick<\n GenerateContext,\n | \"sanitizedOntology\"\n | \"fs\"\n | \"outDir\"\n | \"importExt\"\n | \"ontology\"\n | \"forInternalUse\"\n >,\n): Promise<void> {\n const outDir = path.join(rootOutDir, \"ontology\", \"actions\");\n\n await fs.mkdir(outDir, { recursive: true });\n await Promise.all(\n Object.values(enhancedOntology.actionTypes).map(async (action) => {\n const currentFilePath = path.join(\n \"ontology\",\n \"actions\",\n `${action.shortApiName}.ts`,\n );\n\n const uniqueApiNamesArray = extractReferencedObjectsFromAction(\n action.raw,\n );\n const uniqueApiNames = new Set(uniqueApiNamesArray);\n\n const uniqueApiNamesString = stringUnionFrom([...uniqueApiNames]);\n\n const fullActionDef = deleteUndefineds(\n wireActionTypeV2ToSdkActionMetadata(action.raw),\n );\n\n function createParamsDef() {\n const entries = Object.entries(fullActionDef.parameters ?? {});\n entries.sort((a, b) => a[0].localeCompare(b[0]));\n\n if (entries.length === 0) {\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = Record<string, never>;`;\n }\n\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = {\n ${\n entries.map(([key, value]) => {\n return `\"${key}\": {\n ${\n stringify(value, {\n description: (value, d) => value ? d(value) : undefined, // trick to remove undefineds\n type: (type) => {\n if (typeof type === \"string\") {\n return JSON.stringify(type);\n } else if (type.type === \"object\") {\n const obj = enhancedOntology.requireObjectType(type.object);\n return `ActionMetadata.DataType.Object<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"objectSet\") {\n const obj = enhancedOntology.requireObjectType(\n type.objectSet,\n );\n return `ActionMetadata.DataType.ObjectSet<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"interface\") {\n const obj = enhancedOntology.requireInterfaceType(\n type.interface,\n );\n return `ActionMetadata.DataType.Interface<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"struct\") {\n return `ActionMetadata.DataType.Struct<${\n JSON.stringify(type.struct)\n }>`;\n }\n return undefined;\n },\n })\n }\n }`;\n })\n .join(\";\\n\")\n }\n }`;\n }\n\n function getActionParamType(\n input: ActionMetadata.Parameter[\"type\"],\n ) {\n if (typeof input === \"string\") {\n return `ActionParam.PrimitiveType<${JSON.stringify(input)}>`;\n } else if (input.type === \"object\") {\n return `ActionParam.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"objectSet\") {\n return `ActionParam.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"interface\") {\n return `ActionParam.InterfaceType<${\n enhancedOntology.requireInterfaceType(input.interface)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"struct\") {\n return `ActionParam.StructType<${JSON.stringify(input.struct)}>`;\n }\n }\n\n function createV2Types() {\n const oldParamsIdentifier = `${action.shortApiName}$Params`;\n const jsDocBlock = [\"/**\"];\n if (action.description != null) {\n jsDocBlock.push(`* ${action.description}`);\n\n // Add note about null values to the action description if there are nullable parameters\n const hasNullableParams = Object.values(\n fullActionDef.parameters || {},\n ).some(param => param.nullable === true);\n if (hasNullableParams) {\n jsDocBlock.push(`* `);\n jsDocBlock.push(\n `* **Note on null values:** _For optional parameters, explicitly providing a null value instead of undefined`,\n );\n jsDocBlock.push(\n `* can change the behavior of the applied action. If prefills are configured, null prevents them`,\n );\n jsDocBlock.push(\n `* from being applied. If a parameter modifies an object's property, null will clear the data from`,\n );\n jsDocBlock.push(\n `* the object, whereas undefined would not modify that property._`,\n );\n }\n }\n // the params must be a `type` to align properly with the `ActionDefinition` interface\n // this way we can generate a strict type for the function itself and reference it from the Action Definition\n return `\n \n export namespace ${action.shortApiName}{\n ${createParamsDef()}\n\n ${getDescriptionIfPresent(action.description)}\n export interface Params {\n ${\n stringify(fullActionDef.parameters, {\n \"*\": (ogValue, _, ogKey) => {\n const key = `${getDescriptionIfPresent(ogValue.description)}\n readonly \"${ogKey}\"${ogValue.nullable ? \"?\" : \"\"}`;\n\n const value = (ogValue.multiplicity\n ? `ReadonlyArray<${getActionParamType(ogValue.type)}>`\n : `${getActionParamType(ogValue.type)}`)\n + (ogValue.nullable ? \" | null\" : \"\");\n jsDocBlock.push(\n `* @param {${getActionParamType(ogValue.type)}} ${\n ogValue.nullable ? `[${ogKey}]` : ogKey\n } ${ogValue.description ?? \"\"}`,\n );\n return [key, value];\n },\n })\n }\n }\n\n // Represents a fqn of the action\n export interface Signatures {\n ${getDescriptionIfPresent(action.description)}\n applyAction<OP extends ApplyActionOptions>(args: ${action.paramsIdentifier}, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n \n batchApplyAction<OP extends ApplyBatchActionOptions>(args: ReadonlyArray<${action.paramsIdentifier}>, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n }\n \n }\n\n \n ${jsDocBlock.join(\"\\n\")}\n */\n export interface ${action.shortApiName} extends ActionDefinition<${action.shortApiName}.Signatures> {\n __DefinitionMetadata?: {\n ${\n stringify(fullActionDef, {\n \"parameters\": () => action.definitionParamsIdentifier,\n })\n }\n \n signatures: ${action.shortApiName}.Signatures;\n },\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n }\n osdkMetadata: typeof $osdkMetadata;\n }\n `;\n }\n\n function createV2Object() {\n return ` export const ${action.shortApiName}: ${action.shortApiName} = \n {\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n },\n osdkMetadata: $osdkMetadata\n }\n `;\n }\n\n const referencedObjectDefs = new Set<EnhancedObjectType | ForeignType>();\n for (const p of Object.values(action.parameters)) {\n if (p.dataType.type === \"object\" || p.dataType.type === \"objectSet\") {\n if (p.dataType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectApiName),\n );\n }\n if (p.dataType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectTypeApiName),\n );\n }\n }\n if (p.dataType.type === \"interfaceObject\") {\n if (p.dataType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.interfaceTypeApiName,\n ),\n );\n }\n }\n if (p.dataType.type === \"array\") {\n if (\n p.dataType.subType.type === \"object\"\n || p.dataType.subType.type === \"objectSet\"\n ) {\n if (p.dataType.subType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectApiName,\n ),\n );\n }\n if (p.dataType.subType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectTypeApiName,\n ),\n );\n }\n }\n if (\n p.dataType.subType.type === \"interfaceObject\"\n ) {\n if (p.dataType.subType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.subType.interfaceTypeApiName,\n ),\n );\n }\n }\n }\n }\n\n const imports = getObjectImports(\n referencedObjectDefs,\n undefined,\n currentFilePath,\n true,\n );\n\n await fs.writeFile(\n path.join(rootOutDir, currentFilePath),\n await formatTs(`\n import type {\n ActionDefinition,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import { $osdkMetadata} from \"../../OntologyMetadata${importExt}\";\n ${imports}\n\n \n ${createV2Types()}\n\n ${createV2Object()}\n `),\n );\n }),\n );\n\n const indexFileRelPath = path.join(\"ontology\", \"actions.ts\");\n\n await fs.writeFile(\n path.join(rootOutDir, indexFileRelPath),\n await formatTs(`\n ${\n Object.values(enhancedOntology.actionTypes).map(action => {\n const exportConstLine = `export {${action.shortApiName} } from \"${\n action.getImportPathRelTo(indexFileRelPath)\n }\";`;\n\n return exportConstLine;\n })\n .join(\"\\n\")\n }\n ${Object.keys(ontology.actionTypes).length === 0 ? \"export {};\" : \"\"}\n `),\n );\n}\n\nfunction extractReferencedObjectsFromAction(\n actionType: ActionTypeV2,\n): string[] {\n const referencedObjectsInParameters = Object.values(actionType.parameters)\n .flatMap(({ dataType }) => {\n const objectTypeReference = extractReferencedObjectsFromActionParameter(\n dataType,\n );\n return objectTypeReference ? [objectTypeReference] : [];\n });\n\n const referenceObjectsInEdits = actionType.operations.flatMap(value => {\n switch (value.type) {\n case \"createObject\":\n return [value.objectTypeApiName];\n case \"modifyObject\":\n return [value.objectTypeApiName];\n case \"deleteObject\":\n case \"createLink\":\n case \"deleteLink\":\n default:\n return [];\n }\n });\n\n return [...referenceObjectsInEdits, ...referencedObjectsInParameters];\n}\n\nfunction extractReferencedObjectsFromActionParameter(\n actionParameter: ActionParameterType,\n): string | undefined {\n switch (actionParameter.type) {\n case \"objectSet\":\n case \"object\":\n return actionParameter.objectTypeApiName;\n case \"array\":\n return extractReferencedObjectsFromActionParameter(\n actionParameter.subType,\n );\n case \"string\":\n case \"boolean\":\n case \"attachment\":\n case \"date\":\n case \"double\":\n case \"integer\":\n case \"long\":\n case \"timestamp\":\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"generatePerActionDataFiles.js","names":["wireActionTypeV2ToSdkActionMetadata","path","getObjectImports","deleteUndefineds","stringify","formatTs","getDescriptionIfPresent","generatePerActionDataFiles","ontology","fs","outDir","rootOutDir","importExt","enhancedOntology","forInternalUse","join","mkdir","recursive","Promise","all","Object","values","actionTypes","map","action","currentFilePath","shortApiName","fullActionDef","raw","unsanitizedApiName","createParamsDef","entries","parameters","sort","a","b","localeCompare","length","key","value","description","d","undefined","type","JSON","obj","requireObjectType","object","getImportedDefinitionIdentifier","objectSet","requireInterfaceType","interface","struct","getActionParamType","input","referencedObjectDefs","Set","p","dataType","objectApiName","add","objectTypeApiName","interfaceTypeApiName","subType","imports","writeFile","jsDocBlock","push","hasNullableParams","some","param","nullable","*","ogValue","_","ogKey","multiplicity","paramsIdentifier","definitionParamsIdentifier","displayName","modifiedEntities","rid","status","indexFileRelPath","exportConstLine","getImportPathRelTo","keys","extractReferencedObjectsFromAction","actionType","referencedObjectsInParameters","flatMap","objectTypeReference","extractReferencedObjectsFromActionParameter","referenceObjectsInEdits","operations","actionParameter"],"sources":["generatePerActionDataFiles.ts"],"sourcesContent":["/*\n * Copyright 2023 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 { ActionMetadata } from \"@osdk/api\";\nimport type {\n ActionParameterType,\n ActionTypeV2,\n} from \"@osdk/foundry.ontologies\";\nimport { wireActionTypeV2ToSdkActionMetadata } from \"@osdk/generator-converters\";\nimport path from \"node:path\";\nimport type { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\nimport { getDescriptionIfPresent } from \"./getDescriptionIfPresent.js\";\n\nexport async function generatePerActionDataFiles(\n {\n ontology,\n fs,\n outDir: rootOutDir,\n importExt = \"\",\n ontology: enhancedOntology,\n forInternalUse = false,\n }: Pick<\n GenerateContext,\n | \"fs\"\n | \"outDir\"\n | \"importExt\"\n | \"ontology\"\n | \"forInternalUse\"\n >,\n): Promise<void> {\n const outDir = path.join(rootOutDir, \"ontology\", \"actions\");\n\n await fs.mkdir(outDir, { recursive: true });\n await Promise.all(\n Object.values(enhancedOntology.actionTypes).map(async (action) => {\n const currentFilePath = path.join(\n \"ontology\",\n \"actions\",\n `${action.shortApiName}.ts`,\n );\n\n const fullActionDef = deleteUndefineds(\n wireActionTypeV2ToSdkActionMetadata(\n action.raw,\n action.unsanitizedApiName,\n ),\n );\n\n function createParamsDef() {\n const entries = Object.entries(fullActionDef.parameters ?? {});\n entries.sort((a, b) => a[0].localeCompare(b[0]));\n\n if (entries.length === 0) {\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = Record<string, never>;`;\n }\n\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = {\n ${\n entries.map(([key, value]) => {\n return `\"${key}\": {\n ${\n stringify(value, {\n description: (value, d) => value ? d(value) : undefined, // trick to remove undefineds\n type: (type) => {\n if (typeof type === \"string\") {\n return JSON.stringify(type);\n } else if (type.type === \"object\") {\n const obj = enhancedOntology.requireObjectType(type.object);\n return `ActionMetadata.DataType.Object<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"objectSet\") {\n const obj = enhancedOntology.requireObjectType(\n type.objectSet,\n );\n return `ActionMetadata.DataType.ObjectSet<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"interface\") {\n const obj = enhancedOntology.requireInterfaceType(\n type.interface,\n );\n return `ActionMetadata.DataType.Interface<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"struct\") {\n return `ActionMetadata.DataType.Struct<${\n JSON.stringify(type.struct)\n }>`;\n }\n return undefined;\n },\n })\n }\n }`;\n })\n .join(\";\\n\")\n }\n }`;\n }\n\n function getActionParamType(\n input: ActionMetadata.Parameter[\"type\"],\n ) {\n if (typeof input === \"string\") {\n return `ActionParam.PrimitiveType<${JSON.stringify(input)}>`;\n } else if (input.type === \"object\") {\n return `ActionParam.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"objectSet\") {\n return `ActionParam.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"interface\") {\n return `ActionParam.InterfaceType<${\n enhancedOntology.requireInterfaceType(input.interface)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"struct\") {\n return `ActionParam.StructType<${JSON.stringify(input.struct)}>`;\n }\n }\n\n function createV2Types() {\n const oldParamsIdentifier = `${action.shortApiName}$Params`;\n const jsDocBlock = [\"/**\"];\n if (action.description != null) {\n jsDocBlock.push(`* ${action.description}`);\n\n // Add note about null values to the action description if there are nullable parameters\n const hasNullableParams = Object.values(\n fullActionDef.parameters || {},\n ).some(param => param.nullable === true);\n if (hasNullableParams) {\n jsDocBlock.push(`* `);\n jsDocBlock.push(\n `* **Note on null values:** _For optional parameters, explicitly providing a null value instead of undefined`,\n );\n jsDocBlock.push(\n `* can change the behavior of the applied action. If prefills are configured, null prevents them`,\n );\n jsDocBlock.push(\n `* from being applied. If a parameter modifies an object's property, null will clear the data from`,\n );\n jsDocBlock.push(\n `* the object, whereas undefined would not modify that property._`,\n );\n }\n }\n // the params must be a `type` to align properly with the `ActionDefinition` interface\n // this way we can generate a strict type for the function itself and reference it from the Action Definition\n return `\n \n export namespace ${action.shortApiName}{\n ${createParamsDef()}\n\n ${getDescriptionIfPresent(action.description)}\n export interface Params {\n ${\n stringify(fullActionDef.parameters, {\n \"*\": (ogValue, _, ogKey) => {\n const key = `${getDescriptionIfPresent(ogValue.description)}\n readonly \"${ogKey}\"${ogValue.nullable ? \"?\" : \"\"}`;\n\n const value = (ogValue.multiplicity\n ? `ReadonlyArray<${getActionParamType(ogValue.type)}>`\n : `${getActionParamType(ogValue.type)}`)\n + (ogValue.nullable ? \" | null\" : \"\");\n jsDocBlock.push(\n `* @param {${getActionParamType(ogValue.type)}} ${\n ogValue.nullable ? `[${ogKey}]` : ogKey\n } ${ogValue.description ?? \"\"}`,\n );\n return [key, value];\n },\n })\n }\n }\n\n // Represents a fqn of the action\n export interface Signatures {\n ${getDescriptionIfPresent(action.description)}\n applyAction<OP extends ApplyActionOptions>(args: ${action.paramsIdentifier}, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n \n batchApplyAction<OP extends ApplyBatchActionOptions>(args: ReadonlyArray<${action.paramsIdentifier}>, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n }\n \n }\n\n \n ${jsDocBlock.join(\"\\n\")}\n */\n export interface ${action.shortApiName} extends ActionDefinition<${action.shortApiName}.Signatures> {\n __DefinitionMetadata?: {\n ${\n stringify(fullActionDef, {\n \"parameters\": () => action.definitionParamsIdentifier,\n })\n }\n \n signatures: ${action.shortApiName}.Signatures;\n },\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n }\n osdkMetadata: typeof $osdkMetadata;\n }\n `;\n }\n\n function createV2Object() {\n return ` export const ${action.shortApiName}: ${action.shortApiName} = \n {\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n },\n osdkMetadata: $osdkMetadata\n }\n `;\n }\n\n const referencedObjectDefs = new Set<EnhancedObjectType | ForeignType>();\n for (const p of Object.values(action.parameters)) {\n if (p.dataType.type === \"object\" || p.dataType.type === \"objectSet\") {\n if (p.dataType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectApiName),\n );\n }\n if (p.dataType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectTypeApiName),\n );\n }\n }\n if (p.dataType.type === \"interfaceObject\") {\n if (p.dataType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.interfaceTypeApiName,\n ),\n );\n }\n }\n if (p.dataType.type === \"array\") {\n if (\n p.dataType.subType.type === \"object\"\n || p.dataType.subType.type === \"objectSet\"\n ) {\n if (p.dataType.subType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectApiName,\n ),\n );\n }\n if (p.dataType.subType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectTypeApiName,\n ),\n );\n }\n }\n if (\n p.dataType.subType.type === \"interfaceObject\"\n ) {\n if (p.dataType.subType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.subType.interfaceTypeApiName,\n ),\n );\n }\n }\n }\n }\n\n const imports = getObjectImports(\n referencedObjectDefs,\n undefined,\n currentFilePath,\n true,\n );\n\n await fs.writeFile(\n path.join(rootOutDir, currentFilePath),\n await formatTs(`\n import type {\n ActionDefinition,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import { $osdkMetadata} from \"../../OntologyMetadata${importExt}\";\n ${imports}\n\n \n ${createV2Types()}\n\n ${createV2Object()}\n `),\n );\n }),\n );\n\n const indexFileRelPath = path.join(\"ontology\", \"actions.ts\");\n\n await fs.writeFile(\n path.join(rootOutDir, indexFileRelPath),\n await formatTs(`\n ${\n Object.values(enhancedOntology.actionTypes).map(action => {\n const exportConstLine = `export {${action.shortApiName} } from \"${\n action.getImportPathRelTo(indexFileRelPath)\n }\";`;\n\n return exportConstLine;\n })\n .join(\"\\n\")\n }\n ${Object.keys(ontology.actionTypes).length === 0 ? \"export {};\" : \"\"}\n `),\n );\n}\n\nfunction extractReferencedObjectsFromAction(\n actionType: ActionTypeV2,\n): string[] {\n const referencedObjectsInParameters = Object.values(actionType.parameters)\n .flatMap(({ dataType }) => {\n const objectTypeReference = extractReferencedObjectsFromActionParameter(\n dataType,\n );\n return objectTypeReference ? [objectTypeReference] : [];\n });\n\n const referenceObjectsInEdits = actionType.operations.flatMap(value => {\n switch (value.type) {\n case \"createObject\":\n return [value.objectTypeApiName];\n case \"modifyObject\":\n return [value.objectTypeApiName];\n case \"deleteObject\":\n case \"createLink\":\n case \"deleteLink\":\n default:\n return [];\n }\n });\n\n return [...referenceObjectsInEdits, ...referencedObjectsInParameters];\n}\n\nfunction extractReferencedObjectsFromActionParameter(\n actionParameter: ActionParameterType,\n): string | undefined {\n switch (actionParameter.type) {\n case \"objectSet\":\n case \"object\":\n return actionParameter.objectTypeApiName;\n case \"array\":\n return extractReferencedObjectsFromActionParameter(\n actionParameter.subType,\n );\n case \"string\":\n case \"boolean\":\n case \"attachment\":\n case \"date\":\n case \"double\":\n case \"integer\":\n case \"long\":\n case \"timestamp\":\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -77,13 +77,23 @@ function extractNamespace(fqApiName) {
|
|
|
77
77
|
|
|
78
78
|
// src/GenerateContext/EnhancedAction.ts
|
|
79
79
|
var EnhancedAction = class extends EnhancedBase {
|
|
80
|
+
#unsanitizedApiName;
|
|
80
81
|
constructor(common, raw) {
|
|
82
|
+
const unsanitizedApiName = raw.apiName;
|
|
83
|
+
raw = {
|
|
84
|
+
...raw,
|
|
85
|
+
apiName: camelize(raw.apiName)
|
|
86
|
+
};
|
|
81
87
|
super(common, raw, raw.apiName, "./ontology/actions");
|
|
82
88
|
this.raw = raw;
|
|
89
|
+
this.#unsanitizedApiName = unsanitizedApiName;
|
|
83
90
|
}
|
|
84
91
|
get description() {
|
|
85
92
|
return this.raw.description;
|
|
86
93
|
}
|
|
94
|
+
get unsanitizedApiName() {
|
|
95
|
+
return this.#unsanitizedApiName;
|
|
96
|
+
}
|
|
87
97
|
get parameters() {
|
|
88
98
|
return this.raw.parameters;
|
|
89
99
|
}
|
|
@@ -100,6 +110,9 @@ var EnhancedAction = class extends EnhancedBase {
|
|
|
100
110
|
return `${this.shortApiName}.ParamsDefinition`;
|
|
101
111
|
}
|
|
102
112
|
};
|
|
113
|
+
function camelize(name) {
|
|
114
|
+
return name.replace(/-./g, (segment) => segment[1].toUpperCase());
|
|
115
|
+
}
|
|
103
116
|
var EnhancedInterfaceType = class extends EnhancedBase {
|
|
104
117
|
constructor(common, raw) {
|
|
105
118
|
super(common, raw, raw.apiName, "./ontology/interfaces");
|
|
@@ -241,22 +254,6 @@ function enhanceOntology({
|
|
|
241
254
|
return new EnhancedOntologyDefinition(sanitized, importExt, externalObjects, externalInterfaces, externalSpts);
|
|
242
255
|
}
|
|
243
256
|
|
|
244
|
-
// src/shared/sanitizeMetadata.ts
|
|
245
|
-
function sanitizeMetadata(ontology) {
|
|
246
|
-
return {
|
|
247
|
-
...ontology,
|
|
248
|
-
actionTypes: Object.fromEntries(Object.values(ontology.actionTypes).map((actionType) => {
|
|
249
|
-
return [camelize(actionType.apiName), {
|
|
250
|
-
...actionType,
|
|
251
|
-
apiName: camelize(actionType.apiName)
|
|
252
|
-
}];
|
|
253
|
-
}))
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
function camelize(name) {
|
|
257
|
-
return name.replace(/-./g, (segment) => segment[1].toUpperCase());
|
|
258
|
-
}
|
|
259
|
-
|
|
260
257
|
// src/util/verifyOutDir.ts
|
|
261
258
|
async function verifyOutDir(outDir, fs2) {
|
|
262
259
|
try {
|
|
@@ -345,15 +342,6 @@ function stringify(obj, customizer = {}, separator = ",\n") {
|
|
|
345
342
|
return entries.join(separator);
|
|
346
343
|
}
|
|
347
344
|
|
|
348
|
-
// src/util/stringUnionFrom.ts
|
|
349
|
-
function stringUnionFrom(values) {
|
|
350
|
-
if (values.length === 0) {
|
|
351
|
-
return "never";
|
|
352
|
-
} else {
|
|
353
|
-
return values.map((v) => `"${v}"`).join("|");
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
345
|
// src/v2.0/getDescriptionIfPresent.ts
|
|
358
346
|
function getDescriptionIfPresent(description, includeNewline) {
|
|
359
347
|
if (description) {
|
|
@@ -368,7 +356,7 @@ ${formattedLines}
|
|
|
368
356
|
|
|
369
357
|
// src/v2.0/generatePerActionDataFiles.ts
|
|
370
358
|
async function generatePerActionDataFiles({
|
|
371
|
-
|
|
359
|
+
ontology,
|
|
372
360
|
fs: fs2,
|
|
373
361
|
outDir: rootOutDir,
|
|
374
362
|
importExt = "",
|
|
@@ -381,10 +369,7 @@ async function generatePerActionDataFiles({
|
|
|
381
369
|
});
|
|
382
370
|
await Promise.all(Object.values(enhancedOntology.actionTypes).map(async (action) => {
|
|
383
371
|
const currentFilePath = path8__namespace.default.join("ontology", "actions", `${action.shortApiName}.ts`);
|
|
384
|
-
const
|
|
385
|
-
const uniqueApiNames = new Set(uniqueApiNamesArray);
|
|
386
|
-
stringUnionFrom([...uniqueApiNames]);
|
|
387
|
-
const fullActionDef = deleteUndefineds(generatorConverters.wireActionTypeV2ToSdkActionMetadata(action.raw));
|
|
372
|
+
const fullActionDef = deleteUndefineds(generatorConverters.wireActionTypeV2ToSdkActionMetadata(action.raw, action.unsanitizedApiName));
|
|
388
373
|
function createParamsDef() {
|
|
389
374
|
const entries = Object.entries(fullActionDef.parameters ?? {});
|
|
390
375
|
entries.sort((a, b) => a[0].localeCompare(b[0]));
|
|
@@ -573,46 +558,6 @@ async function generatePerActionDataFiles({
|
|
|
573
558
|
${Object.keys(ontology.actionTypes).length === 0 ? "export {};" : ""}
|
|
574
559
|
`));
|
|
575
560
|
}
|
|
576
|
-
function extractReferencedObjectsFromAction(actionType) {
|
|
577
|
-
const referencedObjectsInParameters = Object.values(actionType.parameters).flatMap(({
|
|
578
|
-
dataType
|
|
579
|
-
}) => {
|
|
580
|
-
const objectTypeReference = extractReferencedObjectsFromActionParameter(dataType);
|
|
581
|
-
return objectTypeReference ? [objectTypeReference] : [];
|
|
582
|
-
});
|
|
583
|
-
const referenceObjectsInEdits = actionType.operations.flatMap((value) => {
|
|
584
|
-
switch (value.type) {
|
|
585
|
-
case "createObject":
|
|
586
|
-
return [value.objectTypeApiName];
|
|
587
|
-
case "modifyObject":
|
|
588
|
-
return [value.objectTypeApiName];
|
|
589
|
-
case "deleteObject":
|
|
590
|
-
case "createLink":
|
|
591
|
-
case "deleteLink":
|
|
592
|
-
default:
|
|
593
|
-
return [];
|
|
594
|
-
}
|
|
595
|
-
});
|
|
596
|
-
return [...referenceObjectsInEdits, ...referencedObjectsInParameters];
|
|
597
|
-
}
|
|
598
|
-
function extractReferencedObjectsFromActionParameter(actionParameter) {
|
|
599
|
-
switch (actionParameter.type) {
|
|
600
|
-
case "objectSet":
|
|
601
|
-
case "object":
|
|
602
|
-
return actionParameter.objectTypeApiName;
|
|
603
|
-
case "array":
|
|
604
|
-
return extractReferencedObjectsFromActionParameter(actionParameter.subType);
|
|
605
|
-
case "string":
|
|
606
|
-
case "boolean":
|
|
607
|
-
case "attachment":
|
|
608
|
-
case "date":
|
|
609
|
-
case "double":
|
|
610
|
-
case "integer":
|
|
611
|
-
case "long":
|
|
612
|
-
case "timestamp":
|
|
613
|
-
return void 0;
|
|
614
|
-
}
|
|
615
|
-
}
|
|
616
561
|
|
|
617
562
|
// src/shared/propertyJsdoc.ts
|
|
618
563
|
function propertyJsdoc(property, rawPropertyMetadata, {
|
|
@@ -1448,19 +1393,17 @@ function helper(x) {
|
|
|
1448
1393
|
async function generateClientSdkVersionTwoPointZero(ontology, userAgent, fs2, outDir, packageType = "commonjs", externalObjects = /* @__PURE__ */ new Map(), externalInterfaces = /* @__PURE__ */ new Map(), externalSpts = /* @__PURE__ */ new Map(), forInternalUse = false, fixedVersionQueryTypes = []) {
|
|
1449
1394
|
const importExt = ".js";
|
|
1450
1395
|
await verifyOutDir(outDir, fs2);
|
|
1451
|
-
const sanitizedOntology = sanitizeMetadata(ontology);
|
|
1452
1396
|
await fs2.mkdir(outDir, {
|
|
1453
1397
|
recursive: true
|
|
1454
1398
|
});
|
|
1455
1399
|
const enhancedOntology = enhanceOntology({
|
|
1456
|
-
sanitized:
|
|
1400
|
+
sanitized: ontology,
|
|
1457
1401
|
importExt,
|
|
1458
1402
|
externalObjects,
|
|
1459
1403
|
externalInterfaces,
|
|
1460
1404
|
externalSpts
|
|
1461
1405
|
});
|
|
1462
1406
|
const ctx = {
|
|
1463
|
-
sanitizedOntology,
|
|
1464
1407
|
ontology: enhancedOntology,
|
|
1465
1408
|
importExt,
|
|
1466
1409
|
fs: fs2,
|