@osdk/client 2.8.0-beta.10 → 2.8.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/build/browser/observable/internal/list/InterfaceListQuery.js +38 -10
- package/build/browser/observable/internal/list/InterfaceListQuery.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -2
- package/build/cjs/{chunk-6VOFZIIJ.cjs → chunk-22QZVXHI.cjs} +4 -4
- package/build/cjs/{chunk-6VOFZIIJ.cjs.map → chunk-22QZVXHI.cjs.map} +1 -1
- package/build/cjs/index.cjs +7 -7
- package/build/cjs/public/unstable-do-not-use.cjs +57 -30
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/esm/observable/internal/list/InterfaceListQuery.js +38 -10
- package/build/esm/observable/internal/list/InterfaceListQuery.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -2
- package/build/types/observable/internal/list/InterfaceListQuery.d.ts.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @osdk/client
|
|
2
2
|
|
|
3
|
+
## 2.8.0-beta.12
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8825f8c: fix InterfaceListQuery ignoring rids option when creating object sets
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- @osdk/api@2.8.0-beta.12
|
|
12
|
+
- @osdk/client.unstable@2.8.0-beta.12
|
|
13
|
+
- @osdk/generator-converters@2.8.0-beta.12
|
|
14
|
+
|
|
15
|
+
## 2.8.0-beta.11
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 642be5f: fix divide() sending wrong wire type and clean up list query view
|
|
20
|
+
- 525f277: update useOsdkAggregation to support composed object sets, async
|
|
21
|
+
- f5f95e2: support interface link constraints
|
|
22
|
+
- d80c234: add interface support to useOsdkObject
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Updated dependencies [f487a6a]
|
|
27
|
+
- @osdk/client.unstable@2.8.0-beta.11
|
|
28
|
+
- @osdk/api@2.8.0-beta.11
|
|
29
|
+
- @osdk/generator-converters@2.8.0-beta.11
|
|
30
|
+
|
|
3
31
|
## 2.8.0-beta.10
|
|
4
32
|
|
|
5
33
|
### Minor Changes
|
|
@@ -16,20 +16,16 @@
|
|
|
16
16
|
|
|
17
17
|
import groupBy from "object.groupby";
|
|
18
18
|
import invariant from "tiny-invariant";
|
|
19
|
+
import { additionalContext } from "../../../Client.js";
|
|
19
20
|
import { ObjectDefRef } from "../../../object/convertWireToOsdkObjects/InternalSymbols.js";
|
|
20
|
-
import { ListQuery, PIVOT_IDX, RDP_IDX } from "./ListQuery.js";
|
|
21
|
+
import { ListQuery, PIVOT_IDX, RDP_IDX, RIDS_IDX } from "./ListQuery.js";
|
|
21
22
|
export class InterfaceListQuery extends ListQuery {
|
|
22
23
|
createObjectSet(store) {
|
|
23
24
|
const rdpConfig = this.cacheKey.otherKeys[RDP_IDX];
|
|
24
25
|
const pivotInfo = this.cacheKey.otherKeys[PIVOT_IDX];
|
|
26
|
+
const rids = this.cacheKey.otherKeys[RIDS_IDX];
|
|
25
27
|
if (pivotInfo != null) {
|
|
26
|
-
const sourceSet = pivotInfo
|
|
27
|
-
type: "interface",
|
|
28
|
-
apiName: pivotInfo.sourceType
|
|
29
|
-
}) : store.client({
|
|
30
|
-
type: "object",
|
|
31
|
-
apiName: pivotInfo.sourceType
|
|
32
|
-
});
|
|
28
|
+
const sourceSet = createSourceSetForPivot(store, pivotInfo, rids);
|
|
33
29
|
let objectSet = sourceSet.where(this.canonicalWhere).pivotTo(pivotInfo.linkName);
|
|
34
30
|
if (rdpConfig != null) {
|
|
35
31
|
objectSet = objectSet.withProperties(rdpConfig);
|
|
@@ -43,10 +39,20 @@ export class InterfaceListQuery extends ListQuery {
|
|
|
43
39
|
type: "interface",
|
|
44
40
|
apiName: this.apiName
|
|
45
41
|
};
|
|
42
|
+
const clientCtx = store.client[additionalContext];
|
|
43
|
+
let objectSet;
|
|
44
|
+
if (rids != null) {
|
|
45
|
+
objectSet = clientCtx.objectSetFactory(objectTypeDef, clientCtx, {
|
|
46
|
+
type: "static",
|
|
47
|
+
objects: [...rids]
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
objectSet = store.client(objectTypeDef);
|
|
51
|
+
}
|
|
46
52
|
if (rdpConfig != null) {
|
|
47
|
-
|
|
53
|
+
objectSet = objectSet.withProperties(rdpConfig);
|
|
48
54
|
}
|
|
49
|
-
return
|
|
55
|
+
return objectSet.where(this.canonicalWhere);
|
|
50
56
|
}
|
|
51
57
|
async revalidateObjectType(apiName) {
|
|
52
58
|
const objectMetadata = await this.store.client.fetchMetadata({
|
|
@@ -91,6 +97,28 @@ export class InterfaceListQuery extends ListQuery {
|
|
|
91
97
|
};
|
|
92
98
|
}
|
|
93
99
|
}
|
|
100
|
+
function createSourceSetForPivot(store, pivotInfo, rids) {
|
|
101
|
+
const clientCtx = store.client[additionalContext];
|
|
102
|
+
if (rids != null) {
|
|
103
|
+
return clientCtx.objectSetFactory({
|
|
104
|
+
type: "object",
|
|
105
|
+
apiName: pivotInfo.sourceType
|
|
106
|
+
}, clientCtx, {
|
|
107
|
+
type: "static",
|
|
108
|
+
objects: [...rids]
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (pivotInfo.sourceTypeKind === "interface") {
|
|
112
|
+
return store.client({
|
|
113
|
+
type: "interface",
|
|
114
|
+
apiName: pivotInfo.sourceType
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return store.client({
|
|
118
|
+
type: "object",
|
|
119
|
+
apiName: pivotInfo.sourceType
|
|
120
|
+
});
|
|
121
|
+
}
|
|
94
122
|
|
|
95
123
|
// Hopefully this can go away when we can just request the full object properties on first load
|
|
96
124
|
async function reloadDataAsFullObjects(client, data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterfaceListQuery.js","names":["groupBy","invariant","ObjectDefRef","ListQuery","PIVOT_IDX","RDP_IDX","InterfaceListQuery","createObjectSet","store","rdpConfig","cacheKey","otherKeys","pivotInfo","sourceSet","sourceTypeKind","client","type","apiName","sourceType","objectSet","where","canonicalWhere","pivotTo","linkName","withProperties","objectTypeDef","revalidateObjectType","objectMetadata","fetchMetadata","interfaceMap","revalidate","postProcessFetchedData","data","reloadDataAsFullObjects","createPayload","params","resolvedList","resolvedData","map","obj","$as","isOptimistic","fetchMore","hasMore","nextPageToken","status","lastUpdated","extractRelevantObjects","changes","matchesApiName","object","added","Array","from","addedObjects","filter","modified","modifiedObjects","all","strictMatches","Set","sortaMatches","length","groups","x","$objectType","objectTypeToPrimaryKeyToObject","Object","fromEntries","Promise","entries","objects","objectDef","primaryKeyApiName","$in","$primaryKey","result","fetchPage","$includeRid","fullObject","process","env","NODE_ENV"],"sources":["InterfaceListQuery.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 ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n WhereClause,\n} from \"@osdk/api\";\nimport groupBy from \"object.groupby\";\nimport invariant from \"tiny-invariant\";\nimport type { Client } from \"../../../Client.js\";\nimport type { InterfaceHolder } from \"../../../object/convertWireToOsdkObjects/InterfaceHolder.js\";\nimport { ObjectDefRef } from \"../../../object/convertWireToOsdkObjects/InternalSymbols.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { ListPayload } from \"../../ListPayload.js\";\nimport type { CollectionConnectableParams } from \"../base-list/BaseCollectionQuery.js\";\nimport type { Changes } from \"../Changes.js\";\nimport type { Rdp } from \"../RdpCanonicalizer.js\";\nimport type { SimpleWhereClause } from \"../SimpleWhereClause.js\";\nimport type { Store } from \"../Store.js\";\nimport { ListQuery, PIVOT_IDX, RDP_IDX } 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 InterfaceListQuery extends ListQuery {\n protected createObjectSet(store: Store): ObjectSet<ObjectTypeDefinition> {\n const rdpConfig = this.cacheKey.otherKeys[RDP_IDX];\n const pivotInfo = this.cacheKey.otherKeys[PIVOT_IDX];\n\n if (pivotInfo != null) {\n const 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<ObjectOrInterfaceDefinition>;\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 const type: string = \"interface\" as const;\n const objectTypeDef = {\n type,\n apiName: this.apiName,\n } as ObjectTypeDefinition;\n\n if (rdpConfig != null) {\n return store.client(objectTypeDef)\n .withProperties(rdpConfig as Rdp)\n .where(this.canonicalWhere);\n }\n\n return store.client(objectTypeDef)\n .where(this.canonicalWhere);\n }\n\n async revalidateObjectType(apiName: string): Promise<void> {\n const objectMetadata = await this.store.client.fetchMetadata({\n type: \"object\",\n apiName,\n });\n\n if (this.apiName in objectMetadata.interfaceMap) {\n await this.revalidate(/* force */ true);\n }\n }\n\n protected async postProcessFetchedData(\n data: Osdk.Instance<any>[],\n ): Promise<Osdk.Instance<any>[]> {\n return reloadDataAsFullObjects(this.store.client, data);\n }\n\n protected createPayload(\n params: CollectionConnectableParams,\n ): ListPayload {\n const resolvedList = params.resolvedData.map((obj: ObjectHolder) =>\n obj.$as(this.apiName)\n );\n\n return {\n resolvedList,\n isOptimistic: params.isOptimistic,\n fetchMore: this.fetchMore,\n hasMore: this.nextPageToken != null,\n status: params.status,\n lastUpdated: params.lastUpdated,\n };\n }\n\n protected extractRelevantObjects(\n changes: Changes,\n ): ExtractRelevantObjectsResult {\n const matchesApiName = ([, object]: [unknown, ObjectHolder]) => {\n return this.apiName in object[ObjectDefRef].interfaceMap;\n };\n\n const added = Array.from(changes.addedObjects).filter(matchesApiName).map((\n [, object],\n ) => object.$as(this.apiName));\n\n const modified = Array.from(changes.modifiedObjects).filter(matchesApiName)\n .map((\n [, object],\n ) => object.$as(this.apiName));\n\n return {\n added: {\n all: added,\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n modified: {\n all: modified,\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n };\n }\n}\n\n// Hopefully this can go away when we can just request the full object properties on first load\nasync function reloadDataAsFullObjects(\n client: Client,\n data: Osdk.Instance<any>[],\n) {\n if (data.length === 0) {\n return data;\n }\n\n const groups = groupBy(data, (x) => x.$objectType);\n const objectTypeToPrimaryKeyToObject = Object.fromEntries(\n await Promise.all(\n Object.entries(groups).map<\n Promise<\n [\n /** objectType **/ string,\n Record<string | number, Osdk.Instance<ObjectTypeDefinition>>,\n ]\n >\n >(async ([apiName, objects]) => {\n // Interface query results don't have ObjectDefRef, so we fetch metadata to get primaryKeyApiName\n const objectDef = await client.fetchMetadata({\n type: \"object\",\n apiName,\n });\n const where: SimpleWhereClause = {\n [objectDef.primaryKeyApiName]: {\n $in: objects.map(x => x.$primaryKey),\n },\n };\n\n const result = await client(\n objectDef as ObjectTypeDefinition,\n ).where(\n where as Parameters<ObjectSet<ObjectTypeDefinition>[\"where\"]>[0],\n ).fetchPage({ $includeRid: true });\n return [\n apiName,\n Object.fromEntries(result.data.map(\n x => [x.$primaryKey, x],\n )),\n ];\n }),\n ),\n );\n\n return data.map((obj) => {\n const fullObject =\n objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey];\n invariant(\n fullObject,\n `Could not find object ${obj.$objectType} ${obj.$primaryKey}`,\n );\n return fullObject;\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,OAAOA,OAAO,MAAM,gBAAgB;AACpC,OAAOC,SAAS,MAAM,gBAAgB;AAGtC,SAASC,YAAY,QAAQ,6DAA6D;AAQ1F,SAASC,SAAS,EAAEC,SAAS,EAAEC,OAAO,QAAQ,gBAAgB;AAQ9D,OAAO,MAAMC,kBAAkB,SAASH,SAAS,CAAC;EACtCI,eAAeA,CAACC,KAAY,EAAmC;IACvE,MAAMC,SAAS,GAAG,IAAI,CAACC,QAAQ,CAACC,SAAS,CAACN,OAAO,CAAC;IAClD,MAAMO,SAAS,GAAG,IAAI,CAACF,QAAQ,CAACC,SAAS,CAACP,SAAS,CAAC;IAEpD,IAAIQ,SAAS,IAAI,IAAI,EAAE;MACrB,MAAMC,SAAS,GAAID,SAAS,CAACE,cAAc,KAAK,WAAW,GACvDN,KAAK,CAACO,MAAM,CAAC;QACbC,IAAI,EAAE,WAAW;QACjBC,OAAO,EAAEL,SAAS,CAACM;MACrB,CAAwB,CAAC,GACvBV,KAAK,CAACO,MAAM,CAAC;QACbC,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAEL,SAAS,CAACM;MACrB,CAAyB,CAA4C;MAEvE,IAAIC,SAAS,GAAGN,SAAS,CACtBO,KAAK,CAAC,IAAI,CAACC,cAAkC,CAAC,CAC9CC,OAAO,CAACV,SAAS,CAACW,QAAQ,CAAC;MAE9B,IAAId,SAAS,IAAI,IAAI,EAAE;QACrBU,SAAS,GAAGA,SAAS,CAACK,cAAc,CAClCf,SACF,CAAC;MACH;;MAEA;MACA;MACA,OAAOU,SAAS;IAClB;IAGA,MAAMM,aAAa,GAAG;MACpBT,IAAI,EAFe,WAEf;MACJC,OAAO,EAAE,IAAI,CAACA;IAChB,CAAyB;IAEzB,IAAIR,SAAS,IAAI,IAAI,EAAE;MACrB,OAAOD,KAAK,CAACO,MAAM,CAACU,aAAa,CAAC,CAC/BD,cAAc,CAACf,SAAgB,CAAC,CAChCW,KAAK,CAAC,IAAI,CAACC,cAAc,CAAC;IAC/B;IAEA,OAAOb,KAAK,CAACO,MAAM,CAACU,aAAa,CAAC,CAC/BL,KAAK,CAAC,IAAI,CAACC,cAAc,CAAC;EAC/B;EAEA,MAAMK,oBAAoBA,CAACT,OAAe,EAAiB;IACzD,MAAMU,cAAc,GAAG,MAAM,IAAI,CAACnB,KAAK,CAACO,MAAM,CAACa,aAAa,CAAC;MAC3DZ,IAAI,EAAE,QAAQ;MACdC;IACF,CAAC,CAAC;IAEF,IAAI,IAAI,CAACA,OAAO,IAAIU,cAAc,CAACE,YAAY,EAAE;MAC/C,MAAM,IAAI,CAACC,UAAU,CAAC,WAAY,IAAI,CAAC;IACzC;EACF;EAEA,MAAgBC,sBAAsBA,CACpCC,IAA0B,EACK;IAC/B,OAAOC,uBAAuB,CAAC,IAAI,CAACzB,KAAK,CAACO,MAAM,EAAEiB,IAAI,CAAC;EACzD;EAEUE,aAAaA,CACrBC,MAAmC,EACtB;IACb,MAAMC,YAAY,GAAGD,MAAM,CAACE,YAAY,CAACC,GAAG,CAAEC,GAAiB,IAC7DA,GAAG,CAACC,GAAG,CAAC,IAAI,CAACvB,OAAO,CACtB,CAAC;IAED,OAAO;MACLmB,YAAY;MACZK,YAAY,EAAEN,MAAM,CAACM,YAAY;MACjCC,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBC,OAAO,EAAE,IAAI,CAACC,aAAa,IAAI,IAAI;MACnCC,MAAM,EAAEV,MAAM,CAACU,MAAM;MACrBC,WAAW,EAAEX,MAAM,CAACW;IACtB,CAAC;EACH;EAEUC,sBAAsBA,CAC9BC,OAAgB,EACc;IAC9B,MAAMC,cAAc,GAAGA,CAAC,GAAGC,MAAM,CAA0B,KAAK;MAC9D,OAAO,IAAI,CAACjC,OAAO,IAAIiC,MAAM,CAAChD,YAAY,CAAC,CAAC2B,YAAY;IAC1D,CAAC;IAED,MAAMsB,KAAK,GAAGC,KAAK,CAACC,IAAI,CAACL,OAAO,CAACM,YAAY,CAAC,CAACC,MAAM,CAACN,cAAc,CAAC,CAACX,GAAG,CAAC,CACxE,GAAGY,MAAM,CAAC,KACPA,MAAM,CAACV,GAAG,CAAC,IAAI,CAACvB,OAAO,CAAC,CAAC;IAE9B,MAAMuC,QAAQ,GAAGJ,KAAK,CAACC,IAAI,CAACL,OAAO,CAACS,eAAe,CAAC,CAACF,MAAM,CAACN,cAAc,CAAC,CACxEX,GAAG,CAAC,CACH,GAAGY,MAAM,CAAC,KACPA,MAAM,CAACV,GAAG,CAAC,IAAI,CAACvB,OAAO,CAAC,CAAC;IAEhC,OAAO;MACLkC,KAAK,EAAE;QACLO,GAAG,EAAEP,KAAK;QACVQ,aAAa,EAAE,IAAIC,GAAG,CAAC,CAAC;QACxBC,YAAY,EAAE,IAAID,GAAG,CAAC;MACxB,CAAC;MACDJ,QAAQ,EAAE;QACRE,GAAG,EAAEF,QAAQ;QACbG,aAAa,EAAE,IAAIC,GAAG,CAAC,CAAC;QACxBC,YAAY,EAAE,IAAID,GAAG,CAAC;MACxB;IACF,CAAC;EACH;AACF;;AAEA;AACA,eAAe3B,uBAAuBA,CACpClB,MAAc,EACdiB,IAA0B,EAC1B;EACA,IAAIA,IAAI,CAAC8B,MAAM,KAAK,CAAC,EAAE;IACrB,OAAO9B,IAAI;EACb;EAEA,MAAM+B,MAAM,GAAG/D,OAAO,CAACgC,IAAI,EAAGgC,CAAC,IAAKA,CAAC,CAACC,WAAW,CAAC;EAClD,MAAMC,8BAA8B,GAAGC,MAAM,CAACC,WAAW,CACvD,MAAMC,OAAO,CAACX,GAAG,CACfS,MAAM,CAACG,OAAO,CAACP,MAAM,CAAC,CAACzB,GAAG,CAOxB,OAAO,CAACrB,OAAO,EAAEsD,OAAO,CAAC,KAAK;IAC9B;IACA,MAAMC,SAAS,GAAG,MAAMzD,MAAM,CAACa,aAAa,CAAC;MAC3CZ,IAAI,EAAE,QAAQ;MACdC;IACF,CAAC,CAAC;IACF,MAAMG,KAAwB,GAAG;MAC/B,CAACoD,SAAS,CAACC,iBAAiB,GAAG;QAC7BC,GAAG,EAAEH,OAAO,CAACjC,GAAG,CAAC0B,CAAC,IAAIA,CAAC,CAACW,WAAW;MACrC;IACF,CAAC;IAED,MAAMC,MAAM,GAAG,MAAM7D,MAAM,CACzByD,SACF,CAAC,CAACpD,KAAK,CACLA,KACF,CAAC,CAACyD,SAAS,CAAC;MAAEC,WAAW,EAAE;IAAK,CAAC,CAAC;IAClC,OAAO,CACL7D,OAAO,EACPkD,MAAM,CAACC,WAAW,CAACQ,MAAM,CAAC5C,IAAI,CAACM,GAAG,CAChC0B,CAAC,IAAI,CAACA,CAAC,CAACW,WAAW,EAAEX,CAAC,CACxB,CAAC,CAAC,CACH;EACH,CAAC,CACH,CACF,CAAC;EAED,OAAOhC,IAAI,CAACM,GAAG,CAAEC,GAAG,IAAK;IACvB,MAAMwC,UAAU,GACdb,8BAA8B,CAAC3B,GAAG,CAAC0B,WAAW,CAAC,CAAC1B,GAAG,CAACoC,WAAW,CAAC;IAClE,CACEI,UAAU,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBADZjF,SAAS,QAEP,yBAAyBsC,GAAG,CAAC0B,WAAW,IAAI1B,GAAG,CAACoC,WAAW,EAAE,IAF/D1E,SAAS;IAIT,OAAO8E,UAAU;EACnB,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"InterfaceListQuery.js","names":["groupBy","invariant","additionalContext","ObjectDefRef","ListQuery","PIVOT_IDX","RDP_IDX","RIDS_IDX","InterfaceListQuery","createObjectSet","store","rdpConfig","cacheKey","otherKeys","pivotInfo","rids","sourceSet","createSourceSetForPivot","objectSet","where","canonicalWhere","pivotTo","linkName","withProperties","objectTypeDef","type","apiName","clientCtx","client","objectSetFactory","objects","revalidateObjectType","objectMetadata","fetchMetadata","interfaceMap","revalidate","postProcessFetchedData","data","reloadDataAsFullObjects","createPayload","params","resolvedList","resolvedData","map","obj","$as","isOptimistic","fetchMore","hasMore","nextPageToken","status","lastUpdated","extractRelevantObjects","changes","matchesApiName","object","added","Array","from","addedObjects","filter","modified","modifiedObjects","all","strictMatches","Set","sortaMatches","sourceType","sourceTypeKind","length","groups","x","$objectType","objectTypeToPrimaryKeyToObject","Object","fromEntries","Promise","entries","objectDef","primaryKeyApiName","$in","$primaryKey","result","fetchPage","$includeRid","fullObject","process","env","NODE_ENV"],"sources":["InterfaceListQuery.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 ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n WhereClause,\n} from \"@osdk/api\";\nimport groupBy from \"object.groupby\";\nimport invariant from \"tiny-invariant\";\nimport { additionalContext, type Client } from \"../../../Client.js\";\nimport type { InterfaceHolder } from \"../../../object/convertWireToOsdkObjects/InterfaceHolder.js\";\nimport { ObjectDefRef } from \"../../../object/convertWireToOsdkObjects/InternalSymbols.js\";\nimport type { ObjectHolder } from \"../../../object/convertWireToOsdkObjects/ObjectHolder.js\";\nimport type { ListPayload } from \"../../ListPayload.js\";\nimport type { CollectionConnectableParams } from \"../base-list/BaseCollectionQuery.js\";\nimport type { Changes } from \"../Changes.js\";\nimport type { PivotInfo } from \"../PivotCanonicalizer.js\";\nimport type { Rdp } from \"../RdpCanonicalizer.js\";\nimport type { SimpleWhereClause } from \"../SimpleWhereClause.js\";\nimport type { Store } from \"../Store.js\";\nimport { ListQuery, PIVOT_IDX, RDP_IDX, RIDS_IDX } 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 InterfaceListQuery extends ListQuery {\n protected createObjectSet(store: Store): ObjectSet<ObjectTypeDefinition> {\n const rdpConfig = this.cacheKey.otherKeys[RDP_IDX];\n const pivotInfo = this.cacheKey.otherKeys[PIVOT_IDX];\n const rids = this.cacheKey.otherKeys[RIDS_IDX];\n\n if (pivotInfo != null) {\n const sourceSet = createSourceSetForPivot(store, pivotInfo, rids);\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 const type: string = \"interface\" as const;\n const objectTypeDef = {\n type,\n apiName: this.apiName,\n } as ObjectTypeDefinition;\n\n const clientCtx = store.client[additionalContext];\n let objectSet: ObjectSet<ObjectTypeDefinition>;\n if (rids != null) {\n objectSet = clientCtx.objectSetFactory(\n objectTypeDef,\n clientCtx,\n { type: \"static\", objects: [...rids] },\n );\n } else {\n objectSet = store.client(objectTypeDef);\n }\n\n if (rdpConfig != null) {\n objectSet = objectSet.withProperties(rdpConfig as Rdp);\n }\n\n return objectSet.where(this.canonicalWhere);\n }\n\n async revalidateObjectType(apiName: string): Promise<void> {\n const objectMetadata = await this.store.client.fetchMetadata({\n type: \"object\",\n apiName,\n });\n\n if (this.apiName in objectMetadata.interfaceMap) {\n await this.revalidate(/* force */ true);\n }\n }\n\n protected async postProcessFetchedData(\n data: Osdk.Instance<any>[],\n ): Promise<Osdk.Instance<any>[]> {\n return reloadDataAsFullObjects(this.store.client, data);\n }\n\n protected createPayload(\n params: CollectionConnectableParams,\n ): ListPayload {\n const resolvedList = params.resolvedData.map((obj: ObjectHolder) =>\n obj.$as(this.apiName)\n );\n\n return {\n resolvedList,\n isOptimistic: params.isOptimistic,\n fetchMore: this.fetchMore,\n hasMore: this.nextPageToken != null,\n status: params.status,\n lastUpdated: params.lastUpdated,\n };\n }\n\n protected extractRelevantObjects(\n changes: Changes,\n ): ExtractRelevantObjectsResult {\n const matchesApiName = ([, object]: [unknown, ObjectHolder]) => {\n return this.apiName in object[ObjectDefRef].interfaceMap;\n };\n\n const added = Array.from(changes.addedObjects).filter(matchesApiName).map((\n [, object],\n ) => object.$as(this.apiName));\n\n const modified = Array.from(changes.modifiedObjects).filter(matchesApiName)\n .map((\n [, object],\n ) => object.$as(this.apiName));\n\n return {\n added: {\n all: added,\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n modified: {\n all: modified,\n strictMatches: new Set(),\n sortaMatches: new Set(),\n },\n };\n }\n}\n\nfunction createSourceSetForPivot(\n store: Store,\n pivotInfo: PivotInfo,\n rids: string[] | undefined,\n): ObjectSet<ObjectOrInterfaceDefinition> {\n const clientCtx = store.client[additionalContext];\n\n if (rids != null) {\n return clientCtx.objectSetFactory(\n {\n type: \"object\",\n apiName: pivotInfo.sourceType,\n } as ObjectTypeDefinition,\n clientCtx,\n { type: \"static\", objects: [...rids] },\n );\n }\n\n if (pivotInfo.sourceTypeKind === \"interface\") {\n return store.client({\n type: \"interface\",\n apiName: pivotInfo.sourceType,\n } as InterfaceDefinition) as ObjectSet<ObjectOrInterfaceDefinition>;\n }\n\n return store.client({\n type: \"object\",\n apiName: pivotInfo.sourceType,\n } as ObjectTypeDefinition) as ObjectSet<ObjectOrInterfaceDefinition>;\n}\n\n// Hopefully this can go away when we can just request the full object properties on first load\nasync function reloadDataAsFullObjects(\n client: Client,\n data: Osdk.Instance<any>[],\n) {\n if (data.length === 0) {\n return data;\n }\n\n const groups = groupBy(data, (x) => x.$objectType);\n const objectTypeToPrimaryKeyToObject = Object.fromEntries(\n await Promise.all(\n Object.entries(groups).map<\n Promise<\n [\n /** objectType **/ string,\n Record<string | number, Osdk.Instance<ObjectTypeDefinition>>,\n ]\n >\n >(async ([apiName, objects]) => {\n // Interface query results don't have ObjectDefRef, so we fetch metadata to get primaryKeyApiName\n const objectDef = await client.fetchMetadata({\n type: \"object\",\n apiName,\n });\n const where: SimpleWhereClause = {\n [objectDef.primaryKeyApiName]: {\n $in: objects.map(x => x.$primaryKey),\n },\n };\n\n const result = await client(\n objectDef as ObjectTypeDefinition,\n ).where(\n where as Parameters<ObjectSet<ObjectTypeDefinition>[\"where\"]>[0],\n ).fetchPage({ $includeRid: true });\n return [\n apiName,\n Object.fromEntries(result.data.map(\n x => [x.$primaryKey, x],\n )),\n ];\n }),\n ),\n );\n\n return data.map((obj) => {\n const fullObject =\n objectTypeToPrimaryKeyToObject[obj.$objectType][obj.$primaryKey];\n invariant(\n fullObject,\n `Could not find object ${obj.$objectType} ${obj.$primaryKey}`,\n );\n return fullObject;\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.8.0-beta.
|
|
18
|
-
export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.
|
|
17
|
+
export const USER_AGENT = `osdk-client/${"2.8.0-beta.12"}`;
|
|
18
|
+
export const OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.12"}`;
|
|
19
19
|
//# sourceMappingURL=UserAgent.js.map
|
|
@@ -2023,8 +2023,8 @@ var createStandardOntologyProviderFactory = (client) => {
|
|
|
2023
2023
|
|
|
2024
2024
|
// src/util/UserAgent.ts
|
|
2025
2025
|
chunkLDTMSHUZ_cjs.init_cjs_shims();
|
|
2026
|
-
var USER_AGENT = `osdk-client/${"2.8.0-beta.
|
|
2027
|
-
var OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.
|
|
2026
|
+
var USER_AGENT = `osdk-client/${"2.8.0-beta.12"}`;
|
|
2027
|
+
var OBSERVABLE_USER_AGENT = `osdk-observable-client/${"2.8.0-beta.12"}`;
|
|
2028
2028
|
|
|
2029
2029
|
// src/createMinimalClient.ts
|
|
2030
2030
|
function createMinimalClient(metadata2, baseUrl, tokenProvider, options = {}, fetchFn = global.fetch, objectSetFactory = chunkYVZM2JPW_cjs.createObjectSet, createOntologyProviderFactory = createStandardOntologyProviderFactory) {
|
|
@@ -2567,5 +2567,5 @@ exports.createOsdkObject = createOsdkObject;
|
|
|
2567
2567
|
exports.extractPrimaryKeyFromObjectSpecifier = extractPrimaryKeyFromObjectSpecifier;
|
|
2568
2568
|
exports.getDefType = getDefType;
|
|
2569
2569
|
exports.isObjectSpecifiersObject = isObjectSpecifiersObject;
|
|
2570
|
-
//# sourceMappingURL=chunk-
|
|
2571
|
-
//# sourceMappingURL=chunk-
|
|
2570
|
+
//# sourceMappingURL=chunk-22QZVXHI.cjs.map
|
|
2571
|
+
//# sourceMappingURL=chunk-22QZVXHI.cjs.map
|