@osdk/generator 2.8.0-beta.8 → 2.8.0
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 +257 -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/generateClientSdkPackage.js +1 -1
- package/build/browser/generateClientSdkPackage.js.map +1 -1
- package/build/browser/index.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/shared/getInterfaceTypesFromQueryDataType.js +4 -0
- package/build/browser/shared/getInterfaceTypesFromQueryDataType.js.map +1 -1
- package/build/browser/shared/getObjectTypesFromQueryDataType.js +4 -0
- package/build/browser/shared/getObjectTypesFromQueryDataType.js.map +1 -1
- package/build/browser/util/test/TodoWireOntology.js +24 -12
- package/build/browser/util/test/TodoWireOntology.js.map +1 -1
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +3 -2
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.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/browser/v2.0/generatePerQueryDataFiles.js +10 -3
- package/build/browser/v2.0/generatePerQueryDataFiles.js.map +1 -1
- package/build/browser/v2.0/getDescriptionIfPresent.js +4 -1
- package/build/browser/v2.0/getDescriptionIfPresent.js.map +1 -1
- package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +9 -2
- package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -1
- package/build/cjs/index.cjs +50 -81
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +12 -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/generateClientSdkPackage.js +1 -1
- package/build/esm/generateClientSdkPackage.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/shared/getInterfaceTypesFromQueryDataType.js +4 -0
- package/build/esm/shared/getInterfaceTypesFromQueryDataType.js.map +1 -1
- package/build/esm/shared/getObjectTypesFromQueryDataType.js +4 -0
- package/build/esm/shared/getObjectTypesFromQueryDataType.js.map +1 -1
- package/build/esm/util/test/TodoWireOntology.js +24 -12
- package/build/esm/util/test/TodoWireOntology.js.map +1 -1
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +3 -2
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.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/esm/v2.0/generatePerQueryDataFiles.js +10 -3
- package/build/esm/v2.0/generatePerQueryDataFiles.js.map +1 -1
- package/build/esm/v2.0/getDescriptionIfPresent.js +4 -1
- package/build/esm/v2.0/getDescriptionIfPresent.js.map +1 -1
- package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +9 -2
- package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.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/generateClientSdkPackage.d.ts +11 -0
- package/build/types/generateClientSdkPackage.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.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/build/types/v2.0/wireObjectTypeV2ToSdkObjectConstV2.d.ts.map +1 -1
- package/package.json +6 -6
- package/build/browser/generateClientSdkPackage.test.js +0 -68
- package/build/browser/generateClientSdkPackage.test.js.map +0 -1
- package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.js +0 -47
- package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.js.map +0 -1
- package/build/browser/shared/sanitizeMetadata.js +0 -42
- package/build/browser/shared/sanitizeMetadata.js.map +0 -1
- package/build/browser/shared/sanitizeMetadata.test.js +0 -46
- package/build/browser/shared/sanitizeMetadata.test.js.map +0 -1
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +0 -472
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +0 -1
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js +0 -2603
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +0 -1
- package/build/browser/v2.0/generatePerActionDataFiles.test.js +0 -64
- package/build/browser/v2.0/generatePerActionDataFiles.test.js.map +0 -1
- package/build/browser/v2.0/generatePerQueryDataFiles.test.js +0 -519
- package/build/browser/v2.0/generatePerQueryDataFiles.test.js.map +0 -1
- package/build/esm/generateClientSdkPackage.test.js +0 -68
- package/build/esm/generateClientSdkPackage.test.js.map +0 -1
- package/build/esm/shared/apiNamespaces/startsWithApiNamespace.test.js +0 -47
- package/build/esm/shared/apiNamespaces/startsWithApiNamespace.test.js.map +0 -1
- package/build/esm/shared/sanitizeMetadata.js +0 -42
- package/build/esm/shared/sanitizeMetadata.js.map +0 -1
- package/build/esm/shared/sanitizeMetadata.test.js +0 -46
- package/build/esm/shared/sanitizeMetadata.test.js.map +0 -1
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +0 -472
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +0 -1
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js +0 -2603
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +0 -1
- package/build/esm/v2.0/generatePerActionDataFiles.test.js +0 -64
- package/build/esm/v2.0/generatePerActionDataFiles.test.js.map +0 -1
- package/build/esm/v2.0/generatePerQueryDataFiles.test.js +0 -519
- package/build/esm/v2.0/generatePerQueryDataFiles.test.js.map +0 -1
- package/build/types/generateClientSdkPackage.test.d.ts +0 -1
- package/build/types/generateClientSdkPackage.test.d.ts.map +0 -1
- package/build/types/shared/apiNamespaces/startsWithApiNamespace.test.d.ts +0 -1
- package/build/types/shared/apiNamespaces/startsWithApiNamespace.test.d.ts.map +0 -1
- package/build/types/shared/sanitizeMetadata.d.ts +0 -1
- package/build/types/shared/sanitizeMetadata.d.ts.map +0 -1
- package/build/types/shared/sanitizeMetadata.test.d.ts +0 -1
- package/build/types/shared/sanitizeMetadata.test.d.ts.map +0 -1
- package/build/types/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.d.ts +0 -1
- package/build/types/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.d.ts.map +0 -1
- package/build/types/v2.0/generateClientSdkVersionTwoPointZero.test.d.ts +0 -1
- package/build/types/v2.0/generateClientSdkVersionTwoPointZero.test.d.ts.map +0 -1
- package/build/types/v2.0/generatePerActionDataFiles.test.d.ts +0 -1
- package/build/types/v2.0/generatePerActionDataFiles.test.d.ts.map +0 -1
- package/build/types/v2.0/generatePerQueryDataFiles.test.d.ts +0 -1
- package/build/types/v2.0/generatePerQueryDataFiles.test.d.ts.map +0 -1
|
@@ -92,6 +92,8 @@ export function wireObjectTypeV2ToSdkObjectConstV2(wireObject, {
|
|
|
92
92
|
type: "${object instanceof EnhancedObjectType ? "object" : "interface"}",
|
|
93
93
|
apiName: "${object.fullApiName}",
|
|
94
94
|
osdkMetadata: $osdkMetadata,
|
|
95
|
+
primaryKeyApiName: "${definition.primaryKeyApiName}",
|
|
96
|
+
primaryKeyType: "${definition.primaryKeyType}",
|
|
95
97
|
internalDoNotUseMetadata: {
|
|
96
98
|
rid: "${definition.rid}",
|
|
97
99
|
},
|
|
@@ -178,7 +180,9 @@ export function createDefinition(object, ontology, identifier, {
|
|
|
178
180
|
export interface ${identifier} extends ${object instanceof EnhancedObjectType ? `$ObjectTypeDefinition` : `$InterfaceDefinition`} {
|
|
179
181
|
osdkMetadata: typeof $osdkMetadata;
|
|
180
182
|
type: "${object instanceof EnhancedObjectType ? "object" : "interface"}";
|
|
181
|
-
apiName: "${object.fullApiName}"
|
|
183
|
+
apiName: "${object.fullApiName}";${object instanceof EnhancedObjectType && definition.type === "object" ? `
|
|
184
|
+
primaryKeyApiName: "${definition.primaryKeyApiName}";
|
|
185
|
+
primaryKeyType: "${definition.primaryKeyType}";` : ""}
|
|
182
186
|
__DefinitionMetadata?: {
|
|
183
187
|
objectSet: ${objectSetIdentifier};
|
|
184
188
|
props: ${osdkObjectPropsIdentifier};
|
|
@@ -231,10 +235,13 @@ function remapStructType(structType) {
|
|
|
231
235
|
}
|
|
232
236
|
function getPropTypeOrValueTypeEnum(propertyDefinition, valueTypeMetadata) {
|
|
233
237
|
const defaultPropString = `$PropType[${JSON.stringify(propertyDefinition.type)}]`;
|
|
234
|
-
if (!(propertyDefinition.type === "string" || propertyDefinition.type === "boolean") || !propertyDefinition.valueTypeApiName
|
|
238
|
+
if (!(propertyDefinition.type === "string" || propertyDefinition.type === "boolean") || !propertyDefinition.valueTypeApiName) {
|
|
235
239
|
return defaultPropString;
|
|
236
240
|
}
|
|
237
241
|
const valueType = valueTypeMetadata[propertyDefinition.valueTypeApiName];
|
|
242
|
+
if (valueType == null || valueType.constraints.length === 0) {
|
|
243
|
+
return defaultPropString;
|
|
244
|
+
}
|
|
238
245
|
if (valueType.constraints.length !== 1) {
|
|
239
246
|
throw new Error(`Expected exactly one constraint for value type ${propertyDefinition.valueTypeApiName} but got ${valueType.constraints.length}`);
|
|
240
247
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wireObjectTypeV2ToSdkObjectConstV2.js","names":["wireObjectTypeFullMetadataToSdkObjectMetadata","consola","EnhancedInterfaceType","EnhancedObjectType","ForeignType","getObjectImports","propertyJsdoc","stringify","wireObjectTypeV2ToSdkObjectConstV2","wireObject","ontology","forInternalUse","currentFilePath","object","requireObjectType","objectType","apiName","Error","uniqueLinkTargetTypes","Set","linkTypes","map","a","objectTypeApiName","definition","raw","objectDefIdentifier","getDefinitionIdentifier","objectSetIdentifier","shortApiName","propertyKeysIdentifier","osdkObjectPropsIdentifier","osdkObjectStrictPropsIdentifier","osdkObjectLinksIdentifier","osdkObjectIdentifier","identifiers","imports","createPropertyKeys","createLinks","createProps","valueTypes","createObjectSet","createOsdkObject","createDefinition","fullApiName","rid","identifier","getCleanedUpDefinition","maybeStripNamespace","type","q","apiNamespace","startsWith","slice","length","strict","valueTypeMetadata","propertyMetadata","properties","undefined","*","propertyDefinition","_","metadata","remapStructType","getPropTypeOrValueTypeEnum","multiplicity","nullable","primaryKeyApiName","links","linkDefinition","targetType","requireInterfaceType","targetTypeApiName","getImportedDefinitionIdentifier","JSON","Object","keys","key","linkTarget","join","structType","output","entries","value","defaultPropString","valueTypeApiName","valueType","constraints","shouldWrapWithParentheses","constraint","valueConstraint","maybeEnumString","maybeGetEnumString","options","x","warn","filter"],"sources":["wireObjectTypeV2ToSdkObjectConstV2.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 { ObjectMetadata } from \"@osdk/api\";\nimport type {\n ObjectTypeFullMetadata,\n OntologyValueType,\n PropertyApiName,\n SharedPropertyTypeApiName,\n ValueTypeApiName,\n ValueTypeConstraint,\n} from \"@osdk/foundry.ontologies\";\nimport { wireObjectTypeFullMetadataToSdkObjectMetadata } from \"@osdk/generator-converters\";\nimport consola from \"consola\";\nimport { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { EnhancedOntologyDefinition } from \"../GenerateContext/EnhancedOntologyDefinition.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { propertyJsdoc } from \"../shared/propertyJsdoc.js\";\nimport { stringify } from \"../util/stringify.js\";\n\ntype PropertyApiNameUnion = PropertyApiName | SharedPropertyTypeApiName;\n\n/** @internal */\nexport function wireObjectTypeV2ToSdkObjectConstV2(\n wireObject: ObjectTypeFullMetadata,\n { ontology, forInternalUse }: Pick<\n GenerateContext,\n \"ontology\" | \"forInternalUse\"\n >,\n currentFilePath: string,\n) {\n const object = ontology.requireObjectType(\n wireObject.objectType.apiName,\n true,\n );\n if (object instanceof ForeignType) {\n throw new Error(\"Should not be generating types for an external type\");\n }\n const uniqueLinkTargetTypes = new Set(\n wireObject.linkTypes.map(a =>\n ontology.requireObjectType(a.objectTypeApiName, false)\n ),\n );\n\n const definition = wireObjectTypeFullMetadataToSdkObjectMetadata(\n object.raw,\n true,\n consola,\n );\n\n const objectDefIdentifier = object.getDefinitionIdentifier(true);\n\n const objectSetIdentifier = `${object.shortApiName}.ObjectSet`;\n const propertyKeysIdentifier = `${object.shortApiName}.PropertyKeys`;\n // const osdkObjectPropsIdentifier = `OsdkObjectProps$${objectDefIdentifier}`;\n const osdkObjectPropsIdentifier = `${object.shortApiName}.Props`;\n const osdkObjectStrictPropsIdentifier = `${object.shortApiName}.StrictProps`;\n const osdkObjectLinksIdentifier = `${object.shortApiName}.Links`;\n const osdkObjectIdentifier = `${object.shortApiName}.OsdkObject`;\n\n const identifiers: Identifiers = {\n objectDefIdentifier: object.shortApiName,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n\n function getV2Types(\n object: EnhancedObjectType,\n forInternalUse: boolean = false,\n ) {\n return `import type {\n PropertyKeys as $PropertyKeys, \n ObjectTypeDefinition as $ObjectTypeDefinition,\n ObjectMetadata as $ObjectMetadata,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import type {\n ObjectSet as $ObjectSet, \n Osdk as $Osdk,\n OsdkObject as $OsdkObject,\n PropertyValueWireToClient as $PropType,\n SingleLinkAccessor as $SingleLinkAccessor,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n\n\n export namespace ${object.shortApiName} {\n\n ${createPropertyKeys(object)}\n\n\n ${createLinks(ontology, object, \"Links\")}\n\n ${createProps(object, \"Props\", false, ontology.raw.valueTypes)}\n ${createProps(object, \"StrictProps\", true, ontology.raw.valueTypes)}\n\n ${createObjectSet(object, identifiers)}\n \n ${createOsdkObject(object, \"OsdkInstance\", identifiers)}\n } \n\n\n\n ${createDefinition(object, ontology, object.shortApiName, identifiers)}\n `;\n }\n\n const imports = getObjectImports(\n uniqueLinkTargetTypes,\n definition.apiName,\n currentFilePath,\n true,\n );\n\n return `${imports}${getV2Types(object, forInternalUse)}\n\n export const ${object.shortApiName}\n = {\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\",\n apiName: \"${object.fullApiName}\",\n osdkMetadata: $osdkMetadata,\n internalDoNotUseMetadata: {\n rid: \"${definition.rid}\",\n },\n } satisfies ${objectDefIdentifier} & { internalDoNotUseMetadata: { rid: string } } as ${objectDefIdentifier};`;\n}\n\nexport interface Identifiers extends\n Record<\n | \"osdkObjectIdentifier\"\n | \"propertyKeysIdentifier\"\n | \"osdkObjectPropsIdentifier\"\n | \"objectDefIdentifier\"\n | \"osdkObjectLinksIdentifier\"\n | \"osdkObjectStrictPropsIdentifier\"\n | \"objectSetIdentifier\",\n string\n >\n{}\n\nexport function createOsdkObject(\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n {\n osdkObjectPropsIdentifier,\n objectDefIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n export type ${identifier}<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > \n = $Osdk.Instance<\n ${objectDefIdentifier}, \n OPTIONS,\n K\n >;\n \n\n /** @deprecated use ${identifier} */\n export type OsdkObject<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > = ${identifier}<OPTIONS, K>;\n ;\n `;\n}\n\nexport function createObjectSet(\n object: EnhancedObjectType | EnhancedInterfaceType,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n propertyKeysIdentifier,\n osdkObjectIdentifier,\n }: Identifiers,\n) {\n return `\nexport interface ObjectSet extends \n$ObjectSet<${objectDefIdentifier},\n\n${objectSetIdentifier}\n>\n{\n\n}\n`;\n}\n\nfunction maybeStripNamespace(\n type: EnhancedInterfaceType | EnhancedObjectType,\n q: string,\n) {\n if (\n type.apiNamespace && q.startsWith(`${type.apiNamespace}.`)\n ) {\n return q.slice(type.apiNamespace.length + 1);\n } else {\n return q;\n }\n}\n\nexport function createProps(\n type: EnhancedInterfaceType | EnhancedObjectType,\n identifier: string,\n strict: boolean,\n valueTypeMetadata: Record<ValueTypeApiName, OntologyValueType>,\n): string {\n if (identifier === \"StrictProps\") {\n return `export type StrictProps = Props`;\n }\n const definition = type.getCleanedUpDefinition(true);\n const propertyMetadata = type instanceof EnhancedObjectType\n ? type.raw.objectType.properties\n : type instanceof EnhancedInterfaceType\n ? type.raw.properties\n : undefined;\n return `export interface ${identifier} {\n${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => {\n const metadata = propertyMetadata\n ? (propertyMetadata as Record<PropertyApiNameUnion, any>)[apiName]\n : undefined;\n return [\n `${\n propertyJsdoc(propertyDefinition, metadata, {\n apiName,\n })\n }readonly \"${maybeStripNamespace(type, apiName)}\"`,\n (typeof propertyDefinition.type === \"object\"\n ? remapStructType(propertyDefinition.type)\n : getPropTypeOrValueTypeEnum(\n propertyDefinition,\n valueTypeMetadata,\n ))\n + `${propertyDefinition.multiplicity ? \"[]\" : \"\"}${\n propertyDefinition.nullable\n || (!strict\n && !(definition.type === \"object\"\n && definition.primaryKeyApiName === apiName))\n ? `| undefined`\n : \"\"\n }`,\n ] as [string, string];\n },\n })\n }\n }`;\n}\n\nexport function createDefinition(\n object: EnhancedObjectType | EnhancedInterfaceType,\n ontology: EnhancedOntologyDefinition,\n identifier: string,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n const propertyMetadata = object instanceof EnhancedObjectType\n ? object.raw.objectType.properties\n : object instanceof EnhancedInterfaceType\n ? object.raw.properties\n : undefined;\n return `\n export interface ${identifier} extends ${\n object instanceof EnhancedObjectType\n ? `$ObjectTypeDefinition`\n : `$InterfaceDefinition`\n } {\n osdkMetadata: typeof $osdkMetadata;\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\";\n apiName: \"${object.fullApiName}\";\n __DefinitionMetadata?: {\n objectSet: ${objectSetIdentifier};\n props: ${osdkObjectPropsIdentifier};\n linksType: ${osdkObjectLinksIdentifier};\n strictProps: ${osdkObjectStrictPropsIdentifier};\n ${\n stringify(definition, {\n links: (_value) =>\n `{\n ${\n definition.type === \"interface\"\n ? stringify(definition.links, {\n \"*\": (linkDefinition) =>\n `$InterfaceMetadata.Link<${\n linkDefinition.targetType === \"interface\"\n ? ontology.requireInterfaceType(\n linkDefinition.targetTypeApiName,\n )\n .getImportedDefinitionIdentifier(true)\n : ontology.requireObjectType(\n linkDefinition.targetTypeApiName,\n ).getImportedDefinitionIdentifier(true)\n }, ${linkDefinition.multiplicity}>`,\n })\n : stringify(definition.links, {\n \"*\": (linkDefinition) =>\n `$ObjectMetadata.Link<${\n ontology.requireObjectType(linkDefinition.targetType)\n .getImportedDefinitionIdentifier(true)\n }, ${linkDefinition.multiplicity}>`,\n })\n }\n }`,\n properties: (_value) => (`{\n ${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) =>\n [\n `${\n propertyJsdoc(\n propertyDefinition,\n (propertyMetadata as Record<PropertyApiNameUnion, any>)[\n apiName\n ],\n {\n apiName,\n },\n )\n }\"${maybeStripNamespace(object, apiName)}\"`,\n `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, \"${\n propertyDefinition.nullable ? \"nullable\" : \"non-nullable\"\n }\", \"${propertyDefinition.multiplicity ? \"array\" : \"single\"}\">`,\n ] as [string, string],\n })\n }\n }`),\n })\n }\n } \n}\n `;\n}\n\nexport function createLinks(\n ontology: EnhancedOntologyDefinition,\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n) {\n const definition = object.getCleanedUpDefinition(true);\n\n return `\n ${\n Object.keys(definition.links).length === 0\n ? `export type ${identifier} = {};`\n : `\n export interface ${identifier} {\n${\n stringify(definition.links, {\n \"*\": (definition, _, key) => {\n const linkTarget = ontology.requireObjectType(\n definition.targetType,\n )\n .getImportedDefinitionIdentifier(true);\n\n return [\n `readonly ${key}`,\n `${\n definition.multiplicity\n ? `${linkTarget}.ObjectSet`\n : `$SingleLinkAccessor<${linkTarget}>`\n }\n `,\n ];\n },\n })\n }\n }\n `\n }`;\n}\n\nexport function createPropertyKeys(\n type: EnhancedObjectType | EnhancedInterfaceType,\n) {\n const properties = Object.keys(type.getCleanedUpDefinition(true).properties);\n return `export type PropertyKeys = ${\n properties.length === 0\n ? \"never\"\n : properties.map(\n (a) => maybeStripNamespace(type, a),\n ).map(a => `\"${a}\"`).join(\"|\")\n };`;\n}\n\nfunction remapStructType(structType: Record<string, any>): string {\n let output = `{`;\n Object.entries(structType).map(([key, value]) =>\n output += `${key}:$PropType[${JSON.stringify(value)}]|undefined;`\n );\n output += \"}\";\n return output;\n}\n\nfunction getPropTypeOrValueTypeEnum(\n propertyDefinition: ObjectMetadata.Property,\n valueTypeMetadata: Record<ValueTypeApiName, OntologyValueType>,\n): string {\n const defaultPropString = `$PropType[${\n JSON.stringify(propertyDefinition.type)\n }]`;\n if (\n !(propertyDefinition.type === \"string\"\n || propertyDefinition.type === \"boolean\")\n || !propertyDefinition.valueTypeApiName\n || valueTypeMetadata[propertyDefinition.valueTypeApiName] == null\n ) {\n return defaultPropString;\n }\n const valueType = valueTypeMetadata[propertyDefinition.valueTypeApiName];\n if (valueType.constraints.length !== 1) {\n throw new Error(\n `Expected exactly one constraint for value type ${propertyDefinition.valueTypeApiName} but got ${valueType.constraints.length}`,\n );\n }\n\n let shouldWrapWithParentheses = false;\n let constraint = valueType.constraints[0];\n if (constraint.type === \"array\" && constraint.valueConstraint) {\n constraint = constraint.valueConstraint;\n shouldWrapWithParentheses = true;\n }\n\n const maybeEnumString = maybeGetEnumString(\n propertyDefinition,\n constraint,\n );\n\n return maybeEnumString\n ? (\n shouldWrapWithParentheses ? `(${maybeEnumString})` : maybeEnumString\n )\n : defaultPropString;\n}\n\nfunction maybeGetEnumString(\n propertyDefinition: ObjectMetadata.Property,\n constraint: ValueTypeConstraint,\n) {\n if (constraint.type !== \"enum\" || constraint.options.length === 0) {\n return undefined;\n }\n if (propertyDefinition.type === \"string\") {\n return constraint.options.map(x => `\"${x}\"`).join(\n \" | \",\n );\n }\n if (propertyDefinition.type === \"boolean\") {\n return constraint.options.map(value => {\n if (value === true) {\n return true;\n } else if (value === false) {\n return false;\n } else if (value == null) {\n // Always infer nullability from the property definition\n return undefined;\n } else {\n consola.warn(`Unexpected boolean value in enum: ${value}. Ignoring.`);\n }\n }).filter(value => value != null).join(\n \" | \",\n );\n }\n return undefined;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"wireObjectTypeV2ToSdkObjectConstV2.js","names":["wireObjectTypeFullMetadataToSdkObjectMetadata","consola","EnhancedInterfaceType","EnhancedObjectType","ForeignType","getObjectImports","propertyJsdoc","stringify","wireObjectTypeV2ToSdkObjectConstV2","wireObject","ontology","forInternalUse","currentFilePath","object","requireObjectType","objectType","apiName","Error","uniqueLinkTargetTypes","Set","linkTypes","map","a","objectTypeApiName","definition","raw","objectDefIdentifier","getDefinitionIdentifier","objectSetIdentifier","shortApiName","propertyKeysIdentifier","osdkObjectPropsIdentifier","osdkObjectStrictPropsIdentifier","osdkObjectLinksIdentifier","osdkObjectIdentifier","identifiers","imports","createPropertyKeys","createLinks","createProps","valueTypes","createObjectSet","createOsdkObject","createDefinition","fullApiName","primaryKeyApiName","primaryKeyType","rid","identifier","getCleanedUpDefinition","maybeStripNamespace","type","q","apiNamespace","startsWith","slice","length","strict","valueTypeMetadata","propertyMetadata","properties","undefined","*","propertyDefinition","_","metadata","remapStructType","getPropTypeOrValueTypeEnum","multiplicity","nullable","links","linkDefinition","targetType","requireInterfaceType","targetTypeApiName","getImportedDefinitionIdentifier","JSON","Object","keys","key","linkTarget","join","structType","output","entries","value","defaultPropString","valueTypeApiName","valueType","constraints","shouldWrapWithParentheses","constraint","valueConstraint","maybeEnumString","maybeGetEnumString","options","x","warn","filter"],"sources":["wireObjectTypeV2ToSdkObjectConstV2.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 { ObjectMetadata } from \"@osdk/api\";\nimport type {\n ObjectTypeFullMetadata,\n OntologyValueType,\n PropertyApiName,\n SharedPropertyTypeApiName,\n ValueTypeApiName,\n ValueTypeConstraint,\n} from \"@osdk/foundry.ontologies\";\nimport { wireObjectTypeFullMetadataToSdkObjectMetadata } from \"@osdk/generator-converters\";\nimport consola from \"consola\";\nimport { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { EnhancedOntologyDefinition } from \"../GenerateContext/EnhancedOntologyDefinition.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { propertyJsdoc } from \"../shared/propertyJsdoc.js\";\nimport { stringify } from \"../util/stringify.js\";\n\ntype PropertyApiNameUnion = PropertyApiName | SharedPropertyTypeApiName;\n\n/** @internal */\nexport function wireObjectTypeV2ToSdkObjectConstV2(\n wireObject: ObjectTypeFullMetadata,\n { ontology, forInternalUse }: Pick<\n GenerateContext,\n \"ontology\" | \"forInternalUse\"\n >,\n currentFilePath: string,\n) {\n const object = ontology.requireObjectType(\n wireObject.objectType.apiName,\n true,\n );\n if (object instanceof ForeignType) {\n throw new Error(\"Should not be generating types for an external type\");\n }\n const uniqueLinkTargetTypes = new Set(\n wireObject.linkTypes.map(a =>\n ontology.requireObjectType(a.objectTypeApiName, false)\n ),\n );\n\n const definition = wireObjectTypeFullMetadataToSdkObjectMetadata(\n object.raw,\n true,\n consola,\n );\n\n const objectDefIdentifier = object.getDefinitionIdentifier(true);\n\n const objectSetIdentifier = `${object.shortApiName}.ObjectSet`;\n const propertyKeysIdentifier = `${object.shortApiName}.PropertyKeys`;\n // const osdkObjectPropsIdentifier = `OsdkObjectProps$${objectDefIdentifier}`;\n const osdkObjectPropsIdentifier = `${object.shortApiName}.Props`;\n const osdkObjectStrictPropsIdentifier = `${object.shortApiName}.StrictProps`;\n const osdkObjectLinksIdentifier = `${object.shortApiName}.Links`;\n const osdkObjectIdentifier = `${object.shortApiName}.OsdkObject`;\n\n const identifiers: Identifiers = {\n objectDefIdentifier: object.shortApiName,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n\n function getV2Types(\n object: EnhancedObjectType,\n forInternalUse: boolean = false,\n ) {\n return `import type {\n PropertyKeys as $PropertyKeys, \n ObjectTypeDefinition as $ObjectTypeDefinition,\n ObjectMetadata as $ObjectMetadata,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import type {\n ObjectSet as $ObjectSet, \n Osdk as $Osdk,\n OsdkObject as $OsdkObject,\n PropertyValueWireToClient as $PropType,\n SingleLinkAccessor as $SingleLinkAccessor,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n\n\n export namespace ${object.shortApiName} {\n\n ${createPropertyKeys(object)}\n\n\n ${createLinks(ontology, object, \"Links\")}\n\n ${createProps(object, \"Props\", false, ontology.raw.valueTypes)}\n ${createProps(object, \"StrictProps\", true, ontology.raw.valueTypes)}\n\n ${createObjectSet(object, identifiers)}\n \n ${createOsdkObject(object, \"OsdkInstance\", identifiers)}\n } \n\n\n\n ${createDefinition(object, ontology, object.shortApiName, identifiers)}\n `;\n }\n\n const imports = getObjectImports(\n uniqueLinkTargetTypes,\n definition.apiName,\n currentFilePath,\n true,\n );\n\n return `${imports}${getV2Types(object, forInternalUse)}\n\n export const ${object.shortApiName}\n = {\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\",\n apiName: \"${object.fullApiName}\",\n osdkMetadata: $osdkMetadata,\n primaryKeyApiName: \"${definition.primaryKeyApiName}\",\n primaryKeyType: \"${definition.primaryKeyType}\",\n internalDoNotUseMetadata: {\n rid: \"${definition.rid}\",\n },\n } satisfies ${objectDefIdentifier} & { internalDoNotUseMetadata: { rid: string } } as ${objectDefIdentifier};`;\n}\n\nexport interface Identifiers extends\n Record<\n | \"osdkObjectIdentifier\"\n | \"propertyKeysIdentifier\"\n | \"osdkObjectPropsIdentifier\"\n | \"objectDefIdentifier\"\n | \"osdkObjectLinksIdentifier\"\n | \"osdkObjectStrictPropsIdentifier\"\n | \"objectSetIdentifier\",\n string\n >\n{}\n\nexport function createOsdkObject(\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n {\n osdkObjectPropsIdentifier,\n objectDefIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n export type ${identifier}<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > \n = $Osdk.Instance<\n ${objectDefIdentifier}, \n OPTIONS,\n K\n >;\n \n\n /** @deprecated use ${identifier} */\n export type OsdkObject<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > = ${identifier}<OPTIONS, K>;\n ;\n `;\n}\n\nexport function createObjectSet(\n object: EnhancedObjectType | EnhancedInterfaceType,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n propertyKeysIdentifier,\n osdkObjectIdentifier,\n }: Identifiers,\n) {\n return `\nexport interface ObjectSet extends \n$ObjectSet<${objectDefIdentifier},\n\n${objectSetIdentifier}\n>\n{\n\n}\n`;\n}\n\nfunction maybeStripNamespace(\n type: EnhancedInterfaceType | EnhancedObjectType,\n q: string,\n) {\n if (\n type.apiNamespace && q.startsWith(`${type.apiNamespace}.`)\n ) {\n return q.slice(type.apiNamespace.length + 1);\n } else {\n return q;\n }\n}\n\nexport function createProps(\n type: EnhancedInterfaceType | EnhancedObjectType,\n identifier: string,\n strict: boolean,\n valueTypeMetadata: Record<ValueTypeApiName, OntologyValueType>,\n): string {\n if (identifier === \"StrictProps\") {\n return `export type StrictProps = Props`;\n }\n const definition = type.getCleanedUpDefinition(true);\n const propertyMetadata = type instanceof EnhancedObjectType\n ? type.raw.objectType.properties\n : type instanceof EnhancedInterfaceType\n ? type.raw.properties\n : undefined;\n return `export interface ${identifier} {\n${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => {\n const metadata = propertyMetadata\n ? (propertyMetadata as Record<PropertyApiNameUnion, any>)[apiName]\n : undefined;\n return [\n `${\n propertyJsdoc(propertyDefinition, metadata, {\n apiName,\n })\n }readonly \"${maybeStripNamespace(type, apiName)}\"`,\n (typeof propertyDefinition.type === \"object\"\n ? remapStructType(propertyDefinition.type)\n : getPropTypeOrValueTypeEnum(\n propertyDefinition,\n valueTypeMetadata,\n ))\n + `${propertyDefinition.multiplicity ? \"[]\" : \"\"}${\n propertyDefinition.nullable\n || (!strict\n && !(definition.type === \"object\"\n && definition.primaryKeyApiName === apiName))\n ? `| undefined`\n : \"\"\n }`,\n ] as [string, string];\n },\n })\n }\n }`;\n}\n\nexport function createDefinition(\n object: EnhancedObjectType | EnhancedInterfaceType,\n ontology: EnhancedOntologyDefinition,\n identifier: string,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n const propertyMetadata = object instanceof EnhancedObjectType\n ? object.raw.objectType.properties\n : object instanceof EnhancedInterfaceType\n ? object.raw.properties\n : undefined;\n return `\n export interface ${identifier} extends ${\n object instanceof EnhancedObjectType\n ? `$ObjectTypeDefinition`\n : `$InterfaceDefinition`\n } {\n osdkMetadata: typeof $osdkMetadata;\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\";\n apiName: \"${object.fullApiName}\";${\n object instanceof EnhancedObjectType && definition.type === \"object\"\n ? `\n primaryKeyApiName: \"${definition.primaryKeyApiName}\";\n primaryKeyType: \"${definition.primaryKeyType}\";`\n : \"\"\n }\n __DefinitionMetadata?: {\n objectSet: ${objectSetIdentifier};\n props: ${osdkObjectPropsIdentifier};\n linksType: ${osdkObjectLinksIdentifier};\n strictProps: ${osdkObjectStrictPropsIdentifier};\n ${\n stringify(definition, {\n links: (_value) =>\n `{\n ${\n definition.type === \"interface\"\n ? stringify(definition.links, {\n \"*\": (linkDefinition) =>\n `$InterfaceMetadata.Link<${\n linkDefinition.targetType === \"interface\"\n ? ontology.requireInterfaceType(\n linkDefinition.targetTypeApiName,\n )\n .getImportedDefinitionIdentifier(true)\n : ontology.requireObjectType(\n linkDefinition.targetTypeApiName,\n ).getImportedDefinitionIdentifier(true)\n }, ${linkDefinition.multiplicity}>`,\n })\n : stringify(definition.links, {\n \"*\": (linkDefinition) =>\n `$ObjectMetadata.Link<${\n ontology.requireObjectType(linkDefinition.targetType)\n .getImportedDefinitionIdentifier(true)\n }, ${linkDefinition.multiplicity}>`,\n })\n }\n }`,\n properties: (_value) => (`{\n ${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) =>\n [\n `${\n propertyJsdoc(\n propertyDefinition,\n (propertyMetadata as Record<PropertyApiNameUnion, any>)[\n apiName\n ],\n {\n apiName,\n },\n )\n }\"${maybeStripNamespace(object, apiName)}\"`,\n `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, \"${\n propertyDefinition.nullable ? \"nullable\" : \"non-nullable\"\n }\", \"${propertyDefinition.multiplicity ? \"array\" : \"single\"}\">`,\n ] as [string, string],\n })\n }\n }`),\n })\n }\n } \n}\n `;\n}\n\nexport function createLinks(\n ontology: EnhancedOntologyDefinition,\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n) {\n const definition = object.getCleanedUpDefinition(true);\n\n return `\n ${\n Object.keys(definition.links).length === 0\n ? `export type ${identifier} = {};`\n : `\n export interface ${identifier} {\n${\n stringify(definition.links, {\n \"*\": (definition, _, key) => {\n const linkTarget = ontology.requireObjectType(\n definition.targetType,\n )\n .getImportedDefinitionIdentifier(true);\n\n return [\n `readonly ${key}`,\n `${\n definition.multiplicity\n ? `${linkTarget}.ObjectSet`\n : `$SingleLinkAccessor<${linkTarget}>`\n }\n `,\n ];\n },\n })\n }\n }\n `\n }`;\n}\n\nexport function createPropertyKeys(\n type: EnhancedObjectType | EnhancedInterfaceType,\n) {\n const properties = Object.keys(type.getCleanedUpDefinition(true).properties);\n return `export type PropertyKeys = ${\n properties.length === 0\n ? \"never\"\n : properties.map(\n (a) => maybeStripNamespace(type, a),\n ).map(a => `\"${a}\"`).join(\"|\")\n };`;\n}\n\nfunction remapStructType(structType: Record<string, any>): string {\n let output = `{`;\n Object.entries(structType).map(([key, value]) =>\n output += `${key}:$PropType[${JSON.stringify(value)}]|undefined;`\n );\n output += \"}\";\n return output;\n}\n\nfunction getPropTypeOrValueTypeEnum(\n propertyDefinition: ObjectMetadata.Property,\n valueTypeMetadata: Record<ValueTypeApiName, OntologyValueType>,\n): string {\n const defaultPropString = `$PropType[${\n JSON.stringify(propertyDefinition.type)\n }]`;\n if (\n !(propertyDefinition.type === \"string\"\n || propertyDefinition.type === \"boolean\")\n || !propertyDefinition.valueTypeApiName\n ) {\n return defaultPropString;\n }\n const valueType = valueTypeMetadata[propertyDefinition.valueTypeApiName];\n if (valueType == null || valueType.constraints.length === 0) {\n return defaultPropString;\n }\n if (valueType.constraints.length !== 1) {\n throw new Error(\n `Expected exactly one constraint for value type ${propertyDefinition.valueTypeApiName} but got ${valueType.constraints.length}`,\n );\n }\n\n let shouldWrapWithParentheses = false;\n let constraint = valueType.constraints[0];\n if (constraint.type === \"array\" && constraint.valueConstraint) {\n constraint = constraint.valueConstraint;\n shouldWrapWithParentheses = true;\n }\n\n const maybeEnumString = maybeGetEnumString(\n propertyDefinition,\n constraint,\n );\n\n return maybeEnumString\n ? (\n shouldWrapWithParentheses ? `(${maybeEnumString})` : maybeEnumString\n )\n : defaultPropString;\n}\n\nfunction maybeGetEnumString(\n propertyDefinition: ObjectMetadata.Property,\n constraint: ValueTypeConstraint,\n) {\n if (constraint.type !== \"enum\" || constraint.options.length === 0) {\n return undefined;\n }\n if (propertyDefinition.type === \"string\") {\n return constraint.options.map(x => `\"${x}\"`).join(\n \" | \",\n );\n }\n if (propertyDefinition.type === \"boolean\") {\n return constraint.options.map(value => {\n if (value === true) {\n return true;\n } else if (value === false) {\n return false;\n } else if (value == null) {\n // Always infer nullability from the property definition\n return undefined;\n } else {\n consola.warn(`Unexpected boolean value in enum: ${value}. Ignoring.`);\n }\n }).filter(value => value != null).join(\n \" | \",\n );\n }\n return undefined;\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,20 +342,13 @@ 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) {
|
|
348
|
+
const lines = description.split("\n");
|
|
349
|
+
const formattedLines = lines.map((line) => ` * ${line}`).join("\n");
|
|
360
350
|
return `/**
|
|
361
|
-
|
|
351
|
+
${formattedLines}
|
|
362
352
|
*/${""}`;
|
|
363
353
|
}
|
|
364
354
|
return "";
|
|
@@ -366,7 +356,7 @@ function getDescriptionIfPresent(description, includeNewline) {
|
|
|
366
356
|
|
|
367
357
|
// src/v2.0/generatePerActionDataFiles.ts
|
|
368
358
|
async function generatePerActionDataFiles({
|
|
369
|
-
|
|
359
|
+
ontology,
|
|
370
360
|
fs: fs2,
|
|
371
361
|
outDir: rootOutDir,
|
|
372
362
|
importExt = "",
|
|
@@ -379,10 +369,7 @@ async function generatePerActionDataFiles({
|
|
|
379
369
|
});
|
|
380
370
|
await Promise.all(Object.values(enhancedOntology.actionTypes).map(async (action) => {
|
|
381
371
|
const currentFilePath = path8__namespace.default.join("ontology", "actions", `${action.shortApiName}.ts`);
|
|
382
|
-
const
|
|
383
|
-
const uniqueApiNames = new Set(uniqueApiNamesArray);
|
|
384
|
-
stringUnionFrom([...uniqueApiNames]);
|
|
385
|
-
const fullActionDef = deleteUndefineds(generatorConverters.wireActionTypeV2ToSdkActionMetadata(action.raw));
|
|
372
|
+
const fullActionDef = deleteUndefineds(generatorConverters.wireActionTypeV2ToSdkActionMetadata(action.raw, action.unsanitizedApiName));
|
|
386
373
|
function createParamsDef() {
|
|
387
374
|
const entries = Object.entries(fullActionDef.parameters ?? {});
|
|
388
375
|
entries.sort((a, b) => a[0].localeCompare(b[0]));
|
|
@@ -571,46 +558,6 @@ async function generatePerActionDataFiles({
|
|
|
571
558
|
${Object.keys(ontology.actionTypes).length === 0 ? "export {};" : ""}
|
|
572
559
|
`));
|
|
573
560
|
}
|
|
574
|
-
function extractReferencedObjectsFromAction(actionType) {
|
|
575
|
-
const referencedObjectsInParameters = Object.values(actionType.parameters).flatMap(({
|
|
576
|
-
dataType
|
|
577
|
-
}) => {
|
|
578
|
-
const objectTypeReference = extractReferencedObjectsFromActionParameter(dataType);
|
|
579
|
-
return objectTypeReference ? [objectTypeReference] : [];
|
|
580
|
-
});
|
|
581
|
-
const referenceObjectsInEdits = actionType.operations.flatMap((value) => {
|
|
582
|
-
switch (value.type) {
|
|
583
|
-
case "createObject":
|
|
584
|
-
return [value.objectTypeApiName];
|
|
585
|
-
case "modifyObject":
|
|
586
|
-
return [value.objectTypeApiName];
|
|
587
|
-
case "deleteObject":
|
|
588
|
-
case "createLink":
|
|
589
|
-
case "deleteLink":
|
|
590
|
-
default:
|
|
591
|
-
return [];
|
|
592
|
-
}
|
|
593
|
-
});
|
|
594
|
-
return [...referenceObjectsInEdits, ...referencedObjectsInParameters];
|
|
595
|
-
}
|
|
596
|
-
function extractReferencedObjectsFromActionParameter(actionParameter) {
|
|
597
|
-
switch (actionParameter.type) {
|
|
598
|
-
case "objectSet":
|
|
599
|
-
case "object":
|
|
600
|
-
return actionParameter.objectTypeApiName;
|
|
601
|
-
case "array":
|
|
602
|
-
return extractReferencedObjectsFromActionParameter(actionParameter.subType);
|
|
603
|
-
case "string":
|
|
604
|
-
case "boolean":
|
|
605
|
-
case "attachment":
|
|
606
|
-
case "date":
|
|
607
|
-
case "double":
|
|
608
|
-
case "integer":
|
|
609
|
-
case "long":
|
|
610
|
-
case "timestamp":
|
|
611
|
-
return void 0;
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
561
|
|
|
615
562
|
// src/shared/propertyJsdoc.ts
|
|
616
563
|
function propertyJsdoc(property, rawPropertyMetadata, {
|
|
@@ -735,6 +682,8 @@ function wireObjectTypeV2ToSdkObjectConstV2(wireObject, {
|
|
|
735
682
|
type: "${object instanceof EnhancedObjectType ? "object" : "interface"}",
|
|
736
683
|
apiName: "${object.fullApiName}",
|
|
737
684
|
osdkMetadata: $osdkMetadata,
|
|
685
|
+
primaryKeyApiName: "${definition.primaryKeyApiName}",
|
|
686
|
+
primaryKeyType: "${definition.primaryKeyType}",
|
|
738
687
|
internalDoNotUseMetadata: {
|
|
739
688
|
rid: "${definition.rid}",
|
|
740
689
|
},
|
|
@@ -821,7 +770,9 @@ function createDefinition(object, ontology, identifier, {
|
|
|
821
770
|
export interface ${identifier} extends ${object instanceof EnhancedObjectType ? `$ObjectTypeDefinition` : `$InterfaceDefinition`} {
|
|
822
771
|
osdkMetadata: typeof $osdkMetadata;
|
|
823
772
|
type: "${object instanceof EnhancedObjectType ? "object" : "interface"}";
|
|
824
|
-
apiName: "${object.fullApiName}"
|
|
773
|
+
apiName: "${object.fullApiName}";${object instanceof EnhancedObjectType && definition.type === "object" ? `
|
|
774
|
+
primaryKeyApiName: "${definition.primaryKeyApiName}";
|
|
775
|
+
primaryKeyType: "${definition.primaryKeyType}";` : ""}
|
|
825
776
|
__DefinitionMetadata?: {
|
|
826
777
|
objectSet: ${objectSetIdentifier};
|
|
827
778
|
props: ${osdkObjectPropsIdentifier};
|
|
@@ -874,10 +825,13 @@ function remapStructType(structType) {
|
|
|
874
825
|
}
|
|
875
826
|
function getPropTypeOrValueTypeEnum(propertyDefinition, valueTypeMetadata) {
|
|
876
827
|
const defaultPropString = `$PropType[${JSON.stringify(propertyDefinition.type)}]`;
|
|
877
|
-
if (!(propertyDefinition.type === "string" || propertyDefinition.type === "boolean") || !propertyDefinition.valueTypeApiName
|
|
828
|
+
if (!(propertyDefinition.type === "string" || propertyDefinition.type === "boolean") || !propertyDefinition.valueTypeApiName) {
|
|
878
829
|
return defaultPropString;
|
|
879
830
|
}
|
|
880
831
|
const valueType = valueTypeMetadata[propertyDefinition.valueTypeApiName];
|
|
832
|
+
if (valueType == null || valueType.constraints.length === 0) {
|
|
833
|
+
return defaultPropString;
|
|
834
|
+
}
|
|
881
835
|
if (valueType.constraints.length !== 1) {
|
|
882
836
|
throw new Error(`Expected exactly one constraint for value type ${propertyDefinition.valueTypeApiName} but got ${valueType.constraints.length}`);
|
|
883
837
|
}
|
|
@@ -966,9 +920,10 @@ Cannot have both an unqualified property and a namespaced property with matching
|
|
|
966
920
|
return `import type {
|
|
967
921
|
InterfaceDefinition as $InterfaceDefinition,
|
|
968
922
|
InterfaceMetadata as $InterfaceMetadata,
|
|
969
|
-
ObjectSet as $ObjectSet,
|
|
923
|
+
ObjectSet as $ObjectSet,
|
|
970
924
|
Osdk as $Osdk,
|
|
971
925
|
PropertyValueWireToClient as $PropType,
|
|
926
|
+
SingleLinkAccessor as $SingleLinkAccessor,
|
|
972
927
|
} from "${forInternalUse2 ? "@osdk/api" : "@osdk/client"}";
|
|
973
928
|
|
|
974
929
|
${definition.links ? Object.keys(definition.links).length > 0 ? `
|
|
@@ -976,7 +931,7 @@ Cannot have both an unqualified property and a namespaced property with matching
|
|
|
976
931
|
${stringify(definition.links, {
|
|
977
932
|
"*": (definition2) => {
|
|
978
933
|
const linkTarget = definition2.targetType === "object" ? ontology.requireObjectType(definition2.targetTypeApiName).getImportedDefinitionIdentifier(v2) : ontology.requireInterfaceType(definition2.targetTypeApiName).getImportedDefinitionIdentifier(v2);
|
|
979
|
-
return `${definition2.multiplicity ? `${linkTarget}.ObjectSet` : `${linkTarget}
|
|
934
|
+
return `${definition2.multiplicity ? `${linkTarget}.ObjectSet` : `$SingleLinkAccessor<${linkTarget}>`}
|
|
980
935
|
`;
|
|
981
936
|
}
|
|
982
937
|
})}
|
|
@@ -1112,6 +1067,7 @@ function getInterfaceTypesFromQueryDataType(dataType, types) {
|
|
|
1112
1067
|
case "float":
|
|
1113
1068
|
case "integer":
|
|
1114
1069
|
case "long":
|
|
1070
|
+
case "mediaReference":
|
|
1115
1071
|
case "null":
|
|
1116
1072
|
case "string":
|
|
1117
1073
|
case "threeDimensionalAggregation":
|
|
@@ -1121,6 +1077,9 @@ function getInterfaceTypesFromQueryDataType(dataType, types) {
|
|
|
1121
1077
|
case "unsupported":
|
|
1122
1078
|
case "object":
|
|
1123
1079
|
case "objectSet":
|
|
1080
|
+
case "mediaReference":
|
|
1081
|
+
case "typeReference":
|
|
1082
|
+
case "void":
|
|
1124
1083
|
return;
|
|
1125
1084
|
default:
|
|
1126
1085
|
throw new Error(`Unknown query data type ${dataType.type}`);
|
|
@@ -1173,6 +1132,7 @@ function getObjectTypesFromQueryDataType(dataType, types) {
|
|
|
1173
1132
|
case "float":
|
|
1174
1133
|
case "integer":
|
|
1175
1134
|
case "long":
|
|
1135
|
+
case "mediaReference":
|
|
1176
1136
|
case "null":
|
|
1177
1137
|
case "string":
|
|
1178
1138
|
case "threeDimensionalAggregation":
|
|
@@ -1182,6 +1142,9 @@ function getObjectTypesFromQueryDataType(dataType, types) {
|
|
|
1182
1142
|
case "unsupported":
|
|
1183
1143
|
case "interfaceObject":
|
|
1184
1144
|
case "interfaceObjectSet":
|
|
1145
|
+
case "mediaReference":
|
|
1146
|
+
case "typeReference":
|
|
1147
|
+
case "void":
|
|
1185
1148
|
return;
|
|
1186
1149
|
default:
|
|
1187
1150
|
throw new Error(`Unknown query data type ${dataType.type}`);
|
|
@@ -1268,8 +1231,8 @@ async function generateV2QueryFile(fs2, outDir, relOutDir, query, importExt, ont
|
|
|
1268
1231
|
}), "Result")}
|
|
1269
1232
|
`}
|
|
1270
1233
|
}
|
|
1271
|
-
|
|
1272
|
-
|
|
1234
|
+
|
|
1235
|
+
${getDescriptionIfPresent(query.description)}
|
|
1273
1236
|
export interface ${query.shortApiName} extends QueryDefinition<
|
|
1274
1237
|
${query.shortApiName}.Signature
|
|
1275
1238
|
>, VersionBound<$ExpectedClientVersion>{
|
|
@@ -1293,7 +1256,7 @@ async function generateV2QueryFile(fs2, outDir, relOutDir, query, importExt, ont
|
|
|
1293
1256
|
osdkMetadata: typeof $osdkMetadata;
|
|
1294
1257
|
}
|
|
1295
1258
|
|
|
1296
|
-
|
|
1259
|
+
${getDescriptionIfPresent(query.description)}
|
|
1297
1260
|
export const ${query.shortApiName}: ${query.definitionIdentifier} = {
|
|
1298
1261
|
${stringify(baseProps, {
|
|
1299
1262
|
"description": () => void 0,
|
|
@@ -1358,6 +1321,13 @@ function getQueryParamType(enhancedOntology, input, type, isMapKey = false) {
|
|
|
1358
1321
|
case "timestamp":
|
|
1359
1322
|
paramType = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;
|
|
1360
1323
|
break;
|
|
1324
|
+
case "mediaReference":
|
|
1325
|
+
if (type === "Param") {
|
|
1326
|
+
paramType = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;
|
|
1327
|
+
} else {
|
|
1328
|
+
paramType = `Query${type}.MediaType`;
|
|
1329
|
+
}
|
|
1330
|
+
break;
|
|
1361
1331
|
case "struct":
|
|
1362
1332
|
paramType = `{
|
|
1363
1333
|
${stringify(input.struct, {
|
|
@@ -1429,19 +1399,17 @@ function helper(x) {
|
|
|
1429
1399
|
async function generateClientSdkVersionTwoPointZero(ontology, userAgent, fs2, outDir, packageType = "commonjs", externalObjects = /* @__PURE__ */ new Map(), externalInterfaces = /* @__PURE__ */ new Map(), externalSpts = /* @__PURE__ */ new Map(), forInternalUse = false, fixedVersionQueryTypes = []) {
|
|
1430
1400
|
const importExt = ".js";
|
|
1431
1401
|
await verifyOutDir(outDir, fs2);
|
|
1432
|
-
const sanitizedOntology = sanitizeMetadata(ontology);
|
|
1433
1402
|
await fs2.mkdir(outDir, {
|
|
1434
1403
|
recursive: true
|
|
1435
1404
|
});
|
|
1436
1405
|
const enhancedOntology = enhanceOntology({
|
|
1437
|
-
sanitized:
|
|
1406
|
+
sanitized: ontology,
|
|
1438
1407
|
importExt,
|
|
1439
1408
|
externalObjects,
|
|
1440
1409
|
externalInterfaces,
|
|
1441
1410
|
externalSpts
|
|
1442
1411
|
});
|
|
1443
1412
|
const ctx = {
|
|
1444
|
-
sanitizedOntology,
|
|
1445
1413
|
ontology: enhancedOntology,
|
|
1446
1414
|
importExt,
|
|
1447
1415
|
fs: fs2,
|
|
@@ -1566,5 +1534,6 @@ async function writeJson(minimalFs, filePath, body) {
|
|
|
1566
1534
|
exports.__UNSTABLE_generateClientSdkPackage = generateClientSdkPackage;
|
|
1567
1535
|
exports.generateClientSdkVersionTwoPointZero = generateClientSdkVersionTwoPointZero;
|
|
1568
1536
|
exports.getExpectedDependencies = getExpectedDependencies;
|
|
1537
|
+
exports.getTsCompilerOptions = getTsCompilerOptions;
|
|
1569
1538
|
//# sourceMappingURL=index.cjs.map
|
|
1570
1539
|
//# sourceMappingURL=index.cjs.map
|