@osdk/client 2.2.0-beta.16 → 2.2.0-beta.17
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 +24 -0
- package/build/browser/MinimalClientContext.js.map +1 -1
- package/build/browser/actions/actions.test.js +18 -2
- package/build/browser/actions/actions.test.js.map +1 -1
- package/build/browser/createClient.js.map +1 -1
- package/build/browser/createMinimalClient.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js +36 -13
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
- package/build/browser/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js +94 -0
- package/build/browser/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
- package/build/browser/index.js.map +1 -1
- package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js +25 -0
- package/build/browser/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
- package/build/browser/intellisense.test.js +12 -0
- package/build/browser/intellisense.test.js.map +1 -1
- package/build/browser/logger/BaseLogger.js.map +1 -1
- package/build/browser/logger/BrowserLogger.js.map +1 -1
- package/build/browser/logger/MinimalLogger.js.map +1 -1
- package/build/browser/logger/TestLogger.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/browser/objectSet/ObjectSet.test.js +1 -6
- package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +4 -1
- package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/browser/objectSet/createObjectSet.js +1 -1
- package/build/browser/objectSet/createObjectSet.js.map +1 -1
- package/build/browser/observable/internal/BulkObjectLoader.js.map +1 -1
- package/build/browser/observable/internal/ListQuery.js.map +1 -1
- package/build/browser/observable/internal/Query.js.map +1 -1
- package/build/browser/observable/internal/Store.js.map +1 -1
- package/build/browser/observable/internal/testUtils.js +2 -2
- package/build/browser/observable/internal/testUtils.js.map +1 -1
- package/build/browser/queries/applyQuery.js.map +1 -1
- package/build/browser/queries/queries.test.js.map +1 -1
- package/build/browser/tsserver.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/isPoint.js +20 -0
- package/build/browser/util/isPoint.js.map +1 -0
- package/build/browser/util/toDataValue.js +4 -0
- package/build/browser/util/toDataValue.js.map +1 -1
- package/build/cjs/{chunk-6KYD7ZWT.cjs → chunk-33GHS3X4.cjs} +141 -44
- package/build/cjs/chunk-33GHS3X4.cjs.map +1 -0
- package/build/cjs/{chunk-KAJABLKV.cjs → chunk-37QC7LR3.cjs} +14 -14
- package/build/cjs/{chunk-KAJABLKV.cjs.map → chunk-37QC7LR3.cjs.map} +1 -1
- package/build/cjs/index.cjs +55 -47
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +3 -4
- package/build/cjs/public/internal.cjs +8 -8
- package/build/cjs/public/internal.d.cts +10 -11
- package/build/cjs/public/unstable-do-not-use.cjs +8 -8
- package/build/esm/MinimalClientContext.js.map +1 -1
- package/build/esm/actions/actions.test.js +18 -2
- package/build/esm/actions/actions.test.js.map +1 -1
- package/build/esm/createClient.js.map +1 -1
- package/build/esm/createMinimalClient.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js +36 -13
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.js.map +1 -1
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js +133 -0
- package/build/esm/derivedProperties/createWithPropertiesObjectSet.test.js.map +1 -1
- package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js +94 -0
- package/build/esm/derivedProperties/derivedPropertyDefinitionFactory.js.map +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js +25 -0
- package/build/esm/intellisense.test.helpers/showsObjectPropertyJsdoc.js.map +1 -0
- package/build/esm/intellisense.test.js +12 -0
- package/build/esm/intellisense.test.js.map +1 -1
- package/build/esm/logger/BaseLogger.js.map +1 -1
- package/build/esm/logger/BrowserLogger.js.map +1 -1
- package/build/esm/logger/MinimalLogger.js.map +1 -1
- package/build/esm/logger/TestLogger.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -1
- package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
- package/build/esm/objectSet/ObjectSet.test.js +1 -6
- package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +4 -1
- package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
- package/build/esm/objectSet/createObjectSet.js +1 -1
- package/build/esm/objectSet/createObjectSet.js.map +1 -1
- package/build/esm/observable/internal/BulkObjectLoader.js.map +1 -1
- package/build/esm/observable/internal/ListQuery.js.map +1 -1
- package/build/esm/observable/internal/Query.js.map +1 -1
- package/build/esm/observable/internal/Store.js.map +1 -1
- package/build/esm/observable/internal/testUtils.js +2 -2
- package/build/esm/observable/internal/testUtils.js.map +1 -1
- package/build/esm/queries/applyQuery.js.map +1 -1
- package/build/esm/queries/queries.test.js.map +1 -1
- package/build/esm/tsserver.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/isPoint.js +20 -0
- package/build/esm/util/isPoint.js.map +1 -0
- package/build/esm/util/toDataValue.js +4 -0
- package/build/esm/util/toDataValue.js.map +1 -1
- package/build/types/MinimalClientContext.d.ts +1 -1
- package/build/types/MinimalClientContext.d.ts.map +1 -1
- package/build/types/createClient.d.ts +1 -1
- package/build/types/createClient.d.ts.map +1 -1
- package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts +1 -0
- package/build/types/derivedProperties/derivedPropertyDefinitionFactory.d.ts.map +1 -0
- package/build/types/index.d.ts +1 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts +1 -0
- package/build/types/intellisense.test.helpers/showsObjectPropertyJsdoc.d.ts.map +1 -0
- package/build/types/logger/BaseLogger.d.ts +7 -8
- package/build/types/logger/BaseLogger.d.ts.map +1 -1
- package/build/types/logger/BrowserLogger.d.ts +1 -2
- package/build/types/logger/BrowserLogger.d.ts.map +1 -1
- package/build/types/logger/MinimalLogger.d.ts +2 -2
- package/build/types/logger/MinimalLogger.d.ts.map +1 -1
- package/build/types/logger/TestLogger.d.ts +2 -2
- package/build/types/logger/TestLogger.d.ts.map +1 -1
- package/build/types/observable/internal/BulkObjectLoader.d.ts.map +1 -1
- package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
- package/build/types/observable/internal/Query.d.ts +1 -1
- package/build/types/observable/internal/Query.d.ts.map +1 -1
- package/build/types/observable/internal/Store.d.ts.map +1 -1
- package/build/types/observable/internal/testUtils.d.ts +1 -2
- package/build/types/observable/internal/testUtils.d.ts.map +1 -1
- package/build/types/queries/applyQuery.d.ts +4 -2
- package/build/types/queries/applyQuery.d.ts.map +1 -1
- package/build/types/tsserver.d.ts +1 -1
- package/build/types/tsserver.d.ts.map +1 -1
- package/build/types/util/isPoint.d.ts +1 -0
- package/build/types/util/isPoint.d.ts.map +1 -0
- package/package.json +9 -9
- package/build/browser/logger/Logger.js +0 -2
- package/build/browser/logger/Logger.js.map +0 -1
- package/build/cjs/Logger-a5UcHtrk.d.cts +0 -19
- package/build/cjs/chunk-6KYD7ZWT.cjs.map +0 -1
- package/build/esm/logger/Logger.js +0 -2
- package/build/esm/logger/Logger.js.map +0 -1
- package/build/types/logger/Logger.d.ts +0 -17
- package/build/types/logger/Logger.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.test.js","names":["$Queries","acceptsThreeDimensionalAggregationFunction","acceptsTwoDimensionalAggregationFunction","addOne","Employee","incrementPersonAge","incrementPersonAgeComplex","queryAcceptsObject","queryAcceptsObjectSets","queryTypeReturnsMap","returnsDate","returnsTimestamp","threeDimensionalAggregationFunction","twoDimensionalAggregationFunction","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","createClient","client","testSetup","apiServer","close","result","executeFunction","n","toBe","employee","fetchOne","object","toEqual","$apiName","$objectType","$primaryKey","$objectSpecifier","result2","employeeObjectSet","objectSet","toMatchTypeOf","resultWithTimestamp","resultWithDate","person","firstName","lastName","age","toEqualTypeOf","key","value","aggFunction","groups","startValue","endValue","fail","e","message","toMatch","peopleMap","toMatchInlineSnapshot","queries","Object","keys","toStrictEqual","queryTypeReturnsArray","people"],"sources":["queries.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 { ObjectSet, ObjectSpecifier } from \"@osdk/api\";\nimport {\n $Queries,\n acceptsThreeDimensionalAggregationFunction,\n acceptsTwoDimensionalAggregationFunction,\n addOne,\n Employee,\n incrementPersonAge,\n incrementPersonAgeComplex,\n queryAcceptsObject,\n queryAcceptsObjectSets,\n queryTypeReturnsMap,\n returnsDate,\n returnsTimestamp,\n threeDimensionalAggregationFunction,\n twoDimensionalAggregationFunction,\n} from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"queries\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"simple query works\", async () => {\n const result = await client(addOne).executeFunction({ n: 2 });\n expect(result).toBe(3);\n });\n\n it(\"accepts objects\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(queryAcceptsObject).executeFunction({\n object: employee,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n\n // Should also accept primary keys\n const result2 = await client(queryAcceptsObject).executeFunction({\n object: 50030,\n });\n expect(result2).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n });\n\n it(\"accepts objectSets\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n\n it(\"no params work\", async () => {\n const resultWithTimestamp = await client(returnsTimestamp)\n .executeFunction();\n expect(resultWithTimestamp).toBe(\"2019-01-01T00:00:00.000Z\");\n\n const resultWithDate = await client(returnsDate).executeFunction();\n expect(resultWithDate).toBe(\"2019-01-01\");\n });\n\n it(\"returns and accepts structs property\", async () => {\n const result = await client(incrementPersonAge).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42 },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n });\n });\n\n it(\"returns and accepts complex structs property\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(incrementPersonAgeComplex).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42, object: employee },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n object: {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n },\n });\n });\n\n it(\"two dimensional aggregation response works\", async () => {\n const result = await client(twoDimensionalAggregationFunction)\n .executeFunction();\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n expect(result).toEqual([{ key: \"Q-AFN\", value: 1 }, {\n key: \"Q-AFO\",\n value: 2,\n }]);\n });\n\n it(\"two dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsTwoDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{ aggFunction: { key: string; value: number }[] }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsTwoDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n value: 1,\n },\n {\n key: \"testKey2\",\n value: 2,\n },\n ],\n });\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n\n expect(result).toEqual([{ key: \"responseKey1\", value: 3 }, {\n key: \"responseKey2\",\n value: 4,\n }]);\n });\n\n it(\"three dimensional aggregation response works\", async () => {\n const result = await client(threeDimensionalAggregationFunction)\n .executeFunction();\n\n expectTypeOf<typeof result>().toEqualTypeOf<\n {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string | undefined };\n value: number;\n }[];\n }[]\n >;\n expect(result).toEqual([{\n key: \"Q-AFN\",\n groups: [{\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n }],\n }, { key: \"Q-AFO\", groups: [] }]);\n });\n\n it(\"throws when response is null and response is non-nullable\", async () => {\n try {\n const result = await client(addOne).executeFunction({ n: 3 });\n expect.fail(\"Should not reach here\");\n } catch (e) {\n expect((e as Error).message).toMatch(\n `Got null response when nullable was not allowed`,\n );\n }\n });\n\n it(\"three dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsThreeDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{\n aggFunction: {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string };\n value: number;\n }[];\n }[];\n }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsThreeDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"testKey2\",\n groups: [],\n },\n ],\n });\n\n expect(result).toEqual([\n {\n key: \"Q-AFN\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"Q-AFO\",\n groups: [],\n },\n ]);\n });\n\n it(\"map type request and response works\", async () => {\n const clientBoundQueryFunction =\n client(queryTypeReturnsMap).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<InferredParamType>()\n .toMatchTypeOf<\n { peopleMap: Record<ObjectSpecifier<Employee>, string> }\n >();\n\n const myMap: Record<ObjectSpecifier<Employee>, string> = {\n [\"Employee:person1\" as any]: \"hi\",\n };\n const result = await client(queryTypeReturnsMap).executeFunction({\n peopleMap: myMap,\n });\n\n expect(result).toMatchInlineSnapshot(`\n {\n \"Employee:50030\": \"bye\",\n }\n `);\n\n expectTypeOf<typeof result>().toMatchTypeOf<\n Record<ObjectSpecifier<Employee>, number>\n >();\n\n const object = await client(Employee).fetchOne(50030);\n\n const value = result[object.$objectSpecifier];\n\n expect(value).toBe(\"bye\");\n });\n\n it(\"accepts and returns objects\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n it(\"queries are enumerable\", async () => {\n const queries = Object.keys($Queries);\n expect(queries).toStrictEqual([\n \"acceptsThreeDimensionalAggregationFunction\",\n \"acceptsTwoDimensionalAggregationFunction\",\n \"addOne\",\n \"incrementPersonAge\",\n \"incrementPersonAgeComplex\",\n \"queryAcceptsObject\",\n \"queryAcceptsObjectSets\",\n \"queryTypeReturnsArray\",\n \"queryTypeReturnsMap\",\n \"returnsDate\",\n \"returnsObject\",\n \"returnsTimestamp\",\n \"threeDimensionalAggregationFunction\",\n \"twoDimensionalAggregationFunction\",\n ]);\n });\n\n it(\"queries work with arrays\", async () => {\n const result = await client($Queries.queryTypeReturnsArray).executeFunction(\n { people: [\"Brad\", \"George\", \"Ryan\"] },\n );\n expect(result).toEqual([\"Pitt\", \"Clooney\", \"Reynolds\"]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"queries.test.js","names":["$Queries","acceptsThreeDimensionalAggregationFunction","acceptsTwoDimensionalAggregationFunction","addOne","Employee","incrementPersonAge","incrementPersonAgeComplex","queryAcceptsObject","queryAcceptsObjectSets","queryTypeReturnsMap","returnsDate","returnsTimestamp","threeDimensionalAggregationFunction","twoDimensionalAggregationFunction","LegacyFauxFoundry","startNodeApiServer","beforeAll","describe","expect","expectTypeOf","it","createClient","client","testSetup","apiServer","close","result","executeFunction","n","toBe","employee","fetchOne","object","toEqual","$apiName","$objectType","$primaryKey","$objectSpecifier","result2","employeeObjectSet","objectSet","toMatchTypeOf","resultWithTimestamp","resultWithDate","person","firstName","lastName","age","toEqualTypeOf","key","value","aggFunction","groups","startValue","endValue","fail","e","message","toMatch","peopleMap","toMatchInlineSnapshot","queries","Object","keys","toStrictEqual","queryTypeReturnsArray","people"],"sources":["queries.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 { ObjectSet, ObjectSpecifier } from \"@osdk/api\";\nimport {\n $Queries,\n acceptsThreeDimensionalAggregationFunction,\n acceptsTwoDimensionalAggregationFunction,\n addOne,\n Employee,\n incrementPersonAge,\n incrementPersonAgeComplex,\n queryAcceptsObject,\n queryAcceptsObjectSets,\n queryTypeReturnsMap,\n returnsDate,\n returnsTimestamp,\n threeDimensionalAggregationFunction,\n twoDimensionalAggregationFunction,\n} from \"@osdk/client.test.ontology\";\nimport { LegacyFauxFoundry, startNodeApiServer } from \"@osdk/shared.test\";\nimport { beforeAll, describe, expect, expectTypeOf, it } from \"vitest\";\nimport type { Client } from \"../Client.js\";\nimport { createClient } from \"../createClient.js\";\n\ndescribe(\"queries\", () => {\n let client: Client;\n\n beforeAll(() => {\n const testSetup = startNodeApiServer(new LegacyFauxFoundry(), createClient);\n ({ client } = testSetup);\n return () => {\n testSetup.apiServer.close();\n };\n });\n\n it(\"simple query works\", async () => {\n const result = await client(addOne).executeFunction({ n: 2 });\n expect(result).toBe(3);\n });\n\n it(\"accepts objects\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(queryAcceptsObject).executeFunction({\n object: employee,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n\n // Should also accept primary keys\n const result2 = await client(queryAcceptsObject).executeFunction({\n object: 50030,\n });\n expect(result2).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n });\n\n it(\"accepts objectSets\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n\n it(\"no params work\", async () => {\n const resultWithTimestamp = await client(returnsTimestamp)\n .executeFunction();\n expect(resultWithTimestamp).toBe(\"2019-01-01T00:00:00.000Z\");\n\n const resultWithDate = await client(returnsDate).executeFunction();\n expect(resultWithDate).toBe(\"2019-01-01\");\n });\n\n it(\"returns and accepts structs property\", async () => {\n const result = await client(incrementPersonAge).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42 },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n });\n });\n\n it(\"returns and accepts complex structs property\", async () => {\n const employee = await client(Employee).fetchOne(\n 50030,\n );\n const result = await client(incrementPersonAgeComplex).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42, object: employee },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n object: {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n },\n });\n });\n\n it(\"two dimensional aggregation response works\", async () => {\n const result = await client(twoDimensionalAggregationFunction)\n .executeFunction();\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n expect(result).toEqual([{ key: \"Q-AFN\", value: 1 }, {\n key: \"Q-AFO\",\n value: 2,\n }]);\n });\n\n it(\"two dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsTwoDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{ aggFunction: { key: string; value: number }[] }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsTwoDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n value: 1,\n },\n {\n key: \"testKey2\",\n value: 2,\n },\n ],\n });\n expectTypeOf<typeof result>().toEqualTypeOf<\n { key: string; value: number }[]\n >;\n\n expect(result).toEqual([{ key: \"responseKey1\", value: 3 }, {\n key: \"responseKey2\",\n value: 4,\n }]);\n });\n\n it(\"three dimensional aggregation response works\", async () => {\n const result = await client(threeDimensionalAggregationFunction)\n .executeFunction();\n\n expectTypeOf<typeof result>().toEqualTypeOf<\n {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string | undefined };\n value: number;\n }[];\n }[]\n >;\n expect(result).toEqual([{\n key: \"Q-AFN\",\n groups: [{\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n }],\n }, { key: \"Q-AFO\", groups: [] }]);\n });\n\n it(\"throws when response is null and response is non-nullable\", async () => {\n try {\n const result = await client(addOne).executeFunction({ n: 3 });\n expect.fail(\"Should not reach here\");\n } catch (e) {\n expect((e as Error).message).toMatch(\n `Got null response when nullable was not allowed`,\n );\n }\n });\n\n it(\"three dimensional aggregation request/response works\", async () => {\n const clientBoundQueryFunction =\n client(acceptsThreeDimensionalAggregationFunction).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<{\n aggFunction: {\n key: string;\n groups: {\n key: { startValue: string | undefined; endValue: string };\n value: number;\n }[];\n }[];\n }>()\n .toMatchTypeOf<InferredParamType>();\n\n const result = await client(acceptsThreeDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"testKey2\",\n groups: [],\n },\n ],\n });\n\n expect(result).toEqual([\n {\n key: \"Q-AFN\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"Q-AFO\",\n groups: [],\n },\n ]);\n });\n\n it(\"map type request and response works\", async () => {\n const clientBoundQueryFunction =\n client(queryTypeReturnsMap).executeFunction;\n type InferredParamType = Parameters<\n typeof clientBoundQueryFunction\n >[0];\n\n expectTypeOf<InferredParamType>()\n .toMatchTypeOf<\n { peopleMap: Partial<Record<ObjectSpecifier<Employee>, string>> }\n >();\n\n const myMap: Record<ObjectSpecifier<Employee>, string> = {\n [\"Employee:person1\" as any]: \"hi\",\n };\n const result = await client(queryTypeReturnsMap).executeFunction({\n peopleMap: myMap,\n });\n\n expect(result).toMatchInlineSnapshot(`\n {\n \"Employee:50030\": \"bye\",\n }\n `);\n\n expectTypeOf<typeof result>().toMatchTypeOf<\n Partial<Record<ObjectSpecifier<Employee>, number>>\n >();\n\n const object = await client(Employee).fetchOne(50030);\n\n const value = result[object.$objectSpecifier];\n\n expect(value).toBe(\"bye\");\n });\n\n it(\"accepts and returns objects\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n\n expectTypeOf<ObjectSet<Employee>>().toMatchTypeOf<typeof result>();\n });\n it(\"queries are enumerable\", async () => {\n const queries = Object.keys($Queries);\n expect(queries).toStrictEqual([\n \"acceptsThreeDimensionalAggregationFunction\",\n \"acceptsTwoDimensionalAggregationFunction\",\n \"addOne\",\n \"incrementPersonAge\",\n \"incrementPersonAgeComplex\",\n \"queryAcceptsObject\",\n \"queryAcceptsObjectSets\",\n \"queryTypeReturnsArray\",\n \"queryTypeReturnsMap\",\n \"returnsDate\",\n \"returnsObject\",\n \"returnsTimestamp\",\n \"threeDimensionalAggregationFunction\",\n \"twoDimensionalAggregationFunction\",\n ]);\n });\n\n it(\"queries work with arrays\", async () => {\n const result = await client($Queries.queryTypeReturnsArray).executeFunction(\n { people: [\"Brad\", \"George\", \"Ryan\"] },\n );\n expect(result).toEqual([\"Pitt\", \"Clooney\", \"Reynolds\"]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsserver.js","names":["execaNode","findUpMultiple","EventEmitter","fs","path","pLocate","pMap","invariant","server","s","TsServerImpl","tsServerPath","nextSeq","subprocess","logger","constructor","start","ipc","serialization","isLevelEnabled","on","req","trace","info","emit","stop","connected","disconnect","getOneMessage","filter","requestFactory","#requestFactory","command","isResponse","args","makeRequest","sendOpenRequest","protocol","CommandTypes","Open","sendQuickInfoRequest","Quickinfo","isQuickInfoResponse","#makeRequest","seq","type","arguments","sendMessage","resp","undefined","startTsServer","getTsServerPath","process","env","NODE_ENV","nodeModuleDirs","cwd","import","meta","url","possibleTsServerPaths","dir","join","c","stat","isFile","e","isEvent","m","isProjectLoadingStart","event","isProjectLoadingEnd","requestSeq","request_seq"],"sources":["tsserver.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 { Subprocess } from \"execa\";\nimport { execaNode } from \"execa\";\nimport { findUpMultiple } from \"find-up\";\nimport { EventEmitter } from \"node:events\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport pLocate from \"p-locate\";\nimport pMap from \"p-map\";\nimport invariant from \"tiny-invariant\";\nimport { server as s } from \"typescript\";\nimport type { Logger } from \"./logger/Logger.js\";\n\ntype RequestFn<\n T extends s.protocol.Request,\n X extends s.protocol.Response = never,\n> = (\n args: T[\"arguments\"],\n) => Promise<{ req: T; resp: X }>;\n\nclass TsServerImpl extends EventEmitter<{\n exit: [];\n}> {\n #tsServerPath: string;\n #nextSeq = 1;\n #subprocess: Subprocess<{ ipc: true; serialization: \"json\" }> | undefined;\n #logger: Logger;\n\n constructor(tsServerPath: string, logger: Logger) {\n super();\n this.#tsServerPath = tsServerPath;\n this.#logger = logger;\n }\n\n get subprocess():\n | Subprocess<{\n ipc: true;\n serialization: \"json\";\n }>\n | undefined\n {\n return this.#subprocess;\n }\n\n async start(): Promise<this> {\n this.#subprocess = execaNode({\n ipc: true,\n serialization: \"json\",\n })`${this.#tsServerPath} --useNodeIpc`;\n\n if (this.#logger.isLevelEnabled(\"trace\")) {\n this.#subprocess.on(\"message\", (req) => {\n this.#logger.trace({ req }, \"message received\");\n });\n }\n\n this.#subprocess.on(\"exit\", () => {\n this.#logger.info(\"tsserver exited\");\n this.emit(\"exit\");\n });\n return this;\n }\n\n stop(): void {\n if (this.#subprocess?.connected) {\n this.#subprocess?.disconnect();\n }\n }\n\n async getOneMessage<X>(filter?: (m: unknown) => m is X): Promise<X> {\n return await this.subprocess!.getOneMessage({ filter }) as X;\n }\n\n #requestFactory =\n <T extends s.protocol.Request, X extends s.protocol.Response = never>(\n command: T[\"command\"],\n isResponse?: (m: unknown) => m is X,\n ): RequestFn<T, X> =>\n async (args: T[\"arguments\"]): Promise<{ req: T; resp: X }> => {\n return await this.#makeRequest<T, X>(command, args, isResponse);\n };\n\n sendOpenRequest: RequestFn<s.protocol.OpenRequest> = this.#requestFactory(\n s.protocol.CommandTypes.Open,\n );\n\n sendQuickInfoRequest: RequestFn<\n s.protocol.QuickInfoRequest,\n s.protocol.QuickInfoResponse\n > = this.#requestFactory(\n s.protocol.CommandTypes.Quickinfo,\n isQuickInfoResponse,\n );\n\n async #makeRequest<\n T extends s.protocol.Request,\n X extends s.protocol.Response = never,\n >(\n command: T[\"command\"],\n args: T[\"arguments\"],\n isResponse?: (m: unknown) => m is X,\n ): Promise<{ req: T; resp: X }> {\n const seq = this.#nextSeq++;\n const req: T = {\n type: \"request\",\n command,\n arguments: args,\n seq,\n } as T;\n this.#logger.trace({ req }, \"requesting\");\n\n await this.#subprocess?.sendMessage(req as any);\n\n if (isResponse) {\n return {\n req,\n resp: await this.#subprocess?.getOneMessage({\n filter: isResponse,\n }) as unknown as X,\n };\n }\n return { req, resp: undefined as unknown as X };\n }\n}\n\nexport type TsServer = Omit<\n TsServerImpl,\n Exclude<\n keyof EventEmitter,\n | \"on\"\n | \"addListener\"\n | \"off\"\n | \"once\"\n | \"removeListener\"\n | \"removeAllListeners\"\n >\n>;\n\nexport async function startTsServer(logger: Logger): Promise<TsServer> {\n const tsServerPath = await getTsServerPath();\n invariant(tsServerPath != null);\n\n return new TsServerImpl(tsServerPath, logger).start();\n}\n\nasync function getTsServerPath() {\n const nodeModuleDirs = await findUpMultiple(\"node_modules\", {\n cwd: import.meta.url,\n type: \"directory\",\n });\n const possibleTsServerPaths = await pMap(\n nodeModuleDirs,\n (dir) => path.join(dir, \"typescript\", \"lib\", \"tsserver.js\"),\n );\n\n const tsServerPath = await pLocate(\n [\"no\", ...possibleTsServerPaths],\n async (dir) => {\n try {\n const c = await fs.stat(\n dir,\n );\n return c.isFile();\n } catch (e) {\n return false;\n }\n },\n );\n return tsServerPath;\n}\n\nexport function isEvent(m: unknown): m is s.protocol.Event {\n return !!(m && typeof m === \"object\" && \"type\" in m\n && m.type === \"event\");\n}\n\nexport function isResponse(m: unknown): m is s.protocol.Response {\n return !!(m && typeof m === \"object\" && \"type\" in m\n && m.type === \"response\");\n}\n\nexport function isProjectLoadingStart(\n m: unknown,\n): m is s.protocol.ProjectLoadingStartEvent {\n return isEvent(m) && m.event === \"projectLoadingStart\";\n}\nexport function isProjectLoadingEnd(\n m: unknown,\n): m is s.protocol.ProjectLoadingStartEvent {\n return isEvent(m) && m.event === \"projectLoadingFinish\";\n}\nexport function isQuickInfoResponse(\n m: unknown,\n requestSeq?: number,\n): m is s.protocol.QuickInfoResponse {\n return isResponse(m)\n && m.command === s.protocol.CommandTypes.Quickinfo as string\n && (requestSeq == null || m.request_seq === requestSeq);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"tsserver.js","names":["execaNode","findUpMultiple","EventEmitter","fs","path","pLocate","pMap","invariant","server","s","TsServerImpl","tsServerPath","nextSeq","subprocess","logger","constructor","start","ipc","serialization","isLevelEnabled","on","req","trace","info","emit","stop","connected","disconnect","getOneMessage","filter","requestFactory","#requestFactory","command","isResponse","args","makeRequest","sendOpenRequest","protocol","CommandTypes","Open","sendQuickInfoRequest","Quickinfo","isQuickInfoResponse","#makeRequest","seq","type","arguments","sendMessage","resp","undefined","startTsServer","getTsServerPath","process","env","NODE_ENV","nodeModuleDirs","cwd","import","meta","url","possibleTsServerPaths","dir","join","c","stat","isFile","e","isEvent","m","isProjectLoadingStart","event","isProjectLoadingEnd","requestSeq","request_seq"],"sources":["tsserver.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 { Logger } from \"@osdk/api\";\nimport type { Subprocess } from \"execa\";\nimport { execaNode } from \"execa\";\nimport { findUpMultiple } from \"find-up\";\nimport { EventEmitter } from \"node:events\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport pLocate from \"p-locate\";\nimport pMap from \"p-map\";\nimport invariant from \"tiny-invariant\";\nimport { server as s } from \"typescript\";\n\ntype RequestFn<\n T extends s.protocol.Request,\n X extends s.protocol.Response = never,\n> = (\n args: T[\"arguments\"],\n) => Promise<{ req: T; resp: X }>;\n\nclass TsServerImpl extends EventEmitter<{\n exit: [];\n}> {\n #tsServerPath: string;\n #nextSeq = 1;\n #subprocess: Subprocess<{ ipc: true; serialization: \"json\" }> | undefined;\n #logger: Logger;\n\n constructor(tsServerPath: string, logger: Logger) {\n super();\n this.#tsServerPath = tsServerPath;\n this.#logger = logger;\n }\n\n get subprocess():\n | Subprocess<{\n ipc: true;\n serialization: \"json\";\n }>\n | undefined\n {\n return this.#subprocess;\n }\n\n async start(): Promise<this> {\n this.#subprocess = execaNode({\n ipc: true,\n serialization: \"json\",\n })`${this.#tsServerPath} --useNodeIpc`;\n\n if (this.#logger.isLevelEnabled(\"trace\")) {\n this.#subprocess.on(\"message\", (req) => {\n this.#logger.trace({ req }, \"message received\");\n });\n }\n\n this.#subprocess.on(\"exit\", () => {\n this.#logger.info(\"tsserver exited\");\n this.emit(\"exit\");\n });\n return this;\n }\n\n stop(): void {\n if (this.#subprocess?.connected) {\n this.#subprocess?.disconnect();\n }\n }\n\n async getOneMessage<X>(filter?: (m: unknown) => m is X): Promise<X> {\n return await this.subprocess!.getOneMessage({ filter }) as X;\n }\n\n #requestFactory =\n <T extends s.protocol.Request, X extends s.protocol.Response = never>(\n command: T[\"command\"],\n isResponse?: (m: unknown) => m is X,\n ): RequestFn<T, X> =>\n async (args: T[\"arguments\"]): Promise<{ req: T; resp: X }> => {\n return await this.#makeRequest<T, X>(command, args, isResponse);\n };\n\n sendOpenRequest: RequestFn<s.protocol.OpenRequest> = this.#requestFactory(\n s.protocol.CommandTypes.Open,\n );\n\n sendQuickInfoRequest: RequestFn<\n s.protocol.QuickInfoRequest,\n s.protocol.QuickInfoResponse\n > = this.#requestFactory(\n s.protocol.CommandTypes.Quickinfo,\n isQuickInfoResponse,\n );\n\n async #makeRequest<\n T extends s.protocol.Request,\n X extends s.protocol.Response = never,\n >(\n command: T[\"command\"],\n args: T[\"arguments\"],\n isResponse?: (m: unknown) => m is X,\n ): Promise<{ req: T; resp: X }> {\n const seq = this.#nextSeq++;\n const req: T = {\n type: \"request\",\n command,\n arguments: args,\n seq,\n } as T;\n this.#logger.trace({ req }, \"requesting\");\n\n await this.#subprocess?.sendMessage(req as any);\n\n if (isResponse) {\n return {\n req,\n resp: await this.#subprocess?.getOneMessage({\n filter: isResponse,\n }) as unknown as X,\n };\n }\n return { req, resp: undefined as unknown as X };\n }\n}\n\nexport type TsServer = Omit<\n TsServerImpl,\n Exclude<\n keyof EventEmitter,\n | \"on\"\n | \"addListener\"\n | \"off\"\n | \"once\"\n | \"removeListener\"\n | \"removeAllListeners\"\n >\n>;\n\nexport async function startTsServer(logger: Logger): Promise<TsServer> {\n const tsServerPath = await getTsServerPath();\n invariant(tsServerPath != null);\n\n return new TsServerImpl(tsServerPath, logger).start();\n}\n\nasync function getTsServerPath() {\n const nodeModuleDirs = await findUpMultiple(\"node_modules\", {\n cwd: import.meta.url,\n type: \"directory\",\n });\n const possibleTsServerPaths = await pMap(\n nodeModuleDirs,\n (dir) => path.join(dir, \"typescript\", \"lib\", \"tsserver.js\"),\n );\n\n const tsServerPath = await pLocate(\n [\"no\", ...possibleTsServerPaths],\n async (dir) => {\n try {\n const c = await fs.stat(\n dir,\n );\n return c.isFile();\n } catch (e) {\n return false;\n }\n },\n );\n return tsServerPath;\n}\n\nexport function isEvent(m: unknown): m is s.protocol.Event {\n return !!(m && typeof m === \"object\" && \"type\" in m\n && m.type === \"event\");\n}\n\nexport function isResponse(m: unknown): m is s.protocol.Response {\n return !!(m && typeof m === \"object\" && \"type\" in m\n && m.type === \"response\");\n}\n\nexport function isProjectLoadingStart(\n m: unknown,\n): m is s.protocol.ProjectLoadingStartEvent {\n return isEvent(m) && m.event === \"projectLoadingStart\";\n}\nexport function isProjectLoadingEnd(\n m: unknown,\n): m is s.protocol.ProjectLoadingStartEvent {\n return isEvent(m) && m.event === \"projectLoadingFinish\";\n}\nexport function isQuickInfoResponse(\n m: unknown,\n requestSeq?: number,\n): m is s.protocol.QuickInfoResponse {\n return isResponse(m)\n && m.command === s.protocol.CommandTypes.Quickinfo as string\n && (requestSeq == null || m.request_seq === requestSeq);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export function isPoint(o) {
|
|
18
|
+
return o && typeof o === "object" && "type" in o && o.type === "Point" && "coordinates" in o && o.coordinates.length === 2;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=isPoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPoint.js","names":["isPoint","o","type","coordinates","length"],"sources":["isPoint.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\nexport function isPoint(o: any): o is GeoJSON.Point {\n return o && typeof o === \"object\" && \"type\" in o && o.type === \"Point\"\n && \"coordinates\" in o && o.coordinates.length === 2;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASA,OAAOA,CAACC,CAAM,EAAsB;EAClD,OAAOA,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAIA,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAK,OAAO,IACjE,aAAa,IAAID,CAAC,IAAIA,CAAC,CAACE,WAAW,CAACC,MAAM,KAAK,CAAC;AACvD","ignoreList":[]}
|
|
@@ -21,6 +21,7 @@ import { getWireObjectSet, isObjectSet } from "../objectSet/createObjectSet.js";
|
|
|
21
21
|
import { isInterfaceActionParam } from "./interfaceUtils.js";
|
|
22
22
|
import { isOntologyObjectV2 } from "./isOntologyObjectV2.js";
|
|
23
23
|
import { isOsdkBaseObject } from "./isOsdkObject.js";
|
|
24
|
+
import { isPoint } from "./isPoint.js";
|
|
24
25
|
import { isWireObjectSet } from "./WireObjectSet.js";
|
|
25
26
|
|
|
26
27
|
/**
|
|
@@ -70,6 +71,9 @@ export async function toDataValue(value, client) {
|
|
|
70
71
|
if (isOsdkBaseObject(value)) {
|
|
71
72
|
return await toDataValue(value.$primaryKey, client);
|
|
72
73
|
}
|
|
74
|
+
if (isPoint(value)) {
|
|
75
|
+
return await toDataValue(value.coordinates.join(), client);
|
|
76
|
+
}
|
|
73
77
|
|
|
74
78
|
// object set (the rid as a string (passes through the last return), or the ObjectSet definition directly)
|
|
75
79
|
if (isWireObjectSet(value)) {
|
|
@@ -1 +1 @@
|
|
|
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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAO,KAAKA,YAAY,MAAM,0BAA0B;AAExD,SACEC,gBAAgB,EAChBC,kBAAkB,QACb,+BAA+B;AACtC,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,iCAAiC;AAC/E,SAASC,sBAAsB,QAAQ,qBAAqB;AAC5D,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,gBAAgB,QAAQ,mBAAmB;AACpD,SAASC,eAAe,QAAQ,oBAAoB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAC/BC,KAAc,EACdC,MAAqB,EACD;EACpB,IAAID,KAAK,IAAI,IAAI,EAAE;IACjB;IACA,OAAOA,KAAK;EACd;;EAEA;EACA,IAAIE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,IAAIA,KAAK,YAAYI,GAAG,EAAE;IAChD,MAAMC,MAAM,GAAGH,KAAK,CAACI,IAAI,CAACN,KAAK,CAAC;IAChC,IACEK,MAAM,CAACE,IAAI,CAAEC,SAAS,
|
|
1
|
+
{"version":3,"file":"toDataValue.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","isMediaReference","getWireObjectSet","isObjectSet","isInterfaceActionParam","isOntologyObjectV2","isOsdkBaseObject","isPoint","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","coordinates","join","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 { isPoint } from \"./isPoint.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 if (isPoint(value)) {\n return await toDataValue(value.coordinates.join(), 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":[]}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk37QC7LR3_cjs = require('./chunk-37QC7LR3.cjs');
|
|
4
4
|
var shared_net_errors = require('@osdk/shared.net.errors');
|
|
5
|
-
var
|
|
5
|
+
var invariant3 = require('tiny-invariant');
|
|
6
6
|
var api = require('@osdk/api');
|
|
7
7
|
var WebSocket = require('isomorphic-ws');
|
|
8
8
|
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var invariant3__default = /*#__PURE__*/_interopDefault(invariant3);
|
|
12
12
|
var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
|
|
13
13
|
|
|
14
14
|
// src/public-utils/hydrateAttachmentFromRid.ts
|
|
15
15
|
function hydrateAttachmentFromRid(client, rid) {
|
|
16
|
-
return hydrateAttachmentFromRidInternal(client[
|
|
16
|
+
return hydrateAttachmentFromRidInternal(client[chunk37QC7LR3_cjs.additionalContext], rid);
|
|
17
17
|
}
|
|
18
18
|
function hydrateAttachmentFromRidInternal(client, rid) {
|
|
19
19
|
return {
|
|
20
20
|
rid,
|
|
21
21
|
async fetchContents() {
|
|
22
|
-
return
|
|
22
|
+
return chunk37QC7LR3_cjs.Attachment_exports.read(client, rid);
|
|
23
23
|
},
|
|
24
24
|
async fetchMetadata() {
|
|
25
|
-
const r = await
|
|
25
|
+
const r = await chunk37QC7LR3_cjs.Attachment_exports.get(client, rid);
|
|
26
26
|
return {
|
|
27
27
|
...r,
|
|
28
28
|
sizeBytes: Number(r.sizeBytes)
|
|
@@ -98,7 +98,7 @@ var MinimalLogger = class _MinimalLogger extends BaseLogger {
|
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
async function fetchSingle(client, objectType, args, objectSet) {
|
|
101
|
-
const result = await
|
|
101
|
+
const result = await chunk37QC7LR3_cjs.fetchPage(client, objectType, {
|
|
102
102
|
...args,
|
|
103
103
|
$pageSize: 1
|
|
104
104
|
}, objectSet);
|
|
@@ -193,7 +193,7 @@ function makeGeoFilterPolygon(coordinates, filterType, propertyIdentifier, field
|
|
|
193
193
|
};
|
|
194
194
|
}
|
|
195
195
|
function handleWherePair([fieldName, filter], objectOrInterface, structFieldSelector) {
|
|
196
|
-
!(filter != null) ? process.env.NODE_ENV !== "production" ?
|
|
196
|
+
!(filter != null) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Defined key values are only allowed when they are not undefined.") : invariant3__default.default(false) : undefined;
|
|
197
197
|
const propertyIdentifier = structFieldSelector != null ? {
|
|
198
198
|
type: "structField",
|
|
199
199
|
...structFieldSelector,
|
|
@@ -212,10 +212,10 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
|
|
|
212
212
|
}
|
|
213
213
|
const keysOfFilter = Object.keys(filter);
|
|
214
214
|
const hasDollarSign = keysOfFilter.some((key) => key.startsWith("$"));
|
|
215
|
-
!(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
215
|
+
!(!hasDollarSign || keysOfFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "A WhereClause Filter with multiple clauses/fields is not allowed. Instead, use an 'or'/'and' clause to combine multiple filters.") : invariant3__default.default(false) : undefined;
|
|
216
216
|
if (!hasDollarSign) {
|
|
217
217
|
const structFilter = Object.entries(filter);
|
|
218
|
-
!(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
218
|
+
!(structFilter.length === 1) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Cannot filter on more than one struct field in the same clause, need to use an and clause") : invariant3__default.default(false) : undefined;
|
|
219
219
|
const structFieldApiName = keysOfFilter[0];
|
|
220
220
|
return handleWherePair(Object.entries(filter)[0], objectOrInterface, {
|
|
221
221
|
propertyApiName: fieldName,
|
|
@@ -223,7 +223,7 @@ function handleWherePair([fieldName, filter], objectOrInterface, structFieldSele
|
|
|
223
223
|
});
|
|
224
224
|
}
|
|
225
225
|
const firstKey = keysOfFilter[0];
|
|
226
|
-
!(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ?
|
|
226
|
+
!(filter[firstKey] != null) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false) : invariant3__default.default(false) : undefined;
|
|
227
227
|
if (firstKey === "$ne") {
|
|
228
228
|
return {
|
|
229
229
|
type: "not",
|
|
@@ -305,10 +305,84 @@ function fullyQualifyPropName(fieldName, objectOrInterface) {
|
|
|
305
305
|
}
|
|
306
306
|
return fieldName;
|
|
307
307
|
}
|
|
308
|
+
function derivedPropertyDefinitionFactory(wireDefinition, definitionMap) {
|
|
309
|
+
const definition = {
|
|
310
|
+
abs() {
|
|
311
|
+
return derivedPropertyDefinitionFactory({
|
|
312
|
+
type: "absoluteValue",
|
|
313
|
+
property: wireDefinition
|
|
314
|
+
}, definitionMap);
|
|
315
|
+
},
|
|
316
|
+
negate() {
|
|
317
|
+
return derivedPropertyDefinitionFactory({
|
|
318
|
+
type: "negate",
|
|
319
|
+
property: wireDefinition
|
|
320
|
+
}, definitionMap);
|
|
321
|
+
},
|
|
322
|
+
max(value) {
|
|
323
|
+
return derivedPropertyDefinitionFactory({
|
|
324
|
+
type: "greatest",
|
|
325
|
+
properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
|
|
326
|
+
}, definitionMap);
|
|
327
|
+
},
|
|
328
|
+
min(value) {
|
|
329
|
+
return derivedPropertyDefinitionFactory({
|
|
330
|
+
type: "least",
|
|
331
|
+
properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
|
|
332
|
+
}, definitionMap);
|
|
333
|
+
},
|
|
334
|
+
add(value) {
|
|
335
|
+
return derivedPropertyDefinitionFactory({
|
|
336
|
+
type: "add",
|
|
337
|
+
properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
|
|
338
|
+
}, definitionMap);
|
|
339
|
+
},
|
|
340
|
+
subtract(value) {
|
|
341
|
+
return derivedPropertyDefinitionFactory({
|
|
342
|
+
"type": "subtract",
|
|
343
|
+
"left": wireDefinition,
|
|
344
|
+
"right": getDefinitionFromMap(value, definitionMap)
|
|
345
|
+
}, definitionMap);
|
|
346
|
+
},
|
|
347
|
+
multiply(value) {
|
|
348
|
+
return derivedPropertyDefinitionFactory({
|
|
349
|
+
type: "multiply",
|
|
350
|
+
properties: [wireDefinition, getDefinitionFromMap(value, definitionMap)]
|
|
351
|
+
}, definitionMap);
|
|
352
|
+
},
|
|
353
|
+
divide(value) {
|
|
354
|
+
return derivedPropertyDefinitionFactory({
|
|
355
|
+
"type": "subtract",
|
|
356
|
+
"left": wireDefinition,
|
|
357
|
+
"right": getDefinitionFromMap(value, definitionMap)
|
|
358
|
+
}, definitionMap);
|
|
359
|
+
},
|
|
360
|
+
extractPart: (part) => {
|
|
361
|
+
return derivedPropertyDefinitionFactory({
|
|
362
|
+
type: "extract",
|
|
363
|
+
part,
|
|
364
|
+
property: wireDefinition
|
|
365
|
+
}, definitionMap);
|
|
366
|
+
},
|
|
367
|
+
type: {}
|
|
368
|
+
};
|
|
369
|
+
definitionMap.set(definition, wireDefinition);
|
|
370
|
+
return definition;
|
|
371
|
+
}
|
|
372
|
+
var getDefinitionFromMap = (arg, definitionMap) => {
|
|
373
|
+
if (typeof arg === "object") {
|
|
374
|
+
const definition = definitionMap.get(arg);
|
|
375
|
+
!definition ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Derived Property is not defined") : invariant3__default.default(false) : undefined;
|
|
376
|
+
return definition;
|
|
377
|
+
} else if (typeof arg === "number") {
|
|
378
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Literals for derived properties are not yet supported") : invariant3__default.default(false) ;
|
|
379
|
+
}
|
|
380
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Invalid argument type for a derived property") : invariant3__default.default(false) ;
|
|
381
|
+
};
|
|
308
382
|
|
|
309
383
|
// src/derivedProperties/createWithPropertiesObjectSet.ts
|
|
310
|
-
function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {
|
|
311
|
-
|
|
384
|
+
function createWithPropertiesObjectSet(objectType, objectSet, definitionMap, fromBaseObjectSet = false) {
|
|
385
|
+
return {
|
|
312
386
|
pivotTo: (link) => {
|
|
313
387
|
return createWithPropertiesObjectSet(objectType, {
|
|
314
388
|
type: "searchAround",
|
|
@@ -325,7 +399,7 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {
|
|
|
325
399
|
},
|
|
326
400
|
aggregate: (aggregation, opt) => {
|
|
327
401
|
const splitAggregation = aggregation.split(":");
|
|
328
|
-
!(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ?
|
|
402
|
+
!(splitAggregation.length === 2 || splitAggregation[0] === "$count") ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Invalid aggregation format") : invariant3__default.default(false) : undefined;
|
|
329
403
|
const [aggregationPropertyName, aggregationOperation] = splitAggregation;
|
|
330
404
|
let aggregationOperationDefinition;
|
|
331
405
|
switch (aggregationOperation) {
|
|
@@ -363,34 +437,57 @@ function createWithPropertiesObjectSet(objectType, objectSet, definitionMap) {
|
|
|
363
437
|
break;
|
|
364
438
|
}
|
|
365
439
|
default:
|
|
366
|
-
process.env.NODE_ENV !== "production" ?
|
|
440
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Invalid aggregation operation " + aggregationOperation) : invariant3__default.default(false) ;
|
|
367
441
|
}
|
|
368
|
-
const
|
|
369
|
-
type: {}
|
|
370
|
-
};
|
|
371
|
-
definitionMap.set(selectorResult, {
|
|
442
|
+
const wrappedObjectSet = {
|
|
372
443
|
type: "selection",
|
|
373
444
|
objectSet,
|
|
374
445
|
operation: aggregationOperationDefinition
|
|
375
|
-
}
|
|
446
|
+
};
|
|
447
|
+
const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);
|
|
448
|
+
definitionMap.set(selectorResult, wrappedObjectSet);
|
|
376
449
|
return selectorResult;
|
|
377
450
|
},
|
|
378
451
|
selectProperty: (name) => {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
452
|
+
if (fromBaseObjectSet) {
|
|
453
|
+
const wrappedObjectSet2 = {
|
|
454
|
+
type: "property",
|
|
455
|
+
apiName: name
|
|
456
|
+
};
|
|
457
|
+
const selectorResult2 = derivedPropertyDefinitionFactory(wrappedObjectSet2, definitionMap);
|
|
458
|
+
definitionMap.set(selectorResult2, wrappedObjectSet2);
|
|
459
|
+
return selectorResult2;
|
|
460
|
+
}
|
|
461
|
+
const wrappedObjectSet = {
|
|
383
462
|
type: "selection",
|
|
384
463
|
objectSet,
|
|
385
464
|
operation: {
|
|
386
465
|
type: "get",
|
|
387
466
|
selectedPropertyApiName: name
|
|
388
467
|
}
|
|
389
|
-
}
|
|
468
|
+
};
|
|
469
|
+
const selectorResult = derivedPropertyDefinitionFactory(wrappedObjectSet, definitionMap);
|
|
470
|
+
definitionMap.set(selectorResult, wrappedObjectSet);
|
|
390
471
|
return selectorResult;
|
|
472
|
+
},
|
|
473
|
+
constant: {
|
|
474
|
+
double: (value) => {
|
|
475
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
|
|
476
|
+
},
|
|
477
|
+
integer: (value) => {
|
|
478
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
|
|
479
|
+
},
|
|
480
|
+
long: (value) => {
|
|
481
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
|
|
482
|
+
},
|
|
483
|
+
datetime: (value) => {
|
|
484
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
|
|
485
|
+
},
|
|
486
|
+
timestamp: (value) => {
|
|
487
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Not supported") : invariant3__default.default(false) ;
|
|
488
|
+
}
|
|
391
489
|
}
|
|
392
490
|
};
|
|
393
|
-
return base;
|
|
394
491
|
}
|
|
395
492
|
function legacyToModernSingleAggregationResult(entry) {
|
|
396
493
|
return entry.metrics.reduce((accumulator, curValue) => {
|
|
@@ -398,7 +495,7 @@ function legacyToModernSingleAggregationResult(entry) {
|
|
|
398
495
|
if (parts[0] === "count") {
|
|
399
496
|
return accumulator;
|
|
400
497
|
}
|
|
401
|
-
!(parts.length === 2) ? process.env.NODE_ENV !== "production" ?
|
|
498
|
+
!(parts.length === 2) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "assumed we were getting a `${key}.${type}`") : invariant3__default.default(false) : undefined;
|
|
402
499
|
const property = parts[0];
|
|
403
500
|
const metricType = parts[1];
|
|
404
501
|
if (!(property in accumulator)) {
|
|
@@ -484,8 +581,8 @@ function convertRange(range) {
|
|
|
484
581
|
}
|
|
485
582
|
|
|
486
583
|
// src/object/aggregate.ts
|
|
487
|
-
async function aggregate(clientCtx, objectType, objectSet =
|
|
488
|
-
|
|
584
|
+
async function aggregate(clientCtx, objectType, objectSet = chunk37QC7LR3_cjs.resolveBaseObjectSetType(objectType), req) {
|
|
585
|
+
chunk37QC7LR3_cjs.resolveBaseObjectSetType(objectType);
|
|
489
586
|
const body = {
|
|
490
587
|
aggregation: modernToLegacyAggregationClause(req.$select),
|
|
491
588
|
groupBy: [],
|
|
@@ -494,13 +591,13 @@ async function aggregate(clientCtx, objectType, objectSet = chunkKAJABLKV_cjs.re
|
|
|
494
591
|
if (req.$groupBy) {
|
|
495
592
|
body.groupBy = modernToLegacyGroupByClause(req.$groupBy);
|
|
496
593
|
}
|
|
497
|
-
const result = await
|
|
594
|
+
const result = await chunk37QC7LR3_cjs.OntologyObjectSet_exports.aggregate(chunk37QC7LR3_cjs.addUserAgentAndRequestContextHeaders(clientCtx, objectType), await clientCtx.ontologyRid, {
|
|
498
595
|
objectSet,
|
|
499
596
|
groupBy: body.groupBy,
|
|
500
597
|
aggregation: body.aggregation
|
|
501
598
|
});
|
|
502
599
|
if (!req.$groupBy) {
|
|
503
|
-
!(result.data.length === 1) ? process.env.NODE_ENV !== "production" ?
|
|
600
|
+
!(result.data.length === 1) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "no group by clause should mean only one data result") : invariant3__default.default(false) : undefined;
|
|
504
601
|
return {
|
|
505
602
|
...aggregationToCountResult(result.data[0]),
|
|
506
603
|
...legacyToModernSingleAggregationResult(result.data[0])
|
|
@@ -596,7 +693,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
596
693
|
this.#logger = client.logger?.child({}, {
|
|
597
694
|
msgPrefix: "<OSW> "
|
|
598
695
|
});
|
|
599
|
-
!(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ?
|
|
696
|
+
!(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Stack must be a URL") : invariant3__default.default(false) : undefined;
|
|
600
697
|
}
|
|
601
698
|
async subscribe(objectType, objectSet, listener, properties = []) {
|
|
602
699
|
const objOrInterfaceDef = objectType.type === "object" ? await this.#client.ontologyProvider.getObjectDefinition(objectType.apiName) : await this.#client.ontologyProvider.getInterfaceDefinition(objectType.apiName);
|
|
@@ -778,7 +875,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
778
875
|
return;
|
|
779
876
|
}
|
|
780
877
|
default:
|
|
781
|
-
process.env.NODE_ENV !== "production" ?
|
|
878
|
+
process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "Unexpected message type") : invariant3__default.default(false) ;
|
|
782
879
|
}
|
|
783
880
|
};
|
|
784
881
|
#handleMessage_objectSetChanged = async (payload) => {
|
|
@@ -843,7 +940,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
843
940
|
}
|
|
844
941
|
#handleMessage_refreshObjectSet = (payload) => {
|
|
845
942
|
const sub = this.#subscriptions.get(payload.id);
|
|
846
|
-
!sub ? process.env.NODE_ENV !== "production" ?
|
|
943
|
+
!sub ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, `Expected subscription id ${payload.id}`) : invariant3__default.default(false) : undefined;
|
|
847
944
|
try {
|
|
848
945
|
sub.listener.onOutOfDate();
|
|
849
946
|
} catch (error) {
|
|
@@ -857,7 +954,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
857
954
|
responses
|
|
858
955
|
} = payload;
|
|
859
956
|
const subs = this.#pendingSubscriptions.get(id);
|
|
860
|
-
!subs ? process.env.NODE_ENV !== "production" ?
|
|
957
|
+
!subs ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, `should have a pending subscription for ${id}`) : invariant3__default.default(false) : undefined;
|
|
861
958
|
this.#pendingSubscriptions.delete(id);
|
|
862
959
|
for (let i = 0; i < responses.length; i++) {
|
|
863
960
|
const sub = subs[i];
|
|
@@ -899,7 +996,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
899
996
|
#handleMessage_subscriptionClosed(payload) {
|
|
900
997
|
const sub = this.#subscriptions.get(payload.id);
|
|
901
998
|
if (sub == null && this.#endedSubscriptions.has(payload.id)) return;
|
|
902
|
-
!sub ? process.env.NODE_ENV !== "production" ?
|
|
999
|
+
!sub ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, `Expected subscription id ${payload.id}`) : invariant3__default.default(false) : undefined;
|
|
903
1000
|
this.#tryCatchOnError(sub, true, payload.cause);
|
|
904
1001
|
this.#unsubscribe(sub, "error");
|
|
905
1002
|
}
|
|
@@ -924,7 +1021,7 @@ var ObjectSetListenerWebsocket = class _ObjectSetListenerWebsocket {
|
|
|
924
1021
|
if (this.#subscriptions.size > 0) {
|
|
925
1022
|
if (process.env.NODE_ENV !== "production") {
|
|
926
1023
|
for (const s of this.#subscriptions.values()) {
|
|
927
|
-
!(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ?
|
|
1024
|
+
!(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant3__default.default(false, "should not have done/error subscriptions still") : invariant3__default.default(false) : undefined;
|
|
928
1025
|
}
|
|
929
1026
|
}
|
|
930
1027
|
for (const s of this.#subscriptions.values()) {
|
|
@@ -973,15 +1070,15 @@ function getWireObjectSet(objectSet) {
|
|
|
973
1070
|
return objectSetDefinitions.get(objectSet);
|
|
974
1071
|
}
|
|
975
1072
|
var objectSetDefinitions = /* @__PURE__ */ new WeakMap();
|
|
976
|
-
function createObjectSet(objectType, clientCtx, objectSet =
|
|
1073
|
+
function createObjectSet(objectType, clientCtx, objectSet = chunk37QC7LR3_cjs.resolveBaseObjectSetType(objectType)) {
|
|
977
1074
|
const base = {
|
|
978
1075
|
aggregate: aggregate.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
|
|
979
1076
|
finalMethodCall: "aggregate"
|
|
980
1077
|
})), objectType, objectSet),
|
|
981
|
-
fetchPage:
|
|
1078
|
+
fetchPage: chunk37QC7LR3_cjs.fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
|
|
982
1079
|
finalMethodCall: "fetchPage"
|
|
983
1080
|
})), objectType, objectSet),
|
|
984
|
-
fetchPageWithErrors:
|
|
1081
|
+
fetchPageWithErrors: chunk37QC7LR3_cjs.fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, (_) => ({
|
|
985
1082
|
finalMethodCall: "fetchPageWithErrors"
|
|
986
1083
|
})), objectType, objectSet),
|
|
987
1084
|
where: (clause) => {
|
|
@@ -1015,7 +1112,7 @@ function createObjectSet(objectType, clientCtx, objectSet = chunkKAJABLKV_cjs.re
|
|
|
1015
1112
|
asyncIter: async function* (args) {
|
|
1016
1113
|
let $nextPageToken = undefined;
|
|
1017
1114
|
do {
|
|
1018
|
-
const result = await
|
|
1115
|
+
const result = await chunk37QC7LR3_cjs.fetchPageInternal(augmentRequestContext(clientCtx, (_) => ({
|
|
1019
1116
|
finalMethodCall: "asyncIter"
|
|
1020
1117
|
})), objectType, objectSet, {
|
|
1021
1118
|
...args,
|
|
@@ -1050,7 +1147,7 @@ function createObjectSet(objectType, clientCtx, objectSet = chunkKAJABLKV_cjs.re
|
|
|
1050
1147
|
for (const key of Object.keys(clause)) {
|
|
1051
1148
|
const derivedPropertyDefinition = clause[key](createWithPropertiesObjectSet(objectType, {
|
|
1052
1149
|
type: "methodInput"
|
|
1053
|
-
}, definitionMap));
|
|
1150
|
+
}, definitionMap, true));
|
|
1054
1151
|
derivedProperties[key] = definitionMap.get(derivedPropertyDefinition);
|
|
1055
1152
|
}
|
|
1056
1153
|
return clientCtx.objectSetFactory(objectType, clientCtx, {
|
|
@@ -1101,5 +1198,5 @@ exports.hydrateAttachmentFromRid = hydrateAttachmentFromRid;
|
|
|
1101
1198
|
exports.hydrateAttachmentFromRidInternal = hydrateAttachmentFromRidInternal;
|
|
1102
1199
|
exports.isObjectSet = isObjectSet;
|
|
1103
1200
|
exports.isWireObjectSet = isWireObjectSet;
|
|
1104
|
-
//# sourceMappingURL=chunk-
|
|
1105
|
-
//# sourceMappingURL=chunk-
|
|
1201
|
+
//# sourceMappingURL=chunk-33GHS3X4.cjs.map
|
|
1202
|
+
//# sourceMappingURL=chunk-33GHS3X4.cjs.map
|