@osdk/client 2.2.0-beta.5 → 2.2.0-beta.7
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 +34 -0
- package/build/browser/actions/actions.test.js +52 -4
- package/build/browser/actions/actions.test.js.map +1 -1
- package/build/browser/actions/applyAction.js +21 -15
- package/build/browser/actions/applyAction.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js +7 -0
- package/build/browser/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js +1 -1
- package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/browser/object/AttachmentUpload.js +3 -0
- package/build/browser/object/AttachmentUpload.js.map +1 -1
- package/build/browser/object/aggregate.test.js +12 -2
- package/build/browser/object/aggregate.test.js.map +1 -1
- package/build/browser/observable/internal/testUtils.js +2 -0
- package/build/browser/observable/internal/testUtils.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/toDataValue.js +10 -2
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/browser/util/toDataValueQueries.js +10 -2
- package/build/browser/util/toDataValueQueries.js.map +1 -1
- package/build/cjs/{chunk-T5UE6BI7.cjs → chunk-IU47QMYO.cjs} +22 -15
- package/build/cjs/chunk-IU47QMYO.cjs.map +1 -0
- package/build/cjs/{chunk-X7WGNFZ4.cjs → chunk-JPENHIJB.cjs} +14 -14
- package/build/cjs/{chunk-X7WGNFZ4.cjs.map → chunk-JPENHIJB.cjs.map} +1 -1
- package/build/cjs/{graphql-JJX5MZPQ.cjs → graphql-RGM5SRWV.cjs} +43 -2
- package/build/cjs/graphql-RGM5SRWV.cjs.map +1 -0
- package/build/cjs/index.cjs +84 -59
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/public/internal.cjs +6 -6
- package/build/cjs/public/unstable-do-not-use.cjs +8 -8
- package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
- package/build/esm/actions/actions.test.js +52 -4
- package/build/esm/actions/actions.test.js.map +1 -1
- package/build/esm/actions/applyAction.js +21 -15
- package/build/esm/actions/applyAction.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js +7 -0
- package/build/esm/internal/conversions/modernToLegacyGroupByClause.js.map +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js +1 -1
- package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
- package/build/esm/object/AttachmentUpload.js +3 -0
- package/build/esm/object/AttachmentUpload.js.map +1 -1
- package/build/esm/object/aggregate.test.js +12 -2
- package/build/esm/object/aggregate.test.js.map +1 -1
- package/build/esm/observable/internal/testUtils.js +2 -0
- package/build/esm/observable/internal/testUtils.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/toDataValue.js +10 -2
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/esm/util/toDataValueQueries.js +10 -2
- package/build/esm/util/toDataValueQueries.js.map +1 -1
- package/build/types/actions/applyAction.d.ts.map +1 -1
- package/build/types/object/AttachmentUpload.d.ts +3 -0
- package/build/types/object/AttachmentUpload.d.ts.map +1 -1
- package/build/types/observable/internal/testUtils.d.ts.map +1 -1
- package/package.json +9 -9
- package/build/cjs/chunk-T5UE6BI7.cjs.map +0 -1
- package/build/cjs/graphql-JJX5MZPQ.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.test.js","names":["objectTypeWithAllPropertyTypes","Todo","expectType","beforeAll","describe","expect","expectTypeOf","it","vi","createClient","createMinimalClient","aggregate","metadata","expectsClientVersion","ontologyRid","ontologyApiName","userAgent","mockFetch","clientCtx","client","fn","mockResolvedValue","ok","status","json","Promise","resolve","aggregationResponse","undefined","accuracy","data","group","string","metrics","name","value","toEqualTypeOf","notGrouped","type","objectType","$select","toHaveBeenCalledWith","body","JSON","stringify","method","headers","anything","approximateDistinct","exactDistinct","id","max","avg","$count","grouped","$groupBy","$exactWithLimit","integer","$ranges","short","float","$fixedWidth","dateTime","$duration","date","boolean","$group","wrongSelectKey","wrongKey","toBeCallableWith","direction","timestamp"],"sources":["aggregate.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 {\n AggregateOpts,\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy,\n GroupByClause,\n ValidAggregationKeys,\n} from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\nimport {\n objectTypeWithAllPropertyTypes,\n Todo,\n} from \"@osdk/client.test.ontology\";\nimport type { AggregateObjectsResponseV2 } from \"@osdk/foundry.ontologies\";\nimport type { TypeOf } from \"ts-expect\";\nimport { expectType } from \"ts-expect\";\nimport {\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n type Mock,\n vi,\n} 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 { aggregate } from \"./aggregate.js\";\n\nconst metadata = {\n expectsClientVersion: \"0.0.0\",\n ontologyRid: \"ri.a.b.c.d\",\n ontologyApiName: \"apiName\",\n userAgent: \"\",\n};\n\nlet mockFetch: Mock;\nlet clientCtx: MinimalClient;\nlet client: Client;\n\nbeforeAll(() => {\n mockFetch = vi.fn();\n\n mockFetch.mockResolvedValue({\n ok: true,\n status: 200,\n json: () => new Promise((resolve) => resolve(aggregationResponse)),\n });\n\n clientCtx = createMinimalClient(\n metadata,\n \"https://host.com\",\n async () => \"myAccessToken\",\n {},\n mockFetch,\n );\n\n client = createClient(\n \"https://host.com\",\n metadata.ontologyRid,\n async () => \"\",\n undefined,\n mockFetch,\n );\n});\n\nconst aggregationResponse: AggregateObjectsResponseV2 = {\n accuracy: \"APPROXIMATE\",\n data: [\n {\n group: {\n string: \"hello\",\n },\n metrics: [\n {\n name: \"string.approximateDistinct\",\n value: 1,\n },\n {\n name: \"string.exactDistinct\",\n value: 1,\n },\n {\n name: \"id.max\",\n value: 1,\n },\n {\n name: \"id.avg\",\n value: 1,\n },\n ],\n },\n ],\n};\n\ndescribe(\"aggregate\", () => {\n it(\"works\", async () => {\n expectTypeOf<ValidAggregationKeys<Todo>>().toEqualTypeOf<\n | \"$count\"\n | \"id:min\"\n | \"id:max\"\n | \"id:sum\"\n | \"id:avg\"\n | \"id:approximateDistinct\"\n | \"id:exactDistinct\"\n | \"text:approximateDistinct\"\n | \"text:exactDistinct\"\n >;\n\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"unordered\",\n \"string:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n \"field\": \"string\",\n },\n { \"type\": \"max\", \"name\": \"id.max\", \"field\": \"id\" },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.string.exactDistinct);\n expectType<number | undefined>(notGrouped.id.max);\n expectType<number | undefined>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subSelect should hide unused keys\n\n const grouped = await client(objectTypeWithAllPropertyTypes).aggregate(\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"id:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $ranges: [[\"2024-01-02\", \"2024-01-09\"]] },\n boolean: \"exact\",\n },\n },\n );\n expectType<Array<any>>(grouped);\n expectType<string | undefined>(grouped[0].$group.string);\n expectType<number>(grouped[0].id.approximateDistinct);\n expectType<number>(grouped[0].id.exactDistinct);\n expectType<number>(grouped[0].$group.id);\n expectType<number>(grouped[0].$count);\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.integer,\n );\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.short,\n );\n expectType<number | undefined>(grouped[0].$group.float);\n expectType<string | undefined>(grouped[0].$group.dateTime);\n expectType<{ startValue: string; endValue: string }>(\n grouped[0].$group.date,\n );\n expectType<boolean | undefined>(grouped[0].$group.boolean);\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"don't work\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n wrongKey: \"don't work\";\n text: \"exact\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n id: \"approximateDistinct\",\n // @ts-expect-error\n wrongSelectKey: \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n // @ts-expect-error\n wrongKey: \"don't work\",\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectTypeOf<\n typeof aggregate<objectTypeWithAllPropertyTypes, {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"wrong key\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n wrongKey: \"wrongKey\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }>\n >().toBeCallableWith(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n // @ts-expect-error\n \"wrongSelectKey\": \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n // @ts-expect-error\n wrongKey: \"wrongKey\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n },\n );\n\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $duration: [1, \"years\"] },\n });\n\n // Can't use value greater than 1 for years\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [10, \"years\"] },\n });\n\n // Can't use arbitrary string for time unit\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n dateTime: { $duration: [1, \"nonexistentTimeUnit\"] },\n });\n\n // Can't use time unit smaller than days for date type\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [1, \"seconds\"] },\n });\n });\n\n it(\"works with $orderBy (no groups)\", async () => {\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"asc\",\n \"id:exactDistinct\": \"asc\",\n \"id:avg\": \"desc\",\n \"id:max\": \"asc\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"id.exactDistinct\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"avg\",\n \"name\": \"id.avg\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.id.exactDistinct);\n expectType<number>(notGrouped.id.max);\n expectType<number>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"works with $orderBy (1 group)\", async () => {\n const grouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:max\": \"desc\",\n \"string:approximateDistinct\": \"asc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n \"string:exactDistinct\": \"desc\",\n },\n $groupBy: {\n id: \"exact\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [{ \"type\": \"exact\", \"field\": \"id\" }],\n \"aggregation\": [\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n direction: \"DESC\",\n \"field\": \"string\",\n },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(grouped[0].string.approximateDistinct);\n expectType<number>(grouped[0].id.max);\n expectType<number>(grouped[0].id.avg);\n expectType<number>(grouped[0].$count);\n expectType<number>(grouped[0].string.exactDistinct);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof grouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"prohibits ordered select with multiple groupBy\", async () => {\n await client(Todo).aggregate(\n {\n $select: {\n // @ts-expect-error\n \"id:max\": \"desc\",\n // @ts-expect-error\n \"text:approximateDistinct\": \"asc\",\n // @ts-expect-error\n \"text:exactDistinct\": \"desc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n id: \"exact\",\n timestamp: \"exact\",\n },\n },\n );\n });\n\n it(\"works with where: todo\", async () => {\n const f: AggregateOpts<\n Employee\n > = {\n $select: {\n \"office:approximateDistinct\": \"unordered\",\n },\n };\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"aggregate.test.js","names":["objectTypeWithAllPropertyTypes","Todo","expectType","beforeAll","describe","expect","expectTypeOf","it","vi","createClient","createMinimalClient","aggregate","metadata","expectsClientVersion","ontologyRid","ontologyApiName","userAgent","mockFetch","clientCtx","client","fn","mockResolvedValue","ok","status","json","Promise","resolve","aggregationResponse","undefined","accuracy","data","group","string","metrics","name","value","toEqualTypeOf","notGrouped","type","objectType","$select","toHaveBeenCalledWith","body","JSON","stringify","method","headers","anything","approximateDistinct","exactDistinct","id","max","avg","$count","grouped","$groupBy","$exactWithLimit","integer","$ranges","short","float","$fixedWidth","dateTime","$duration","date","boolean","double","$defaultValue","$limit","$group","wrongSelectKey","wrongKey","$exact","toBeCallableWith","direction","timestamp"],"sources":["aggregate.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 {\n AggregateOpts,\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy,\n GroupByClause,\n ValidAggregationKeys,\n} from \"@osdk/api\";\nimport type { Employee } from \"@osdk/client.test.ontology\";\nimport {\n objectTypeWithAllPropertyTypes,\n Todo,\n} from \"@osdk/client.test.ontology\";\nimport type { AggregateObjectsResponseV2 } from \"@osdk/foundry.ontologies\";\nimport type { TypeOf } from \"ts-expect\";\nimport { expectType } from \"ts-expect\";\nimport {\n beforeAll,\n describe,\n expect,\n expectTypeOf,\n it,\n type Mock,\n vi,\n} 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 { aggregate } from \"./aggregate.js\";\n\nconst metadata = {\n expectsClientVersion: \"0.0.0\",\n ontologyRid: \"ri.a.b.c.d\",\n ontologyApiName: \"apiName\",\n userAgent: \"\",\n};\n\nlet mockFetch: Mock;\nlet clientCtx: MinimalClient;\nlet client: Client;\n\nbeforeAll(() => {\n mockFetch = vi.fn();\n\n mockFetch.mockResolvedValue({\n ok: true,\n status: 200,\n json: () => new Promise((resolve) => resolve(aggregationResponse)),\n });\n\n clientCtx = createMinimalClient(\n metadata,\n \"https://host.com\",\n async () => \"myAccessToken\",\n {},\n mockFetch,\n );\n\n client = createClient(\n \"https://host.com\",\n metadata.ontologyRid,\n async () => \"\",\n undefined,\n mockFetch,\n );\n});\n\nconst aggregationResponse: AggregateObjectsResponseV2 = {\n accuracy: \"APPROXIMATE\",\n data: [\n {\n group: {\n string: \"hello\",\n },\n metrics: [\n {\n name: \"string.approximateDistinct\",\n value: 1,\n },\n {\n name: \"string.exactDistinct\",\n value: 1,\n },\n {\n name: \"id.max\",\n value: 1,\n },\n {\n name: \"id.avg\",\n value: 1,\n },\n ],\n },\n ],\n};\n\ndescribe(\"aggregate\", () => {\n it(\"works\", async () => {\n expectTypeOf<ValidAggregationKeys<Todo>>().toEqualTypeOf<\n | \"$count\"\n | \"id:min\"\n | \"id:max\"\n | \"id:sum\"\n | \"id:avg\"\n | \"id:approximateDistinct\"\n | \"id:exactDistinct\"\n | \"text:approximateDistinct\"\n | \"text:exactDistinct\"\n >;\n\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"unordered\",\n \"string:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n \"field\": \"string\",\n },\n { \"type\": \"max\", \"name\": \"id.max\", \"field\": \"id\" },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.string.exactDistinct);\n expectType<number | undefined>(notGrouped.id.max);\n expectType<number | undefined>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subSelect should hide unused keys\n\n const grouped = await client(objectTypeWithAllPropertyTypes).aggregate(\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"id:exactDistinct\": \"unordered\",\n \"id:max\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $ranges: [[\"2024-01-02\", \"2024-01-09\"]] },\n boolean: \"exact\",\n double: { \"$exact\": { $defaultValue: \"default\", $limit: 300 } },\n },\n },\n );\n expectType<Array<any>>(grouped);\n expectType<string | undefined>(grouped[0].$group.string);\n expectType<number>(grouped[0].id.approximateDistinct);\n expectType<number>(grouped[0].id.exactDistinct);\n expectType<number>(grouped[0].$group.id);\n expectType<number>(grouped[0].$count);\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.integer,\n );\n expectType<{ startValue: number; endValue: number }>(\n grouped[0].$group.short,\n );\n expectType<number | undefined>(grouped[0].$group.float);\n expectType<string | undefined>(grouped[0].$group.dateTime);\n expectType<{ startValue: string; endValue: string }>(\n grouped[0].$group.date,\n );\n expectType<boolean | undefined>(grouped[0].$group.boolean);\n expectType<number | undefined>(grouped[0].$group.double);\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectType<\n AggregateOptsThatErrorsAndDisallowsOrderingWithMultipleGroupBy<\n objectTypeWithAllPropertyTypes,\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"don't work\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n wrongKey: \"don't work\";\n text: \"exact\";\n id: { $exact: { $limit: 10; $defaultValue: \"default\" } };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }\n >\n >({\n $select: {\n id: \"approximateDistinct\",\n // @ts-expect-error\n wrongSelectKey: \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n // @ts-expect-error\n wrongKey: \"don't work\",\n string: \"exact\",\n id: { $exact: { $limit: 10, $defaultValue: \"default\" } },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n });\n\n expectTypeOf<\n typeof aggregate<objectTypeWithAllPropertyTypes, {\n $select: {\n \"id:approximateDistinct\": \"unordered\";\n \"wrongSelectKey\": \"wrong key\";\n \"$count\": \"unordered\";\n };\n $groupBy: {\n string: \"exact\";\n wrongKey: \"wrongKey\";\n id: { $exactWithLimit: 10 };\n integer: { $ranges: [[1, 2]] };\n short: {\n $ranges: [[2, 3], [4, 5]];\n };\n float: { $fixedWidth: 10 };\n };\n }>\n >().toBeCallableWith(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:approximateDistinct\": \"unordered\",\n // @ts-expect-error\n \"wrongSelectKey\": \"don't work\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n string: \"exact\",\n // @ts-expect-error\n wrongKey: \"wrongKey\",\n id: { $exactWithLimit: 10 },\n integer: { $ranges: [[1, 2]] },\n short: {\n $ranges: [[2, 3], [4, 5]],\n },\n float: { $fixedWidth: 10 },\n },\n },\n );\n\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n dateTime: { $duration: [10, \"seconds\"] },\n date: { $duration: [1, \"years\"] },\n });\n\n // Can't use value greater than 1 for years\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [10, \"years\"] },\n });\n\n // Can't use arbitrary string for time unit\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n dateTime: { $duration: [1, \"nonexistentTimeUnit\"] },\n });\n\n // Can't use time unit smaller than days for date type\n expectType<GroupByClause<objectTypeWithAllPropertyTypes>>({\n // @ts-expect-error\n date: { $duration: [1, \"seconds\"] },\n });\n });\n\n it(\"works with $orderBy (no groups)\", async () => {\n const notGrouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"string:approximateDistinct\": \"asc\",\n \"id:exactDistinct\": \"asc\",\n \"id:avg\": \"desc\",\n \"id:max\": \"asc\",\n \"$count\": \"unordered\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [],\n \"aggregation\": [\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"id.exactDistinct\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"avg\",\n \"name\": \"id.avg\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"ASC\",\n \"field\": \"id\",\n },\n { \"type\": \"count\", \"name\": \"count\" },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(notGrouped.string.approximateDistinct);\n expectType<number>(notGrouped.id.exactDistinct);\n expectType<number>(notGrouped.id.max);\n expectType<number>(notGrouped.id.avg);\n expectType<number>(notGrouped.$count);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof notGrouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"works with $orderBy (1 group)\", async () => {\n const grouped = await aggregate(\n clientCtx,\n objectTypeWithAllPropertyTypes,\n {\n type: \"base\",\n objectType: \"ToDo\",\n },\n {\n $select: {\n \"id:max\": \"desc\",\n \"string:approximateDistinct\": \"asc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n \"string:exactDistinct\": \"desc\",\n },\n $groupBy: {\n id: \"exact\",\n },\n },\n );\n\n expect(mockFetch).toHaveBeenCalledWith(\n \"https://host.com/api/v2/ontologies/ri.a.b.c.d/objectSets/aggregate\",\n {\n body: JSON.stringify({\n \"objectSet\": { \"type\": \"base\", \"objectType\": \"ToDo\" },\n \"groupBy\": [{ \"type\": \"exact\", \"field\": \"id\" }],\n \"aggregation\": [\n {\n \"type\": \"max\",\n \"name\": \"id.max\",\n direction: \"DESC\",\n \"field\": \"id\",\n },\n {\n \"type\": \"approximateDistinct\",\n \"name\": \"string.approximateDistinct\",\n direction: \"ASC\",\n \"field\": \"string\",\n },\n { \"type\": \"avg\", \"name\": \"id.avg\", \"field\": \"id\" },\n { \"type\": \"count\", \"name\": \"count\" },\n {\n \"type\": \"exactDistinct\",\n \"name\": \"string.exactDistinct\",\n direction: \"DESC\",\n \"field\": \"string\",\n },\n ],\n }),\n method: \"POST\",\n headers: expect.anything(),\n },\n );\n\n expectType<number>(grouped[0].string.approximateDistinct);\n expectType<number>(grouped[0].id.max);\n expectType<number>(grouped[0].id.avg);\n expectType<number>(grouped[0].$count);\n expectType<number>(grouped[0].string.exactDistinct);\n expectType<\n TypeOf<\n {\n other: any;\n },\n typeof grouped\n >\n >(false); // subselect should hide unused keys\n });\n\n it(\"prohibits ordered select with multiple groupBy\", async () => {\n await client(Todo).aggregate(\n {\n $select: {\n // @ts-expect-error\n \"id:max\": \"desc\",\n // @ts-expect-error\n \"text:approximateDistinct\": \"asc\",\n // @ts-expect-error\n \"text:exactDistinct\": \"desc\",\n \"id:avg\": \"unordered\",\n \"$count\": \"unordered\",\n },\n $groupBy: {\n id: \"exact\",\n timestamp: \"exact\",\n },\n },\n );\n });\n\n it(\"works with where: todo\", async () => {\n const f: AggregateOpts<\n Employee\n > = {\n $select: {\n \"office:approximateDistinct\": \"unordered\",\n },\n };\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -131,6 +131,8 @@ export function createClientMockHelper() {
|
|
|
131
131
|
type: "edits",
|
|
132
132
|
addedLinks: x.addedLinks ?? [],
|
|
133
133
|
addedObjects: x.addedObjects ?? [],
|
|
134
|
+
deletedObjects: x.deletedObjects ?? [],
|
|
135
|
+
deletedLinks: x.deletedLinks ?? [],
|
|
134
136
|
deletedLinksCount: x.deletedLinksCount ?? 0,
|
|
135
137
|
deletedObjectsCount: x.deletedObjectsCount ?? 0,
|
|
136
138
|
editedObjectTypes: x.editedObjectTypes ?? [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.js","names":["Chalk","pDefer","invariant","afterEach","beforeEach","expect","vi","vitest","additionalContext","chalk","mockLog","args","console","log","yellow","createTestLogger","bindings","options","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","bgYellow","fatal","redBright","bgRedBright","createLogMethod","name","fn","hasData","obj","more","slice","msgPrefix","methodName","magenta","Object","keys","length","child","theseBindings","theseOptions","level","undefined","isLevelEnabled","createClientMockHelper","client","logger","mockImplementation","localLogger","Error","e","where","deadObjectSet","whereArgs","fetchPage","fetchArgs","fetchOne","baseUrl","ontologyRid","objectFactory","objectFactory2","ontologyProvider","getActionDefinition","getInterfaceDefinition","getObjectDefinition","getQueryDefinition","tokenProvider","objectSetFactory","fetch","clientCacheKey","requestContext","mockApplyActionOnce","d","mockReturnValueOnce","applyAction","x","promise","type","addedLinks","addedObjects","deletedLinksCount","deletedObjectsCount","editedObjectTypes","modifiedObjects","mockFetchOneOnce","expectedId","a","process","env","NODE_ENV","r","$primaryKey","mockObjectFactory2Once","mocked","mockFetchPageOnce","objectSet","fetchPageArgs","clause","createDefer","subscriptions","s","unsubscribe","push","expectSingleListCallAndClear","subFn","resolvedList","payloadOptions","isFakeTimers","runOnlyPendingTimers","toHaveBeenCalledExactlyOnceWith","listPayloadContaining","mockClear","expectSingleObjectCallAndClear","object","status","objectContaining","any","String","waitForCall","times","waitFor","toHaveBeenCalledTimes","createSubscriptionHelper","mockSingleSubCallback","ret","assign","expectLoadingAndLoaded","q","toHaveBeenNthCalledWith","loading","loaded","mockListSubCallback","cacheEntryContaining","cacheKey","value","toBeOneOf","anything","lastUpdated","nonOptionalValue","src","key","objectPayloadContaining","isOptimistic","Boolean","fetchMore","Function","hasMore","applyCustomMatchers","extend","toBeGreaterThan","pass","message"],"sources":["testUtils.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 ActionDefinition,\n ActionEditResponse,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n OsdkBase,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport { Chalk } from \"chalk\";\nimport type { DeferredPromise } from \"p-defer\";\nimport pDefer from \"p-defer\";\nimport invariant from \"tiny-invariant\";\nimport type { Mock } from \"vitest\";\nimport { afterEach, beforeEach, expect, vi, vitest } from \"vitest\";\nimport type { ActionSignatureFromDef } from \"../../actions/applyAction.js\";\nimport type { Client } from \"../../Client.js\";\nimport { additionalContext } from \"../../Client.js\";\nimport type { LogFn, Logger } from \"../../Logger.js\";\nimport type { ListPayload } from \"../ListPayload.js\";\nimport type { ObjectPayload } from \"../ObjectPayload.js\";\nimport type { Status, Unsubscribable } from \"../ObservableClient.js\";\nimport type { Entry } from \"./Layer.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nexport interface MockClientHelper {\n client: Mock<Client> & Client;\n\n mockApplyActionOnce: () => DeferredPromise<Partial<ActionEditResponse>>;\n\n mockFetchOneOnce: <Q extends ObjectTypeDefinition>(\n expectedId?: string | number | boolean,\n ) => DeferredPromise<\n Partial<\n Osdk.Instance<Q>\n >\n >;\n\n mockObjectFactory2Once: () => DeferredPromise<\n Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>[]\n >;\n\n mockFetchPageOnce: <\n Q extends ObjectTypeDefinition,\n >(\n expected?: {\n where: WhereClause<any>;\n orderBy: Record<string, \"asc\" | \"desc\" | undefined>;\n },\n ) => DeferredPromise<\n PageResult<Partial<Osdk.Instance<Q>>>\n >;\n}\n\nfunction mockLog(...args: any[]) {\n // eslint-disable-next-line no-console\n console.log(\n chalk.yellow(\"mockClient\"),\n ...args,\n );\n}\n// interface LogFn {\n// (obj: unknown, msg?: string, ...args: any[]): void;\n// (msg: string, ...args: any[]): void;\n// }\n\nexport function createTestLogger(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n): Logger {\n const colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n } as const;\n function createLogMethod(\n name: \"debug\" | \"error\" | \"info\" | \"warn\" | \"fatal\" | \"trace\",\n ) {\n return vi.fn<LogFn>(\n (\n ...args: [\n obj: unknown,\n ...args1: any[],\n ] | [\n ...args2: any[],\n ]\n ) => {\n const hasData = typeof args[0] !== \"string\";\n const obj: Record<string, unknown> = hasData ? args[0] as any : {};\n const more: any[] = hasData ? args.slice(1) : args.slice(0);\n\n // eslint-disable-next-line no-console\n console.log(\n `${colors[name][1](name)}${\n options?.msgPrefix ? \" \" + colors[name][0](options.msgPrefix) : \"\"\n }${obj.methodName ? ` .${chalk.magenta(obj.methodName)}()` : \"\"}`,\n ...more,\n );\n if (bindings && Object.keys(bindings).length > 0) {\n // eslint-disable-next-line no-console\n console.log(bindings);\n }\n },\n ) as LogFn;\n }\n return {\n debug: createLogMethod(\"debug\"),\n error: createLogMethod(\"error\"),\n info: createLogMethod(\"info\"),\n warn: createLogMethod(\"warn\"),\n fatal: createLogMethod(\"fatal\"),\n child: vi.fn<Logger[\"child\"]>((theseBindings, theseOptions) =>\n createTestLogger({\n ...bindings,\n ...theseBindings,\n }, {\n level: (theseOptions ?? options)?.level,\n msgPrefix: options?.msgPrefix || theseOptions?.msgPrefix\n ? `${options?.msgPrefix ? `${options.msgPrefix} ` : \"\"}${\n theseOptions?.msgPrefix || \"\"\n }`\n : undefined,\n })\n ),\n trace: createLogMethod(\"trace\"),\n isLevelEnabled: vi.fn((args) => true),\n };\n}\n\nexport function createClientMockHelper(): MockClientHelper {\n const client = vitest.fn<typeof client>() as unknown as Mock<Client> & Client;\n\n const logger = createTestLogger({});\n\n // this is just a fallback for when there is nothing set so we can track whats up\n client.mockImplementation((...args: any[]) => {\n const localLogger = logger.child({}, { msgPrefix: \"fallback mock client\" });\n try {\n throw new Error(\"IN THE FALLBACK MOCK CLIENT IMPLEMENTATION\");\n } catch (e) {\n localLogger.error(\"Just for the stack trace\", e);\n }\n\n let where;\n const deadObjectSet = {\n where: (...whereArgs: any[]) => {\n localLogger.trace(\"where\", whereArgs);\n where = whereArgs;\n return deadObjectSet;\n },\n fetchPage: (...fetchArgs: any[]) => {\n localLogger.trace(\"etchPage\", where!, fetchArgs);\n throw new Error(\"NO\");\n },\n fetchOne: (...fetchArgs: any[]) => {\n localLogger.trace(\"fetchOne\", fetchArgs);\n\n throw new Error(\"NO\");\n },\n };\n return deadObjectSet;\n });\n\n client[additionalContext] = {\n baseUrl: \"http://localhost:8080\",\n ontologyRid: \"ri.something\",\n objectFactory: vitest.fn(),\n objectFactory2: vitest.fn(),\n ontologyProvider: {\n getActionDefinition: vitest.fn(),\n getInterfaceDefinition: vitest.fn(),\n getObjectDefinition: vitest.fn(),\n getQueryDefinition: vitest.fn(),\n },\n tokenProvider: vitest.fn(),\n objectSetFactory: vitest.fn(),\n fetch: vitest.fn(),\n clientCacheKey: {} as any,\n requestContext: {},\n logger,\n };\n\n function mockObjectFactory2Once() {\n const d = pDefer<\n Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>[]\n >();\n vi.mocked(client[additionalContext].objectFactory2).mockReturnValueOnce(\n d.promise,\n );\n return d;\n }\n\n function mockFetchPageOnce<\n X extends PageResult<\n Osdk.Instance<ObjectTypeDefinition>\n >,\n >(): DeferredPromise<X> {\n const d = pDefer<X>();\n\n const objectSet: ObjectSet<ObjectTypeDefinition> = {\n fetchPage: async (fetchPageArgs) => {\n mockLog(\"fetchPage\", fetchPageArgs);\n const r = await d.promise;\n return { ...r, $primaryKey: fetchPageArgs };\n },\n where: (clause) => {\n mockLog(\"where\", clause);\n return objectSet;\n },\n } as Pick<\n ObjectSet<ObjectTypeDefinition>,\n \"fetchPage\" | \"where\"\n > as ObjectSet<ObjectTypeDefinition>;\n\n client.mockReturnValueOnce(objectSet);\n return d;\n }\n\n function mockFetchOneOnce<\n X extends Partial<OsdkBase<any>>,\n >(expectedId?: string | number | boolean): DeferredPromise<X> {\n const d = pDefer<X>();\n\n client.mockReturnValueOnce(\n {\n fetchOne: async (a) => {\n mockLog(\"fetchOne\", a);\n invariant(\n expectedId === undefined || a === expectedId,\n \"expected id to match\",\n );\n const r = await d.promise;\n return { ...r, $primaryKey: a };\n },\n } as Pick<ObjectSet<ObjectTypeDefinition>, \"fetchOne\">,\n );\n return d;\n }\n\n function mockApplyActionOnce(): DeferredPromise<\n Partial<ActionEditResponse>\n > {\n const d = pDefer<Partial<ActionEditResponse>>();\n\n client.mockReturnValueOnce(\n {\n applyAction: async (_args): Promise<ActionEditResponse> => {\n const x = await d.promise;\n return {\n type: \"edits\",\n addedLinks: x.addedLinks ?? [],\n addedObjects: x.addedObjects ?? [],\n deletedLinksCount: x.deletedLinksCount ?? 0,\n deletedObjectsCount: x.deletedObjectsCount ?? 0,\n editedObjectTypes: x.editedObjectTypes ?? [],\n modifiedObjects: x.modifiedObjects ?? [],\n };\n },\n } as Pick<\n ActionSignatureFromDef<ActionDefinition>,\n \"applyAction\"\n >,\n );\n return d;\n }\n\n return {\n client,\n mockApplyActionOnce,\n mockFetchOneOnce,\n mockObjectFactory2Once,\n mockFetchPageOnce,\n };\n}\n\nexport function createDefer() {\n let subscriptions: Unsubscribable[];\n\n beforeEach(() => {\n subscriptions = [];\n });\n\n afterEach(() => {\n for (const s of subscriptions) {\n s.unsubscribe();\n }\n subscriptions = [];\n });\n\n return function defer(x: Unsubscribable): Unsubscribable {\n subscriptions.push(x);\n return x;\n };\n}\n\nexport function expectSingleListCallAndClear<T extends ObjectTypeDefinition>(\n subFn: Mock<(e: ListPayload | undefined) => void>,\n resolvedList: Osdk.Instance<T>[],\n payloadOptions: Omit<Partial<ListPayload>, \"resolvedList\"> = {},\n): void {\n if (vitest.isFakeTimers()) {\n vitest.runOnlyPendingTimers();\n }\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n ...payloadOptions,\n resolvedList,\n }),\n );\n subFn.mockClear();\n}\n\nexport function expectSingleObjectCallAndClear<T extends ObjectTypeDefinition>(\n subFn: Mock<(e: ObjectPayload | undefined) => void>,\n object: Osdk.Instance<T>,\n status?: Status,\n): void {\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n expect.objectContaining({\n object,\n status: status ?? expect.any(String),\n }),\n );\n subFn.mockClear();\n}\n\nexport async function waitForCall(\n subFn: Mock<(e: any) => void>,\n times: number = 1,\n): Promise<void> {\n try {\n await vi.waitFor(() => {\n expect(subFn).toHaveBeenCalledTimes(times);\n });\n } catch (e) {\n // we don't need the error, it will retrigger on the next line\n // and that provides better behavior in the vitest vscode\n // plugin. This places the error in the test itself instead of\n // only in this file\n }\n expect(subFn).toHaveBeenCalledTimes(times);\n}\n\nfunction createSubscriptionHelper() {\n}\n\nexport function mockSingleSubCallback():\n & Mock<\n (e: ObjectPayload | undefined) => void\n >\n & {\n // expectLoaded: (value: unknown) => Promise<void>;\n // expectLoading: (value: unknown) => Promise<void>;\n expectLoadingAndLoaded: (q: {\n loading?: unknown;\n loaded: unknown;\n }) => Promise<void>;\n }\n{\n const ret = vitest.fn((e: ObjectPayload | undefined) => {});\n\n // async function expectLoaded(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenLastCalledWith(\n // cacheEntryContaining({\n // value,\n // status: \"loaded\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n // async function expectLoading(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenCalledExactlyOnceWith(\n // cacheEntryContaining({\n // value,\n // status: \"loading\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n return Object.assign(ret, {\n // expectLoaded,\n // expectLoading,\n expectLoadingAndLoaded: async (\n q: { loading?: unknown; loaded: unknown },\n ) => {\n await waitForCall(ret, 2);\n\n // as long as we get the loaded call we are happy\n expect(ret).toHaveBeenNthCalledWith(\n 1,\n q.loading,\n );\n expect(ret).toHaveBeenNthCalledWith(\n 2,\n q.loaded,\n );\n expect(ret).toHaveBeenCalledTimes(2);\n ret.mockClear();\n },\n });\n}\n\nexport function mockListSubCallback(): Mock<\n (x: ListPayload | undefined) => void\n> {\n return vitest.fn(\n (x: ListPayload | undefined) => {},\n );\n}\n\nexport function cacheEntryContaining(x: Partial<Entry<any>>): Entry<any> {\n return {\n cacheKey: x.cacheKey ?? expect.any(Object),\n value: \"value\" in x\n ? x.value\n : expect.toBeOneOf([expect.anything(), undefined]),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nfunction nonOptionalValue<T extends object, K extends keyof T>(\n src: T,\n key: K,\n): NonNullable<T[K]> {\n return key in src\n ? src[key]\n : expect.toBeOneOf([expect.anything(), undefined]);\n}\n\nexport function objectPayloadContaining(\n x: Partial<ObjectPayload>,\n): ObjectPayload {\n return {\n object: nonOptionalValue(x, \"object\"),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function listPayloadContaining(\n x: Partial<ListPayload>,\n): ListPayload {\n return {\n fetchMore: x.fetchMore ?? expect.any(Function),\n hasMore: x.hasMore ?? expect.any(Boolean),\n resolvedList: x.resolvedList ?? expect.anything(),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function applyCustomMatchers(): void {\n expect.extend({\n toBeGreaterThan: (r: number, e: number) => {\n return {\n pass: r > e,\n message: () => `expected ${r} to be greater than ${e} (lastUpdated)`,\n };\n },\n });\n}\n\ninterface CustomMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ninterface CustomAsymmetricMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ndeclare module \"vitest\" {\n interface Assertion<T = any> extends CustomMatchers<T> {}\n interface AsymmetricMatchersContaining extends CustomAsymmetricMatchers {}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"testUtils.js","names":["Chalk","pDefer","invariant","afterEach","beforeEach","expect","vi","vitest","additionalContext","chalk","mockLog","args","console","log","yellow","createTestLogger","bindings","options","colors","debug","cyan","bgCyan","info","green","bgGreen","trace","gray","bgGray","error","red","bgRed","warn","bgYellow","fatal","redBright","bgRedBright","createLogMethod","name","fn","hasData","obj","more","slice","msgPrefix","methodName","magenta","Object","keys","length","child","theseBindings","theseOptions","level","undefined","isLevelEnabled","createClientMockHelper","client","logger","mockImplementation","localLogger","Error","e","where","deadObjectSet","whereArgs","fetchPage","fetchArgs","fetchOne","baseUrl","ontologyRid","objectFactory","objectFactory2","ontologyProvider","getActionDefinition","getInterfaceDefinition","getObjectDefinition","getQueryDefinition","tokenProvider","objectSetFactory","fetch","clientCacheKey","requestContext","mockApplyActionOnce","d","mockReturnValueOnce","applyAction","x","promise","type","addedLinks","addedObjects","deletedObjects","deletedLinks","deletedLinksCount","deletedObjectsCount","editedObjectTypes","modifiedObjects","mockFetchOneOnce","expectedId","a","process","env","NODE_ENV","r","$primaryKey","mockObjectFactory2Once","mocked","mockFetchPageOnce","objectSet","fetchPageArgs","clause","createDefer","subscriptions","s","unsubscribe","push","expectSingleListCallAndClear","subFn","resolvedList","payloadOptions","isFakeTimers","runOnlyPendingTimers","toHaveBeenCalledExactlyOnceWith","listPayloadContaining","mockClear","expectSingleObjectCallAndClear","object","status","objectContaining","any","String","waitForCall","times","waitFor","toHaveBeenCalledTimes","createSubscriptionHelper","mockSingleSubCallback","ret","assign","expectLoadingAndLoaded","q","toHaveBeenNthCalledWith","loading","loaded","mockListSubCallback","cacheEntryContaining","cacheKey","value","toBeOneOf","anything","lastUpdated","nonOptionalValue","src","key","objectPayloadContaining","isOptimistic","Boolean","fetchMore","Function","hasMore","applyCustomMatchers","extend","toBeGreaterThan","pass","message"],"sources":["testUtils.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 ActionDefinition,\n ActionEditResponse,\n ObjectOrInterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n Osdk,\n OsdkBase,\n PageResult,\n WhereClause,\n} from \"@osdk/api\";\nimport { Chalk } from \"chalk\";\nimport type { DeferredPromise } from \"p-defer\";\nimport pDefer from \"p-defer\";\nimport invariant from \"tiny-invariant\";\nimport type { Mock } from \"vitest\";\nimport { afterEach, beforeEach, expect, vi, vitest } from \"vitest\";\nimport type { ActionSignatureFromDef } from \"../../actions/applyAction.js\";\nimport type { Client } from \"../../Client.js\";\nimport { additionalContext } from \"../../Client.js\";\nimport type { LogFn, Logger } from \"../../Logger.js\";\nimport type { ListPayload } from \"../ListPayload.js\";\nimport type { ObjectPayload } from \"../ObjectPayload.js\";\nimport type { Status, Unsubscribable } from \"../ObservableClient.js\";\nimport type { Entry } from \"./Layer.js\";\n\nconst chalk = new Chalk(); // new Chalk({ level: 3 });\n\nexport interface MockClientHelper {\n client: Mock<Client> & Client;\n\n mockApplyActionOnce: () => DeferredPromise<Partial<ActionEditResponse>>;\n\n mockFetchOneOnce: <Q extends ObjectTypeDefinition>(\n expectedId?: string | number | boolean,\n ) => DeferredPromise<\n Partial<\n Osdk.Instance<Q>\n >\n >;\n\n mockObjectFactory2Once: () => DeferredPromise<\n Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>[]\n >;\n\n mockFetchPageOnce: <\n Q extends ObjectTypeDefinition,\n >(\n expected?: {\n where: WhereClause<any>;\n orderBy: Record<string, \"asc\" | \"desc\" | undefined>;\n },\n ) => DeferredPromise<\n PageResult<Partial<Osdk.Instance<Q>>>\n >;\n}\n\nfunction mockLog(...args: any[]) {\n // eslint-disable-next-line no-console\n console.log(\n chalk.yellow(\"mockClient\"),\n ...args,\n );\n}\n// interface LogFn {\n// (obj: unknown, msg?: string, ...args: any[]): void;\n// (msg: string, ...args: any[]): void;\n// }\n\nexport function createTestLogger(\n bindings: Record<string, any>,\n options?: { level?: string; msgPrefix?: string },\n): Logger {\n const colors = {\n debug: [chalk.cyan, chalk.bgCyan],\n info: [chalk.green, chalk.bgGreen],\n trace: [chalk.gray, chalk.bgGray],\n error: [chalk.red, chalk.bgRed],\n warn: [chalk.yellow, chalk.bgYellow],\n fatal: [chalk.redBright, chalk.bgRedBright],\n } as const;\n function createLogMethod(\n name: \"debug\" | \"error\" | \"info\" | \"warn\" | \"fatal\" | \"trace\",\n ) {\n return vi.fn<LogFn>(\n (\n ...args: [\n obj: unknown,\n ...args1: any[],\n ] | [\n ...args2: any[],\n ]\n ) => {\n const hasData = typeof args[0] !== \"string\";\n const obj: Record<string, unknown> = hasData ? args[0] as any : {};\n const more: any[] = hasData ? args.slice(1) : args.slice(0);\n\n // eslint-disable-next-line no-console\n console.log(\n `${colors[name][1](name)}${\n options?.msgPrefix ? \" \" + colors[name][0](options.msgPrefix) : \"\"\n }${obj.methodName ? ` .${chalk.magenta(obj.methodName)}()` : \"\"}`,\n ...more,\n );\n if (bindings && Object.keys(bindings).length > 0) {\n // eslint-disable-next-line no-console\n console.log(bindings);\n }\n },\n ) as LogFn;\n }\n return {\n debug: createLogMethod(\"debug\"),\n error: createLogMethod(\"error\"),\n info: createLogMethod(\"info\"),\n warn: createLogMethod(\"warn\"),\n fatal: createLogMethod(\"fatal\"),\n child: vi.fn<Logger[\"child\"]>((theseBindings, theseOptions) =>\n createTestLogger({\n ...bindings,\n ...theseBindings,\n }, {\n level: (theseOptions ?? options)?.level,\n msgPrefix: options?.msgPrefix || theseOptions?.msgPrefix\n ? `${options?.msgPrefix ? `${options.msgPrefix} ` : \"\"}${\n theseOptions?.msgPrefix || \"\"\n }`\n : undefined,\n })\n ),\n trace: createLogMethod(\"trace\"),\n isLevelEnabled: vi.fn((args) => true),\n };\n}\n\nexport function createClientMockHelper(): MockClientHelper {\n const client = vitest.fn<typeof client>() as unknown as Mock<Client> & Client;\n\n const logger = createTestLogger({});\n\n // this is just a fallback for when there is nothing set so we can track whats up\n client.mockImplementation((...args: any[]) => {\n const localLogger = logger.child({}, { msgPrefix: \"fallback mock client\" });\n try {\n throw new Error(\"IN THE FALLBACK MOCK CLIENT IMPLEMENTATION\");\n } catch (e) {\n localLogger.error(\"Just for the stack trace\", e);\n }\n\n let where;\n const deadObjectSet = {\n where: (...whereArgs: any[]) => {\n localLogger.trace(\"where\", whereArgs);\n where = whereArgs;\n return deadObjectSet;\n },\n fetchPage: (...fetchArgs: any[]) => {\n localLogger.trace(\"etchPage\", where!, fetchArgs);\n throw new Error(\"NO\");\n },\n fetchOne: (...fetchArgs: any[]) => {\n localLogger.trace(\"fetchOne\", fetchArgs);\n\n throw new Error(\"NO\");\n },\n };\n return deadObjectSet;\n });\n\n client[additionalContext] = {\n baseUrl: \"http://localhost:8080\",\n ontologyRid: \"ri.something\",\n objectFactory: vitest.fn(),\n objectFactory2: vitest.fn(),\n ontologyProvider: {\n getActionDefinition: vitest.fn(),\n getInterfaceDefinition: vitest.fn(),\n getObjectDefinition: vitest.fn(),\n getQueryDefinition: vitest.fn(),\n },\n tokenProvider: vitest.fn(),\n objectSetFactory: vitest.fn(),\n fetch: vitest.fn(),\n clientCacheKey: {} as any,\n requestContext: {},\n logger,\n };\n\n function mockObjectFactory2Once() {\n const d = pDefer<\n Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>[]\n >();\n vi.mocked(client[additionalContext].objectFactory2).mockReturnValueOnce(\n d.promise,\n );\n return d;\n }\n\n function mockFetchPageOnce<\n X extends PageResult<\n Osdk.Instance<ObjectTypeDefinition>\n >,\n >(): DeferredPromise<X> {\n const d = pDefer<X>();\n\n const objectSet: ObjectSet<ObjectTypeDefinition> = {\n fetchPage: async (fetchPageArgs) => {\n mockLog(\"fetchPage\", fetchPageArgs);\n const r = await d.promise;\n return { ...r, $primaryKey: fetchPageArgs };\n },\n where: (clause) => {\n mockLog(\"where\", clause);\n return objectSet;\n },\n } as Pick<\n ObjectSet<ObjectTypeDefinition>,\n \"fetchPage\" | \"where\"\n > as ObjectSet<ObjectTypeDefinition>;\n\n client.mockReturnValueOnce(objectSet);\n return d;\n }\n\n function mockFetchOneOnce<\n X extends Partial<OsdkBase<any>>,\n >(expectedId?: string | number | boolean): DeferredPromise<X> {\n const d = pDefer<X>();\n\n client.mockReturnValueOnce(\n {\n fetchOne: async (a) => {\n mockLog(\"fetchOne\", a);\n invariant(\n expectedId === undefined || a === expectedId,\n \"expected id to match\",\n );\n const r = await d.promise;\n return { ...r, $primaryKey: a };\n },\n } as Pick<ObjectSet<ObjectTypeDefinition>, \"fetchOne\">,\n );\n return d;\n }\n\n function mockApplyActionOnce(): DeferredPromise<\n Partial<ActionEditResponse>\n > {\n const d = pDefer<Partial<ActionEditResponse>>();\n\n client.mockReturnValueOnce(\n {\n applyAction: async (_args): Promise<ActionEditResponse> => {\n const x = await d.promise;\n return {\n type: \"edits\",\n addedLinks: x.addedLinks ?? [],\n addedObjects: x.addedObjects ?? [],\n deletedObjects: x.deletedObjects ?? [],\n deletedLinks: x.deletedLinks ?? [],\n deletedLinksCount: x.deletedLinksCount ?? 0,\n deletedObjectsCount: x.deletedObjectsCount ?? 0,\n editedObjectTypes: x.editedObjectTypes ?? [],\n modifiedObjects: x.modifiedObjects ?? [],\n };\n },\n } as Pick<\n ActionSignatureFromDef<ActionDefinition>,\n \"applyAction\"\n >,\n );\n return d;\n }\n\n return {\n client,\n mockApplyActionOnce,\n mockFetchOneOnce,\n mockObjectFactory2Once,\n mockFetchPageOnce,\n };\n}\n\nexport function createDefer() {\n let subscriptions: Unsubscribable[];\n\n beforeEach(() => {\n subscriptions = [];\n });\n\n afterEach(() => {\n for (const s of subscriptions) {\n s.unsubscribe();\n }\n subscriptions = [];\n });\n\n return function defer(x: Unsubscribable): Unsubscribable {\n subscriptions.push(x);\n return x;\n };\n}\n\nexport function expectSingleListCallAndClear<T extends ObjectTypeDefinition>(\n subFn: Mock<(e: ListPayload | undefined) => void>,\n resolvedList: Osdk.Instance<T>[],\n payloadOptions: Omit<Partial<ListPayload>, \"resolvedList\"> = {},\n): void {\n if (vitest.isFakeTimers()) {\n vitest.runOnlyPendingTimers();\n }\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n listPayloadContaining({\n ...payloadOptions,\n resolvedList,\n }),\n );\n subFn.mockClear();\n}\n\nexport function expectSingleObjectCallAndClear<T extends ObjectTypeDefinition>(\n subFn: Mock<(e: ObjectPayload | undefined) => void>,\n object: Osdk.Instance<T>,\n status?: Status,\n): void {\n expect(subFn).toHaveBeenCalledExactlyOnceWith(\n expect.objectContaining({\n object,\n status: status ?? expect.any(String),\n }),\n );\n subFn.mockClear();\n}\n\nexport async function waitForCall(\n subFn: Mock<(e: any) => void>,\n times: number = 1,\n): Promise<void> {\n try {\n await vi.waitFor(() => {\n expect(subFn).toHaveBeenCalledTimes(times);\n });\n } catch (e) {\n // we don't need the error, it will retrigger on the next line\n // and that provides better behavior in the vitest vscode\n // plugin. This places the error in the test itself instead of\n // only in this file\n }\n expect(subFn).toHaveBeenCalledTimes(times);\n}\n\nfunction createSubscriptionHelper() {\n}\n\nexport function mockSingleSubCallback():\n & Mock<\n (e: ObjectPayload | undefined) => void\n >\n & {\n // expectLoaded: (value: unknown) => Promise<void>;\n // expectLoading: (value: unknown) => Promise<void>;\n expectLoadingAndLoaded: (q: {\n loading?: unknown;\n loaded: unknown;\n }) => Promise<void>;\n }\n{\n const ret = vitest.fn((e: ObjectPayload | undefined) => {});\n\n // async function expectLoaded(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenLastCalledWith(\n // cacheEntryContaining({\n // value,\n // status: \"loaded\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n // async function expectLoading(value: unknown) {\n // await waitForCall(ret);\n // // as long as we get the loaded call we are happy\n // expect(ret).toHaveBeenCalledExactlyOnceWith(\n // cacheEntryContaining({\n // value,\n // status: \"loading\",\n // }),\n // );\n // ret.mockClear();\n // }\n\n return Object.assign(ret, {\n // expectLoaded,\n // expectLoading,\n expectLoadingAndLoaded: async (\n q: { loading?: unknown; loaded: unknown },\n ) => {\n await waitForCall(ret, 2);\n\n // as long as we get the loaded call we are happy\n expect(ret).toHaveBeenNthCalledWith(\n 1,\n q.loading,\n );\n expect(ret).toHaveBeenNthCalledWith(\n 2,\n q.loaded,\n );\n expect(ret).toHaveBeenCalledTimes(2);\n ret.mockClear();\n },\n });\n}\n\nexport function mockListSubCallback(): Mock<\n (x: ListPayload | undefined) => void\n> {\n return vitest.fn(\n (x: ListPayload | undefined) => {},\n );\n}\n\nexport function cacheEntryContaining(x: Partial<Entry<any>>): Entry<any> {\n return {\n cacheKey: x.cacheKey ?? expect.any(Object),\n value: \"value\" in x\n ? x.value\n : expect.toBeOneOf([expect.anything(), undefined]),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nfunction nonOptionalValue<T extends object, K extends keyof T>(\n src: T,\n key: K,\n): NonNullable<T[K]> {\n return key in src\n ? src[key]\n : expect.toBeOneOf([expect.anything(), undefined]);\n}\n\nexport function objectPayloadContaining(\n x: Partial<ObjectPayload>,\n): ObjectPayload {\n return {\n object: nonOptionalValue(x, \"object\"),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function listPayloadContaining(\n x: Partial<ListPayload>,\n): ListPayload {\n return {\n fetchMore: x.fetchMore ?? expect.any(Function),\n hasMore: x.hasMore ?? expect.any(Boolean),\n resolvedList: x.resolvedList ?? expect.anything(),\n isOptimistic: expect.any(Boolean),\n status: x.status ?? expect.anything(),\n lastUpdated: x.lastUpdated ?? expect.anything(),\n };\n}\n\nexport function applyCustomMatchers(): void {\n expect.extend({\n toBeGreaterThan: (r: number, e: number) => {\n return {\n pass: r > e,\n message: () => `expected ${r} to be greater than ${e} (lastUpdated)`,\n };\n },\n });\n}\n\ninterface CustomMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ninterface CustomAsymmetricMatchers<R = any> {\n toBeGreaterThan: (n: number) => R;\n}\n\ndeclare module \"vitest\" {\n interface Assertion<T = any> extends CustomMatchers<T> {}\n interface AsymmetricMatchersContaining extends CustomAsymmetricMatchers {}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import * as OntologiesV2 from "@osdk/foundry.ontologies";
|
|
18
|
-
import { isAttachmentUpload } from "../object/AttachmentUpload.js";
|
|
18
|
+
import { isAttachmentFile, isAttachmentUpload } from "../object/AttachmentUpload.js";
|
|
19
19
|
import { isMediaReference } from "../object/mediaUpload.js";
|
|
20
20
|
import { getWireObjectSet, isObjectSet } from "../objectSet/createObjectSet.js";
|
|
21
21
|
import { isInterfaceActionParam } from "./interfaceUtils.js";
|
|
@@ -37,6 +37,14 @@ export async function toDataValue(value, client) {
|
|
|
37
37
|
|
|
38
38
|
// arrays and sets are both sent over the wire as arrays
|
|
39
39
|
if (Array.isArray(value) || value instanceof Set) {
|
|
40
|
+
const values = Array.from(value);
|
|
41
|
+
if (values.some(dataValue => isAttachmentUpload(dataValue) || isAttachmentFile(dataValue))) {
|
|
42
|
+
const converted = [];
|
|
43
|
+
for (const value of values) {
|
|
44
|
+
converted.push(await toDataValue(value, client));
|
|
45
|
+
}
|
|
46
|
+
return converted;
|
|
47
|
+
}
|
|
40
48
|
const promiseArray = Array.from(value, async innerValue => await toDataValue(innerValue, client));
|
|
41
49
|
return Promise.all(promiseArray);
|
|
42
50
|
}
|
|
@@ -48,7 +56,7 @@ export async function toDataValue(value, client) {
|
|
|
48
56
|
});
|
|
49
57
|
return await toDataValue(attachment.rid, client);
|
|
50
58
|
}
|
|
51
|
-
if (
|
|
59
|
+
if (isAttachmentFile(value)) {
|
|
52
60
|
const attachment = await OntologiesV2.Attachments.upload(client, value, {
|
|
53
61
|
filename: value.name
|
|
54
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toDataValue.js","names":["OntologiesV2","isAttachmentUpload","isMediaReference","getWireObjectSet","isObjectSet","isInterfaceActionParam","isOntologyObjectV2","isOsdkBaseObject","isWireObjectSet","toDataValue","value","client","Array","isArray","Set","
|
|
1
|
+
{"version":3,"file":"toDataValue.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","isMediaReference","getWireObjectSet","isObjectSet","isInterfaceActionParam","isOntologyObjectV2","isOsdkBaseObject","isWireObjectSet","toDataValue","value","client","Array","isArray","Set","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","attachment","Attachments","upload","data","filename","name","rid","__primaryKey","$primaryKey","objectTypeApiName","$objectType","primaryKeyValue","Object","entries","reduce","promisedAcc","key","structValue","acc","resolve"],"sources":["toDataValue.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n isAttachmentFile,\n isAttachmentUpload,\n} from \"../object/AttachmentUpload.js\";\nimport { isMediaReference } from \"../object/mediaUpload.js\";\nimport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { isInterfaceActionParam } from \"./interfaceUtils.js\";\nimport { isOntologyObjectV2 } from \"./isOntologyObjectV2.js\";\nimport { isOsdkBaseObject } from \"./isOsdkObject.js\";\nimport { isWireObjectSet } from \"./WireObjectSet.js\";\n\n/**\n * Marshall user-facing data into the wire DataValue type\n *\n * @see DataValue for the expected payloads\n * @internal\n */\nexport async function toDataValue(\n value: unknown,\n client: MinimalClient,\n): Promise<DataValue> {\n if (value == null) {\n // typeof null is 'object' so do this first\n return value;\n }\n\n // arrays and sets are both sent over the wire as arrays\n if (Array.isArray(value) || value instanceof Set) {\n const values = Array.from(value);\n if (\n values.some((dataValue) =>\n isAttachmentUpload(dataValue) || isAttachmentFile(dataValue)\n )\n ) {\n const converted = [];\n for (const value of values) {\n converted.push(await toDataValue(value, client));\n }\n return converted;\n }\n const promiseArray = Array.from(\n value,\n async (innerValue) => await toDataValue(innerValue, client),\n );\n return Promise.all(promiseArray);\n }\n\n // For uploads, we need to upload ourselves first to get the RID of the attachment\n if (isAttachmentUpload(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value.data,\n {\n filename: value.name,\n },\n );\n return await toDataValue(attachment.rid, client);\n }\n\n if (isAttachmentFile(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value,\n {\n filename: value.name as string,\n },\n );\n return await toDataValue(attachment.rid, client);\n }\n\n // objects just send the JSON'd primaryKey\n if (isOntologyObjectV2(value)) {\n return await toDataValue(value.__primaryKey, client);\n }\n\n if (isOsdkBaseObject(value)) {\n return await toDataValue(value.$primaryKey, client);\n }\n\n // object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)\n if (isWireObjectSet(value)) {\n return value;\n }\n if (isObjectSet(value)) {\n return getWireObjectSet(value);\n }\n\n if (isMediaReference(value)) {\n return value;\n }\n\n if (isInterfaceActionParam(value)) {\n return {\n objectTypeApiName: value.$objectType,\n primaryKeyValue: value.$primaryKey,\n };\n }\n\n // TODO (during queries implementation)\n // two dimensional aggregation\n // three dimensional aggregation\n\n // struct\n if (typeof value === \"object\") {\n return Object.entries(value).reduce(\n async (promisedAcc, [key, structValue]) => {\n const acc = await promisedAcc;\n acc[key] = await toDataValue(structValue, client);\n return acc;\n },\n Promise.resolve({} as { [key: string]: DataValue }),\n );\n }\n\n // expected to pass through - boolean, byte, date, decimal, float, double, integer, long, short, string, timestamp, object type reference\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import * as OntologiesV2 from "@osdk/foundry.ontologies";
|
|
18
|
-
import { isAttachmentUpload } from "../object/AttachmentUpload.js";
|
|
18
|
+
import { isAttachmentFile, isAttachmentUpload } from "../object/AttachmentUpload.js";
|
|
19
19
|
import { getWireObjectSet, isObjectSet } from "../objectSet/createObjectSet.js";
|
|
20
20
|
import { isOsdkBaseObject } from "./isOsdkBaseObject.js";
|
|
21
21
|
import { isWireObjectSet } from "./WireObjectSet.js";
|
|
@@ -31,6 +31,14 @@ export async function toDataValueQueries(value, client, desiredType) {
|
|
|
31
31
|
return value;
|
|
32
32
|
}
|
|
33
33
|
if (Array.isArray(value) && desiredType.multiplicity) {
|
|
34
|
+
const values = Array.from(value);
|
|
35
|
+
if (values.some(dataValue => isAttachmentUpload(dataValue) || isAttachmentFile(dataValue))) {
|
|
36
|
+
const converted = [];
|
|
37
|
+
for (const value of values) {
|
|
38
|
+
converted.push(await toDataValueQueries(value, client, desiredType));
|
|
39
|
+
}
|
|
40
|
+
return converted;
|
|
41
|
+
}
|
|
34
42
|
const promiseArray = Array.from(value, async innerValue => await toDataValueQueries(innerValue, client, desiredType));
|
|
35
43
|
return Promise.all(promiseArray);
|
|
36
44
|
}
|
|
@@ -43,7 +51,7 @@ export async function toDataValueQueries(value, client, desiredType) {
|
|
|
43
51
|
});
|
|
44
52
|
return attachment.rid;
|
|
45
53
|
}
|
|
46
|
-
if (
|
|
54
|
+
if (isAttachmentFile(value)) {
|
|
47
55
|
const attachment = await OntologiesV2.Attachments.upload(client, value, {
|
|
48
56
|
filename: value.name
|
|
49
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toDataValueQueries.js","names":["OntologiesV2","isAttachmentUpload","getWireObjectSet","isObjectSet","isOsdkBaseObject","isWireObjectSet","toDataValueQueries","value","client","desiredType","Array","isArray","multiplicity","
|
|
1
|
+
{"version":3,"file":"toDataValueQueries.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","getWireObjectSet","isObjectSet","isOsdkBaseObject","isWireObjectSet","toDataValueQueries","value","client","desiredType","Array","isArray","multiplicity","values","from","some","dataValue","converted","push","promiseArray","innerValue","Promise","all","type","attachment","Attachments","upload","data","filename","name","rid","groups","Set","$primaryKey","structMap","key","structValue","Object","entries"],"sources":["toDataValueQueries.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { QueryDataTypeDefinition } from \"@osdk/api\";\nimport { type DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport {\n isAttachmentFile,\n isAttachmentUpload,\n} from \"../object/AttachmentUpload.js\";\nimport { getWireObjectSet, isObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { isOsdkBaseObject } from \"./isOsdkBaseObject.js\";\nimport { isWireObjectSet } from \"./WireObjectSet.js\";\n\n/**\n * Marshall user-facing data into the wire DataValue type\n *\n * @see DataValue for the expected payloads\n * @internal\n */\nexport async function toDataValueQueries(\n value: unknown,\n client: MinimalClient,\n desiredType: QueryDataTypeDefinition,\n): Promise<DataValue> {\n if (value == null) {\n return value;\n }\n\n if (Array.isArray(value) && desiredType.multiplicity) {\n const values = Array.from(value);\n if (\n values.some((dataValue) =>\n isAttachmentUpload(dataValue) || isAttachmentFile(dataValue)\n )\n ) {\n const converted = [];\n for (const value of values) {\n converted.push(await toDataValueQueries(value, client, desiredType));\n }\n return converted;\n }\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValueQueries(innerValue, client, desiredType),\n );\n return Promise.all(promiseArray);\n }\n\n switch (desiredType.type) {\n case \"attachment\": {\n if (isAttachmentUpload(value)) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value.data,\n {\n filename: value.name,\n },\n );\n return attachment.rid;\n }\n\n if (\n isAttachmentFile(value)\n ) {\n const attachment = await OntologiesV2.Attachments.upload(\n client,\n value,\n {\n filename: value.name as string,\n },\n );\n return attachment.rid;\n }\n\n // If it's not an upload, it's just an attachment rid string which we can pass through\n return value;\n }\n case \"twoDimensionalAggregation\": {\n return {\n groups: value,\n };\n }\n case \"threeDimensionalAggregation\": {\n return {\n groups: value,\n };\n }\n\n case \"set\": {\n if (value instanceof Set) {\n const promiseArray = Array.from(\n value,\n async (innerValue) =>\n await toDataValueQueries(innerValue, client, desiredType[\"set\"]),\n );\n return Promise.all(promiseArray);\n }\n break;\n }\n case \"object\": {\n if (isOsdkBaseObject(value)) {\n return value.$primaryKey;\n }\n break;\n }\n case \"objectSet\": {\n // object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)\n if (isWireObjectSet(value)) {\n return value;\n }\n if (isObjectSet(value)) {\n return getWireObjectSet(value);\n }\n break;\n }\n\n case \"struct\": {\n if (typeof value === \"object\") {\n const structMap: { [key: string]: unknown } = {};\n for (const [key, structValue] of Object.entries(value)) {\n structMap[key] = await toDataValueQueries(\n structValue,\n client,\n desiredType[\"struct\"][key],\n );\n }\n return structMap;\n }\n }\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"timestamp\":\n return value;\n }\n return value;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,KAAKA,YAAY,MAAM,0BAA0B;AAExD,SACEC,gBAAgB,EAChBC,kBAAkB,QACb,+BAA+B;AACtC,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,iCAAiC;AAC/E,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,eAAe,QAAQ,oBAAoB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,kBAAkBA,CACtCC,KAAc,EACdC,MAAqB,EACrBC,WAAoC,EAChB;EACpB,IAAIF,KAAK,IAAI,IAAI,EAAE;IACjB,OAAOA,KAAK;EACd;EAEA,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,IAAIE,WAAW,CAACG,YAAY,EAAE;IACpD,MAAMC,MAAM,GAAGH,KAAK,CAACI,IAAI,CAACP,KAAK,CAAC;IAChC,IACEM,MAAM,CAACE,IAAI,CAAEC,SAAS,IACpBf,kBAAkB,CAACe,SAAS,CAAC,IAAIhB,gBAAgB,CAACgB,SAAS,CAC7D,CAAC,EACD;MACA,MAAMC,SAAS,GAAG,EAAE;MACpB,KAAK,MAAMV,KAAK,IAAIM,MAAM,EAAE;QAC1BI,SAAS,CAACC,IAAI,CAAC,MAAMZ,kBAAkB,CAACC,KAAK,EAAEC,MAAM,EAAEC,WAAW,CAAC,CAAC;MACtE;MACA,OAAOQ,SAAS;IAClB;IACA,MAAME,YAAY,GAAGT,KAAK,CAACI,IAAI,CAC7BP,KAAK,EACL,MAAOa,UAAU,IACf,MAAMd,kBAAkB,CAACc,UAAU,EAAEZ,MAAM,EAAEC,WAAW,CAC5D,CAAC;IACD,OAAOY,OAAO,CAACC,GAAG,CAACH,YAAY,CAAC;EAClC;EAEA,QAAQV,WAAW,CAACc,IAAI;IACtB,KAAK,YAAY;MAAE;QACjB,IAAItB,kBAAkB,CAACM,KAAK,CAAC,EAAE;UAC7B,MAAMiB,UAAU,GAAG,MAAMzB,YAAY,CAAC0B,WAAW,CAACC,MAAM,CACtDlB,MAAM,EACND,KAAK,CAACoB,IAAI,EACV;YACEC,QAAQ,EAAErB,KAAK,CAACsB;UAClB,CACF,CAAC;UACD,OAAOL,UAAU,CAACM,GAAG;QACvB;QAEA,IACE9B,gBAAgB,CAACO,KAAK,CAAC,EACvB;UACA,MAAMiB,UAAU,GAAG,MAAMzB,YAAY,CAAC0B,WAAW,CAACC,MAAM,CACtDlB,MAAM,EACND,KAAK,EACL;YACEqB,QAAQ,EAAErB,KAAK,CAACsB;UAClB,CACF,CAAC;UACD,OAAOL,UAAU,CAACM,GAAG;QACvB;;QAEA;QACA,OAAOvB,KAAK;MACd;IACA,KAAK,2BAA2B;MAAE;QAChC,OAAO;UACLwB,MAAM,EAAExB;QACV,CAAC;MACH;IACA,KAAK,6BAA6B;MAAE;QAClC,OAAO;UACLwB,MAAM,EAAExB;QACV,CAAC;MACH;IAEA,KAAK,KAAK;MAAE;QACV,IAAIA,KAAK,YAAYyB,GAAG,EAAE;UACxB,MAAMb,YAAY,GAAGT,KAAK,CAACI,IAAI,CAC7BP,KAAK,EACL,MAAOa,UAAU,IACf,MAAMd,kBAAkB,CAACc,UAAU,EAAEZ,MAAM,EAAEC,WAAW,CAAC,KAAK,CAAC,CACnE,CAAC;UACD,OAAOY,OAAO,CAACC,GAAG,CAACH,YAAY,CAAC;QAClC;QACA;MACF;IACA,KAAK,QAAQ;MAAE;QACb,IAAIf,gBAAgB,CAACG,KAAK,CAAC,EAAE;UAC3B,OAAOA,KAAK,CAAC0B,WAAW;QAC1B;QACA;MACF;IACA,KAAK,WAAW;MAAE;QAChB;QACA,IAAI5B,eAAe,CAACE,KAAK,CAAC,EAAE;UAC1B,OAAOA,KAAK;QACd;QACA,IAAIJ,WAAW,CAACI,KAAK,CAAC,EAAE;UACtB,OAAOL,gBAAgB,CAACK,KAAK,CAAC;QAChC;QACA;MACF;IAEA,KAAK,QAAQ;MAAE;QACb,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;UAC7B,MAAM2B,SAAqC,GAAG,CAAC,CAAC;UAChD,KAAK,MAAM,CAACC,GAAG,EAAEC,WAAW,CAAC,IAAIC,MAAM,CAACC,OAAO,CAAC/B,KAAK,CAAC,EAAE;YACtD2B,SAAS,CAACC,GAAG,CAAC,GAAG,MAAM7B,kBAAkB,CACvC8B,WAAW,EACX5B,MAAM,EACNC,WAAW,CAAC,QAAQ,CAAC,CAAC0B,GAAG,CAC3B,CAAC;UACH;UACA,OAAOD,SAAS;QAClB;MACF;IACA,KAAK,SAAS;IACd,KAAK,MAAM;IACX,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,MAAM;IACX,KAAK,QAAQ;IACb,KAAK,WAAW;MACd,OAAO3B,KAAK;EAChB;EACA,OAAOA,KAAK;AACd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cACE,kBACA,oBACA,gBACA,aACA,4BACA,oBACA,yBACA,6BACK,WAAY;AACnB,cACE,4BAEA,iCACK,0BAA2B;
|
|
1
|
+
{"mappings":"AAgBA,cACE,kBACA,oBACA,gBACA,aACA,4BACA,oBACA,yBACA,6BACK,WAAY;AACnB,cACE,4BAEA,iCACK,0BAA2B;AAElC,cAAc,qBAAqB,4BAA6B;AAGhE,cAAc,YAAY,iBAAkB;AAC5C,cAAc,qBAAqB,0BAA2B;AAC9D,cAAc,iBAAiB,sBAAuB;KAIjD,SAAS,YAAY,KAAK,eAAe,gBAAgB,WAC5D,IAAI,gBAAgB,eAAe,SAAS,aAAa,eACrD,YAAY,WAAW,eACvB,IAAI,gBAAgB,eAAe,SAAS,gBAAgB,eAC1D,YAAY,cAAc,eAC5B,IAAI,gBAAgB,eAAe,SAAS,aAAa,eACvD,YAAY,WAAW,eACzB,IAAI,sBAAsB,wBACxB,YAAY,cAAc,IAAI;KAGjC,eAAe,YAAY,eAAe,kBAC7C,IAAI,wBAAwB,OAAO,MAAM,SAAS,QAC9C,SAAS;KAEV,kBAAkB,UAAU,iCAC9B,WAAW,KAAI,eAAe,EAAE;AAGnC,YAAY,qBACV,UAAU,8BACR,cAAc,mBAAmB,kBAAkB,KACnD,UAAU,kBAAkB,IAAI,cAAc;AAElD,YAAY,0BACV,UAAU,yBACR,YAAY,EAAE;AAElB,YAAY,uBACV,UAAU,yBACR;CACF,cACG,0BAA0B,GAAG,cAAc,kCACxC,gBAAgB,0BAA0B,GAAG,iBAC7C,0BAA0B,GAAG,cAAc;CAEjD,mBACG,0BAA0B,GAAG,cAAc,uCAChC,qBAAqB,0BAA0B,GAAG,iBAC1D,0BAA0B,GAAG,cAAc;AAClD;KAEI,6BAA6B,YAEhC,eAAe;AAGjB,YAAY,gBACV,UAAU,YAAY,eAAe;CAErC,UAAU,KAAK,qBAAqB;CACpC,WAAW;EAEXA,MAAM,GACNC,UAAU,OACP,QACH,2BAA2B;AAG7B,YAAY,qBACV,UAAU,YAAY,eAAe;CAErC,UAAU,KAAK,qBAAqB;CACpC,WAAW;EAEXD,MAAM,GACNC,UAAU,OACP,QACH,2BAA2B;AAG7B,OAAO,iBAAe;CACpB,WAAW;CACX,UACI,qBAAqB,0BAA0B,IAAI,iBACnD,qBAAqB,0BAA0B,IAAI;CACvD,WAAW,UAAU,qBACnB,0BAA0B,IAAI,mBAC1B,0BACF;EAEJC,QAAQ,eACRC,QAAQ,IACRC,aAAa,GACbC,UAAS,KACR,QACD,2BAA2B;AAiG7B,OAAO,iBAAS,oBACdC,UAAU,4BAA4B,6BACrC","names":["args: A","options?: OP","client: MinimalClient","action: AD","parameters?: P","options: Op","response: SyncApplyActionResponseV2 | BatchApplyActionResponseV2"],"sources":["../../../src/actions/applyAction.ts"],"version":3,"file":"applyAction.d.ts"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { AttachmentUpload } from "@osdk/api";
|
|
2
2
|
export declare function isAttachmentUpload(o: any): o is AttachmentUpload;
|
|
3
|
+
export declare function isAttachmentFile(o: any): o is Blob & {
|
|
4
|
+
readonly name: string
|
|
5
|
+
};
|
|
3
6
|
export declare function createAttachmentUpload(data: Blob, name: string): AttachmentUpload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,wBAAwB,WAAY;AAElD,OAAO,iBAAS,mBAAmBA,SAAS,KAAK;AAKjD,OAAO,iBAAS,uBACdC,MAAM,MACNC,eACC","names":["o: any","data: Blob","name: string"],"sources":["../../../src/object/AttachmentUpload.ts"],"version":3,"file":"AttachmentUpload.d.ts"}
|
|
1
|
+
{"mappings":"AAgBA,cAAc,wBAAwB,WAAY;AAElD,OAAO,iBAAS,mBAAmBA,SAAS,KAAK;AAKjD,OAAO,iBAAS,iBACdA,SACC,KAAK,OAAO;UAAW;AAAc;AAIxC,OAAO,iBAAS,uBACdC,MAAM,MACNC,eACC","names":["o: any","data: Blob","name: string"],"sources":["../../../src/object/AttachmentUpload.ts"],"version":3,"file":"AttachmentUpload.d.ts"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAEE,oBACA,6BAEA,sBACA,MAEA,YACA,mBACK,WAAY;AAEnB,cAAc,uBAAuB,SAAU;AAG/C,cAAc,YAAY,QAAS;AAGnC,cAAc,cAAc,iBAAkB;AAE9C,cAAqB,cAAc,iBAAkB;AACrD,cAAc,mBAAmB,mBAAoB;AACrD,cAAc,qBAAqB,qBAAsB;AACzD,cAAc,QAAQ,sBAAsB,wBAAyB;AACrE,cAAc,aAAa,YAAa;AAIxC,iBAAiB,iBAAiB;CAChC,QAAQ,KAAK,UAAU;CAEvB,2BAA2B,gBAAgB,QAAQ;CAEnD,mBAAmB,UAAU,sBAC3BA,2CACG,gBACH,QACE,KAAK,SAAS;CAIlB,8BAA8B,gBAC5B,KAAK,SAAS,yCAAyC,CAAE;CAG3D,oBACE,UAAU,sBAEVC,WAAW;EACT,OAAO;EACP,SAAS,eAAe,QAAQ;CACjC,MACE,gBACH,WAAW,QAAQ,KAAK,SAAS;AAEpC;AAcD,OAAO,iBAAS,iBACdC,UAAU,qBACVC,UAAU;CAAE;CAAgB;AAAoB,IAC/C;AA+DH,OAAO,iBAAS,0BAA0B;
|
|
1
|
+
{"mappings":"AAgBA,cAEE,oBACA,6BAEA,sBACA,MAEA,YACA,mBACK,WAAY;AAEnB,cAAc,uBAAuB,SAAU;AAG/C,cAAc,YAAY,QAAS;AAGnC,cAAc,cAAc,iBAAkB;AAE9C,cAAqB,cAAc,iBAAkB;AACrD,cAAc,mBAAmB,mBAAoB;AACrD,cAAc,qBAAqB,qBAAsB;AACzD,cAAc,QAAQ,sBAAsB,wBAAyB;AACrE,cAAc,aAAa,YAAa;AAIxC,iBAAiB,iBAAiB;CAChC,QAAQ,KAAK,UAAU;CAEvB,2BAA2B,gBAAgB,QAAQ;CAEnD,mBAAmB,UAAU,sBAC3BA,2CACG,gBACH,QACE,KAAK,SAAS;CAIlB,8BAA8B,gBAC5B,KAAK,SAAS,yCAAyC,CAAE;CAG3D,oBACE,UAAU,sBAEVC,WAAW;EACT,OAAO;EACP,SAAS,eAAe,QAAQ;CACjC,MACE,gBACH,WAAW,QAAQ,KAAK,SAAS;AAEpC;AAcD,OAAO,iBAAS,iBACdC,UAAU,qBACVC,UAAU;CAAE;CAAgB;AAAoB,IAC/C;AA+DH,OAAO,iBAAS,0BAA0B;AAoJ1C,OAAO,iBAAS,gBAcQC,GAAG,mBAAiB;AAM5C,OAAO,iBAAS,6BAA6B,UAAU,sBACrDC,OAAO,MAAMC,GAAG,mCAChBC,cAAc,KAAK,SAAS,MAC5BC,iBAAgB,KAAK,QAAQ,cAAc;AAc7C,OAAO,iBAAS,+BAA+B,UAAU,sBACvDC,OAAO,MAAMC,GAAG,qCAChBC,QAAQ,KAAK,SAAS,IACtBC,SAAS;AAWX,OAAO,iBAAe,YACpBC,OAAO,MAAMC,kBACbC,iBACC;AAiBH,OAAO,iBAAS,yBACZ,MACCL,GAAG,sCAEJ;CAGA,yBAAyBM,GAAG;EAC1B;EACA;CACD,MAAK;AACP;AAmDH,OAAO,iBAAS,uBAAuB,MACpCC,GAAG;AAON,OAAO,iBAAS,qBAAqBC,GAAG,QAAQ,cAAc;AAoB9D,OAAO,iBAAS,wBACdC,GAAG,QAAQ,iBACV;AASH,OAAO,iBAAS,sBACdC,GAAG,QAAQ,eACV;AAWH,OAAO,iBAAS;UAWN,eAAe,SAAS;CAChC,kBAAkBC,cAAc;AACjC;UAES,yBAAyB,SAAS;CAC1C,kBAAkBA,cAAc;AACjC;eAEc,SAAS;WACZ,UAAU,iBAAiB,eAAe,GAAG,CAAE;WAC/C,qCAAqC,yBAAyB,CAAE;AAC3E","names":["expectedId?: string | number | boolean","expected?: {\n where: WhereClause<any>;\n orderBy: Record<string, \"asc\" | \"desc\" | undefined>;\n }","bindings: Record<string, any>","options?: { level?: string; msgPrefix?: string }","x: Unsubscribable","subFn: Mock<(e: ListPayload | undefined) => void>","e: ListPayload | undefined","resolvedList: Osdk.Instance<T>[]","payloadOptions: Omit<Partial<ListPayload>, \"resolvedList\">","subFn: Mock<(e: ObjectPayload | undefined) => void>","e: ObjectPayload | undefined","object: Osdk.Instance<T>","status?: Status","subFn: Mock<(e: any) => void>","e: any","times: number","q: {\n loading?: unknown;\n loaded: unknown;\n }","x: ListPayload | undefined","x: Partial<Entry<any>>","x: Partial<ObjectPayload>","x: Partial<ListPayload>","n: number"],"sources":["../../../../src/observable/internal/testUtils.ts"],"version":3,"file":"testUtils.d.ts"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osdk/client",
|
|
3
|
-
"version": "2.2.0-beta.
|
|
3
|
+
"version": "2.2.0-beta.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"access": "public",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@osdk/foundry.core": "2.
|
|
51
|
-
"@osdk/foundry.ontologies": "2.
|
|
50
|
+
"@osdk/foundry.core": "2.15.0",
|
|
51
|
+
"@osdk/foundry.ontologies": "2.15.0",
|
|
52
52
|
"@osdk/shared.client": "^1.0.1",
|
|
53
53
|
"@osdk/shared.client2": "^1.0.0",
|
|
54
54
|
"@types/geojson": "^7946.0.14",
|
|
@@ -63,12 +63,12 @@
|
|
|
63
63
|
"tiny-invariant": "^1.3.1",
|
|
64
64
|
"type-fest": "^4.18.2",
|
|
65
65
|
"ws": "^8.18.0",
|
|
66
|
-
"@osdk/
|
|
66
|
+
"@osdk/api": "~2.2.0-beta.7",
|
|
67
|
+
"@osdk/client.unstable": "2.2.0-beta.7",
|
|
68
|
+
"@osdk/generator-converters": "2.2.0-beta.7",
|
|
67
69
|
"@osdk/shared.client.impl": "~1.2.0-beta.1",
|
|
68
70
|
"@osdk/shared.net.errors": "~2.2.0-beta.1",
|
|
69
|
-
"@osdk/
|
|
70
|
-
"@osdk/shared.net.fetch": "~1.2.0-beta.1",
|
|
71
|
-
"@osdk/api": "~2.2.0-beta.5"
|
|
71
|
+
"@osdk/shared.net.fetch": "~1.2.0-beta.1"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@microsoft/api-documenter": "^7.26.5",
|
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
"ts-expect": "^1.3.0",
|
|
89
89
|
"typescript": "~5.5.4",
|
|
90
90
|
"zod": "^3.23.8",
|
|
91
|
-
"@osdk/client.test.ontology": "~2.2.0-beta.5",
|
|
92
91
|
"@osdk/monorepo.api-extractor": "~0.1.0-beta.1",
|
|
93
92
|
"@osdk/monorepo.tsconfig": "~0.1.0-beta.1",
|
|
94
|
-
"@osdk/shared.test": "~2.2.0-beta.
|
|
93
|
+
"@osdk/shared.test": "~2.2.0-beta.7",
|
|
94
|
+
"@osdk/client.test.ontology": "~2.2.0-beta.7"
|
|
95
95
|
},
|
|
96
96
|
"publishConfig": {
|
|
97
97
|
"access": "public"
|