@osdk/client 2.5.0-beta.9 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +132 -0
- package/build/browser/MinimalClientContext.js.map +1 -1
- package/build/browser/actions/applyAction.js +0 -4
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/createClient.js +1 -2
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createMinimalClient.js +1 -2
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/definitions/LinkDefinitions.test.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +0 -17
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/fetchMetadata.test.js +4 -0
- package/build/browser/fetchMetadata.test.js.map +1 -1
- package/build/browser/index.js +1 -1
- package/build/browser/index.js.map +1 -1
- package/build/browser/object/aggregate.js +0 -2
- package/build/browser/object/aggregate.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js +5 -1
- package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/browser/object/fetchPage.js +5 -7
- package/build/browser/object/fetchPage.js.map +1 -1
- package/build/browser/object/mediaUpload.js +0 -3
- package/build/browser/object/mediaUpload.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js +31 -9
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/ObjectSetPayload.js +2 -0
- package/build/browser/observable/ObjectSetPayload.js.map +1 -0
- package/build/browser/observable/ObservableClient.js.map +1 -1
- package/build/browser/observable/computeObjectSetCacheKey.js +64 -0
- package/build/browser/observable/computeObjectSetCacheKey.js.map +1 -0
- package/build/browser/observable/internal/Changes.js +3 -0
- package/build/browser/observable/internal/Changes.js.map +1 -1
- package/build/browser/observable/internal/KnownCacheKey.js.map +1 -1
- package/build/browser/observable/internal/ObservableClientImpl.js +17 -0
- package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/browser/observable/internal/Query.js +18 -1
- package/build/browser/observable/internal/Query.js.map +1 -1
- package/build/browser/observable/internal/Store.invalidation.test.js +165 -0
- package/build/browser/observable/internal/Store.invalidation.test.js.map +1 -1
- package/build/browser/observable/internal/Store.js +23 -0
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
- package/build/browser/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
- package/build/browser/observable/internal/objectset/ObjectSetHelper.js +69 -0
- package/build/browser/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
- package/build/browser/observable/internal/objectset/ObjectSetQuery.js +151 -0
- package/build/browser/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
- package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
- package/build/browser/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
- package/build/browser/ontology/loadActionMetadata.js +1 -3
- package/build/browser/ontology/loadActionMetadata.js.map +1 -1
- package/build/browser/ontology/loadFullObjectMetadata.js +1 -2
- package/build/browser/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/browser/ontology/loadInterfaceMetadata.js +1 -2
- package/build/browser/ontology/loadInterfaceMetadata.js.map +1 -1
- package/build/browser/public/unstable-do-not-use.js +1 -0
- package/build/browser/public/unstable-do-not-use.js.map +1 -1
- package/build/browser/util/UserAgent.js +2 -2
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/browser/util/exponentialBackoff.js +51 -0
- package/build/browser/util/exponentialBackoff.js.map +1 -0
- package/build/browser/util/exponentialBackoff.test.js +81 -0
- package/build/browser/util/exponentialBackoff.test.js.map +1 -0
- package/build/browser/util/toDataValue.js +1 -15
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValue.test.js +2 -42
- package/build/browser/util/toDataValue.test.js.map +1 -1
- package/build/cjs/{chunk-MKL3HEQ5.cjs → chunk-KODTFRP3.cjs} +105 -71
- package/build/cjs/chunk-KODTFRP3.cjs.map +1 -0
- package/build/cjs/{chunk-HCCGD2AP.cjs → chunk-UMET26AF.cjs} +68 -91
- package/build/cjs/chunk-UMET26AF.cjs.map +1 -0
- package/build/cjs/{createClient-mOlFts15.d.cts → createClient-BJo8T7Js.d.cts} +0 -1
- package/build/cjs/index.cjs +7 -11
- package/build/cjs/index.d.cts +2 -2
- package/build/cjs/public/internal.cjs +8 -8
- package/build/cjs/public/unstable-do-not-use.cjs +429 -156
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/cjs/public/unstable-do-not-use.d.cts +79 -7
- package/build/esm/MinimalClientContext.js.map +1 -1
- package/build/esm/actions/applyAction.js +0 -4
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/createClient.js +1 -2
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createMinimalClient.js +1 -2
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/definitions/LinkDefinitions.test.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +0 -17
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/fetchMetadata.test.js +4 -0
- package/build/esm/fetchMetadata.test.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/object/aggregate.js +0 -2
- package/build/esm/object/aggregate.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js +5 -1
- package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
- package/build/esm/object/fetchPage.js +5 -7
- package/build/esm/object/fetchPage.js.map +1 -1
- package/build/esm/object/mediaUpload.js +0 -3
- package/build/esm/object/mediaUpload.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js +31 -9
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +69 -4
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/ObjectSetPayload.js +2 -0
- package/build/esm/observable/ObjectSetPayload.js.map +1 -0
- package/build/esm/observable/ObservableClient.js.map +1 -1
- package/build/esm/observable/computeObjectSetCacheKey.js +64 -0
- package/build/esm/observable/computeObjectSetCacheKey.js.map +1 -0
- package/build/esm/observable/internal/Changes.js +3 -0
- package/build/esm/observable/internal/Changes.js.map +1 -1
- package/build/esm/observable/internal/KnownCacheKey.js.map +1 -1
- package/build/esm/observable/internal/ObservableClientImpl.js +17 -0
- package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
- package/build/esm/observable/internal/Query.js +18 -1
- package/build/esm/observable/internal/Query.js.map +1 -1
- package/build/esm/observable/internal/Store.invalidation.test.js +165 -0
- package/build/esm/observable/internal/Store.invalidation.test.js.map +1 -1
- package/build/esm/observable/internal/Store.js +23 -0
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js +2 -0
- package/build/esm/observable/internal/objectset/ObjectSetCacheKey.js.map +1 -0
- package/build/esm/observable/internal/objectset/ObjectSetHelper.js +69 -0
- package/build/esm/observable/internal/objectset/ObjectSetHelper.js.map +1 -0
- package/build/esm/observable/internal/objectset/ObjectSetQuery.js +151 -0
- package/build/esm/observable/internal/objectset/ObjectSetQuery.js.map +1 -0
- package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js +2 -0
- package/build/esm/observable/internal/objectset/ObjectSetQueryOptions.js.map +1 -0
- package/build/esm/ontology/loadActionMetadata.js +1 -3
- package/build/esm/ontology/loadActionMetadata.js.map +1 -1
- package/build/esm/ontology/loadFullObjectMetadata.js +1 -2
- package/build/esm/ontology/loadFullObjectMetadata.js.map +1 -1
- package/build/esm/ontology/loadInterfaceMetadata.js +1 -2
- package/build/esm/ontology/loadInterfaceMetadata.js.map +1 -1
- package/build/esm/public/unstable-do-not-use.js +1 -0
- package/build/esm/public/unstable-do-not-use.js.map +1 -1
- package/build/esm/util/UserAgent.js +2 -2
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/esm/util/exponentialBackoff.js +51 -0
- package/build/esm/util/exponentialBackoff.js.map +1 -0
- package/build/esm/util/exponentialBackoff.test.js +81 -0
- package/build/esm/util/exponentialBackoff.test.js.map +1 -0
- package/build/esm/util/toDataValue.js +1 -15
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValue.test.js +2 -42
- package/build/esm/util/toDataValue.test.js.map +1 -1
- package/build/types/MinimalClientContext.d.ts +0 -1
- package/build/types/MinimalClientContext.d.ts.map +1 -1
- package/build/types/actions/applyAction.d.ts.map +1 -1
- package/build/types/createClient.d.ts +0 -1
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/object/fetchPage.d.ts.map +1 -1
- package/build/types/object/mediaUpload.d.ts +1 -2
- package/build/types/object/mediaUpload.d.ts.map +1 -1
- package/build/types/observable/ObjectSetPayload.d.ts +5 -0
- package/build/types/observable/ObjectSetPayload.d.ts.map +1 -0
- package/build/types/observable/ObservableClient.d.ts +54 -1
- package/build/types/observable/ObservableClient.d.ts.map +1 -1
- package/build/types/observable/computeObjectSetCacheKey.d.ts +16 -0
- package/build/types/observable/computeObjectSetCacheKey.d.ts.map +1 -0
- package/build/types/observable/internal/Changes.d.ts +5 -3
- package/build/types/observable/internal/Changes.d.ts.map +1 -1
- package/build/types/observable/internal/KnownCacheKey.d.ts +2 -1
- package/build/types/observable/internal/KnownCacheKey.d.ts.map +1 -1
- package/build/types/observable/internal/Query.d.ts.map +1 -1
- package/build/types/observable/internal/Store.d.ts +5 -1
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts +16 -0
- package/build/types/observable/internal/objectset/ObjectSetCacheKey.d.ts.map +1 -0
- package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts +19 -0
- package/build/types/observable/internal/objectset/ObjectSetHelper.d.ts.map +1 -0
- package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts +34 -0
- package/build/types/observable/internal/objectset/ObjectSetQuery.d.ts.map +1 -0
- package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts +18 -0
- package/build/types/observable/internal/objectset/ObjectSetQueryOptions.d.ts.map +1 -0
- package/build/types/public/unstable-do-not-use.d.ts +2 -1
- package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
- package/build/types/util/exponentialBackoff.d.ts +14 -0
- package/build/types/util/exponentialBackoff.d.ts.map +1 -0
- package/build/types/util/exponentialBackoff.test.d.ts +1 -0
- package/build/types/util/exponentialBackoff.test.d.ts.map +1 -0
- package/package.json +11 -11
- package/build/cjs/chunk-HCCGD2AP.cjs.map +0 -1
- package/build/cjs/chunk-MKL3HEQ5.cjs.map +0 -1
|
@@ -14,28 +14,25 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { NULL_VALUE } from "@osdk/api";
|
|
18
17
|
import { Employee, Task } from "@osdk/client.test.ontology";
|
|
19
|
-
import { LegacyFauxFoundry,
|
|
18
|
+
import { LegacyFauxFoundry, startNodeApiServer, stubData } from "@osdk/shared.test";
|
|
20
19
|
import { beforeAll, describe, expect, it, vi } from "vitest";
|
|
21
20
|
import { createClient } from "../createClient.js";
|
|
22
21
|
import { createMinimalClient } from "../createMinimalClient.js";
|
|
23
22
|
import { createAttachmentUpload } from "../object/AttachmentUpload.js";
|
|
24
|
-
import { isMediaReference } from "../object/mediaUpload.js";
|
|
25
23
|
import { getWireObjectSet } from "../objectSet/createObjectSet.js";
|
|
26
24
|
import { toDataValue } from "./toDataValue.js";
|
|
27
25
|
describe(toDataValue, () => {
|
|
28
26
|
let client;
|
|
29
27
|
let clientCtx;
|
|
30
28
|
let mockActionMetadata;
|
|
31
|
-
let apiServer;
|
|
32
29
|
vi.fn();
|
|
33
30
|
beforeAll(() => {
|
|
34
31
|
const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);
|
|
35
32
|
({
|
|
36
33
|
client
|
|
37
34
|
} = testSetup);
|
|
38
|
-
|
|
35
|
+
testSetup.apiServer;
|
|
39
36
|
clientCtx = createMinimalClient({
|
|
40
37
|
ontologyRid: testSetup.fauxFoundry.defaultOntologyRid
|
|
41
38
|
}, testSetup.fauxFoundry.baseUrl, testSetup.auth, {});
|
|
@@ -143,35 +140,6 @@ describe(toDataValue, () => {
|
|
|
143
140
|
const converted = await toDataValue(file, clientCtx, mockActionMetadata);
|
|
144
141
|
expect(converted).toMatch(/ri\.attachments.main.attachment\.[a-z0-9\-]+/i);
|
|
145
142
|
});
|
|
146
|
-
it("converts media uploads correctly", async () => {
|
|
147
|
-
const file = {
|
|
148
|
-
data: new Blob([JSON.stringify({
|
|
149
|
-
name: "Hello World"
|
|
150
|
-
}, null, 2)], {
|
|
151
|
-
type: "application/json"
|
|
152
|
-
}),
|
|
153
|
-
path: "file.txt"
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
// TODO: Mock MediaUpload properly in FauxFoundry
|
|
157
|
-
apiServer.boundary(async () => {
|
|
158
|
-
apiServer.use(MockOntologiesV2.MediaReferenceProperties.uploadMedia("https://stack.palantir.com", () => {
|
|
159
|
-
return {
|
|
160
|
-
mimeType: "application/json",
|
|
161
|
-
reference: {
|
|
162
|
-
type: "mediaSetViewItem",
|
|
163
|
-
mediaSetViewItem: {
|
|
164
|
-
mediaItemRid: "media-item-rid",
|
|
165
|
-
mediaSetRid: "media-set-rid",
|
|
166
|
-
mediaSetViewRid: "media-set-view-rid"
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}));
|
|
171
|
-
const converted = await toDataValue(file, clientCtx, mockActionMetadata);
|
|
172
|
-
expect(isMediaReference(converted)).toBe(true);
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
143
|
it("converts media reference correctly", async () => {
|
|
176
144
|
const mediaReference = {
|
|
177
145
|
mimeType: "application/json",
|
|
@@ -187,13 +155,5 @@ describe(toDataValue, () => {
|
|
|
187
155
|
const converted = await toDataValue(mediaReference, clientCtx, mockActionMetadata);
|
|
188
156
|
expect(converted).toEqual(mediaReference);
|
|
189
157
|
});
|
|
190
|
-
it("Converts NULL_VALUE to null", async () => {
|
|
191
|
-
const converted = await toDataValue(NULL_VALUE, clientCtx, mockActionMetadata);
|
|
192
|
-
expect(converted).toBeNull();
|
|
193
|
-
});
|
|
194
|
-
it("Converts NULL_VALUE equivalents to null", async () => {
|
|
195
|
-
const converted = await toDataValue(Symbol.for("NULL_VALUE"), clientCtx, mockActionMetadata);
|
|
196
|
-
expect(converted).toEqual(null);
|
|
197
|
-
});
|
|
198
158
|
});
|
|
199
159
|
//# sourceMappingURL=toDataValue.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toDataValue.test.js","names":["NULL_VALUE","Employee","Task","LegacyFauxFoundry","MockOntologiesV2","startNodeApiServer","stubData","beforeAll","describe","expect","it","vi","createClient","createMinimalClient","createAttachmentUpload","isMediaReference","getWireObjectSet","toDataValue","client","clientCtx","mockActionMetadata","apiServer","fn","testSetup","ontologyRid","fauxFoundry","defaultOntologyRid","baseUrl","auth","apiName","close","basic","null","undefined","boolean","date","integer","string","timestamp","convertedBasic","toEqual","attachment","attachmentArray","attachmentSet","Set","recursiveConversion","inner","employee","employee1","ontologyConversion","__primaryKey","task","fetchOne","$primaryKey","clientObjectSet","where","id","definition","expected","objectSetConversion","toMatchInlineSnapshot","definitionConversion","blob","Blob","JSON","stringify","attachmentUpload","converted","toMatch","file","Object","assign","name","type","data","path","boundary","use","MediaReferenceProperties","uploadMedia","mimeType","reference","mediaSetViewItem","mediaItemRid","mediaSetRid","mediaSetViewRid","toBe","mediaReference","toBeNull","Symbol","for"],"sources":["toDataValue.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NULL_VALUE } from \"@osdk/api\";\nimport type { ActionMetadata, MediaUpload } from \"@osdk/api\";\nimport { Employee, Task } from \"@osdk/client.test.ontology\";\nimport type { MediaReference } from \"@osdk/foundry.core\";\nimport type { SetupServer } from \"@osdk/shared.test\";\nimport {\n LegacyFauxFoundry,\n MockOntologiesV2,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport type { MockedFunction } from \"vitest\";\nimport { beforeAll, describe, expect, it, vi } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createAttachmentUpload } from \"../object/AttachmentUpload.js\";\nimport { isMediaReference } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { toDataValue } from \"./toDataValue.js\";\n\ndescribe(toDataValue, () => {\n let client: Client;\n let clientCtx: MinimalClient;\n let mockActionMetadata: ActionMetadata;\n let apiServer: SetupServer;\n\n const mockFetch: MockedFunction<typeof globalThis.fetch> = vi.fn();\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n\n apiServer = testSetup.apiServer;\n\n clientCtx = createMinimalClient(\n { ontologyRid: testSetup.fauxFoundry.defaultOntologyRid },\n testSetup.fauxFoundry.baseUrl,\n testSetup.auth,\n {},\n );\n\n // toDataValue only needs the apiName right now, update this if that changes\n const fakeActionMetadata = {\n apiName: \"createUnstructuredImageExampleObject\",\n };\n mockActionMetadata = fakeActionMetadata as ActionMetadata;\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"converts passthrough values correctly\", async () => {\n // basic pass through types\n const basic = {\n null: undefined,\n boolean: false,\n date: \"2024-01-01\",\n integer: 0,\n string: \"string\",\n timestamp: \"2024-01-01T00:00:00Z\",\n };\n const convertedBasic = await toDataValue(\n basic,\n clientCtx,\n mockActionMetadata,\n );\n expect(convertedBasic).toEqual(basic);\n });\n\n it(\"recursively converts arrays and sets into array types\", async () => {\n const attachment = \"rid\";\n const attachmentArray = [attachment];\n const attachmentSet = new Set(attachmentArray);\n\n const recursiveConversion = await toDataValue(\n {\n attachment,\n attachmentArray,\n attachmentSet,\n },\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n attachment: \"rid\",\n attachmentArray: [\"rid\"],\n attachmentSet: [\"rid\"],\n });\n });\n\n it(\"recursively handles structs\", async () => {\n const struct = {\n inner: {\n attachment: \"rid\",\n },\n };\n\n const recursiveConversion = await toDataValue(\n struct,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n inner: { attachment: \"rid\" },\n });\n });\n\n it(\"maps an ontology object into just its primary key\", async () => {\n const employee = stubData.employee1;\n const ontologyConversion = await toDataValue(\n employee,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n stubData.employee1.__primaryKey,\n );\n });\n\n it(\"maps an ontology object into just its primary key with osdk wrapper\", async () => {\n const task = await client(Employee).fetchOne(50030);\n const ontologyConversion = await toDataValue(\n task,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n task.$primaryKey,\n );\n });\n\n it(\"passes through object set definitions\", async () => {\n const clientObjectSet = client(Task).where({ id: 0 });\n const definition = getWireObjectSet(clientObjectSet);\n\n const expected = `\n {\n \"objectSet\": {\n \"objectType\": \"Task\",\n \"type\": \"base\",\n },\n \"type\": \"filter\",\n \"where\": {\n \"field\": \"id\",\n \"type\": \"eq\",\n \"value\": 0,\n },\n }\n `;\n const objectSetConversion = await toDataValue(\n clientObjectSet,\n clientCtx,\n mockActionMetadata,\n );\n expect(objectSetConversion).toMatchInlineSnapshot(\n expected,\n );\n\n const definitionConversion = await toDataValue(\n definition,\n clientCtx,\n mockActionMetadata,\n );\n expect(definitionConversion).toMatchInlineSnapshot(expected);\n });\n\n it(\"converts blob attachment uploads correctly\", async () => {\n const blob = new Blob([JSON.stringify({ \"hi\": \"mom\" })]);\n const attachmentUpload = createAttachmentUpload(blob, \"file1.txt\");\n const converted = await toDataValue(\n attachmentUpload,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts file attachment uploads correctly\", async () => {\n // Mimics the Web file API (https://developer.mozilla.org/en-US/docs/Web/API/File). The File constructor is only available in Node 19.2.0 and above\n const file = Object.assign(\n new Blob([\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ], {\n type: \"application/json\",\n }),\n { name: \"file1.txt\" },\n );\n\n const converted = await toDataValue(file, clientCtx, mockActionMetadata);\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts media uploads correctly\", async () => {\n const file: MediaUpload = {\n data: new Blob([\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ], {\n type: \"application/json\",\n }),\n path: \"file.txt\",\n };\n\n // TODO: Mock MediaUpload properly in FauxFoundry\n apiServer.boundary(async () => {\n apiServer.use(\n MockOntologiesV2.MediaReferenceProperties.uploadMedia(\n \"https://stack.palantir.com\",\n () => {\n return {\n mimeType: \"application/json\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"media-item-rid\",\n mediaSetRid: \"media-set-rid\",\n mediaSetViewRid: \"media-set-view-rid\",\n },\n },\n };\n },\n ),\n );\n const converted = await toDataValue(file, clientCtx, mockActionMetadata);\n expect(isMediaReference(converted)).toBe(true);\n });\n });\n\n it(\"converts media reference correctly\", async () => {\n const mediaReference: MediaReference = {\n mimeType: \"application/json\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"media-item-rid\",\n mediaSetRid: \"media-set-rid\",\n mediaSetViewRid: \"media-set-view-rid\",\n },\n },\n };\n\n const converted = await toDataValue(\n mediaReference,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toEqual(mediaReference);\n });\n\n it(\"Converts NULL_VALUE to null\", async () => {\n const converted = await toDataValue(\n NULL_VALUE,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toBeNull();\n });\n\n it(\"Converts NULL_VALUE equivalents to null\", async () => {\n const clearData = Symbol.for(\"NULL_VALUE\") as symbol & {\n __type: \"NULL_VALUE\";\n };\n const converted = await toDataValue(\n clearData,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toEqual(null);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"toDataValue.test.js","names":["Employee","Task","LegacyFauxFoundry","startNodeApiServer","stubData","beforeAll","describe","expect","it","vi","createClient","createMinimalClient","createAttachmentUpload","getWireObjectSet","toDataValue","client","clientCtx","mockActionMetadata","fn","testSetup","apiServer","ontologyRid","fauxFoundry","defaultOntologyRid","baseUrl","auth","apiName","close","basic","null","undefined","boolean","date","integer","string","timestamp","convertedBasic","toEqual","attachment","attachmentArray","attachmentSet","Set","recursiveConversion","inner","employee","employee1","ontologyConversion","__primaryKey","task","fetchOne","$primaryKey","clientObjectSet","where","id","definition","expected","objectSetConversion","toMatchInlineSnapshot","definitionConversion","blob","Blob","JSON","stringify","attachmentUpload","converted","toMatch","file","Object","assign","name","type","mediaReference","mimeType","reference","mediaSetViewItem","mediaItemRid","mediaSetRid","mediaSetViewRid"],"sources":["toDataValue.test.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ActionMetadata } from \"@osdk/api\";\nimport { Employee, Task } from \"@osdk/client.test.ontology\";\nimport type { MediaReference } from \"@osdk/foundry.core\";\nimport type { SetupServer } from \"@osdk/shared.test\";\nimport {\n LegacyFauxFoundry,\n startNodeApiServer,\n stubData,\n} from \"@osdk/shared.test\";\nimport type { MockedFunction } from \"vitest\";\nimport { beforeAll, describe, expect, it, vi } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createAttachmentUpload } from \"../object/AttachmentUpload.js\";\nimport { getWireObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { toDataValue } from \"./toDataValue.js\";\n\ndescribe(toDataValue, () => {\n let client: Client;\n let clientCtx: MinimalClient;\n let mockActionMetadata: ActionMetadata;\n let apiServer: SetupServer;\n\n const mockFetch: MockedFunction<typeof globalThis.fetch> = vi.fn();\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n\n apiServer = testSetup.apiServer;\n\n clientCtx = createMinimalClient(\n { ontologyRid: testSetup.fauxFoundry.defaultOntologyRid },\n testSetup.fauxFoundry.baseUrl,\n testSetup.auth,\n {},\n );\n\n // toDataValue only needs the apiName right now, update this if that changes\n const fakeActionMetadata = {\n apiName: \"createUnstructuredImageExampleObject\",\n };\n mockActionMetadata = fakeActionMetadata as ActionMetadata;\n\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"converts passthrough values correctly\", async () => {\n // basic pass through types\n const basic = {\n null: undefined,\n boolean: false,\n date: \"2024-01-01\",\n integer: 0,\n string: \"string\",\n timestamp: \"2024-01-01T00:00:00Z\",\n };\n const convertedBasic = await toDataValue(\n basic,\n clientCtx,\n mockActionMetadata,\n );\n expect(convertedBasic).toEqual(basic);\n });\n\n it(\"recursively converts arrays and sets into array types\", async () => {\n const attachment = \"rid\";\n const attachmentArray = [attachment];\n const attachmentSet = new Set(attachmentArray);\n\n const recursiveConversion = await toDataValue(\n {\n attachment,\n attachmentArray,\n attachmentSet,\n },\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n attachment: \"rid\",\n attachmentArray: [\"rid\"],\n attachmentSet: [\"rid\"],\n });\n });\n\n it(\"recursively handles structs\", async () => {\n const struct = {\n inner: {\n attachment: \"rid\",\n },\n };\n\n const recursiveConversion = await toDataValue(\n struct,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(recursiveConversion).toEqual({\n inner: { attachment: \"rid\" },\n });\n });\n\n it(\"maps an ontology object into just its primary key\", async () => {\n const employee = stubData.employee1;\n const ontologyConversion = await toDataValue(\n employee,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n stubData.employee1.__primaryKey,\n );\n });\n\n it(\"maps an ontology object into just its primary key with osdk wrapper\", async () => {\n const task = await client(Employee).fetchOne(50030);\n const ontologyConversion = await toDataValue(\n task,\n clientCtx,\n mockActionMetadata,\n );\n expect(ontologyConversion).toEqual(\n task.$primaryKey,\n );\n });\n\n it(\"passes through object set definitions\", async () => {\n const clientObjectSet = client(Task).where({ id: 0 });\n const definition = getWireObjectSet(clientObjectSet);\n\n const expected = `\n {\n \"objectSet\": {\n \"objectType\": \"Task\",\n \"type\": \"base\",\n },\n \"type\": \"filter\",\n \"where\": {\n \"field\": \"id\",\n \"type\": \"eq\",\n \"value\": 0,\n },\n }\n `;\n const objectSetConversion = await toDataValue(\n clientObjectSet,\n clientCtx,\n mockActionMetadata,\n );\n expect(objectSetConversion).toMatchInlineSnapshot(\n expected,\n );\n\n const definitionConversion = await toDataValue(\n definition,\n clientCtx,\n mockActionMetadata,\n );\n expect(definitionConversion).toMatchInlineSnapshot(expected);\n });\n\n it(\"converts blob attachment uploads correctly\", async () => {\n const blob = new Blob([JSON.stringify({ \"hi\": \"mom\" })]);\n const attachmentUpload = createAttachmentUpload(blob, \"file1.txt\");\n const converted = await toDataValue(\n attachmentUpload,\n clientCtx,\n mockActionMetadata,\n );\n\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts file attachment uploads correctly\", async () => {\n // Mimics the Web file API (https://developer.mozilla.org/en-US/docs/Web/API/File). The File constructor is only available in Node 19.2.0 and above\n const file = Object.assign(\n new Blob([\n JSON.stringify({ name: \"Hello World\" }, null, 2),\n ], {\n type: \"application/json\",\n }),\n { name: \"file1.txt\" },\n );\n\n const converted = await toDataValue(file, clientCtx, mockActionMetadata);\n expect(converted).toMatch(/ri\\.attachments.main.attachment\\.[a-z0-9\\-]+/i);\n });\n\n it(\"converts media reference correctly\", async () => {\n const mediaReference: MediaReference = {\n mimeType: \"application/json\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaItemRid: \"media-item-rid\",\n mediaSetRid: \"media-set-rid\",\n mediaSetViewRid: \"media-set-view-rid\",\n },\n },\n };\n\n const converted = await toDataValue(\n mediaReference,\n clientCtx,\n mockActionMetadata,\n );\n expect(converted).toEqual(mediaReference);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
var chunkQ7SFCCGT_cjs = require('./chunk-Q7SFCCGT.cjs');
|
|
4
4
|
var shared_net_errors = require('@osdk/shared.net.errors');
|
|
5
5
|
var api = require('@osdk/api');
|
|
6
|
-
var
|
|
6
|
+
var invariant8 = require('tiny-invariant');
|
|
7
7
|
var shared_net_fetch = require('@osdk/shared.net.fetch');
|
|
8
8
|
var WebSocket = require('isomorphic-ws');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var invariant8__default = /*#__PURE__*/_interopDefault(invariant8);
|
|
13
13
|
var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
|
|
14
14
|
|
|
15
15
|
// ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
|
|
@@ -406,7 +406,7 @@ function makeGeoFilterPolygon(coordinates, filterType, propertyIdentifier, field
|
|
|
406
406
|
};
|
|
407
407
|
}
|
|
408
408
|
function handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector) {
|
|
409
|
-
!(filter != null) ? process.env.NODE_ENV !== "production" ?
|
|
409
|
+
!(filter != null) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant8__default.default(false) : void 0;
|
|
410
410
|
const propertyIdentifier = structFieldSelector != null ? {
|
|
411
411
|
type: "structField",
|
|
412
412
|
...structFieldSelector,
|
|
@@ -425,10 +425,10 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
|
|
|
425
425
|
}
|
|
426
426
|
const keysOfFilter = Object.keys(filter);
|
|
427
427
|
const hasDollarSign = keysOfFilter.some((key) => key.startsWith("$"));
|
|
428
|
-
!(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
428
|
+
!(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.") : invariant8__default.default(false) : void 0;
|
|
429
429
|
if (!hasDollarSign) {
|
|
430
430
|
const structFilter = Object.entries(filter);
|
|
431
|
-
!(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
431
|
+
!(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant8__default.default(false) : void 0;
|
|
432
432
|
const structFieldApiName = keysOfFilter[0];
|
|
433
433
|
return handleWherePair(Object.entries(filter)[0], objectOrInterface, {
|
|
434
434
|
propertyApiName: fieldName,
|
|
@@ -436,7 +436,7 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
|
|
|
436
436
|
});
|
|
437
437
|
}
|
|
438
438
|
const firstKey = keysOfFilter[0];
|
|
439
|
-
!(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ?
|
|
439
|
+
!(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false) : invariant8__default.default(false) : void 0;
|
|
440
440
|
if (firstKey === "$ne") {
|
|
441
441
|
return {
|
|
442
442
|
type: "not",
|
|
@@ -537,7 +537,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
|
|
|
537
537
|
}
|
|
538
538
|
const objOrInterfaceDef2 = def2.type === "object" ? await clientCtx.ontologyProvider.getObjectDefinition(def2.apiName) : await clientCtx.ontologyProvider.getInterfaceDefinition(def2.apiName);
|
|
539
539
|
const linkDef2 = objOrInterfaceDef2.links[objectSet.link];
|
|
540
|
-
!linkDef2 ? process.env.NODE_ENV !== "production" ?
|
|
540
|
+
!linkDef2 ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing link definition for '${objectSet.link}'`) : invariant8__default.default(false) : void 0;
|
|
541
541
|
return objOrInterfaceDef2.type === "object" ? {
|
|
542
542
|
apiName: objOrInterfaceDef2.links[objectSet.link].targetType,
|
|
543
543
|
type: "object"
|
|
@@ -571,7 +571,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
|
|
|
571
571
|
const objectSetTypes2 = await Promise.all(objectSets2.map((os) => extractObjectOrInterfaceType(clientCtx, os)));
|
|
572
572
|
const filteredObjectTypes2 = objectSetTypes2.filter(Boolean);
|
|
573
573
|
const firstInterfaceType = filteredObjectTypes2.find((val) => val?.type === "interface");
|
|
574
|
-
!firstInterfaceType ? process.env.NODE_ENV !== "production" ?
|
|
574
|
+
!firstInterfaceType ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing interface type in intersect objectset scope'`) : invariant8__default.default(false) : void 0;
|
|
575
575
|
return firstInterfaceType;
|
|
576
576
|
}
|
|
577
577
|
case "subtract":
|
|
@@ -582,7 +582,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
|
|
|
582
582
|
const firstObjectType = filteredObjectTypes[0];
|
|
583
583
|
!filteredObjectTypes.every((val) => {
|
|
584
584
|
return val?.apiName === firstObjectType?.apiName && val?.type === firstObjectType?.type;
|
|
585
|
-
}) ? process.env.NODE_ENV !== "production" ?
|
|
585
|
+
}) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Can only have one object type when doing subtract, union") : invariant8__default.default(false) : void 0;
|
|
586
586
|
return filteredObjectTypes[0];
|
|
587
587
|
case "static":
|
|
588
588
|
case "reference":
|
|
@@ -594,7 +594,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
|
|
|
594
594
|
}
|
|
595
595
|
const objOrInterfaceDef = def.type === "object" ? await clientCtx.ontologyProvider.getObjectDefinition(def.apiName) : await clientCtx.ontologyProvider.getInterfaceDefinition(def.apiName);
|
|
596
596
|
const linkDef = objOrInterfaceDef.links[objectSet.interfaceLink];
|
|
597
|
-
!linkDef ? process.env.NODE_ENV !== "production" ?
|
|
597
|
+
!linkDef ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing link definition for '${objectSet.interfaceLink}'`) : invariant8__default.default(false) : void 0;
|
|
598
598
|
return objOrInterfaceDef.type === "object" ? {
|
|
599
599
|
apiName: objOrInterfaceDef.links[objectSet.interfaceLink].targetType,
|
|
600
600
|
type: "object"
|
|
@@ -604,7 +604,7 @@ async function extractObjectOrInterfaceType(clientCtx, objectSet) {
|
|
|
604
604
|
};
|
|
605
605
|
// We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.
|
|
606
606
|
default:
|
|
607
|
-
process.env.NODE_ENV !== "production" ?
|
|
607
|
+
process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Unsupported object set type for deriving object or interface type,`) : invariant8__default.default(false) ;
|
|
608
608
|
}
|
|
609
609
|
}
|
|
610
610
|
async function extractRdpDefinition(clientCtx, objectSet) {
|
|
@@ -624,7 +624,7 @@ async function extractRdpDefinitionInternal(clientCtx, objectSet, methodInputObj
|
|
|
624
624
|
}
|
|
625
625
|
const objDef = await clientCtx.ontologyProvider.getObjectDefinition(childObjectType);
|
|
626
626
|
const linkDef = objDef.links[objectSet.link];
|
|
627
|
-
!linkDef ? process.env.NODE_ENV !== "production" ?
|
|
627
|
+
!linkDef ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Missing link definition for '${objectSet.link}'`) : invariant8__default.default(false) : void 0;
|
|
628
628
|
return {
|
|
629
629
|
definitions: definitions2,
|
|
630
630
|
childObjectType: objDef.links[objectSet.link].targetType
|
|
@@ -710,13 +710,13 @@ async function extractRdpDefinitionInternal(clientCtx, objectSet, methodInputObj
|
|
|
710
710
|
...acc,
|
|
711
711
|
...definitions2
|
|
712
712
|
}), {});
|
|
713
|
-
!(Object.keys(definitions).length === 0) ? process.env.NODE_ENV !== "production" ?
|
|
713
|
+
!(Object.keys(definitions).length === 0) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Object sets combined using intersect, subtract, or union must not contain any derived property definitions") : invariant8__default.default(false) : void 0;
|
|
714
714
|
const firstValidChildObjectType = objectSetTypes.find(({
|
|
715
715
|
childObjectType
|
|
716
716
|
}) => childObjectType != null)?.childObjectType;
|
|
717
717
|
!objectSetTypes.every(({
|
|
718
718
|
childObjectType
|
|
719
|
-
}) => childObjectType === firstValidChildObjectType || childObjectType == null) ? process.env.NODE_ENV !== "production" ?
|
|
719
|
+
}) => childObjectType === firstValidChildObjectType || childObjectType == null) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "All object sets in an intersect, subtract, or union must have the same child object type") : invariant8__default.default(false) : void 0;
|
|
720
720
|
return {
|
|
721
721
|
definitions: {},
|
|
722
722
|
childObjectType: firstValidChildObjectType
|
|
@@ -728,9 +728,9 @@ async function extractRdpDefinitionInternal(clientCtx, objectSet, methodInputObj
|
|
|
728
728
|
};
|
|
729
729
|
// We don't have to worry about new object sets being added and doing a runtime break and breaking people since the OSDK is always constructing these.
|
|
730
730
|
case "interfaceLinkSearchAround":
|
|
731
|
-
process.env.NODE_ENV !== "production" ?
|
|
731
|
+
process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Unsupported object set type for Runtime Derived Properties`) : invariant8__default.default(false) ;
|
|
732
732
|
default:
|
|
733
|
-
process.env.NODE_ENV !== "production" ?
|
|
733
|
+
process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Unsupported object set type for Runtime Derived Properties`) : invariant8__default.default(false) ;
|
|
734
734
|
}
|
|
735
735
|
}
|
|
736
736
|
|
|
@@ -839,8 +839,7 @@ async function fetchInterfacePage(client, interfaceType, args, objectSet, useSna
|
|
|
839
839
|
snapshot: useSnapshot
|
|
840
840
|
}, client, interfaceType);
|
|
841
841
|
const result = await OntologyObjectSet_exports.loadMultipleObjectTypes(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, requestBody, {
|
|
842
|
-
preview: true
|
|
843
|
-
branch: client.branch
|
|
842
|
+
preview: true
|
|
844
843
|
});
|
|
845
844
|
return Promise.resolve({
|
|
846
845
|
data: await client.objectFactory2(client, result.data, (await extractObjectOrInterfaceType(client, resolvedInterfaceObjectSet))?.apiName ?? interfaceType.apiName, {}, !args.$includeRid, args.$select, false, result.interfaceToObjectTypeMappings),
|
|
@@ -928,16 +927,15 @@ async function applyFetchArgs(args, body, _client, objectType) {
|
|
|
928
927
|
return body;
|
|
929
928
|
}
|
|
930
929
|
async function fetchObjectPage(client, objectType, args, objectSet, useSnapshot = false) {
|
|
931
|
-
void client.ontologyProvider.getObjectDefinition(objectType.apiName)
|
|
930
|
+
void client.ontologyProvider.getObjectDefinition(objectType.apiName).catch(() => {
|
|
931
|
+
});
|
|
932
932
|
const requestBody = await buildAndRemapRequestBody(args, {
|
|
933
933
|
objectSet,
|
|
934
934
|
select: args?.$select ? [...args.$select] : [],
|
|
935
935
|
excludeRid: !args?.$includeRid,
|
|
936
936
|
snapshot: useSnapshot
|
|
937
937
|
}, client, objectType);
|
|
938
|
-
const r = await OntologyObjectSet_exports.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, requestBody
|
|
939
|
-
branch: client.branch
|
|
940
|
-
});
|
|
938
|
+
const r = await OntologyObjectSet_exports.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, requestBody);
|
|
941
939
|
return Promise.resolve({
|
|
942
940
|
data: await client.objectFactory(client, r.data, void 0, void 0, await extractRdpDefinition(client, objectSet), args.$select, false),
|
|
943
941
|
nextPageToken: r.nextPageToken,
|
|
@@ -1127,12 +1125,12 @@ function derivedPropertyDefinitionFactory(wireDefinition, definitionMap) {
|
|
|
1127
1125
|
var getDefinitionFromMap = (arg, definitionMap) => {
|
|
1128
1126
|
if (typeof arg === "object") {
|
|
1129
1127
|
const definition = definitionMap.get(arg);
|
|
1130
|
-
!definition ? process.env.NODE_ENV !== "production" ?
|
|
1128
|
+
!definition ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Derived Property is not defined") : invariant8__default.default(false) : void 0;
|
|
1131
1129
|
return definition;
|
|
1132
1130
|
} else if (typeof arg === "number") {
|
|
1133
|
-
process.env.NODE_ENV !== "production" ?
|
|
1131
|
+
process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Literals for derived properties are not yet supported") : invariant8__default.default(false) ;
|
|
1134
1132
|
}
|
|
1135
|
-
process.env.NODE_ENV !== "production" ?
|
|
1133
|
+
process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Invalid argument type for a derived property") : invariant8__default.default(false) ;
|
|
1136
1134
|
};
|
|
1137
1135
|
|
|
1138
1136
|
// src/derivedProperties/createWithPropertiesObjectSet.ts
|
|
@@ -1154,7 +1152,7 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fro
|
|
|
1154
1152
|
},
|
|
1155
1153
|
aggregate: (aggregation, opt) => {
|
|
1156
1154
|
const splitAggregation = aggregation.split(":");
|
|
1157
|
-
!(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ?
|
|
1155
|
+
!(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Invalid aggregation format") : invariant8__default.default(false) : void 0;
|
|
1158
1156
|
const [aggregationPropertyName, aggregationOperation] = splitAggregation;
|
|
1159
1157
|
let aggregationOperationDefinition;
|
|
1160
1158
|
switch (aggregationOperation) {
|
|
@@ -1192,7 +1190,7 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fro
|
|
|
1192
1190
|
break;
|
|
1193
1191
|
}
|
|
1194
1192
|
default:
|
|
1195
|
-
process.env.NODE_ENV !== "production" ?
|
|
1193
|
+
process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Invalid aggregation operation " + aggregationOperation) : invariant8__default.default(false) ;
|
|
1196
1194
|
}
|
|
1197
1195
|
const wrappedObjectSet = {
|
|
1198
1196
|
type: "selection",
|
|
@@ -1224,23 +1222,6 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fro
|
|
|
1224
1222
|
const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);
|
|
1225
1223
|
definitionMap.set(selectorResult, wrappedObjectSet);
|
|
1226
1224
|
return selectorResult;
|
|
1227
|
-
},
|
|
1228
|
-
constant: {
|
|
1229
|
-
double: (value) => {
|
|
1230
|
-
process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
|
|
1231
|
-
},
|
|
1232
|
-
integer: (value) => {
|
|
1233
|
-
process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
|
|
1234
|
-
},
|
|
1235
|
-
long: (value) => {
|
|
1236
|
-
process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
|
|
1237
|
-
},
|
|
1238
|
-
datetime: (value) => {
|
|
1239
|
-
process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
|
|
1240
|
-
},
|
|
1241
|
-
timestamp: (value) => {
|
|
1242
|
-
process.env.NODE_ENV !== "production" ? invariant5__default.default(false, "Not supported") : invariant5__default.default(false) ;
|
|
1243
|
-
}
|
|
1244
1225
|
}
|
|
1245
1226
|
};
|
|
1246
1227
|
}
|
|
@@ -1250,7 +1231,7 @@ function legacyToModernSingleAggregationResult(entry) {
|
|
|
1250
1231
|
if (parts[0] === "count") {
|
|
1251
1232
|
return accumulator;
|
|
1252
1233
|
}
|
|
1253
|
-
!(parts.length === 2) ? process.env.NODE_ENV !== "production" ?
|
|
1234
|
+
!(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant8__default.default(false) : void 0;
|
|
1254
1235
|
const property = parts[0];
|
|
1255
1236
|
const metricType = parts[1];
|
|
1256
1237
|
if (!(property in accumulator)) {
|
|
@@ -1349,11 +1330,9 @@ async function aggregate3(clientCtx, objectType, objectSet = resolveBaseObjectSe
|
|
|
1349
1330
|
objectSet,
|
|
1350
1331
|
groupBy: body.groupBy,
|
|
1351
1332
|
aggregation: body.aggregation
|
|
1352
|
-
}, {
|
|
1353
|
-
branch: clientCtx.branch
|
|
1354
1333
|
});
|
|
1355
1334
|
if (!req.$groupBy) {
|
|
1356
|
-
!(result.data.length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
1335
|
+
!(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "no group by clause should mean only one data result") : invariant8__default.default(false) : void 0;
|
|
1357
1336
|
return {
|
|
1358
1337
|
...aggregationToCountResult(result.data[0]),
|
|
1359
1338
|
...legacyToModernSingleAggregationResult(result.data[0])
|
|
@@ -1392,7 +1371,50 @@ var WIRE_OBJECT_SET_TYPES = /* @__PURE__ */ new Set(["base", "filter", "intersec
|
|
|
1392
1371
|
function isWireObjectSet(o) {
|
|
1393
1372
|
return o != null && typeof o === "object" && WIRE_OBJECT_SET_TYPES.has(o.type);
|
|
1394
1373
|
}
|
|
1374
|
+
|
|
1375
|
+
// src/util/exponentialBackoff.ts
|
|
1376
|
+
var DEFAULT_OPTIONS = {
|
|
1377
|
+
initialDelayMs: 1e3,
|
|
1378
|
+
maxDelayMs: 6e4,
|
|
1379
|
+
multiplier: 2,
|
|
1380
|
+
jitterFactor: 0.3
|
|
1381
|
+
};
|
|
1382
|
+
var ExponentialBackoff = class {
|
|
1383
|
+
attempt = 0;
|
|
1384
|
+
constructor(options = {}) {
|
|
1385
|
+
this.options = {
|
|
1386
|
+
...DEFAULT_OPTIONS,
|
|
1387
|
+
...options
|
|
1388
|
+
};
|
|
1389
|
+
}
|
|
1390
|
+
calculateDelay() {
|
|
1391
|
+
const {
|
|
1392
|
+
initialDelayMs,
|
|
1393
|
+
maxDelayMs,
|
|
1394
|
+
multiplier,
|
|
1395
|
+
jitterFactor
|
|
1396
|
+
} = this.options;
|
|
1397
|
+
const baseDelay = Math.min(initialDelayMs * Math.pow(multiplier, this.attempt), maxDelayMs);
|
|
1398
|
+
const jitter = baseDelay * jitterFactor * (Math.random() * 2 - 1);
|
|
1399
|
+
const delayWithJitter = Math.max(0, baseDelay + jitter);
|
|
1400
|
+
this.attempt++;
|
|
1401
|
+
return Math.round(delayWithJitter);
|
|
1402
|
+
}
|
|
1403
|
+
reset() {
|
|
1404
|
+
this.attempt = 0;
|
|
1405
|
+
}
|
|
1406
|
+
getAttempt() {
|
|
1407
|
+
return this.attempt;
|
|
1408
|
+
}
|
|
1409
|
+
};
|
|
1410
|
+
|
|
1411
|
+
// src/objectSet/ObjectSetListenerWebsocket.ts
|
|
1395
1412
|
var MINIMUM_RECONNECT_DELAY_MS = 5 * 1e3;
|
|
1413
|
+
var EXPONENTIAL_BACKOFF_INITIAL_DELAY_MS = 1e3;
|
|
1414
|
+
var EXPONENTIAL_BACKOFF_MAX_DELAY_MS = 6e4;
|
|
1415
|
+
var EXPONENTIAL_BACKOFF_MULTIPLIER = 2;
|
|
1416
|
+
var EXPONENTIAL_BACKOFF_JITTER_FACTOR = 0.3;
|
|
1417
|
+
var WEBSOCKET_IDLE_DISCONNECT_DELAY_MS = 15e3;
|
|
1396
1418
|
function doNothing() {
|
|
1397
1419
|
}
|
|
1398
1420
|
function fillOutListener({
|
|
@@ -1428,6 +1450,8 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1428
1450
|
#ws;
|
|
1429
1451
|
#lastWsConnect = 0;
|
|
1430
1452
|
#client;
|
|
1453
|
+
#backoff;
|
|
1454
|
+
#isFirstConnection = true;
|
|
1431
1455
|
#logger;
|
|
1432
1456
|
/**
|
|
1433
1457
|
* map of requestId to all active subscriptions at the time of the request
|
|
@@ -1446,10 +1470,16 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1446
1470
|
} = {}) {
|
|
1447
1471
|
this.MINIMUM_RECONNECT_DELAY_MS = minimumReconnectDelayMs;
|
|
1448
1472
|
this.#client = client;
|
|
1473
|
+
this.#backoff = new ExponentialBackoff({
|
|
1474
|
+
initialDelayMs: EXPONENTIAL_BACKOFF_INITIAL_DELAY_MS,
|
|
1475
|
+
maxDelayMs: EXPONENTIAL_BACKOFF_MAX_DELAY_MS,
|
|
1476
|
+
multiplier: EXPONENTIAL_BACKOFF_MULTIPLIER,
|
|
1477
|
+
jitterFactor: EXPONENTIAL_BACKOFF_JITTER_FACTOR
|
|
1478
|
+
});
|
|
1449
1479
|
this.#logger = client.logger?.child({}, {
|
|
1450
1480
|
msgPrefix: "<OSW> "
|
|
1451
1481
|
});
|
|
1452
|
-
!(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ?
|
|
1482
|
+
!(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Stack must be a URL") : invariant8__default.default(false) : void 0;
|
|
1453
1483
|
}
|
|
1454
1484
|
async subscribe(objectType, objectSet, listener, properties = []) {
|
|
1455
1485
|
const objOrInterfaceDef = objectType.type === "object" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);
|
|
@@ -1546,16 +1576,12 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1546
1576
|
if (this.#maybeDisconnectTimeout) {
|
|
1547
1577
|
clearTimeout(this.#maybeDisconnectTimeout);
|
|
1548
1578
|
}
|
|
1549
|
-
this.#maybeDisconnectTimeout = setTimeout(
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
},
|
|
1556
|
-
15e3
|
|
1557
|
-
/* ms */
|
|
1558
|
-
);
|
|
1579
|
+
this.#maybeDisconnectTimeout = setTimeout(() => {
|
|
1580
|
+
this.#maybeDisconnectTimeout = void 0;
|
|
1581
|
+
if (this.#subscriptions.size === 0) {
|
|
1582
|
+
this.#cycleWebsocket();
|
|
1583
|
+
}
|
|
1584
|
+
}, WEBSOCKET_IDLE_DISCONNECT_DELAY_MS);
|
|
1559
1585
|
}
|
|
1560
1586
|
async #ensureWebsocket() {
|
|
1561
1587
|
if (this.#ws == null) {
|
|
@@ -1566,10 +1592,16 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1566
1592
|
const url = constructWebsocketUrl(baseUrl, await this.#client.ontologyRid);
|
|
1567
1593
|
const token = await tokenProvider();
|
|
1568
1594
|
if (this.#ws == null) {
|
|
1569
|
-
|
|
1570
|
-
|
|
1595
|
+
if (!this.#isFirstConnection) {
|
|
1596
|
+
const delay = this.#backoff.calculateDelay();
|
|
1597
|
+
if (process.env.NODE_ENV !== "production") {
|
|
1598
|
+
this.#logger?.debug({
|
|
1599
|
+
delay,
|
|
1600
|
+
attempt: this.#backoff.getAttempt()
|
|
1601
|
+
}, "Waiting before reconnect");
|
|
1602
|
+
}
|
|
1571
1603
|
await new Promise((resolve) => {
|
|
1572
|
-
setTimeout(resolve,
|
|
1604
|
+
setTimeout(resolve, delay);
|
|
1573
1605
|
});
|
|
1574
1606
|
}
|
|
1575
1607
|
this.#lastWsConnect = Date.now();
|
|
@@ -1597,7 +1629,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1597
1629
|
}
|
|
1598
1630
|
function error(evt) {
|
|
1599
1631
|
cleanup();
|
|
1600
|
-
reject(evt);
|
|
1632
|
+
reject(new Error(String(evt)));
|
|
1601
1633
|
}
|
|
1602
1634
|
ws.addEventListener("open", open);
|
|
1603
1635
|
ws.addEventListener("error", error);
|
|
@@ -1607,10 +1639,12 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1607
1639
|
}
|
|
1608
1640
|
}
|
|
1609
1641
|
#onOpen = () => {
|
|
1642
|
+
this.#isFirstConnection = false;
|
|
1643
|
+
this.#backoff.reset();
|
|
1610
1644
|
this.#sendSubscribeMessage();
|
|
1611
1645
|
};
|
|
1612
1646
|
#onMessage = async (message) => {
|
|
1613
|
-
const data = JSON.parse(message.data
|
|
1647
|
+
const data = JSON.parse(String(message.data));
|
|
1614
1648
|
if (process.env.NODE_ENV !== "production") {
|
|
1615
1649
|
this.#logger?.debug({
|
|
1616
1650
|
payload: data
|
|
@@ -1631,7 +1665,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1631
1665
|
return;
|
|
1632
1666
|
}
|
|
1633
1667
|
default:
|
|
1634
|
-
process.env.NODE_ENV !== "production" ?
|
|
1668
|
+
process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "Unexpected message type") : invariant8__default.default(false) ;
|
|
1635
1669
|
}
|
|
1636
1670
|
};
|
|
1637
1671
|
#handleMessage_objectSetChanged = async (payload) => {
|
|
@@ -1696,7 +1730,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1696
1730
|
}
|
|
1697
1731
|
#handleMessage_refreshObjectSet = (payload) => {
|
|
1698
1732
|
const sub = this.#subscriptions.get(payload.id);
|
|
1699
|
-
!sub ? process.env.NODE_ENV !== "production" ?
|
|
1733
|
+
!sub ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Expected subscription id ${payload.id}`) : invariant8__default.default(false) : void 0;
|
|
1700
1734
|
try {
|
|
1701
1735
|
sub.listener.onOutOfDate();
|
|
1702
1736
|
} catch (error) {
|
|
@@ -1710,7 +1744,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1710
1744
|
responses
|
|
1711
1745
|
} = payload;
|
|
1712
1746
|
const subs = this.#pendingSubscriptions.get(id);
|
|
1713
|
-
!subs ? process.env.NODE_ENV !== "production" ?
|
|
1747
|
+
!subs ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `should have a pending subscription for ${id}`) : invariant8__default.default(false) : void 0;
|
|
1714
1748
|
this.#pendingSubscriptions.delete(id);
|
|
1715
1749
|
for (let i = 0; i < responses.length; i++) {
|
|
1716
1750
|
const sub = subs[i];
|
|
@@ -1752,7 +1786,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1752
1786
|
#handleMessage_subscriptionClosed(payload) {
|
|
1753
1787
|
const sub = this.#subscriptions.get(payload.id);
|
|
1754
1788
|
if (sub == null && this.#endedSubscriptions.has(payload.id)) return;
|
|
1755
|
-
!sub ? process.env.NODE_ENV !== "production" ?
|
|
1789
|
+
!sub ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, `Expected subscription id ${payload.id}`) : invariant8__default.default(false) : void 0;
|
|
1756
1790
|
this.#tryCatchOnError(sub, true, payload.cause);
|
|
1757
1791
|
this.#unsubscribe(sub, "error");
|
|
1758
1792
|
}
|
|
@@ -1777,7 +1811,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
1777
1811
|
if (this.#subscriptions.size > 0) {
|
|
1778
1812
|
if (process.env.NODE_ENV !== "production") {
|
|
1779
1813
|
for (const s of this.#subscriptions.values()) {
|
|
1780
|
-
!(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ?
|
|
1814
|
+
!(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant8__default.default(false, "should not have done/error subscriptions still") : invariant8__default.default(false) : void 0;
|
|
1781
1815
|
}
|
|
1782
1816
|
}
|
|
1783
1817
|
for (const s of this.#subscriptions.values()) {
|
|
@@ -1997,5 +2031,5 @@ exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
|
|
|
1997
2031
|
exports.isObjectSet = isObjectSet;
|
|
1998
2032
|
exports.isWireObjectSet = isWireObjectSet;
|
|
1999
2033
|
exports.symbolClientContext = symbolClientContext;
|
|
2000
|
-
//# sourceMappingURL=chunk-
|
|
2001
|
-
//# sourceMappingURL=chunk-
|
|
2034
|
+
//# sourceMappingURL=chunk-KODTFRP3.cjs.map
|
|
2035
|
+
//# sourceMappingURL=chunk-KODTFRP3.cjs.map
|