@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.
Files changed (115) hide show
  1. package/CHANGELOG.md +257 -0
  2. package/build/browser/GenerateContext/EnhancedAction.js +13 -0
  3. package/build/browser/GenerateContext/EnhancedAction.js.map +1 -1
  4. package/build/browser/GenerateContext/GenerateContext.js.map +1 -1
  5. package/build/browser/generateClientSdkPackage.js +1 -1
  6. package/build/browser/generateClientSdkPackage.js.map +1 -1
  7. package/build/browser/index.js +1 -1
  8. package/build/browser/index.js.map +1 -1
  9. package/build/browser/shared/getInterfaceTypesFromQueryDataType.js +4 -0
  10. package/build/browser/shared/getInterfaceTypesFromQueryDataType.js.map +1 -1
  11. package/build/browser/shared/getObjectTypesFromQueryDataType.js +4 -0
  12. package/build/browser/shared/getObjectTypesFromQueryDataType.js.map +1 -1
  13. package/build/browser/util/test/TodoWireOntology.js +24 -12
  14. package/build/browser/util/test/TodoWireOntology.js.map +1 -1
  15. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +3 -2
  16. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -1
  17. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js +1 -4
  18. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -1
  19. package/build/browser/v2.0/generatePerActionDataFiles.js +2 -6
  20. package/build/browser/v2.0/generatePerActionDataFiles.js.map +1 -1
  21. package/build/browser/v2.0/generatePerQueryDataFiles.js +10 -3
  22. package/build/browser/v2.0/generatePerQueryDataFiles.js.map +1 -1
  23. package/build/browser/v2.0/getDescriptionIfPresent.js +4 -1
  24. package/build/browser/v2.0/getDescriptionIfPresent.js.map +1 -1
  25. package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +9 -2
  26. package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -1
  27. package/build/cjs/index.cjs +50 -81
  28. package/build/cjs/index.cjs.map +1 -1
  29. package/build/cjs/index.d.cts +12 -1
  30. package/build/esm/GenerateContext/EnhancedAction.js +13 -0
  31. package/build/esm/GenerateContext/EnhancedAction.js.map +1 -1
  32. package/build/esm/GenerateContext/GenerateContext.js.map +1 -1
  33. package/build/esm/generateClientSdkPackage.js +1 -1
  34. package/build/esm/generateClientSdkPackage.js.map +1 -1
  35. package/build/esm/index.js +1 -1
  36. package/build/esm/index.js.map +1 -1
  37. package/build/esm/shared/getInterfaceTypesFromQueryDataType.js +4 -0
  38. package/build/esm/shared/getInterfaceTypesFromQueryDataType.js.map +1 -1
  39. package/build/esm/shared/getObjectTypesFromQueryDataType.js +4 -0
  40. package/build/esm/shared/getObjectTypesFromQueryDataType.js.map +1 -1
  41. package/build/esm/util/test/TodoWireOntology.js +24 -12
  42. package/build/esm/util/test/TodoWireOntology.js.map +1 -1
  43. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +3 -2
  44. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -1
  45. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js +1 -4
  46. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.js.map +1 -1
  47. package/build/esm/v2.0/generatePerActionDataFiles.js +2 -6
  48. package/build/esm/v2.0/generatePerActionDataFiles.js.map +1 -1
  49. package/build/esm/v2.0/generatePerQueryDataFiles.js +10 -3
  50. package/build/esm/v2.0/generatePerQueryDataFiles.js.map +1 -1
  51. package/build/esm/v2.0/getDescriptionIfPresent.js +4 -1
  52. package/build/esm/v2.0/getDescriptionIfPresent.js.map +1 -1
  53. package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +9 -2
  54. package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -1
  55. package/build/types/GenerateContext/EnhancedAction.d.ts +2 -0
  56. package/build/types/GenerateContext/EnhancedAction.d.ts.map +1 -1
  57. package/build/types/GenerateContext/GenerateContext.d.ts +0 -2
  58. package/build/types/GenerateContext/GenerateContext.d.ts.map +1 -1
  59. package/build/types/generateClientSdkPackage.d.ts +11 -0
  60. package/build/types/generateClientSdkPackage.d.ts.map +1 -1
  61. package/build/types/index.d.ts +1 -1
  62. package/build/types/index.d.ts.map +1 -1
  63. package/build/types/v2.0/generateClientSdkVersionTwoPointZero.d.ts.map +1 -1
  64. package/build/types/v2.0/generatePerActionDataFiles.d.ts +1 -1
  65. package/build/types/v2.0/generatePerActionDataFiles.d.ts.map +1 -1
  66. package/build/types/v2.0/wireObjectTypeV2ToSdkObjectConstV2.d.ts.map +1 -1
  67. package/package.json +6 -6
  68. package/build/browser/generateClientSdkPackage.test.js +0 -68
  69. package/build/browser/generateClientSdkPackage.test.js.map +0 -1
  70. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.js +0 -47
  71. package/build/browser/shared/apiNamespaces/startsWithApiNamespace.test.js.map +0 -1
  72. package/build/browser/shared/sanitizeMetadata.js +0 -42
  73. package/build/browser/shared/sanitizeMetadata.js.map +0 -1
  74. package/build/browser/shared/sanitizeMetadata.test.js +0 -46
  75. package/build/browser/shared/sanitizeMetadata.test.js.map +0 -1
  76. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +0 -472
  77. package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +0 -1
  78. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js +0 -2603
  79. package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +0 -1
  80. package/build/browser/v2.0/generatePerActionDataFiles.test.js +0 -64
  81. package/build/browser/v2.0/generatePerActionDataFiles.test.js.map +0 -1
  82. package/build/browser/v2.0/generatePerQueryDataFiles.test.js +0 -519
  83. package/build/browser/v2.0/generatePerQueryDataFiles.test.js.map +0 -1
  84. package/build/esm/generateClientSdkPackage.test.js +0 -68
  85. package/build/esm/generateClientSdkPackage.test.js.map +0 -1
  86. package/build/esm/shared/apiNamespaces/startsWithApiNamespace.test.js +0 -47
  87. package/build/esm/shared/apiNamespaces/startsWithApiNamespace.test.js.map +0 -1
  88. package/build/esm/shared/sanitizeMetadata.js +0 -42
  89. package/build/esm/shared/sanitizeMetadata.js.map +0 -1
  90. package/build/esm/shared/sanitizeMetadata.test.js +0 -46
  91. package/build/esm/shared/sanitizeMetadata.test.js.map +0 -1
  92. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +0 -472
  93. package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +0 -1
  94. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js +0 -2603
  95. package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +0 -1
  96. package/build/esm/v2.0/generatePerActionDataFiles.test.js +0 -64
  97. package/build/esm/v2.0/generatePerActionDataFiles.test.js.map +0 -1
  98. package/build/esm/v2.0/generatePerQueryDataFiles.test.js +0 -519
  99. package/build/esm/v2.0/generatePerQueryDataFiles.test.js.map +0 -1
  100. package/build/types/generateClientSdkPackage.test.d.ts +0 -1
  101. package/build/types/generateClientSdkPackage.test.d.ts.map +0 -1
  102. package/build/types/shared/apiNamespaces/startsWithApiNamespace.test.d.ts +0 -1
  103. package/build/types/shared/apiNamespaces/startsWithApiNamespace.test.d.ts.map +0 -1
  104. package/build/types/shared/sanitizeMetadata.d.ts +0 -1
  105. package/build/types/shared/sanitizeMetadata.d.ts.map +0 -1
  106. package/build/types/shared/sanitizeMetadata.test.d.ts +0 -1
  107. package/build/types/shared/sanitizeMetadata.test.d.ts.map +0 -1
  108. package/build/types/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.d.ts +0 -1
  109. package/build/types/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.d.ts.map +0 -1
  110. package/build/types/v2.0/generateClientSdkVersionTwoPointZero.test.d.ts +0 -1
  111. package/build/types/v2.0/generateClientSdkVersionTwoPointZero.test.d.ts.map +0 -1
  112. package/build/types/v2.0/generatePerActionDataFiles.test.d.ts +0 -1
  113. package/build/types/v2.0/generatePerActionDataFiles.test.d.ts.map +0 -1
  114. package/build/types/v2.0/generatePerQueryDataFiles.test.d.ts +0 -1
  115. 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 || valueTypeMetadata[propertyDefinition.valueTypeApiName] == null) {
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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,SAASA,6CAA6C,QAAQ,4BAA4B;AAC1F,OAAOC,OAAO,MAAM,SAAS;AAC7B,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,kBAAkB,QAAQ,0CAA0C;AAE7E,SAASC,WAAW,QAAQ,mCAAmC;AAE/D,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,SAAS,QAAQ,sBAAsB;AAIhD;AACA,OAAO,SAASC,kCAAkCA,CAChDC,UAAkC,EAClC;EAAEC,QAAQ;EAAEC;AAGZ,CAAC,EACDC,eAAuB,EACvB;EACA,MAAMC,MAAM,GAAGH,QAAQ,CAACI,iBAAiB,CACvCL,UAAU,CAACM,UAAU,CAACC,OAAO,EAC7B,IACF,CAAC;EACD,IAAIH,MAAM,YAAYT,WAAW,EAAE;IACjC,MAAM,IAAIa,KAAK,CAAC,qDAAqD,CAAC;EACxE;EACA,MAAMC,qBAAqB,GAAG,IAAIC,GAAG,CACnCV,UAAU,CAACW,SAAS,CAACC,GAAG,CAACC,CAAC,IACxBZ,QAAQ,CAACI,iBAAiB,CAACQ,CAAC,CAACC,iBAAiB,EAAE,KAAK,CACvD,CACF,CAAC;EAED,MAAMC,UAAU,GAAGxB,6CAA6C,CAC9Da,MAAM,CAACY,GAAG,EACV,IAAI,EACJxB,OACF,CAAC;EAED,MAAMyB,mBAAmB,GAAGb,MAAM,CAACc,uBAAuB,CAAC,IAAI,CAAC;EAEhE,MAAMC,mBAAmB,GAAG,GAAGf,MAAM,CAACgB,YAAY,YAAY;EAC9D,MAAMC,sBAAsB,GAAG,GAAGjB,MAAM,CAACgB,YAAY,eAAe;EACpE;EACA,MAAME,yBAAyB,GAAG,GAAGlB,MAAM,CAACgB,YAAY,QAAQ;EAChE,MAAMG,+BAA+B,GAAG,GAAGnB,MAAM,CAACgB,YAAY,cAAc;EAC5E,MAAMI,yBAAyB,GAAG,GAAGpB,MAAM,CAACgB,YAAY,QAAQ;EAChE,MAAMK,oBAAoB,GAAG,GAAGrB,MAAM,CAACgB,YAAY,aAAa;EAEhE,MAAMM,WAAwB,GAAG;IAC/BT,mBAAmB,EAAEb,MAAM,CAACgB,YAAY;IACxCI,yBAAyB;IACzBF,yBAAyB;IACzBC,+BAA+B;IAC/BJ,mBAAmB;IACnBM,oBAAoB;IACpBJ;EACF,CAAC;EAyCD,MAAMM,OAAO,GAAG/B,gBAAgB,CAC9Ba,qBAAqB,EACrBM,UAAU,CAACR,OAAO,EAClBJ,eAAe,EACf,IACF,CAAC;EAED,OAAO,GAAGwB,OAAO,GA9CjB,UACEvB,MAA0B,EAC1BF,cAAuB,GAAG,KAAK,EAC/B;IACA,OAAO;AACX;AACA;AACA;AACA,cAAcA,cAAc,GAAG,WAAW,GAAG,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,cAAcA,cAAc,GAAG,WAAW,GAAG,cAAc;AAC3D;AACA;AACA,uBAAuBE,MAAM,CAACgB,YAAY;AAC1C;AACA,QAAQQ,kBAAkB,CAACxB,MAAM,CAAC;AAClC;AACA;AACA,QAAQyB,WAAW,CAAC5B,QAAQ,EAAEG,MAAM,EAAE,OAAO,CAAC;AAC9C;AACA,QAAQ0B,WAAW,CAAC1B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAEH,QAAQ,CAACe,GAAG,CAACe,UAAU,CAAC;AACpE,QAAQD,WAAW,CAAC1B,MAAM,EAAE,aAAa,EAAE,IAAI,EAAEH,QAAQ,CAACe,GAAG,CAACe,UAAU,CAAC;AACzE;AACA,QAAQC,eAAe,CAAC5B,MAAM,EAAEsB,WAAW,CAAC;AAC5C;AACA,QAAQO,gBAAgB,CAAC7B,MAAM,EAAE,cAAc,EAAEsB,WAAW,CAAC;AAC7D;AACA;AACA;AACA;AACA,MAAMQ,gBAAgB,CAAC9B,MAAM,EAAEH,QAAQ,EAAEG,MAAM,CAACgB,YAAY,EAAEM,WAAW,CAAC;AAC1E,KAAK;EACH,CAAC,CAS8BtB,MAAM,EAAEF,cAAc,CAAC;AACxD;AACA,mBAAmBE,MAAM,CAACgB,YAAY;AACtC;AACA,eAAehB,MAAM,YAAYV,kBAAkB,GAAG,QAAQ,GAAG,WAAW;AAC5E,kBAAkBU,MAAM,CAAC+B,WAAW;AACpC;AACA,4BAA4BpB,UAAU,CAACqB,iBAAiB;AACxD,yBAAyBrB,UAAU,CAACsB,cAAc;AAClD;AACA,gBAAgBtB,UAAU,CAACuB,GAAG;AAC9B;AACA,kBAAkBrB,mBAAmB,uDAAuDA,mBAAmB,GAAG;AAClH;AAeA,OAAO,SAASgB,gBAAgBA,CAC9B7B,MAAkD,EAClDmC,UAAkB,EAClB;EACEjB,yBAAyB;EACzBL,mBAAmB;EACnBM,+BAA+B;EAC/BC;AACW,CAAC,EACd;EACmBpB,MAAM,CAACoC,sBAAsB,CAAC,IAAI,CAAC;EACtD,OAAO;AACT,kBAAkBD,UAAU;AAC5B;AACA,wBAAwBjB,yBAAyB,WAAWA,yBAAyB;AACrF;AACA;AACA,UAAUL,mBAAmB;AAC7B;AACA;AACA;AACA;AACA;AACA,0BAA0BsB,UAAU;AACpC;AACA;AACA,wBAAwBjB,yBAAyB,WAAWA,yBAAyB;AACrF,UAAUiB,UAAU;AACpB;AACA,KAAK;AACL;AAEA,OAAO,SAASP,eAAeA,CAC7B5B,MAAkD,EAClD;EACEa,mBAAmB;EACnBE,mBAAmB;EACnBE,sBAAsB;EACtBI;AACW,CAAC,EACd;EACA,OAAO;AACT;AACA,aAAaR,mBAAmB;AAChC;AACA,EAAEE,mBAAmB;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASsB,mBAAmBA,CAC1BC,IAAgD,EAChDC,CAAS,EACT;EACA,IACED,IAAI,CAACE,YAAY,IAAID,CAAC,CAACE,UAAU,CAAC,GAAGH,IAAI,CAACE,YAAY,GAAG,CAAC,EAC1D;IACA,OAAOD,CAAC,CAACG,KAAK,CAACJ,IAAI,CAACE,YAAY,CAACG,MAAM,GAAG,CAAC,CAAC;EAC9C,CAAC,MAAM;IACL,OAAOJ,CAAC;EACV;AACF;AAEA,OAAO,SAASb,WAAWA,CACzBY,IAAgD,EAChDH,UAAkB,EAClBS,MAAe,EACfC,iBAA8D,EACtD;EACR,IAAIV,UAAU,KAAK,aAAa,EAAE;IAChC,OAAO,iCAAiC;EAC1C;EACA,MAAMxB,UAAU,GAAG2B,IAAI,CAACF,sBAAsB,CAAC,IAAI,CAAC;EACpD,MAAMU,gBAAgB,GAAGR,IAAI,YAAYhD,kBAAkB,GACvDgD,IAAI,CAAC1B,GAAG,CAACV,UAAU,CAAC6C,UAAU,GAC9BT,IAAI,YAAYjD,qBAAqB,GACrCiD,IAAI,CAAC1B,GAAG,CAACmC,UAAU,GACnBC,SAAS;EACb,OAAO,oBAAoBb,UAAU;AACvC,EACIzC,SAAS,CAACiB,UAAU,CAACoC,UAAU,EAAE;IAC/B,GAAG,EAAEE,CAACC,kBAAkB,EAAEC,CAAC,EAAEhD,OAAO,KAAK;MACvC,MAAMiD,QAAQ,GAAGN,gBAAgB,GAC5BA,gBAAgB,CAAuC3C,OAAO,CAAC,GAChE6C,SAAS;MACb,OAAO,CACL,GACEvD,aAAa,CAACyD,kBAAkB,EAAEE,QAAQ,EAAE;QAC1CjD;MACF,CAAC,CAAC,aACSkC,mBAAmB,CAACC,IAAI,EAAEnC,OAAO,CAAC,GAAG,EAClD,CAAC,OAAO+C,kBAAkB,CAACZ,IAAI,KAAK,QAAQ,GACxCe,eAAe,CAACH,kBAAkB,CAACZ,IAAI,CAAC,GACxCgB,0BAA0B,CAC1BJ,kBAAkB,EAClBL,iBACF,CAAC,IACD,GAAGK,kBAAkB,CAACK,YAAY,GAAG,IAAI,GAAG,EAAE,GAC9CL,kBAAkB,CAACM,QAAQ,IACrB,CAACZ,MAAM,IACN,EAAEjC,UAAU,CAAC2B,IAAI,KAAK,QAAQ,IAC5B3B,UAAU,CAACqB,iBAAiB,KAAK7B,OAAO,CAAE,GAC/C,aAAa,GACb,EAAE,EACN,CACH;IACH;EACF,CAAC,CAAC;AACN,MACM;AACN;AAEA,OAAO,SAAS2B,gBAAgBA,CAC9B9B,MAAkD,EAClDH,QAAoC,EACpCsC,UAAkB,EAClB;EACEtB,mBAAmB;EACnBE,mBAAmB;EACnBG,yBAAyB;EACzBC,+BAA+B;EAC/BC;AACW,CAAC,EACd;EACA,MAAMT,UAAU,GAAGX,MAAM,CAACoC,sBAAsB,CAAC,IAAI,CAAC;EACtD,MAAMU,gBAAgB,GAAG9C,MAAM,YAAYV,kBAAkB,GACzDU,MAAM,CAACY,GAAG,CAACV,UAAU,CAAC6C,UAAU,GAChC/C,MAAM,YAAYX,qBAAqB,GACvCW,MAAM,CAACY,GAAG,CAACmC,UAAU,GACrBC,SAAS;EACb,OAAO;AACT,uBAAuBb,UAAU,YAC7BnC,MAAM,YAAYV,kBAAkB,GAChC,uBAAuB,GACvB,sBAAsB;AAC9B;AACA,eACeU,MAAM,YAAYV,kBAAkB,GAAG,QAAQ,GAAG,WAAW;AAC5E,kBAAkBU,MAAM,CAAC+B,WAAW,KAChC/B,MAAM,YAAYV,kBAAkB,IAAIqB,UAAU,CAAC2B,IAAI,KAAK,QAAQ,GAChE;AACR,4BAA4B3B,UAAU,CAACqB,iBAAiB;AACxD,yBAAyBrB,UAAU,CAACsB,cAAc,IAAI,GAC9C,EAAE;AACV;AACA,mBACmBlB,mBAAmB;AACtC,eAAeG,yBAAyB;AACxC,mBAAmBE,yBAAyB;AAC5C,qBAAqBD,+BAA+B;AACpD,QACIzB,SAAS,CAACiB,UAAU,EAAE;IACpB8C,KAAK,EAAEA,CAAA,KACL;AACR,UACU9C,UAAU,CAAC2B,IAAI,KAAK,WAAW,GAC3B5C,SAAS,CAACiB,UAAU,CAAC8C,KAAK,EAAE;MAC5B,GAAG,EAAGC,cAAc,IAClB,2BACEA,cAAc,CAACC,UAAU,KAAK,WAAW,GACrC9D,QAAQ,CAAC+D,oBAAoB,CAC7BF,cAAc,CAACG,iBACjB,CAAC,CACEC,+BAA+B,CAAC,IAAI,CAAC,GACtCjE,QAAQ,CAACI,iBAAiB,CAC1ByD,cAAc,CAACG,iBACjB,CAAC,CAACC,+BAA+B,CAAC,IAAI,CAAC,KACtCJ,cAAc,CAACH,YAAY;IACpC,CAAC,CAAC,GACA7D,SAAS,CAACiB,UAAU,CAAC8C,KAAK,EAAE;MAC5B,GAAG,EAAGC,cAAc,IAClB,wBACE7D,QAAQ,CAACI,iBAAiB,CAACyD,cAAc,CAACC,UAAU,CAAC,CAClDG,+BAA+B,CAAC,IAAI,CAAC,KACrCJ,cAAc,CAACH,YAAY;IACpC,CAAC,CAAC;AACd,QACQ;IACFR,UAAU,EAAEA,CAAA,KAAa;AAC/B,UACQrD,SAAS,CAACiB,UAAU,CAACoC,UAAU,EAAE;MAC/B,GAAG,EAAEE,CAACC,kBAAkB,EAAEC,CAAC,EAAEhD,OAAO,KAClC,CACE,GACEV,aAAa,CACXyD,kBAAkB,EACjBJ,gBAAgB,CACf3C,OAAO,CACR,EACD;QACEA;MACF,CACF,CAAC,IACCkC,mBAAmB,CAACrC,MAAM,EAAEG,OAAO,CAAC,GAAG,EAC3C,gBAAgB4D,IAAI,CAACrE,SAAS,CAACwD,kBAAkB,CAACZ,IAAI,CAAC,MACrDY,kBAAkB,CAACM,QAAQ,GAAG,UAAU,GAAG,cAAc,OACpDN,kBAAkB,CAACK,YAAY,GAAG,OAAO,GAAG,QAAQ,IAAI;IAErE,CAAC,CAAC;AACV;EAEI,CAAC,CAAC;AACN;AACA;AACA,GACG;AACH;AAEA,OAAO,SAAS9B,WAAWA,CACzB5B,QAAoC,EACpCG,MAAkD,EAClDmC,UAAkB,EAClB;EACA,MAAMxB,UAAU,GAAGX,MAAM,CAACoC,sBAAsB,CAAC,IAAI,CAAC;EAEtD,OAAO;AACT,MACI4B,MAAM,CAACC,IAAI,CAACtD,UAAU,CAAC8C,KAAK,CAAC,CAACd,MAAM,KAAK,CAAC,GACtC,eAAeR,UAAU,QAAQ,GACjC;AACR,2BAA2BA,UAAU;AACrC,EACQzC,SAAS,CAACiB,UAAU,CAAC8C,KAAK,EAAE;IAC1B,GAAG,EAAER,CAACtC,UAAU,EAAEwC,CAAC,EAAEe,GAAG,KAAK;MAC3B,MAAMC,UAAU,GAAGtE,QAAQ,CAACI,iBAAiB,CAC3CU,UAAU,CAACgD,UACb,CAAC,CACEG,+BAA+B,CAAC,IAAI,CAAC;MAExC,OAAO,CACL,YAAYI,GAAG,EAAE,EACjB,GACEvD,UAAU,CAAC4C,YAAY,GACnB,GAAGY,UAAU,YAAY,GACzB,uBAAuBA,UAAU,GAAG;AACxD,WACW,CACE;IACH;EACF,CAAC,CAAC;AACV;AACA,KACK,EACD;AACJ;AAEA,OAAO,SAAS3C,kBAAkBA,CAChCc,IAAgD,EAChD;EACA,MAAMS,UAAU,GAAGiB,MAAM,CAACC,IAAI,CAAC3B,IAAI,CAACF,sBAAsB,CAAC,IAAI,CAAC,CAACW,UAAU,CAAC;EAC5E,OAAO,8BACLA,UAAU,CAACJ,MAAM,KAAK,CAAC,GACnB,OAAO,GACPI,UAAU,CAACvC,GAAG,CACbC,CAAC,IAAK4B,mBAAmB,CAACC,IAAI,EAAE7B,CAAC,CACpC,CAAC,CAACD,GAAG,CAACC,CAAC,IAAI,IAAIA,CAAC,GAAG,CAAC,CAAC2D,IAAI,CAAC,GAAG,CAAC,GAC/B;AACL;AAEA,SAASf,eAAeA,CAACgB,UAA+B,EAAU;EAChE,IAAIC,MAAM,GAAG,GAAG;EAChBN,MAAM,CAACO,OAAO,CAACF,UAAU,CAAC,CAAC7D,GAAG,CAAC,CAAC,CAAC0D,GAAG,EAAEM,KAAK,CAAC,KAC1CF,MAAM,IAAI,GAAGJ,GAAG,cAAcH,IAAI,CAACrE,SAAS,CAAC8E,KAAK,CAAC,cACrD,CAAC;EACDF,MAAM,IAAI,GAAG;EACb,OAAOA,MAAM;AACf;AAEA,SAAShB,0BAA0BA,CACjCJ,kBAA2C,EAC3CL,iBAA8D,EACtD;EACR,MAAM4B,iBAAiB,GAAG,aACxBV,IAAI,CAACrE,SAAS,CAACwD,kBAAkB,CAACZ,IAAI,CAAC,GACtC;EACH,IACE,EAAEY,kBAAkB,CAACZ,IAAI,KAAK,QAAQ,IACjCY,kBAAkB,CAACZ,IAAI,KAAK,SAAS,CAAC,IACxC,CAACY,kBAAkB,CAACwB,gBAAgB,EACvC;IACA,OAAOD,iBAAiB;EAC1B;EACA,MAAME,SAAS,GAAG9B,iBAAiB,CAACK,kBAAkB,CAACwB,gBAAgB,CAAC;EACxE,IAAIC,SAAS,IAAI,IAAI,IAAIA,SAAS,CAACC,WAAW,CAACjC,MAAM,KAAK,CAAC,EAAE;IAC3D,OAAO8B,iBAAiB;EAC1B;EACA,IAAIE,SAAS,CAACC,WAAW,CAACjC,MAAM,KAAK,CAAC,EAAE;IACtC,MAAM,IAAIvC,KAAK,CACb,kDAAkD8C,kBAAkB,CAACwB,gBAAgB,YAAYC,SAAS,CAACC,WAAW,CAACjC,MAAM,EAC/H,CAAC;EACH;EAEA,IAAIkC,yBAAyB,GAAG,KAAK;EACrC,IAAIC,UAAU,GAAGH,SAAS,CAACC,WAAW,CAAC,CAAC,CAAC;EACzC,IAAIE,UAAU,CAACxC,IAAI,KAAK,OAAO,IAAIwC,UAAU,CAACC,eAAe,EAAE;IAC7DD,UAAU,GAAGA,UAAU,CAACC,eAAe;IACvCF,yBAAyB,GAAG,IAAI;EAClC;EAEA,MAAMG,eAAe,GAAGC,kBAAkB,CACxC/B,kBAAkB,EAClB4B,UACF,CAAC;EAED,OAAOE,eAAe,GAElBH,yBAAyB,GAAG,IAAIG,eAAe,GAAG,GAAGA,eAAe,GAEpEP,iBAAiB;AACvB;AAEA,SAASQ,kBAAkBA,CACzB/B,kBAA2C,EAC3C4B,UAA+B,EAC/B;EACA,IAAIA,UAAU,CAACxC,IAAI,KAAK,MAAM,IAAIwC,UAAU,CAACI,OAAO,CAACvC,MAAM,KAAK,CAAC,EAAE;IACjE,OAAOK,SAAS;EAClB;EACA,IAAIE,kBAAkB,CAACZ,IAAI,KAAK,QAAQ,EAAE;IACxC,OAAOwC,UAAU,CAACI,OAAO,CAAC1E,GAAG,CAAC2E,CAAC,IAAI,IAAIA,CAAC,GAAG,CAAC,CAACf,IAAI,CAC/C,KACF,CAAC;EACH;EACA,IAAIlB,kBAAkB,CAACZ,IAAI,KAAK,SAAS,EAAE;IACzC,OAAOwC,UAAU,CAACI,OAAO,CAAC1E,GAAG,CAACgE,KAAK,IAAI;MACrC,IAAIA,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,IAAI;MACb,CAAC,MAAM,IAAIA,KAAK,KAAK,KAAK,EAAE;QAC1B,OAAO,KAAK;MACd,CAAC,MAAM,IAAIA,KAAK,IAAI,IAAI,EAAE;QACxB;QACA,OAAOxB,SAAS;MAClB,CAAC,MAAM;QACL5D,OAAO,CAACgG,IAAI,CAAC,qCAAqCZ,KAAK,aAAa,CAAC;MACvE;IACF,CAAC,CAAC,CAACa,MAAM,CAACb,KAAK,IAAIA,KAAK,IAAI,IAAI,CAAC,CAACJ,IAAI,CACpC,KACF,CAAC;EACH;EACA,OAAOpB,SAAS;AAClB","ignoreList":[]}
@@ -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
- * ${description}
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
- sanitizedOntology: ontology,
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 uniqueApiNamesArray = extractReferencedObjectsFromAction(action.raw);
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 || valueTypeMetadata[propertyDefinition.valueTypeApiName] == null) {
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}.ObjectSet`}
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: sanitizedOntology,
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