@osdk/client 2.7.1 → 2.7.3

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 (83) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build/browser/Client.js +1 -1
  3. package/build/browser/Client.js.map +1 -1
  4. package/build/browser/observable/ObservableClient.js.map +1 -1
  5. package/build/browser/observable/internal/BulkObjectLoader.js +71 -9
  6. package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
  7. package/build/browser/observable/internal/BulkObjectLoader.test.js +79 -0
  8. package/build/browser/observable/internal/BulkObjectLoader.test.js.map +1 -1
  9. package/build/browser/observable/internal/ObservableClientImpl.js +104 -17
  10. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  11. package/build/browser/observable/internal/PivotCanonicalizer.js +4 -4
  12. package/build/browser/observable/internal/PivotCanonicalizer.js.map +1 -1
  13. package/build/browser/observable/internal/Store.test.js +185 -1
  14. package/build/browser/observable/internal/Store.test.js.map +1 -1
  15. package/build/browser/observable/internal/list/InterfaceListQuery.js +49 -3
  16. package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -1
  17. package/build/browser/observable/internal/list/ListQuery.test.js +154 -0
  18. package/build/browser/observable/internal/list/ListQuery.test.js.map +1 -1
  19. package/build/browser/observable/internal/list/ListsHelper.js +1 -1
  20. package/build/browser/observable/internal/list/ListsHelper.js.map +1 -1
  21. package/build/browser/observable/internal/list/ObjectListQuery.js +22 -21
  22. package/build/browser/observable/internal/list/ObjectListQuery.js.map +1 -1
  23. package/build/browser/observable/internal/object/ObjectQuery.js +23 -6
  24. package/build/browser/observable/internal/object/ObjectQuery.js.map +1 -1
  25. package/build/browser/observable/internal/object/ObjectsHelper.js +3 -1
  26. package/build/browser/observable/internal/object/ObjectsHelper.js.map +1 -1
  27. package/build/browser/util/UserAgent.js +2 -2
  28. package/build/browser/util/interfaceUtils.js +7 -0
  29. package/build/browser/util/interfaceUtils.js.map +1 -1
  30. package/build/cjs/{chunk-OZNDU7AU.cjs → chunk-EHWB7KEN.cjs} +2 -2
  31. package/build/cjs/{chunk-OZNDU7AU.cjs.map → chunk-EHWB7KEN.cjs.map} +1 -1
  32. package/build/cjs/{chunk-OVZCGOMG.cjs → chunk-O3SKYLBQ.cjs} +69 -65
  33. package/build/cjs/chunk-O3SKYLBQ.cjs.map +1 -0
  34. package/build/cjs/index.cjs +8 -8
  35. package/build/cjs/public/internal.cjs +8 -8
  36. package/build/cjs/public/unstable-do-not-use.cjs +323 -112
  37. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  38. package/build/cjs/public/unstable-do-not-use.d.cts +9 -9
  39. package/build/esm/Client.js +1 -1
  40. package/build/esm/Client.js.map +1 -1
  41. package/build/esm/observable/ObservableClient.js.map +1 -1
  42. package/build/esm/observable/internal/BulkObjectLoader.js +71 -9
  43. package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
  44. package/build/esm/observable/internal/BulkObjectLoader.test.js +79 -0
  45. package/build/esm/observable/internal/BulkObjectLoader.test.js.map +1 -1
  46. package/build/esm/observable/internal/ObservableClientImpl.js +104 -17
  47. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  48. package/build/esm/observable/internal/PivotCanonicalizer.js +4 -4
  49. package/build/esm/observable/internal/PivotCanonicalizer.js.map +1 -1
  50. package/build/esm/observable/internal/Store.test.js +185 -1
  51. package/build/esm/observable/internal/Store.test.js.map +1 -1
  52. package/build/esm/observable/internal/list/InterfaceListQuery.js +49 -3
  53. package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -1
  54. package/build/esm/observable/internal/list/ListQuery.test.js +154 -0
  55. package/build/esm/observable/internal/list/ListQuery.test.js.map +1 -1
  56. package/build/esm/observable/internal/list/ListsHelper.js +1 -1
  57. package/build/esm/observable/internal/list/ListsHelper.js.map +1 -1
  58. package/build/esm/observable/internal/list/ObjectListQuery.js +22 -21
  59. package/build/esm/observable/internal/list/ObjectListQuery.js.map +1 -1
  60. package/build/esm/observable/internal/object/ObjectQuery.js +23 -6
  61. package/build/esm/observable/internal/object/ObjectQuery.js.map +1 -1
  62. package/build/esm/observable/internal/object/ObjectsHelper.js +3 -1
  63. package/build/esm/observable/internal/object/ObjectsHelper.js.map +1 -1
  64. package/build/esm/util/UserAgent.js +2 -2
  65. package/build/esm/util/interfaceUtils.js +7 -0
  66. package/build/esm/util/interfaceUtils.js.map +1 -1
  67. package/build/types/Client.d.ts +1 -1
  68. package/build/types/observable/ObservableClient.d.ts +12 -12
  69. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  70. package/build/types/observable/internal/BulkObjectLoader.d.ts +2 -1
  71. package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
  72. package/build/types/observable/internal/PivotCanonicalizer.d.ts +2 -2
  73. package/build/types/observable/internal/PivotCanonicalizer.d.ts.map +1 -1
  74. package/build/types/observable/internal/Store.test.d.ts.map +1 -1
  75. package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -1
  76. package/build/types/observable/internal/list/ObjectListQuery.d.ts.map +1 -1
  77. package/build/types/observable/internal/object/ObjectQuery.d.ts +2 -1
  78. package/build/types/observable/internal/object/ObjectQuery.d.ts.map +1 -1
  79. package/build/types/observable/internal/object/ObjectsHelper.d.ts.map +1 -1
  80. package/build/types/util/interfaceUtils.d.ts +2 -1
  81. package/build/types/util/interfaceUtils.d.ts.map +1 -1
  82. package/package.json +9 -9
  83. package/build/cjs/chunk-OVZCGOMG.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectListQuery.js","names":["additionalContext","API_NAME_IDX","INTERSECT_IDX","ListQuery","PIVOT_IDX","RDP_IDX","RIDS_IDX","ObjectListQuery","createObjectSet","store","rdpConfig","cacheKey","otherKeys","intersectWith","pivotInfo","rids","clientCtx","client","typeDefinition","type","apiName","sourceSet","sourceType","where","canonicalWhere","objectSet","pivotTo","linkName","withProperties","length","intersectSets","map","whereClause","intersectSet","targetType","intersect","objectSetFactory","objects","revalidateObjectType","revalidate","postProcessFetchedData","data","Promise","resolve","extractRelevantObjects","changes","added","all","addedObjects","get","strictMatches","Set","sortaMatches","modified","modifiedObjects"],"sources":["ObjectListQuery.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 {\n DerivedProperty,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\nimport { additionalContext } from \"../../../Client.js\";\nimport type { InterfaceHolder } from \"../../../object/convertWireToOsdkObjects/InterfaceHolder.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { Changes } from \"../Changes.js\";\nimport type { Store } from \"../Store.js\";\nimport {\n API_NAME_IDX,\n INTERSECT_IDX,\n ListQuery,\n PIVOT_IDX,\n RDP_IDX,\n RIDS_IDX,\n} from \"./ListQuery.js\";\n\ntype ExtractRelevantObjectsResult = Record<\"added\" | \"modified\", {\n all: (ObjectHolder | InterfaceHolder)[];\n strictMatches: Set<(ObjectHolder | InterfaceHolder)>;\n sortaMatches: Set<(ObjectHolder | InterfaceHolder)>;\n}>;\n\nexport class ObjectListQuery extends ListQuery {\n protected createObjectSet(store: Store): ObjectSet<ObjectTypeDefinition> {\n const rdpConfig = this.cacheKey.otherKeys[RDP_IDX];\n const intersectWith = this.cacheKey.otherKeys[INTERSECT_IDX];\n const pivotInfo = this.cacheKey.otherKeys[PIVOT_IDX];\n const rids = this.cacheKey.otherKeys[RIDS_IDX];\n\n const clientCtx = store.client[additionalContext];\n const typeDefinition = {\n type: \"object\",\n apiName: this.apiName,\n } as ObjectTypeDefinition;\n\n if (pivotInfo != null) {\n let sourceSet = store.client({\n type: \"object\",\n apiName: pivotInfo.sourceType,\n } as ObjectTypeDefinition);\n\n // Filter source objects before pivoting to linked objects\n sourceSet = sourceSet.where(this.canonicalWhere);\n let objectSet = sourceSet.pivotTo(pivotInfo.linkName);\n\n if (rdpConfig != null) {\n objectSet = objectSet.withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n );\n }\n\n if (intersectWith != null && intersectWith.length > 0) {\n const intersectSets = intersectWith.map(whereClause => {\n let intersectSet = store.client({\n type: \"object\",\n apiName: pivotInfo.targetType,\n } as ObjectTypeDefinition);\n\n if (rdpConfig != null) {\n intersectSet = intersectSet.withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n );\n }\n\n return intersectSet.where(whereClause);\n });\n\n objectSet = objectSet.intersect(...intersectSets);\n }\n\n return objectSet;\n }\n\n // Start with either a static objectset (for RIDs) or a base objectset\n let objectSet: ObjectSet<ObjectTypeDefinition>;\n if (rids != null) {\n objectSet = clientCtx.objectSetFactory(\n typeDefinition,\n clientCtx,\n { type: \"static\", objects: [...rids] },\n );\n } else {\n objectSet = store.client(typeDefinition);\n }\n\n if (rdpConfig != null) {\n objectSet = objectSet.withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n );\n }\n\n objectSet = objectSet.where(this.canonicalWhere);\n\n if (intersectWith != null && intersectWith.length > 0) {\n const intersectSets = intersectWith.map(whereClause => {\n let intersectSet = store.client({\n type: \"object\",\n apiName: this.apiName,\n } as ObjectTypeDefinition);\n\n if (rdpConfig != null) {\n intersectSet = intersectSet.withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n );\n }\n\n return intersectSet.where(whereClause);\n });\n\n objectSet = objectSet.intersect(...intersectSets);\n }\n\n return objectSet;\n }\n\n async revalidateObjectType(apiName: string): Promise<void> {\n if (this.apiName === apiName) {\n await this.revalidate(/* force */ true);\n }\n }\n\n protected postProcessFetchedData(\n data: Osdk.Instance<any>[],\n ): Promise<Osdk.Instance<any>[]> {\n return Promise.resolve(data);\n }\n\n protected extractRelevantObjects(\n changes: Changes,\n ): ExtractRelevantObjectsResult {\n return {\n added: {\n all: changes.addedObjects.get(this.cacheKey.otherKeys[API_NAME_IDX])\n ?? [],\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n modified: {\n all: changes.modifiedObjects.get(this.cacheKey.otherKeys[API_NAME_IDX])\n ?? [],\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectListQuery.js","names":["additionalContext","API_NAME_IDX","INTERSECT_IDX","ListQuery","PIVOT_IDX","RDP_IDX","RIDS_IDX","ObjectListQuery","createObjectSet","store","rdpConfig","cacheKey","otherKeys","intersectWith","pivotInfo","rids","clientCtx","client","typeDefinition","type","apiName","sourceSet","objectSetFactory","sourceType","objects","sourceTypeKind","objectSet","where","canonicalWhere","pivotTo","linkName","withProperties","length","intersectSets","map","whereClause","intersectSet","intersect","revalidateObjectType","revalidate","postProcessFetchedData","data","Promise","resolve","extractRelevantObjects","changes","added","all","addedObjects","get","strictMatches","Set","sortaMatches","modified","modifiedObjects"],"sources":["ObjectListQuery.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 {\n DerivedProperty,\n InterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n WhereClause,\n} from \"@osdk/api\";\nimport { additionalContext } from \"../../../Client.js\";\nimport type { InterfaceHolder } from \"../../../object/convertWireToOsdkObjects/InterfaceHolder.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { Changes } from \"../Changes.js\";\nimport type { Store } from \"../Store.js\";\nimport {\n API_NAME_IDX,\n INTERSECT_IDX,\n ListQuery,\n PIVOT_IDX,\n RDP_IDX,\n RIDS_IDX,\n} from \"./ListQuery.js\";\n\ntype ExtractRelevantObjectsResult = Record<\"added\" | \"modified\", {\n all: (ObjectHolder | InterfaceHolder)[];\n strictMatches: Set<(ObjectHolder | InterfaceHolder)>;\n sortaMatches: Set<(ObjectHolder | InterfaceHolder)>;\n}>;\n\nexport class ObjectListQuery extends ListQuery {\n protected createObjectSet(store: Store): ObjectSet<ObjectTypeDefinition> {\n const rdpConfig = this.cacheKey.otherKeys[RDP_IDX];\n const intersectWith = this.cacheKey.otherKeys[INTERSECT_IDX];\n const pivotInfo = this.cacheKey.otherKeys[PIVOT_IDX];\n const rids = this.cacheKey.otherKeys[RIDS_IDX];\n\n const clientCtx = store.client[additionalContext];\n const typeDefinition = {\n type: \"object\",\n apiName: this.apiName,\n } as ObjectTypeDefinition;\n\n if (pivotInfo != null) {\n let sourceSet: ObjectSet<ObjectTypeDefinition>;\n if (rids != null) {\n sourceSet = clientCtx.objectSetFactory(\n {\n type: \"object\",\n apiName: pivotInfo.sourceType,\n } as ObjectTypeDefinition,\n clientCtx,\n { type: \"static\", objects: [...rids] },\n );\n } else {\n sourceSet = (pivotInfo.sourceTypeKind === \"interface\"\n ? store.client({\n type: \"interface\",\n apiName: pivotInfo.sourceType,\n } as InterfaceDefinition)\n : store.client({\n type: \"object\",\n apiName: pivotInfo.sourceType,\n } as ObjectTypeDefinition)) as ObjectSet<ObjectTypeDefinition>;\n }\n\n let objectSet = sourceSet\n .where(this.canonicalWhere as WhereClause<any>)\n .pivotTo(pivotInfo.linkName);\n\n if (rdpConfig != null) {\n objectSet = objectSet.withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n );\n }\n\n // intersectWith for pivot queries is deferred to fetchPageData\n // where the target type can be resolved asynchronously\n return objectSet;\n }\n\n // Start with either a static objectset (for RIDs) or a base objectset\n let objectSet: ObjectSet<ObjectTypeDefinition>;\n if (rids != null) {\n objectSet = clientCtx.objectSetFactory(\n typeDefinition,\n clientCtx,\n { type: \"static\", objects: [...rids] },\n );\n } else {\n objectSet = store.client(typeDefinition);\n }\n\n if (rdpConfig != null) {\n objectSet = objectSet.withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n );\n }\n\n objectSet = objectSet.where(this.canonicalWhere);\n\n if (intersectWith != null && intersectWith.length > 0) {\n const intersectSets = intersectWith.map(whereClause => {\n let intersectSet = store.client({\n type: \"object\",\n apiName: this.apiName,\n } as ObjectTypeDefinition);\n\n if (rdpConfig != null) {\n intersectSet = intersectSet.withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n );\n }\n\n return intersectSet.where(whereClause);\n });\n\n objectSet = objectSet.intersect(...intersectSets);\n }\n\n return objectSet;\n }\n\n async revalidateObjectType(apiName: string): Promise<void> {\n if (this.apiName === apiName) {\n await this.revalidate(/* force */ true);\n }\n }\n\n protected postProcessFetchedData(\n data: Osdk.Instance<any>[],\n ): Promise<Osdk.Instance<any>[]> {\n return Promise.resolve(data);\n }\n\n protected extractRelevantObjects(\n changes: Changes,\n ): ExtractRelevantObjectsResult {\n return {\n added: {\n all: changes.addedObjects.get(this.cacheKey.otherKeys[API_NAME_IDX])\n ?? [],\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n modified: {\n all: changes.modifiedObjects.get(this.cacheKey.otherKeys[API_NAME_IDX])\n ?? [],\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -23,12 +23,15 @@ import { RDP_CONFIG_IDX } from "./ObjectCacheKey.js";
23
23
  export class ObjectQuery extends Query {
24
24
  #apiName;
25
25
  #pk;
26
- constructor(store, subject, type, pk, cacheKey, opts) {
26
+ #defType;
27
+ #implementingTypes;
28
+ constructor(store, subject, type, pk, cacheKey, opts, defType = "object") {
27
29
  super(store, subject, opts, cacheKey, process.env.NODE_ENV !== "production" ? store.client[additionalContext].logger?.child({}, {
28
30
  msgPrefix: `ObjectQuery<${cacheKey.otherKeys.map(x => JSON.stringify(x)).join(", ")}>`
29
31
  }) : undefined);
30
32
  this.#apiName = type;
31
33
  this.#pk = pk;
34
+ this.#defType = defType;
32
35
  }
33
36
  _createConnectable(subject) {
34
37
  return connectable(subject.pipe(map(x => {
@@ -62,7 +65,7 @@ export class ObjectQuery extends Query {
62
65
  let obj;
63
66
  if (rdpConfig) {
64
67
  const miniDef = {
65
- type: "object",
68
+ type: this.#defType,
66
69
  apiName: this.#apiName
67
70
  };
68
71
  const fetched = await this.store.client(miniDef).withProperties(rdpConfig).fetchOne(this.#pk, {
@@ -71,7 +74,7 @@ export class ObjectQuery extends Query {
71
74
  obj = fetched;
72
75
  } else {
73
76
  // Use batched loader for non-RDP objects (efficient batching)
74
- obj = await getBulkObjectLoader(this.store.client).fetch(this.#apiName, this.#pk);
77
+ obj = await getBulkObjectLoader(this.store.client).fetch(this.#apiName, this.#pk, this.#defType);
75
78
  }
76
79
  this.store.batch({}, batch => {
77
80
  this.writeToStore(obj, "loaded", batch);
@@ -90,12 +93,26 @@ export class ObjectQuery extends Query {
90
93
  this.store.objects.propagateWrite(this.cacheKey, tombstone, status, batch);
91
94
  return batch.read(this.cacheKey);
92
95
  }
93
- invalidateObjectType = (objectType, changes) => {
94
- if (this.#apiName === objectType) {
96
+ invalidateObjectType = async (objectType, changes) => {
97
+ if (this.#defType === "object") {
98
+ if (this.#apiName === objectType) {
99
+ changes?.modified.add(this.cacheKey);
100
+ return this.revalidate(true);
101
+ }
102
+ return;
103
+ }
104
+ if (!this.#implementingTypes) {
105
+ const interfaceDef = {
106
+ type: "interface",
107
+ apiName: this.#apiName
108
+ };
109
+ const metadata = await this.store.client.fetchMetadata(interfaceDef);
110
+ this.#implementingTypes = new Set(metadata.implementedBy ?? []);
111
+ }
112
+ if (this.#implementingTypes.has(objectType)) {
95
113
  changes?.modified.add(this.cacheKey);
96
114
  return this.revalidate(true);
97
115
  }
98
- return Promise.resolve();
99
116
  };
100
117
  }
101
118
  //# sourceMappingURL=ObjectQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectQuery.js","names":["BehaviorSubject","connectable","map","additionalContext","getBulkObjectLoader","Query","tombstone","RDP_CONFIG_IDX","ObjectQuery","apiName","pk","constructor","store","subject","type","cacheKey","opts","process","env","NODE_ENV","client","logger","child","msgPrefix","otherKeys","x","JSON","stringify","join","undefined","_createConnectable","pipe","status","object","value","lastUpdated","isOptimistic","connector","_fetchAndStore","methodName","debug","rdpConfig","obj","miniDef","fetched","withProperties","fetchOne","$includeRid","fetch","batch","writeToStore","data","read","objectCacheKeyRegistry","register","objects","propagateWrite","deleteFromStore","invalidateObjectType","objectType","changes","modified","add","revalidate","Promise","resolve"],"sources":["ObjectQuery.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 {\n DerivedProperty,\n ObjectTypeDefinition,\n PrimaryKeyType,\n} from \"@osdk/api\";\nimport type { Connectable, Observable, Subject } from \"rxjs\";\nimport { BehaviorSubject, connectable, map } from \"rxjs\";\nimport { additionalContext } from \"../../../Client.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { ObjectPayload } from \"../../ObjectPayload.js\";\nimport type {\n CommonObserveOptions,\n Status,\n} from \"../../ObservableClient/common.js\";\nimport type { BatchContext } from \"../BatchContext.js\";\nimport { getBulkObjectLoader } from \"../BulkObjectLoader.js\";\nimport type { Changes } from \"../Changes.js\";\nimport type { Entry } from \"../Layer.js\";\nimport { Query } from \"../Query.js\";\nimport type { Store } from \"../Store.js\";\nimport type { SubjectPayload } from \"../SubjectPayload.js\";\nimport { tombstone } from \"../tombstone.js\";\nimport { type ObjectCacheKey, RDP_CONFIG_IDX } from \"./ObjectCacheKey.js\";\n\nexport class ObjectQuery extends Query<\n ObjectCacheKey,\n ObjectPayload,\n CommonObserveOptions\n> {\n #apiName: string;\n #pk: string | number | boolean;\n\n constructor(\n store: Store,\n subject: Subject<SubjectPayload<ObjectCacheKey>>,\n type: string,\n pk: PrimaryKeyType<ObjectTypeDefinition>,\n cacheKey: ObjectCacheKey,\n opts: CommonObserveOptions,\n ) {\n super(\n store,\n subject,\n opts,\n cacheKey,\n process.env.NODE_ENV !== \"production\"\n ? (\n store.client[additionalContext].logger?.child({}, {\n msgPrefix: `ObjectQuery<${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`,\n })\n )\n : undefined,\n );\n this.#apiName = type;\n this.#pk = pk;\n }\n\n protected _createConnectable(\n subject: Observable<SubjectPayload<ObjectCacheKey>>,\n ): Connectable<ObjectPayload> {\n return connectable<ObjectPayload>(\n subject.pipe(\n map((x) => {\n return {\n status: x.status,\n object: x.value,\n lastUpdated: x.lastUpdated,\n isOptimistic: x.isOptimistic,\n };\n }),\n ),\n {\n connector: () =>\n new BehaviorSubject<ObjectPayload>({\n status: \"init\",\n object: undefined,\n lastUpdated: 0,\n isOptimistic: false,\n }),\n },\n );\n }\n\n async _fetchAndStore(): Promise<void> {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"_fetchAndStore\" }).debug(\n \"calling _fetchAndStore\",\n );\n }\n\n // TODO: In the future, implement tracking of network requests to ensure\n // we're not making unnecessary network calls. This would need dedicated\n // tests separate from subscription notification tests.\n\n const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];\n\n let obj: ObjectHolder;\n\n if (rdpConfig) {\n const miniDef = {\n type: \"object\" as const,\n apiName: this.#apiName,\n } as ObjectTypeDefinition;\n\n const fetched = await this.store.client(miniDef)\n .withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n )\n .fetchOne(\n this.#pk as PrimaryKeyType<ObjectTypeDefinition>,\n { $includeRid: true },\n );\n obj = fetched as ObjectHolder;\n } else {\n // Use batched loader for non-RDP objects (efficient batching)\n obj = await getBulkObjectLoader(this.store.client)\n .fetch(this.#apiName, this.#pk);\n }\n\n this.store.batch({}, (batch) => {\n this.writeToStore(obj, \"loaded\", batch);\n });\n }\n\n writeToStore(\n data: ObjectHolder,\n status: Status,\n batch: BatchContext,\n ): Entry<ObjectCacheKey> {\n const entry = batch.read(this.cacheKey);\n const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];\n\n this.store.objectCacheKeyRegistry.register(\n this.cacheKey,\n this.#apiName,\n this.#pk,\n rdpConfig,\n );\n\n this.store.objects.propagateWrite(this.cacheKey, data, status, batch);\n\n return batch.read(this.cacheKey)!;\n }\n\n deleteFromStore(\n status: Status,\n batch: BatchContext,\n ): Entry<ObjectCacheKey> | undefined {\n const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];\n\n this.store.objectCacheKeyRegistry.register(\n this.cacheKey,\n this.#apiName,\n this.#pk,\n rdpConfig,\n );\n\n this.store.objects.propagateWrite(\n this.cacheKey,\n tombstone,\n status,\n batch,\n );\n\n return batch.read(this.cacheKey);\n }\n\n invalidateObjectType = (\n objectType: string,\n changes: Changes | undefined,\n ): Promise<void> => {\n if (this.#apiName === objectType) {\n changes?.modified.add(this.cacheKey);\n return this.revalidate(true);\n }\n return Promise.resolve();\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,eAAe,EAAEC,WAAW,EAAEC,GAAG,QAAQ,MAAM;AACxD,SAASC,iBAAiB,QAAQ,oBAAoB;AAQtD,SAASC,mBAAmB,QAAQ,wBAAwB;AAG5D,SAASC,KAAK,QAAQ,aAAa;AAGnC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAA8BC,cAAc,QAAQ,qBAAqB;AAEzE,OAAO,MAAMC,WAAW,SAASH,KAAK,CAIpC;EACA,CAACI,OAAO;EACR,CAACC,EAAE;EAEHC,WAAWA,CACTC,KAAY,EACZC,OAAgD,EAChDC,IAAY,EACZJ,EAAwC,EACxCK,QAAwB,EACxBC,IAA0B,EAC1B;IACA,KAAK,CACHJ,KAAK,EACLC,OAAO,EACPG,IAAI,EACJD,QAAQ,EACRE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAEjCP,KAAK,CAACQ,MAAM,CAACjB,iBAAiB,CAAC,CAACkB,MAAM,EAAEC,KAAK,CAAC,CAAC,CAAC,EAAE;MAChDC,SAAS,EAAE,eACTR,QAAQ,CAACS,SAAS,CAACtB,GAAG,CAACuB,CAAC,IAAIC,IAAI,CAACC,SAAS,CAACF,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;IAE7D,CAAC,CAAC,GAEFC,SACN,CAAC;IACD,IAAI,CAAC,CAACpB,OAAO,GAAGK,IAAI;IACpB,IAAI,CAAC,CAACJ,EAAE,GAAGA,EAAE;EACf;EAEUoB,kBAAkBA,CAC1BjB,OAAmD,EACvB;IAC5B,OAAOZ,WAAW,CAChBY,OAAO,CAACkB,IAAI,CACV7B,GAAG,CAAEuB,CAAC,IAAK;MACT,OAAO;QACLO,MAAM,EAAEP,CAAC,CAACO,MAAM;QAChBC,MAAM,EAAER,CAAC,CAACS,KAAK;QACfC,WAAW,EAAEV,CAAC,CAACU,WAAW;QAC1BC,YAAY,EAAEX,CAAC,CAACW;MAClB,CAAC;IACH,CAAC,CACH,CAAC,EACD;MACEC,SAAS,EAAEA,CAAA,KACT,IAAIrC,eAAe,CAAgB;QACjCgC,MAAM,EAAE,MAAM;QACdC,MAAM,EAAEJ,SAAS;QACjBM,WAAW,EAAE,CAAC;QACdC,YAAY,EAAE;MAChB,CAAC;IACL,CACF,CAAC;EACH;EAEA,MAAME,cAAcA,CAAA,EAAkB;IACpC,IAAIrB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACE,MAAM,EAAEC,KAAK,CAAC;QAAEiB,UAAU,EAAE;MAAiB,CAAC,CAAC,CAACC,KAAK,CACxD,wBACF,CAAC;IACH;;IAEA;IACA;IACA;;IAEA,MAAMC,SAAS,GAAG,IAAI,CAAC1B,QAAQ,CAACS,SAAS,CAACjB,cAAc,CAAC;IAEzD,IAAImC,GAAiB;IAErB,IAAID,SAAS,EAAE;MACb,MAAME,OAAO,GAAG;QACd7B,IAAI,EAAE,QAAiB;QACvBL,OAAO,EAAE,IAAI,CAAC,CAACA;MACjB,CAAyB;MAEzB,MAAMmC,OAAO,GAAG,MAAM,IAAI,CAAChC,KAAK,CAACQ,MAAM,CAACuB,OAAO,CAAC,CAC7CE,cAAc,CACbJ,SACF,CAAC,CACAK,QAAQ,CACP,IAAI,CAAC,CAACpC,EAAE,EACR;QAAEqC,WAAW,EAAE;MAAK,CACtB,CAAC;MACHL,GAAG,GAAGE,OAAuB;IAC/B,CAAC,MAAM;MACL;MACAF,GAAG,GAAG,MAAMtC,mBAAmB,CAAC,IAAI,CAACQ,KAAK,CAACQ,MAAM,CAAC,CAC/C4B,KAAK,CAAC,IAAI,CAAC,CAACvC,OAAO,EAAE,IAAI,CAAC,CAACC,EAAE,CAAC;IACnC;IAEA,IAAI,CAACE,KAAK,CAACqC,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;MAC9B,IAAI,CAACC,YAAY,CAACR,GAAG,EAAE,QAAQ,EAAEO,KAAK,CAAC;IACzC,CAAC,CAAC;EACJ;EAEAC,YAAYA,CACVC,IAAkB,EAClBnB,MAAc,EACdiB,KAAmB,EACI;IACTA,KAAK,CAACG,IAAI,CAAC,IAAI,CAACrC,QAAQ,CAAC;IACvC,MAAM0B,SAAS,GAAG,IAAI,CAAC1B,QAAQ,CAACS,SAAS,CAACjB,cAAc,CAAC;IAEzD,IAAI,CAACK,KAAK,CAACyC,sBAAsB,CAACC,QAAQ,CACxC,IAAI,CAACvC,QAAQ,EACb,IAAI,CAAC,CAACN,OAAO,EACb,IAAI,CAAC,CAACC,EAAE,EACR+B,SACF,CAAC;IAED,IAAI,CAAC7B,KAAK,CAAC2C,OAAO,CAACC,cAAc,CAAC,IAAI,CAACzC,QAAQ,EAAEoC,IAAI,EAAEnB,MAAM,EAAEiB,KAAK,CAAC;IAErE,OAAOA,KAAK,CAACG,IAAI,CAAC,IAAI,CAACrC,QAAQ,CAAC;EAClC;EAEA0C,eAAeA,CACbzB,MAAc,EACdiB,KAAmB,EACgB;IACnC,MAAMR,SAAS,GAAG,IAAI,CAAC1B,QAAQ,CAACS,SAAS,CAACjB,cAAc,CAAC;IAEzD,IAAI,CAACK,KAAK,CAACyC,sBAAsB,CAACC,QAAQ,CACxC,IAAI,CAACvC,QAAQ,EACb,IAAI,CAAC,CAACN,OAAO,EACb,IAAI,CAAC,CAACC,EAAE,EACR+B,SACF,CAAC;IAED,IAAI,CAAC7B,KAAK,CAAC2C,OAAO,CAACC,cAAc,CAC/B,IAAI,CAACzC,QAAQ,EACbT,SAAS,EACT0B,MAAM,EACNiB,KACF,CAAC;IAED,OAAOA,KAAK,CAACG,IAAI,CAAC,IAAI,CAACrC,QAAQ,CAAC;EAClC;EAEA2C,oBAAoB,GAAGA,CACrBC,UAAkB,EAClBC,OAA4B,KACV;IAClB,IAAI,IAAI,CAAC,CAACnD,OAAO,KAAKkD,UAAU,EAAE;MAChCC,OAAO,EAAEC,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC/C,QAAQ,CAAC;MACpC,OAAO,IAAI,CAACgD,UAAU,CAAC,IAAI,CAAC;IAC9B;IACA,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"ObjectQuery.js","names":["BehaviorSubject","connectable","map","additionalContext","getBulkObjectLoader","Query","tombstone","RDP_CONFIG_IDX","ObjectQuery","apiName","pk","defType","implementingTypes","constructor","store","subject","type","cacheKey","opts","process","env","NODE_ENV","client","logger","child","msgPrefix","otherKeys","x","JSON","stringify","join","undefined","_createConnectable","pipe","status","object","value","lastUpdated","isOptimistic","connector","_fetchAndStore","methodName","debug","rdpConfig","obj","miniDef","fetched","withProperties","fetchOne","$includeRid","fetch","batch","writeToStore","data","read","objectCacheKeyRegistry","register","objects","propagateWrite","deleteFromStore","invalidateObjectType","objectType","changes","modified","add","revalidate","interfaceDef","metadata","fetchMetadata","Set","implementedBy","has"],"sources":["ObjectQuery.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 {\n DerivedProperty,\n InterfaceDefinition,\n ObjectTypeDefinition,\n PrimaryKeyType,\n} from \"@osdk/api\";\nimport type { Connectable, Observable, Subject } from \"rxjs\";\nimport { BehaviorSubject, connectable, map } from \"rxjs\";\nimport { additionalContext } from \"../../../Client.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { DefType } from \"../../../util/interfaceUtils.js\";\nimport type { ObjectPayload } from \"../../ObjectPayload.js\";\nimport type {\n CommonObserveOptions,\n Status,\n} from \"../../ObservableClient/common.js\";\nimport type { BatchContext } from \"../BatchContext.js\";\nimport { getBulkObjectLoader } from \"../BulkObjectLoader.js\";\nimport type { Changes } from \"../Changes.js\";\nimport type { Entry } from \"../Layer.js\";\nimport { Query } from \"../Query.js\";\nimport type { Store } from \"../Store.js\";\nimport type { SubjectPayload } from \"../SubjectPayload.js\";\nimport { tombstone } from \"../tombstone.js\";\nimport { type ObjectCacheKey, RDP_CONFIG_IDX } from \"./ObjectCacheKey.js\";\n\nexport class ObjectQuery extends Query<\n ObjectCacheKey,\n ObjectPayload,\n CommonObserveOptions\n> {\n #apiName: string;\n #pk: string | number | boolean;\n #defType: DefType;\n #implementingTypes: Set<string> | undefined;\n\n constructor(\n store: Store,\n subject: Subject<SubjectPayload<ObjectCacheKey>>,\n type: string,\n pk: PrimaryKeyType<ObjectTypeDefinition>,\n cacheKey: ObjectCacheKey,\n opts: CommonObserveOptions,\n defType: DefType = \"object\",\n ) {\n super(\n store,\n subject,\n opts,\n cacheKey,\n process.env.NODE_ENV !== \"production\"\n ? (\n store.client[additionalContext].logger?.child({}, {\n msgPrefix: `ObjectQuery<${\n cacheKey.otherKeys.map(x => JSON.stringify(x)).join(\", \")\n }>`,\n })\n )\n : undefined,\n );\n this.#apiName = type;\n this.#pk = pk;\n this.#defType = defType;\n }\n\n protected _createConnectable(\n subject: Observable<SubjectPayload<ObjectCacheKey>>,\n ): Connectable<ObjectPayload> {\n return connectable<ObjectPayload>(\n subject.pipe(\n map((x) => {\n return {\n status: x.status,\n object: x.value,\n lastUpdated: x.lastUpdated,\n isOptimistic: x.isOptimistic,\n };\n }),\n ),\n {\n connector: () =>\n new BehaviorSubject<ObjectPayload>({\n status: \"init\",\n object: undefined,\n lastUpdated: 0,\n isOptimistic: false,\n }),\n },\n );\n }\n\n async _fetchAndStore(): Promise<void> {\n if (process.env.NODE_ENV !== \"production\") {\n this.logger?.child({ methodName: \"_fetchAndStore\" }).debug(\n \"calling _fetchAndStore\",\n );\n }\n\n // TODO: In the future, implement tracking of network requests to ensure\n // we're not making unnecessary network calls. This would need dedicated\n // tests separate from subscription notification tests.\n\n const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];\n\n let obj: ObjectHolder;\n\n if (rdpConfig) {\n const miniDef = {\n type: this.#defType,\n apiName: this.#apiName,\n } as ObjectTypeDefinition;\n\n const fetched = await this.store.client(miniDef)\n .withProperties(\n rdpConfig as DerivedProperty.Clause<ObjectTypeDefinition>,\n )\n .fetchOne(\n this.#pk as PrimaryKeyType<ObjectTypeDefinition>,\n { $includeRid: true },\n );\n obj = fetched as ObjectHolder;\n } else {\n // Use batched loader for non-RDP objects (efficient batching)\n obj = await getBulkObjectLoader(this.store.client)\n .fetch(this.#apiName, this.#pk, this.#defType);\n }\n\n this.store.batch({}, (batch) => {\n this.writeToStore(obj, \"loaded\", batch);\n });\n }\n\n writeToStore(\n data: ObjectHolder,\n status: Status,\n batch: BatchContext,\n ): Entry<ObjectCacheKey> {\n const entry = batch.read(this.cacheKey);\n const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];\n\n this.store.objectCacheKeyRegistry.register(\n this.cacheKey,\n this.#apiName,\n this.#pk,\n rdpConfig,\n );\n\n this.store.objects.propagateWrite(this.cacheKey, data, status, batch);\n\n return batch.read(this.cacheKey)!;\n }\n\n deleteFromStore(\n status: Status,\n batch: BatchContext,\n ): Entry<ObjectCacheKey> | undefined {\n const rdpConfig = this.cacheKey.otherKeys[RDP_CONFIG_IDX];\n\n this.store.objectCacheKeyRegistry.register(\n this.cacheKey,\n this.#apiName,\n this.#pk,\n rdpConfig,\n );\n\n this.store.objects.propagateWrite(\n this.cacheKey,\n tombstone,\n status,\n batch,\n );\n\n return batch.read(this.cacheKey);\n }\n\n invalidateObjectType = async (\n objectType: string,\n changes: Changes | undefined,\n ): Promise<void> => {\n if (this.#defType === \"object\") {\n if (this.#apiName === objectType) {\n changes?.modified.add(this.cacheKey);\n return this.revalidate(true);\n }\n return;\n }\n\n if (!this.#implementingTypes) {\n const interfaceDef = {\n type: \"interface\",\n apiName: this.#apiName,\n } as InterfaceDefinition;\n const metadata = await this.store.client.fetchMetadata(interfaceDef);\n this.#implementingTypes = new Set(metadata.implementedBy ?? []);\n }\n\n if (this.#implementingTypes.has(objectType)) {\n changes?.modified.add(this.cacheKey);\n return this.revalidate(true);\n }\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,SAASA,eAAe,EAAEC,WAAW,EAAEC,GAAG,QAAQ,MAAM;AACxD,SAASC,iBAAiB,QAAQ,oBAAoB;AAStD,SAASC,mBAAmB,QAAQ,wBAAwB;AAG5D,SAASC,KAAK,QAAQ,aAAa;AAGnC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAA8BC,cAAc,QAAQ,qBAAqB;AAEzE,OAAO,MAAMC,WAAW,SAASH,KAAK,CAIpC;EACA,CAACI,OAAO;EACR,CAACC,EAAE;EACH,CAACC,OAAO;EACR,CAACC,iBAAiB;EAElBC,WAAWA,CACTC,KAAY,EACZC,OAAgD,EAChDC,IAAY,EACZN,EAAwC,EACxCO,QAAwB,EACxBC,IAA0B,EAC1BP,OAAgB,GAAG,QAAQ,EAC3B;IACA,KAAK,CACHG,KAAK,EACLC,OAAO,EACPG,IAAI,EACJD,QAAQ,EACRE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAEjCP,KAAK,CAACQ,MAAM,CAACnB,iBAAiB,CAAC,CAACoB,MAAM,EAAEC,KAAK,CAAC,CAAC,CAAC,EAAE;MAChDC,SAAS,EAAE,eACTR,QAAQ,CAACS,SAAS,CAACxB,GAAG,CAACyB,CAAC,IAAIC,IAAI,CAACC,SAAS,CAACF,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;IAE7D,CAAC,CAAC,GAEFC,SACN,CAAC;IACD,IAAI,CAAC,CAACtB,OAAO,GAAGO,IAAI;IACpB,IAAI,CAAC,CAACN,EAAE,GAAGA,EAAE;IACb,IAAI,CAAC,CAACC,OAAO,GAAGA,OAAO;EACzB;EAEUqB,kBAAkBA,CAC1BjB,OAAmD,EACvB;IAC5B,OAAOd,WAAW,CAChBc,OAAO,CAACkB,IAAI,CACV/B,GAAG,CAAEyB,CAAC,IAAK;MACT,OAAO;QACLO,MAAM,EAAEP,CAAC,CAACO,MAAM;QAChBC,MAAM,EAAER,CAAC,CAACS,KAAK;QACfC,WAAW,EAAEV,CAAC,CAACU,WAAW;QAC1BC,YAAY,EAAEX,CAAC,CAACW;MAClB,CAAC;IACH,CAAC,CACH,CAAC,EACD;MACEC,SAAS,EAAEA,CAAA,KACT,IAAIvC,eAAe,CAAgB;QACjCkC,MAAM,EAAE,MAAM;QACdC,MAAM,EAAEJ,SAAS;QACjBM,WAAW,EAAE,CAAC;QACdC,YAAY,EAAE;MAChB,CAAC;IACL,CACF,CAAC;EACH;EAEA,MAAME,cAAcA,CAAA,EAAkB;IACpC,IAAIrB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,CAACE,MAAM,EAAEC,KAAK,CAAC;QAAEiB,UAAU,EAAE;MAAiB,CAAC,CAAC,CAACC,KAAK,CACxD,wBACF,CAAC;IACH;;IAEA;IACA;IACA;;IAEA,MAAMC,SAAS,GAAG,IAAI,CAAC1B,QAAQ,CAACS,SAAS,CAACnB,cAAc,CAAC;IAEzD,IAAIqC,GAAiB;IAErB,IAAID,SAAS,EAAE;MACb,MAAME,OAAO,GAAG;QACd7B,IAAI,EAAE,IAAI,CAAC,CAACL,OAAO;QACnBF,OAAO,EAAE,IAAI,CAAC,CAACA;MACjB,CAAyB;MAEzB,MAAMqC,OAAO,GAAG,MAAM,IAAI,CAAChC,KAAK,CAACQ,MAAM,CAACuB,OAAO,CAAC,CAC7CE,cAAc,CACbJ,SACF,CAAC,CACAK,QAAQ,CACP,IAAI,CAAC,CAACtC,EAAE,EACR;QAAEuC,WAAW,EAAE;MAAK,CACtB,CAAC;MACHL,GAAG,GAAGE,OAAuB;IAC/B,CAAC,MAAM;MACL;MACAF,GAAG,GAAG,MAAMxC,mBAAmB,CAAC,IAAI,CAACU,KAAK,CAACQ,MAAM,CAAC,CAC/C4B,KAAK,CAAC,IAAI,CAAC,CAACzC,OAAO,EAAE,IAAI,CAAC,CAACC,EAAE,EAAE,IAAI,CAAC,CAACC,OAAO,CAAC;IAClD;IAEA,IAAI,CAACG,KAAK,CAACqC,KAAK,CAAC,CAAC,CAAC,EAAGA,KAAK,IAAK;MAC9B,IAAI,CAACC,YAAY,CAACR,GAAG,EAAE,QAAQ,EAAEO,KAAK,CAAC;IACzC,CAAC,CAAC;EACJ;EAEAC,YAAYA,CACVC,IAAkB,EAClBnB,MAAc,EACdiB,KAAmB,EACI;IACTA,KAAK,CAACG,IAAI,CAAC,IAAI,CAACrC,QAAQ,CAAC;IACvC,MAAM0B,SAAS,GAAG,IAAI,CAAC1B,QAAQ,CAACS,SAAS,CAACnB,cAAc,CAAC;IAEzD,IAAI,CAACO,KAAK,CAACyC,sBAAsB,CAACC,QAAQ,CACxC,IAAI,CAACvC,QAAQ,EACb,IAAI,CAAC,CAACR,OAAO,EACb,IAAI,CAAC,CAACC,EAAE,EACRiC,SACF,CAAC;IAED,IAAI,CAAC7B,KAAK,CAAC2C,OAAO,CAACC,cAAc,CAAC,IAAI,CAACzC,QAAQ,EAAEoC,IAAI,EAAEnB,MAAM,EAAEiB,KAAK,CAAC;IAErE,OAAOA,KAAK,CAACG,IAAI,CAAC,IAAI,CAACrC,QAAQ,CAAC;EAClC;EAEA0C,eAAeA,CACbzB,MAAc,EACdiB,KAAmB,EACgB;IACnC,MAAMR,SAAS,GAAG,IAAI,CAAC1B,QAAQ,CAACS,SAAS,CAACnB,cAAc,CAAC;IAEzD,IAAI,CAACO,KAAK,CAACyC,sBAAsB,CAACC,QAAQ,CACxC,IAAI,CAACvC,QAAQ,EACb,IAAI,CAAC,CAACR,OAAO,EACb,IAAI,CAAC,CAACC,EAAE,EACRiC,SACF,CAAC;IAED,IAAI,CAAC7B,KAAK,CAAC2C,OAAO,CAACC,cAAc,CAC/B,IAAI,CAACzC,QAAQ,EACbX,SAAS,EACT4B,MAAM,EACNiB,KACF,CAAC;IAED,OAAOA,KAAK,CAACG,IAAI,CAAC,IAAI,CAACrC,QAAQ,CAAC;EAClC;EAEA2C,oBAAoB,GAAG,MAAAA,CACrBC,UAAkB,EAClBC,OAA4B,KACV;IAClB,IAAI,IAAI,CAAC,CAACnD,OAAO,KAAK,QAAQ,EAAE;MAC9B,IAAI,IAAI,CAAC,CAACF,OAAO,KAAKoD,UAAU,EAAE;QAChCC,OAAO,EAAEC,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC/C,QAAQ,CAAC;QACpC,OAAO,IAAI,CAACgD,UAAU,CAAC,IAAI,CAAC;MAC9B;MACA;IACF;IAEA,IAAI,CAAC,IAAI,CAAC,CAACrD,iBAAiB,EAAE;MAC5B,MAAMsD,YAAY,GAAG;QACnBlD,IAAI,EAAE,WAAW;QACjBP,OAAO,EAAE,IAAI,CAAC,CAACA;MACjB,CAAwB;MACxB,MAAM0D,QAAQ,GAAG,MAAM,IAAI,CAACrD,KAAK,CAACQ,MAAM,CAAC8C,aAAa,CAACF,YAAY,CAAC;MACpE,IAAI,CAAC,CAACtD,iBAAiB,GAAG,IAAIyD,GAAG,CAACF,QAAQ,CAACG,aAAa,IAAI,EAAE,CAAC;IACjE;IAEA,IAAI,IAAI,CAAC,CAAC1D,iBAAiB,CAAC2D,GAAG,CAACV,UAAU,CAAC,EAAE;MAC3CC,OAAO,EAAEC,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC/C,QAAQ,CAAC;MACpC,OAAO,IAAI,CAACgD,UAAU,CAAC,IAAI,CAAC;IAC9B;EACF,CAAC;AACH","ignoreList":[]}
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import deepEqual from "fast-deep-equal";
18
+ import { getDefType } from "../../../util/interfaceUtils.js";
18
19
  import { AbstractHelper } from "../AbstractHelper.js";
19
20
  import { tombstone } from "../tombstone.js";
20
21
  import { mergeObjectFields } from "../utils/rdpFieldOperations.js";
@@ -28,10 +29,11 @@ export class ObjectsHelper extends AbstractHelper {
28
29
  const {
29
30
  pk
30
31
  } = options;
32
+ const defType = getDefType(options.apiName);
31
33
  const objectCacheKey = this.cacheKeys.get("object", apiName, pk, rdpConfig ?? undefined);
32
34
  return this.store.queries.get(objectCacheKey, () => new ObjectQuery(this.store, this.store.subjects.get(objectCacheKey), apiName, pk, objectCacheKey, {
33
35
  dedupeInterval: 0
34
- }));
36
+ }, defType));
35
37
  }
36
38
 
37
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectsHelper.js","names":["deepEqual","AbstractHelper","tombstone","mergeObjectFields","ObjectQuery","ObjectsHelper","observe","options","subFn","getQuery","rdpConfig","apiName","pk","objectCacheKey","cacheKeys","get","undefined","store","queries","subjects","dedupeInterval","storeOsdkInstances","values","batch","map","v","$objectType","$apiName","$primaryKey","writeToStore","cacheKey","propagateWrite","sourceCacheKey","value","status","existing","read","dataChanged","statusChanged","valueToWrite","write","changes","registerObject","metadata","objectCacheKeyRegistry","getMetadata","relatedKeys","getVariants","primaryKey","Set","targetKey","isKeyActive","targetCurrentValue","merged","mergeForTarget","isObjectHolder","key","subject","peek","observed","sourceValue","targetCacheKey","sourceRdpFields","getRdpFieldSet","targetRdpFields"],"sources":["ObjectsHelper.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 {\n InterfaceDefinition,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\nimport deepEqual from \"fast-deep-equal\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { ObjectPayload } from \"../../ObjectPayload.js\";\nimport type { ObserveObjectOptions } from \"../../ObservableClient.js\";\nimport type { Observer, Status } from \"../../ObservableClient/common.js\";\nimport { AbstractHelper } from \"../AbstractHelper.js\";\nimport type { BatchContext } from \"../BatchContext.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { QuerySubscription } from \"../QuerySubscription.js\";\nimport type { Rdp } from \"../RdpCanonicalizer.js\";\nimport { tombstone } from \"../tombstone.js\";\nimport { mergeObjectFields } from \"../utils/rdpFieldOperations.js\";\nimport { type ObjectCacheKey } from \"./ObjectCacheKey.js\";\nimport { ObjectQuery } from \"./ObjectQuery.js\";\n\nexport class ObjectsHelper extends AbstractHelper<\n ObjectQuery,\n ObserveObjectOptions<any>\n> {\n observe<T extends ObjectTypeDefinition | InterfaceDefinition>(\n options: ObserveObjectOptions<T>,\n subFn: Observer<ObjectPayload>,\n ): QuerySubscription<ObjectQuery> {\n return super.observe(options, subFn);\n }\n\n getQuery<T extends ObjectTypeDefinition | InterfaceDefinition>(\n options: ObserveObjectOptions<T>,\n rdpConfig?: Canonical<Rdp> | null,\n ): ObjectQuery {\n const apiName = typeof options.apiName === \"string\"\n ? options.apiName\n : options.apiName.apiName;\n const { pk } = options;\n\n const objectCacheKey = this.cacheKeys.get<ObjectCacheKey>(\n \"object\",\n apiName,\n pk,\n rdpConfig ?? undefined,\n );\n\n return this.store.queries.get(objectCacheKey, () =>\n new ObjectQuery(\n this.store,\n this.store.subjects.get(objectCacheKey),\n apiName,\n pk,\n objectCacheKey,\n { dedupeInterval: 0 },\n ));\n }\n\n /**\n * Internal helper method for writing objects to the store and returning their\n * object keys. For list queries with RDPs, the rdpConfig is included in the\n * cache key to ensure proper data isolation.\n * @internal\n */\n public storeOsdkInstances(\n values: Array<ObjectHolder> | Array<Osdk.Instance<any, any, any>>,\n batch: BatchContext,\n rdpConfig?: Canonical<Rdp> | null,\n ): ObjectCacheKey[] {\n return values.map(v =>\n this.getQuery({\n apiName: v.$objectType ?? v.$apiName,\n pk: v.$primaryKey as string | number,\n }, rdpConfig).writeToStore(\n v as ObjectHolder,\n \"loaded\",\n batch,\n ).cacheKey\n );\n }\n\n /**\n * Write an object to cache and propagate to all related cache keys\n * @internal\n */\n public propagateWrite(\n sourceCacheKey: ObjectCacheKey,\n value: ObjectHolder | typeof tombstone,\n status: Status,\n batch: BatchContext,\n ): void {\n const existing = batch.read(sourceCacheKey);\n const dataChanged = !existing\n || existing.value === undefined\n || value === tombstone\n || !deepEqual(existing.value, value);\n const statusChanged = !existing || existing.status !== status;\n\n if (!dataChanged && !statusChanged) {\n return;\n }\n\n const valueToWrite = !dataChanged && existing ? existing.value : value;\n batch.write(sourceCacheKey, valueToWrite, status);\n\n if (value !== tombstone) {\n batch.changes.registerObject(sourceCacheKey, value, !existing);\n }\n\n const metadata = this.store.objectCacheKeyRegistry.getMetadata(\n sourceCacheKey,\n );\n\n const relatedKeys = metadata\n ? this.store.objectCacheKeyRegistry.getVariants(\n metadata.apiName,\n metadata.primaryKey,\n )\n : new Set([sourceCacheKey]);\n\n for (const targetKey of relatedKeys) {\n if (targetKey === sourceCacheKey || !this.isKeyActive(targetKey)) {\n continue;\n }\n\n if (value === tombstone) {\n batch.write(targetKey, tombstone, status);\n continue;\n }\n\n const targetCurrentValue = batch.read(targetKey)?.value;\n const merged = this.mergeForTarget(\n value,\n targetCurrentValue && this.isObjectHolder(targetCurrentValue)\n ? targetCurrentValue\n : undefined,\n sourceCacheKey,\n targetKey,\n );\n\n batch.write(targetKey, merged, status);\n }\n }\n\n /**\n * Check if a cache key is actively observed\n */\n private isKeyActive(key: ObjectCacheKey): boolean {\n const subject = this.store.subjects.peek(key);\n return subject?.observed === true;\n }\n\n /**\n * Type guard to check if a value is an ObjectHolder\n */\n private isObjectHolder(\n value: ObjectHolder | undefined,\n ): value is ObjectHolder {\n return value != null\n && typeof value === \"object\"\n && \"$apiName\" in value\n && \"$primaryKey\" in value;\n }\n\n /**\n * Merge object data for a specific target cache key, preserving RDP fields\n */\n private mergeForTarget(\n sourceValue: ObjectHolder,\n targetCurrentValue: ObjectHolder | undefined,\n sourceCacheKey: ObjectCacheKey,\n targetCacheKey: ObjectCacheKey,\n ): ObjectHolder {\n const sourceRdpFields = this.store.objectCacheKeyRegistry.getRdpFieldSet(\n sourceCacheKey,\n );\n const targetRdpFields = this.store.objectCacheKeyRegistry.getRdpFieldSet(\n targetCacheKey,\n );\n\n return mergeObjectFields(\n sourceValue,\n sourceRdpFields,\n targetRdpFields,\n targetCurrentValue,\n );\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,OAAOA,SAAS,MAAM,iBAAiB;AAKvC,SAASC,cAAc,QAAQ,sBAAsB;AAKrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,SAASC,WAAW,QAAQ,kBAAkB;AAE9C,OAAO,MAAMC,aAAa,SAASJ,cAAc,CAG/C;EACAK,OAAOA,CACLC,OAAgC,EAChCC,KAA8B,EACE;IAChC,OAAO,KAAK,CAACF,OAAO,CAACC,OAAO,EAAEC,KAAK,CAAC;EACtC;EAEAC,QAAQA,CACNF,OAAgC,EAChCG,SAAiC,EACpB;IACb,MAAMC,OAAO,GAAG,OAAOJ,OAAO,CAACI,OAAO,KAAK,QAAQ,GAC/CJ,OAAO,CAACI,OAAO,GACfJ,OAAO,CAACI,OAAO,CAACA,OAAO;IAC3B,MAAM;MAAEC;IAAG,CAAC,GAAGL,OAAO;IAEtB,MAAMM,cAAc,GAAG,IAAI,CAACC,SAAS,CAACC,GAAG,CACvC,QAAQ,EACRJ,OAAO,EACPC,EAAE,EACFF,SAAS,IAAIM,SACf,CAAC;IAED,OAAO,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,GAAG,CAACF,cAAc,EAAE,MAC5C,IAAIT,WAAW,CACb,IAAI,CAACa,KAAK,EACV,IAAI,CAACA,KAAK,CAACE,QAAQ,CAACJ,GAAG,CAACF,cAAc,CAAC,EACvCF,OAAO,EACPC,EAAE,EACFC,cAAc,EACd;MAAEO,cAAc,EAAE;IAAE,CACtB,CAAC,CAAC;EACN;;EAEA;AACF;AACA;AACA;AACA;AACA;EACSC,kBAAkBA,CACvBC,MAAiE,EACjEC,KAAmB,EACnBb,SAAiC,EACf;IAClB,OAAOY,MAAM,CAACE,GAAG,CAACC,CAAC,IACjB,IAAI,CAAChB,QAAQ,CAAC;MACZE,OAAO,EAAEc,CAAC,CAACC,WAAW,IAAID,CAAC,CAACE,QAAQ;MACpCf,EAAE,EAAEa,CAAC,CAACG;IACR,CAAC,EAAElB,SAAS,CAAC,CAACmB,YAAY,CACxBJ,CAAC,EACD,QAAQ,EACRF,KACF,CAAC,CAACO,QACJ,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACSC,cAAcA,CACnBC,cAA8B,EAC9BC,KAAsC,EACtCC,MAAc,EACdX,KAAmB,EACb;IACN,MAAMY,QAAQ,GAAGZ,KAAK,CAACa,IAAI,CAACJ,cAAc,CAAC;IAC3C,MAAMK,WAAW,GAAG,CAACF,QAAQ,IACxBA,QAAQ,CAACF,KAAK,KAAKjB,SAAS,IAC5BiB,KAAK,KAAK/B,SAAS,IACnB,CAACF,SAAS,CAACmC,QAAQ,CAACF,KAAK,EAAEA,KAAK,CAAC;IACtC,MAAMK,aAAa,GAAG,CAACH,QAAQ,IAAIA,QAAQ,CAACD,MAAM,KAAKA,MAAM;IAE7D,IAAI,CAACG,WAAW,IAAI,CAACC,aAAa,EAAE;MAClC;IACF;IAEA,MAAMC,YAAY,GAAG,CAACF,WAAW,IAAIF,QAAQ,GAAGA,QAAQ,CAACF,KAAK,GAAGA,KAAK;IACtEV,KAAK,CAACiB,KAAK,CAACR,cAAc,EAAEO,YAAY,EAAEL,MAAM,CAAC;IAEjD,IAAID,KAAK,KAAK/B,SAAS,EAAE;MACvBqB,KAAK,CAACkB,OAAO,CAACC,cAAc,CAACV,cAAc,EAAEC,KAAK,EAAE,CAACE,QAAQ,CAAC;IAChE;IAEA,MAAMQ,QAAQ,GAAG,IAAI,CAAC1B,KAAK,CAAC2B,sBAAsB,CAACC,WAAW,CAC5Db,cACF,CAAC;IAED,MAAMc,WAAW,GAAGH,QAAQ,GACxB,IAAI,CAAC1B,KAAK,CAAC2B,sBAAsB,CAACG,WAAW,CAC7CJ,QAAQ,CAAChC,OAAO,EAChBgC,QAAQ,CAACK,UACX,CAAC,GACC,IAAIC,GAAG,CAAC,CAACjB,cAAc,CAAC,CAAC;IAE7B,KAAK,MAAMkB,SAAS,IAAIJ,WAAW,EAAE;MACnC,IAAII,SAAS,KAAKlB,cAAc,IAAI,CAAC,IAAI,CAACmB,WAAW,CAACD,SAAS,CAAC,EAAE;QAChE;MACF;MAEA,IAAIjB,KAAK,KAAK/B,SAAS,EAAE;QACvBqB,KAAK,CAACiB,KAAK,CAACU,SAAS,EAAEhD,SAAS,EAAEgC,MAAM,CAAC;QACzC;MACF;MAEA,MAAMkB,kBAAkB,GAAG7B,KAAK,CAACa,IAAI,CAACc,SAAS,CAAC,EAAEjB,KAAK;MACvD,MAAMoB,MAAM,GAAG,IAAI,CAACC,cAAc,CAChCrB,KAAK,EACLmB,kBAAkB,IAAI,IAAI,CAACG,cAAc,CAACH,kBAAkB,CAAC,GACzDA,kBAAkB,GAClBpC,SAAS,EACbgB,cAAc,EACdkB,SACF,CAAC;MAED3B,KAAK,CAACiB,KAAK,CAACU,SAAS,EAAEG,MAAM,EAAEnB,MAAM,CAAC;IACxC;EACF;;EAEA;AACF;AACA;EACUiB,WAAWA,CAACK,GAAmB,EAAW;IAChD,MAAMC,OAAO,GAAG,IAAI,CAACxC,KAAK,CAACE,QAAQ,CAACuC,IAAI,CAACF,GAAG,CAAC;IAC7C,OAAOC,OAAO,EAAEE,QAAQ,KAAK,IAAI;EACnC;;EAEA;AACF;AACA;EACUJ,cAAcA,CACpBtB,KAA+B,EACR;IACvB,OAAOA,KAAK,IAAI,IAAI,IACf,OAAOA,KAAK,KAAK,QAAQ,IACzB,UAAU,IAAIA,KAAK,IACnB,aAAa,IAAIA,KAAK;EAC7B;;EAEA;AACF;AACA;EACUqB,cAAcA,CACpBM,WAAyB,EACzBR,kBAA4C,EAC5CpB,cAA8B,EAC9B6B,cAA8B,EAChB;IACd,MAAMC,eAAe,GAAG,IAAI,CAAC7C,KAAK,CAAC2B,sBAAsB,CAACmB,cAAc,CACtE/B,cACF,CAAC;IACD,MAAMgC,eAAe,GAAG,IAAI,CAAC/C,KAAK,CAAC2B,sBAAsB,CAACmB,cAAc,CACtEF,cACF,CAAC;IAED,OAAO1D,iBAAiB,CACtByD,WAAW,EACXE,eAAe,EACfE,eAAe,EACfZ,kBACF,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"ObjectsHelper.js","names":["deepEqual","getDefType","AbstractHelper","tombstone","mergeObjectFields","ObjectQuery","ObjectsHelper","observe","options","subFn","getQuery","rdpConfig","apiName","pk","defType","objectCacheKey","cacheKeys","get","undefined","store","queries","subjects","dedupeInterval","storeOsdkInstances","values","batch","map","v","$objectType","$apiName","$primaryKey","writeToStore","cacheKey","propagateWrite","sourceCacheKey","value","status","existing","read","dataChanged","statusChanged","valueToWrite","write","changes","registerObject","metadata","objectCacheKeyRegistry","getMetadata","relatedKeys","getVariants","primaryKey","Set","targetKey","isKeyActive","targetCurrentValue","merged","mergeForTarget","isObjectHolder","key","subject","peek","observed","sourceValue","targetCacheKey","sourceRdpFields","getRdpFieldSet","targetRdpFields"],"sources":["ObjectsHelper.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 {\n InterfaceDefinition,\n ObjectTypeDefinition,\n Osdk,\n} from \"@osdk/api\";\nimport deepEqual from \"fast-deep-equal\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport { getDefType } from \"../../../util/interfaceUtils.js\";\nimport type { ObjectPayload } from \"../../ObjectPayload.js\";\nimport type { ObserveObjectOptions } from \"../../ObservableClient.js\";\nimport type { Observer, Status } from \"../../ObservableClient/common.js\";\nimport { AbstractHelper } from \"../AbstractHelper.js\";\nimport type { BatchContext } from \"../BatchContext.js\";\nimport type { Canonical } from \"../Canonical.js\";\nimport type { QuerySubscription } from \"../QuerySubscription.js\";\nimport type { Rdp } from \"../RdpCanonicalizer.js\";\nimport { tombstone } from \"../tombstone.js\";\nimport { mergeObjectFields } from \"../utils/rdpFieldOperations.js\";\nimport { type ObjectCacheKey } from \"./ObjectCacheKey.js\";\nimport { ObjectQuery } from \"./ObjectQuery.js\";\n\nexport class ObjectsHelper extends AbstractHelper<\n ObjectQuery,\n ObserveObjectOptions<any>\n> {\n observe<T extends ObjectTypeDefinition | InterfaceDefinition>(\n options: ObserveObjectOptions<T>,\n subFn: Observer<ObjectPayload>,\n ): QuerySubscription<ObjectQuery> {\n return super.observe(options, subFn);\n }\n\n getQuery<T extends ObjectTypeDefinition | InterfaceDefinition>(\n options: ObserveObjectOptions<T>,\n rdpConfig?: Canonical<Rdp> | null,\n ): ObjectQuery {\n const apiName = typeof options.apiName === \"string\"\n ? options.apiName\n : options.apiName.apiName;\n const { pk } = options;\n\n const defType = getDefType(options.apiName);\n\n const objectCacheKey = this.cacheKeys.get<ObjectCacheKey>(\n \"object\",\n apiName,\n pk,\n rdpConfig ?? undefined,\n );\n\n return this.store.queries.get(objectCacheKey, () =>\n new ObjectQuery(\n this.store,\n this.store.subjects.get(objectCacheKey),\n apiName,\n pk,\n objectCacheKey,\n { dedupeInterval: 0 },\n defType,\n ));\n }\n\n /**\n * Internal helper method for writing objects to the store and returning their\n * object keys. For list queries with RDPs, the rdpConfig is included in the\n * cache key to ensure proper data isolation.\n * @internal\n */\n public storeOsdkInstances(\n values: Array<ObjectHolder> | Array<Osdk.Instance<any, any, any>>,\n batch: BatchContext,\n rdpConfig?: Canonical<Rdp> | null,\n ): ObjectCacheKey[] {\n return values.map(v =>\n this.getQuery({\n apiName: v.$objectType ?? v.$apiName,\n pk: v.$primaryKey as string | number,\n }, rdpConfig).writeToStore(\n v as ObjectHolder,\n \"loaded\",\n batch,\n ).cacheKey\n );\n }\n\n /**\n * Write an object to cache and propagate to all related cache keys\n * @internal\n */\n public propagateWrite(\n sourceCacheKey: ObjectCacheKey,\n value: ObjectHolder | typeof tombstone,\n status: Status,\n batch: BatchContext,\n ): void {\n const existing = batch.read(sourceCacheKey);\n const dataChanged = !existing\n || existing.value === undefined\n || value === tombstone\n || !deepEqual(existing.value, value);\n const statusChanged = !existing || existing.status !== status;\n\n if (!dataChanged && !statusChanged) {\n return;\n }\n\n const valueToWrite = !dataChanged && existing ? existing.value : value;\n batch.write(sourceCacheKey, valueToWrite, status);\n\n if (value !== tombstone) {\n batch.changes.registerObject(sourceCacheKey, value, !existing);\n }\n\n const metadata = this.store.objectCacheKeyRegistry.getMetadata(\n sourceCacheKey,\n );\n\n const relatedKeys = metadata\n ? this.store.objectCacheKeyRegistry.getVariants(\n metadata.apiName,\n metadata.primaryKey,\n )\n : new Set([sourceCacheKey]);\n\n for (const targetKey of relatedKeys) {\n if (targetKey === sourceCacheKey || !this.isKeyActive(targetKey)) {\n continue;\n }\n\n if (value === tombstone) {\n batch.write(targetKey, tombstone, status);\n continue;\n }\n\n const targetCurrentValue = batch.read(targetKey)?.value;\n const merged = this.mergeForTarget(\n value,\n targetCurrentValue && this.isObjectHolder(targetCurrentValue)\n ? targetCurrentValue\n : undefined,\n sourceCacheKey,\n targetKey,\n );\n\n batch.write(targetKey, merged, status);\n }\n }\n\n /**\n * Check if a cache key is actively observed\n */\n private isKeyActive(key: ObjectCacheKey): boolean {\n const subject = this.store.subjects.peek(key);\n return subject?.observed === true;\n }\n\n /**\n * Type guard to check if a value is an ObjectHolder\n */\n private isObjectHolder(\n value: ObjectHolder | undefined,\n ): value is ObjectHolder {\n return value != null\n && typeof value === \"object\"\n && \"$apiName\" in value\n && \"$primaryKey\" in value;\n }\n\n /**\n * Merge object data for a specific target cache key, preserving RDP fields\n */\n private mergeForTarget(\n sourceValue: ObjectHolder,\n targetCurrentValue: ObjectHolder | undefined,\n sourceCacheKey: ObjectCacheKey,\n targetCacheKey: ObjectCacheKey,\n ): ObjectHolder {\n const sourceRdpFields = this.store.objectCacheKeyRegistry.getRdpFieldSet(\n sourceCacheKey,\n );\n const targetRdpFields = this.store.objectCacheKeyRegistry.getRdpFieldSet(\n targetCacheKey,\n );\n\n return mergeObjectFields(\n sourceValue,\n sourceRdpFields,\n targetRdpFields,\n targetCurrentValue,\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export const USER_AGENT = `osdk-client/${"2.7.1"}`;
18
- export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.7.1"}`;
17
+ export const USER_AGENT = `osdk-client/${"2.7.3"}`;
18
+ export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.7.3"}`;
19
19
  //# sourceMappingURL=UserAgent.js.map
@@ -14,6 +14,13 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ /** Type representing whether a definition is an object or interface */
18
+
19
+ /** @internal */
20
+ export function getDefType(apiNameOrDef) {
21
+ return typeof apiNameOrDef === "string" ? "object" : apiNameOrDef.type;
22
+ }
23
+
17
24
  /** @internal */
18
25
  export function isInterfaceActionParam(o) {
19
26
  return o != null && typeof o === "object" && "$objectType" in o && "$primaryKey" in o;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaceUtils.js","names":["isInterfaceActionParam","o","isInterfaceQueryParam","isInterfaceSpecifier","$objectType","$apiName"],"sources":["interfaceUtils.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 { ActionParam, PrimaryKeyTypes, QueryParam } from \"@osdk/api\";\n\n/** @internal */\nexport function isInterfaceActionParam(\n o: any,\n): o is ActionParam.InterfaceType<any> {\n return o != null && typeof o === \"object\"\n && \"$objectType\" in o && \"$primaryKey\" in o;\n}\n\n/** @internal */\nexport function isInterfaceQueryParam(\n o: any,\n): o is QueryParam.InterfaceType<any> {\n return o != null && typeof o === \"object\"\n && \"$objectType\" in o && \"$primaryKey\" in o;\n}\n\n/** @internal */\nexport function isInterfaceSpecifier(\n o: any,\n): o is {\n $apiName: string;\n $objectType: string;\n $primaryKey: PrimaryKeyTypes;\n} {\n return o != null && typeof o === \"object\"\n && \"$objectType\" in o && \"$primaryKey\" in o && o.$objectType !== o.$apiName;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA,OAAO,SAASA,sBAAsBA,CACpCC,CAAM,EAC+B;EACrC,OAAOA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,IACpC,aAAa,IAAIA,CAAC,IAAI,aAAa,IAAIA,CAAC;AAC/C;;AAEA;AACA,OAAO,SAASC,qBAAqBA,CACnCD,CAAM,EAC8B;EACpC,OAAOA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,IACpC,aAAa,IAAIA,CAAC,IAAI,aAAa,IAAIA,CAAC;AAC/C;;AAEA;AACA,OAAO,SAASE,oBAAoBA,CAClCF,CAAM,EAKN;EACA,OAAOA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,IACpC,aAAa,IAAIA,CAAC,IAAI,aAAa,IAAIA,CAAC,IAAIA,CAAC,CAACG,WAAW,KAAKH,CAAC,CAACI,QAAQ;AAC/E","ignoreList":[]}
1
+ {"version":3,"file":"interfaceUtils.js","names":["getDefType","apiNameOrDef","type","isInterfaceActionParam","o","isInterfaceQueryParam","isInterfaceSpecifier","$objectType","$apiName"],"sources":["interfaceUtils.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 {\n ActionParam,\n ObjectOrInterfaceDefinition,\n PrimaryKeyTypes,\n QueryParam,\n} from \"@osdk/api\";\n\n/** Type representing whether a definition is an object or interface */\nexport type DefType = \"object\" | \"interface\";\n\n/** @internal */\nexport function getDefType(\n apiNameOrDef: string | ObjectOrInterfaceDefinition,\n): DefType {\n return typeof apiNameOrDef === \"string\" ? \"object\" : apiNameOrDef.type;\n}\n\n/** @internal */\nexport function isInterfaceActionParam(\n o: any,\n): o is ActionParam.InterfaceType<any> {\n return o != null && typeof o === \"object\"\n && \"$objectType\" in o && \"$primaryKey\" in o;\n}\n\n/** @internal */\nexport function isInterfaceQueryParam(\n o: any,\n): o is QueryParam.InterfaceType<any> {\n return o != null && typeof o === \"object\"\n && \"$objectType\" in o && \"$primaryKey\" in o;\n}\n\n/** @internal */\nexport function isInterfaceSpecifier(\n o: any,\n): o is {\n $apiName: string;\n $objectType: string;\n $primaryKey: PrimaryKeyTypes;\n} {\n return o != null && typeof o === \"object\"\n && \"$objectType\" in o && \"$primaryKey\" in o && o.$objectType !== o.$apiName;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;;AAGA;AACA,OAAO,SAASA,UAAUA,CACxBC,YAAkD,EACzC;EACT,OAAO,OAAOA,YAAY,KAAK,QAAQ,GAAG,QAAQ,GAAGA,YAAY,CAACC,IAAI;AACxE;;AAEA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,CAAM,EAC+B;EACrC,OAAOA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,IACpC,aAAa,IAAIA,CAAC,IAAI,aAAa,IAAIA,CAAC;AAC/C;;AAEA;AACA,OAAO,SAASC,qBAAqBA,CACnCD,CAAM,EAC8B;EACpC,OAAOA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,IACpC,aAAa,IAAIA,CAAC,IAAI,aAAa,IAAIA,CAAC;AAC/C;;AAEA;AACA,OAAO,SAASE,oBAAoBA,CAClCF,CAAM,EAKN;EACA,OAAOA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,IACpC,aAAa,IAAIA,CAAC,IAAI,aAAa,IAAIA,CAAC,IAAIA,CAAC,CAACG,WAAW,KAAKH,CAAC,CAACI,QAAQ;AAC/E","ignoreList":[]}
@@ -16,7 +16,7 @@ export interface Client extends SharedClient, OldSharedClient {
16
16
  <Q extends Experiment<"2.0.8"> | Experiment<"2.1.0"> | Experiment<"2.2.0">>(experiment: Q): ExperimentFns<Q>;
17
17
  fetchMetadata<Q extends (ObjectTypeDefinition | InterfaceDefinition | ActionDefinition<any> | QueryDefinition<any>)>(o: Q): Promise<Q extends ObjectTypeDefinition ? ObjectMetadata : Q extends InterfaceDefinition ? InterfaceMetadata : Q extends ActionDefinition<any> ? ActionMetadata : Q extends QueryDefinition<any> ? QueryMetadata : never>;
18
18
  }
19
- declare const MaxOsdkVersion = "2.7.1";
19
+ declare const MaxOsdkVersion = "2.7.3";
20
20
  export type MaxOsdkVersion = typeof MaxOsdkVersion;
21
21
  declare const ErrorMessage: unique symbol;
22
22
  export {};
@@ -1,4 +1,4 @@
1
- import type { ActionDefinition, ActionEditResponse, ActionValidationResponse, AggregateOpts, AggregationsResults, CompileTimeMetadata, DerivedProperty, InterfaceDefinition, ObjectOrInterfaceDefinition, ObjectSet, ObjectTypeDefinition, Osdk, PrimaryKeyType, PropertyKeys, QueryDefinition, SimplePropertyDef, WhereClause, WirePropertyTypes } from "@osdk/api";
1
+ import type { ActionDefinition, ActionEditResponse, ActionValidationResponse, AggregateOpts, AggregationsResults, CompileTimeMetadata, DerivedProperty, ObjectOrInterfaceDefinition, ObjectSet, ObjectTypeDefinition, Osdk, PrimaryKeyType, PropertyKeys, QueryDefinition, SimplePropertyDef, WhereClause, WirePropertyTypes } from "@osdk/api";
2
2
  import type { ActionSignatureFromDef } from "../actions/applyAction.js";
3
3
  import { type Client } from "../Client.js";
4
4
  import type { QueryReturnType } from "../queries/types.js";
@@ -12,12 +12,12 @@ export declare namespace ObservableClient {
12
12
  optimisticUpdate?: (ctx: OptimisticBuilder) => void;
13
13
  }
14
14
  }
15
- export interface ObserveObjectOptions<T extends ObjectTypeDefinition | InterfaceDefinition> extends ObserveOptions {
15
+ export interface ObserveObjectOptions<T extends ObjectOrInterfaceDefinition> extends ObserveOptions {
16
16
  apiName: T["apiName"] | T;
17
17
  pk: PrimaryKeyType<T>;
18
18
  select?: PropertyKeys<T>[];
19
19
  }
20
- export type OrderBy<Q extends ObjectTypeDefinition | InterfaceDefinition> = { [K in PropertyKeys<Q>]? : "asc" | "desc" | undefined };
20
+ export type OrderBy<Q extends ObjectOrInterfaceDefinition> = { [K in PropertyKeys<Q>]? : "asc" | "desc" | undefined };
21
21
  export interface ObserveListOptions<
22
22
  Q extends ObjectOrInterfaceDefinition,
23
23
  RDPs extends Record<string, SimplePropertyDef> = {}
@@ -69,14 +69,14 @@ export interface ObserveListOptions<
69
69
  }>;
70
70
  pivotTo?: string;
71
71
  }
72
- export interface ObserveObjectCallbackArgs<T extends ObjectTypeDefinition> {
72
+ export interface ObserveObjectCallbackArgs<T extends ObjectOrInterfaceDefinition> {
73
73
  object: Osdk.Instance<T> | undefined;
74
74
  isOptimistic: boolean;
75
75
  status: Status;
76
76
  lastUpdated: number;
77
77
  }
78
78
  export interface ObserveObjectsCallbackArgs<
79
- T extends ObjectTypeDefinition | InterfaceDefinition,
79
+ T extends ObjectOrInterfaceDefinition,
80
80
  RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}
81
81
  > {
82
82
  resolvedList: Array<Osdk.Instance<T, "$allBaseProperties", PropertyKeys<T>, RDPs>>;
@@ -88,7 +88,7 @@ export interface ObserveObjectsCallbackArgs<
88
88
  totalCount?: string;
89
89
  }
90
90
  export interface ObserveObjectSetArgs<
91
- T extends ObjectTypeDefinition | InterfaceDefinition,
91
+ T extends ObjectOrInterfaceDefinition,
92
92
  RDPs extends Record<string, WirePropertyTypes | undefined | Array<WirePropertyTypes>> = {}
93
93
  > {
94
94
  resolvedList: Array<Osdk.Instance<T, "$allBaseProperties", PropertyKeys<T>, RDPs>>;
@@ -143,7 +143,7 @@ export interface ObserveFunctionCallbackArgs<Q extends QueryDefinition<unknown>>
143
143
  /**
144
144
  * User facing callback args for `observeLink`
145
145
  */
146
- export interface ObserveLinkCallbackArgs<T extends ObjectTypeDefinition | InterfaceDefinition> {
146
+ export interface ObserveLinkCallbackArgs<T extends ObjectOrInterfaceDefinition> {
147
147
  resolvedList: Osdk.Instance<T>[];
148
148
  isOptimistic: boolean;
149
149
  lastUpdated: number;
@@ -164,9 +164,9 @@ export interface ObserveLinkCallbackArgs<T extends ObjectTypeDefinition | Interf
164
164
  */
165
165
  export interface ObservableClient extends ObserveLinks {
166
166
  /**
167
- * Observe a single object with automatic updates when it changes.
167
+ * Observe a single object or interface instance with automatic updates when it changes.
168
168
  *
169
- * @param apiName - The object type definition or name
169
+ * @param apiName - The object type or interface definition, or its API name
170
170
  * @param pk - The object's primary key
171
171
  * @param options - Observation options including deduplication interval
172
172
  * @param subFn - Observer that receives object state updates
@@ -178,7 +178,7 @@ export interface ObservableClient extends ObserveLinks {
178
178
  * - Updates when the object changes
179
179
  * - Error state if fetch fails
180
180
  */
181
- observeObject<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>, options: ObserveOptions, subFn: Observer<ObserveObjectCallbackArgs<T>>): Unsubscribable;
181
+ observeObject<T extends ObjectOrInterfaceDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>, options: ObserveOptions, subFn: Observer<ObserveObjectCallbackArgs<T>>): Unsubscribable;
182
182
  /**
183
183
  * Observe a filtered and sorted collection of objects.
184
184
  *
@@ -193,7 +193,7 @@ export interface ObservableClient extends ObserveLinks {
193
193
  * - Automatic updates when any matching object changes
194
194
  */
195
195
  observeList<
196
- T extends ObjectTypeDefinition | InterfaceDefinition,
196
+ T extends ObjectOrInterfaceDefinition,
197
197
  RDPs extends Record<string, SimplePropertyDef> = {}
198
198
  >(options: ObserveListOptions<T, RDPs>, subFn: Observer<ObserveObjectsCallbackArgs<T, RDPs>>): Unsubscribable;
199
199
  /**
@@ -316,7 +316,7 @@ export interface ObservableClient extends ObserveLinks {
316
316
  */
317
317
  invalidateFunctionsByObject(apiName: string, primaryKey: string | number): Promise<void>;
318
318
  canonicalizeWhereClause: <
319
- T extends ObjectTypeDefinition | InterfaceDefinition,
319
+ T extends ObjectOrInterfaceDefinition,
320
320
  RDPs extends Record<string, SimplePropertyDef> = {}
321
321
  >(where: WhereClause<T, RDPs>) => Canonical<WhereClause<T, RDPs>>;
322
322
  }
@@ -1 +1 @@
1
- {"mappings":"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","names":["ctx: OptimisticBuilder","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","options: ObserveOptions","subFn: Observer<ObserveObjectCallbackArgs<T>>","options: ObserveListOptions<T, RDPs>","subFn: Observer<ObserveObjectsCallbackArgs<T, RDPs>>","baseObjectSet: ObjectSet<T>","options: ObserveObjectSetOptions<T, RDPs>","subFn: Observer<ObserveObjectSetArgs<T, RDPs>>","options: ObserveAggregationOptions<T, A, RDPs>","subFn: Observer<ObserveAggregationArgs<T, A>>","queryDef: Q","params: Record<string, unknown> | undefined","options: ObserveFunctionOptions","subFn: Observer<ObserveFunctionCallbackArgs<Q>>","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: ObservableClient.ApplyActionOptions","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","objects:\n | Osdk.Instance<ObjectTypeDefinition>\n | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>","type: T | T[\"apiName\"]","apiName: string | QueryDefinition<unknown>","params?: Record<string, unknown>","apiName: string","primaryKey: string | number","where: WhereClause<T, RDPs>","client: Client"],"sources":["../../../src/observable/ObservableClient.ts"],"version":3,"file":"ObservableClient.d.ts"}
1
+ {"mappings":"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","names":["ctx: OptimisticBuilder","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","options: ObserveOptions","subFn: Observer<ObserveObjectCallbackArgs<T>>","options: ObserveListOptions<T, RDPs>","subFn: Observer<ObserveObjectsCallbackArgs<T, RDPs>>","baseObjectSet: ObjectSet<T>","options: ObserveObjectSetOptions<T, RDPs>","subFn: Observer<ObserveObjectSetArgs<T, RDPs>>","options: ObserveAggregationOptions<T, A, RDPs>","subFn: Observer<ObserveAggregationArgs<T, A>>","queryDef: Q","params: Record<string, unknown> | undefined","options: ObserveFunctionOptions","subFn: Observer<ObserveFunctionCallbackArgs<Q>>","action: Q","args:\n | Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]\n | Array<Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]>","opts?: ObservableClient.ApplyActionOptions","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","objects:\n | Osdk.Instance<ObjectTypeDefinition>\n | ReadonlyArray<Osdk.Instance<ObjectTypeDefinition>>","type: T | T[\"apiName\"]","apiName: string | QueryDefinition<unknown>","params?: Record<string, unknown>","apiName: string","primaryKey: string | number","where: WhereClause<T, RDPs>","client: Client"],"sources":["../../../src/observable/ObservableClient.ts"],"version":3,"file":"ObservableClient.d.ts"}
@@ -1,8 +1,9 @@
1
1
  import { type Client } from "../../Client.js";
2
2
  import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectHolder.js";
3
+ import type { DefType } from "../../util/interfaceUtils.js";
3
4
  export declare function getBulkObjectLoader(client: Client): BulkObjectLoader;
4
5
  export declare class BulkObjectLoader {
5
6
  #private;
6
7
  constructor(client: Client, maxWait?: number, maxEntries?: number);
7
- fetch(apiName: string, primaryKey: string | number | boolean): Promise<ObjectHolder>;
8
+ fetch(apiName: string, primaryKey: string | number | boolean, defType?: DefType): Promise<ObjectHolder>;
8
9
  }
@@ -1 +1 @@
1
- {"mappings":"AAqBA,cAAiC,cAAc,iBAAkB;AACjE,cACE,oBACK,uDAAwD;AAgB/D,OAAO,iBAAS,oBAAoBA,QAAQ,SAAS;AAIrD,OAAO,cAAM,iBAAiB;;CAW5B,YAAYA,QAAQ,QAAQ,kBAAc;CAO1C,AAAa,MACXC,iBACAC,wCACC,QAAQ;AA8DZ","names":["client: Client","apiName: string","primaryKey: string | number | boolean"],"sources":["../../../../src/observable/internal/BulkObjectLoader.ts"],"version":3,"file":"BulkObjectLoader.d.ts"}
1
+ {"mappings":"AAyBA,cAAiC,cAAc,iBAAkB;AACjE,cACE,oBACK,uDAAwD;AAC/D,cAAc,eAAe,8BAA+B;AAiB5D,OAAO,iBAAS,oBAAoBA,QAAQ,SAAS;AAIrD,OAAO,cAAM,iBAAiB;;CAW5B,YAAYA,QAAQ,QAAQ,kBAAc;CAO1C,AAAa,MACXC,iBACAC,uCACAC,UAAS,UACR,QAAQ;AA8IZ","names":["client: Client","apiName: string","primaryKey: string | number | boolean","defType: DefType"],"sources":["../../../../src/observable/internal/BulkObjectLoader.ts"],"version":3,"file":"BulkObjectLoader.d.ts"}
@@ -1,10 +1,10 @@
1
1
  import type { Canonical } from "./Canonical.js";
2
2
  export interface PivotInfo {
3
3
  sourceType: string;
4
+ sourceTypeKind: "object" | "interface";
4
5
  linkName: string;
5
- targetType: string;
6
6
  }
7
7
  export declare class PivotCanonicalizer {
8
8
  #private;
9
- canonicalize(sourceType: string, linkName: string): Canonical<PivotInfo>;
9
+ canonicalize(sourceType: string, sourceTypeKind: "object" | "interface", linkName: string): Canonical<PivotInfo>;
10
10
  }
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,iBAAiB,gBAAiB;AAEhD,iBAAiB,UAAU;CACzB;CACA;CACA;AACD;AAED,OAAO,cAAM,mBAAmB;;CAG9B,aAAaA,oBAAoBC,mBAAmB,UAAU;AAgB/D","names":["sourceType: string","linkName: string"],"sources":["../../../../src/observable/internal/PivotCanonicalizer.ts"],"version":3,"file":"PivotCanonicalizer.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,iBAAiB,gBAAiB;AAEhD,iBAAiB,UAAU;CACzB;CACA,gBAAgB,WAAW;CAC3B;AACD;AAED,OAAO,cAAM,mBAAmB;;CAG9B,aACEA,oBACAC,gBAAgB,WAAW,aAC3BC,mBACC,UAAU;AAgBd","names":["sourceType: string","sourceTypeKind: \"object\" | \"interface\"","linkName: string"],"sources":["../../../../src/observable/internal/PivotCanonicalizer.ts"],"version":3,"file":"PivotCanonicalizer.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,YAAY,WAAY;AA8BtC,cAAc,wBAAwB,8DAA+D;AAKrG,cAAc,oBAAoB,uDAAwD;AA69D1F,OAAO,iBAAS,UACdA,GAAG,oBAAoB,KAAK,gBAC3B","names":["x: ObjectHolder<any> | Osdk.Instance<any>"],"sources":["../../../../src/observable/internal/Store.test.ts"],"version":3,"file":"Store.test.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,YAAY,WAAY;AA8BtC,cAAc,wBAAwB,8DAA+D;AAKrG,cAAc,oBAAoB,uDAAwD;AA6rE1F,OAAO,iBAAS,UACdA,GAAG,oBAAoB,KAAK,gBAC3B","names":["x: ObjectHolder<any> | Osdk.Instance<any>"],"sources":["../../../../src/observable/internal/Store.test.ts"],"version":3,"file":"Store.test.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,WAAW,sBAAsB,YAAY,WAAY;AAIvE,cAAc,uBAAuB,6DAA8D;AAEnG,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,mBAAmB,sBAAuB;AACxD,cAAc,mCAAmC,qCAAsC;AACvF,cAAc,eAAe,eAAgB;AAG7C,cAAc,aAAa,aAAc;AACzC,SAAS,iBAA0B,gBAAiB;KAE/C,+BAA+B,OAAO,UAAU,YAAY;CAC/D,MAAM,eAAe;CACrB,eAAe,KAAK,eAAe;CACnC,cAAc,KAAK,eAAe;AACnC;AAED,OAAO,cAAM,2BAA2B,UAAU;CAChD,UAAU,gBAAgBA,OAAO,QAAQ,UAAU;CAkBnD,AAAM,qBAAqBC,kBAAkB;CAW7C,UAAgB,uBACdC,MAAM,KAAK,kBACV,QAAQ,KAAK;CAIhB,UAAU,cACRC,QAAQ,8BACP;CAeH,UAAU,uBACRC,SAAS,UACR;AA2BJ","names":["store: Store","apiName: string","data: Osdk.Instance<any>[]","params: CollectionConnectableParams","changes: Changes"],"sources":["../../../../../src/observable/internal/list/InterfaceListQuery.ts"],"version":3,"file":"InterfaceListQuery.d.ts"}
1
+ {"mappings":"AAgBA,cAIE,WACA,sBACA,YAEK,WAAY;AAInB,cAAc,uBAAuB,6DAA8D;AAEnG,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,mBAAmB,sBAAuB;AACxD,cAAc,mCAAmC,qCAAsC;AACvF,cAAc,eAAe,eAAgB;AAI7C,cAAc,aAAa,aAAc;AACzC,SAAS,iBAA+C,gBAAiB;KAEpE,+BAA+B,OAAO,UAAU,YAAY;CAC/D,MAAM,eAAe;CACrB,eAAe,KAAK,eAAe;CACnC,cAAc,KAAK,eAAe;AACnC;AAED,OAAO,cAAM,2BAA2B,UAAU;CAChD,UAAU,gBAAgBA,OAAO,QAAQ,UAAU;CAgDnD,AAAM,qBAAqBC,kBAAkB;CAW7C,UAAgB,uBACdC,MAAM,KAAK,kBACV,QAAQ,KAAK;CAIhB,UAAU,cACRC,QAAQ,8BACP;CAeH,UAAU,uBACRC,SAAS,UACR;AA2BJ","names":["store: Store","apiName: string","data: Osdk.Instance<any>[]","params: CollectionConnectableParams","changes: Changes"],"sources":["../../../../../src/observable/internal/list/InterfaceListQuery.ts"],"version":3,"file":"InterfaceListQuery.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAEE,WACA,sBACA,YACK,WAAY;AAEnB,cAAc,uBAAuB,6DAA8D;AACnG,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,eAAe,eAAgB;AAC7C,cAAc,aAAa,aAAc;AACzC,SAGE,iBAIK,gBAAiB;KAEnB,+BAA+B,OAAO,UAAU,YAAY;CAC/D,MAAM,eAAe;CACrB,eAAe,KAAK,eAAe;CACnC,cAAc,KAAK,eAAe;AACnC;AAED,OAAO,cAAM,wBAAwB,UAAU;CAC7C,UAAU,gBAAgBA,OAAO,QAAQ,UAAU;CA4FnD,AAAM,qBAAqBC,kBAAkB;CAM7C,UAAU,uBACRC,MAAM,KAAK,kBACV,QAAQ,KAAK;CAIhB,UAAU,uBACRC,SAAS,UACR;AAgBJ","names":["store: Store","apiName: string","data: Osdk.Instance<any>[]","changes: Changes"],"sources":["../../../../../src/observable/internal/list/ObjectListQuery.ts"],"version":3,"file":"ObjectListQuery.d.ts"}
1
+ {"mappings":"AAgBA,cAGE,WACA,sBACA,YAEK,WAAY;AAEnB,cAAc,uBAAuB,6DAA8D;AACnG,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,eAAe,eAAgB;AAC7C,cAAc,aAAa,aAAc;AACzC,SAGE,iBAIK,gBAAiB;KAEnB,+BAA+B,OAAO,UAAU,YAAY;CAC/D,MAAM,eAAe;CACrB,eAAe,KAAK,eAAe;CACnC,cAAc,KAAK,eAAe;AACnC;AAED,OAAO,cAAM,wBAAwB,UAAU;CAC7C,UAAU,gBAAgBA,OAAO,QAAQ,UAAU;CA4FnD,AAAM,qBAAqBC,kBAAkB;CAM7C,UAAU,uBACRC,MAAM,KAAK,kBACV,QAAQ,KAAK;CAIhB,UAAU,uBACRC,SAAS,UACR;AAgBJ","names":["store: Store","apiName: string","data: Osdk.Instance<any>[]","changes: Changes"],"sources":["../../../../../src/observable/internal/list/ObjectListQuery.ts"],"version":3,"file":"ObjectListQuery.d.ts"}
@@ -1,6 +1,7 @@
1
1
  import type { ObjectTypeDefinition, PrimaryKeyType } from "@osdk/api";
2
2
  import type { Connectable, Observable, Subject } from "rxjs";
3
3
  import type { ObjectHolder } from "../../../object/convertWireToOsdkObjects/ObjectHolder.js";
4
+ import type { DefType } from "../../../util/interfaceUtils.js";
4
5
  import type { ObjectPayload } from "../../ObjectPayload.js";
5
6
  import type { CommonObserveOptions, Status } from "../../ObservableClient/common.js";
6
7
  import type { BatchContext } from "../BatchContext.js";
@@ -12,7 +13,7 @@ import type { SubjectPayload } from "../SubjectPayload.js";
12
13
  import { type ObjectCacheKey } from "./ObjectCacheKey.js";
13
14
  export declare class ObjectQuery extends Query<ObjectCacheKey, ObjectPayload, CommonObserveOptions> {
14
15
  #private;
15
- constructor(store: Store, subject: Subject<SubjectPayload<ObjectCacheKey>>, type: string, pk: PrimaryKeyType<ObjectTypeDefinition>, cacheKey: ObjectCacheKey, opts: CommonObserveOptions);
16
+ constructor(store: Store, subject: Subject<SubjectPayload<ObjectCacheKey>>, type: string, pk: PrimaryKeyType<ObjectTypeDefinition>, cacheKey: ObjectCacheKey, opts: CommonObserveOptions, defType?: DefType);
16
17
  protected _createConnectable(subject: Observable<SubjectPayload<ObjectCacheKey>>): Connectable<ObjectPayload>;
17
18
  _fetchAndStore(): Promise<void>;
18
19
  writeToStore(data: ObjectHolder, status: Status, batch: BatchContext): Entry<ObjectCacheKey>;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAEE,sBACA,sBACK,WAAY;AACnB,cAAc,aAAa,YAAY,eAAe,MAAO;AAG7D,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,qBAAqB,wBAAyB;AAC5D,cACE,sBACA,cACK,kCAAmC;AAC1C,cAAc,oBAAoB,oBAAqB;AAEvD,cAAc,eAAe,eAAgB;AAC7C,cAAc,aAAa,aAAc;AACzC,SAAS,aAAa,aAAc;AACpC,cAAc,aAAa,aAAc;AACzC,cAAc,sBAAsB,sBAAuB;AAE3D,cAAc,sBAAsC,qBAAsB;AAE1E,OAAO,cAAM,oBAAoB,MAC/B,gBACA,eACA,sBACA;;CAIA,YACEA,OAAO,OACPC,SAAS,QAAQ,eAAe,kBAChCC,cACAC,IAAI,eAAe,uBACnBC,UAAU,gBACVC,MAAM;CAqBR,UAAU,mBACRC,SAAS,WAAW,eAAe,mBAClC,YAAY;CAwBf,AAAM,kBAAkB;CAyCxB,aACEC,MAAM,cACNC,QAAQ,QACRC,OAAO,eACN,MAAM;CAgBT,gBACED,QAAQ,QACRC,OAAO,eACN,MAAM;CAoBT,uBACEC,oBACAC,SAAS,wBACR;AAOJ","names":["store: Store","subject: Subject<SubjectPayload<ObjectCacheKey>>","type: string","pk: PrimaryKeyType<ObjectTypeDefinition>","cacheKey: ObjectCacheKey","opts: CommonObserveOptions","subject: Observable<SubjectPayload<ObjectCacheKey>>","data: ObjectHolder","status: Status","batch: BatchContext","objectType: string","changes: Changes | undefined"],"sources":["../../../../../src/observable/internal/object/ObjectQuery.ts"],"version":3,"file":"ObjectQuery.d.ts"}
1
+ {"mappings":"AAgBA,cAGE,sBACA,sBACK,WAAY;AACnB,cAAc,aAAa,YAAY,eAAe,MAAO;AAG7D,cAAc,oBAAoB,0DAA2D;AAC7F,cAAc,eAAe,iCAAkC;AAC/D,cAAc,qBAAqB,wBAAyB;AAC5D,cACE,sBACA,cACK,kCAAmC;AAC1C,cAAc,oBAAoB,oBAAqB;AAEvD,cAAc,eAAe,eAAgB;AAC7C,cAAc,aAAa,aAAc;AACzC,SAAS,aAAa,aAAc;AACpC,cAAc,aAAa,aAAc;AACzC,cAAc,sBAAsB,sBAAuB;AAE3D,cAAc,sBAAsC,qBAAsB;AAE1E,OAAO,cAAM,oBAAoB,MAC/B,gBACA,eACA,sBACA;;CAMA,YACEA,OAAO,OACPC,SAAS,QAAQ,eAAe,kBAChCC,cACAC,IAAI,eAAe,uBACnBC,UAAU,gBACVC,MAAM,sBACNC,UAAS;CAsBX,UAAU,mBACRC,SAAS,WAAW,eAAe,mBAClC,YAAY;CAwBf,AAAM,kBAAkB;CAyCxB,aACEC,MAAM,cACNC,QAAQ,QACRC,OAAO,eACN,MAAM;CAgBT,gBACED,QAAQ,QACRC,OAAO,eACN,MAAM;CAoBT,uBACEC,oBACAC,SAAS,wBACR;AAuBJ","names":["store: Store","subject: Subject<SubjectPayload<ObjectCacheKey>>","type: string","pk: PrimaryKeyType<ObjectTypeDefinition>","cacheKey: ObjectCacheKey","opts: CommonObserveOptions","defType: DefType","subject: Observable<SubjectPayload<ObjectCacheKey>>","data: ObjectHolder","status: Status","batch: BatchContext","objectType: string","changes: Changes | undefined"],"sources":["../../../../../src/observable/internal/object/ObjectQuery.ts"],"version":3,"file":"ObjectQuery.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,qBACA,4BAEK,WAAY;AAGnB,cAAc,qBAAqB,wBAAyB;AAC5D,cAAc,4BAA4B,2BAA4B;AACtE,cAAc,gBAAwB,kCAAmC;AACzE,SAAS,sBAAsB,sBAAuB;AAEtD,cAAc,iBAAiB,iBAAkB;AACjD,cAAc,yBAAyB,yBAA0B;AACjE,cAAc,WAAW,wBAAyB;AAIlD,SAAS,mBAAmB,kBAAmB;AAE/C,OAAO,cAAM,sBAAsB,eACjC,aACA,2BACA;CACA,QAAQ,UAAU,uBAAuB,qBACvCA,SAAS,qBAAqB,IAC9BC,OAAO,SAAS,iBACf,kBAAkB;CAIrB,SAAS,UAAU,uBAAuB,qBACxCD,SAAS,qBAAqB,IAC9BE,YAAY,UAAU,cACrB;;;;CAiHH,QAAQ;;;;CAQR,QAAQ;;;;CAYR,QAAQ;AAoBT","names":["options: ObserveObjectOptions<T>","subFn: Observer<ObjectPayload>","rdpConfig?: Canonical<Rdp> | null"],"sources":["../../../../../src/observable/internal/object/ObjectsHelper.ts"],"version":3,"file":"ObjectsHelper.d.ts"}
1
+ {"mappings":"AAgBA,cACE,qBACA,4BAEK,WAAY;AAInB,cAAc,qBAAqB,wBAAyB;AAC5D,cAAc,4BAA4B,2BAA4B;AACtE,cAAc,gBAAwB,kCAAmC;AACzE,SAAS,sBAAsB,sBAAuB;AAEtD,cAAc,iBAAiB,iBAAkB;AACjD,cAAc,yBAAyB,yBAA0B;AACjE,cAAc,WAAW,wBAAyB;AAIlD,SAAS,mBAAmB,kBAAmB;AAE/C,OAAO,cAAM,sBAAsB,eACjC,aACA,2BACA;CACA,QAAQ,UAAU,uBAAuB,qBACvCA,SAAS,qBAAqB,IAC9BC,OAAO,SAAS,iBACf,kBAAkB;CAIrB,SAAS,UAAU,uBAAuB,qBACxCD,SAAS,qBAAqB,IAC9BE,YAAY,UAAU,cACrB;;;;CAoHH,QAAQ;;;;CAQR,QAAQ;;;;CAYR,QAAQ;AAoBT","names":["options: ObserveObjectOptions<T>","subFn: Observer<ObjectPayload>","rdpConfig?: Canonical<Rdp> | null"],"sources":["../../../../../src/observable/internal/object/ObjectsHelper.ts"],"version":3,"file":"ObjectsHelper.d.ts"}
@@ -1 +1,2 @@
1
- export {};
1
+ /** Type representing whether a definition is an object or interface */
2
+ export type DefType = "object" | "interface";
@@ -1 +1 @@
1
- {"mappings":"","names":[],"sources":["../../../src/util/interfaceUtils.ts"],"version":3,"file":"interfaceUtils.d.ts"}
1
+ {"mappings":";AAwBA,YAAY,UAAU,WAAW","names":[],"sources":["../../../src/util/interfaceUtils.ts"],"version":3,"file":"interfaceUtils.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/client",
3
- "version": "2.7.1",
3
+ "version": "2.7.3",
4
4
  "description": "",
5
5
  "access": "public",
6
6
  "license": "Apache-2.0",
@@ -75,12 +75,12 @@
75
75
  "tiny-invariant": "^1.3.3",
76
76
  "type-fest": "^4.41.0",
77
77
  "ws": "^8.18.3",
78
- "@osdk/client.unstable": "2.7.1",
79
- "@osdk/api": "~2.7.1",
80
- "@osdk/generator-converters": "2.7.1",
81
- "@osdk/shared.client.impl": "~1.7.0",
78
+ "@osdk/api": "~2.7.3",
82
79
  "@osdk/shared.net.errors": "~2.7.0",
83
- "@osdk/shared.net.fetch": "~1.7.0"
80
+ "@osdk/shared.client.impl": "~1.7.0",
81
+ "@osdk/shared.net.fetch": "~1.7.0",
82
+ "@osdk/generator-converters": "2.7.3",
83
+ "@osdk/client.unstable": "2.7.3"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@microsoft/api-documenter": "^7.26.32",
@@ -100,10 +100,10 @@
100
100
  "ts-expect": "^1.3.0",
101
101
  "typescript": "~5.5.4",
102
102
  "zod": "^3.25.76",
103
- "@osdk/client.test.ontology": "~2.7.1",
104
- "@osdk/monorepo.api-extractor": "~0.6.0",
103
+ "@osdk/client.test.ontology": "~2.7.3",
104
+ "@osdk/monorepo.tsconfig": "~0.6.0",
105
105
  "@osdk/shared.test": "~2.7.0",
106
- "@osdk/monorepo.tsconfig": "~0.6.0"
106
+ "@osdk/monorepo.api-extractor": "~0.6.0"
107
107
  },
108
108
  "publishConfig": {
109
109
  "access": "public"