@osdk/generator 2.18.0 → 2.18.1-main-4bc17ccb2e8d76e9ed34e72c0f92d549b273f5da

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 CHANGED
@@ -1,5 +1,14 @@
1
1
  # @osdk/generator
2
2
 
3
+ ## 2.18.1-main-4bc17ccb2e8d76e9ed34e72c0f92d549b273f5da
4
+
5
+ ### Patch Changes
6
+
7
+ - 02c796c: Array Reducers and Struct Main Value support
8
+ - Updated dependencies [02c796c]
9
+ - @osdk/generator-converters@2.18.1-main-4bc17ccb2e8d76e9ed34e72c0f92d549b273f5da
10
+ - @osdk/api@2.18.1-main-4bc17ccb2e8d76e9ed34e72c0f92d549b273f5da
11
+
3
12
  ## 2.18.0
4
13
 
5
14
  ### Patch Changes
@@ -18,7 +18,7 @@ import path from "path";
18
18
  import { formatTs } from "../util/test/formatTs.js";
19
19
 
20
20
  // BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.
21
- const ExpectedOsdkVersion = "2.18.0";
21
+ const ExpectedOsdkVersion = "2.18.1";
22
22
  // END: THIS IS GENERATED CODE. DO NOT EDIT.
23
23
 
24
24
  export async function generateOntologyMetadataFile({
@@ -1 +1 @@
1
- {"version":3,"file":"generateMetadata.js","names":["path","formatTs","ExpectedOsdkVersion","generateOntologyMetadataFile","fs","outDir","ontology","ontologyApiNamespace","userAgent","writeFile","join","rid","raw","branch"],"sources":["generateMetadata.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 path from \"path\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst ExpectedOsdkVersion = \"2.18.0\";\n// END: THIS IS GENERATED CODE. DO NOT EDIT.\n\nexport async function generateOntologyMetadataFile(\n { fs, outDir, ontology, ontologyApiNamespace }: GenerateContext,\n userAgent: string,\n): Promise<void> {\n await fs.writeFile(\n path.join(outDir, \"OntologyMetadata.ts\"),\n await formatTs(\n `\n export type $ExpectedClientVersion = \"${ExpectedOsdkVersion}\";\n export const $osdkMetadata = { extraUserAgent: \"${userAgent}\" };\n ${\n ontologyApiNamespace == null\n ? `\n export const $ontologyRid = \"${ontology.ontology.rid}\";\n `\n : \"\"\n }\n ${\n ontology.raw.branch != null\n ? `\n export const $branch = \"${ontology.raw.branch.rid}\";\n `\n : \"\"\n }\n `,\n ),\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AAEvB,SAASC,QAAQ,QAAQ,0BAA0B;;AAEnD;AACA,MAAMC,mBAAmB,GAAG,QAAQ;AACpC;;AAEA,OAAO,eAAeC,4BAA4BA,CAChD;EAAEC,EAAE;EAAEC,MAAM;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,EAC/DC,SAAiB,EACF;EACf,MAAMJ,EAAE,CAACK,SAAS,CAChBT,IAAI,CAACU,IAAI,CAACL,MAAM,EAAE,qBAAqB,CAAC,EACxC,MAAMJ,QAAQ,CACZ;AACN,8CAA8CC,mBAAmB;AACjE,wDAAwDM,SAAS;AACjE,QACQD,oBAAoB,IAAI,IAAI,GACxB;AACZ,uCAAuCD,QAAQ,CAACA,QAAQ,CAACK,GAAG;AAC5D,SAAS,GACG,EAAE;AACd,SAEQL,QAAQ,CAACM,GAAG,CAACC,MAAM,IAAI,IAAI,GACvB;AACZ,kCAAkCP,QAAQ,CAACM,GAAG,CAACC,MAAM,CAACF,GAAG;AACzD,SAAS,GACG,EAAE;AACd,OAEI,CACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"generateMetadata.js","names":["path","formatTs","ExpectedOsdkVersion","generateOntologyMetadataFile","fs","outDir","ontology","ontologyApiNamespace","userAgent","writeFile","join","rid","raw","branch"],"sources":["generateMetadata.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 path from \"path\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst ExpectedOsdkVersion = \"2.18.1\";\n// END: THIS IS GENERATED CODE. DO NOT EDIT.\n\nexport async function generateOntologyMetadataFile(\n { fs, outDir, ontology, ontologyApiNamespace }: GenerateContext,\n userAgent: string,\n): Promise<void> {\n await fs.writeFile(\n path.join(outDir, \"OntologyMetadata.ts\"),\n await formatTs(\n `\n export type $ExpectedClientVersion = \"${ExpectedOsdkVersion}\";\n export const $osdkMetadata = { extraUserAgent: \"${userAgent}\" };\n ${\n ontologyApiNamespace == null\n ? `\n export const $ontologyRid = \"${ontology.ontology.rid}\";\n `\n : \"\"\n }\n ${\n ontology.raw.branch != null\n ? `\n export const $branch = \"${ontology.raw.branch.rid}\";\n `\n : \"\"\n }\n `,\n ),\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,MAAM;AAEvB,SAASC,QAAQ,QAAQ,0BAA0B;;AAEnD;AACA,MAAMC,mBAAmB,GAAG,QAAQ;AACpC;;AAEA,OAAO,eAAeC,4BAA4BA,CAChD;EAAEC,EAAE;EAAEC,MAAM;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,EAC/DC,SAAiB,EACF;EACf,MAAMJ,EAAE,CAACK,SAAS,CAChBT,IAAI,CAACU,IAAI,CAACL,MAAM,EAAE,qBAAqB,CAAC,EACxC,MAAMJ,QAAQ,CACZ;AACN,8CAA8CC,mBAAmB;AACjE,wDAAwDM,SAAS;AACjE,QACQD,oBAAoB,IAAI,IAAI,GACxB;AACZ,uCAAuCD,QAAQ,CAACA,QAAQ,CAACK,GAAG;AAC5D,SAAS,GACG,EAAE;AACd,SAEQL,QAAQ,CAACM,GAAG,CAACC,MAAM,IAAI,IAAI,GACvB;AACZ,kCAAkCP,QAAQ,CAACM,GAAG,CAACC,MAAM,CAACF,GAAG;AACzD,SAAS,GACG,EAAE;AACd,OAEI,CACF,CAAC;AACH","ignoreList":[]}
@@ -199,9 +199,19 @@ export function createDefinition(object, ontology, identifier, {
199
199
  }`,
200
200
  properties: () => `{
201
201
  ${stringify(definition.properties, {
202
- "*": (propertyDefinition, _, apiName) => [`${propertyJsdoc(propertyDefinition, propertyMetadata[apiName], {
203
- apiName
204
- })}"${maybeStripNamespace(object, apiName)}"`, `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, "${propertyDefinition.nullable ? "nullable" : "non-nullable"}", "${propertyDefinition.multiplicity ? "array" : "single"}">`]
202
+ "*": (propertyDefinition, _, apiName) => {
203
+ const hasMainValue = propertyDefinition.mainValue?.fields != null;
204
+ const hasReducers = propertyDefinition.hasReducers === true;
205
+ let extraParams = "";
206
+ if (hasMainValue || hasReducers) {
207
+ const mainValueParam = hasMainValue ? JSON.stringify(propertyDefinition.mainValue.fields) : "undefined";
208
+ const hasReducersParam = hasReducers ? "true" : "false";
209
+ extraParams = `, ${mainValueParam}, ${hasReducersParam}`;
210
+ }
211
+ return [`${propertyJsdoc(propertyDefinition, propertyMetadata[apiName], {
212
+ apiName
213
+ })}"${maybeStripNamespace(object, apiName)}"`, `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, "${propertyDefinition.nullable ? "nullable" : "non-nullable"}", "${propertyDefinition.multiplicity ? "array" : "single"}"${extraParams}>`];
214
+ }
205
215
  })}
206
216
  }`
207
217
  })}
@@ -1 +1 @@
1
- {"version":3,"file":"wireObjectTypeV2ToSdkObjectConstV2.js","names":["wireObjectTypeFullMetadataToSdkObjectMetadata","consola","EnhancedInterfaceType","EnhancedObjectType","ForeignType","getObjectImports","propertyJsdoc","stringify","stringUnionFrom","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","sort","b","localeCompare","structType","output","entries","value","defaultPropString","valueTypeApiName","valueType","constraints","shouldWrapWithParentheses","constraint","valueConstraint","maybeEnumString","maybeGetEnumString","options","x","String","warn","filter","join"],"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\";\nimport { stringUnionFrom } from \"../util/stringUnionFrom.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 .sort((a, b) => a.localeCompare(b));\n return `export type PropertyKeys = ${\n stringUnionFrom(\n properties.map((a) => maybeStripNamespace(type, a)),\n )\n };`;\n}\n\nfunction remapStructType(structType: Record<string, any>): string {\n let output = `{`;\n Object.entries(structType).sort(([a], [b]) => a.localeCompare(b)).map((\n [key, value],\n ) => output += `${key}:$PropType[${JSON.stringify(value)}]|undefined;`);\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 stringUnionFrom(constraint.options.map(x => String(x)));\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","stringUnionFrom","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","hasMainValue","mainValue","fields","hasReducers","extraParams","mainValueParam","JSON","hasReducersParam","Object","keys","key","linkTarget","sort","b","localeCompare","structType","output","entries","value","defaultPropString","valueTypeApiName","valueType","constraints","shouldWrapWithParentheses","constraint","valueConstraint","maybeEnumString","maybeGetEnumString","options","x","String","warn","filter","join"],"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\";\nimport { stringUnionFrom } from \"../util/stringUnionFrom.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 const hasMainValue = propertyDefinition.mainValue?.fields != null;\n const hasReducers = propertyDefinition.hasReducers === true;\n\n let extraParams = \"\";\n if (hasMainValue || hasReducers) {\n const mainValueParam = hasMainValue\n ? JSON.stringify(propertyDefinition.mainValue!.fields)\n : \"undefined\";\n const hasReducersParam = hasReducers ? \"true\" : \"false\";\n extraParams = `, ${mainValueParam}, ${hasReducersParam}`;\n }\n\n return [\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 }\", \"${\n propertyDefinition.multiplicity ? \"array\" : \"single\"\n }\"${extraParams}>`,\n ] as [string, string];\n },\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 .sort((a, b) => a.localeCompare(b));\n return `export type PropertyKeys = ${\n stringUnionFrom(\n properties.map((a) => maybeStripNamespace(type, a)),\n )\n };`;\n}\n\nfunction remapStructType(structType: Record<string, any>): string {\n let output = `{`;\n Object.entries(structType).sort(([a], [b]) => a.localeCompare(b)).map((\n [key, value],\n ) => output += `${key}:$PropType[${JSON.stringify(value)}]|undefined;`);\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 stringUnionFrom(constraint.options.map(x => String(x)));\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":[]}
@@ -287,7 +287,7 @@ function formatTs(contents) {
287
287
  }
288
288
 
289
289
  // src/v2.0/generateMetadata.ts
290
- var ExpectedOsdkVersion = "2.18.0";
290
+ var ExpectedOsdkVersion = "2.18.1";
291
291
  async function generateOntologyMetadataFile({
292
292
  fs: fs2,
293
293
  outDir,
@@ -800,9 +800,19 @@ function createDefinition(object, ontology, identifier, {
800
800
  }`,
801
801
  properties: (_value) => `{
802
802
  ${stringify(definition.properties, {
803
- "*": (propertyDefinition, _, apiName) => [`${propertyJsdoc(propertyDefinition, propertyMetadata[apiName], {
804
- apiName
805
- })}"${maybeStripNamespace(object, apiName)}"`, `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, "${propertyDefinition.nullable ? "nullable" : "non-nullable"}", "${propertyDefinition.multiplicity ? "array" : "single"}">`]
803
+ "*": (propertyDefinition, _, apiName) => {
804
+ const hasMainValue = propertyDefinition.mainValue?.fields != null;
805
+ const hasReducers = propertyDefinition.hasReducers === true;
806
+ let extraParams = "";
807
+ if (hasMainValue || hasReducers) {
808
+ const mainValueParam = hasMainValue ? JSON.stringify(propertyDefinition.mainValue.fields) : "undefined";
809
+ const hasReducersParam = hasReducers ? "true" : "false";
810
+ extraParams = `, ${mainValueParam}, ${hasReducersParam}`;
811
+ }
812
+ return [`${propertyJsdoc(propertyDefinition, propertyMetadata[apiName], {
813
+ apiName
814
+ })}"${maybeStripNamespace(object, apiName)}"`, `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, "${propertyDefinition.nullable ? "nullable" : "non-nullable"}", "${propertyDefinition.multiplicity ? "array" : "single"}"${extraParams}>`];
815
+ }
806
816
  })}
807
817
  }`
808
818
  })}