@osdk/client 2.2.0-beta.14 → 2.2.0-beta.16

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 (80) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/build/browser/__unstable/ConjureSupport.js.map +1 -1
  3. package/build/browser/logger/BaseLogger.js +7 -1
  4. package/build/browser/logger/BaseLogger.js.map +1 -1
  5. package/build/browser/logger/BrowserLogger.js +67 -0
  6. package/build/browser/logger/BrowserLogger.js.map +1 -0
  7. package/build/browser/logger/MinimalLogger.js +12 -14
  8. package/build/browser/logger/MinimalLogger.js.map +1 -1
  9. package/build/browser/logger/MinimalLogger.test.js +60 -0
  10. package/build/browser/logger/MinimalLogger.test.js.map +1 -0
  11. package/build/browser/logger/TestLogger.js +3 -6
  12. package/build/browser/logger/TestLogger.js.map +1 -1
  13. package/build/browser/object/convertWireToOsdkObjects.js +0 -5
  14. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  15. package/build/browser/object/fetchPage.js +2 -2
  16. package/build/browser/object/fetchPage.js.map +1 -1
  17. package/build/browser/ontology/loadFullObjectMetadata.js +0 -1
  18. package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
  19. package/build/browser/public/internal.js +2 -0
  20. package/build/browser/public/internal.js.map +1 -1
  21. package/build/browser/util/UserAgent.js +1 -1
  22. package/build/browser/util/extractRdpDefinition.js +74 -21
  23. package/build/browser/util/extractRdpDefinition.js.map +1 -1
  24. package/build/browser/util/extractRdpDefinition.test.js +93 -4
  25. package/build/browser/util/extractRdpDefinition.test.js.map +1 -1
  26. package/build/cjs/Logger-a5UcHtrk.d.cts +19 -0
  27. package/build/cjs/{chunk-VT3UM6EP.cjs → chunk-6KYD7ZWT.cjs} +83 -14
  28. package/build/cjs/chunk-6KYD7ZWT.cjs.map +1 -0
  29. package/build/cjs/{chunk-USHAX4EP.cjs → chunk-KAJABLKV.cjs} +94 -37
  30. package/build/cjs/chunk-KAJABLKV.cjs.map +1 -0
  31. package/build/cjs/index.cjs +47 -114
  32. package/build/cjs/index.cjs.map +1 -1
  33. package/build/cjs/index.d.cts +2 -19
  34. package/build/cjs/public/internal.cjs +61 -6
  35. package/build/cjs/public/internal.cjs.map +1 -1
  36. package/build/cjs/public/internal.d.cts +50 -2
  37. package/build/cjs/public/unstable-do-not-use.cjs +8 -8
  38. package/build/esm/__unstable/ConjureSupport.js.map +1 -1
  39. package/build/esm/logger/BaseLogger.js +7 -1
  40. package/build/esm/logger/BaseLogger.js.map +1 -1
  41. package/build/esm/logger/BrowserLogger.js +67 -0
  42. package/build/esm/logger/BrowserLogger.js.map +1 -0
  43. package/build/esm/logger/MinimalLogger.js +12 -14
  44. package/build/esm/logger/MinimalLogger.js.map +1 -1
  45. package/build/esm/logger/MinimalLogger.test.js +60 -0
  46. package/build/esm/logger/MinimalLogger.test.js.map +1 -0
  47. package/build/esm/logger/TestLogger.js +3 -6
  48. package/build/esm/logger/TestLogger.js.map +1 -1
  49. package/build/esm/object/convertWireToOsdkObjects.js +0 -5
  50. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  51. package/build/esm/object/fetchPage.js +2 -2
  52. package/build/esm/object/fetchPage.js.map +1 -1
  53. package/build/esm/ontology/loadFullObjectMetadata.js +0 -1
  54. package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
  55. package/build/esm/public/internal.js +2 -0
  56. package/build/esm/public/internal.js.map +1 -1
  57. package/build/esm/util/UserAgent.js +1 -1
  58. package/build/esm/util/extractRdpDefinition.js +74 -21
  59. package/build/esm/util/extractRdpDefinition.js.map +1 -1
  60. package/build/esm/util/extractRdpDefinition.test.js +93 -4
  61. package/build/esm/util/extractRdpDefinition.test.js.map +1 -1
  62. package/build/types/__unstable/ConjureSupport.d.ts +2 -2
  63. package/build/types/logger/BaseLogger.d.ts +4 -1
  64. package/build/types/logger/BaseLogger.d.ts.map +1 -1
  65. package/build/types/logger/BrowserLogger.d.ts +10 -0
  66. package/build/types/logger/BrowserLogger.d.ts.map +1 -0
  67. package/build/types/logger/MinimalLogger.d.ts +2 -1
  68. package/build/types/logger/MinimalLogger.d.ts.map +1 -1
  69. package/build/types/logger/MinimalLogger.test.d.ts +1 -0
  70. package/build/types/logger/MinimalLogger.test.d.ts.map +1 -0
  71. package/build/types/logger/TestLogger.d.ts +2 -2
  72. package/build/types/logger/TestLogger.d.ts.map +1 -1
  73. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  74. package/build/types/public/internal.d.ts +2 -0
  75. package/build/types/public/internal.d.ts.map +1 -1
  76. package/build/types/util/extractRdpDefinition.d.ts +1 -1
  77. package/build/types/util/extractRdpDefinition.d.ts.map +1 -1
  78. package/package.json +11 -11
  79. package/build/cjs/chunk-USHAX4EP.cjs.map +0 -1
  80. package/build/cjs/chunk-VT3UM6EP.cjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @osdk/client
2
2
 
3
+ ## 2.2.0-beta.16
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [395ae07]
8
+ - @osdk/client.unstable@2.2.0-beta.16
9
+ - @osdk/api@2.2.0-beta.16
10
+ - @osdk/generator-converters@2.2.0-beta.16
11
+
12
+ ## 2.2.0-beta.15
13
+
14
+ ### Minor Changes
15
+
16
+ - ed69666: Update conjure-lite to 0.7.1
17
+ - 1e16dcb: Exposes MinimalLogger and BrowserLogger via @osdk/client/internal
18
+ - 1e16dcb: Default logging is error level only
19
+ - f4370e3: Fixes error when using intersection, subtraction, or union object sets
20
+ - cc380b5: Use the latest Platform APIs
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [ed69666]
25
+ - @osdk/client.unstable@2.2.0-beta.15
26
+ - @osdk/api@2.2.0-beta.15
27
+ - @osdk/generator-converters@2.2.0-beta.15
28
+
3
29
  ## 2.2.0-beta.14
4
30
 
5
31
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"ConjureSupport.js","names":["bulkLoadOntologyEntities","getLinkTypesForObjectTypes","loadAllOntologies","invariant","createSimpleAsyncCache","createSimpleCache","makeConjureContext","cachedAllOntologies","getOntologyVersionForRid","ctx","ontologyRid","ontologies","process","env","NODE_ENV","currentOntologyVersion","strongMemoSync","fn","Map","get","weakMemoSync","WeakMap","strongMemoAsync","weakMemoAsync","MetadataClient","client","logger","constructor","ontologyProvider","getObjectDefinition","child","mcc","forObjectByRid","rid","Promise","resolve","getPropertyMapping","objectPropertyMapping","bind","getLinkMapping","objectLinkMapping","getRid","getApiName","getConjureObjectType","apiName","forObjectByApiName","objectApiName","objectDef","objectTypeRid","conjureObjectType","createObjectPropertyMapping","linkTypes","includeObjectTypesWithoutSearchableDatasources","loadRedacted","objectTypeBranches","objectTypeVersions","ontologyVersion","ret","l","helper","linkSide","otherObjectType","directedLinkTypeRid","linkTypeRid","definition","type","oneToMany","objectTypeRidManySide","manyToOneLinkMetadata","objectTypeRidOneSide","oneToManyLinkMetadata","manyToMany","objectTypeRidA","objectTypeAToBLinkMetadata","objectTypeRidB","objectTypeBToALinkMetadata","debug","body","datasourceTypes","objectTypes","identifier","versionReference","sharedPropertyTypes","interfaceTypes","typeGroups","includeObjectTypeCount","undefined","includeEntityMetadata","actionTypes","includeTypeGroupEntitiesCount","entityMetadata","entities","objectType","metadataCacheClient","conjureOT","primaryKeys","length","pkRid","pkProperty","Object","values","propertyTypes","find","a","Error","propertyIdToApiNameMapping","fromEntries","map","property","id","propertyApiNameToIdMapping","pk"],"sources":["ConjureSupport.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DirectedLinkTypeRid,\n LinkTypeMetadata,\n LoadAllOntologiesResponse,\n ObjectType,\n Type,\n} from \"@osdk/client.unstable\";\nimport {\n bulkLoadOntologyEntities,\n getLinkTypesForObjectTypes,\n loadAllOntologies,\n} from \"@osdk/client.unstable\";\nimport type { ConjureContext } from \"conjure-lite\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n createSimpleAsyncCache,\n createSimpleCache,\n} from \"../object/SimpleCache.js\";\nimport { makeConjureContext } from \"../ontology/makeConjureContext.js\";\n\nexport interface ObjectPropertyMapping {\n apiName: string;\n id: string;\n propertyIdToApiNameMapping: Record<string, string>;\n propertyApiNameToIdMapping: Record<string, string>;\n pk: {\n rid: string;\n apiName: string;\n type: Type;\n };\n}\n\ntype ObjectLinkMapping = Record<string, {\n apiName: string;\n directedLinkTypeRid: DirectedLinkTypeRid;\n otherObjectType: string; // rid\n}>;\n\nlet cachedAllOntologies: LoadAllOntologiesResponse | undefined;\nasync function getOntologyVersionForRid(\n ctx: ConjureContext,\n ontologyRid: string,\n) {\n cachedAllOntologies ??= await loadAllOntologies(ctx, {});\n invariant(\n cachedAllOntologies.ontologies[ontologyRid],\n \"ontology should be loaded\",\n );\n\n return cachedAllOntologies.ontologies[ontologyRid].currentOntologyVersion;\n}\n\nconst strongMemoSync = <K, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new Map(), fn).get;\n\nconst weakMemoSync = <K extends object, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new WeakMap() as any, fn).get; // FIXME\n\nconst strongMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"strong\", fn).get;\n\nconst weakMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"weak\", fn).get;\n\nexport class MetadataClient {\n #client: MinimalClient;\n #ctx: ConjureContext;\n #logger: any;\n\n constructor(client: MinimalClient) {\n this.#client = client;\n this.#ctx = makeConjureContext(client, \"ontology-metadata/api\");\n this.#client.ontologyProvider.getObjectDefinition;\n\n this.#logger = this.#client.logger?.child({\n mcc: true,\n });\n }\n\n forObjectByRid: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | undefined>;\n }> = strongMemoAsync(async (rid: string) => {\n return Promise.resolve({\n getPropertyMapping: this.#objectPropertyMapping.bind(this, rid),\n getLinkMapping: this.#objectLinkMapping.bind(this, rid),\n getRid: () => rid,\n getApiName: async () => (await this.#getConjureObjectType(rid)).apiName,\n });\n });\n\n forObjectByApiName: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | undefined>;\n }> = strongMemoAsync(\n async (objectApiName: string) => {\n const objectDef = await this.#client.ontologyProvider.getObjectDefinition(\n objectApiName,\n );\n return this.forObjectByRid(objectDef.rid);\n },\n );\n\n #objectPropertyMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const conjureObjectType = await this.#getConjureObjectType(objectTypeRid);\n return createObjectPropertyMapping(conjureObjectType);\n });\n\n #objectLinkMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const linkTypes = await getLinkTypesForObjectTypes(this.#ctx, {\n includeObjectTypesWithoutSearchableDatasources: true,\n loadRedacted: false,\n objectTypeBranches: {},\n objectTypeVersions: {\n [objectTypeRid]: await this.ontologyVersion(\"\"),\n },\n });\n invariant(\n linkTypes.linkTypes[objectTypeRid],\n \"link type should be loaded\",\n );\n\n // apiName to content\n const ret: ObjectLinkMapping = {};\n for (const l of linkTypes.linkTypes[objectTypeRid]) {\n const helper = (\n { apiName }: LinkTypeMetadata,\n linkSide: \"SOURCE\" | \"TARGET\",\n otherObjectType: string,\n ) => {\n if (apiName) {\n ret[apiName] = {\n apiName,\n directedLinkTypeRid: {\n linkTypeRid: l.rid,\n linkSide,\n },\n otherObjectType,\n };\n }\n };\n if (l.definition.type === \"oneToMany\") {\n const {\n oneToMany: {\n objectTypeRidManySide,\n manyToOneLinkMetadata,\n objectTypeRidOneSide,\n oneToManyLinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidManySide === objectTypeRid) {\n helper(\n manyToOneLinkMetadata,\n \"TARGET\",\n objectTypeRidOneSide,\n );\n }\n if (objectTypeRidOneSide === objectTypeRid) {\n helper(\n oneToManyLinkMetadata,\n \"SOURCE\",\n objectTypeRidManySide,\n );\n }\n } else if (l.definition.type === \"manyToMany\") {\n const {\n manyToMany: {\n objectTypeRidA,\n objectTypeAToBLinkMetadata,\n objectTypeRidB,\n objectTypeBToALinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidA === objectTypeRid) {\n helper(\n objectTypeAToBLinkMetadata,\n \"SOURCE\",\n objectTypeRidB,\n );\n }\n\n if (objectTypeRidB === objectTypeRid) {\n helper(\n objectTypeBToALinkMetadata,\n \"TARGET\",\n objectTypeRidA,\n );\n }\n }\n }\n\n return ret;\n });\n\n #getConjureObjectType = strongMemoAsync(async (objectTypeRid: string) => {\n this.#logger?.debug(`getConjureObjectType(${objectTypeRid})`);\n const body = {\n datasourceTypes: [],\n objectTypes: [{\n identifier: {\n type: \"objectTypeRid\" as const,\n objectTypeRid: objectTypeRid,\n },\n versionReference: {\n type: \"ontologyVersion\" as const,\n ontologyVersion: await this.ontologyVersion(\"\"),\n },\n }],\n linkTypes: [],\n sharedPropertyTypes: [],\n interfaceTypes: [],\n typeGroups: [],\n loadRedacted: false,\n includeObjectTypeCount: undefined,\n includeObjectTypesWithoutSearchableDatasources: true,\n includeEntityMetadata: undefined,\n actionTypes: [],\n includeTypeGroupEntitiesCount: undefined,\n entityMetadata: undefined,\n };\n const entities = await bulkLoadOntologyEntities(this.#ctx, undefined, body);\n invariant(\n entities.objectTypes[0]?.objectType,\n \"object type should be loaded\",\n );\n return entities.objectTypes[0].objectType;\n });\n\n ontologyVersion: (key: string) => Promise<string> = strongMemoAsync(async (\n _: string,\n ) => getOntologyVersionForRid(this.#ctx, await this.#client.ontologyRid));\n}\n\nexport const metadataCacheClient: (\n key: MinimalClient,\n) => Promise<MetadataClient> = weakMemoAsync(\n (client: MinimalClient) => Promise.resolve(new MetadataClient(client)),\n);\n\nfunction createObjectPropertyMapping(\n conjureOT: ObjectType,\n): ObjectPropertyMapping {\n invariant(\n conjureOT.primaryKeys.length === 1,\n `only one primary key supported, got ${conjureOT.primaryKeys.length}`,\n );\n const pkRid = conjureOT.primaryKeys[0];\n\n const pkProperty = Object.values(conjureOT.propertyTypes).find(a =>\n a.rid === pkRid\n );\n if (!pkProperty) {\n throw new Error(`Could not find PK property by rid: ${pkRid}`);\n }\n\n const propertyIdToApiNameMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.id, property.apiName!];\n },\n ),\n );\n\n const propertyApiNameToIdMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.apiName!, property.id];\n },\n ),\n );\n\n return {\n apiName: conjureOT.apiName!,\n id: conjureOT.id,\n propertyIdToApiNameMapping,\n propertyApiNameToIdMapping,\n pk: {\n rid: pkRid,\n apiName: pkProperty.apiName!,\n type: pkProperty.type,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ConjureSupport.js","names":["bulkLoadOntologyEntities","getLinkTypesForObjectTypes","loadAllOntologies","invariant","createSimpleAsyncCache","createSimpleCache","makeConjureContext","cachedAllOntologies","getOntologyVersionForRid","ctx","ontologyRid","ontologies","process","env","NODE_ENV","currentOntologyVersion","strongMemoSync","fn","Map","get","weakMemoSync","WeakMap","strongMemoAsync","weakMemoAsync","MetadataClient","client","logger","constructor","ontologyProvider","getObjectDefinition","child","mcc","forObjectByRid","rid","Promise","resolve","getPropertyMapping","objectPropertyMapping","bind","getLinkMapping","objectLinkMapping","getRid","getApiName","getConjureObjectType","apiName","forObjectByApiName","objectApiName","objectDef","objectTypeRid","conjureObjectType","createObjectPropertyMapping","linkTypes","includeObjectTypesWithoutSearchableDatasources","loadRedacted","objectTypeBranches","objectTypeVersions","ontologyVersion","ret","l","helper","linkSide","otherObjectType","directedLinkTypeRid","linkTypeRid","definition","type","oneToMany","objectTypeRidManySide","manyToOneLinkMetadata","objectTypeRidOneSide","oneToManyLinkMetadata","manyToMany","objectTypeRidA","objectTypeAToBLinkMetadata","objectTypeRidB","objectTypeBToALinkMetadata","debug","body","datasourceTypes","objectTypes","identifier","versionReference","sharedPropertyTypes","interfaceTypes","typeGroups","includeObjectTypeCount","undefined","includeEntityMetadata","actionTypes","includeTypeGroupEntitiesCount","entityMetadata","entities","objectType","metadataCacheClient","conjureOT","primaryKeys","length","pkRid","pkProperty","Object","values","propertyTypes","find","a","Error","propertyIdToApiNameMapping","fromEntries","map","property","id","propertyApiNameToIdMapping","pk"],"sources":["ConjureSupport.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n DirectedLinkTypeRid,\n LinkTypeMetadata,\n LoadAllOntologiesResponse,\n ObjectType,\n Type,\n} from \"@osdk/client.unstable\";\nimport {\n bulkLoadOntologyEntities,\n getLinkTypesForObjectTypes,\n loadAllOntologies,\n} from \"@osdk/client.unstable\";\nimport type { ConjureContext } from \"conjure-lite\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n createSimpleAsyncCache,\n createSimpleCache,\n} from \"../object/SimpleCache.js\";\nimport { makeConjureContext } from \"../ontology/makeConjureContext.js\";\n\nexport interface ObjectPropertyMapping {\n apiName: string;\n id: string;\n propertyIdToApiNameMapping: Record<string, string>;\n propertyApiNameToIdMapping: Record<string, string>;\n pk: {\n rid: string;\n apiName: string;\n type: Type;\n };\n}\n\ntype ObjectLinkMapping = Record<string, {\n apiName: string;\n directedLinkTypeRid: DirectedLinkTypeRid;\n otherObjectType: string; // rid\n}>;\n\nlet cachedAllOntologies: LoadAllOntologiesResponse | undefined;\nasync function getOntologyVersionForRid(\n ctx: ConjureContext,\n ontologyRid: string,\n) {\n cachedAllOntologies ??= await loadAllOntologies(ctx, {});\n invariant(\n cachedAllOntologies.ontologies[ontologyRid],\n \"ontology should be loaded\",\n );\n\n return cachedAllOntologies.ontologies[ontologyRid].currentOntologyVersion;\n}\n\nconst strongMemoSync = <K, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new Map(), fn).get;\n\nconst weakMemoSync = <K extends object, V>(fn: (entry: K) => V) =>\n createSimpleCache<K, V>(new WeakMap() as any, fn).get; // FIXME\n\nconst strongMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"strong\", fn).get;\n\nconst weakMemoAsync = <K, V>(fn: (entry: K) => Promise<V>) =>\n createSimpleAsyncCache<K, V>(\"weak\", fn).get;\n\nexport class MetadataClient {\n #client: MinimalClient;\n #ctx: ConjureContext;\n #logger: any;\n\n constructor(client: MinimalClient) {\n this.#client = client;\n this.#ctx = makeConjureContext(client, \"ontology-metadata/api\");\n this.#client.ontologyProvider.getObjectDefinition;\n\n this.#logger = this.#client.logger?.child({\n mcc: true,\n });\n }\n\n forObjectByRid: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | null | undefined>;\n }> = strongMemoAsync(async (rid: string) => {\n return Promise.resolve({\n getPropertyMapping: this.#objectPropertyMapping.bind(this, rid),\n getLinkMapping: this.#objectLinkMapping.bind(this, rid),\n getRid: () => rid,\n getApiName: async () => (await this.#getConjureObjectType(rid)).apiName,\n });\n });\n\n forObjectByApiName: (key: string) => Promise<{\n getPropertyMapping: () => Promise<ObjectPropertyMapping>;\n getLinkMapping: () => Promise<ObjectLinkMapping>;\n getRid: () => string;\n getApiName: () => Promise<string | null | undefined>;\n }> = strongMemoAsync(\n async (objectApiName: string) => {\n const objectDef = await this.#client.ontologyProvider.getObjectDefinition(\n objectApiName,\n );\n return this.forObjectByRid(objectDef.rid);\n },\n );\n\n #objectPropertyMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const conjureObjectType = await this.#getConjureObjectType(objectTypeRid);\n return createObjectPropertyMapping(conjureObjectType);\n });\n\n #objectLinkMapping = strongMemoAsync(async (objectTypeRid: string) => {\n const linkTypes = await getLinkTypesForObjectTypes(this.#ctx, {\n includeObjectTypesWithoutSearchableDatasources: true,\n loadRedacted: false,\n objectTypeBranches: {},\n objectTypeVersions: {\n [objectTypeRid]: await this.ontologyVersion(\"\"),\n },\n });\n invariant(\n linkTypes.linkTypes[objectTypeRid],\n \"link type should be loaded\",\n );\n\n // apiName to content\n const ret: ObjectLinkMapping = {};\n for (const l of linkTypes.linkTypes[objectTypeRid]) {\n const helper = (\n { apiName }: LinkTypeMetadata,\n linkSide: \"SOURCE\" | \"TARGET\",\n otherObjectType: string,\n ) => {\n if (apiName) {\n ret[apiName] = {\n apiName,\n directedLinkTypeRid: {\n linkTypeRid: l.rid,\n linkSide,\n },\n otherObjectType,\n };\n }\n };\n if (l.definition.type === \"oneToMany\") {\n const {\n oneToMany: {\n objectTypeRidManySide,\n manyToOneLinkMetadata,\n objectTypeRidOneSide,\n oneToManyLinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidManySide === objectTypeRid) {\n helper(\n manyToOneLinkMetadata,\n \"TARGET\",\n objectTypeRidOneSide,\n );\n }\n if (objectTypeRidOneSide === objectTypeRid) {\n helper(\n oneToManyLinkMetadata,\n \"SOURCE\",\n objectTypeRidManySide,\n );\n }\n } else if (l.definition.type === \"manyToMany\") {\n const {\n manyToMany: {\n objectTypeRidA,\n objectTypeAToBLinkMetadata,\n objectTypeRidB,\n objectTypeBToALinkMetadata,\n },\n } = l.definition;\n if (objectTypeRidA === objectTypeRid) {\n helper(\n objectTypeAToBLinkMetadata,\n \"SOURCE\",\n objectTypeRidB,\n );\n }\n\n if (objectTypeRidB === objectTypeRid) {\n helper(\n objectTypeBToALinkMetadata,\n \"TARGET\",\n objectTypeRidA,\n );\n }\n }\n }\n\n return ret;\n });\n\n #getConjureObjectType = strongMemoAsync(async (objectTypeRid: string) => {\n this.#logger?.debug(`getConjureObjectType(${objectTypeRid})`);\n const body = {\n datasourceTypes: [],\n objectTypes: [{\n identifier: {\n type: \"objectTypeRid\" as const,\n objectTypeRid: objectTypeRid,\n },\n versionReference: {\n type: \"ontologyVersion\" as const,\n ontologyVersion: await this.ontologyVersion(\"\"),\n },\n }],\n linkTypes: [],\n sharedPropertyTypes: [],\n interfaceTypes: [],\n typeGroups: [],\n loadRedacted: false,\n includeObjectTypeCount: undefined,\n includeObjectTypesWithoutSearchableDatasources: true,\n includeEntityMetadata: undefined,\n actionTypes: [],\n includeTypeGroupEntitiesCount: undefined,\n entityMetadata: undefined,\n };\n const entities = await bulkLoadOntologyEntities(this.#ctx, undefined, body);\n invariant(\n entities.objectTypes[0]?.objectType,\n \"object type should be loaded\",\n );\n return entities.objectTypes[0].objectType;\n });\n\n ontologyVersion: (key: string) => Promise<string> = strongMemoAsync(async (\n _: string,\n ) => getOntologyVersionForRid(this.#ctx, await this.#client.ontologyRid));\n}\n\nexport const metadataCacheClient: (\n key: MinimalClient,\n) => Promise<MetadataClient> = weakMemoAsync(\n (client: MinimalClient) => Promise.resolve(new MetadataClient(client)),\n);\n\nfunction createObjectPropertyMapping(\n conjureOT: ObjectType,\n): ObjectPropertyMapping {\n invariant(\n conjureOT.primaryKeys.length === 1,\n `only one primary key supported, got ${conjureOT.primaryKeys.length}`,\n );\n const pkRid = conjureOT.primaryKeys[0];\n\n const pkProperty = Object.values(conjureOT.propertyTypes).find(a =>\n a.rid === pkRid\n );\n if (!pkProperty) {\n throw new Error(`Could not find PK property by rid: ${pkRid}`);\n }\n\n const propertyIdToApiNameMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.id, property.apiName!];\n },\n ),\n );\n\n const propertyApiNameToIdMapping: Record<string, string> = Object\n .fromEntries(\n Object.values(conjureOT.propertyTypes).map(\n property => {\n return [property.apiName!, property.id];\n },\n ),\n );\n\n return {\n apiName: conjureOT.apiName!,\n id: conjureOT.id,\n propertyIdToApiNameMapping,\n propertyApiNameToIdMapping,\n pk: {\n rid: pkRid,\n apiName: pkProperty.apiName!,\n type: pkProperty.type,\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- function noop() {}
17
+ export function noop() {}
18
18
  const levels = {
19
19
  trace: 10,
20
20
  debug: 20,
@@ -29,6 +29,12 @@ export class BaseLogger {
29
29
  this.bindings = bindings;
30
30
  this.options = options;
31
31
  this.#factory = factory;
32
+ for (const k of ["trace", "debug", "info", "warn", "error", "fatal"]) {
33
+ if (this.options?.level && !this.isLevelEnabled(k)) {
34
+ continue;
35
+ }
36
+ this[k] = this.createLogMethod(k, bindings);
37
+ }
32
38
  }
33
39
  trace = noop;
34
40
  debug = noop;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLogger.js","names":["noop","levels","trace","debug","info","warn","error","fatal","BaseLogger","factory","constructor","bindings","options","child","level","msgPrefix","filter","x","join","isLevelEnabled","ourLevel"],"sources":["BaseLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { LogFn, Logger } from \"./Logger.js\";\n\nfunction noop() {\n}\n\ninterface LoggerConstructor {\n new(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger;\n}\n\nconst levels = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n fatal: 60,\n};\n\nexport abstract class BaseLogger implements Logger {\n protected bindings: Record<string, any>;\n protected options: { level?: string; msgPrefix?: string } | undefined;\n #factory: LoggerConstructor;\n\n constructor(\n bindings: Record<string, any>,\n options: { level?: string; msgPrefix?: string } = {},\n factory: LoggerConstructor,\n ) {\n this.bindings = bindings;\n this.options = options;\n this.#factory = factory;\n }\n\n trace: LogFn = noop;\n debug: LogFn = noop;\n warn: LogFn = noop;\n info: LogFn = noop;\n error: LogFn = noop;\n fatal: LogFn = noop;\n\n child(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger {\n return new this.#factory({\n ...this.bindings,\n ...bindings,\n }, {\n level: (options ?? this.options)?.level,\n msgPrefix: [this.options?.msgPrefix, options?.msgPrefix].filter(x => x)\n .join(\" \"),\n });\n }\n\n isLevelEnabled(level: string): boolean {\n const ourLevel = (this.options?.level ?? \"info\") as keyof typeof levels;\n\n return level in levels && ourLevel in levels\n && levels[level as keyof typeof levels] >= levels[ourLevel];\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,IAAIA,CAAA,EAAG,CAChB;AASA,MAAMC,MAAM,GAAG;EACbC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAeC,UAAU,CAAmB;EAGjD,CAACC,OAAO;EAERC,WAAWA,CACTC,QAA6B,EAC7BC,OAA+C,GAAG,CAAC,CAAC,EACpDH,OAA0B,EAC1B;IACA,IAAI,CAACE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC,CAACH,OAAO,GAAGA,OAAO;EACzB;EAEAP,KAAK,GAAUF,IAAI;EACnBG,KAAK,GAAUH,IAAI;EACnBK,IAAI,GAAUL,IAAI;EAClBI,IAAI,GAAUJ,IAAI;EAClBM,KAAK,GAAUN,IAAI;EACnBO,KAAK,GAAUP,IAAI;EAEnBa,KAAKA,CACHF,QAA6B,EAC7BC,OAAgD,EACxC;IACR,OAAO,IAAI,IAAI,CAAC,CAACH,OAAO,CAAC;MACvB,GAAG,IAAI,CAACE,QAAQ;MAChB,GAAGA;IACL,CAAC,EAAE;MACDG,KAAK,EAAE,CAACF,OAAO,IAAI,IAAI,CAACA,OAAO,GAAGE,KAAK;MACvCC,SAAS,EAAE,CAAC,IAAI,CAACH,OAAO,EAAEG,SAAS,EAAEH,OAAO,EAAEG,SAAS,CAAC,CAACC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAAC,CACpEC,IAAI,CAAC,GAAG;IACb,CAAC,CAAC;EACJ;EAEAC,cAAcA,CAACL,KAAa,EAAW;IACrC,MAAMM,QAAQ,GAAI,IAAI,CAACR,OAAO,EAAEE,KAAK,IAAI,MAA8B;IAEvE,OAAOA,KAAK,IAAIb,MAAM,IAAImB,QAAQ,IAAInB,MAAM,IACvCA,MAAM,CAACa,KAAK,CAAwB,IAAIb,MAAM,CAACmB,QAAQ,CAAC;EAC/D;AACF","ignoreList":[]}
1
+ {"version":3,"file":"BaseLogger.js","names":["noop","levels","trace","debug","info","warn","error","fatal","BaseLogger","factory","constructor","bindings","options","k","level","isLevelEnabled","createLogMethod","child","msgPrefix","filter","x","join","ourLevel"],"sources":["BaseLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { Logger } from \"@osdk/api\";\nimport type { LogFn } from \"./Logger.js\";\n\nexport function noop(): any {\n}\n\ninterface LoggerConstructor {\n new(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger;\n}\n\nconst levels = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n fatal: 60,\n};\n\nexport abstract class BaseLogger implements Logger {\n protected bindings: Record<string, any>;\n protected options: { level?: string; msgPrefix?: string } | undefined;\n #factory: LoggerConstructor;\n\n constructor(\n bindings: Record<string, any>,\n options: { level?: string; msgPrefix?: string } = {},\n factory: LoggerConstructor,\n ) {\n this.bindings = bindings;\n this.options = options;\n this.#factory = factory;\n\n for (\n const k of [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"] as const\n ) {\n if (this.options?.level && !this.isLevelEnabled(k)) {\n continue;\n }\n this[k] = this.createLogMethod(k, bindings);\n }\n }\n\n protected abstract createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): LogFn;\n\n trace: LogFn = noop;\n debug: LogFn = noop;\n warn: LogFn = noop;\n info: LogFn = noop;\n error: LogFn = noop;\n fatal: LogFn = noop;\n\n child(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n ): Logger {\n return new this.#factory({\n ...this.bindings,\n ...bindings,\n }, {\n level: (options ?? this.options)?.level,\n msgPrefix: [this.options?.msgPrefix, options?.msgPrefix].filter(x => x)\n .join(\" \"),\n });\n }\n\n isLevelEnabled(level: string): boolean {\n const ourLevel = (this.options?.level ?? \"info\") as keyof typeof levels;\n\n return level in levels && ourLevel in levels\n && levels[level as keyof typeof levels] >= levels[ourLevel];\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASA,IAAIA,CAAA,EAAQ,CAC5B;AASA,MAAMC,MAAM,GAAG;EACbC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAeC,UAAU,CAAmB;EAGjD,CAACC,OAAO;EAERC,WAAWA,CACTC,QAA6B,EAC7BC,OAA+C,GAAG,CAAC,CAAC,EACpDH,OAA0B,EAC1B;IACA,IAAI,CAACE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC,CAACH,OAAO,GAAGA,OAAO;IAEvB,KACE,MAAMI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC/D;MACA,IAAI,IAAI,CAACD,OAAO,EAAEE,KAAK,IAAI,CAAC,IAAI,CAACC,cAAc,CAACF,CAAC,CAAC,EAAE;QAClD;MACF;MACA,IAAI,CAACA,CAAC,CAAC,GAAG,IAAI,CAACG,eAAe,CAACH,CAAC,EAAEF,QAAQ,CAAC;IAC7C;EACF;EAOAT,KAAK,GAAUF,IAAI;EACnBG,KAAK,GAAUH,IAAI;EACnBK,IAAI,GAAUL,IAAI;EAClBI,IAAI,GAAUJ,IAAI;EAClBM,KAAK,GAAUN,IAAI;EACnBO,KAAK,GAAUP,IAAI;EAEnBiB,KAAKA,CACHN,QAA6B,EAC7BC,OAAgD,EACxC;IACR,OAAO,IAAI,IAAI,CAAC,CAACH,OAAO,CAAC;MACvB,GAAG,IAAI,CAACE,QAAQ;MAChB,GAAGA;IACL,CAAC,EAAE;MACDG,KAAK,EAAE,CAACF,OAAO,IAAI,IAAI,CAACA,OAAO,GAAGE,KAAK;MACvCI,SAAS,EAAE,CAAC,IAAI,CAACN,OAAO,EAAEM,SAAS,EAAEN,OAAO,EAAEM,SAAS,CAAC,CAACC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAAC,CACpEC,IAAI,CAAC,GAAG;IACb,CAAC,CAAC;EACJ;EAEAN,cAAcA,CAACD,KAAa,EAAW;IACrC,MAAMQ,QAAQ,GAAI,IAAI,CAACV,OAAO,EAAEE,KAAK,IAAI,MAA8B;IAEvE,OAAOA,KAAK,IAAIb,MAAM,IAAIqB,QAAQ,IAAIrB,MAAM,IACvCA,MAAM,CAACa,KAAK,CAAwB,IAAIb,MAAM,CAACqB,QAAQ,CAAC;EAC/D;AACF","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { BaseLogger } from "./BaseLogger.js";
18
+ function createStyle({
19
+ color
20
+ }) {
21
+ return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;
22
+ }
23
+ const levelStyles = {
24
+ debug: createStyle({
25
+ color: "LightBlue"
26
+ }),
27
+ error: createStyle({
28
+ color: "red"
29
+ }),
30
+ fatal: createStyle({
31
+ color: "red"
32
+ }),
33
+ info: createStyle({
34
+ color: "green"
35
+ }),
36
+ trace: createStyle({
37
+ color: "gray"
38
+ }),
39
+ warn: createStyle({
40
+ color: "orange"
41
+ })
42
+ };
43
+ export class BrowserLogger extends BaseLogger {
44
+ constructor(bindings = {}, options = {}) {
45
+ super(bindings, {
46
+ ...options,
47
+ level: options.level ?? "error"
48
+ }, BrowserLogger);
49
+ }
50
+ createLogMethod(name, bindings) {
51
+ const msgs = [`%c${name}%c`];
52
+ const styles = [levelStyles[name], ""];
53
+ if (this.options?.msgPrefix) {
54
+ msgs.push(`%c${this.options.msgPrefix}%c`);
55
+ styles.push("font-style: italic; color: gray", "");
56
+ }
57
+ if (typeof bindings === "object" && "methodName" in bindings) {
58
+ msgs.push(`%c.${bindings.methodName}()%c`);
59
+ styles.push("font-style: italic;color: orchid", "");
60
+ }
61
+ return (...args) => {
62
+ // eslint-disable-next-line no-console
63
+ console[name === "fatal" ? "error" : name](msgs.join(" "), ...styles, ...args);
64
+ };
65
+ }
66
+ }
67
+ //# sourceMappingURL=BrowserLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserLogger.js","names":["BaseLogger","createStyle","color","levelStyles","debug","error","fatal","info","trace","warn","BrowserLogger","constructor","bindings","options","level","createLogMethod","name","msgs","styles","msgPrefix","push","methodName","args","console","join"],"sources":["BrowserLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { Logger } from \"@osdk/api\";\nimport { BaseLogger } from \"./BaseLogger.js\";\nimport type { LogFn } from \"./Logger.js\";\n\nfunction createStyle({ color }: { color: string }) {\n return `color: ${color}; border: 1px solid ${color}; padding: 2px; border-radius: 3px;`;\n}\n\nconst levelStyles = {\n debug: createStyle({\n color: \"LightBlue\",\n }),\n error: createStyle({\n color: \"red\",\n }),\n fatal: createStyle({\n color: \"red\",\n }),\n info: createStyle({\n color: \"green\",\n }),\n trace: createStyle({\n color: \"gray\",\n }),\n warn: createStyle({\n color: \"orange\",\n }),\n};\n\nexport class BrowserLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n BrowserLogger,\n );\n }\n\n protected createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): LogFn {\n const msgs: string[] = [`%c${name}%c`];\n const styles: string[] = [levelStyles[name], \"\"];\n\n if (this.options?.msgPrefix) {\n msgs.push(`%c${this.options.msgPrefix}%c`);\n styles.push(\n \"font-style: italic; color: gray\",\n \"\",\n );\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`%c.${bindings.methodName}()%c`);\n styles.push(\n \"font-style: italic;color: orchid\",\n \"\",\n );\n }\n\n return (...args: any[]): any => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](\n msgs.join(\" \"),\n ...styles,\n ...args,\n );\n };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,UAAU,QAAQ,iBAAiB;AAG5C,SAASC,WAAWA,CAAC;EAAEC;AAAyB,CAAC,EAAE;EACjD,OAAO,UAAUA,KAAK,uBAAuBA,KAAK,qCAAqC;AACzF;AAEA,MAAMC,WAAW,GAAG;EAClBC,KAAK,EAAEH,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFG,KAAK,EAAEJ,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFI,KAAK,EAAEL,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFK,IAAI,EAAEN,WAAW,CAAC;IAChBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFM,KAAK,EAAEP,WAAW,CAAC;IACjBC,KAAK,EAAE;EACT,CAAC,CAAC;EACFO,IAAI,EAAER,WAAW,CAAC;IAChBC,KAAK,EAAE;EACT,CAAC;AACH,CAAC;AAED,OAAO,MAAMQ,aAAa,SAASV,UAAU,CAAmB;EAC9DW,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,aACF,CAAC;EACH;EAEUK,eAAeA,CACvBC,IAA6D,EAC7DJ,QAA6B,EACtB;IACP,MAAMK,IAAc,GAAG,CAAC,KAAKD,IAAI,IAAI,CAAC;IACtC,MAAME,MAAgB,GAAG,CAACf,WAAW,CAACa,IAAI,CAAC,EAAE,EAAE,CAAC;IAEhD,IAAI,IAAI,CAACH,OAAO,EAAEM,SAAS,EAAE;MAC3BF,IAAI,CAACG,IAAI,CAAC,KAAK,IAAI,CAACP,OAAO,CAACM,SAAS,IAAI,CAAC;MAC1CD,MAAM,CAACE,IAAI,CACT,iCAAiC,EACjC,EACF,CAAC;IACH;IAEA,IAAI,OAAOR,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACG,IAAI,CAAC,MAAMR,QAAQ,CAACS,UAAU,MAAM,CAAC;MAC1CH,MAAM,CAACE,IAAI,CACT,kCAAkC,EAClC,EACF,CAAC;IACH;IAEA,OAAO,CAAC,GAAGE,IAAW,KAAU;MAC9B;MACAC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CACxCC,IAAI,CAACO,IAAI,CAAC,GAAG,CAAC,EACd,GAAGN,MAAM,EACT,GAAGI,IACL,CAAC;IACH,CAAC;EACH;AACF","ignoreList":[0]}
@@ -15,27 +15,25 @@
15
15
  */
16
16
 
17
17
  import { BaseLogger } from "./BaseLogger.js";
18
- function createLogMethod(name, bindings, options) {
19
- const msgs = [name];
20
- if (options?.msgPrefix) {
21
- msgs.push(options.msgPrefix);
22
- }
23
- if (typeof bindings === "object" && "methodName" in bindings) {
24
- msgs.push(`.${bindings.methodName}()`);
25
- }
26
-
27
- // eslint-disable-next-line no-console
28
- return console[name === "fatal" ? "error" : name].bind(console, msgs.join(" "));
29
- }
30
18
  export class MinimalLogger extends BaseLogger {
31
19
  constructor(bindings = {}, options = {}) {
32
20
  super(bindings, {
33
21
  ...options,
34
22
  level: options.level ?? "error"
35
23
  }, MinimalLogger);
36
- for (const k of ["trace", "debug", "info", "warn", "error", "fatal"]) {
37
- this[k] = createLogMethod(k, bindings, options);
24
+ }
25
+ createLogMethod(name, bindings) {
26
+ const msgs = [name];
27
+ if (this.options?.msgPrefix) {
28
+ msgs.push(this.options.msgPrefix);
29
+ }
30
+ if (typeof bindings === "object" && "methodName" in bindings) {
31
+ msgs.push(`.${bindings.methodName}()`);
38
32
  }
33
+ return (...args) => {
34
+ // eslint-disable-next-line no-console
35
+ console[name === "fatal" ? "error" : name](msgs.join(" "), ...args);
36
+ };
39
37
  }
40
38
  }
41
39
  //# sourceMappingURL=MinimalLogger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MinimalLogger.js","names":["BaseLogger","createLogMethod","name","bindings","options","msgs","msgPrefix","push","methodName","console","bind","join","MinimalLogger","constructor","level","k"],"sources":["MinimalLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { BaseLogger } from \"./BaseLogger.js\";\nimport type { LogFn, Logger } from \"./Logger.js\";\n\nfunction createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n options: { level?: string; msgPrefix?: string },\n): LogFn {\n const msgs: string[] = [name];\n\n if (options?.msgPrefix) {\n msgs.push(options.msgPrefix);\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`.${bindings.methodName}()`);\n }\n\n // eslint-disable-next-line no-console\n return console[name === \"fatal\" ? \"error\" : name].bind(\n console,\n msgs.join(\" \"),\n );\n}\n\nexport class MinimalLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n MinimalLogger,\n );\n\n for (\n const k of [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"] as const\n ) {\n this[k] = createLogMethod(k, bindings, options);\n }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,QAAQ,iBAAiB;AAG5C,SAASC,eAAeA,CACtBC,IAA6D,EAC7DC,QAA6B,EAC7BC,OAA+C,EACxC;EACP,MAAMC,IAAc,GAAG,CAACH,IAAI,CAAC;EAE7B,IAAIE,OAAO,EAAEE,SAAS,EAAE;IACtBD,IAAI,CAACE,IAAI,CAACH,OAAO,CAACE,SAAS,CAAC;EAC9B;EAEA,IAAI,OAAOH,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;IAC5DE,IAAI,CAACE,IAAI,CAAC,IAAIJ,QAAQ,CAACK,UAAU,IAAI,CAAC;EACxC;;EAEA;EACA,OAAOC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACQ,IAAI,CACpDD,OAAO,EACPJ,IAAI,CAACM,IAAI,CAAC,GAAG,CACf,CAAC;AACH;AAEA,OAAO,MAAMC,aAAa,SAASZ,UAAU,CAAmB;EAC9Da,WAAWA,CACTV,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEU,KAAK,EAAEV,OAAO,CAACU,KAAK,IAAI;IAAQ,CAAC,EAC/CF,aACF,CAAC;IAED,KACE,MAAMG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC/D;MACA,IAAI,CAACA,CAAC,CAAC,GAAGd,eAAe,CAACc,CAAC,EAAEZ,QAAQ,EAAEC,OAAO,CAAC;IACjD;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"MinimalLogger.js","names":["BaseLogger","MinimalLogger","constructor","bindings","options","level","createLogMethod","name","msgs","msgPrefix","push","methodName","args","console","join"],"sources":["MinimalLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { BaseLogger } from \"./BaseLogger.js\";\nimport type { LogFn, Logger } from \"./Logger.js\";\n\nexport class MinimalLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n MinimalLogger,\n );\n }\n\n createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): LogFn {\n const msgs: string[] = [name];\n\n if (this.options?.msgPrefix) {\n msgs.push(this.options.msgPrefix);\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(`.${bindings.methodName}()`);\n }\n\n return (...args: any[]) => {\n // eslint-disable-next-line no-console\n console[name === \"fatal\" ? \"error\" : name](msgs.join(\" \"), ...args);\n };\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,QAAQ,iBAAiB;AAG5C,OAAO,MAAMC,aAAa,SAASD,UAAU,CAAmB;EAC9DE,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,aACF,CAAC;EACH;EAEAK,eAAeA,CACbC,IAA6D,EAC7DJ,QAA6B,EACtB;IACP,MAAMK,IAAc,GAAG,CAACD,IAAI,CAAC;IAE7B,IAAI,IAAI,CAACH,OAAO,EAAEK,SAAS,EAAE;MAC3BD,IAAI,CAACE,IAAI,CAAC,IAAI,CAACN,OAAO,CAACK,SAAS,CAAC;IACnC;IAEA,IAAI,OAAON,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACE,IAAI,CAAC,IAAIP,QAAQ,CAACQ,UAAU,IAAI,CAAC;IACxC;IAEA,OAAO,CAAC,GAAGC,IAAW,KAAK;MACzB;MACAC,OAAO,CAACN,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACC,IAAI,CAACM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAGF,IAAI,CAAC;IACrE,CAAC;EACH;AACF","ignoreList":[0]}
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { beforeEach, describe, expect, it, vi } from "vitest";
18
+ import { MinimalLogger } from "./MinimalLogger.js";
19
+ const orderedLevels = ["trace", "debug", "info", "warn", "error", "fatal"];
20
+ describe(MinimalLogger, () => {
21
+ const consoleMocks = Object.fromEntries(["log", "error", "warn", "trace"].map(name => [name, vi.spyOn(console, name)]));
22
+ beforeEach(() => {
23
+ for (const consoleMock of Object.values(consoleMocks)) {
24
+ consoleMock.mockClear();
25
+ }
26
+ });
27
+ it("does not debug log by default", () => {
28
+ const logger = new MinimalLogger();
29
+ logger.debug("hi");
30
+ for (const consoleMock of Object.values(consoleMocks)) {
31
+ expect(consoleMock).not.toHaveBeenCalled();
32
+ }
33
+ });
34
+ it("can log", () => {
35
+ new MinimalLogger({}, {});
36
+ });
37
+ describe.for(orderedLevels)("For level %s", level => {
38
+ const idx = orderedLevels.findIndex(a => a === level);
39
+ expect(idx).toBeGreaterThan(-1);
40
+ const shouldNotOutput = orderedLevels.slice(0, idx);
41
+ const shouldOutput = orderedLevels.slice(idx);
42
+ const x = [...shouldNotOutput.map(x => [x, false]), ...shouldOutput.map(x => [x, true])];
43
+ it.for(x)("It should log for %s? %s", ([levelToCheck, shouldLog]) => {
44
+ const logger = new MinimalLogger({}, {
45
+ level
46
+ });
47
+ logger[levelToCheck]("logging");
48
+ let calls = 0;
49
+ for (const consoleMock of Object.values(consoleMocks)) {
50
+ calls += consoleMock.mock.calls.length;
51
+ }
52
+ if (shouldLog) {
53
+ expect(calls === 1, `Should log one time but got ${calls}`);
54
+ } else {
55
+ expect(calls === 0, "should not call console.thing");
56
+ }
57
+ });
58
+ });
59
+ });
60
+ //# sourceMappingURL=MinimalLogger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinimalLogger.test.js","names":["beforeEach","describe","expect","it","vi","MinimalLogger","orderedLevels","consoleMocks","Object","fromEntries","map","name","spyOn","console","consoleMock","values","mockClear","logger","debug","not","toHaveBeenCalled","for","level","idx","findIndex","a","toBeGreaterThan","shouldNotOutput","slice","shouldOutput","x","levelToCheck","shouldLog","calls","mock","length"],"sources":["MinimalLogger.test.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { MockInstance } from \"vitest\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { MinimalLogger } from \"./MinimalLogger.js\";\n\nconst orderedLevels = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\",\n \"fatal\",\n] as const;\n\ndescribe(MinimalLogger, () => {\n const consoleTypes = [\"log\", \"error\", \"warn\", \"trace\"] as const;\n type consoleTypes = typeof consoleTypes[number];\n\n const consoleMocks = Object.fromEntries(\n consoleTypes.map(name =>\n [name, vi.spyOn(console, name)] as [consoleTypes, MockInstance<any>]\n ),\n ) as Record<\n typeof consoleTypes[number],\n MockInstance<any>\n >;\n\n beforeEach(() => {\n for (const consoleMock of Object.values(consoleMocks)) {\n consoleMock.mockClear();\n }\n });\n\n it(\"does not debug log by default\", () => {\n const logger = new MinimalLogger();\n logger.debug(\"hi\");\n\n for (const consoleMock of Object.values(consoleMocks)) {\n expect(consoleMock).not.toHaveBeenCalled();\n }\n });\n\n it(\"can log\", () => {\n new MinimalLogger({}, {});\n });\n\n describe.for(orderedLevels)(\"For level %s\", (level) => {\n const idx = orderedLevels.findIndex(a => a === level);\n expect(idx).toBeGreaterThan(-1);\n\n const shouldNotOutput = orderedLevels.slice(0, idx);\n const shouldOutput = orderedLevels.slice(idx);\n\n const x = [\n ...shouldNotOutput.map(x => [x, false] as const),\n ...shouldOutput.map(x => [x, true] as const),\n ];\n\n it.for(x)(\"It should log for %s? %s\", ([levelToCheck, shouldLog]) => {\n const logger = new MinimalLogger({}, { level });\n\n logger[levelToCheck](\"logging\");\n\n let calls = 0;\n\n for (const consoleMock of Object.values(consoleMocks)) {\n calls += consoleMock.mock.calls.length;\n }\n\n if (shouldLog) {\n expect(calls === 1, `Should log one time but got ${calls}`);\n } else {\n expect(calls === 0, \"should not call console.thing\");\n }\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -39,14 +39,11 @@ export class TestLogger extends BaseLogger {
39
39
  ...options,
40
40
  level: options.level ?? "error"
41
41
  }, TestLogger);
42
- for (const k of ["trace", "debug", "info", "warn", "error", "fatal"]) {
43
- this[k] = this.#createLogMethod(k, bindings, options);
44
- }
45
42
  }
46
- #createLogMethod(name, bindings, options) {
43
+ createLogMethod(name, bindings) {
47
44
  const msgs = [colors[name][1](name)];
48
- if (options?.msgPrefix) {
49
- msgs.push(colors[name][0](options.msgPrefix));
45
+ if (this.options?.msgPrefix) {
46
+ msgs.push(colors[name][0](this.options.msgPrefix));
50
47
  }
51
48
  if (typeof bindings === "object" && "methodName" in bindings) {
52
49
  msgs.push(chalk.magenta(`.${bindings.methodName}()`));
@@ -1 +1 @@
1
- {"version":3,"file":"TestLogger.js","names":["Chalk","vi","BaseLogger","chalk","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","yellow","bgYellow","fatal","redBright","bgRedBright","TestLogger","constructor","bindings","options","level","k","createLogMethod","#createLogMethod","name","msgs","msgPrefix","push","magenta","methodName","fn","console","bind","join"],"sources":["TestLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { Chalk } from \"chalk\";\nimport { vi } from \"vitest\";\nimport { BaseLogger } from \"./BaseLogger.js\";\nimport type { LogFn, Logger } from \"./Logger.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nconst colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n} as const;\n\n/**\n * A logger suitable for using in unit tests.\n * - It uses chalk for colors (Node and browser console.log supports)\n * - Does not rely on async behavior of `pino`.\n */\nexport class TestLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n TestLogger,\n );\n\n for (\n const k of [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"] as const\n ) {\n this[k] = this.#createLogMethod(k, bindings, options);\n }\n }\n\n #createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n options: { level?: string; msgPrefix?: string },\n ): LogFn {\n const msgs: string[] = [colors[name][1](name)];\n\n if (options?.msgPrefix) {\n msgs.push(colors[name][0](options.msgPrefix));\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(chalk.magenta(`.${bindings.methodName}()`));\n }\n\n // eslint-disable-next-line no-console\n return vi.fn<LogFn>(console[name === \"fatal\" ? \"error\" : name].bind(\n console,\n msgs.join(\" \"),\n )) as LogFn;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,OAAO;AAC7B,SAASC,EAAE,QAAQ,QAAQ;AAC3B,SAASC,UAAU,QAAQ,iBAAiB;AAG5C,MAAMC,KAAK,GAAG,IAAIH,KAAK,CAAC,CAAC,CAAC,CAAC;;AAE3B,MAAMI,MAAM,GAAG;EACbC,KAAK,EAAE,CAACF,KAAK,CAACG,IAAI,EAAEH,KAAK,CAACI,MAAM,CAAC;EACjCC,IAAI,EAAE,CAACL,KAAK,CAACM,KAAK,EAAEN,KAAK,CAACO,OAAO,CAAC;EAClCC,KAAK,EAAE,CAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACU,MAAM,CAAC;EACjCC,KAAK,EAAE,CAACX,KAAK,CAACY,GAAG,EAAEZ,KAAK,CAACa,KAAK,CAAC;EAC/BC,IAAI,EAAE,CAACd,KAAK,CAACe,MAAM,EAAEf,KAAK,CAACgB,QAAQ,CAAC;EACpCC,KAAK,EAAE,CAACjB,KAAK,CAACkB,SAAS,EAAElB,KAAK,CAACmB,WAAW;AAC5C,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,SAASrB,UAAU,CAAmB;EAC3DsB,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,UACF,CAAC;IAED,KACE,MAAMK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAC/D;MACA,IAAI,CAACA,CAAC,CAAC,GAAG,IAAI,CAAC,CAACC,eAAe,CAACD,CAAC,EAAEH,QAAQ,EAAEC,OAAO,CAAC;IACvD;EACF;EAEA,CAACG,eAAeC,CACdC,IAA6D,EAC7DN,QAA6B,EAC7BC,OAA+C,EACxC;IACP,MAAMM,IAAc,GAAG,CAAC5B,MAAM,CAAC2B,IAAI,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,CAAC;IAE9C,IAAIL,OAAO,EAAEO,SAAS,EAAE;MACtBD,IAAI,CAACE,IAAI,CAAC9B,MAAM,CAAC2B,IAAI,CAAC,CAAC,CAAC,CAAC,CAACL,OAAO,CAACO,SAAS,CAAC,CAAC;IAC/C;IAEA,IAAI,OAAOR,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DO,IAAI,CAACE,IAAI,CAAC/B,KAAK,CAACgC,OAAO,CAAC,IAAIV,QAAQ,CAACW,UAAU,IAAI,CAAC,CAAC;IACvD;;IAEA;IACA,OAAOnC,EAAE,CAACoC,EAAE,CAAQC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACQ,IAAI,CACjED,OAAO,EACPN,IAAI,CAACQ,IAAI,CAAC,GAAG,CACf,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
1
+ {"version":3,"file":"TestLogger.js","names":["Chalk","vi","BaseLogger","chalk","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","yellow","bgYellow","fatal","redBright","bgRedBright","TestLogger","constructor","bindings","options","level","createLogMethod","name","msgs","msgPrefix","push","magenta","methodName","fn","console","bind","join"],"sources":["TestLogger.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { Chalk } from \"chalk\";\nimport { vi } from \"vitest\";\nimport { BaseLogger } from \"./BaseLogger.js\";\nimport type { LogFn, Logger } from \"./Logger.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nconst colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n} as const;\n\n/**\n * A logger suitable for using in unit tests.\n * - It uses chalk for colors (Node and browser console.log supports)\n * - Does not rely on async behavior of `pino`.\n */\nexport class TestLogger extends BaseLogger implements Logger {\n constructor(\n bindings: Record<string, any> = {},\n options: { level?: string; msgPrefix?: string } = {},\n ) {\n super(\n bindings,\n { ...options, level: options.level ?? \"error\" },\n TestLogger,\n );\n }\n\n protected createLogMethod(\n name: \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\",\n bindings: Record<string, any>,\n ): LogFn {\n const msgs: string[] = [colors[name][1](name)];\n\n if (this.options?.msgPrefix) {\n msgs.push(colors[name][0](this.options.msgPrefix));\n }\n\n if (typeof bindings === \"object\" && \"methodName\" in bindings) {\n msgs.push(chalk.magenta(`.${bindings.methodName}()`));\n }\n\n // eslint-disable-next-line no-console\n return vi.fn<LogFn>(console[name === \"fatal\" ? \"error\" : name].bind(\n console,\n msgs.join(\" \"),\n )) as LogFn;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,OAAO;AAC7B,SAASC,EAAE,QAAQ,QAAQ;AAC3B,SAASC,UAAU,QAAQ,iBAAiB;AAG5C,MAAMC,KAAK,GAAG,IAAIH,KAAK,CAAC,CAAC,CAAC,CAAC;;AAE3B,MAAMI,MAAM,GAAG;EACbC,KAAK,EAAE,CAACF,KAAK,CAACG,IAAI,EAAEH,KAAK,CAACI,MAAM,CAAC;EACjCC,IAAI,EAAE,CAACL,KAAK,CAACM,KAAK,EAAEN,KAAK,CAACO,OAAO,CAAC;EAClCC,KAAK,EAAE,CAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACU,MAAM,CAAC;EACjCC,KAAK,EAAE,CAACX,KAAK,CAACY,GAAG,EAAEZ,KAAK,CAACa,KAAK,CAAC;EAC/BC,IAAI,EAAE,CAACd,KAAK,CAACe,MAAM,EAAEf,KAAK,CAACgB,QAAQ,CAAC;EACpCC,KAAK,EAAE,CAACjB,KAAK,CAACkB,SAAS,EAAElB,KAAK,CAACmB,WAAW;AAC5C,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,SAASrB,UAAU,CAAmB;EAC3DsB,WAAWA,CACTC,QAA6B,GAAG,CAAC,CAAC,EAClCC,OAA+C,GAAG,CAAC,CAAC,EACpD;IACA,KAAK,CACHD,QAAQ,EACR;MAAE,GAAGC,OAAO;MAAEC,KAAK,EAAED,OAAO,CAACC,KAAK,IAAI;IAAQ,CAAC,EAC/CJ,UACF,CAAC;EACH;EAEUK,eAAeA,CACvBC,IAA6D,EAC7DJ,QAA6B,EACtB;IACP,MAAMK,IAAc,GAAG,CAAC1B,MAAM,CAACyB,IAAI,CAAC,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,CAAC;IAE9C,IAAI,IAAI,CAACH,OAAO,EAAEK,SAAS,EAAE;MAC3BD,IAAI,CAACE,IAAI,CAAC5B,MAAM,CAACyB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAACH,OAAO,CAACK,SAAS,CAAC,CAAC;IACpD;IAEA,IAAI,OAAON,QAAQ,KAAK,QAAQ,IAAI,YAAY,IAAIA,QAAQ,EAAE;MAC5DK,IAAI,CAACE,IAAI,CAAC7B,KAAK,CAAC8B,OAAO,CAAC,IAAIR,QAAQ,CAACS,UAAU,IAAI,CAAC,CAAC;IACvD;;IAEA;IACA,OAAOjC,EAAE,CAACkC,EAAE,CAAQC,OAAO,CAACP,IAAI,KAAK,OAAO,GAAG,OAAO,GAAGA,IAAI,CAAC,CAACQ,IAAI,CACjED,OAAO,EACPN,IAAI,CAACQ,IAAI,CAAC,GAAG,CACf,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
@@ -33,8 +33,6 @@ import { createOsdkObject } from "./convertWireToOsdkObjects/createOsdkObject.js
33
33
  * @param interfaceApiName - if undefined
34
34
  */
35
35
  export async function convertWireToOsdkObjects(client, objects, interfaceApiName, forceRemoveRid = false, derivedPropertyTypesByName, selectedProps, strictNonNull = false) {
36
- client.logger?.debug(`START convertWireToOsdkObjects()`);
37
-
38
36
  // remove the __ prefixed properties and convert them to $ prefixed.
39
37
  // updates in place
40
38
  fixObjectPropertiesInPlace(objects, forceRemoveRid);
@@ -67,14 +65,12 @@ export async function convertWireToOsdkObjects(client, objects, interfaceApiName
67
65
  if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);
68
66
  ret.push(osdkObject);
69
67
  }
70
- client.logger?.debug(`END convertWireToOsdkObjects()`);
71
68
  return ret;
72
69
  }
73
70
  /**
74
71
  * @internal
75
72
  */
76
73
  export async function convertWireToOsdkObjects2(client, objects, interfaceApiName, derivedPropertyTypeByName, forceRemoveRid = false, selectedProps, strictNonNull = false, interfaceToObjectTypeMappings = {}) {
77
- client.logger?.debug(`START convertWireToOsdkObjects2()`);
78
74
  fixObjectPropertiesInPlace(objects, forceRemoveRid);
79
75
  const ret = [];
80
76
  for (const rawObj of objects) {
@@ -104,7 +100,6 @@ export async function convertWireToOsdkObjects2(client, objects, interfaceApiNam
104
100
  if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);
105
101
  ret.push(osdkObject);
106
102
  }
107
- client.logger?.debug(`END convertWireToOsdkObjects2()`);
108
103
  return ret;
109
104
  }
110
105
 
@@ -1 +1 @@
1
- {"version":3,"file":"convertWireToOsdkObjects.js","names":["invariant","createOsdkObject","convertWireToOsdkObjects","client","objects","interfaceApiName","forceRemoveRid","derivedPropertyTypesByName","selectedProps","strictNonNull","logger","debug","fixObjectPropertiesInPlace","ifaceDef","ontologyProvider","getInterfaceDefinition","undefined","ifaceSelected","Object","keys","properties","ret","rawObj","objectDef","getObjectDefinition","$apiName","process","env","NODE_ENV","objProps","conforming","invariantInterfacesAsViews","apiName","isConforming","reframeAsObjectInPlace","convertInterfacePropNamesToObjectPropNames","Error","osdkObject","$as","push","convertWireToOsdkObjects2","derivedPropertyTypeByName","interfaceToObjectTypeMappings","interfaceToObjMapping","filter","val","includes","values","primaryKeyApiName","ifacePropsToMap","map","ifaceProp","interfaceMap","newProps","sptProp","regularProp","entries","value","assign","$primaryKey","def","obj","propsToCheck","propName","nullable","$objectType","warning","warn","console","error","objs","__rid","$rid","__apiName","__primaryKey","$title","__title"],"sources":["convertWireToOsdkObjects.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 {\n InterfaceMetadata,\n NullabilityAdherence,\n ObjectMetadata,\n} from \"@osdk/api\";\nimport type {\n InterfaceToObjectTypeMappings,\n InterfaceTypeApiName,\n OntologyObjectV2,\n} from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n type FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\nimport type { InterfaceHolder } from \"./convertWireToOsdkObjects/InterfaceHolder.js\";\nimport type { ObjectHolder } from \"./convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"./SimpleOsdkProperties.js\";\n\n/**\n * If interfaceApiName is not undefined, converts the instances of the\n * interface into their respective\n * underlying concrete types and then returns the $as() representation\n * for the consumers.\n *\n * Otherwise just does the conversion\n *\n * May mutate in place for performance reasons. If you need a clean copy,\n * keep it first.\n *\n * However, you must use the returned value, which will be whatever is correct.\n *\n * @internal\n * @param interfaceApiName - if undefined\n */\nexport async function convertWireToOsdkObjects(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n forceRemoveRid: boolean = false,\n derivedPropertyTypesByName: Record<\n string,\n ObjectMetadata.Property\n >,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n client.logger?.debug(`START convertWireToOsdkObjects()`);\n\n // remove the __ prefixed properties and convert them to $ prefixed.\n // updates in place\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ifaceDef = interfaceApiName\n ? await client.ontologyProvider.getInterfaceDefinition(interfaceApiName)\n : undefined;\n const ifaceSelected = ifaceDef\n ? (selectedProps ?? Object.keys(ifaceDef.properties))\n : undefined;\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (ifaceDef && ifaceSelected) {\n // API returns interface spt names but we cache by real values\n invariantInterfacesAsViews(objectDef, ifaceDef.apiName, client);\n\n conforming &&= isConforming(client, ifaceDef, rawObj, ifaceSelected);\n\n reframeAsObjectInPlace(objectDef, ifaceDef.apiName, rawObj);\n\n objProps = convertInterfacePropNamesToObjectPropNames(\n objectDef,\n ifaceDef.apiName,\n ifaceSelected,\n );\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypesByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n client.logger?.debug(`END convertWireToOsdkObjects()`);\n return ret;\n}\n\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<InterfaceHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder | InterfaceHolder>>;\n/**\n * @internal\n */\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid: boolean = false,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n interfaceToObjectTypeMappings: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n > = {},\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n client.logger?.debug(`START convertWireToOsdkObjects2()`);\n\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n const interfaceToObjMapping = interfaceApiName\n ? interfaceToObjectTypeMappings[interfaceApiName as InterfaceTypeApiName][\n rawObj.$apiName\n ]\n : undefined;\n\n const ifaceSelected = interfaceApiName && interfaceToObjMapping\n ? (selectedProps\n ? Object.keys(interfaceToObjMapping).filter(\n val => {\n selectedProps?.includes(interfaceToObjMapping[val]);\n },\n )\n : [\n ...Object.values(interfaceToObjMapping),\n objectDef.primaryKeyApiName,\n ])\n : undefined;\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (interfaceApiName && ifaceSelected) {\n invariantInterfacesAsViews(objectDef, interfaceApiName, client);\n\n objProps = ifaceSelected;\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypeByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n client.logger?.debug(`END convertWireToOsdkObjects2()`);\n return ret;\n}\n\n/**\n * @internal\n *\n * Utility function that lets us take down selected property names from an interface\n * and convert them to an array of property names on an object.\n */\nexport function convertInterfacePropNamesToObjectPropNames(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n ifacePropsToMap: readonly string[],\n): string[] {\n return ifacePropsToMap.map((ifaceProp) =>\n objectDef.interfaceMap[interfaceApiName][ifaceProp]\n );\n}\n\n/**\n * Takes a raw object from the wire (contextually as an interface) and\n * updates the fields to reflect the underlying objectDef instead\n * @param objectDef\n * @param interfaceApiName\n * @param client\n * @param rawObj\n */\nfunction reframeAsObjectInPlace(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n rawObj: OntologyObjectV2,\n) {\n const newProps: Record<string, any> = {};\n for (\n const [sptProp, regularProp] of Object.entries(\n objectDef.interfaceMap[interfaceApiName],\n )\n ) {\n if (sptProp in rawObj) {\n const value = rawObj[sptProp];\n delete rawObj[sptProp];\n if (value !== undefined) {\n newProps[regularProp] = value;\n }\n }\n }\n Object.assign(rawObj, newProps);\n\n if (!(objectDef.primaryKeyApiName in rawObj)) {\n rawObj[objectDef.primaryKeyApiName] = rawObj.$primaryKey;\n }\n}\n\nfunction isConforming(\n client: MinimalClient,\n def:\n | InterfaceMetadata\n | ObjectMetadata,\n obj: OntologyObjectV2,\n propsToCheck: readonly string[],\n) {\n for (const propName of propsToCheck) {\n if (\n propName in def.properties && def.properties[propName].nullable === false\n && obj[propName] == null\n ) {\n if (process.env.NODE_ENV !== \"production\") {\n client.logger?.debug(\n {\n obj: {\n $apiName: obj[\"$apiName\"],\n $objectType: obj[\"$objectType\"],\n $primaryKey: obj[\"$primaryKey\"],\n },\n },\n `Found object that does not conform to its definition. Expected ${def.apiName}'s ${propName} to not be null.`,\n );\n }\n return false;\n }\n }\n return true;\n}\n\nfunction invariantInterfacesAsViews(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n client: MinimalClient,\n): asserts objectDef is typeof objectDef & { interfaceMap: {} } {\n if (objectDef.interfaceMap?.[interfaceApiName] == null) {\n const warning =\n \"Interfaces are only supported 'as views' but your metadata object is missing the correct information. This suggests your interfaces have not been migrated to the newer version yet and you cannot use this version of the SDK.\";\n if (client.logger) {\n client.logger.warn(warning);\n } else {\n // eslint-disable-next-line no-console\n console.error(`WARNING! ${warning}`);\n }\n throw new Error(warning);\n }\n}\n\nfunction fixObjectPropertiesInPlace(\n objs: OntologyObjectV2[],\n forceRemoveRid: boolean,\n): asserts objs is SimpleOsdkProperties[] {\n for (const obj of objs) {\n if (forceRemoveRid) {\n delete obj.__rid;\n }\n\n if (obj.__rid) {\n obj.$rid = obj.__rid;\n delete obj.__rid;\n }\n\n // Backend returns as __apiName but we want to stick to $ structure\n obj.$apiName ??= obj.__apiName;\n\n // for now these are the same but when we start doing interface projections the $objectType will always be underlying and\n // the $apiName will be for the current view (in current designs)\n obj.$objectType = obj.$apiName;\n\n // copying over for now as its always returned. In the future, this should just be inferred from underlying\n obj.$primaryKey ??= obj.__primaryKey;\n obj.$title ??= obj.__title;\n\n // we don't want people to use these\n delete obj.__apiName;\n delete obj.__primaryKey;\n delete obj.__title;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,OAAOA,SAAS,MAAM,gBAAgB;AAKtC,SAASC,gBAAgB,QAAQ,gDAAgD;AAKjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,wBAAwBA,CAC5CC,MAAqB,EACrBC,OAA2B,EAC3BC,gBAAoC,EACpCC,cAAuB,GAAG,KAAK,EAC/BC,0BAGC,EACDC,aAAqC,EACrCC,aAAmC,GAAG,KAAK,EACK;EAChDN,MAAM,CAACO,MAAM,EAAEC,KAAK,CAAC,kCAAkC,CAAC;;EAExD;EACA;EACAC,0BAA0B,CAACR,OAAO,EAAEE,cAAc,CAAC;EAEnD,MAAMO,QAAQ,GAAGR,gBAAgB,GAC7B,MAAMF,MAAM,CAACW,gBAAgB,CAACC,sBAAsB,CAACV,gBAAgB,CAAC,GACtEW,SAAS;EACb,MAAMC,aAAa,GAAGJ,QAAQ,GACzBL,aAAa,IAAIU,MAAM,CAACC,IAAI,CAACN,QAAQ,CAACO,UAAU,CAAC,GAClDJ,SAAS;EAEb,MAAMK,GAAG,GAAG,EAAE;EACd,KAAK,MAAMC,MAAM,IAAIlB,OAAO,EAAE;IAC5B,MAAMmB,SAAS,GAAG,MAAMpB,MAAM,CAACW,gBAAgB,CAACU,mBAAmB,CACjEF,MAAM,CAACG,QACT,CAAC;IACD,CAAUF,SAAS,GAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAnB5B,SAAS,QAAY,2BAA2BsB,MAAM,CAACG,QAAQ,GAAG,IAAlEzB,SAAS;;IAET;IACA,IAAI6B,QAAQ;IAEZ,IAAIC,UAAU,GAAG,IAAI;IACrB,IAAIjB,QAAQ,IAAII,aAAa,EAAE;MAC7B;MACAc,0BAA0B,CAACR,SAAS,EAAEV,QAAQ,CAACmB,OAAO,EAAE7B,MAAM,CAAC;MAE/D2B,UAAU,KAAKG,YAAY,CAAC9B,MAAM,EAAEU,QAAQ,EAAES,MAAM,EAAEL,aAAa,CAAC;MAEpEiB,sBAAsB,CAACX,SAAS,EAAEV,QAAQ,CAACmB,OAAO,EAAEV,MAAM,CAAC;MAE3DO,QAAQ,GAAGM,0CAA0C,CACnDZ,SAAS,EACTV,QAAQ,CAACmB,OAAO,EAChBf,aACF,CAAC;IACH,CAAC,MAAM;MACLY,QAAQ,GAAGrB,aAAa,IAAIU,MAAM,CAACC,IAAI,CAACI,SAAS,CAACH,UAAU,CAAC;IAC/D;IAEAU,UAAU,KAAKG,YAAY,CAAC9B,MAAM,EAAEoB,SAAS,EAAED,MAAM,EAAEO,QAAQ,CAAC;IAEhE,IAAIpB,aAAa,KAAK,OAAO,IAAI,CAACqB,UAAU,EAAE;MAC5C,MAAM,IAAIM,KAAK,CACb,2EACF,CAAC;IACH,CAAC,MAAM,IAAI3B,aAAa,KAAK,MAAM,IAAI,CAACqB,UAAU,EAAE;MAClD;IACF;IAEA,IAAIO,UAA0C,GAAGpC,gBAAgB,CAC/DE,MAAM,EACNoB,SAAS,EACTD,MAAM,EACNf,0BACF,CAAC;IACD,IAAIF,gBAAgB,EAAEgC,UAAU,GAAGA,UAAU,CAACC,GAAG,CAACjC,gBAAgB,CAAC;IAEnEgB,GAAG,CAACkB,IAAI,CAACF,UAAU,CAAC;EACtB;EAEAlC,MAAM,CAACO,MAAM,EAAEC,KAAK,CAAC,gCAAgC,CAAC;EACtD,OAAOU,GAAG;AACZ;AAkDA;AACA;AACA;AACA,OAAO,eAAemB,yBAAyBA,CAC7CrC,MAAqB,EACrBC,OAA2B,EAC3BC,gBAAoC,EACpCoC,yBAGC,EACDnC,cAAuB,GAAG,KAAK,EAC/BE,aAAqC,EACrCC,aAAmC,GAAG,KAAK,EAC3CiC,6BAGC,GAAG,CAAC,CAAC,EAC0C;EAChDvC,MAAM,CAACO,MAAM,EAAEC,KAAK,CAAC,mCAAmC,CAAC;EAEzDC,0BAA0B,CAACR,OAAO,EAAEE,cAAc,CAAC;EAEnD,MAAMe,GAAG,GAAG,EAAE;EACd,KAAK,MAAMC,MAAM,IAAIlB,OAAO,EAAE;IAC5B,MAAMmB,SAAS,GAAG,MAAMpB,MAAM,CAACW,gBAAgB,CAACU,mBAAmB,CACjEF,MAAM,CAACG,QACT,CAAC;IACD,CAAUF,SAAS,GAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAnB5B,SAAS,QAAY,2BAA2BsB,MAAM,CAACG,QAAQ,GAAG,IAAlEzB,SAAS;IAET,MAAM2C,qBAAqB,GAAGtC,gBAAgB,GAC1CqC,6BAA6B,CAACrC,gBAAgB,CAAyB,CACvEiB,MAAM,CAACG,QAAQ,CAChB,GACCT,SAAS;IAEb,MAAMC,aAAa,GAAGZ,gBAAgB,IAAIsC,qBAAqB,GAC1DnC,aAAa,GACZU,MAAM,CAACC,IAAI,CAACwB,qBAAqB,CAAC,CAACC,MAAM,CACzCC,GAAG,IAAI;MACLrC,aAAa,EAAEsC,QAAQ,CAACH,qBAAqB,CAACE,GAAG,CAAC,CAAC;IACrD,CACF,CAAC,GACC,CACA,GAAG3B,MAAM,CAAC6B,MAAM,CAACJ,qBAAqB,CAAC,EACvCpB,SAAS,CAACyB,iBAAiB,CAC5B,GACDhC,SAAS;;IAEb;IACA,IAAIa,QAAQ;IAEZ,IAAIC,UAAU,GAAG,IAAI;IACrB,IAAIzB,gBAAgB,IAAIY,aAAa,EAAE;MACrCc,0BAA0B,CAACR,SAAS,EAAElB,gBAAgB,EAAEF,MAAM,CAAC;MAE/D0B,QAAQ,GAAGZ,aAAa;IAC1B,CAAC,MAAM;MACLY,QAAQ,GAAGrB,aAAa,IAAIU,MAAM,CAACC,IAAI,CAACI,SAAS,CAACH,UAAU,CAAC;IAC/D;IAEAU,UAAU,KAAKG,YAAY,CAAC9B,MAAM,EAAEoB,SAAS,EAAED,MAAM,EAAEO,QAAQ,CAAC;IAEhE,IAAIpB,aAAa,KAAK,OAAO,IAAI,CAACqB,UAAU,EAAE;MAC5C,MAAM,IAAIM,KAAK,CACb,2EACF,CAAC;IACH,CAAC,MAAM,IAAI3B,aAAa,KAAK,MAAM,IAAI,CAACqB,UAAU,EAAE;MAClD;IACF;IAEA,IAAIO,UAA0C,GAAGpC,gBAAgB,CAC/DE,MAAM,EACNoB,SAAS,EACTD,MAAM,EACNmB,yBACF,CAAC;IACD,IAAIpC,gBAAgB,EAAEgC,UAAU,GAAGA,UAAU,CAACC,GAAG,CAACjC,gBAAgB,CAAC;IAEnEgB,GAAG,CAACkB,IAAI,CAACF,UAAU,CAAC;EACtB;EAEAlC,MAAM,CAACO,MAAM,EAAEC,KAAK,CAAC,iCAAiC,CAAC;EACvD,OAAOU,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASc,0CAA0CA,CACxDZ,SAAsC,EACtClB,gBAAwB,EACxB4C,eAAkC,EACxB;EACV,OAAOA,eAAe,CAACC,GAAG,CAAEC,SAAS,IACnC5B,SAAS,CAAC6B,YAAY,CAAC/C,gBAAgB,CAAC,CAAC8C,SAAS,CACpD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASjB,sBAAsBA,CAC7BX,SAAsC,EACtClB,gBAAwB,EACxBiB,MAAwB,EACxB;EACA,MAAM+B,QAA6B,GAAG,CAAC,CAAC;EACxC,KACE,MAAM,CAACC,OAAO,EAAEC,WAAW,CAAC,IAAIrC,MAAM,CAACsC,OAAO,CAC5CjC,SAAS,CAAC6B,YAAY,CAAC/C,gBAAgB,CACzC,CAAC,EACD;IACA,IAAIiD,OAAO,IAAIhC,MAAM,EAAE;MACrB,MAAMmC,KAAK,GAAGnC,MAAM,CAACgC,OAAO,CAAC;MAC7B,OAAOhC,MAAM,CAACgC,OAAO,CAAC;MACtB,IAAIG,KAAK,KAAKzC,SAAS,EAAE;QACvBqC,QAAQ,CAACE,WAAW,CAAC,GAAGE,KAAK;MAC/B;IACF;EACF;EACAvC,MAAM,CAACwC,MAAM,CAACpC,MAAM,EAAE+B,QAAQ,CAAC;EAE/B,IAAI,EAAE9B,SAAS,CAACyB,iBAAiB,IAAI1B,MAAM,CAAC,EAAE;IAC5CA,MAAM,CAACC,SAAS,CAACyB,iBAAiB,CAAC,GAAG1B,MAAM,CAACqC,WAAW;EAC1D;AACF;AAEA,SAAS1B,YAAYA,CACnB9B,MAAqB,EACrByD,GAEkB,EAClBC,GAAqB,EACrBC,YAA+B,EAC/B;EACA,KAAK,MAAMC,QAAQ,IAAID,YAAY,EAAE;IACnC,IACEC,QAAQ,IAAIH,GAAG,CAACxC,UAAU,IAAIwC,GAAG,CAACxC,UAAU,CAAC2C,QAAQ,CAAC,CAACC,QAAQ,KAAK,KAAK,IACtEH,GAAG,CAACE,QAAQ,CAAC,IAAI,IAAI,EACxB;MACA,IAAIrC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzCzB,MAAM,CAACO,MAAM,EAAEC,KAAK,CAClB;UACEkD,GAAG,EAAE;YACHpC,QAAQ,EAAEoC,GAAG,CAAC,UAAU,CAAC;YACzBI,WAAW,EAAEJ,GAAG,CAAC,aAAa,CAAC;YAC/BF,WAAW,EAAEE,GAAG,CAAC,aAAa;UAChC;QACF,CAAC,EACD,kEAAkED,GAAG,CAAC5B,OAAO,MAAM+B,QAAQ,kBAC7F,CAAC;MACH;MACA,OAAO,KAAK;IACd;EACF;EACA,OAAO,IAAI;AACb;AAEA,SAAShC,0BAA0BA,CACjCR,SAAsC,EACtClB,gBAAwB,EACxBF,MAAqB,EACyC;EAC9D,IAAIoB,SAAS,CAAC6B,YAAY,GAAG/C,gBAAgB,CAAC,IAAI,IAAI,EAAE;IACtD,MAAM6D,OAAO,GACX,iOAAiO;IACnO,IAAI/D,MAAM,CAACO,MAAM,EAAE;MACjBP,MAAM,CAACO,MAAM,CAACyD,IAAI,CAACD,OAAO,CAAC;IAC7B,CAAC,MAAM;MACL;MACAE,OAAO,CAACC,KAAK,CAAC,YAAYH,OAAO,EAAE,CAAC;IACtC;IACA,MAAM,IAAI9B,KAAK,CAAC8B,OAAO,CAAC;EAC1B;AACF;AAEA,SAAStD,0BAA0BA,CACjC0D,IAAwB,EACxBhE,cAAuB,EACiB;EACxC,KAAK,MAAMuD,GAAG,IAAIS,IAAI,EAAE;IACtB,IAAIhE,cAAc,EAAE;MAClB,OAAOuD,GAAG,CAACU,KAAK;IAClB;IAEA,IAAIV,GAAG,CAACU,KAAK,EAAE;MACbV,GAAG,CAACW,IAAI,GAAGX,GAAG,CAACU,KAAK;MACpB,OAAOV,GAAG,CAACU,KAAK;IAClB;;IAEA;IACAV,GAAG,CAACpC,QAAQ,KAAKoC,GAAG,CAACY,SAAS;;IAE9B;IACA;IACAZ,GAAG,CAACI,WAAW,GAAGJ,GAAG,CAACpC,QAAQ;;IAE9B;IACAoC,GAAG,CAACF,WAAW,KAAKE,GAAG,CAACa,YAAY;IACpCb,GAAG,CAACc,MAAM,KAAKd,GAAG,CAACe,OAAO;;IAE1B;IACA,OAAOf,GAAG,CAACY,SAAS;IACpB,OAAOZ,GAAG,CAACa,YAAY;IACvB,OAAOb,GAAG,CAACe,OAAO;EACpB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"convertWireToOsdkObjects.js","names":["invariant","createOsdkObject","convertWireToOsdkObjects","client","objects","interfaceApiName","forceRemoveRid","derivedPropertyTypesByName","selectedProps","strictNonNull","fixObjectPropertiesInPlace","ifaceDef","ontologyProvider","getInterfaceDefinition","undefined","ifaceSelected","Object","keys","properties","ret","rawObj","objectDef","getObjectDefinition","$apiName","process","env","NODE_ENV","objProps","conforming","invariantInterfacesAsViews","apiName","isConforming","reframeAsObjectInPlace","convertInterfacePropNamesToObjectPropNames","Error","osdkObject","$as","push","convertWireToOsdkObjects2","derivedPropertyTypeByName","interfaceToObjectTypeMappings","interfaceToObjMapping","filter","val","includes","values","primaryKeyApiName","ifacePropsToMap","map","ifaceProp","interfaceMap","newProps","sptProp","regularProp","entries","value","assign","$primaryKey","def","obj","propsToCheck","propName","nullable","logger","debug","$objectType","warning","warn","console","error","objs","__rid","$rid","__apiName","__primaryKey","$title","__title"],"sources":["convertWireToOsdkObjects.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 {\n InterfaceMetadata,\n NullabilityAdherence,\n ObjectMetadata,\n} from \"@osdk/api\";\nimport type {\n InterfaceToObjectTypeMappings,\n InterfaceTypeApiName,\n OntologyObjectV2,\n} from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n type FetchedObjectTypeDefinition,\n} from \"../ontology/OntologyProvider.js\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\nimport type { InterfaceHolder } from \"./convertWireToOsdkObjects/InterfaceHolder.js\";\nimport type { ObjectHolder } from \"./convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { SimpleOsdkProperties } from \"./SimpleOsdkProperties.js\";\n\n/**\n * If interfaceApiName is not undefined, converts the instances of the\n * interface into their respective\n * underlying concrete types and then returns the $as() representation\n * for the consumers.\n *\n * Otherwise just does the conversion\n *\n * May mutate in place for performance reasons. If you need a clean copy,\n * keep it first.\n *\n * However, you must use the returned value, which will be whatever is correct.\n *\n * @internal\n * @param interfaceApiName - if undefined\n */\nexport async function convertWireToOsdkObjects(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n forceRemoveRid: boolean = false,\n derivedPropertyTypesByName: Record<\n string,\n ObjectMetadata.Property\n >,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n // remove the __ prefixed properties and convert them to $ prefixed.\n // updates in place\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ifaceDef = interfaceApiName\n ? await client.ontologyProvider.getInterfaceDefinition(interfaceApiName)\n : undefined;\n const ifaceSelected = ifaceDef\n ? (selectedProps ?? Object.keys(ifaceDef.properties))\n : undefined;\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (ifaceDef && ifaceSelected) {\n // API returns interface spt names but we cache by real values\n invariantInterfacesAsViews(objectDef, ifaceDef.apiName, client);\n\n conforming &&= isConforming(client, ifaceDef, rawObj, ifaceSelected);\n\n reframeAsObjectInPlace(objectDef, ifaceDef.apiName, rawObj);\n\n objProps = convertInterfacePropNamesToObjectPropNames(\n objectDef,\n ifaceDef.apiName,\n ifaceSelected,\n );\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypesByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n return ret;\n}\n\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<InterfaceHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder>>;\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid?: boolean,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull?: NullabilityAdherence,\n interfaceToObjectTypeMappings?: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n >,\n): Promise<Array<ObjectHolder | InterfaceHolder>>;\n/**\n * @internal\n */\nexport async function convertWireToOsdkObjects2(\n client: MinimalClient,\n objects: OntologyObjectV2[],\n interfaceApiName: string | undefined,\n derivedPropertyTypeByName: Record<\n string,\n ObjectMetadata.Property\n >,\n forceRemoveRid: boolean = false,\n selectedProps?: ReadonlyArray<string>,\n strictNonNull: NullabilityAdherence = false,\n interfaceToObjectTypeMappings: Record<\n InterfaceTypeApiName,\n InterfaceToObjectTypeMappings\n > = {},\n): Promise<Array<ObjectHolder | InterfaceHolder>> {\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n rawObj.$apiName,\n );\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n\n const interfaceToObjMapping = interfaceApiName\n ? interfaceToObjectTypeMappings[interfaceApiName as InterfaceTypeApiName][\n rawObj.$apiName\n ]\n : undefined;\n\n const ifaceSelected = interfaceApiName && interfaceToObjMapping\n ? (selectedProps\n ? Object.keys(interfaceToObjMapping).filter(\n val => {\n selectedProps?.includes(interfaceToObjMapping[val]);\n },\n )\n : [\n ...Object.values(interfaceToObjMapping),\n objectDef.primaryKeyApiName,\n ])\n : undefined;\n\n // default value for when we are checking an object\n let objProps;\n\n let conforming = true;\n if (interfaceApiName && ifaceSelected) {\n invariantInterfacesAsViews(objectDef, interfaceApiName, client);\n\n objProps = ifaceSelected;\n } else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\n \"Unable to safely convert objects as some non nullable properties are null\",\n );\n } else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n\n let osdkObject: ObjectHolder | InterfaceHolder = createOsdkObject(\n client,\n objectDef,\n rawObj,\n derivedPropertyTypeByName,\n );\n if (interfaceApiName) osdkObject = osdkObject.$as(interfaceApiName);\n\n ret.push(osdkObject);\n }\n\n return ret;\n}\n\n/**\n * @internal\n *\n * Utility function that lets us take down selected property names from an interface\n * and convert them to an array of property names on an object.\n */\nexport function convertInterfacePropNamesToObjectPropNames(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n ifacePropsToMap: readonly string[],\n): string[] {\n return ifacePropsToMap.map((ifaceProp) =>\n objectDef.interfaceMap[interfaceApiName][ifaceProp]\n );\n}\n\n/**\n * Takes a raw object from the wire (contextually as an interface) and\n * updates the fields to reflect the underlying objectDef instead\n * @param objectDef\n * @param interfaceApiName\n * @param client\n * @param rawObj\n */\nfunction reframeAsObjectInPlace(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n rawObj: OntologyObjectV2,\n) {\n const newProps: Record<string, any> = {};\n for (\n const [sptProp, regularProp] of Object.entries(\n objectDef.interfaceMap[interfaceApiName],\n )\n ) {\n if (sptProp in rawObj) {\n const value = rawObj[sptProp];\n delete rawObj[sptProp];\n if (value !== undefined) {\n newProps[regularProp] = value;\n }\n }\n }\n Object.assign(rawObj, newProps);\n\n if (!(objectDef.primaryKeyApiName in rawObj)) {\n rawObj[objectDef.primaryKeyApiName] = rawObj.$primaryKey;\n }\n}\n\nfunction isConforming(\n client: MinimalClient,\n def:\n | InterfaceMetadata\n | ObjectMetadata,\n obj: OntologyObjectV2,\n propsToCheck: readonly string[],\n) {\n for (const propName of propsToCheck) {\n if (\n propName in def.properties && def.properties[propName].nullable === false\n && obj[propName] == null\n ) {\n if (process.env.NODE_ENV !== \"production\") {\n client.logger?.debug(\n {\n obj: {\n $apiName: obj[\"$apiName\"],\n $objectType: obj[\"$objectType\"],\n $primaryKey: obj[\"$primaryKey\"],\n },\n },\n `Found object that does not conform to its definition. Expected ${def.apiName}'s ${propName} to not be null.`,\n );\n }\n return false;\n }\n }\n return true;\n}\n\nfunction invariantInterfacesAsViews(\n objectDef: FetchedObjectTypeDefinition,\n interfaceApiName: string,\n client: MinimalClient,\n): asserts objectDef is typeof objectDef & { interfaceMap: {} } {\n if (objectDef.interfaceMap?.[interfaceApiName] == null) {\n const warning =\n \"Interfaces are only supported 'as views' but your metadata object is missing the correct information. This suggests your interfaces have not been migrated to the newer version yet and you cannot use this version of the SDK.\";\n if (client.logger) {\n client.logger.warn(warning);\n } else {\n // eslint-disable-next-line no-console\n console.error(`WARNING! ${warning}`);\n }\n throw new Error(warning);\n }\n}\n\nfunction fixObjectPropertiesInPlace(\n objs: OntologyObjectV2[],\n forceRemoveRid: boolean,\n): asserts objs is SimpleOsdkProperties[] {\n for (const obj of objs) {\n if (forceRemoveRid) {\n delete obj.__rid;\n }\n\n if (obj.__rid) {\n obj.$rid = obj.__rid;\n delete obj.__rid;\n }\n\n // Backend returns as __apiName but we want to stick to $ structure\n obj.$apiName ??= obj.__apiName;\n\n // for now these are the same but when we start doing interface projections the $objectType will always be underlying and\n // the $apiName will be for the current view (in current designs)\n obj.$objectType = obj.$apiName;\n\n // copying over for now as its always returned. In the future, this should just be inferred from underlying\n obj.$primaryKey ??= obj.__primaryKey;\n obj.$title ??= obj.__title;\n\n // we don't want people to use these\n delete obj.__apiName;\n delete obj.__primaryKey;\n delete obj.__title;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -69,7 +69,7 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet) {
69
69
  });
70
70
  result.data = await client.objectFactory(client, result.data,
71
71
  // drop readonly
72
- interfaceType.apiName, !args.$includeRid, await extractRdpDefinition(client, objectSet, interfaceType.apiName));
72
+ interfaceType.apiName, !args.$includeRid, await extractRdpDefinition(client, objectSet));
73
73
  return result;
74
74
  }
75
75
  const result = await OntologiesV2.OntologyObjectSets.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, applyFetchArgs(args, {
@@ -158,7 +158,7 @@ export async function fetchObjectPage(client, objectType, args, objectSet) {
158
158
  excludeRid: !args?.$includeRid
159
159
  }));
160
160
  return Promise.resolve({
161
- data: await client.objectFactory(client, r.data, undefined, undefined, await extractRdpDefinition(client, objectSet, objectType.apiName), args.$select),
161
+ data: await client.objectFactory(client, r.data, undefined, undefined, await extractRdpDefinition(client, objectSet), args.$select),
162
162
  nextPageToken: r.nextPageToken,
163
163
  totalCount: r.totalCount
164
164
  });