@osdk/generator 2.1.0-beta.3 → 2.1.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/build/browser/generateClientSdkPackage.test.js +2 -2
- package/build/browser/generateClientSdkPackage.test.js.map +1 -1
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +2 -2
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -1
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +9 -16
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +1 -1
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js +27 -51
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
- package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.d.ts.map +1 -1
- package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +8 -4
- package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -1
- package/build/browser/validateWireOntologyAssumptions.js +2 -2
- package/build/browser/validateWireOntologyAssumptions.js.map +1 -1
- package/build/esm/generateClientSdkPackage.test.js +2 -2
- package/build/esm/generateClientSdkPackage.test.js.map +1 -1
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +2 -2
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -1
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +9 -16
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +1 -1
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js +27 -51
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
- package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.d.ts.map +1 -1
- package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +8 -4
- package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -1
- package/build/esm/validateWireOntologyAssumptions.js +2 -2
- package/build/esm/validateWireOntologyAssumptions.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wireObjectTypeV2ToSdkObjectConstV2.js","names":["wireObjectTypeFullMetadataToSdkObjectMetadata","EnhancedObjectType","ForeignType","getObjectImports","propertyJsdoc","deleteUndefineds","stringify","wireObjectTypeV2ToSdkObjectConstV2","wireObject","ontology","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","createObjectSet","createOsdkObject","createDefinition","fullApiName","identifier","getCleanedUpDefinition","maybeStripNamespace","type","q","apiNamespace","startsWith","slice","length","strict","properties","*","propertyDefinition","_","JSON","multiplicity","nullable","links","targetType","getImportedDefinitionIdentifier","Object","keys","key","linkTarget","join"],"sources":["wireObjectTypeV2ToSdkObjectConstV2.js"],"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 */\nimport { wireObjectTypeFullMetadataToSdkObjectMetadata } from \"@osdk/generator-converters\";\nimport { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { propertyJsdoc } from \"../shared/propertyJsdoc.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\n/** @internal */\nexport function wireObjectTypeV2ToSdkObjectConstV2(wireObject, { ontology }, currentFilePath) {\n const object = ontology.requireObjectType(wireObject.objectType.apiName, true);\n if (object instanceof ForeignType) {\n throw new Error(\"Should not be generating types for an external type\");\n }\n const uniqueLinkTargetTypes = new Set(wireObject.linkTypes.map(a => ontology.requireObjectType(a.objectTypeApiName, false)));\n const definition = deleteUndefineds(wireObjectTypeFullMetadataToSdkObjectMetadata(object.raw, true));\n const objectDefIdentifier = object.getDefinitionIdentifier(true);\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 const identifiers = {\n objectDefIdentifier: `${object.shortApiName}`,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n function getV2Types(object) {\n return `import type {\n PropertyKeys as $PropertyKeys, \n ObjectTypeDefinition as $ObjectTypeDefinition,\n ObjectMetadata as $ObjectMetadata,\n } from \"@osdk/api\";\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 \"@osdk/api\";\n\n\n export namespace ${object.shortApiName} {\n\n ${createPropertyKeys(object)}\n\n\n ${createLinks(ontology, object, \"Links\")}\n\n ${createProps(object, \"Props\", false)}\n ${createProps(object, \"StrictProps\", true)}\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 const imports = getObjectImports(uniqueLinkTargetTypes, definition.apiName, currentFilePath, true);\n return `${imports}${getV2Types(object)}\n\n export const ${object.shortApiName}: ${objectDefIdentifier}\n = {\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\",\n apiName: \"${object.fullApiName}\",\n osdkMetadata: $osdkMetadata, \n };`;\n}\nexport function createOsdkObject(object, identifier, { osdkObjectPropsIdentifier, objectDefIdentifier, osdkObjectStrictPropsIdentifier, osdkObjectLinksIdentifier, }) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n export type ${identifier}<\n OPTIONS extends never | \"$notStrict\" | \"$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 | \"$notStrict\" | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > = ${identifier}<OPTIONS, K>;\n ;\n `;\n}\nexport function createObjectSet(object, { objectDefIdentifier, objectSetIdentifier, propertyKeysIdentifier, osdkObjectIdentifier, }) {\n return `\nexport interface ObjectSet extends \n$ObjectSet<${objectDefIdentifier},\n\n${objectSetIdentifier}\n>\n{\n\n}\n`;\n}\nfunction maybeStripNamespace(type, q) {\n if (type.apiNamespace && q.startsWith(`${type.apiNamespace}.`)) {\n return q.slice(type.apiNamespace.length + 1);\n }\n else {\n return q;\n }\n}\nexport function createProps(type, identifier, strict) {\n const definition = type.getCleanedUpDefinition(true);\n return `export interface ${identifier} {\n${stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => {\n return [\n `readonly \"${maybeStripNamespace(type, apiName)}\"${\n // after we convert everything over we can do this:\n // !strict || propertyDefinition.nullable ? \"?\" : \"\"\n \"\"}`,\n `$PropType[${JSON.stringify(propertyDefinition.type)}]${propertyDefinition.multiplicity ? \"[]\" : \"\"}${propertyDefinition.nullable || !strict ? `| undefined` : \"\"}`,\n ];\n },\n })}\n }`;\n}\nexport function createDefinition(object, ontology, identifier, { objectDefIdentifier, objectSetIdentifier, osdkObjectPropsIdentifier, osdkObjectStrictPropsIdentifier, osdkObjectLinksIdentifier, }) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n export interface ${identifier} extends ${object instanceof EnhancedObjectType\n ? `$ObjectTypeDefinition`\n : `$InterfaceDefinition`} {\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 ${stringify(definition, {\n links: (_value) => `{\n ${stringify(definition.links, {\n \"*\": (definition) => `$ObjectMetadata.Link<${ontology.requireObjectType(definition.targetType)\n .getImportedDefinitionIdentifier(true)}, ${definition.multiplicity}>`,\n })}\n }`,\n properties: (_value) => (`{\n ${stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => [\n `${propertyJsdoc(propertyDefinition, { apiName })}\"${maybeStripNamespace(object, apiName)}\"`,\n `$PropertyDef<\"${propertyDefinition.type}\", \"${propertyDefinition.nullable ? \"nullable\" : \"non-nullable\"}\", \"${propertyDefinition.multiplicity ? \"array\" : \"single\"}\">`,\n ],\n })}\n }`),\n })}\n } \n}\n `;\n}\nexport function createLinks(ontology, object, identifier) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n ${Object.keys(definition.links).length === 0\n ? `export type ${identifier} = {};`\n : `\n export interface ${identifier} {\n${stringify(definition.links, {\n \"*\": (definition, _, key) => {\n const linkTarget = ontology.requireObjectType(definition.targetType)\n .getImportedDefinitionIdentifier(true);\n return [\n `readonly ${key}`,\n `${definition.multiplicity\n ? `${linkTarget}.ObjectSet`\n : `$SingleLinkAccessor<${linkTarget}>`}\n `,\n ];\n },\n })}\n }\n `}`;\n}\nexport function createPropertyKeys(type) {\n return `export type PropertyKeys = ${Object.keys(type.getCleanedUpDefinition(true).properties).map((a) => maybeStripNamespace(type, a)).map(a => `\"${a}\"`).join(\"|\")};`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"wireObjectTypeV2ToSdkObjectConstV2.js","names":["wireObjectTypeFullMetadataToSdkObjectMetadata","EnhancedObjectType","ForeignType","getObjectImports","propertyJsdoc","deleteUndefineds","stringify","wireObjectTypeV2ToSdkObjectConstV2","wireObject","ontology","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","createObjectSet","createOsdkObject","createDefinition","fullApiName","identifier","getCleanedUpDefinition","maybeStripNamespace","type","q","apiNamespace","startsWith","slice","length","strict","properties","*","propertyDefinition","_","JSON","multiplicity","nullable","primaryKeyApiName","links","targetType","getImportedDefinitionIdentifier","Object","keys","key","linkTarget","join"],"sources":["wireObjectTypeV2ToSdkObjectConstV2.js"],"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 */\nimport { wireObjectTypeFullMetadataToSdkObjectMetadata } from \"@osdk/generator-converters\";\nimport { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { propertyJsdoc } from \"../shared/propertyJsdoc.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\n/** @internal */\nexport function wireObjectTypeV2ToSdkObjectConstV2(wireObject, { ontology }, currentFilePath) {\n const object = ontology.requireObjectType(wireObject.objectType.apiName, true);\n if (object instanceof ForeignType) {\n throw new Error(\"Should not be generating types for an external type\");\n }\n const uniqueLinkTargetTypes = new Set(wireObject.linkTypes.map(a => ontology.requireObjectType(a.objectTypeApiName, false)));\n const definition = deleteUndefineds(wireObjectTypeFullMetadataToSdkObjectMetadata(object.raw, true));\n const objectDefIdentifier = object.getDefinitionIdentifier(true);\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 const identifiers = {\n objectDefIdentifier: `${object.shortApiName}`,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n function getV2Types(object) {\n return `import type {\n PropertyKeys as $PropertyKeys, \n ObjectTypeDefinition as $ObjectTypeDefinition,\n ObjectMetadata as $ObjectMetadata,\n } from \"@osdk/api\";\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 \"@osdk/api\";\n\n\n export namespace ${object.shortApiName} {\n\n ${createPropertyKeys(object)}\n\n\n ${createLinks(ontology, object, \"Links\")}\n\n ${createProps(object, \"Props\", false)}\n ${createProps(object, \"StrictProps\", true)}\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 const imports = getObjectImports(uniqueLinkTargetTypes, definition.apiName, currentFilePath, true);\n return `${imports}${getV2Types(object)}\n\n export const ${object.shortApiName}: ${objectDefIdentifier}\n = {\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\",\n apiName: \"${object.fullApiName}\",\n osdkMetadata: $osdkMetadata, \n };`;\n}\nexport function createOsdkObject(object, identifier, { osdkObjectPropsIdentifier, objectDefIdentifier, osdkObjectStrictPropsIdentifier, osdkObjectLinksIdentifier, }) {\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}\nexport function createObjectSet(object, { objectDefIdentifier, objectSetIdentifier, propertyKeysIdentifier, osdkObjectIdentifier, }) {\n return `\nexport interface ObjectSet extends \n$ObjectSet<${objectDefIdentifier},\n\n${objectSetIdentifier}\n>\n{\n\n}\n`;\n}\nfunction maybeStripNamespace(type, q) {\n if (type.apiNamespace && q.startsWith(`${type.apiNamespace}.`)) {\n return q.slice(type.apiNamespace.length + 1);\n }\n else {\n return q;\n }\n}\nexport function createProps(type, identifier, strict) {\n if (identifier === \"StrictProps\") {\n return `export type StrictProps = Props`;\n }\n const definition = type.getCleanedUpDefinition(true);\n return `export interface ${identifier} {\n${stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => {\n return [\n `readonly \"${maybeStripNamespace(type, apiName)}\"${\n // after we convert everything over we can do this:\n // !strict || propertyDefinition.nullable ? \"?\" : \"\"\n \"\"}`,\n `$PropType[${JSON.stringify(propertyDefinition.type)}]${propertyDefinition.multiplicity ? \"[]\" : \"\"}${propertyDefinition.nullable\n || (!strict\n && !(definition.type === \"object\"\n && definition.primaryKeyApiName === apiName))\n ? `| undefined`\n : \"\"}`,\n ];\n },\n })}\n }`;\n}\nexport function createDefinition(object, ontology, identifier, { objectDefIdentifier, objectSetIdentifier, osdkObjectPropsIdentifier, osdkObjectStrictPropsIdentifier, osdkObjectLinksIdentifier, }) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n export interface ${identifier} extends ${object instanceof EnhancedObjectType\n ? `$ObjectTypeDefinition`\n : `$InterfaceDefinition`} {\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 ${stringify(definition, {\n links: (_value) => `{\n ${stringify(definition.links, {\n \"*\": (definition) => `$ObjectMetadata.Link<${ontology.requireObjectType(definition.targetType)\n .getImportedDefinitionIdentifier(true)}, ${definition.multiplicity}>`,\n })}\n }`,\n properties: (_value) => (`{\n ${stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => [\n `${propertyJsdoc(propertyDefinition, { apiName })}\"${maybeStripNamespace(object, apiName)}\"`,\n `$PropertyDef<\"${propertyDefinition.type}\", \"${propertyDefinition.nullable ? \"nullable\" : \"non-nullable\"}\", \"${propertyDefinition.multiplicity ? \"array\" : \"single\"}\">`,\n ],\n })}\n }`),\n })}\n } \n}\n `;\n}\nexport function createLinks(ontology, object, identifier) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n ${Object.keys(definition.links).length === 0\n ? `export type ${identifier} = {};`\n : `\n export interface ${identifier} {\n${stringify(definition.links, {\n \"*\": (definition, _, key) => {\n const linkTarget = ontology.requireObjectType(definition.targetType)\n .getImportedDefinitionIdentifier(true);\n return [\n `readonly ${key}`,\n `${definition.multiplicity\n ? `${linkTarget}.ObjectSet`\n : `$SingleLinkAccessor<${linkTarget}>`}\n `,\n ];\n },\n })}\n }\n `}`;\n}\nexport function createPropertyKeys(type) {\n const properties = Object.keys(type.getCleanedUpDefinition(true).properties);\n return `export type PropertyKeys = ${properties.length === 0\n ? \"never\"\n : properties.map((a) => maybeStripNamespace(type, a)).map(a => `\"${a}\"`).join(\"|\")};`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,9 +25,9 @@ export function validateWireOntologyAssumptions(ontology) {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
function invariantMapKeyMatchesApiName(key, value) {
|
|
28
|
-
!(key === value.apiName) ? invariant(false, "Key in the map should be the same as the apiName.") : void 0;
|
|
28
|
+
!(key === value.apiName) ? process.env.NODE_ENV !== "production" ? invariant(false, "Key in the map should be the same as the apiName.") : invariant(false) : void 0;
|
|
29
29
|
}
|
|
30
30
|
function invariantNotStartWithDollarSign(value) {
|
|
31
|
-
!!value.startsWith("$") ? invariant(false, "apiName should not start with $") : void 0;
|
|
31
|
+
!!value.startsWith("$") ? process.env.NODE_ENV !== "production" ? invariant(false, "apiName should not start with $") : invariant(false) : void 0;
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=validateWireOntologyAssumptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateWireOntologyAssumptions.js","names":["invariant","validateWireOntologyAssumptions","ontology","invariantNotStartWithDollarSign","apiName","objectKey","objectType","Object","entries","objectTypes","invariantMapKeyMatchesApiName","propertyKey","propertyType","properties","key","value","startsWith"],"sources":["validateWireOntologyAssumptions.js"],"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 */\nimport invariant from \"tiny-invariant\";\nexport function validateWireOntologyAssumptions(ontology) {\n invariantNotStartWithDollarSign(ontology.ontology.apiName);\n for (const [objectKey, objectType] of Object.entries(ontology.objectTypes)) {\n invariantMapKeyMatchesApiName(objectKey, objectType.objectType);\n invariantNotStartWithDollarSign(objectType.objectType.apiName);\n for (const [propertyKey, propertyType] of Object.entries(objectType.objectType.properties)) {\n invariantNotStartWithDollarSign(propertyKey);\n }\n }\n}\nfunction invariantMapKeyMatchesApiName(key, value) {\n invariant(key === value.apiName, \"Key in the map should be the same as the apiName.\");\n}\nfunction invariantNotStartWithDollarSign(value) {\n invariant(!value.startsWith(\"$\"), \"apiName should not start with $\");\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,OAAO,SAASC,+BAA+BA,CAACC,QAAQ,EAAE;EACtDC,+BAA+B,CAACD,QAAQ,CAACA,QAAQ,CAACE,OAAO,CAAC;EAC1D,KAAK,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,QAAQ,CAACO,WAAW,CAAC,EAAE;IACxEC,6BAA6B,CAACL,SAAS,EAAEC,UAAU,CAACA,UAAU,CAAC;IAC/DH,+BAA+B,CAACG,UAAU,CAACA,UAAU,CAACF,OAAO,CAAC;IAC9D,KAAK,MAAM,CAACO,WAAW,EAAEC,YAAY,CAAC,IAAIL,MAAM,CAACC,OAAO,CAACF,UAAU,CAACA,UAAU,CAACO,UAAU,CAAC,EAAE;MACxFV,+BAA+B,CAACQ,WAAW,CAAC;IAChD;EACJ;AACJ;AACA,SAASD,6BAA6BA,CAACI,GAAG,EAAEC,KAAK,EAAE;EAC/C,EAAUD,GAAG,KAAKC,KAAK,CAACX,OAAO,
|
|
1
|
+
{"version":3,"file":"validateWireOntologyAssumptions.js","names":["invariant","validateWireOntologyAssumptions","ontology","invariantNotStartWithDollarSign","apiName","objectKey","objectType","Object","entries","objectTypes","invariantMapKeyMatchesApiName","propertyKey","propertyType","properties","key","value","process","env","NODE_ENV","startsWith"],"sources":["validateWireOntologyAssumptions.js"],"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 */\nimport invariant from \"tiny-invariant\";\nexport function validateWireOntologyAssumptions(ontology) {\n invariantNotStartWithDollarSign(ontology.ontology.apiName);\n for (const [objectKey, objectType] of Object.entries(ontology.objectTypes)) {\n invariantMapKeyMatchesApiName(objectKey, objectType.objectType);\n invariantNotStartWithDollarSign(objectType.objectType.apiName);\n for (const [propertyKey, propertyType] of Object.entries(objectType.objectType.properties)) {\n invariantNotStartWithDollarSign(propertyKey);\n }\n }\n}\nfunction invariantMapKeyMatchesApiName(key, value) {\n invariant(key === value.apiName, \"Key in the map should be the same as the apiName.\");\n}\nfunction invariantNotStartWithDollarSign(value) {\n invariant(!value.startsWith(\"$\"), \"apiName should not start with $\");\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,gBAAgB;AACtC,OAAO,SAASC,+BAA+BA,CAACC,QAAQ,EAAE;EACtDC,+BAA+B,CAACD,QAAQ,CAACA,QAAQ,CAACE,OAAO,CAAC;EAC1D,KAAK,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,QAAQ,CAACO,WAAW,CAAC,EAAE;IACxEC,6BAA6B,CAACL,SAAS,EAAEC,UAAU,CAACA,UAAU,CAAC;IAC/DH,+BAA+B,CAACG,UAAU,CAACA,UAAU,CAACF,OAAO,CAAC;IAC9D,KAAK,MAAM,CAACO,WAAW,EAAEC,YAAY,CAAC,IAAIL,MAAM,CAACC,OAAO,CAACF,UAAU,CAACA,UAAU,CAACO,UAAU,CAAC,EAAE;MACxFV,+BAA+B,CAACQ,WAAW,CAAC;IAChD;EACJ;AACJ;AACA,SAASD,6BAA6BA,CAACI,GAAG,EAAEC,KAAK,EAAE;EAC/C,EAAUD,GAAG,KAAKC,KAAK,CAACX,OAAO,IAAAY,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAA/BlB,SAAS,QAAwB,mDAAmD,IAApFA,SAAS;AACb;AACA,SAASG,+BAA+BA,CAACY,KAAK,EAAE;EAC5C,CAAU,CAACA,KAAK,CAACI,UAAU,CAAC,GAAG,CAAC,GAAAH,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAhClB,SAAS,QAAyB,iCAAiC,IAAnEA,SAAS;AACb","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ describe("generateClientSdkPackage", () => {
|
|
|
23
23
|
osdkClientApiVersion: "^66.6.6",
|
|
24
24
|
areTheTypesWrongVersion: "^0.15.2",
|
|
25
25
|
tslibVersion: "^2.6.2",
|
|
26
|
-
typescriptVersion: "
|
|
26
|
+
typescriptVersion: "~5.5.4"
|
|
27
27
|
};
|
|
28
28
|
describe("v2", () => {
|
|
29
29
|
test("returns the package.json contents", async () => {
|
|
@@ -33,7 +33,7 @@ describe("generateClientSdkPackage", () => {
|
|
|
33
33
|
"@arethetypeswrong/cli": "^0.15.2",
|
|
34
34
|
"@osdk/api": "^99.9.9",
|
|
35
35
|
"tslib": "^2.6.2",
|
|
36
|
-
"typescript": "
|
|
36
|
+
"typescript": "~5.5.4",
|
|
37
37
|
},
|
|
38
38
|
"exports": {
|
|
39
39
|
".": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateClientSdkPackage.test.js","names":["describe","expect","test","getPackageJsonContents","versions","osdkApiVersion","osdkClientVersion","osdkClientApiVersion","areTheTypesWrongVersion","tslibVersion","typescriptVersion","toMatchInlineSnapshot"],"sources":["generateClientSdkPackage.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { describe, expect, test } from \"vitest\";\nimport { getPackageJsonContents } from \"./generateClientSdkPackage.js\";\ndescribe(\"generateClientSdkPackage\", () => {\n describe(getPackageJsonContents, () => {\n const versions = {\n osdkApiVersion: \"^99.9.9\",\n osdkClientVersion: \"^88.8.8\",\n osdkClientApiVersion: \"^66.6.6\",\n areTheTypesWrongVersion: \"^0.15.2\",\n tslibVersion: \"^2.6.2\",\n typescriptVersion: \"
|
|
1
|
+
{"version":3,"file":"generateClientSdkPackage.test.js","names":["describe","expect","test","getPackageJsonContents","versions","osdkApiVersion","osdkClientVersion","osdkClientApiVersion","areTheTypesWrongVersion","tslibVersion","typescriptVersion","toMatchInlineSnapshot"],"sources":["generateClientSdkPackage.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { describe, expect, test } from \"vitest\";\nimport { getPackageJsonContents } from \"./generateClientSdkPackage.js\";\ndescribe(\"generateClientSdkPackage\", () => {\n describe(getPackageJsonContents, () => {\n const versions = {\n osdkApiVersion: \"^99.9.9\",\n osdkClientVersion: \"^88.8.8\",\n osdkClientApiVersion: \"^66.6.6\",\n areTheTypesWrongVersion: \"^0.15.2\",\n tslibVersion: \"^2.6.2\",\n typescriptVersion: \"~5.5.4\",\n };\n describe(\"v2\", () => {\n test(\"returns the package.json contents\", async () => {\n expect(getPackageJsonContents(\"foo\", \"1.2.3\", versions))\n .toMatchInlineSnapshot(`\n {\n \"devDependencies\": {\n \"@arethetypeswrong/cli\": \"^0.15.2\",\n \"@osdk/api\": \"^99.9.9\",\n \"tslib\": \"^2.6.2\",\n \"typescript\": \"~5.5.4\",\n },\n \"exports\": {\n \".\": {\n \"import\": \"./dist/module/index.js\",\n \"require\": \"./dist/commonjs/index.js\",\n },\n },\n \"files\": [\n \"**/*.js\",\n \"**/*.d.ts\",\n \"dist/**/package.json\",\n ],\n \"main\": \"./dist/commonjs/index.js\",\n \"module\": \"./dist/module/index.js\",\n \"name\": \"foo\",\n \"peerDependencies\": {\n \"@osdk/api\": \"^99.9.9\",\n \"@osdk/client\": \"^88.8.8\",\n },\n \"scripts\": {\n \"check\": \"npm exec attw $(npm pack)\",\n \"prepack\": \"tsc -p ./dist/module/tsconfig.json && tsc -p ./dist/commonjs/tsconfig.json\",\n },\n \"version\": \"1.2.3\",\n }\n `);\n });\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,IAAI,QAAQ,QAAQ;AAC/C,SAASC,sBAAsB,QAAQ,+BAA+B;AACtEH,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACvCA,QAAQ,CAACG,sBAAsB,EAAE,MAAM;IACnC,MAAMC,QAAQ,GAAG;MACbC,cAAc,EAAE,SAAS;MACzBC,iBAAiB,EAAE,SAAS;MAC5BC,oBAAoB,EAAE,SAAS;MAC/BC,uBAAuB,EAAE,SAAS;MAClCC,YAAY,EAAE,QAAQ;MACtBC,iBAAiB,EAAE;IACvB,CAAC;IACDV,QAAQ,CAAC,IAAI,EAAE,MAAM;MACjBE,IAAI,CAAC,mCAAmC,EAAE,YAAY;QAClDD,MAAM,CAACE,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAEC,QAAQ,CAAC,CAAC,CACnDO,qBAAqB,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,CAAC;MACA,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -43,9 +43,9 @@ export function __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(interfaceDef, ont
|
|
|
43
43
|
}
|
|
44
44
|
for (const apiName of Object.keys(parent.properties)) {
|
|
45
45
|
if (definition.properties[apiName] != null) {
|
|
46
|
-
!fastDeepEqual(definition.properties[apiName], parent.properties[apiName]) ? invariant(false, `Interface ${definition.apiName} redefines property '${apiName}' from parent '${parent.apiName}' but the properties do not match`) : void 0;
|
|
46
|
+
!fastDeepEqual(definition.properties[apiName], parent.properties[apiName]) ? process.env.NODE_ENV !== "production" ? invariant(false, `Interface ${definition.apiName} redefines property '${apiName}' from parent '${parent.apiName}' but the properties do not match`) : invariant(false) : void 0;
|
|
47
47
|
} else if (mergedProperties[apiName] != null) {
|
|
48
|
-
!fastDeepEqual(mergedProperties[apiName], parent.properties[apiName]) ? invariant(false, `Some interface defines a conflicting property '${apiName}' that does not match property from parent '${parent.apiName}'`) : void 0;
|
|
48
|
+
!fastDeepEqual(mergedProperties[apiName], parent.properties[apiName]) ? process.env.NODE_ENV !== "production" ? invariant(false, `Some interface defines a conflicting property '${apiName}' that does not match property from parent '${parent.apiName}'`) : invariant(false) : void 0;
|
|
49
49
|
}
|
|
50
50
|
mergedProperties[apiName] = parent.properties[apiName];
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js","names":["__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition","fastDeepEqual","invariant","extractNamespace","EnhancedInterfaceType","deleteUndefineds","stringify","createDefinition","createObjectSet","createOsdkObject","createPropertyKeys","createProps","__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst","interfaceDef","ontology","v2","definition","raw","objectDefIdentifier","getDefinitionIdentifier","parents","implements","map","p","parent","requireInterfaceType","it","mergedProperties","properties","apiName","Object","keys","objectSetIdentifier","shortApiName","propertyKeysIdentifier","osdkObjectPropsIdentifier","osdkObjectStrictPropsIdentifier","osdkObjectLinksIdentifier","osdkObjectIdentifier","ids","apiNamespace","badProperties","filter","length","Error","fullApiName","join","links","linkTarget","requireObjectType","targetType","getImportedDefinitionIdentifier","multiplicity"],"sources":["UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js"],"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 */\nimport { __UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition } from \"@osdk/generator-converters\";\nimport fastDeepEqual from \"fast-deep-equal\";\nimport invariant from \"tiny-invariant\";\nimport { extractNamespace } from \"../GenerateContext/EnhancedBase.js\";\nimport { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\nimport { createDefinition, createObjectSet, createOsdkObject, createPropertyKeys, createProps, } from \"./wireObjectTypeV2ToSdkObjectConstV2.js\";\n/** @internal */\nexport function __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(interfaceDef, ontology, v2 = false) {\n const definition = deleteUndefineds(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition(interfaceDef.raw, v2));\n const objectDefIdentifier = interfaceDef.getDefinitionIdentifier(v2);\n const parents = definition.implements?.map(p => {\n const parent = ontology.requireInterfaceType(p, true);\n if (parent instanceof EnhancedInterfaceType) {\n const it = deleteUndefineds(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition(parent.raw, v2));\n return it;\n }\n }) ?? [];\n const mergedProperties = { ...definition.properties };\n for (const parent of parents) {\n if (parent == null) {\n // came from a foreign type and we cannot merge properties yet\n // so if they weren't listed on the interface its over\n continue;\n }\n for (const apiName of Object.keys(parent.properties)) {\n if (definition.properties[apiName] != null) {\n invariant(fastDeepEqual(definition.properties[apiName], parent.properties[apiName]), `Interface ${definition.apiName} redefines property '${apiName}' from parent '${parent.apiName}' but the properties do not match`);\n }\n else if (mergedProperties[apiName] != null) {\n invariant(fastDeepEqual(mergedProperties[apiName], parent.properties[apiName]), `Some interface defines a conflicting property '${apiName}' that does not match property from parent '${parent.apiName}'`);\n }\n mergedProperties[apiName] = parent.properties[apiName];\n }\n }\n definition.properties = mergedProperties;\n const objectSetIdentifier = `${interfaceDef.shortApiName}.ObjectSet`;\n const propertyKeysIdentifier = `${interfaceDef.shortApiName}.PropertyKeys`;\n // const osdkObjectPropsIdentifier = `OsdkObjectProps$${objectDefIdentifier}`;\n const osdkObjectPropsIdentifier = `${interfaceDef.shortApiName}.Props`;\n const osdkObjectStrictPropsIdentifier = `${interfaceDef.shortApiName}.StrictProps`;\n const osdkObjectLinksIdentifier = `OsdkObjectLinks$${objectDefIdentifier}`;\n const osdkObjectIdentifier = `${interfaceDef.shortApiName}.OsdkObject`;\n const ids = {\n objectDefIdentifier: interfaceDef.shortApiName,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n if (interfaceDef.apiNamespace) {\n const badProperties = Object.keys(definition.properties).filter(apiName => extractNamespace(apiName)[0] == null);\n if (badProperties.length > 0) {\n throw new Error(`Interfaces with fully qualified api names MUST NOT have any properties with an unqualified api name. Interface: ${interfaceDef.fullApiName}, properties: ${badProperties.join(\", \")}`);\n }\n }\n function getV2Types() {\n return `import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet, \n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n \n ${Object.keys(definition.links).length === 0\n ? `export type ${osdkObjectLinksIdentifier} = {};`\n : `\n export interface ${osdkObjectLinksIdentifier} {\n${stringify(definition.links, {\n \"*\": (definition) => {\n const linkTarget = ontology.requireObjectType(definition.targetType)\n .getImportedDefinitionIdentifier(v2);\n return `${definition.multiplicity\n ? `${linkTarget}[\"objectSet\"]`\n : `SingleLinkAccessor<${linkTarget}>`}\n `;\n },\n })}\n }\n `}\n\n export namespace ${interfaceDef.shortApiName} {\n\n ${createPropertyKeys(interfaceDef)}\n\n\n ${createProps(interfaceDef, \"Props\", false)}\n ${createProps(interfaceDef, \"StrictProps\", true)}\n\n\n ${createObjectSet(interfaceDef, ids)}\n\n ${createOsdkObject(interfaceDef, \"OsdkInstance\", ids)}\n \n } \n\n ${createDefinition(interfaceDef, ontology, interfaceDef.shortApiName, ids)}\n\n`;\n }\n // FIXME: We need to fill in the imports\n // if we want links to work\n const imports = [];\n definition;\n return `${imports.join(\"\\n\")}\n ${v2 ? getV2Types() : \"\"}\n\n export const ${interfaceDef.shortApiName}: ${interfaceDef.shortApiName} = {\n type: \"interface\",\n apiName: \"${interfaceDef.fullApiName}\",\n osdkMetadata: $osdkMetadata,\n };`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js","names":["__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition","fastDeepEqual","invariant","extractNamespace","EnhancedInterfaceType","deleteUndefineds","stringify","createDefinition","createObjectSet","createOsdkObject","createPropertyKeys","createProps","__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst","interfaceDef","ontology","v2","definition","raw","objectDefIdentifier","getDefinitionIdentifier","parents","implements","map","p","parent","requireInterfaceType","it","mergedProperties","properties","apiName","Object","keys","process","env","NODE_ENV","objectSetIdentifier","shortApiName","propertyKeysIdentifier","osdkObjectPropsIdentifier","osdkObjectStrictPropsIdentifier","osdkObjectLinksIdentifier","osdkObjectIdentifier","ids","apiNamespace","badProperties","filter","length","Error","fullApiName","join","links","linkTarget","requireObjectType","targetType","getImportedDefinitionIdentifier","multiplicity"],"sources":["UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js"],"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 */\nimport { __UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition } from \"@osdk/generator-converters\";\nimport fastDeepEqual from \"fast-deep-equal\";\nimport invariant from \"tiny-invariant\";\nimport { extractNamespace } from \"../GenerateContext/EnhancedBase.js\";\nimport { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\nimport { createDefinition, createObjectSet, createOsdkObject, createPropertyKeys, createProps, } from \"./wireObjectTypeV2ToSdkObjectConstV2.js\";\n/** @internal */\nexport function __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(interfaceDef, ontology, v2 = false) {\n const definition = deleteUndefineds(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition(interfaceDef.raw, v2));\n const objectDefIdentifier = interfaceDef.getDefinitionIdentifier(v2);\n const parents = definition.implements?.map(p => {\n const parent = ontology.requireInterfaceType(p, true);\n if (parent instanceof EnhancedInterfaceType) {\n const it = deleteUndefineds(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition(parent.raw, v2));\n return it;\n }\n }) ?? [];\n const mergedProperties = { ...definition.properties };\n for (const parent of parents) {\n if (parent == null) {\n // came from a foreign type and we cannot merge properties yet\n // so if they weren't listed on the interface its over\n continue;\n }\n for (const apiName of Object.keys(parent.properties)) {\n if (definition.properties[apiName] != null) {\n invariant(fastDeepEqual(definition.properties[apiName], parent.properties[apiName]), `Interface ${definition.apiName} redefines property '${apiName}' from parent '${parent.apiName}' but the properties do not match`);\n }\n else if (mergedProperties[apiName] != null) {\n invariant(fastDeepEqual(mergedProperties[apiName], parent.properties[apiName]), `Some interface defines a conflicting property '${apiName}' that does not match property from parent '${parent.apiName}'`);\n }\n mergedProperties[apiName] = parent.properties[apiName];\n }\n }\n definition.properties = mergedProperties;\n const objectSetIdentifier = `${interfaceDef.shortApiName}.ObjectSet`;\n const propertyKeysIdentifier = `${interfaceDef.shortApiName}.PropertyKeys`;\n // const osdkObjectPropsIdentifier = `OsdkObjectProps$${objectDefIdentifier}`;\n const osdkObjectPropsIdentifier = `${interfaceDef.shortApiName}.Props`;\n const osdkObjectStrictPropsIdentifier = `${interfaceDef.shortApiName}.StrictProps`;\n const osdkObjectLinksIdentifier = `OsdkObjectLinks$${objectDefIdentifier}`;\n const osdkObjectIdentifier = `${interfaceDef.shortApiName}.OsdkObject`;\n const ids = {\n objectDefIdentifier: interfaceDef.shortApiName,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n if (interfaceDef.apiNamespace) {\n const badProperties = Object.keys(definition.properties).filter(apiName => extractNamespace(apiName)[0] == null);\n if (badProperties.length > 0) {\n throw new Error(`Interfaces with fully qualified api names MUST NOT have any properties with an unqualified api name. Interface: ${interfaceDef.fullApiName}, properties: ${badProperties.join(\", \")}`);\n }\n }\n function getV2Types() {\n return `import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet, \n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n \n ${Object.keys(definition.links).length === 0\n ? `export type ${osdkObjectLinksIdentifier} = {};`\n : `\n export interface ${osdkObjectLinksIdentifier} {\n${stringify(definition.links, {\n \"*\": (definition) => {\n const linkTarget = ontology.requireObjectType(definition.targetType)\n .getImportedDefinitionIdentifier(v2);\n return `${definition.multiplicity\n ? `${linkTarget}[\"objectSet\"]`\n : `SingleLinkAccessor<${linkTarget}>`}\n `;\n },\n })}\n }\n `}\n\n export namespace ${interfaceDef.shortApiName} {\n\n ${createPropertyKeys(interfaceDef)}\n\n\n ${createProps(interfaceDef, \"Props\", false)}\n ${createProps(interfaceDef, \"StrictProps\", true)}\n\n\n ${createObjectSet(interfaceDef, ids)}\n\n ${createOsdkObject(interfaceDef, \"OsdkInstance\", ids)}\n \n } \n\n ${createDefinition(interfaceDef, ontology, interfaceDef.shortApiName, ids)}\n\n`;\n }\n // FIXME: We need to fill in the imports\n // if we want links to work\n const imports = [];\n definition;\n return `${imports.join(\"\\n\")}\n ${v2 ? getV2Types() : \"\"}\n\n export const ${interfaceDef.shortApiName}: ${interfaceDef.shortApiName} = {\n type: \"interface\",\n apiName: \"${interfaceDef.fullApiName}\",\n osdkMetadata: $osdkMetadata,\n };`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -90,20 +90,18 @@ describe(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst, () => {
|
|
|
90
90
|
export interface Props {
|
|
91
91
|
readonly bar: $PropType["integer"] | undefined;
|
|
92
92
|
}
|
|
93
|
-
export
|
|
94
|
-
readonly bar: $PropType["integer"] | undefined;
|
|
95
|
-
}
|
|
93
|
+
export type StrictProps = Props;
|
|
96
94
|
|
|
97
95
|
export interface ObjectSet extends $ObjectSet<Bar, Bar.ObjectSet> {}
|
|
98
96
|
|
|
99
97
|
export type OsdkInstance<
|
|
100
|
-
OPTIONS extends never | "$
|
|
98
|
+
OPTIONS extends never | "$rid" = never,
|
|
101
99
|
K extends keyof Bar.Props = keyof Bar.Props,
|
|
102
100
|
> = $Osdk.Instance<Bar, OPTIONS, K>;
|
|
103
101
|
|
|
104
102
|
/** @deprecated use OsdkInstance */
|
|
105
103
|
export type OsdkObject<
|
|
106
|
-
OPTIONS extends never | "$
|
|
104
|
+
OPTIONS extends never | "$rid" = never,
|
|
107
105
|
K extends keyof Bar.Props = keyof Bar.Props,
|
|
108
106
|
> = OsdkInstance<OPTIONS, K>;
|
|
109
107
|
}
|
|
@@ -166,20 +164,18 @@ describe(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst, () => {
|
|
|
166
164
|
export interface Props {
|
|
167
165
|
readonly foo: $PropType["integer"] | undefined;
|
|
168
166
|
}
|
|
169
|
-
export
|
|
170
|
-
readonly foo: $PropType["integer"] | undefined;
|
|
171
|
-
}
|
|
167
|
+
export type StrictProps = Props;
|
|
172
168
|
|
|
173
169
|
export interface ObjectSet extends $ObjectSet<Foo, Foo.ObjectSet> {}
|
|
174
170
|
|
|
175
171
|
export type OsdkInstance<
|
|
176
|
-
OPTIONS extends never | "$
|
|
172
|
+
OPTIONS extends never | "$rid" = never,
|
|
177
173
|
K extends keyof Foo.Props = keyof Foo.Props,
|
|
178
174
|
> = $Osdk.Instance<Foo, OPTIONS, K>;
|
|
179
175
|
|
|
180
176
|
/** @deprecated use OsdkInstance */
|
|
181
177
|
export type OsdkObject<
|
|
182
|
-
OPTIONS extends never | "$
|
|
178
|
+
OPTIONS extends never | "$rid" = never,
|
|
183
179
|
K extends keyof Foo.Props = keyof Foo.Props,
|
|
184
180
|
> = OsdkInstance<OPTIONS, K>;
|
|
185
181
|
}
|
|
@@ -245,21 +241,18 @@ describe(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst, () => {
|
|
|
245
241
|
readonly bar: $PropType["integer"] | undefined;
|
|
246
242
|
readonly foo: $PropType["integer"] | undefined;
|
|
247
243
|
}
|
|
248
|
-
export
|
|
249
|
-
readonly bar: $PropType["integer"] | undefined;
|
|
250
|
-
readonly foo: $PropType["integer"] | undefined;
|
|
251
|
-
}
|
|
244
|
+
export type StrictProps = Props;
|
|
252
245
|
|
|
253
246
|
export interface ObjectSet extends $ObjectSet<Foo, Foo.ObjectSet> {}
|
|
254
247
|
|
|
255
248
|
export type OsdkInstance<
|
|
256
|
-
OPTIONS extends never | "$
|
|
249
|
+
OPTIONS extends never | "$rid" = never,
|
|
257
250
|
K extends keyof Foo.Props = keyof Foo.Props,
|
|
258
251
|
> = $Osdk.Instance<Foo, OPTIONS, K>;
|
|
259
252
|
|
|
260
253
|
/** @deprecated use OsdkInstance */
|
|
261
254
|
export type OsdkObject<
|
|
262
|
-
OPTIONS extends never | "$
|
|
255
|
+
OPTIONS extends never | "$rid" = never,
|
|
263
256
|
K extends keyof Foo.Props = keyof Foo.Props,
|
|
264
257
|
> = OsdkInstance<OPTIONS, K>;
|
|
265
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js","names":["format","describe","expect","it","EnhancedInterfaceType","enhanceOntology","ForeignType","__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst","simpleSpt","apiName","metadataLevel","dataType","type","rid","displayName","description","undefined","simpleInterface","spts","parents","properties","Object","fromEntries","map","spt","extendsInterfaces","links","simpleOntology","interfaces","interfaceTypes","i","sharedPropertyTypes","flatMap","entries","actionTypes","objectTypes","ontology","queryTypes","sanitized","importExt","Bar","toBe","Error","formattedCode","parser","printWidth","toMatchInlineSnapshot","fooSpt","barSpt","Foo"],"sources":["UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { format } from \"prettier\";\nimport { describe, expect, it } from \"vitest\";\nimport { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { enhanceOntology } from \"../GenerateContext/enhanceOntology.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport { __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst } from \"./UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js\";\nfunction simpleSpt(apiName, metadataLevel = 2) {\n return {\n apiName,\n dataType: {\n type: \"integer\",\n },\n rid: `${apiName}Rid`,\n displayName: metadataLevel >= 1 ? `${apiName} property dn` : apiName,\n description: metadataLevel >= 2 ? `${apiName} property desc` : undefined,\n };\n}\nfunction simpleInterface(apiName, spts, parents, metadataLevel = 2) {\n const properties = Object.fromEntries(spts.map(spt => [spt.apiName, spt]));\n return {\n apiName,\n rid: `${apiName}Rid`,\n displayName: metadataLevel >= 1 ? `${apiName} interface dn` : apiName,\n description: metadataLevel >= 2 ? `${apiName} interface desc` : undefined,\n extendsInterfaces: parents,\n links: {},\n properties,\n };\n}\nfunction simpleOntology(apiName, interfaces) {\n const interfaceTypes = Object\n .fromEntries(interfaces.map(i => [i.apiName, i]));\n const sharedPropertyTypes = Object\n .fromEntries(interfaces.flatMap(i => Object.entries(i.properties)));\n return {\n actionTypes: {},\n interfaceTypes,\n objectTypes: {},\n ontology: {\n apiName,\n description: `${apiName} ontology desc`,\n displayName: `${apiName} ontology dn`,\n rid: `${apiName} ontology rid`,\n },\n queryTypes: {},\n sharedPropertyTypes,\n };\n}\ndescribe(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst, () => {\n it(\"Does not say (inherited) on properties locally defined\", async () => {\n const ontology = enhanceOntology({\n sanitized: simpleOntology(\"ontology\", [\n simpleInterface(\"Bar\", [simpleSpt(\"bar\", 0)], [], 0),\n ]),\n importExt: \"\",\n });\n expect(ontology.interfaceTypes.Bar instanceof EnhancedInterfaceType).toBe(true);\n // type guard for below\n if (ontology.interfaceTypes.Bar instanceof ForeignType) {\n throw new Error(\"Expected Bar to be an EnhancedInterfaceType\");\n }\n const formattedCode = await format(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(ontology.interfaceTypes.Bar, ontology, true), {\n parser: \"typescript\",\n printWidth: 100,\n });\n expect(formattedCode).toMatchInlineSnapshot(`\n \"import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n\n export type OsdkObjectLinks$Bar = {};\n\n export namespace Bar {\n export type PropertyKeys = \"bar\";\n\n export interface Props {\n readonly bar: $PropType[\"integer\"] | undefined;\n }\n export interface StrictProps {\n readonly bar: $PropType[\"integer\"] | undefined;\n }\n\n export interface ObjectSet extends $ObjectSet<Bar, Bar.ObjectSet> {}\n\n export type OsdkInstance<\n OPTIONS extends never | \"$notStrict\" | \"$rid\" = never,\n K extends keyof Bar.Props = keyof Bar.Props,\n > = $Osdk.Instance<Bar, OPTIONS, K>;\n\n /** @deprecated use OsdkInstance */\n export type OsdkObject<\n OPTIONS extends never | \"$notStrict\" | \"$rid\" = never,\n K extends keyof Bar.Props = keyof Bar.Props,\n > = OsdkInstance<OPTIONS, K>;\n }\n\n export interface Bar extends $InterfaceDefinition {\n osdkMetadata: typeof $osdkMetadata;\n type: \"interface\";\n apiName: \"Bar\";\n __DefinitionMetadata?: {\n objectSet: Bar.ObjectSet;\n props: Bar.Props;\n linksType: OsdkObjectLinks$Bar;\n strictProps: Bar.StrictProps;\n apiName: \"Bar\";\n displayName: \"Bar\";\n implements: [];\n links: {};\n properties: {\n /**\n * (no ontology metadata)\n */\n bar: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n };\n rid: \"BarRid\";\n type: \"interface\";\n };\n }\n\n export const Bar: Bar = {\n type: \"interface\",\n apiName: \"Bar\",\n osdkMetadata: $osdkMetadata,\n };\n \"\n `);\n });\n it(\"Generates properties for inherited SPTs\", async () => {\n const fooSpt = simpleSpt(\"foo\");\n const barSpt = simpleSpt(\"bar\");\n const ontology = enhanceOntology({\n sanitized: simpleOntology(\"ontology\", [\n simpleInterface(\"Foo\", [fooSpt], [\"Parent\"]),\n simpleInterface(\"Parent\", [barSpt], []),\n ]),\n importExt: \"\",\n });\n const formattedCode = await format(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(ontology.interfaceTypes.Foo, ontology, true), {\n parser: \"typescript\",\n });\n expect(formattedCode).toMatchInlineSnapshot(`\n \"import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n\n export type OsdkObjectLinks$Foo = {};\n\n export namespace Foo {\n export type PropertyKeys = \"foo\";\n\n export interface Props {\n readonly foo: $PropType[\"integer\"] | undefined;\n }\n export interface StrictProps {\n readonly foo: $PropType[\"integer\"] | undefined;\n }\n\n export interface ObjectSet extends $ObjectSet<Foo, Foo.ObjectSet> {}\n\n export type OsdkInstance<\n OPTIONS extends never | \"$notStrict\" | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = $Osdk.Instance<Foo, OPTIONS, K>;\n\n /** @deprecated use OsdkInstance */\n export type OsdkObject<\n OPTIONS extends never | \"$notStrict\" | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = OsdkInstance<OPTIONS, K>;\n }\n\n export interface Foo extends $InterfaceDefinition {\n osdkMetadata: typeof $osdkMetadata;\n type: \"interface\";\n apiName: \"Foo\";\n __DefinitionMetadata?: {\n objectSet: Foo.ObjectSet;\n props: Foo.Props;\n linksType: OsdkObjectLinks$Foo;\n strictProps: Foo.StrictProps;\n apiName: \"Foo\";\n description: \"Foo interface desc\";\n displayName: \"Foo interface dn\";\n implements: [\"Parent\"];\n links: {};\n properties: {\n /**\n * display name: 'foo property dn',\n * description: foo property desc\n */\n foo: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n };\n rid: \"FooRid\";\n type: \"interface\";\n };\n }\n\n export const Foo: Foo = {\n type: \"interface\",\n apiName: \"Foo\",\n osdkMetadata: $osdkMetadata,\n };\n \"\n `);\n });\n it(\"allows for SPT reuse if the same\", async () => {\n const fooSpt = simpleSpt(\"foo\");\n const barSpt = simpleSpt(\"bar\");\n const ontology = enhanceOntology({\n sanitized: simpleOntology(\"ontology\", [\n simpleInterface(\"Foo\", [fooSpt, barSpt], [\"Parent\"]),\n simpleInterface(\"Parent\", [barSpt], []),\n ]),\n importExt: \"\",\n });\n const formattedCode = await format(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(ontology.interfaceTypes.Foo, ontology, true), {\n parser: \"typescript\",\n });\n expect(formattedCode).toMatchInlineSnapshot(`\n \"import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n\n export type OsdkObjectLinks$Foo = {};\n\n export namespace Foo {\n export type PropertyKeys = \"foo\" | \"bar\";\n\n export interface Props {\n readonly bar: $PropType[\"integer\"] | undefined;\n readonly foo: $PropType[\"integer\"] | undefined;\n }\n export interface StrictProps {\n readonly bar: $PropType[\"integer\"] | undefined;\n readonly foo: $PropType[\"integer\"] | undefined;\n }\n\n export interface ObjectSet extends $ObjectSet<Foo, Foo.ObjectSet> {}\n\n export type OsdkInstance<\n OPTIONS extends never | \"$notStrict\" | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = $Osdk.Instance<Foo, OPTIONS, K>;\n\n /** @deprecated use OsdkInstance */\n export type OsdkObject<\n OPTIONS extends never | \"$notStrict\" | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = OsdkInstance<OPTIONS, K>;\n }\n\n export interface Foo extends $InterfaceDefinition {\n osdkMetadata: typeof $osdkMetadata;\n type: \"interface\";\n apiName: \"Foo\";\n __DefinitionMetadata?: {\n objectSet: Foo.ObjectSet;\n props: Foo.Props;\n linksType: OsdkObjectLinks$Foo;\n strictProps: Foo.StrictProps;\n apiName: \"Foo\";\n description: \"Foo interface desc\";\n displayName: \"Foo interface dn\";\n implements: [\"Parent\"];\n links: {};\n properties: {\n /**\n * display name: 'bar property dn',\n * description: bar property desc\n */\n bar: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n /**\n * display name: 'foo property dn',\n * description: foo property desc\n */\n foo: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n };\n rid: \"FooRid\";\n type: \"interface\";\n };\n }\n\n export const Foo: Foo = {\n type: \"interface\",\n apiName: \"Foo\",\n osdkMetadata: $osdkMetadata,\n };\n \"\n `);\n });\n});\n"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACF,CAAC,CAAC;EACF3C,EAAE,CAAC,yCAAyC,EAAE,YAAY;IACtD,MAAM4C,MAAM,GAAGvC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAMwC,MAAM,GAAGxC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAM4B,QAAQ,GAAG/B,eAAe,CAAC;MAC7BiC,SAAS,EAAEX,cAAc,CAAC,UAAU,EAAE,CAClCV,eAAe,CAAC,KAAK,EAAE,CAAC8B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAC5C9B,eAAe,CAAC,QAAQ,EAAE,CAAC+B,MAAM,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;MACFT,SAAS,EAAE;IACf,CAAC,CAAC;IACF,MAAMI,aAAa,GAAG,MAAM3C,MAAM,CAACO,8CAA8C,CAAC6B,QAAQ,CAACP,cAAc,CAACoB,GAAG,EAAEb,QAAQ,EAAE,IAAI,CAAC,EAAE;MAC5HQ,MAAM,EAAE;IACZ,CAAC,CAAC;IACF1C,MAAM,CAACyC,aAAa,CAAC,CAACG,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACF,CAAC,CAAC;EACF3C,EAAE,CAAC,kCAAkC,EAAE,YAAY;IAC/C,MAAM4C,MAAM,GAAGvC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAMwC,MAAM,GAAGxC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAM4B,QAAQ,GAAG/B,eAAe,CAAC;MAC7BiC,SAAS,EAAEX,cAAc,CAAC,UAAU,EAAE,CAClCV,eAAe,CAAC,KAAK,EAAE,CAAC8B,MAAM,EAAEC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EACpD/B,eAAe,CAAC,QAAQ,EAAE,CAAC+B,MAAM,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;MACFT,SAAS,EAAE;IACf,CAAC,CAAC;IACF,MAAMI,aAAa,GAAG,MAAM3C,MAAM,CAACO,8CAA8C,CAAC6B,QAAQ,CAACP,cAAc,CAACoB,GAAG,EAAEb,QAAQ,EAAE,IAAI,CAAC,EAAE;MAC5HQ,MAAM,EAAE;IACZ,CAAC,CAAC;IACF1C,MAAM,CAACyC,aAAa,CAAC,CAACG,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACF,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js","names":["format","describe","expect","it","EnhancedInterfaceType","enhanceOntology","ForeignType","__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst","simpleSpt","apiName","metadataLevel","dataType","type","rid","displayName","description","undefined","simpleInterface","spts","parents","properties","Object","fromEntries","map","spt","extendsInterfaces","links","simpleOntology","interfaces","interfaceTypes","i","sharedPropertyTypes","flatMap","entries","actionTypes","objectTypes","ontology","queryTypes","sanitized","importExt","Bar","toBe","Error","formattedCode","parser","printWidth","toMatchInlineSnapshot","fooSpt","barSpt","Foo"],"sources":["UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { format } from \"prettier\";\nimport { describe, expect, it } from \"vitest\";\nimport { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { enhanceOntology } from \"../GenerateContext/enhanceOntology.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport { __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst } from \"./UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js\";\nfunction simpleSpt(apiName, metadataLevel = 2) {\n return {\n apiName,\n dataType: {\n type: \"integer\",\n },\n rid: `${apiName}Rid`,\n displayName: metadataLevel >= 1 ? `${apiName} property dn` : apiName,\n description: metadataLevel >= 2 ? `${apiName} property desc` : undefined,\n };\n}\nfunction simpleInterface(apiName, spts, parents, metadataLevel = 2) {\n const properties = Object.fromEntries(spts.map(spt => [spt.apiName, spt]));\n return {\n apiName,\n rid: `${apiName}Rid`,\n displayName: metadataLevel >= 1 ? `${apiName} interface dn` : apiName,\n description: metadataLevel >= 2 ? `${apiName} interface desc` : undefined,\n extendsInterfaces: parents,\n links: {},\n properties,\n };\n}\nfunction simpleOntology(apiName, interfaces) {\n const interfaceTypes = Object\n .fromEntries(interfaces.map(i => [i.apiName, i]));\n const sharedPropertyTypes = Object\n .fromEntries(interfaces.flatMap(i => Object.entries(i.properties)));\n return {\n actionTypes: {},\n interfaceTypes,\n objectTypes: {},\n ontology: {\n apiName,\n description: `${apiName} ontology desc`,\n displayName: `${apiName} ontology dn`,\n rid: `${apiName} ontology rid`,\n },\n queryTypes: {},\n sharedPropertyTypes,\n };\n}\ndescribe(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst, () => {\n it(\"Does not say (inherited) on properties locally defined\", async () => {\n const ontology = enhanceOntology({\n sanitized: simpleOntology(\"ontology\", [\n simpleInterface(\"Bar\", [simpleSpt(\"bar\", 0)], [], 0),\n ]),\n importExt: \"\",\n });\n expect(ontology.interfaceTypes.Bar instanceof EnhancedInterfaceType).toBe(true);\n // type guard for below\n if (ontology.interfaceTypes.Bar instanceof ForeignType) {\n throw new Error(\"Expected Bar to be an EnhancedInterfaceType\");\n }\n const formattedCode = await format(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(ontology.interfaceTypes.Bar, ontology, true), {\n parser: \"typescript\",\n printWidth: 100,\n });\n expect(formattedCode).toMatchInlineSnapshot(`\n \"import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n\n export type OsdkObjectLinks$Bar = {};\n\n export namespace Bar {\n export type PropertyKeys = \"bar\";\n\n export interface Props {\n readonly bar: $PropType[\"integer\"] | undefined;\n }\n export type StrictProps = Props;\n\n export interface ObjectSet extends $ObjectSet<Bar, Bar.ObjectSet> {}\n\n export type OsdkInstance<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof Bar.Props = keyof Bar.Props,\n > = $Osdk.Instance<Bar, OPTIONS, K>;\n\n /** @deprecated use OsdkInstance */\n export type OsdkObject<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof Bar.Props = keyof Bar.Props,\n > = OsdkInstance<OPTIONS, K>;\n }\n\n export interface Bar extends $InterfaceDefinition {\n osdkMetadata: typeof $osdkMetadata;\n type: \"interface\";\n apiName: \"Bar\";\n __DefinitionMetadata?: {\n objectSet: Bar.ObjectSet;\n props: Bar.Props;\n linksType: OsdkObjectLinks$Bar;\n strictProps: Bar.StrictProps;\n apiName: \"Bar\";\n displayName: \"Bar\";\n implements: [];\n links: {};\n properties: {\n /**\n * (no ontology metadata)\n */\n bar: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n };\n rid: \"BarRid\";\n type: \"interface\";\n };\n }\n\n export const Bar: Bar = {\n type: \"interface\",\n apiName: \"Bar\",\n osdkMetadata: $osdkMetadata,\n };\n \"\n `);\n });\n it(\"Generates properties for inherited SPTs\", async () => {\n const fooSpt = simpleSpt(\"foo\");\n const barSpt = simpleSpt(\"bar\");\n const ontology = enhanceOntology({\n sanitized: simpleOntology(\"ontology\", [\n simpleInterface(\"Foo\", [fooSpt], [\"Parent\"]),\n simpleInterface(\"Parent\", [barSpt], []),\n ]),\n importExt: \"\",\n });\n const formattedCode = await format(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(ontology.interfaceTypes.Foo, ontology, true), {\n parser: \"typescript\",\n });\n expect(formattedCode).toMatchInlineSnapshot(`\n \"import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n\n export type OsdkObjectLinks$Foo = {};\n\n export namespace Foo {\n export type PropertyKeys = \"foo\";\n\n export interface Props {\n readonly foo: $PropType[\"integer\"] | undefined;\n }\n export type StrictProps = Props;\n\n export interface ObjectSet extends $ObjectSet<Foo, Foo.ObjectSet> {}\n\n export type OsdkInstance<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = $Osdk.Instance<Foo, OPTIONS, K>;\n\n /** @deprecated use OsdkInstance */\n export type OsdkObject<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = OsdkInstance<OPTIONS, K>;\n }\n\n export interface Foo extends $InterfaceDefinition {\n osdkMetadata: typeof $osdkMetadata;\n type: \"interface\";\n apiName: \"Foo\";\n __DefinitionMetadata?: {\n objectSet: Foo.ObjectSet;\n props: Foo.Props;\n linksType: OsdkObjectLinks$Foo;\n strictProps: Foo.StrictProps;\n apiName: \"Foo\";\n description: \"Foo interface desc\";\n displayName: \"Foo interface dn\";\n implements: [\"Parent\"];\n links: {};\n properties: {\n /**\n * display name: 'foo property dn',\n * description: foo property desc\n */\n foo: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n };\n rid: \"FooRid\";\n type: \"interface\";\n };\n }\n\n export const Foo: Foo = {\n type: \"interface\",\n apiName: \"Foo\",\n osdkMetadata: $osdkMetadata,\n };\n \"\n `);\n });\n it(\"allows for SPT reuse if the same\", async () => {\n const fooSpt = simpleSpt(\"foo\");\n const barSpt = simpleSpt(\"bar\");\n const ontology = enhanceOntology({\n sanitized: simpleOntology(\"ontology\", [\n simpleInterface(\"Foo\", [fooSpt, barSpt], [\"Parent\"]),\n simpleInterface(\"Parent\", [barSpt], []),\n ]),\n importExt: \"\",\n });\n const formattedCode = await format(__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(ontology.interfaceTypes.Foo, ontology, true), {\n parser: \"typescript\",\n });\n expect(formattedCode).toMatchInlineSnapshot(`\n \"import type {\n InterfaceDefinition as $InterfaceDefinition,\n ObjectSet as $ObjectSet,\n Osdk as $Osdk,\n PropertyValueWireToClient as $PropType,\n } from \"@osdk/api\";\n\n export type OsdkObjectLinks$Foo = {};\n\n export namespace Foo {\n export type PropertyKeys = \"foo\" | \"bar\";\n\n export interface Props {\n readonly bar: $PropType[\"integer\"] | undefined;\n readonly foo: $PropType[\"integer\"] | undefined;\n }\n export type StrictProps = Props;\n\n export interface ObjectSet extends $ObjectSet<Foo, Foo.ObjectSet> {}\n\n export type OsdkInstance<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = $Osdk.Instance<Foo, OPTIONS, K>;\n\n /** @deprecated use OsdkInstance */\n export type OsdkObject<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof Foo.Props = keyof Foo.Props,\n > = OsdkInstance<OPTIONS, K>;\n }\n\n export interface Foo extends $InterfaceDefinition {\n osdkMetadata: typeof $osdkMetadata;\n type: \"interface\";\n apiName: \"Foo\";\n __DefinitionMetadata?: {\n objectSet: Foo.ObjectSet;\n props: Foo.Props;\n linksType: OsdkObjectLinks$Foo;\n strictProps: Foo.StrictProps;\n apiName: \"Foo\";\n description: \"Foo interface desc\";\n displayName: \"Foo interface dn\";\n implements: [\"Parent\"];\n links: {};\n properties: {\n /**\n * display name: 'bar property dn',\n * description: bar property desc\n */\n bar: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n /**\n * display name: 'foo property dn',\n * description: foo property desc\n */\n foo: $PropertyDef<\"integer\", \"nullable\", \"single\">;\n };\n rid: \"FooRid\";\n type: \"interface\";\n };\n }\n\n export const Foo: Foo = {\n type: \"interface\",\n apiName: \"Foo\",\n osdkMetadata: $osdkMetadata,\n };\n \"\n `);\n });\n});\n"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACF,CAAC,CAAC;EACF3C,EAAE,CAAC,yCAAyC,EAAE,YAAY;IACtD,MAAM4C,MAAM,GAAGvC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAMwC,MAAM,GAAGxC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAM4B,QAAQ,GAAG/B,eAAe,CAAC;MAC7BiC,SAAS,EAAEX,cAAc,CAAC,UAAU,EAAE,CAClCV,eAAe,CAAC,KAAK,EAAE,CAAC8B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAC5C9B,eAAe,CAAC,QAAQ,EAAE,CAAC+B,MAAM,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;MACFT,SAAS,EAAE;IACf,CAAC,CAAC;IACF,MAAMI,aAAa,GAAG,MAAM3C,MAAM,CAACO,8CAA8C,CAAC6B,QAAQ,CAACP,cAAc,CAACoB,GAAG,EAAEb,QAAQ,EAAE,IAAI,CAAC,EAAE;MAC5HQ,MAAM,EAAE;IACZ,CAAC,CAAC;IACF1C,MAAM,CAACyC,aAAa,CAAC,CAACG,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACF,CAAC,CAAC;EACF3C,EAAE,CAAC,kCAAkC,EAAE,YAAY;IAC/C,MAAM4C,MAAM,GAAGvC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAMwC,MAAM,GAAGxC,SAAS,CAAC,KAAK,CAAC;IAC/B,MAAM4B,QAAQ,GAAG/B,eAAe,CAAC;MAC7BiC,SAAS,EAAEX,cAAc,CAAC,UAAU,EAAE,CAClCV,eAAe,CAAC,KAAK,EAAE,CAAC8B,MAAM,EAAEC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EACpD/B,eAAe,CAAC,QAAQ,EAAE,CAAC+B,MAAM,CAAC,EAAE,EAAE,CAAC,CAC1C,CAAC;MACFT,SAAS,EAAE;IACf,CAAC,CAAC;IACF,MAAMI,aAAa,GAAG,MAAM3C,MAAM,CAACO,8CAA8C,CAAC6B,QAAQ,CAACP,cAAc,CAACoB,GAAG,EAAEb,QAAQ,EAAE,IAAI,CAAC,EAAE;MAC5HQ,MAAM,EAAE;IACZ,CAAC,CAAC;IACF1C,MAAM,CAACyC,aAAa,CAAC,CAACG,qBAAqB,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACF,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|