@osdk/client 2.1.0-beta.3 → 2.1.0-beta.4

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 (98) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/browser/Client.d.ts +3 -19
  3. package/build/browser/Client.d.ts.map +1 -1
  4. package/build/browser/__unstable/ConjureSupport.js +4 -4
  5. package/build/browser/__unstable/ConjureSupport.js.map +1 -1
  6. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts +1 -6
  7. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
  8. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js +1 -1
  9. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  10. package/build/browser/actions/applyAction.js +1 -1
  11. package/build/browser/actions/applyAction.js.map +1 -1
  12. package/build/browser/createClient.d.ts.map +1 -1
  13. package/build/browser/createClient.js +33 -19
  14. package/build/browser/createClient.js.map +1 -1
  15. package/build/browser/createMinimalClient.js +1 -1
  16. package/build/browser/createMinimalClient.js.map +1 -1
  17. package/build/browser/index.d.ts +0 -1
  18. package/build/browser/index.d.ts.map +1 -1
  19. package/build/browser/index.js +0 -1
  20. package/build/browser/index.js.map +1 -1
  21. package/build/browser/intellisense.test.js +1 -1
  22. package/build/browser/intellisense.test.js.map +1 -1
  23. package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js +1 -1
  24. package/build/browser/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -1
  25. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +3 -3
  26. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  27. package/build/browser/object/aggregate.js +1 -1
  28. package/build/browser/object/aggregate.js.map +1 -1
  29. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +1 -10
  30. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +1 -1
  31. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts +0 -7
  32. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  33. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js +6 -0
  34. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  35. package/build/browser/object/convertWireToOsdkObjects.js +2 -2
  36. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  37. package/build/browser/object/fetchPage.js +1 -1
  38. package/build/browser/object/fetchPage.js.map +1 -1
  39. package/build/browser/objectSet/ObjectSet.test.js +43 -47
  40. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  41. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +22 -45
  42. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  43. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +8 -5
  44. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  45. package/build/browser/objectSet/createObjectSet.js +2 -5
  46. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  47. package/build/browser/tsserver.js +1 -1
  48. package/build/browser/tsserver.js.map +1 -1
  49. package/build/browser/util/UserAgent.js +1 -1
  50. package/build/esm/Client.d.ts +3 -19
  51. package/build/esm/Client.d.ts.map +1 -1
  52. package/build/esm/__unstable/ConjureSupport.js +4 -4
  53. package/build/esm/__unstable/ConjureSupport.js.map +1 -1
  54. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts +1 -6
  55. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
  56. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js +1 -1
  57. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.js.map +1 -1
  58. package/build/esm/actions/applyAction.js +1 -1
  59. package/build/esm/actions/applyAction.js.map +1 -1
  60. package/build/esm/createClient.d.ts.map +1 -1
  61. package/build/esm/createClient.js +33 -19
  62. package/build/esm/createClient.js.map +1 -1
  63. package/build/esm/createMinimalClient.js +1 -1
  64. package/build/esm/createMinimalClient.js.map +1 -1
  65. package/build/esm/index.d.ts +0 -1
  66. package/build/esm/index.d.ts.map +1 -1
  67. package/build/esm/index.js +0 -1
  68. package/build/esm/index.js.map +1 -1
  69. package/build/esm/intellisense.test.js +1 -1
  70. package/build/esm/intellisense.test.js.map +1 -1
  71. package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js +1 -1
  72. package/build/esm/internal/conversions/legacyToModernSingleAggregationResult.js.map +1 -1
  73. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +3 -3
  74. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  75. package/build/esm/object/aggregate.js +1 -1
  76. package/build/esm/object/aggregate.js.map +1 -1
  77. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts +1 -10
  78. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.d.ts.map +1 -1
  79. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts +0 -7
  80. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  81. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js +6 -0
  82. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.js.map +1 -1
  83. package/build/esm/object/convertWireToOsdkObjects.js +2 -2
  84. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  85. package/build/esm/object/fetchPage.js +1 -1
  86. package/build/esm/object/fetchPage.js.map +1 -1
  87. package/build/esm/objectSet/ObjectSet.test.js +43 -47
  88. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  89. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +22 -45
  90. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  91. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +8 -5
  92. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  93. package/build/esm/objectSet/createObjectSet.js +2 -5
  94. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  95. package/build/esm/tsserver.js +1 -1
  96. package/build/esm/tsserver.js.map +1 -1
  97. package/build/esm/util/UserAgent.js +1 -1
  98. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"convertWireToOsdkObjects.js","names":["invariant","createOsdkObject","convertWireToOsdkObjects","client","objects","interfaceApiName","forceRemoveRid","selectedProps","strictNonNull","logger","debug","fixObjectPropertiesInPlace","ifaceDef","ontologyProvider","getInterfaceDefinition","undefined","ifaceSelected","Object","keys","properties","ret","rawObj","objectDef","getObjectDefinition","$apiName","objProps","conforming","invariantInterfacesAsViews","apiName","isConforming","reframeAsObjectInPlace","convertInterfacePropNamesToObjectPropNames","Error","osdkObject","$as","push","ifacePropsToMap","map","ifaceProp","interfaceMap","newProps","sptProp","regularProp","entries","value","assign","primaryKeyApiName","$primaryKey","def","obj","propsToCheck","propName","nullable","process","env","NODE_ENV","$objectType","warning","warn","console","error","objs","__rid","$rid","__apiName","__primaryKey","$title","__title"],"sources":["convertWireToOsdkObjects.js"],"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 */\nimport invariant from \"tiny-invariant\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n/**\n * If interfaceApiName is not undefined, converts the instances of the\n * interface into their respective\n * underlying concrete types and then returns the $as() representation\n * for the consumers.\n *\n * Otherwise just does the conversion\n *\n * May mutate in place for performance reasons. If you need a clean copy,\n * keep it first.\n *\n * However, you must use the returned value, which will be whatever is correct.\n *\n * @internal\n * @param interfaceApiName - if undefined\n */\nexport async function convertWireToOsdkObjects(client, objects, interfaceApiName, forceRemoveRid = false, selectedProps, strictNonNull = false) {\n client.logger?.debug(`START convertWireToOsdkObjects()`);\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n const ifaceDef = interfaceApiName\n ? await client.ontologyProvider.getInterfaceDefinition(interfaceApiName)\n : undefined;\n const ifaceSelected = ifaceDef\n ? (selectedProps ?? Object.keys(ifaceDef.properties))\n : undefined;\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(rawObj.$apiName);\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n // default value for when we are checking an object\n let objProps;\n let conforming = true;\n if (ifaceDef && ifaceSelected) {\n // API returns interface spt names but we cache by real values\n invariantInterfacesAsViews(objectDef, ifaceDef.apiName, client);\n conforming &&= isConforming(client, ifaceDef, rawObj, ifaceSelected);\n reframeAsObjectInPlace(objectDef, ifaceDef.apiName, rawObj);\n objProps = convertInterfacePropNamesToObjectPropNames(objectDef, ifaceDef.apiName, ifaceSelected);\n }\n else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\"Unable to safely convert objects as some non nullable properties are null\");\n }\n else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n let osdkObject = createOsdkObject(client, objectDef, rawObj);\n if (interfaceApiName)\n osdkObject = osdkObject.$as(interfaceApiName);\n ret.push(osdkObject);\n }\n client.logger?.debug(`END convertWireToOsdkObjects()`);\n return ret;\n}\n/**\n * Utility function that lets us take down selected property names from an interface\n * and convert them to an array of property names on an object.\n */\nfunction convertInterfacePropNamesToObjectPropNames(objectDef, interfaceApiName, ifacePropsToMap) {\n return ifacePropsToMap.map((ifaceProp) => objectDef.interfaceMap[interfaceApiName][ifaceProp]);\n}\n/**\n * Takes a raw object from the wire (contextually as an interface) and\n * updates the fields to reflect the underlying objectDef instead\n * @param objectDef\n * @param interfaceApiName\n * @param client\n * @param rawObj\n */\nfunction reframeAsObjectInPlace(objectDef, interfaceApiName, rawObj) {\n const newProps = {};\n for (const [sptProp, regularProp] of Object.entries(objectDef.interfaceMap[interfaceApiName])) {\n if (sptProp in rawObj) {\n const value = rawObj[sptProp];\n delete rawObj[sptProp];\n if (value !== undefined) {\n newProps[regularProp] = value;\n }\n }\n }\n Object.assign(rawObj, newProps);\n if (!(objectDef.primaryKeyApiName in rawObj)) {\n rawObj[objectDef.primaryKeyApiName] = rawObj.$primaryKey;\n }\n}\nfunction isConforming(client, def, obj, propsToCheck) {\n for (const propName of propsToCheck) {\n if (def.properties[propName].nullable === false && obj[propName] == null) {\n if (process?.env?.NODE_ENV !== \"production\") {\n client.logger?.debug({\n obj: {\n $objectType: obj[\"$objectType\"],\n $primaryKey: obj[\"$primaryKey\"],\n },\n }, `Found object that does not conform to its definition. Expected ${def.apiName}'s ${propName} to not be null.`);\n }\n return false;\n }\n }\n return true;\n}\nfunction invariantInterfacesAsViews(objectDef, interfaceApiName, client) {\n if (objectDef.interfaceMap?.[interfaceApiName] == null) {\n const warning = \"Interfaces are only supported 'as views' but your metadata object is missing the correct information. This suggests your interfaces have not been migrated to the newer version yet and you cannot use this version of the SDK.\";\n if (client.logger) {\n client.logger.warn(warning);\n }\n else {\n // eslint-disable-next-line no-console\n console.error(`WARNING! ${warning}`);\n }\n throw new Error(warning);\n }\n}\nfunction fixObjectPropertiesInPlace(objs, forceRemoveRid) {\n for (const obj of objs) {\n if (forceRemoveRid) {\n delete obj.__rid;\n }\n if (obj.__rid) {\n obj.$rid = obj.__rid;\n delete obj.__rid;\n }\n // Backend returns as __apiName but we want to stick to $ structure\n obj.$apiName = obj.__apiName;\n // for now these are the same but when we start doing interface projections the $objectType will always be underlying and\n // the $apiName will be for the current view (in current designs)\n obj.$objectType = obj.__apiName;\n // copying over for now as its always returned. In the future, this should just be inferred from underlying\n obj.$primaryKey = obj.__primaryKey;\n obj.$title = obj.__title;\n // we don't want people to use these\n delete obj.__apiName;\n delete obj.__primaryKey;\n delete obj.__title;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"convertWireToOsdkObjects.js","names":["invariant","createOsdkObject","convertWireToOsdkObjects","client","objects","interfaceApiName","forceRemoveRid","selectedProps","strictNonNull","logger","debug","fixObjectPropertiesInPlace","ifaceDef","ontologyProvider","getInterfaceDefinition","undefined","ifaceSelected","Object","keys","properties","ret","rawObj","objectDef","getObjectDefinition","$apiName","process","env","NODE_ENV","objProps","conforming","invariantInterfacesAsViews","apiName","isConforming","reframeAsObjectInPlace","convertInterfacePropNamesToObjectPropNames","Error","osdkObject","$as","push","ifacePropsToMap","map","ifaceProp","interfaceMap","newProps","sptProp","regularProp","entries","value","assign","primaryKeyApiName","$primaryKey","def","obj","propsToCheck","propName","nullable","$objectType","warning","warn","console","error","objs","__rid","$rid","__apiName","__primaryKey","$title","__title"],"sources":["convertWireToOsdkObjects.js"],"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 */\nimport invariant from \"tiny-invariant\";\nimport { createOsdkObject } from \"./convertWireToOsdkObjects/createOsdkObject.js\";\n/**\n * If interfaceApiName is not undefined, converts the instances of the\n * interface into their respective\n * underlying concrete types and then returns the $as() representation\n * for the consumers.\n *\n * Otherwise just does the conversion\n *\n * May mutate in place for performance reasons. If you need a clean copy,\n * keep it first.\n *\n * However, you must use the returned value, which will be whatever is correct.\n *\n * @internal\n * @param interfaceApiName - if undefined\n */\nexport async function convertWireToOsdkObjects(client, objects, interfaceApiName, forceRemoveRid = false, selectedProps, strictNonNull = false) {\n client.logger?.debug(`START convertWireToOsdkObjects()`);\n fixObjectPropertiesInPlace(objects, forceRemoveRid);\n const ifaceDef = interfaceApiName\n ? await client.ontologyProvider.getInterfaceDefinition(interfaceApiName)\n : undefined;\n const ifaceSelected = ifaceDef\n ? (selectedProps ?? Object.keys(ifaceDef.properties))\n : undefined;\n const ret = [];\n for (const rawObj of objects) {\n const objectDef = await client.ontologyProvider.getObjectDefinition(rawObj.$apiName);\n invariant(objectDef, `Missing definition for '${rawObj.$apiName}'`);\n // default value for when we are checking an object\n let objProps;\n let conforming = true;\n if (ifaceDef && ifaceSelected) {\n // API returns interface spt names but we cache by real values\n invariantInterfacesAsViews(objectDef, ifaceDef.apiName, client);\n conforming &&= isConforming(client, ifaceDef, rawObj, ifaceSelected);\n reframeAsObjectInPlace(objectDef, ifaceDef.apiName, rawObj);\n objProps = convertInterfacePropNamesToObjectPropNames(objectDef, ifaceDef.apiName, ifaceSelected);\n }\n else {\n objProps = selectedProps ?? Object.keys(objectDef.properties);\n }\n conforming &&= isConforming(client, objectDef, rawObj, objProps);\n if (strictNonNull === \"throw\" && !conforming) {\n throw new Error(\"Unable to safely convert objects as some non nullable properties are null\");\n }\n else if (strictNonNull === \"drop\" && !conforming) {\n continue;\n }\n let osdkObject = createOsdkObject(client, objectDef, rawObj);\n if (interfaceApiName)\n osdkObject = osdkObject.$as(interfaceApiName);\n ret.push(osdkObject);\n }\n client.logger?.debug(`END convertWireToOsdkObjects()`);\n return ret;\n}\n/**\n * Utility function that lets us take down selected property names from an interface\n * and convert them to an array of property names on an object.\n */\nfunction convertInterfacePropNamesToObjectPropNames(objectDef, interfaceApiName, ifacePropsToMap) {\n return ifacePropsToMap.map((ifaceProp) => objectDef.interfaceMap[interfaceApiName][ifaceProp]);\n}\n/**\n * Takes a raw object from the wire (contextually as an interface) and\n * updates the fields to reflect the underlying objectDef instead\n * @param objectDef\n * @param interfaceApiName\n * @param client\n * @param rawObj\n */\nfunction reframeAsObjectInPlace(objectDef, interfaceApiName, rawObj) {\n const newProps = {};\n for (const [sptProp, regularProp] of Object.entries(objectDef.interfaceMap[interfaceApiName])) {\n if (sptProp in rawObj) {\n const value = rawObj[sptProp];\n delete rawObj[sptProp];\n if (value !== undefined) {\n newProps[regularProp] = value;\n }\n }\n }\n Object.assign(rawObj, newProps);\n if (!(objectDef.primaryKeyApiName in rawObj)) {\n rawObj[objectDef.primaryKeyApiName] = rawObj.$primaryKey;\n }\n}\nfunction isConforming(client, def, obj, propsToCheck) {\n for (const propName of propsToCheck) {\n if (def.properties[propName].nullable === false && obj[propName] == null) {\n if (process.env.NODE_ENV !== \"production\") {\n client.logger?.debug({\n obj: {\n $objectType: obj[\"$objectType\"],\n $primaryKey: obj[\"$primaryKey\"],\n },\n }, `Found object that does not conform to its definition. Expected ${def.apiName}'s ${propName} to not be null.`);\n }\n return false;\n }\n }\n return true;\n}\nfunction invariantInterfacesAsViews(objectDef, interfaceApiName, client) {\n if (objectDef.interfaceMap?.[interfaceApiName] == null) {\n const warning = \"Interfaces are only supported 'as views' but your metadata object is missing the correct information. This suggests your interfaces have not been migrated to the newer version yet and you cannot use this version of the SDK.\";\n if (client.logger) {\n client.logger.warn(warning);\n }\n else {\n // eslint-disable-next-line no-console\n console.error(`WARNING! ${warning}`);\n }\n throw new Error(warning);\n }\n}\nfunction fixObjectPropertiesInPlace(objs, forceRemoveRid) {\n for (const obj of objs) {\n if (forceRemoveRid) {\n delete obj.__rid;\n }\n if (obj.__rid) {\n obj.$rid = obj.__rid;\n delete obj.__rid;\n }\n // Backend returns as __apiName but we want to stick to $ structure\n obj.$apiName = obj.__apiName;\n // for now these are the same but when we start doing interface projections the $objectType will always be underlying and\n // the $apiName will be for the current view (in current designs)\n obj.$objectType = obj.__apiName;\n // copying over for now as its always returned. In the future, this should just be inferred from underlying\n obj.$primaryKey = obj.__primaryKey;\n obj.$title = obj.__title;\n // we don't want people to use these\n delete obj.__apiName;\n delete obj.__primaryKey;\n delete obj.__title;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -127,7 +127,7 @@ export async function fetchObjectPage(client, objectType, args, objectSet) {
127
127
  excludeRid: !args?.$includeRid
128
128
  }));
129
129
  return Promise.resolve({
130
- data: await convertWireToOsdkObjects(client, r.data, undefined, undefined, args.$select, args.$__EXPERIMENTAL_strictNonNull),
130
+ data: await convertWireToOsdkObjects(client, r.data, undefined, undefined, args.$select),
131
131
  nextPageToken: r.nextPageToken,
132
132
  totalCount: r.totalCount
133
133
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","convertWireToOsdkObjects","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","where","value","fetchInterfacePage","client","interfaceType","args","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","$augment","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","$__EXPERIMENTAL_selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","$includeRid","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","r","OntologyObjectSets","load","select","excludeRid","Promise","resolve","$__EXPERIMENTAL_strictNonNull","nextPageToken","totalCount"],"sources":["fetchPage.js"],"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 */\nimport * as OntologiesV2 from \"@osdk/internal.foundry.ontologiesv2\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { convertWireToOsdkObjects } from \"./convertWireToOsdkObjects.js\";\nexport function augment(type, ...properties) {\n return { [type.apiName]: properties };\n}\n/** @internal */\nexport function objectSetToSearchJsonV2(objectSet, expectedApiName, existingWhere = undefined) {\n if (objectSet.type === \"base\") {\n if (objectSet.objectType !== expectedApiName) {\n throw new Error(`Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`);\n }\n return existingWhere;\n }\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(objectSet.objectSet, expectedApiName, existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n });\n }\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\nasync function fetchInterfacePage(client, interfaceType, args, objectSet) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, applyFetchArgs(args, {\n augmentedProperties: args.$augment ?? {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: args.$__EXPERIMENTAL_selectedObjectTypes ?? [],\n selectedSharedPropertyTypes: args.$select ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }), { preview: true });\n result.data = await convertWireToOsdkObjects(client, result.data, // drop readonly\n interfaceType.apiName, !args.$includeRid);\n return result;\n}\n/** @internal */\nexport async function fetchPageInternal(client, objectType, objectSet, args = {}) {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(client, objectType, args, objectSet); // fixme\n }\n else {\n return await fetchObjectPage(client, objectType, args, objectSet); // fixme\n }\n}\n/** @internal */\nexport async function fetchPageWithErrorsInternal(client, objectType, objectSet, args = {}) {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n }\n catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e };\n }\n}\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage(client, objectType, args, objectSet = {\n type: \"base\",\n objectType: objectType[\"apiName\"],\n}) {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n/** @internal */\nexport async function fetchPageWithErrors(client, objectType, args, objectSet = {\n type: \"base\",\n objectType: objectType[\"apiName\"],\n}) {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\nfunction applyFetchArgs(args, body) {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n return body;\n}\n/** @internal */\nexport async function fetchObjectPage(client, objectType, args, objectSet) {\n const r = await OntologiesV2.OntologyObjectSets.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, applyFetchArgs(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: (args?.$select ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n }));\n return Promise.resolve({\n data: await convertWireToOsdkObjects(client, r.data, undefined, undefined, args.$select, args.$__EXPERIMENTAL_strictNonNull),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,KAAKA,YAAY,MAAM,qCAAqC;AACnE,SAASC,oCAAoC,QAAQ,iDAAiD;AACtG,SAASC,wBAAwB,QAAQ,+BAA+B;AACxE,OAAO,SAASC,OAAOA,CAACC,IAAI,EAAE,GAAGC,UAAU,EAAE;EACzC,OAAO;IAAE,CAACD,IAAI,CAACE,OAAO,GAAGD;EAAW,CAAC;AACzC;AACA;AACA,OAAO,SAASE,uBAAuBA,CAACC,SAAS,EAAEC,eAAe,EAAEC,aAAa,GAAGC,SAAS,EAAE;EAC3F,IAAIH,SAAS,CAACJ,IAAI,KAAK,MAAM,EAAE;IAC3B,IAAII,SAAS,CAACI,UAAU,KAAKH,eAAe,EAAE;MAC1C,MAAM,IAAII,KAAK,CAAC,uCAAuCJ,eAAe,aAAaD,SAAS,CAACI,UAAU,EAAE,CAAC;IAC9G;IACA,OAAOF,aAAa;EACxB;EACA,IAAIF,SAAS,CAACJ,IAAI,KAAK,QAAQ,EAAE;IAC7B,OAAOG,uBAAuB,CAACC,SAAS,CAACA,SAAS,EAAEC,eAAe,EAAEC,aAAa,IAAI,IAAI,GAAGF,SAAS,CAACM,KAAK,GAAG;MAC3GV,IAAI,EAAE,KAAK;MACXW,KAAK,EAAE,CAACL,aAAa,EAAEF,SAAS,CAACM,KAAK;IAC1C,CAAC,CAAC;EACN;EACA,MAAM,IAAID,KAAK,CAAC,+BAA+BL,SAAS,CAACJ,IAAI,EAAE,CAAC;AACpE;AACA,eAAeY,kBAAkBA,CAACC,MAAM,EAAEC,aAAa,EAAEC,IAAI,EAAEX,SAAS,EAAE;EACtE,MAAMY,MAAM,GAAG,MAAMpB,YAAY,CAACqB,kBAAkB,CAC/CC,MAAM,CAACrB,oCAAoC,CAACgB,MAAM,EAAEC,aAAa,CAAC,EAAE,MAAMD,MAAM,CAACM,WAAW,EAAEL,aAAa,CAACZ,OAAO,EAAEkB,cAAc,CAACL,IAAI,EAAE;IAC3IM,mBAAmB,EAAEN,IAAI,CAACO,QAAQ,IAAI,CAAC,CAAC;IACxCC,4BAA4B,EAAE,CAAC,CAAC;IAChCC,mBAAmB,EAAE,EAAE;IACvBC,mBAAmB,EAAEV,IAAI,CAACW,mCAAmC,IAAI,EAAE;IACnEC,2BAA2B,EAAEZ,IAAI,CAACa,OAAO,IAAI,EAAE;IAC/ClB,KAAK,EAAEP,uBAAuB,CAACC,SAAS,EAAEU,aAAa,CAACZ,OAAO;EACnE,CAAC,CAAC,EAAE;IAAE2B,OAAO,EAAE;EAAK,CAAC,CAAC;EACtBb,MAAM,CAACc,IAAI,GAAG,MAAMhC,wBAAwB,CAACe,MAAM,EAAEG,MAAM,CAACc,IAAI;EAAE;EAClEhB,aAAa,CAACZ,OAAO,EAAE,CAACa,IAAI,CAACgB,WAAW,CAAC;EACzC,OAAOf,MAAM;AACjB;AACA;AACA,OAAO,eAAegB,iBAAiBA,CAACnB,MAAM,EAAEL,UAAU,EAAEJ,SAAS,EAAEW,IAAI,GAAG,CAAC,CAAC,EAAE;EAC9E,IAAIP,UAAU,CAACR,IAAI,KAAK,WAAW,EAAE;IACjC,OAAO,MAAMY,kBAAkB,CAACC,MAAM,EAAEL,UAAU,EAAEO,IAAI,EAAEX,SAAS,CAAC,CAAC,CAAC;EAC1E,CAAC,MACI;IACD,OAAO,MAAM6B,eAAe,CAACpB,MAAM,EAAEL,UAAU,EAAEO,IAAI,EAAEX,SAAS,CAAC,CAAC,CAAC;EACvE;AACJ;AACA;AACA,OAAO,eAAe8B,2BAA2BA,CAACrB,MAAM,EAAEL,UAAU,EAAEJ,SAAS,EAAEW,IAAI,GAAG,CAAC,CAAC,EAAE;EACxF,IAAI;IACA,MAAMC,MAAM,GAAG,MAAMgB,iBAAiB,CAACnB,MAAM,EAAEL,UAAU,EAAEJ,SAAS,EAAEW,IAAI,CAAC;IAC3E,OAAO;MAAEJ,KAAK,EAAEK;IAAO,CAAC;EAC5B,CAAC,CACD,OAAOmB,CAAC,EAAE;IACN,IAAIA,CAAC,YAAY1B,KAAK,EAAE;MACpB,OAAO;QAAE2B,KAAK,EAAED;MAAE,CAAC;IACvB;IACA,OAAO;MAAEC,KAAK,EAAED;IAAE,CAAC;EACvB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeE,SAASA,CAACxB,MAAM,EAAEL,UAAU,EAAEO,IAAI,EAAEX,SAAS,GAAG;EAClEJ,IAAI,EAAE,MAAM;EACZQ,UAAU,EAAEA,UAAU,CAAC,SAAS;AACpC,CAAC,EAAE;EACC,OAAOwB,iBAAiB,CAACnB,MAAM,EAAEL,UAAU,EAAEJ,SAAS,EAAEW,IAAI,CAAC;AACjE;AACA;AACA,OAAO,eAAeuB,mBAAmBA,CAACzB,MAAM,EAAEL,UAAU,EAAEO,IAAI,EAAEX,SAAS,GAAG;EAC5EJ,IAAI,EAAE,MAAM;EACZQ,UAAU,EAAEA,UAAU,CAAC,SAAS;AACpC,CAAC,EAAE;EACC,OAAO0B,2BAA2B,CAACrB,MAAM,EAAEL,UAAU,EAAEJ,SAAS,EAAEW,IAAI,CAAC;AAC3E;AACA,SAASK,cAAcA,CAACL,IAAI,EAAEwB,IAAI,EAAE;EAChC,IAAIxB,IAAI,EAAEyB,cAAc,EAAE;IACtBD,IAAI,CAACE,SAAS,GAAG1B,IAAI,CAACyB,cAAc;EACxC;EACA,IAAIzB,IAAI,EAAE2B,SAAS,IAAI,IAAI,EAAE;IACzBH,IAAI,CAACI,QAAQ,GAAG5B,IAAI,CAAC2B,SAAS;EAClC;EACA,IAAI3B,IAAI,EAAE6B,QAAQ,IAAI,IAAI,EAAE;IACxBL,IAAI,CAACM,OAAO,GAAG;MACXC,MAAM,EAAEC,MAAM,CAACC,OAAO,CAACjC,IAAI,CAAC6B,QAAQ,CAAC,CAACK,GAAG,CAAC,CAAC,CAACC,KAAK,EAAEC,SAAS,CAAC,MAAM;QAC/DD,KAAK;QACLC;MACJ,CAAC,CAAC;IACN,CAAC;EACL;EACA,OAAOZ,IAAI;AACf;AACA;AACA,OAAO,eAAeN,eAAeA,CAACpB,MAAM,EAAEL,UAAU,EAAEO,IAAI,EAAEX,SAAS,EAAE;EACvE,MAAMgD,CAAC,GAAG,MAAMxD,YAAY,CAACyD,kBAAkB,CAACC,IAAI,CAACzD,oCAAoC,CAACgB,MAAM,EAAEL,UAAU,CAAC,EAAE,MAAMK,MAAM,CAACM,WAAW,EAAEC,cAAc,CAACL,IAAI,EAAE;IAC1JX,SAAS;IACT;IACAmD,MAAM,EAAGxC,IAAI,EAAEa,OAAO,IAAI,EAAG;IAAE;IAC/B4B,UAAU,EAAE,CAACzC,IAAI,EAAEgB;EACvB,CAAC,CAAC,CAAC;EACH,OAAO0B,OAAO,CAACC,OAAO,CAAC;IACnB5B,IAAI,EAAE,MAAMhC,wBAAwB,CAACe,MAAM,EAAEuC,CAAC,CAACtB,IAAI,EAAEvB,SAAS,EAAEA,SAAS,EAAEQ,IAAI,CAACa,OAAO,EAAEb,IAAI,CAAC4C,6BAA6B,CAAC;IAC5HC,aAAa,EAAER,CAAC,CAACQ,aAAa;IAC9BC,UAAU,EAAET,CAAC,CAACS;EAClB,CAAC,CAAC;AACN","ignoreList":[]}
1
+ {"version":3,"file":"fetchPage.js","names":["OntologiesV2","addUserAgentAndRequestContextHeaders","convertWireToOsdkObjects","augment","type","properties","apiName","objectSetToSearchJsonV2","objectSet","expectedApiName","existingWhere","undefined","objectType","Error","where","value","fetchInterfacePage","client","interfaceType","args","result","OntologyInterfaces","search","ontologyRid","applyFetchArgs","augmentedProperties","$augment","augmentedSharedPropertyTypes","otherInterfaceTypes","selectedObjectTypes","$__EXPERIMENTAL_selectedObjectTypes","selectedSharedPropertyTypes","$select","preview","data","$includeRid","fetchPageInternal","fetchObjectPage","fetchPageWithErrorsInternal","e","error","fetchPage","fetchPageWithErrors","body","$nextPageToken","pageToken","$pageSize","pageSize","$orderBy","orderBy","fields","Object","entries","map","field","direction","r","OntologyObjectSets","load","select","excludeRid","Promise","resolve","nextPageToken","totalCount"],"sources":["fetchPage.js"],"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 */\nimport * as OntologiesV2 from \"@osdk/internal.foundry.ontologiesv2\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { convertWireToOsdkObjects } from \"./convertWireToOsdkObjects.js\";\nexport function augment(type, ...properties) {\n return { [type.apiName]: properties };\n}\n/** @internal */\nexport function objectSetToSearchJsonV2(objectSet, expectedApiName, existingWhere = undefined) {\n if (objectSet.type === \"base\") {\n if (objectSet.objectType !== expectedApiName) {\n throw new Error(`Expected objectSet.objectType to be ${expectedApiName}, but got ${objectSet.objectType}`);\n }\n return existingWhere;\n }\n if (objectSet.type === \"filter\") {\n return objectSetToSearchJsonV2(objectSet.objectSet, expectedApiName, existingWhere == null ? objectSet.where : {\n type: \"and\",\n value: [existingWhere, objectSet.where],\n });\n }\n throw new Error(`Unsupported objectSet type: ${objectSet.type}`);\n}\nasync function fetchInterfacePage(client, interfaceType, args, objectSet) {\n const result = await OntologiesV2.OntologyInterfaces\n .search(addUserAgentAndRequestContextHeaders(client, interfaceType), await client.ontologyRid, interfaceType.apiName, applyFetchArgs(args, {\n augmentedProperties: args.$augment ?? {},\n augmentedSharedPropertyTypes: {},\n otherInterfaceTypes: [],\n selectedObjectTypes: args.$__EXPERIMENTAL_selectedObjectTypes ?? [],\n selectedSharedPropertyTypes: args.$select ?? [],\n where: objectSetToSearchJsonV2(objectSet, interfaceType.apiName),\n }), { preview: true });\n result.data = await convertWireToOsdkObjects(client, result.data, // drop readonly\n interfaceType.apiName, !args.$includeRid);\n return result;\n}\n/** @internal */\nexport async function fetchPageInternal(client, objectType, objectSet, args = {}) {\n if (objectType.type === \"interface\") {\n return await fetchInterfacePage(client, objectType, args, objectSet); // fixme\n }\n else {\n return await fetchObjectPage(client, objectType, args, objectSet); // fixme\n }\n}\n/** @internal */\nexport async function fetchPageWithErrorsInternal(client, objectType, objectSet, args = {}) {\n try {\n const result = await fetchPageInternal(client, objectType, objectSet, args);\n return { value: result };\n }\n catch (e) {\n if (e instanceof Error) {\n return { error: e };\n }\n return { error: e };\n }\n}\n/**\n * @param client\n * @param objectType\n * @param args\n * @param objectSet\n * @returns\n * @internal\n */\nexport async function fetchPage(client, objectType, args, objectSet = {\n type: \"base\",\n objectType: objectType[\"apiName\"],\n}) {\n return fetchPageInternal(client, objectType, objectSet, args);\n}\n/** @internal */\nexport async function fetchPageWithErrors(client, objectType, args, objectSet = {\n type: \"base\",\n objectType: objectType[\"apiName\"],\n}) {\n return fetchPageWithErrorsInternal(client, objectType, objectSet, args);\n}\nfunction applyFetchArgs(args, body) {\n if (args?.$nextPageToken) {\n body.pageToken = args.$nextPageToken;\n }\n if (args?.$pageSize != null) {\n body.pageSize = args.$pageSize;\n }\n if (args?.$orderBy != null) {\n body.orderBy = {\n fields: Object.entries(args.$orderBy).map(([field, direction]) => ({\n field,\n direction,\n })),\n };\n }\n return body;\n}\n/** @internal */\nexport async function fetchObjectPage(client, objectType, args, objectSet) {\n const r = await OntologiesV2.OntologyObjectSets.load(addUserAgentAndRequestContextHeaders(client, objectType), await client.ontologyRid, applyFetchArgs(args, {\n objectSet,\n // We have to do the following case because LoadObjectSetRequestV2 isn't readonly\n select: (args?.$select ?? []), // FIXME?\n excludeRid: !args?.$includeRid,\n }));\n return Promise.resolve({\n data: await convertWireToOsdkObjects(client, r.data, undefined, undefined, args.$select),\n nextPageToken: r.nextPageToken,\n totalCount: r.totalCount,\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -193,33 +193,45 @@ describe("ObjectSet", () => {
193
193
  }
194
194
  });
195
195
  describe.each(["fetchPage", "fetchPageWithErrors"])("%s", k => {
196
- describe("strictNonNull: \"drop\"", () => {
197
- describe("includeRid: true", () => {
198
- it("drops bad data", async () => {
199
- const opts = {
200
- $__EXPERIMENTAL_strictNonNull: "drop",
201
- $includeRid: true
202
- };
203
- const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
204
- expect(result.data).toHaveLength(3);
205
- expectTypeOf(result.data[0]).branded.toEqualTypeOf();
206
- expectTypeOf(result.data[0]).branded.toEqualTypeOf();
207
- });
208
- });
209
- describe("includeRid: false", () => {
210
- it("drops bad data", async () => {
211
- const opts = {
212
- $__EXPERIMENTAL_strictNonNull: "drop",
213
- $includeRid: false
214
- };
215
- const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
216
- expect(result.data).toHaveLength(3);
217
- expectTypeOf(result.data[0]).branded.toEqualTypeOf();
218
- expectTypeOf(result.data[0]).branded.toEqualTypeOf();
219
- expectTypeOf(result.data[0]).branded.toEqualTypeOf();
220
- });
221
- });
222
- });
196
+ // describe("strictNonNull: \"drop\"", () => {
197
+ // describe("includeRid: true", () => {
198
+ // it("drops bad data", async () => {
199
+ // const opts = {
200
+ // $__EXPERIMENTAL_strictNonNull: "drop",
201
+ // $includeRid: true,
202
+ // } as const;
203
+ // const result = k === "fetchPage"
204
+ // ? await client(Employee).fetchPage(opts)
205
+ // : (await client(Employee).fetchPageWithErrors(opts)).value!;
206
+ // expect(result.data).toHaveLength(3);
207
+ // expectTypeOf(result.data[0]).branded.toEqualTypeOf<
208
+ // Osdk<Employee, "$rid" | "$all">
209
+ // >();
210
+ // expectTypeOf(result.data[0]).branded.toEqualTypeOf<
211
+ // Employee.OsdkObject<"$rid">
212
+ // >();
213
+ // });
214
+ // });
215
+ // describe("includeRid: false", () => {
216
+ // it("drops bad data", async () => {
217
+ // const opts = {
218
+ // $__EXPERIMENTAL_strictNonNull: "drop",
219
+ // $includeRid: false,
220
+ // } as const;
221
+ // const result = k === "fetchPage"
222
+ // ? await client(Employee).fetchPage(opts)
223
+ // : (await client(Employee).fetchPageWithErrors(opts)).value!;
224
+ // expect(result.data).toHaveLength(3);
225
+ // expectTypeOf(result.data[0]).branded.toEqualTypeOf<Osdk<Employee>>();
226
+ // expectTypeOf(result.data[0]).branded.toEqualTypeOf<
227
+ // Employee.OsdkObject
228
+ // >();
229
+ // expectTypeOf(result.data[0]).branded.toEqualTypeOf<
230
+ // Employee.OsdkObject<never>
231
+ // >();
232
+ // });
233
+ // });
234
+ // });
223
235
  describe("strictNonNull: false", () => {
224
236
  describe("includeRid: true", () => {
225
237
  it("returns bad data", async () => {
@@ -235,8 +247,7 @@ describe("ObjectSet", () => {
235
247
  describe("includeRid: false", () => {
236
248
  it("returns bad data", async () => {
237
249
  const opts = {
238
- $__EXPERIMENTAL_strictNonNull: false,
239
- includeRid: false
250
+ $includeRid: false
240
251
  };
241
252
  const result = k === "fetchPage" ? await client(Employee).fetchPage(opts) : (await client(Employee).fetchPageWithErrors(opts)).value;
242
253
  expect(result.data).toHaveLength(4);
@@ -245,17 +256,11 @@ describe("ObjectSet", () => {
245
256
  });
246
257
  });
247
258
  });
248
- describe("strictNonNull: \"throw\"", () => {
249
- it("throws when getting bad data", () => {
250
- expect(() => client(Employee).fetchPage({
251
- $__EXPERIMENTAL_strictNonNull: "throw"
252
- })).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);
253
- });
254
- });
255
259
  describe.each(["fetchOne", "fetchOneWithErrors"])("%s", k => {
256
260
  describe("strictNonNull: false", () => {
257
261
  describe("includeRid: true", () => {
258
262
  it("returns bad data", async () => {
263
+ // Look at this
259
264
  const opts = {
260
265
  $__EXPERIMENTAL_strictNonNull: false,
261
266
  $includeRid: true
@@ -269,7 +274,7 @@ describe("ObjectSet", () => {
269
274
  it("returns bad data", async () => {
270
275
  const opts = {
271
276
  $__EXPERIMENTAL_strictNonNull: false,
272
- includeRid: false
277
+ $includeRid: false
273
278
  };
274
279
  const result = k === "fetchOne" ? await client(Employee).fetchOne(50033, opts) : (await client(Employee).fetchOneWithErrors(50033, opts)).value;
275
280
  expect(result).not.toBeUndefined();
@@ -278,19 +283,10 @@ describe("ObjectSet", () => {
278
283
  });
279
284
  });
280
285
  });
281
- describe("strictNonNull: \"throw\"", () => {
282
- it("throws when getting bad data", () => {
283
- expect(() => client(Employee).fetchPage({
284
- $__EXPERIMENTAL_strictNonNull: "throw"
285
- })).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);
286
- });
287
- });
288
286
  describe("conversions", () => {
289
287
  describe("strictNonNull: false", () => {
290
288
  it("returns bad data", async () => {
291
- const result = await client(Employee).fetchPage({
292
- $__EXPERIMENTAL_strictNonNull: false
293
- });
289
+ const result = await client(Employee).fetchPage({});
294
290
  const empNotStrict = result.data[0];
295
291
  expectTypeOf(empNotStrict).branded.toEqualTypeOf();
296
292
  expectTypeOf(empNotStrict).branded.toEqualTypeOf();
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSet.test.js","names":["isOk","$ontologyRid","Employee","FooInterface","Office","apiServer","stubData","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","employeeObjectSet","officeObjectSet","union","subtract","intersect","objectSet","unionedObjectSet","iter","data","employees","fetchPage","emp","employeeId","toEqual","objectSet2","where","subtractedObjectSet","intersectedObjectSet","$orderBy","toMatchObject","$apiName","$objectType","$primaryKey","class","employeeStatus","anything","fullName","office","startDate","employeeLocation","$title","employee","fetchOne","employee1","toMatchTypeOf","toBe","employeeResult","fetchOneWithErrors","value","$select","branded","toEqualTypeOf","rejects","toThrow","employee2","pivotTo","result","fetchPageWithErrors","each","k","opts","$__EXPERIMENTAL_strictNonNull","$includeRid","toHaveLength","includeRid","toThrowErrorMatchingInlineSnapshot","not","toBeUndefined","empNotStrict","cheesedFooNotStrict","$as","fooSpt"],"sources":["ObjectSet.test.js"],"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 */\nimport { isOk } from \"@osdk/api\";\nimport { $ontologyRid, Employee, FooInterface, Office, } from \"@osdk/client.test.ontology\";\nimport { apiServer, stubData } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, expectTypeOf, it, } from \"vitest\";\nimport { createClient } from \"../createClient.js\";\ndescribe(\"ObjectSet\", () => {\n let client;\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\"https://stack.palantir.com\", $ontologyRid, async () => \"myAccessToken\");\n });\n afterAll(() => {\n apiServer.close();\n });\n it(\"does not allow intersect/union/subtract with different object types\", () => {\n const employeeObjectSet = client(Employee);\n const officeObjectSet = client(Office);\n // @ts-expect-error\n employeeObjectSet.union(officeObjectSet);\n // @ts-expect-error\n employeeObjectSet.subtract(officeObjectSet);\n // @ts-expect-error\n employeeObjectSet.intersect(officeObjectSet);\n });\n it(\"can be cast bidirectionally\", () => {\n function takesOldStyleObjectSet(os) {\n return os;\n }\n function takesNewStyleObjectSet(os) {\n return os;\n }\n function maybe() {\n const newStyleObjectSet = client(Employee);\n const oldStyleObjectSet = newStyleObjectSet;\n takesOldStyleObjectSet(newStyleObjectSet);\n takesNewStyleObjectSet(newStyleObjectSet);\n takesOldStyleObjectSet(oldStyleObjectSet);\n takesNewStyleObjectSet(oldStyleObjectSet);\n }\n if (false) {\n // here for a simple type check\n maybe();\n }\n });\n it(\"objects set union\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n let iter = 0;\n const { data: employees } = await unionedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50030 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n });\n it(\"objects set subtract\", async () => {\n const objectSet = client(Employee);\n const objectSet2 = client(Employee).where({\n employeeId: 50030,\n });\n const subtractedObjectSet = objectSet.subtract(objectSet2);\n let iter = 0;\n const { data: employees } = await subtractedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50031 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n });\n it(\"objects set intersect\", async () => {\n const objectSet = client(Employee);\n const intersectedObjectSet = objectSet.intersect(objectSet);\n let iter = 0;\n const { data: employees } = await intersectedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50032);\n iter += 1;\n }\n expect(iter).toEqual(1);\n });\n it(\"orders objects in ascending order without a filter, and returns all results\", async () => {\n const { data: employees } = await client(Employee)\n .fetchPage({\n $orderBy: { \"employeeId\": \"asc\" },\n });\n expect(employees).toMatchObject([\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50030,\n class: \"Red\",\n employeeId: 50030,\n employeeStatus: expect.anything(),\n fullName: \"John Doe\",\n office: \"NYC\",\n startDate: \"2019-01-01\",\n employeeLocation: expect.anything(),\n },\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $title: \"Jane Doe\",\n class: \"Blue\",\n employeeId: 50031,\n employeeStatus: expect.anything(),\n fullName: \"Jane Doe\",\n office: \"SEA\",\n startDate: \"2012-02-12\",\n employeeLocation: expect.anything(),\n },\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50032,\n $title: \"Jack Smith\",\n class: \"Red\",\n employeeId: 50032,\n employeeStatus: expect.anything(),\n fullName: \"Jack Smith\",\n office: \"LON\",\n startDate: \"2015-05-15\",\n employeeLocation: expect.anything(),\n },\n ]);\n });\n it(\"allows fetching by PK from a base object set - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(stubData.employee1.employeeId);\n expectTypeOf().toMatchTypeOf;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n it(\"allows fetching by PK from a base object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(stubData.employee1.employeeId);\n expectTypeOf().toMatchTypeOf;\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n it(\"allows fetching by PK from a base object set with selected properties - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(stubData.employee1.employeeId, { $select: [\"fullName\"] });\n expectTypeOf().branded.toEqualTypeOf;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n it(\"allows fetching by PK from a base object set with selected properties - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(stubData.employee1.employeeId, { $select: [\"fullName\"] });\n expectTypeOf().branded.toEqualTypeOf;\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n it(\"throws when fetching by PK with an object that does not exist - fetchOne\", async () => {\n await expect(client(Employee).fetchOne(-1)).rejects\n .toThrow();\n });\n it(\"throws when fetching by PK with an object that does not exist - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(-1);\n expectTypeOf().branded.toEqualTypeOf;\n expect(\"error\" in employeeResult);\n });\n it(\"allows fetching by PK from a pivoted object set - fetchOne\", async () => {\n const employee = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOne(stubData.employee1.employeeId);\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n it(\"allows fetching by PK from a pivoted object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOneWithErrors(stubData.employee1.employeeId);\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n it(\" object set union works with fetchPageWithErrors\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n let iter = 0;\n const result = await unionedObjectSet.fetchPageWithErrors();\n if (isOk(result)) {\n const employees = result.value.data;\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50030 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n }\n });\n describe.each([\"fetchPage\", \"fetchPageWithErrors\"])(\"%s\", (k) => {\n describe(\"strictNonNull: \\\"drop\\\"\", () => {\n describe(\"includeRid: true\", () => {\n it(\"drops bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: \"drop\",\n $includeRid: true,\n };\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value;\n expect(result.data).toHaveLength(3);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n });\n });\n describe(\"includeRid: false\", () => {\n it(\"drops bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: \"drop\",\n $includeRid: false,\n };\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value;\n expect(result.data).toHaveLength(3);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n });\n });\n });\n describe(\"strictNonNull: false\", () => {\n describe(\"includeRid: true\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: true,\n };\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value;\n expect(result.data).toHaveLength(4);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n });\n });\n describe(\"includeRid: false\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n includeRid: false,\n };\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value;\n expect(result.data).toHaveLength(4);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n });\n });\n });\n });\n describe(\"strictNonNull: \\\"throw\\\"\", () => {\n it(\"throws when getting bad data\", () => {\n expect(() => client(Employee).fetchPage({\n $__EXPERIMENTAL_strictNonNull: \"throw\",\n })).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n });\n describe.each([\"fetchOne\", \"fetchOneWithErrors\"])(\"%s\", (k) => {\n describe(\"strictNonNull: false\", () => {\n describe(\"includeRid: true\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: true,\n };\n const result = k === \"fetchOne\"\n ? await client(Employee).fetchOne(50033, opts)\n : (await client(Employee).fetchOneWithErrors(50033, opts)).value;\n expect(result).not.toBeUndefined();\n expectTypeOf(result).branded.toEqualTypeOf();\n });\n });\n describe(\"includeRid: false\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n includeRid: false,\n };\n const result = k === \"fetchOne\"\n ? await client(Employee).fetchOne(50033, opts)\n : (await client(Employee).fetchOneWithErrors(50033, opts)).value;\n expect(result).not.toBeUndefined();\n expectTypeOf(result).branded.toEqualTypeOf();\n });\n });\n });\n });\n describe(\"strictNonNull: \\\"throw\\\"\", () => {\n it(\"throws when getting bad data\", () => {\n expect(() => client(Employee).fetchPage({\n $__EXPERIMENTAL_strictNonNull: \"throw\",\n })).rejects.toThrowErrorMatchingInlineSnapshot(`[Error: Unable to safely convert objects as some non nullable properties are null]`);\n });\n });\n describe(\"conversions\", () => {\n describe(\"strictNonNull: false\", () => {\n it(\"returns bad data\", async () => {\n const result = await client(Employee).fetchPage({\n $__EXPERIMENTAL_strictNonNull: false,\n });\n const empNotStrict = result.data[0];\n const empNotStrict2 = empNotStrict;\n expectTypeOf(empNotStrict).branded.toEqualTypeOf();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf();\n expectTypeOf(empNotStrict.employeeId).toEqualTypeOf();\n expectTypeOf(empNotStrict2.employeeId).toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n const CheesedFoo = FooInterface;\n const cheesedFooNotStrict = result.data[0].$as(CheesedFoo);\n expectTypeOf(cheesedFooNotStrict).branded.toEqualTypeOf();\n cheesedFooNotStrict.fooSpt;\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSet.test.js","names":["isOk","$ontologyRid","Employee","FooInterface","Office","apiServer","stubData","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","employeeObjectSet","officeObjectSet","union","subtract","intersect","objectSet","unionedObjectSet","iter","data","employees","fetchPage","emp","employeeId","toEqual","objectSet2","where","subtractedObjectSet","intersectedObjectSet","$orderBy","toMatchObject","$apiName","$objectType","$primaryKey","class","employeeStatus","anything","fullName","office","startDate","employeeLocation","$title","employee","fetchOne","employee1","toMatchTypeOf","toBe","employeeResult","fetchOneWithErrors","value","$select","branded","toEqualTypeOf","rejects","toThrow","employee2","pivotTo","result","fetchPageWithErrors","each","k","opts","$__EXPERIMENTAL_strictNonNull","$includeRid","toHaveLength","not","toBeUndefined","empNotStrict","cheesedFooNotStrict","$as","fooSpt"],"sources":["ObjectSet.test.js"],"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 */\nimport { isOk } from \"@osdk/api\";\nimport { $ontologyRid, Employee, FooInterface, Office, } from \"@osdk/client.test.ontology\";\nimport { apiServer, stubData } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, expectTypeOf, it, } from \"vitest\";\nimport { createClient } from \"../createClient.js\";\ndescribe(\"ObjectSet\", () => {\n let client;\n beforeAll(async () => {\n apiServer.listen();\n client = createClient(\"https://stack.palantir.com\", $ontologyRid, async () => \"myAccessToken\");\n });\n afterAll(() => {\n apiServer.close();\n });\n it(\"does not allow intersect/union/subtract with different object types\", () => {\n const employeeObjectSet = client(Employee);\n const officeObjectSet = client(Office);\n // @ts-expect-error\n employeeObjectSet.union(officeObjectSet);\n // @ts-expect-error\n employeeObjectSet.subtract(officeObjectSet);\n // @ts-expect-error\n employeeObjectSet.intersect(officeObjectSet);\n });\n it(\"can be cast bidirectionally\", () => {\n function takesOldStyleObjectSet(os) {\n return os;\n }\n function takesNewStyleObjectSet(os) {\n return os;\n }\n function maybe() {\n const newStyleObjectSet = client(Employee);\n const oldStyleObjectSet = newStyleObjectSet;\n takesOldStyleObjectSet(newStyleObjectSet);\n takesNewStyleObjectSet(newStyleObjectSet);\n takesOldStyleObjectSet(oldStyleObjectSet);\n takesNewStyleObjectSet(oldStyleObjectSet);\n }\n if (false) {\n // here for a simple type check\n maybe();\n }\n });\n it(\"objects set union\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n let iter = 0;\n const { data: employees } = await unionedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50030 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n });\n it(\"objects set subtract\", async () => {\n const objectSet = client(Employee);\n const objectSet2 = client(Employee).where({\n employeeId: 50030,\n });\n const subtractedObjectSet = objectSet.subtract(objectSet2);\n let iter = 0;\n const { data: employees } = await subtractedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50031 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n });\n it(\"objects set intersect\", async () => {\n const objectSet = client(Employee);\n const intersectedObjectSet = objectSet.intersect(objectSet);\n let iter = 0;\n const { data: employees } = await intersectedObjectSet.fetchPage();\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50032);\n iter += 1;\n }\n expect(iter).toEqual(1);\n });\n it(\"orders objects in ascending order without a filter, and returns all results\", async () => {\n const { data: employees } = await client(Employee)\n .fetchPage({\n $orderBy: { \"employeeId\": \"asc\" },\n });\n expect(employees).toMatchObject([\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50030,\n class: \"Red\",\n employeeId: 50030,\n employeeStatus: expect.anything(),\n fullName: \"John Doe\",\n office: \"NYC\",\n startDate: \"2019-01-01\",\n employeeLocation: expect.anything(),\n },\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n $title: \"Jane Doe\",\n class: \"Blue\",\n employeeId: 50031,\n employeeStatus: expect.anything(),\n fullName: \"Jane Doe\",\n office: \"SEA\",\n startDate: \"2012-02-12\",\n employeeLocation: expect.anything(),\n },\n {\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50032,\n $title: \"Jack Smith\",\n class: \"Red\",\n employeeId: 50032,\n employeeStatus: expect.anything(),\n fullName: \"Jack Smith\",\n office: \"LON\",\n startDate: \"2015-05-15\",\n employeeLocation: expect.anything(),\n },\n ]);\n });\n it(\"allows fetching by PK from a base object set - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(stubData.employee1.employeeId);\n expectTypeOf().toMatchTypeOf;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n it(\"allows fetching by PK from a base object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(stubData.employee1.employeeId);\n expectTypeOf().toMatchTypeOf;\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n it(\"allows fetching by PK from a base object set with selected properties - fetchOne\", async () => {\n const employee = await client(Employee).fetchOne(stubData.employee1.employeeId, { $select: [\"fullName\"] });\n expectTypeOf().branded.toEqualTypeOf;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n it(\"allows fetching by PK from a base object set with selected properties - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(stubData.employee1.employeeId, { $select: [\"fullName\"] });\n expectTypeOf().branded.toEqualTypeOf;\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n it(\"throws when fetching by PK with an object that does not exist - fetchOne\", async () => {\n await expect(client(Employee).fetchOne(-1)).rejects\n .toThrow();\n });\n it(\"throws when fetching by PK with an object that does not exist - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee)\n .fetchOneWithErrors(-1);\n expectTypeOf().branded.toEqualTypeOf;\n expect(\"error\" in employeeResult);\n });\n it(\"allows fetching by PK from a pivoted object set - fetchOne\", async () => {\n const employee = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOne(stubData.employee1.employeeId);\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n });\n it(\"allows fetching by PK from a pivoted object set - fetchOneWithErrors\", async () => {\n const employeeResult = await client(Employee).where({\n employeeId: stubData.employee2.employeeId,\n })\n .pivotTo(\"peeps\").fetchOneWithErrors(stubData.employee1.employeeId);\n if (isOk(employeeResult)) {\n const employee = employeeResult.value;\n expect(employee.$primaryKey).toBe(stubData.employee1.employeeId);\n }\n });\n it(\" object set union works with fetchPageWithErrors\", async () => {\n const objectSet = client(Employee);\n const unionedObjectSet = objectSet.union(objectSet);\n let iter = 0;\n const result = await unionedObjectSet.fetchPageWithErrors();\n if (isOk(result)) {\n const employees = result.value.data;\n for (const emp of employees) {\n expect(emp.employeeId).toEqual(50030 + iter);\n iter += 1;\n }\n expect(iter).toEqual(2);\n }\n });\n describe.each([\"fetchPage\", \"fetchPageWithErrors\"])(\"%s\", (k) => {\n // describe(\"strictNonNull: \\\"drop\\\"\", () => {\n // describe(\"includeRid: true\", () => {\n // it(\"drops bad data\", async () => {\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: \"drop\",\n // $includeRid: true,\n // } as const;\n // const result = k === \"fetchPage\"\n // ? await client(Employee).fetchPage(opts)\n // : (await client(Employee).fetchPageWithErrors(opts)).value!;\n // expect(result.data).toHaveLength(3);\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Osdk<Employee, \"$rid\" | \"$all\">\n // >();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject<\"$rid\">\n // >();\n // });\n // });\n // describe(\"includeRid: false\", () => {\n // it(\"drops bad data\", async () => {\n // const opts = {\n // $__EXPERIMENTAL_strictNonNull: \"drop\",\n // $includeRid: false,\n // } as const;\n // const result = k === \"fetchPage\"\n // ? await client(Employee).fetchPage(opts)\n // : (await client(Employee).fetchPageWithErrors(opts)).value!;\n // expect(result.data).toHaveLength(3);\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<Osdk<Employee>>();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject\n // >();\n // expectTypeOf(result.data[0]).branded.toEqualTypeOf<\n // Employee.OsdkObject<never>\n // >();\n // });\n // });\n // });\n describe(\"strictNonNull: false\", () => {\n describe(\"includeRid: true\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: true,\n };\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value;\n expect(result.data).toHaveLength(4);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n });\n });\n describe(\"includeRid: false\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $includeRid: false,\n };\n const result = k === \"fetchPage\"\n ? await client(Employee).fetchPage(opts)\n : (await client(Employee).fetchPageWithErrors(opts)).value;\n expect(result.data).toHaveLength(4);\n expectTypeOf(result.data[0]).branded.toEqualTypeOf();\n });\n });\n });\n });\n describe.each([\"fetchOne\", \"fetchOneWithErrors\"])(\"%s\", (k) => {\n describe(\"strictNonNull: false\", () => {\n describe(\"includeRid: true\", () => {\n it(\"returns bad data\", async () => {\n // Look at this\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: true,\n };\n const result = k === \"fetchOne\"\n ? await client(Employee).fetchOne(50033, opts)\n : (await client(Employee).fetchOneWithErrors(50033, opts)).value;\n expect(result).not.toBeUndefined();\n expectTypeOf(result).branded.toEqualTypeOf();\n });\n });\n describe(\"includeRid: false\", () => {\n it(\"returns bad data\", async () => {\n const opts = {\n $__EXPERIMENTAL_strictNonNull: false,\n $includeRid: false,\n };\n const result = k === \"fetchOne\"\n ? await client(Employee).fetchOne(50033, opts)\n : (await client(Employee).fetchOneWithErrors(50033, opts)).value;\n expect(result).not.toBeUndefined();\n expectTypeOf(result).branded.toEqualTypeOf();\n });\n });\n });\n });\n describe(\"conversions\", () => {\n describe(\"strictNonNull: false\", () => {\n it(\"returns bad data\", async () => {\n const result = await client(Employee).fetchPage({});\n const empNotStrict = result.data[0];\n const empNotStrict2 = empNotStrict;\n expectTypeOf(empNotStrict).branded.toEqualTypeOf();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf();\n expectTypeOf(empNotStrict).branded.toEqualTypeOf();\n expectTypeOf(empNotStrict.employeeId).toEqualTypeOf();\n expectTypeOf(empNotStrict2.employeeId).toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n expectTypeOf()\n .toEqualTypeOf();\n const CheesedFoo = FooInterface;\n const cheesedFooNotStrict = result.data[0].$as(CheesedFoo);\n expectTypeOf(cheesedFooNotStrict).branded.toEqualTypeOf();\n cheesedFooNotStrict.fooSpt;\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,6 @@
16
16
  import WebSocket from "isomorphic-ws";
17
17
  import invariant from "tiny-invariant";
18
18
  import { convertWireToOsdkObjects } from "../object/convertWireToOsdkObjects.js";
19
- const ONE_DAY_MS = 24 * 60 * 60 * 1000;
20
19
  const MINIMUM_RECONNECT_DELAY_MS = 5 * 1000;
21
20
  /** Noop function to reduce conditional checks */
22
21
  function doNothing() {}
@@ -26,12 +25,14 @@ function doNothing() {}
26
25
  function fillOutListener({
27
26
  onChange = doNothing,
28
27
  onError = doNothing,
29
- onOutOfDate = doNothing
28
+ onOutOfDate = doNothing,
29
+ onSuccessfulSubscription = doNothing
30
30
  }) {
31
31
  return {
32
32
  onChange,
33
33
  onError,
34
- onOutOfDate
34
+ onOutOfDate,
35
+ onSuccessfulSubscription
35
36
  };
36
37
  }
37
38
  function isReady(sub) {
@@ -43,7 +44,6 @@ function subscriptionIsDone(sub) {
43
44
  /** @internal */
44
45
  export class ObjectSetListenerWebsocket {
45
46
  static #instances = new WeakMap();
46
- OBJECT_SET_EXPIRY_MS;
47
47
  MINIMUM_RECONNECT_DELAY_MS;
48
48
  // FIXME
49
49
  static getInstance(client) {
@@ -70,16 +70,14 @@ export class ObjectSetListenerWebsocket {
70
70
  #maybeDisconnectTimeout;
71
71
  // DO NOT CONSTRUCT DIRECTLY. ONLY EXPOSED AS A TESTING SEAM
72
72
  constructor(client, {
73
- objectSetExpiryMs = ONE_DAY_MS,
74
73
  minimumReconnectDelayMs = MINIMUM_RECONNECT_DELAY_MS
75
74
  } = {}) {
76
- this.OBJECT_SET_EXPIRY_MS = objectSetExpiryMs;
77
75
  this.MINIMUM_RECONNECT_DELAY_MS = minimumReconnectDelayMs;
78
76
  this.#client = client;
79
77
  this.#logger = client.logger?.child({}, {
80
78
  msgPrefix: "<OSW> "
81
79
  });
82
- !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? invariant(false, "Stack must be a URL") : void 0;
80
+ !(client.baseUrl.startsWith("https://") || client.baseUrl.startsWith("http://")) ? process.env.NODE_ENV !== "production" ? invariant(false, "Stack must be a URL") : invariant(false) : void 0;
83
81
  }
84
82
  async subscribe(objectType, objectSet, listener, properties) {
85
83
  // Node 18 does not expose 'crypto' on globalThis, so we need to do it ourselves. This
@@ -117,16 +115,9 @@ export class ObjectSetListenerWebsocket {
117
115
  * @returns
118
116
  */
119
117
  async #initiateSubscribe(sub) {
120
- if (process?.env?.NODE_ENV !== "production") {
118
+ if (process.env.NODE_ENV !== "production") {
121
119
  this.#logger?.trace("#initiateSubscribe()");
122
120
  }
123
- if (sub.expiry) {
124
- clearTimeout(sub.expiry);
125
- }
126
- // expiry is tied to the temporary object set, which is set to `timeToLive: "ONE_DAY"`
127
- // in `#createTemporaryObjectSet`. They should be in sync
128
- sub.expiry = setTimeout(() => this.#expire(sub), this.OBJECT_SET_EXPIRY_MS);
129
- await this.#client.ontologyRid;
130
121
  try {
131
122
  await this.#ensureWebsocket();
132
123
  // the consumer may have already unsubscribed before we are ready to request a subscription
@@ -145,7 +136,7 @@ export class ObjectSetListenerWebsocket {
145
136
  }
146
137
  }
147
138
  #sendSubscribeMessage() {
148
- if (process?.env?.NODE_ENV !== "production") {
139
+ if (process.env.NODE_ENV !== "production") {
149
140
  this.#logger?.trace("#sendSubscribeMessage()");
150
141
  }
151
142
  // If two calls to `.subscribe()` happen at once (or if the connection is reset),
@@ -153,7 +144,7 @@ export class ObjectSetListenerWebsocket {
153
144
  // so we filter those out.
154
145
  const readySubs = [...this.#subscriptions.values()].filter(isReady);
155
146
  if (readySubs.length === 0) {
156
- if (process?.env?.NODE_ENV !== "production") {
147
+ if (process.env.NODE_ENV !== "production") {
157
148
  this.#logger?.trace("#sendSubscribeMessage(): aborting due to no ready subscriptions");
158
149
  }
159
150
  return;
@@ -178,24 +169,13 @@ export class ObjectSetListenerWebsocket {
178
169
  };
179
170
  })
180
171
  };
181
- if (process?.env?.NODE_ENV !== "production") {
172
+ if (process.env.NODE_ENV !== "production") {
182
173
  this.#logger?.trace({
183
174
  payload: subscribe
184
175
  }, "sending subscribe message");
185
176
  }
186
177
  this.#ws?.send(JSON.stringify(subscribe));
187
178
  }
188
- #expire(sub) {
189
- if (process?.env?.NODE_ENV !== "production") {
190
- this.#logger?.trace({
191
- subscription: sub
192
- }, "#expire()");
193
- }
194
- // the temporary ObjectSet has expired, we should re-subscribe which will cause the
195
- // listener to get an onOutOfDate message when it becomes subscribed again
196
- sub.status = "expired";
197
- this.#initiateSubscribe(sub);
198
- }
199
179
  #unsubscribe(sub, newStatus = "done") {
200
180
  if (subscriptionIsDone(sub)) {
201
181
  // if we are already done, we don't need to do anything
@@ -204,11 +184,8 @@ export class ObjectSetListenerWebsocket {
204
184
  sub.status = newStatus;
205
185
  // make sure listeners do nothing now
206
186
  sub.listener = fillOutListener({});
207
- if (sub.expiry) {
208
- clearTimeout(sub.expiry);
209
- sub.expiry = undefined;
210
- }
211
187
  this.#subscriptions.delete(sub.subscriptionId);
188
+ this.#sendSubscribeMessage();
212
189
  // If we have no more subscriptions, we can disconnect the websocket
213
190
  // however we should wait a bit to see if we get any more subscriptions.
214
191
  // For example, when switching between react views, you may unsubscribe
@@ -255,7 +232,7 @@ export class ObjectSetListenerWebsocket {
255
232
  this.#lastWsConnect = Date.now();
256
233
  // we again may have lost the race after our minimum backoff time
257
234
  if (this.#ws == null) {
258
- if (process?.env?.NODE_ENV !== "production") {
235
+ if (process.env.NODE_ENV !== "production") {
259
236
  this.#logger?.trace("Creating websocket");
260
237
  }
261
238
  this.#ws = new WebSocket(url, [`Bearer-${token}`]);
@@ -295,7 +272,7 @@ export class ObjectSetListenerWebsocket {
295
272
  };
296
273
  #onMessage = async message => {
297
274
  const data = JSON.parse(message.data.toString());
298
- if (process?.env?.NODE_ENV !== "production") {
275
+ if (process.env.NODE_ENV !== "production") {
299
276
  this.#logger?.trace({
300
277
  payload: data
301
278
  }, "received message from ws");
@@ -312,12 +289,12 @@ export class ObjectSetListenerWebsocket {
312
289
  return this.#handleMessage_subscriptionClosed(data);
313
290
  }
314
291
  default:
315
- invariant(false, "Unexpected message type");
292
+ process.env.NODE_ENV !== "production" ? invariant(false, "Unexpected message type") : invariant(false);
316
293
  }
317
294
  };
318
295
  #handleMessage_objectSetChanged = async payload => {
319
296
  const sub = this.#subscriptions.get(payload.id);
320
- !sub ? invariant(false, `Expected subscription id ${payload.id}`) : void 0;
297
+ if (sub == null) return;
321
298
  const objectUpdates = payload.updates.filter(update => update.type === "object");
322
299
  const referenceUpdates = payload.updates.filter(update => update.type === "reference");
323
300
  const osdkObjectsWithReferenceUpdates = await Promise.all(referenceUpdates.map(async o => {
@@ -358,7 +335,7 @@ export class ObjectSetListenerWebsocket {
358
335
  };
359
336
  #handleMessage_refreshObjectSet = payload => {
360
337
  const sub = this.#subscriptions.get(payload.id);
361
- !sub ? invariant(false, `Expected subscription id ${payload.id}`) : void 0;
338
+ !sub ? process.env.NODE_ENV !== "production" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;
362
339
  sub.listener.onOutOfDate();
363
340
  };
364
341
  #handleMessage_subscribeResponses = payload => {
@@ -367,7 +344,7 @@ export class ObjectSetListenerWebsocket {
367
344
  responses
368
345
  } = payload;
369
346
  const subs = this.#pendingSubscriptions.get(id);
370
- !subs ? invariant(false, `should have a pending subscription for ${id}`) : void 0;
347
+ !subs ? process.env.NODE_ENV !== "production" ? invariant(false, `should have a pending subscription for ${id}`) : invariant(false) : void 0;
371
348
  this.#pendingSubscriptions.delete(id);
372
349
  for (let i = 0; i < responses.length; i++) {
373
350
  const sub = subs[i];
@@ -384,7 +361,7 @@ export class ObjectSetListenerWebsocket {
384
361
  case "success":
385
362
  // `"preparing"` should only be the status on an initial subscribe.
386
363
  const shouldFireOutOfDate = sub.status === "expired" || sub.status === "reconnecting";
387
- if (process?.env?.NODE_ENV !== "production") {
364
+ if (process.env.NODE_ENV !== "production") {
388
365
  this.#logger?.trace({
389
366
  shouldFireOutOfDate
390
367
  }, "success");
@@ -396,7 +373,7 @@ export class ObjectSetListenerWebsocket {
396
373
  sub.subscriptionId = response.id;
397
374
  this.#subscriptions.set(sub.subscriptionId, sub); // future messages come by this subId
398
375
  }
399
- if (shouldFireOutOfDate) sub.listener.onOutOfDate();
376
+ if (shouldFireOutOfDate) sub.listener.onOutOfDate();else sub.listener.onSuccessfulSubscription();
400
377
  break;
401
378
  default:
402
379
  sub.listener.onError(response);
@@ -405,12 +382,12 @@ export class ObjectSetListenerWebsocket {
405
382
  };
406
383
  #handleMessage_subscriptionClosed(payload) {
407
384
  const sub = this.#subscriptions.get(payload.id);
408
- !sub ? invariant(false, `Expected subscription id ${payload.id}`) : void 0;
385
+ !sub ? process.env.NODE_ENV !== "production" ? invariant(false, `Expected subscription id ${payload.id}`) : invariant(false) : void 0;
409
386
  sub.listener.onError([payload.cause]);
410
387
  this.#unsubscribe(sub, "error");
411
388
  }
412
389
  #onClose = event => {
413
- if (process?.env?.NODE_ENV !== "production") {
390
+ if (process.env.NODE_ENV !== "production") {
414
391
  this.#logger?.trace({
415
392
  event
416
393
  }, "Received close event from ws", event);
@@ -430,9 +407,9 @@ export class ObjectSetListenerWebsocket {
430
407
  }
431
408
  // if we have any listeners that are still depending on us, go ahead and reopen the websocket
432
409
  if (this.#subscriptions.size > 0) {
433
- if (process?.env?.NODE_ENV !== "production") {
410
+ if (process.env.NODE_ENV !== "production") {
434
411
  for (const s of this.#subscriptions.values()) {
435
- !(s.status !== "done" && s.status !== "error") ? invariant(false, "should not have done/error subscriptions still") : void 0;
412
+ !(s.status !== "done" && s.status !== "error") ? process.env.NODE_ENV !== "production" ? invariant(false, "should not have done/error subscriptions still") : invariant(false) : void 0;
436
413
  }
437
414
  }
438
415
  for (const s of this.#subscriptions.values()) {