@osdk/client 2.2.0-beta.22 → 2.2.0-beta.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +190 -0
  2. package/build/browser/queries/applyQuery.js.map +1 -1
  3. package/build/browser/queries/queries.test.js +57 -18
  4. package/build/browser/queries/queries.test.js.map +1 -1
  5. package/build/browser/util/UserAgent.js +1 -1
  6. package/build/browser/util/{isOsdkBaseObject.js → isObjectSpecifiersObject.js} +2 -2
  7. package/build/browser/util/isObjectSpecifiersObject.js.map +1 -0
  8. package/build/browser/util/toDataValue.js +2 -2
  9. package/build/browser/util/toDataValue.js.map +1 -1
  10. package/build/browser/util/toDataValueQueries.js +2 -2
  11. package/build/browser/util/toDataValueQueries.js.map +1 -1
  12. package/build/cjs/index.cjs +8 -13
  13. package/build/cjs/index.cjs.map +1 -1
  14. package/build/esm/queries/applyQuery.js.map +1 -1
  15. package/build/esm/queries/queries.test.js +57 -18
  16. package/build/esm/queries/queries.test.js.map +1 -1
  17. package/build/esm/util/UserAgent.js +1 -1
  18. package/build/esm/util/{isOsdkBaseObject.js → isObjectSpecifiersObject.js} +2 -2
  19. package/build/esm/util/isObjectSpecifiersObject.js.map +1 -0
  20. package/build/esm/util/toDataValue.js +2 -2
  21. package/build/esm/util/toDataValue.js.map +1 -1
  22. package/build/esm/util/toDataValueQueries.js +2 -2
  23. package/build/esm/util/toDataValueQueries.js.map +1 -1
  24. package/build/types/queries/applyQuery.d.ts +2 -4
  25. package/build/types/queries/applyQuery.d.ts.map +1 -1
  26. package/build/types/util/isObjectSpecifiersObject.d.ts +5 -0
  27. package/build/types/util/isObjectSpecifiersObject.d.ts.map +1 -0
  28. package/package.json +9 -9
  29. package/build/browser/util/isOsdkBaseObject.js.map +0 -1
  30. package/build/browser/util/isOsdkObject.js +0 -20
  31. package/build/browser/util/isOsdkObject.js.map +0 -1
  32. package/build/esm/util/isOsdkBaseObject.js.map +0 -1
  33. package/build/esm/util/isOsdkObject.js +0 -20
  34. package/build/esm/util/isOsdkObject.js.map +0 -1
  35. package/build/types/util/isOsdkBaseObject.d.ts +0 -2
  36. package/build/types/util/isOsdkBaseObject.d.ts.map +0 -1
  37. package/build/types/util/isOsdkObject.d.ts +0 -2
  38. package/build/types/util/isOsdkObject.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @osdk/client
2
2
 
3
+ ## 2.2.0-beta.23
4
+
5
+ ### Minor Changes
6
+
7
+ - 4183a55: Refactor OsdkBase to avoid breaks with type not being discoverable
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [4183a55]
12
+ - @osdk/api@2.2.0-beta.23
13
+ - @osdk/generator-converters@2.2.0-beta.23
14
+ - @osdk/client.unstable@2.2.0-beta.23
15
+
3
16
  ## 2.2.0-beta.22
4
17
 
5
18
  ### Minor Changes
@@ -308,6 +321,183 @@
308
321
  - @osdk/generator-converters@2.2.0-beta.2
309
322
  - @osdk/client.unstable@2.2.0-beta.2
310
323
 
324
+ ## 2.1.0
325
+
326
+ ### Minor Changes
327
+
328
+ - 966d408: Rename type for base action parameter types.
329
+ - b773513: Fix onOutOfDate handler from being fired twice
330
+ - cddc196: Try-catches handlers called during subscription
331
+ - d794c19: Adding support for struct action params.
332
+ - 05febf4: Adds Reference Update support in subscribe
333
+ - 55c05f2: Remove runtime derived properties from external types.
334
+ - a06ec35: Fixes the lastFetchedValue on a Geotime Series property from reference updates
335
+ - 0dc40b0: Switch to OSDK.Instance
336
+ - 3703d81: Changed shared context to a version less error prone
337
+ - 6f50516: Fix bug where object return types in a query were not properly mapped when wrapped in a struct.
338
+ - 25fd9f0: Updating package.json to have better entry points to support react native bundlers.
339
+ - 11a05cc: Updated subscribe api to make requesting properties optional
340
+ - 7865cb6: Add support for search on struct properties.
341
+ - e6fbd94: Export Attachment from client
342
+ - 9c4efe6: Support uploading media parameters through actions
343
+ - 0a7c747: Add support for timeseries sensors.
344
+ - 3ea2e79: Creates new export for internal helper functions
345
+ - 1812118: Add geotime support for OSDK.
346
+ - d927a1d: Throws error in createClient when passed an invalid ontology RID
347
+ - bc1761c: Update platform API dependencies.
348
+ - 656f975: Fixes attachment upload inputs sending incorrect in browser contexts
349
+ - f1145ff: Adds support for runtime derived properties
350
+ - 1c59d93: Allows interfaces to be used with subscribe
351
+ - f446d0c: Exposes $clone from OSDK Object instances
352
+ - c80ca45: Add ability to create interfaces through actions now.
353
+ - bb8b219: Use new external packages instead of the internal ones.
354
+ - 44e62f6: Updating fetch for auth and other packages.
355
+ - 03f95eb: Add support for interface params in actions.
356
+ - 91cfa3a: Fixing url parsing for client.
357
+ - 94463b6: Support objects as code
358
+ - 14624f7: Supports custom formatters in browser
359
+ - 1a89f23: Removing support for augmenting interfaces when fetching them.
360
+ - 9d35a1f: Remove unused imports
361
+ - c691c8b: Package now has experimental support for commonjs
362
+ - 749cf69: Remove experimental non null for now.
363
+ - f03e39f: Add a namespace type for listeners.
364
+ - d464009: improves interface api name mapping with api namespaces
365
+ - 11088aa: Fix where clause types so we don't accept more than one key in the clauses.
366
+ - 720218d: OSDK Client no longer uses javascript proxies for its objects. This results in a 13% increase in construction time but at 1kb per object reduction in memory
367
+ - 9298f75: Using new interface APIs for backend.
368
+ - eb27b54: Fix URL for experimental method
369
+ - 7a95618: Generate new OMS APIs
370
+ - f34b3d4: Add ability to fetch by rid, experimentally.
371
+ - d88fdb9: Adds methods to extract date strings from Dates and ISO-8601 strings
372
+ - 8eb2378: Fixes where clauses when objects have an api namespace
373
+ - acbfab9: Fixes where clauses for interfaces with no properties.
374
+ - c9da74c: Improves code quality by fixing linting errors
375
+ - 27f0f77: Interface instances are immutable just like object instances
376
+ - 015279b: Fix use of new interfaces api with preview flag.
377
+ - 62c1d63: Add support for reading media reference property in OSDK.
378
+ - 3c9ac22: Cleaning up where clause types.
379
+ - 91cfa3a: Fixing URL parsing for custom entry points.
380
+ - e86e91d: Internal property of Client is removed from output
381
+ - abfe4b3: Add support for reading struct properties.
382
+ - 27866a8: Removing interface argument for selecting object types. This is not supported in the new apis, and is not being used internally anywhere with the old apis.
383
+ - 0cd1603: Fixes AttachmentUpload for browser contexts
384
+ - a7a4aef: Removes dependency on crypto
385
+ - e5fe7c0: Adds experimental method to convert an object set into RID
386
+ - 1b2e8c9: Adds subscribe feature directly to client
387
+ - 9f3807c: Allows $in to take a readonly array
388
+ - d12c92b: Fixes process.env.NODE_ENV handling
389
+ - 0c56d21: Exposing fuzzy searching.
390
+ - e548b9b: Updates subscribe to return object updates
391
+ - 6671a39: Upgrade execa where used
392
+ - 5e78575: Fix queries that have response types with nested values, like arrays.
393
+ - ee6224b: Explicitly type aggregation types in queries.
394
+ - 1dc0228: Change experimental code style to prevent future breaks
395
+ - fa02ebf: Adds SLS dependency for object-set-watcher API
396
+ - 9af346e: Fixing proxy handlers.
397
+ - d3b3f35: Add's onSuccessfulSubscribe handler to subscribe functionality
398
+ - c682504: Locks dependency version of 3 internal libraries
399
+ - 9018dc2: Updating platform api dependencies.
400
+ - a6c320d: Internal optimization to reduce memory usage for unused interface objects
401
+ - 8026baf: Update interface support for .subscribe
402
+ - 6b6c8a1: Updates gateway endpoints and changes fetchContents for attachments to return a response
403
+ - c537e2d: Remove unused imports.
404
+ - 3fc2ee6: Include more descriptive JS docs for public utils
405
+ - 0d8ac3b: Remove attachment from exports.
406
+ - 73fa373: Exports helper method to construct object sets from RIDs from internal utils
407
+ - 8e6a5f4: Avoid type-fest's IsAny as it doesn't always work
408
+ - 09eaf24: Update to latest platform sdks
409
+ - 71dfb4c: Now export all api shapes from client, so use that dependency instead.
410
+ - 2d5e648: Remove subscribe from experimental gate.
411
+ - c4f88a8: Removes circular dependency that may upset legacy tools like react-native
412
+ - d665147: Update platform sdk deps
413
+ - f19da8e: Remove where clause from aggregate options. This option was never actually doing anything before as it was not passed to the backend for processing, so we are removing it to prevent future confusion.
414
+
415
+ ### Patch Changes
416
+
417
+ - Updated dependencies [966d408]
418
+ - Updated dependencies [cddc196]
419
+ - Updated dependencies [d794c19]
420
+ - Updated dependencies [05febf4]
421
+ - Updated dependencies [55c05f2]
422
+ - Updated dependencies [0dc40b0]
423
+ - Updated dependencies [3703d81]
424
+ - Updated dependencies [25fd9f0]
425
+ - Updated dependencies [1b60b3d]
426
+ - Updated dependencies [11a05cc]
427
+ - Updated dependencies [7865cb6]
428
+ - Updated dependencies [9c4efe6]
429
+ - Updated dependencies [0a7c747]
430
+ - Updated dependencies [f0b519d]
431
+ - Updated dependencies [3ea2e79]
432
+ - Updated dependencies [1812118]
433
+ - Updated dependencies [bc1761c]
434
+ - Updated dependencies [656f975]
435
+ - Updated dependencies [f1145ff]
436
+ - Updated dependencies [f446d0c]
437
+ - Updated dependencies [c80ca45]
438
+ - Updated dependencies [bb8b219]
439
+ - Updated dependencies [44e62f6]
440
+ - Updated dependencies [03f95eb]
441
+ - Updated dependencies [91cfa3a]
442
+ - Updated dependencies [94463b6]
443
+ - Updated dependencies [1a89f23]
444
+ - Updated dependencies [9d35a1f]
445
+ - Updated dependencies [c691c8b]
446
+ - Updated dependencies [749cf69]
447
+ - Updated dependencies [f03e39f]
448
+ - Updated dependencies [11088aa]
449
+ - Updated dependencies [72c1905]
450
+ - Updated dependencies [9298f75]
451
+ - Updated dependencies [7a95618]
452
+ - Updated dependencies [f34b3d4]
453
+ - Updated dependencies [acbfab9]
454
+ - Updated dependencies [c9da74c]
455
+ - Updated dependencies [62c1d63]
456
+ - Updated dependencies [3c9ac22]
457
+ - Updated dependencies [1591f04]
458
+ - Updated dependencies [03e1941]
459
+ - Updated dependencies [963addb]
460
+ - Updated dependencies [abfe4b3]
461
+ - Updated dependencies [b79becf]
462
+ - Updated dependencies [27866a8]
463
+ - Updated dependencies [caf1abc]
464
+ - Updated dependencies [e5fe7c0]
465
+ - Updated dependencies [1b2e8c9]
466
+ - Updated dependencies [81b2fb2]
467
+ - Updated dependencies [9f3807c]
468
+ - Updated dependencies [ecd4aee]
469
+ - Updated dependencies [0c56d21]
470
+ - Updated dependencies [e548b9b]
471
+ - Updated dependencies [83e7ea3]
472
+ - Updated dependencies [ee6224b]
473
+ - Updated dependencies [1dc0228]
474
+ - Updated dependencies [6c60414]
475
+ - Updated dependencies [5fe2c8d]
476
+ - Updated dependencies [7d777eb]
477
+ - Updated dependencies [1132993]
478
+ - Updated dependencies [d3b3f35]
479
+ - Updated dependencies [c682504]
480
+ - Updated dependencies [785f663]
481
+ - Updated dependencies [9018dc2]
482
+ - Updated dependencies [6b6c8a1]
483
+ - Updated dependencies [c537e2d]
484
+ - Updated dependencies [73fa373]
485
+ - Updated dependencies [bf0e3b4]
486
+ - Updated dependencies [8e6a5f4]
487
+ - Updated dependencies [2b35ed4]
488
+ - Updated dependencies [09eaf24]
489
+ - Updated dependencies [2d5e648]
490
+ - Updated dependencies [06e66dc]
491
+ - Updated dependencies [31e7d70]
492
+ - Updated dependencies [d665147]
493
+ - Updated dependencies [f19da8e]
494
+ - @osdk/generator-converters@2.1.0
495
+ - @osdk/api@2.1.0
496
+ - @osdk/shared.client.impl@1.1.0
497
+ - @osdk/client.unstable@2.1.0
498
+ - @osdk/shared.net.errors@2.1.0
499
+ - @osdk/shared.net.fetch@1.1.0
500
+
311
501
  ## 2.1.0-beta.31
312
502
 
313
503
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"applyQuery.js","names":["OntologiesV2","invariant","createObjectSet","hydrateAttachmentFromRidInternal","addUserAgentAndRequestContextHeaders","augmentRequestContext","createObjectSpecifierFromPrimaryKey","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","isFixedVersion","version","undefined","response","Queries","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","Error","multiplicity","withoutMultiplicity","i","length","type","set","def","get","object","createQueryObjectResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","map","Array","isArray","process","env","NODE_ENV","entry","keyType","getObjectSpecifier","valueType","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","values","some","primaryKey","objectTypeApiName","$apiName","$title","$objectType","$primaryKey","$objectSpecifier"],"sources":["applyQuery.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 {\n AllowedBucketKeyTypes,\n AllowedBucketTypes,\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectSpecifier,\n ObjectTypeDefinition,\n OsdkBase,\n PrimaryKeyType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryParameterDefinition,\n} from \"@osdk/api\";\nimport type { DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../public-utils/hydrateAttachmentFromRid.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { createObjectSpecifierFromPrimaryKey } from \"../util/objectSpecifierUtils.js\";\nimport { toDataValueQueries } from \"../util/toDataValueQueries.js\";\nimport type { QueryParameterType, QueryReturnType } from \"./types.js\";\n\nexport async function applyQuery<\n QD extends QueryDefinition<any>,\n P extends QueryParameterType<CompileTimeMetadata<QD>[\"parameters\"]>,\n>(\n client: MinimalClient,\n query: QD,\n params?: P,\n): Promise<\n QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>\n> {\n const qd = await client.ontologyProvider.getQueryDefinition(\n query.apiName,\n query.isFixedVersion ? query.version : undefined,\n );\n\n const response = await OntologiesV2.Queries.execute(\n addUserAgentAndRequestContextHeaders(\n augmentRequestContext(client, _ => ({ finalMethodCall: \"applyQuery\" })),\n query,\n ),\n await client.ontologyRid,\n query.apiName,\n {\n parameters: params\n ? await remapQueryParams(\n params as { [parameterId: string]: any },\n client,\n qd.parameters,\n )\n : {},\n },\n { version: qd.version },\n );\n const objectOutputDefs = await getRequiredDefinitions(qd.output, client);\n const remappedResponse = await remapQueryResponse(\n client,\n qd.output,\n response.value,\n objectOutputDefs,\n );\n return remappedResponse as QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>;\n}\n\nasync function remapQueryParams(\n params: { [parameterId: string]: any },\n client: MinimalClient,\n paramTypes: Record<string, QueryParameterDefinition<any>>,\n): Promise<{ [parameterId: string]: any }> {\n const parameterMap: { [parameterName: string]: unknown } = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValueQueries(\n value,\n client,\n paramTypes[key],\n );\n }\n return parameterMap;\n}\n\nasync function remapQueryResponse<\n Q extends ObjectTypeDefinition,\n T extends QueryDataTypeDefinition<Q | never>,\n>(\n client: MinimalClient,\n responseDataType: T,\n responseValue: DataValue,\n definitions: Map<string, ObjectOrInterfaceDefinition>,\n): Promise<QueryReturnType<T>> {\n // handle null responses\n if (responseValue == null) {\n if (responseDataType.nullable) {\n return undefined as unknown as QueryReturnType<typeof responseDataType>;\n } else {\n throw new Error(\"Got null response when nullable was not allowed\");\n }\n }\n\n if (\n responseDataType.multiplicity != null\n && responseDataType.multiplicity\n ) {\n const withoutMultiplicity = { ...responseDataType, multiplicity: false };\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n withoutMultiplicity,\n responseValue[i],\n definitions,\n );\n }\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n\n case \"set\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n responseDataType.set,\n responseValue[i],\n definitions,\n );\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n case \"attachment\": {\n return hydrateAttachmentFromRidInternal(\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def || def.type !== \"object\") {\n throw new Error(\n `Missing definition for ${responseDataType.object}`,\n );\n }\n return createQueryObjectResponse(\n responseValue,\n def,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n\n case \"objectSet\": {\n const def = definitions.get(responseDataType.objectSet);\n if (!def) {\n throw new Error(\n `Missing definition for ${responseDataType.objectSet}`,\n );\n }\n if (typeof responseValue === \"string\") {\n return createObjectSet(def, client, {\n type: \"intersect\",\n objectSets: [\n { type: \"base\", objectType: responseDataType.objectSet },\n { type: \"reference\", reference: responseValue },\n ],\n }) as QueryReturnType<typeof responseDataType>;\n }\n\n return createObjectSet(\n def,\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"struct\": {\n // figure out what keys need to be fixed up\n for (const [key, subtype] of Object.entries(responseDataType.struct)) {\n if (requiresConversion(subtype)) {\n responseValue[key] = await remapQueryResponse(\n client,\n subtype,\n responseValue[key],\n definitions,\n );\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n case \"map\": {\n const map = {} as any;\n\n invariant(Array.isArray(responseValue), \"Expected array entry\");\n for (const entry of responseValue) {\n invariant(entry.key, \"Expected key\");\n invariant(entry.value, \"Expected value\");\n const key = responseDataType.keyType.type === \"object\"\n ? getObjectSpecifier(\n entry.key,\n responseDataType.keyType.object,\n definitions,\n )\n : entry.key;\n const value = await remapQueryResponse(\n client,\n responseDataType.valueType,\n entry.value,\n definitions,\n );\n map[key] = value;\n }\n return map;\n }\n\n case \"twoDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n value: AllowedBucketTypes;\n }[] = [];\n for (const { key, value } of responseValue.groups) {\n result.push({ key, value });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n\n case \"threeDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n groups: { key: AllowedBucketKeyTypes; value: AllowedBucketTypes }[];\n }[] = [];\n for (const { key, groups } of responseValue.groups) {\n const subResult: { key: any; value: any }[] = [];\n for (const { key: subKey, value } of groups) {\n subResult.push({ key: subKey, value });\n }\n result.push({ key, groups: subResult });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n}\n\nasync function getRequiredDefinitions(\n dataType: QueryDataTypeDefinition,\n client: MinimalClient,\n): Promise<Map<string, ObjectOrInterfaceDefinition>> {\n const result = new Map<string, ObjectOrInterfaceDefinition>();\n switch (dataType.type) {\n case \"objectSet\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.objectSet,\n );\n result.set(dataType.objectSet, objectDef);\n break;\n }\n case \"object\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.object,\n );\n result.set(dataType.object, objectDef);\n break;\n }\n\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n\n case \"map\": {\n for (const value of [dataType.keyType, dataType.valueType]) {\n for (\n const [type, objectDef] of await getRequiredDefinitions(value, client)\n ) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n\n case \"struct\": {\n for (const value of Object.values(dataType.struct)) {\n for (\n const [type, objectDef] of await getRequiredDefinitions(value, client)\n ) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n case \"attachment\":\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"union\":\n break;\n }\n\n return result;\n}\nfunction requiresConversion(dataType: QueryDataTypeDefinition) {\n switch (dataType.type) {\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 false;\n\n case \"union\":\n return true;\n\n case \"struct\":\n return Object.values(dataType.struct).some(requiresConversion);\n\n case \"set\":\n return requiresConversion(dataType.set);\n\n case \"attachment\":\n case \"objectSet\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n case \"object\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction getObjectSpecifier(\n primaryKey: any,\n objectTypeApiName: string,\n definitions: Map<string, ObjectOrInterfaceDefinition>,\n): string {\n const def = definitions.get(objectTypeApiName);\n if (!def || def.type !== \"object\") {\n throw new Error(\n `Missing definition for ${objectTypeApiName}`,\n );\n }\n return createObjectSpecifierFromPrimaryKey(\n def,\n primaryKey,\n );\n}\n\nexport function createQueryObjectResponse<\n Q extends ObjectTypeDefinition,\n>(\n primaryKey: PrimaryKeyType<Q>,\n objectDef: Q,\n): OsdkBase<Q> & { $objectSpecifier: ObjectSpecifier<Q> } {\n return {\n $apiName: objectDef.apiName,\n $title: undefined,\n $objectType: objectDef.apiName,\n $primaryKey: primaryKey,\n $objectSpecifier: createObjectSpecifierFromPrimaryKey(\n objectDef,\n primaryKey,\n ),\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"applyQuery.js","names":["OntologiesV2","invariant","createObjectSet","hydrateAttachmentFromRidInternal","addUserAgentAndRequestContextHeaders","augmentRequestContext","createObjectSpecifierFromPrimaryKey","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","isFixedVersion","version","undefined","response","Queries","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","Error","multiplicity","withoutMultiplicity","i","length","type","set","def","get","object","createQueryObjectResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","map","Array","isArray","process","env","NODE_ENV","entry","keyType","getObjectSpecifier","valueType","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","values","some","primaryKey","objectTypeApiName","$apiName","$title","$objectType","$primaryKey","$objectSpecifier"],"sources":["applyQuery.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 {\n AllowedBucketKeyTypes,\n AllowedBucketTypes,\n CompileTimeMetadata,\n ObjectOrInterfaceDefinition,\n ObjectTypeDefinition,\n OsdkBase,\n PrimaryKeyType,\n QueryDataTypeDefinition,\n QueryDefinition,\n QueryParameterDefinition,\n} from \"@osdk/api\";\nimport type { DataValue } from \"@osdk/foundry.ontologies\";\nimport * as OntologiesV2 from \"@osdk/foundry.ontologies\";\nimport invariant from \"tiny-invariant\";\nimport type { MinimalClient } from \"../MinimalClientContext.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { hydrateAttachmentFromRidInternal } from \"../public-utils/hydrateAttachmentFromRid.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { createObjectSpecifierFromPrimaryKey } from \"../util/objectSpecifierUtils.js\";\nimport { toDataValueQueries } from \"../util/toDataValueQueries.js\";\nimport type { QueryParameterType, QueryReturnType } from \"./types.js\";\n\nexport async function applyQuery<\n QD extends QueryDefinition<any>,\n P extends QueryParameterType<CompileTimeMetadata<QD>[\"parameters\"]>,\n>(\n client: MinimalClient,\n query: QD,\n params?: P,\n): Promise<\n QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>\n> {\n const qd = await client.ontologyProvider.getQueryDefinition(\n query.apiName,\n query.isFixedVersion ? query.version : undefined,\n );\n\n const response = await OntologiesV2.Queries.execute(\n addUserAgentAndRequestContextHeaders(\n augmentRequestContext(client, _ => ({ finalMethodCall: \"applyQuery\" })),\n query,\n ),\n await client.ontologyRid,\n query.apiName,\n {\n parameters: params\n ? await remapQueryParams(\n params as { [parameterId: string]: any },\n client,\n qd.parameters,\n )\n : {},\n },\n { version: qd.version },\n );\n const objectOutputDefs = await getRequiredDefinitions(qd.output, client);\n const remappedResponse = await remapQueryResponse(\n client,\n qd.output,\n response.value,\n objectOutputDefs,\n );\n return remappedResponse as QueryReturnType<CompileTimeMetadata<QD>[\"output\"]>;\n}\n\nasync function remapQueryParams(\n params: { [parameterId: string]: any },\n client: MinimalClient,\n paramTypes: Record<string, QueryParameterDefinition<any>>,\n): Promise<{ [parameterId: string]: any }> {\n const parameterMap: { [parameterName: string]: unknown } = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValueQueries(\n value,\n client,\n paramTypes[key],\n );\n }\n return parameterMap;\n}\n\nasync function remapQueryResponse<\n Q extends ObjectTypeDefinition,\n T extends QueryDataTypeDefinition<Q | never>,\n>(\n client: MinimalClient,\n responseDataType: T,\n responseValue: DataValue,\n definitions: Map<string, ObjectOrInterfaceDefinition>,\n): Promise<QueryReturnType<T>> {\n // handle null responses\n if (responseValue == null) {\n if (responseDataType.nullable) {\n return undefined as unknown as QueryReturnType<typeof responseDataType>;\n } else {\n throw new Error(\"Got null response when nullable was not allowed\");\n }\n }\n\n if (\n responseDataType.multiplicity != null\n && responseDataType.multiplicity\n ) {\n const withoutMultiplicity = { ...responseDataType, multiplicity: false };\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n withoutMultiplicity,\n responseValue[i],\n definitions,\n );\n }\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n\n case \"set\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(\n client,\n responseDataType.set,\n responseValue[i],\n definitions,\n );\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n case \"attachment\": {\n return hydrateAttachmentFromRidInternal(\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def || def.type !== \"object\") {\n throw new Error(\n `Missing definition for ${responseDataType.object}`,\n );\n }\n return createQueryObjectResponse(\n responseValue,\n def,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n\n case \"objectSet\": {\n const def = definitions.get(responseDataType.objectSet);\n if (!def) {\n throw new Error(\n `Missing definition for ${responseDataType.objectSet}`,\n );\n }\n if (typeof responseValue === \"string\") {\n return createObjectSet(def, client, {\n type: \"intersect\",\n objectSets: [\n { type: \"base\", objectType: responseDataType.objectSet },\n { type: \"reference\", reference: responseValue },\n ],\n }) as QueryReturnType<typeof responseDataType>;\n }\n\n return createObjectSet(\n def,\n client,\n responseValue,\n ) as QueryReturnType<\n typeof responseDataType\n >;\n }\n case \"struct\": {\n // figure out what keys need to be fixed up\n for (const [key, subtype] of Object.entries(responseDataType.struct)) {\n if (requiresConversion(subtype)) {\n responseValue[key] = await remapQueryResponse(\n client,\n subtype,\n responseValue[key],\n definitions,\n );\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n }\n\n case \"map\": {\n const map = {} as any;\n\n invariant(Array.isArray(responseValue), \"Expected array entry\");\n for (const entry of responseValue) {\n invariant(entry.key, \"Expected key\");\n invariant(entry.value, \"Expected value\");\n const key = responseDataType.keyType.type === \"object\"\n ? getObjectSpecifier(\n entry.key,\n responseDataType.keyType.object,\n definitions,\n )\n : entry.key;\n const value = await remapQueryResponse(\n client,\n responseDataType.valueType,\n entry.value,\n definitions,\n );\n map[key] = value;\n }\n return map;\n }\n\n case \"twoDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n value: AllowedBucketTypes;\n }[] = [];\n for (const { key, value } of responseValue.groups) {\n result.push({ key, value });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n\n case \"threeDimensionalAggregation\": {\n const result: {\n key: AllowedBucketKeyTypes;\n groups: { key: AllowedBucketKeyTypes; value: AllowedBucketTypes }[];\n }[] = [];\n for (const { key, groups } of responseValue.groups) {\n const subResult: { key: any; value: any }[] = [];\n for (const { key: subKey, value } of groups) {\n subResult.push({ key: subKey, value });\n }\n result.push({ key, groups: subResult });\n }\n return result as QueryReturnType<typeof responseDataType>;\n }\n }\n\n return responseValue as QueryReturnType<typeof responseDataType>;\n}\n\nasync function getRequiredDefinitions(\n dataType: QueryDataTypeDefinition,\n client: MinimalClient,\n): Promise<Map<string, ObjectOrInterfaceDefinition>> {\n const result = new Map<string, ObjectOrInterfaceDefinition>();\n switch (dataType.type) {\n case \"objectSet\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.objectSet,\n );\n result.set(dataType.objectSet, objectDef);\n break;\n }\n case \"object\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(\n dataType.object,\n );\n result.set(dataType.object, objectDef);\n break;\n }\n\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n\n case \"map\": {\n for (const value of [dataType.keyType, dataType.valueType]) {\n for (\n const [type, objectDef] of await getRequiredDefinitions(value, client)\n ) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n\n case \"struct\": {\n for (const value of Object.values(dataType.struct)) {\n for (\n const [type, objectDef] of await getRequiredDefinitions(value, client)\n ) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n case \"attachment\":\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"union\":\n break;\n }\n\n return result;\n}\nfunction requiresConversion(dataType: QueryDataTypeDefinition) {\n switch (dataType.type) {\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 false;\n\n case \"union\":\n return true;\n\n case \"struct\":\n return Object.values(dataType.struct).some(requiresConversion);\n\n case \"set\":\n return requiresConversion(dataType.set);\n\n case \"attachment\":\n case \"objectSet\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n case \"object\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction getObjectSpecifier(\n primaryKey: any,\n objectTypeApiName: string,\n definitions: Map<string, ObjectOrInterfaceDefinition>,\n): string {\n const def = definitions.get(objectTypeApiName);\n if (!def || def.type !== \"object\") {\n throw new Error(\n `Missing definition for ${objectTypeApiName}`,\n );\n }\n return createObjectSpecifierFromPrimaryKey(\n def,\n primaryKey,\n );\n}\n\nexport function createQueryObjectResponse<\n Q extends ObjectTypeDefinition,\n>(\n primaryKey: PrimaryKeyType<Q>,\n objectDef: Q,\n): OsdkBase<Q> {\n return {\n $apiName: objectDef.apiName,\n $title: undefined,\n $objectType: objectDef.apiName,\n $primaryKey: primaryKey,\n $objectSpecifier: createObjectSpecifierFromPrimaryKey(\n objectDef,\n primaryKey,\n ),\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -35,27 +35,66 @@ describe("queries", () => {
35
35
  });
36
36
  expect(result).toBe(3);
37
37
  });
38
- it("accepts objects", async () => {
39
- const employee = await client(Employee).fetchOne(50030);
40
- const result = await client(queryAcceptsObject).executeFunction({
41
- object: employee
38
+ describe("Queries that accept objects work do not break", () => {
39
+ it("Works when using $apiName, $primaryKey", async () => {
40
+ client(queryAcceptsObject).executeFunction;
41
+ expectTypeOf().toMatchTypeOf();
42
+ const result = await client(queryAcceptsObject).executeFunction({
43
+ object: {
44
+ $apiName: "Employee",
45
+ $primaryKey: 50030
46
+ }
47
+ });
48
+ expect(result).toEqual({
49
+ $apiName: "Employee",
50
+ $objectType: "Employee",
51
+ $primaryKey: 50031,
52
+ $objectSpecifier: "Employee:50031"
53
+ });
42
54
  });
43
- expect(result).toEqual({
44
- $apiName: "Employee",
45
- $objectType: "Employee",
46
- $primaryKey: 50031,
47
- $objectSpecifier: "Employee:50031"
55
+ it("Works when using an existing object", async () => {
56
+ const employee = await client(Employee).fetchOne(50030);
57
+ const result = await client(queryAcceptsObject).executeFunction({
58
+ object: employee
59
+ });
60
+ expect(result).toEqual({
61
+ $apiName: "Employee",
62
+ $objectType: "Employee",
63
+ $primaryKey: 50031,
64
+ $objectSpecifier: "Employee:50031"
65
+ });
48
66
  });
49
-
50
- // Should also accept primary keys
51
- const result2 = await client(queryAcceptsObject).executeFunction({
52
- object: 50030
67
+ it("Works when using a primary key", async () => {
68
+ const result = await client(queryAcceptsObject).executeFunction({
69
+ object: 50030
70
+ });
71
+ expect(result).toEqual({
72
+ $apiName: "Employee",
73
+ $objectType: "Employee",
74
+ $primaryKey: 50031,
75
+ $objectSpecifier: "Employee:50031"
76
+ });
53
77
  });
54
- expect(result2).toEqual({
55
- $apiName: "Employee",
56
- $objectType: "Employee",
57
- $primaryKey: 50031,
58
- $objectSpecifier: "Employee:50031"
78
+ it("Works when explicitly typing object with OsdkBase", async () => {
79
+ /**
80
+ * We do this test because we used to type object parameters with OsdkBase
81
+ */
82
+
83
+ const result = await client(queryAcceptsObject).executeFunction({
84
+ object: {
85
+ $apiName: "Employee",
86
+ $objectType: "Employee",
87
+ $primaryKey: 50030,
88
+ $title: "Test",
89
+ $objectSpecifier: "Employee:50031"
90
+ }
91
+ });
92
+ expect(result).toEqual({
93
+ $apiName: "Employee",
94
+ $objectType: "Employee",
95
+ $primaryKey: 50031,
96
+ $objectSpecifier: "Employee:50031"
97
+ });
59
98
  });
60
99
  });
61
100
  it("accepts objectSets", async () => {
@@ -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","version","isFixedVersion"],"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 it(\"pinned queries call execute with the right version\", async () => {\n const result = await client($Queries.addOne).executeFunction({\n n: 2,\n });\n expect(result).toEqual(3);\n\n const result2 = await client({ ...$Queries.addOne, version: \"0.0.1\" })\n .executeFunction({\n n: 6,\n });\n expect(result2).toEqual(7);\n });\n\n it(\"non-pinned queries call execute with the right version\", async () => {\n // The stubbed data for version 0.0.5 does not exist. This test passes\n // because executeQuery is called without a version and our stubs resolve to latest.\n const result2 = await client({\n ...$Queries.addOne,\n version: \"0.0.5\",\n isFixedVersion: false,\n })\n .executeFunction({\n n: 2,\n });\n expect(result2).toEqual(3);\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","toMatchTypeOf","object","$apiName","$primaryKey","toEqual","$objectType","$objectSpecifier","employee","fetchOne","$title","employeeObjectSet","objectSet","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","result2","version","isFixedVersion"],"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, OsdkBase } 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 describe(\"Queries that accept objects work do not break\", () => {\n it(\"Works when using $apiName, $primaryKey\", async () => {\n const fn = client(queryAcceptsObject).executeFunction;\n type InferredParamType = Parameters<typeof fn>[0];\n expectTypeOf<{\n object: {\n $apiName: \"Employee\";\n $primaryKey: number;\n };\n }>().toMatchTypeOf<InferredParamType>();\n\n const result = await client(queryAcceptsObject).executeFunction({\n object: {\n $apiName: \"Employee\",\n $primaryKey: 50030,\n },\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n });\n\n it(\"Works when using an existing object\", 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\n it(\"Works when using a primary key\", async () => {\n const result = await client(queryAcceptsObject).executeFunction({\n object: 50030,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\n });\n\n it(\"Works when explicitly typing object with OsdkBase\", async () => {\n /**\n * We do this test because we used to type object parameters with OsdkBase\n */\n const objectQueryParameter = {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50030,\n $title: \"Test\",\n $objectSpecifier: \"Employee:50031\" as ObjectSpecifier<Employee>,\n } satisfies OsdkBase<Employee>;\n const result = await client(queryAcceptsObject).executeFunction({\n object: objectQueryParameter,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $objectSpecifier: \"Employee:50031\",\n });\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 it(\"pinned queries call execute with the right version\", async () => {\n const result = await client($Queries.addOne).executeFunction({\n n: 2,\n });\n expect(result).toEqual(3);\n\n const result2 = await client({ ...$Queries.addOne, version: \"0.0.1\" })\n .executeFunction({\n n: 6,\n });\n expect(result2).toEqual(7);\n });\n\n it(\"non-pinned queries call execute with the right version\", async () => {\n // The stubbed data for version 0.0.5 does not exist. This test passes\n // because executeQuery is called without a version and our stubs resolve to latest.\n const result2 = await client({\n ...$Queries.addOne,\n version: \"0.0.5\",\n isFixedVersion: false,\n })\n .executeFunction({\n n: 2,\n });\n expect(result2).toEqual(3);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -14,5 +14,5 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export const USER_AGENT = `osdk-client/${"2.2.0-beta.22"}`;
17
+ export const USER_AGENT = `osdk-client/${"2.2.0-beta.23"}`;
18
18
  //# sourceMappingURL=UserAgent.js.map
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export function isOsdkBaseObject(o) {
17
+ export function isObjectSpecifiersObject(o) {
18
18
  return o && typeof o === "object" && typeof o.$apiName === "string" && o.$primaryKey != null;
19
19
  }
20
- //# sourceMappingURL=isOsdkBaseObject.js.map
20
+ //# sourceMappingURL=isObjectSpecifiersObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isObjectSpecifiersObject.js","names":["isObjectSpecifiersObject","o","$apiName","$primaryKey"],"sources":["isObjectSpecifiersObject.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 { PrimaryKeyTypes } from \"@osdk/api\";\n\nexport function isObjectSpecifiersObject(\n o: any,\n): o is { $apiName: string; $primaryKey: PrimaryKeyTypes } {\n return o && typeof o === \"object\" && typeof o.$apiName === \"string\"\n && o.$primaryKey != null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,SAASA,wBAAwBA,CACtCC,CAAM,EACmD;EACzD,OAAOA,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAI,OAAOA,CAAC,CAACC,QAAQ,KAAK,QAAQ,IAC9DD,CAAC,CAACE,WAAW,IAAI,IAAI;AAC5B","ignoreList":[]}
@@ -19,8 +19,8 @@ import { isAttachmentFile, isAttachmentUpload } from "../object/AttachmentUpload
19
19
  import { isMediaReference } from "../object/mediaUpload.js";
20
20
  import { getWireObjectSet, isObjectSet } from "../objectSet/createObjectSet.js";
21
21
  import { isInterfaceActionParam } from "./interfaceUtils.js";
22
+ import { isObjectSpecifiersObject } from "./isObjectSpecifiersObject.js";
22
23
  import { isOntologyObjectV2 } from "./isOntologyObjectV2.js";
23
- import { isOsdkBaseObject } from "./isOsdkObject.js";
24
24
  import { isPoint } from "./isPoint.js";
25
25
  import { isWireObjectSet } from "./WireObjectSet.js";
26
26
 
@@ -68,7 +68,7 @@ export async function toDataValue(value, client) {
68
68
  if (isOntologyObjectV2(value)) {
69
69
  return await toDataValue(value.__primaryKey, client);
70
70
  }
71
- if (isOsdkBaseObject(value)) {
71
+ if (isObjectSpecifiersObject(value)) {
72
72
  return await toDataValue(value.$primaryKey, client);
73
73
  }
74
74
  if (isPoint(value)) {
@@ -1 +1 @@
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
+ {"version":3,"file":"toDataValue.js","names":["OntologiesV2","isAttachmentFile","isAttachmentUpload","isMediaReference","getWireObjectSet","isObjectSet","isInterfaceActionParam","isObjectSpecifiersObject","isOntologyObjectV2","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 { isObjectSpecifiersObject } from \"./isObjectSpecifiersObject.js\";\nimport { isOntologyObjectV2 } from \"./isOntologyObjectV2.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 (isObjectSpecifiersObject(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":[]}
@@ -17,7 +17,7 @@
17
17
  import * as OntologiesV2 from "@osdk/foundry.ontologies";
18
18
  import { isAttachmentFile, isAttachmentUpload } from "../object/AttachmentUpload.js";
19
19
  import { getWireObjectSet, isObjectSet } from "../objectSet/createObjectSet.js";
20
- import { isOsdkBaseObject } from "./isOsdkBaseObject.js";
20
+ import { isObjectSpecifiersObject } from "./isObjectSpecifiersObject.js";
21
21
  import { extractPrimaryKeyFromObjectSpecifier } from "./objectSpecifierUtils.js";
22
22
  import { isWireObjectSet } from "./WireObjectSet.js";
23
23
 
@@ -84,7 +84,7 @@ export async function toDataValueQueries(value, client, desiredType) {
84
84
  }
85
85
  case "object":
86
86
  {
87
- if (isOsdkBaseObject(value)) {
87
+ if (isObjectSpecifiersObject(value)) {
88
88
  return value.$primaryKey;
89
89
  }
90
90
  break;