@osdk/faux 0.4.0-beta.1 → 0.4.0-beta.3

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 (36) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/build/browser/FauxFoundry/FauxAttachmentStore.js +4 -2
  3. package/build/browser/FauxFoundry/FauxAttachmentStore.js.map +1 -1
  4. package/build/browser/FauxFoundry/FauxDataStore.js +8 -4
  5. package/build/browser/FauxFoundry/FauxDataStore.js.map +1 -1
  6. package/build/browser/FauxFoundry/FauxDataStoreBatch.js +2 -1
  7. package/build/browser/FauxFoundry/FauxDataStoreBatch.js.map +1 -1
  8. package/build/browser/FauxFoundry/validateAction.js +85 -13
  9. package/build/browser/FauxFoundry/validateAction.js.map +1 -1
  10. package/build/browser/FauxFoundry/validateAction.test.js +522 -0
  11. package/build/browser/FauxFoundry/validateAction.test.js.map +1 -0
  12. package/build/browser/handlers/util/handleOpenApiCall.js.map +1 -1
  13. package/build/cjs/index.cjs +130 -50
  14. package/build/cjs/index.cjs.map +1 -1
  15. package/build/cjs/index.d.cts +5 -3
  16. package/build/esm/FauxFoundry/FauxAttachmentStore.js +4 -2
  17. package/build/esm/FauxFoundry/FauxAttachmentStore.js.map +1 -1
  18. package/build/esm/FauxFoundry/FauxDataStore.js +8 -4
  19. package/build/esm/FauxFoundry/FauxDataStore.js.map +1 -1
  20. package/build/esm/FauxFoundry/FauxDataStoreBatch.js +2 -1
  21. package/build/esm/FauxFoundry/FauxDataStoreBatch.js.map +1 -1
  22. package/build/esm/FauxFoundry/validateAction.js +85 -13
  23. package/build/esm/FauxFoundry/validateAction.js.map +1 -1
  24. package/build/esm/FauxFoundry/validateAction.test.js +522 -0
  25. package/build/esm/FauxFoundry/validateAction.test.js.map +1 -0
  26. package/build/esm/handlers/util/handleOpenApiCall.js.map +1 -1
  27. package/build/types/FauxFoundry/FauxAttachmentStore.d.ts.map +1 -1
  28. package/build/types/FauxFoundry/FauxDataStore.d.ts.map +1 -1
  29. package/build/types/FauxFoundry/FauxDataStoreBatch.d.ts.map +1 -1
  30. package/build/types/FauxFoundry/validateAction.d.ts +2 -1
  31. package/build/types/FauxFoundry/validateAction.d.ts.map +1 -1
  32. package/build/types/FauxFoundry/validateAction.test.d.ts +1 -0
  33. package/build/types/FauxFoundry/validateAction.test.d.ts.map +1 -0
  34. package/build/types/handlers/util/handleOpenApiCall.d.ts +6 -4
  35. package/build/types/handlers/util/handleOpenApiCall.d.ts.map +1 -1
  36. package/package.json +5 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAction.test.js","names":["describe","expect","it","isInterfaceActionParam","isMediaReference","matchesOntologyDataType","dataType","type","undefined","toBe","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","MAX_VALUE","Infinity","Date","objectApiName","objectTypeApiName","$primaryKey","name","objectSet","itemType","length","toThrow","keyType","valueType","Set","fields","unsupportedType","mimeType","reference","mediaSetViewItem","mediaSetRid","mediaSetViewRid","mediaItemRid","primaryKeyValue"],"sources":["validateAction.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { OntologyDataType } from \"@osdk/foundry.ontologies\";\nimport { describe, expect, it } from \"vitest\";\nimport {\n isInterfaceActionParam,\n isMediaReference,\n matchesOntologyDataType,\n} from \"./validateAction.js\";\n\ndescribe(\"matchesOntologyDataType\", () => {\n describe(\"any type\", () => {\n it(\"should return true for any value\", () => {\n const dataType: OntologyDataType = { type: \"any\" };\n\n expect(matchesOntologyDataType(dataType, undefined)).toBe(true);\n expect(matchesOntologyDataType(dataType, null)).toBe(true);\n expect(matchesOntologyDataType(dataType, \"string\")).toBe(true);\n expect(matchesOntologyDataType(dataType, 123)).toBe(true);\n expect(matchesOntologyDataType(dataType, true)).toBe(true);\n expect(matchesOntologyDataType(dataType, {})).toBe(true);\n expect(matchesOntologyDataType(dataType, [])).toBe(true);\n });\n });\n\n describe(\"boolean type\", () => {\n const dataType: OntologyDataType = { type: \"boolean\" };\n\n it(\"should return true for boolean values\", () => {\n expect(matchesOntologyDataType(dataType, true)).toBe(true);\n expect(matchesOntologyDataType(dataType, false)).toBe(true);\n });\n\n it(\"should return false for non-boolean values\", () => {\n expect(matchesOntologyDataType(dataType, \"true\")).toBe(false);\n expect(matchesOntologyDataType(dataType, 1)).toBe(false);\n expect(matchesOntologyDataType(dataType, 0)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n });\n });\n\n describe(\"string type\", () => {\n const dataType: OntologyDataType = { type: \"string\" };\n\n it(\"should return true for string values\", () => {\n expect(matchesOntologyDataType(dataType, \"\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"hello\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(true);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n });\n\n describe(\"integer type\", () => {\n const dataType: OntologyDataType = { type: \"integer\" };\n\n it(\"should return true for valid integer values within bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1)).toBe(true);\n expect(matchesOntologyDataType(dataType, 2147483647)).toBe(true); // max int\n expect(matchesOntologyDataType(dataType, -2147483648)).toBe(true); // min int\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(false);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n\n it(\"should return false for integers out of bounds\", () => {\n expect(matchesOntologyDataType(dataType, 2147483648)).toBe(false); // max + 1\n expect(matchesOntologyDataType(dataType, -2147483649)).toBe(false); // min - 1\n });\n });\n\n describe(\"long type\", () => {\n const dataType: OntologyDataType = { type: \"long\" };\n\n it(\"should return true for valid long values within safe integer bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, Number.MAX_SAFE_INTEGER)).toBe(\n true,\n );\n expect(matchesOntologyDataType(dataType, Number.MIN_SAFE_INTEGER)).toBe(\n true,\n );\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(false);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n });\n\n it(\"should return false for values outside safe integer range\", () => {\n expect(\n matchesOntologyDataType(dataType, Number.MAX_SAFE_INTEGER + 1),\n ).toBe(false);\n expect(\n matchesOntologyDataType(dataType, Number.MIN_SAFE_INTEGER - 1),\n ).toBe(false);\n });\n });\n\n describe(\"double type\", () => {\n const dataType: OntologyDataType = { type: \"double\" };\n\n it(\"should return true for valid double values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, Number.MAX_VALUE)).toBe(true);\n expect(matchesOntologyDataType(dataType, -Number.MAX_VALUE)).toBe(true);\n });\n\n it(\"should return false for non-number values\", () => {\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n\n it(\"should return false for Infinity\", () => {\n expect(matchesOntologyDataType(dataType, Infinity)).toBe(false);\n expect(matchesOntologyDataType(dataType, -Infinity)).toBe(false);\n });\n });\n\n describe(\"float type\", () => {\n const dataType: OntologyDataType = { type: \"float\" };\n\n it(\"should return true for valid float values within bounds\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, -1.5)).toBe(true);\n expect(matchesOntologyDataType(dataType, 3.4028235e38)).toBe(true);\n expect(matchesOntologyDataType(dataType, -3.4028235e38)).toBe(true);\n });\n\n it(\"should return false for values outside float bounds\", () => {\n expect(matchesOntologyDataType(dataType, 3.5e38)).toBe(false);\n expect(matchesOntologyDataType(dataType, -3.5e38)).toBe(false);\n });\n });\n\n describe(\"byte type\", () => {\n const dataType: OntologyDataType = { type: \"byte\" };\n\n it(\"should return true for valid byte values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 127)).toBe(true);\n expect(matchesOntologyDataType(dataType, -128)).toBe(true);\n });\n\n it(\"should return false for values outside byte bounds\", () => {\n expect(matchesOntologyDataType(dataType, 128)).toBe(false);\n expect(matchesOntologyDataType(dataType, -129)).toBe(false);\n });\n\n it(\"should return false for non-integer values\", () => {\n expect(matchesOntologyDataType(dataType, 1.5)).toBe(true); // Note: isInBounds doesn't check for integers for byte\n });\n });\n\n describe(\"short type\", () => {\n const dataType: OntologyDataType = { type: \"short\" };\n\n it(\"should return true for valid short values\", () => {\n expect(matchesOntologyDataType(dataType, 0)).toBe(true);\n expect(matchesOntologyDataType(dataType, 32767)).toBe(true);\n expect(matchesOntologyDataType(dataType, -32768)).toBe(true);\n });\n\n it(\"should return false for values outside short bounds\", () => {\n expect(matchesOntologyDataType(dataType, 32768)).toBe(false);\n expect(matchesOntologyDataType(dataType, -32769)).toBe(false);\n });\n });\n\n describe(\"date type\", () => {\n const dataType: OntologyDataType = { type: \"date\" };\n\n it(\"should return true for valid date strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-01-15\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"2000-12-31\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1970-01-01\")).toBe(true);\n });\n\n it(\"should return false for invalid date strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-13-01\")).toBe(false); // invalid month\n expect(matchesOntologyDataType(dataType, \"2025-01-32\")).toBe(false); // invalid day\n expect(matchesOntologyDataType(dataType, \"2025/01/15\")).toBe(false); // wrong format\n expect(matchesOntologyDataType(dataType, \"01-15-2025\")).toBe(false); // wrong format\n expect(matchesOntologyDataType(dataType, \"not a date\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, new Date())).toBe(false);\n });\n });\n\n describe(\"timestamp type\", () => {\n const dataType: OntologyDataType = { type: \"timestamp\" };\n\n it(\"should return true for valid timestamp strings\", () => {\n expect(matchesOntologyDataType(dataType, \"2025-01-15T10:30:00Z\")).toBe(\n true,\n );\n expect(\n matchesOntologyDataType(dataType, \"2025-01-15T10:30:00.123Z\"),\n ).toBe(true);\n expect(matchesOntologyDataType(dataType, \"2025-01-15\")).toBe(true);\n });\n\n it(\"should return false for invalid timestamp strings\", () => {\n expect(matchesOntologyDataType(dataType, \"not a timestamp\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, new Date())).toBe(false);\n });\n });\n\n describe(\"decimal type\", () => {\n const dataType: OntologyDataType = { type: \"decimal\" };\n\n it(\"should return true for valid decimal strings\", () => {\n expect(matchesOntologyDataType(dataType, \"0\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"+123.456\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \".5\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-.5\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"123.\")).toBe(true);\n });\n\n it(\"should return true for valid decimal strings with scientific notation\", () => {\n expect(matchesOntologyDataType(dataType, \"1E10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E+10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"1.5E-10\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"-1.5E10\")).toBe(true);\n });\n\n it(\"should return false for invalid decimal strings\", () => {\n expect(matchesOntologyDataType(dataType, \"abc\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"12.34.56\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1.2.3E10\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"E10\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1E\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"1e10\")).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123.456)).toBe(false);\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n expect(matchesOntologyDataType(dataType, undefined)).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n });\n\n describe(\"marking type\", () => {\n const dataType: OntologyDataType = { type: \"marking\" };\n\n it(\"should return true for string values\", () => {\n expect(matchesOntologyDataType(dataType, \"marking1\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"\")).toBe(true);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"object type\", () => {\n const dataType: OntologyDataType = {\n type: \"object\",\n objectApiName: \"Employee\",\n objectTypeApiName: \"Employee\",\n };\n\n it(\"should return true for string (RID) values\", () => {\n expect(matchesOntologyDataType(dataType, \"ri.object.123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"someId\")).toBe(true);\n });\n\n it(\"should return true for objects with $primaryKey\", () => {\n expect(matchesOntologyDataType(dataType, { $primaryKey: \"123\" })).toBe(\n true,\n );\n expect(\n matchesOntologyDataType(dataType, {\n $primaryKey: \"123\",\n name: \"test\",\n }),\n ).toBe(true);\n });\n\n it(\"should return false for objects without $primaryKey\", () => {\n expect(matchesOntologyDataType(dataType, { name: \"test\" })).toBe(false);\n expect(matchesOntologyDataType(dataType, {})).toBe(false);\n });\n\n it(\"should return false for other value types\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, true)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"objectSet type\", () => {\n const dataType: OntologyDataType = { type: \"objectSet\" };\n\n it(\"should return true for RID strings\", () => {\n expect(matchesOntologyDataType(dataType, \"ri.objectSet.123\")).toBe(true);\n expect(matchesOntologyDataType(dataType, \"ri.anything.456\")).toBe(true);\n });\n\n it(\"should return true for objects with objectSet property\", () => {\n expect(\n matchesOntologyDataType(dataType, { objectSet: \"definition\" }),\n ).toBe(true);\n });\n\n it(\"should return false for non-RID strings\", () => {\n expect(matchesOntologyDataType(dataType, \"not a rid\")).toBe(false);\n expect(matchesOntologyDataType(dataType, \"objectSet\")).toBe(false);\n });\n\n it(\"should return false for objects without objectSet property\", () => {\n expect(matchesOntologyDataType(dataType, { name: \"test\" })).toBe(false);\n });\n });\n\n describe(\"array type\", () => {\n it(\"should return true for arrays with matching item types\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, [])).toBe(true);\n expect(matchesOntologyDataType(dataType, [\"a\", \"b\", \"c\"])).toBe(true);\n });\n\n it(\"should return false for arrays with non-matching item types\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, [1, 2, 3])).toBe(false);\n expect(matchesOntologyDataType(dataType, [\"a\", 1, \"c\"])).toBe(false);\n });\n\n it(\"should work with nested arrays\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: {\n type: \"array\",\n itemType: { type: \"integer\" },\n },\n };\n\n expect(matchesOntologyDataType(dataType, [[1, 2], [3, 4]])).toBe(true);\n expect(matchesOntologyDataType(dataType, [[1, 2], [\"a\", \"b\"]])).toBe(\n false,\n );\n });\n\n it(\"should return false for non-array values\", () => {\n const dataType: OntologyDataType = {\n type: \"array\",\n itemType: { type: \"string\" },\n };\n\n expect(matchesOntologyDataType(dataType, \"not an array\")).toBe(false);\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, { length: 0 })).toBe(false);\n });\n });\n\n describe(\"cipherText type\", () => {\n const dataType: OntologyDataType = { type: \"cipherText\" };\n\n it(\"should return true for valid CIPHER format\", () => {\n expect(\n matchesOntologyDataType(\n dataType,\n \"CIPHER::ri.channel.123::encrypted::CIPHER\",\n ),\n ).toBe(true);\n });\n\n it(\"should return true for valid BELLASO format\", () => {\n expect(\n matchesOntologyDataType(\n dataType,\n \"BELLASO::ri.channel.123::encrypted::BELLASO\",\n ),\n ).toBe(true);\n });\n\n it(\"should return true for valid BELLASO format without suffix\", () => {\n expect(\n matchesOntologyDataType(dataType, \"BELLASO::ri.channel.123::encrypted\"),\n ).toBe(true);\n });\n\n it(\"should return false for invalid cipher format\", () => {\n expect(matchesOntologyDataType(dataType, \"CIPHER::channel::data\")).toBe(\n false,\n ); // missing ri. prefix\n expect(\n matchesOntologyDataType(dataType, \"CIPHER::ri.channel.123::\"),\n ).toBe(false); // empty encrypted value\n expect(\n matchesOntologyDataType(\n dataType,\n \"INVALID::ri.channel.123::data::INVALID\",\n ),\n ).toBe(false);\n });\n\n it(\"should return false for non-string values\", () => {\n expect(matchesOntologyDataType(dataType, 123)).toBe(false);\n expect(matchesOntologyDataType(dataType, null)).toBe(false);\n });\n });\n\n describe(\"binary type\", () => {\n const dataType: OntologyDataType = { type: \"binary\" };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, \"data\")).toThrow(\n \"validateDataType: binary not implemented yet.\",\n );\n });\n });\n\n describe(\"map type\", () => {\n const dataType: OntologyDataType = {\n type: \"map\",\n keyType: { type: \"string\" },\n valueType: { type: \"integer\" },\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, {})).toThrow(\n \"matchesOntologyDataType: map not implemented yet.\",\n );\n });\n });\n\n describe(\"set type\", () => {\n const dataType: OntologyDataType = {\n type: \"set\",\n itemType: { type: \"string\" },\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, new Set())).toThrow(\n \"matchesOntologyDataType: set not implemented yet.\",\n );\n });\n });\n\n describe(\"struct type\", () => {\n const dataType: OntologyDataType = {\n type: \"struct\",\n fields: [],\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, {})).toThrow(\n \"matchesOntologyDataType: struct not implemented yet.\",\n );\n });\n });\n\n describe(\"unsupported type\", () => {\n const dataType: OntologyDataType = {\n type: \"unsupported\",\n unsupportedType: \"someCustomType\",\n };\n\n it(\"should throw an error\", () => {\n expect(() => matchesOntologyDataType(dataType, \"anything\")).toThrow(\n \"matchesOntologyDataType: unsupported not implemented yet.\",\n );\n });\n });\n});\n\ndescribe(\"isMediaReference\", () => {\n it(\"should return true for valid MediaReference objects\", () => {\n const validMediaRef = {\n mimeType: \"image/png\",\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {\n mediaSetRid: \"ri.mediaset.123\",\n mediaSetViewRid: \"ri.mediasetview.456\",\n mediaItemRid: \"ri.mediaitem.789\",\n },\n },\n };\n\n expect(isMediaReference(validMediaRef)).toBe(true);\n });\n\n it(\"should return false for objects missing required properties\", () => {\n expect(isMediaReference({ mimeType: \"image/png\" })).toBe(false);\n expect(\n isMediaReference({\n reference: {\n type: \"mediaSetViewItem\",\n mediaSetViewItem: {},\n },\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects with incorrect reference type\", () => {\n const invalidMediaRef = {\n mimeType: \"image/png\",\n reference: {\n type: \"wrongType\",\n mediaSetViewItem: {\n mediaSetRid: \"ri.mediaset.123\",\n mediaSetViewRid: \"ri.mediasetview.456\",\n mediaItemRid: \"ri.mediaitem.789\",\n },\n },\n };\n\n expect(isMediaReference(invalidMediaRef)).toBe(false);\n });\n});\n\ndescribe(\"isInterfaceActionParam\", () => {\n it(\"should return true for valid interface action params with string primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: \"emp-123\",\n }),\n ).toBe(true);\n });\n\n it(\"should return true for valid interface action params with number primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: 123,\n }),\n ).toBe(true);\n });\n\n it(\"should return true for valid interface action params with boolean primary key\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: true,\n }),\n ).toBe(true);\n });\n\n it(\"should return false for objects missing objectTypeApiName\", () => {\n expect(\n isInterfaceActionParam({\n primaryKeyValue: \"123\",\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects missing primaryKeyValue\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n }),\n ).toBe(false);\n });\n\n it(\"should return false for objects with invalid primaryKeyValue type\", () => {\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: {},\n }),\n ).toBe(false);\n\n expect(\n isInterfaceActionParam({\n objectTypeApiName: \"Employee\",\n primaryKeyValue: [],\n }),\n ).toBe(false);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleOpenApiCall.js","names":["http","HttpResponse","authHandlerMiddleware","OpenApiCallError","Error","constructor","status","json","errorCode","errorName","JSON","stringify","parameters","handleOpenApiCall","openApiCall","names","baseUrl","restImpl","options","captured","fetch","url","req","u","URL","search","method","endPoint","toString","replace","ok","Promise","resolve","blob","Blob","map","n","type","size","toLowerCase","info","result","Response","body","e","stack","statusText","message"],"sources":["handleOpenApiCall.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 DefaultBodyType,\n HttpHandler,\n HttpResponseResolver,\n RequestHandlerOptions,\n} from \"msw\";\nimport { http, HttpResponse } from \"msw\";\nimport type { BaseAPIError } from \"../../BaseError.js\";\nimport { authHandlerMiddleware } from \"../authHandlerMiddleware.js\";\n\nexport class OpenApiCallError extends Error {\n constructor(\n public status: number,\n public json: {\n errorCode: string;\n errorName: string;\n errorInstanceId: string;\n parameters: Record<string, unknown>;\n },\n ) {\n super(\n `${json.errorCode} ${json.errorName ?? \"Unknown error\"} ${\n JSON.stringify(json.parameters)\n }`,\n );\n }\n}\n\ntype ExtractStringParams<T extends any[]> = T extends [infer A, ...infer B]\n ? A extends string ? [A, ...ExtractStringParams<B>] : []\n : [];\n\nexport type SkipStringParams<T extends any[]> = T extends [infer A, ...infer B]\n ? A extends string ? SkipStringParams<B> : T\n : T;\n\n/**\n * This relies on a trick that generally our query params and header params are optional therefore\n * the body can generally be assumed to be the first payload following the strings which are path\n * params.\n *\n * This will also fail if your body is defined as a string as that will get interpreted as a path param.\n * If this happens, you cannot use the helper. Sorry\n */\nexport type ExtractBody<\n X extends ((reqCall: any, ...args: any[]) => Promise<any>),\n> = undefined extends SkipStringParams<ParamsAfterReqCall<X>>[0] ? never\n : SkipStringParams<ParamsAfterReqCall<X>>[0];\n\nexport type ExtractResponse<\n X extends ((...args: any[]) => Promise<any>),\n> = Awaited<ReturnType<X>>;\n\nexport type ParamsAfterReqCall<\n T extends (reqCall: any, ...args: any[]) => Promise<any>,\n> = T extends (reqCall: any, ...args: infer Z) => Promise<any> ? Z : never;\n\nexport type RestImpl<\n URL_PARAMS extends string,\n REQ_BODY extends DefaultBodyType,\n RESP_BODY extends DefaultBodyType,\n> = (\n info: Parameters<\n HttpResponseResolver<\n Record<URL_PARAMS, string>,\n REQ_BODY,\n RESP_BODY | BaseAPIError\n >\n >[0],\n) => RESP_BODY | Promise<RESP_BODY>;\n\nexport type OpenApiCallFactory<\n URL_PARAMS extends string,\n REQ_BODY extends DefaultBodyType,\n RESP_BODY extends DefaultBodyType,\n> = (\n baseUrl: string,\n restImpl: RestImpl<URL_PARAMS, REQ_BODY, RESP_BODY>,\n options?: RequestHandlerOptions,\n) => HttpHandler;\n\nexport type CallFactory<\n URL_PARAMS extends string,\n X extends ((...args: any[]) => Promise<any>),\n> = (\n baseUrl: string,\n restImpl: RestImpl<URL_PARAMS, ExtractBody<X>, ExtractResponse<X>>,\n options?: RequestHandlerOptions,\n) => HttpHandler;\n\nexport function handleOpenApiCall<\n const N extends ExtractStringParams<ParamsAfterReqCall<X>>,\n const X extends ((...args: any[]) => Promise<any>),\n>(\n openApiCall: X,\n names: N,\n): CallFactory<N[number], X> {\n return (\n baseUrl: string,\n restImpl: RestImpl<N[number], ExtractBody<X>, ExtractResponse<X>>,\n options?: RequestHandlerOptions,\n ): HttpHandler => {\n let captured: {\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\";\n endPoint: string;\n data?: any;\n queryArguments?: Record<string, any>;\n headers?: Record<string, any>;\n requestMediaType?: string;\n responseMediaType?: string;\n } = {} as any;\n\n const capture = {\n fetch: (url: string, req: Request) => {\n const u = new URL(url);\n u.search = \"\"; // msw doesn't want the search string\n captured = {\n method: req.method as any,\n endPoint: u.toString().replace(/%3A/g, \":\"),\n };\n\n // fake a response object so the call doesn't fail\n return {\n ok: true,\n json: () => Promise.resolve({}),\n blob: () => new Blob(),\n };\n },\n baseUrl,\n };\n\n // we don't care about the promise here, we are just building the url\n void openApiCall(\n capture as any,\n ...(names.map(n => `:${n}`) as any),\n // add a simulated blob in here in case of an upload\n { type: \"\", size: 5 },\n );\n\n return http\n [captured.method.toLowerCase() as Lowercase<typeof captured.method>](\n captured.endPoint,\n authHandlerMiddleware(async (info) => {\n try {\n const result: any = await restImpl(\n info as any,\n );\n\n if (result instanceof Response) {\n return new HttpResponse(result.body) as HttpResponse<\n DefaultBodyType\n >;\n }\n return HttpResponse.json(\n result,\n );\n } catch (e) {\n if (e instanceof OpenApiCallError) {\n return HttpResponse.json({ ...e.json, stack: e.stack }, {\n status: e.status,\n statusText: e.message,\n });\n }\n throw e;\n }\n }),\n options,\n );\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,IAAI,EAAEC,YAAY,QAAQ,KAAK;AAExC,SAASC,qBAAqB,QAAQ,6BAA6B;AAEnE,OAAO,MAAMC,gBAAgB,SAASC,KAAK,CAAC;EAC1CC,WAAWA,CACFC,MAAc,EACdC,IAKN,EACD;IACA,KAAK,CACH,GAAGA,IAAI,CAACC,SAAS,IAAID,IAAI,CAACE,SAAS,IAAI,eAAe,IACpDC,IAAI,CAACC,SAAS,CAACJ,IAAI,CAACK,UAAU,CAAC,EAEnC,CAAC;IAAC,KAZKN,MAAc,GAAdA,MAAc;IAAA,KACdC,IAKN,GALMA,IAKN;EAOH;AACF;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+CA,OAAO,SAASM,iBAAiBA,CAI/BC,WAAc,EACdC,KAAQ,EACmB;EAC3B,OAAO,CACLC,OAAe,EACfC,QAAiE,EACjEC,OAA+B,KACf;IAChB,IAAIC,QAQH,GAAG,CAAC,CAAQ;IAqBb;IACA,KAAKL,WAAW,CApBA;MACdM,KAAK,EAAEA,CAACC,GAAW,EAAEC,GAAY,KAAK;QACpC,MAAMC,CAAC,GAAG,IAAIC,GAAG,CAACH,GAAG,CAAC;QACtBE,CAAC,CAACE,MAAM,GAAG,EAAE,CAAC,CAAC;QACfN,QAAQ,GAAG;UACTO,MAAM,EAAEJ,GAAG,CAACI,MAAa;UACzBC,QAAQ,EAAEJ,CAAC,CAACK,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG;QAC5C,CAAC;;QAED;QACA,OAAO;UACLC,EAAE,EAAE,IAAI;UACRvB,IAAI,EAAEA,CAAA,KAAMwB,OAAO,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;UAC/BC,IAAI,EAAEA,CAAA,KAAM,IAAIC,IAAI,CAAC;QACvB,CAAC;MACH,CAAC;MACDlB;IACF,CAAC,EAKC,GAAID,KAAK,CAACoB,GAAG,CAACC,CAAC,IAAI,IAAIA,CAAC,EAAE,CAAS;IACnC;IACA;MAAEC,IAAI,EAAE,EAAE;MAAEC,IAAI,EAAE;IAAE,CACtB,CAAC;IAED,OAAOtC,IAAI,CACRmB,QAAQ,CAACO,MAAM,CAACa,WAAW,CAAC,CAAC,CAAsC,CAClEpB,QAAQ,CAACQ,QAAQ,EACjBzB,qBAAqB,CAAC,MAAOsC,IAAI,IAAK;MACpC,IAAI;QACF,MAAMC,MAAW,GAAG,MAAMxB,QAAQ,CAChCuB,IACF,CAAC;QAED,IAAIC,MAAM,YAAYC,QAAQ,EAAE;UAC9B,OAAO,IAAIzC,YAAY,CAACwC,MAAM,CAACE,IAAI,CAAC;QAGtC;QACA,OAAO1C,YAAY,CAACM,IAAI,CACtBkC,MACF,CAAC;MACH,CAAC,CAAC,OAAOG,CAAC,EAAE;QACV,IAAIA,CAAC,YAAYzC,gBAAgB,EAAE;UACjC,OAAOF,YAAY,CAACM,IAAI,CAAC;YAAE,GAAGqC,CAAC,CAACrC,IAAI;YAAEsC,KAAK,EAAED,CAAC,CAACC;UAAM,CAAC,EAAE;YACtDvC,MAAM,EAAEsC,CAAC,CAACtC,MAAM;YAChBwC,UAAU,EAAEF,CAAC,CAACG;UAChB,CAAC,CAAC;QACJ;QACA,MAAMH,CAAC;MACT;IACF,CAAC,CAAC,EACF1B,OACF,CAAC;EACL,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"handleOpenApiCall.js","names":["http","HttpResponse","authHandlerMiddleware","OpenApiCallError","Error","constructor","status","json","errorCode","errorName","JSON","stringify","parameters","handleOpenApiCall","openApiCall","names","baseUrl","restImpl","options","captured","fetch","url","req","u","URL","search","method","endPoint","toString","replace","ok","Promise","resolve","blob","Blob","map","n","type","size","toLowerCase","info","result","Response","body","e","stack","statusText","message"],"sources":["handleOpenApiCall.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 DefaultBodyType,\n HttpHandler,\n HttpResponseResolver,\n RequestHandlerOptions,\n} from \"msw\";\nimport { http, HttpResponse } from \"msw\";\nimport type { BaseAPIError } from \"../../BaseError.js\";\nimport { authHandlerMiddleware } from \"../authHandlerMiddleware.js\";\n\nexport class OpenApiCallError extends Error {\n constructor(\n public status: number,\n public json: {\n errorCode: string;\n errorName: string;\n errorInstanceId: string;\n errorDescription?: string;\n parameters: Record<string, unknown>;\n },\n ) {\n super(\n `${json.errorCode} ${json.errorName ?? \"Unknown error\"} ${\n JSON.stringify(\n json.parameters,\n )\n }`,\n );\n }\n}\n\ntype ExtractStringParams<T extends any[]> = T extends [infer A, ...infer B]\n ? A extends string ? [A, ...ExtractStringParams<B>]\n : []\n : [];\n\nexport type SkipStringParams<T extends any[]> = T extends [infer A, ...infer B]\n ? A extends string ? SkipStringParams<B>\n : T\n : T;\n\n/**\n * This relies on a trick that generally our query params and header params are optional therefore\n * the body can generally be assumed to be the first payload following the strings which are path\n * params.\n *\n * This will also fail if your body is defined as a string as that will get interpreted as a path param.\n * If this happens, you cannot use the helper. Sorry\n */\nexport type ExtractBody<\n X extends (reqCall: any, ...args: any[]) => Promise<any>,\n> = undefined extends SkipStringParams<ParamsAfterReqCall<X>>[0] ? never\n : SkipStringParams<ParamsAfterReqCall<X>>[0];\n\nexport type ExtractResponse<X extends (...args: any[]) => Promise<any>> =\n Awaited<ReturnType<X>>;\n\nexport type ParamsAfterReqCall<\n T extends (reqCall: any, ...args: any[]) => Promise<any>,\n> = T extends (reqCall: any, ...args: infer Z) => Promise<any> ? Z : never;\n\nexport type RestImpl<\n URL_PARAMS extends string,\n REQ_BODY extends DefaultBodyType,\n RESP_BODY extends DefaultBodyType,\n> = (\n info: Parameters<\n HttpResponseResolver<\n Record<URL_PARAMS, string>,\n REQ_BODY,\n RESP_BODY | BaseAPIError\n >\n >[0],\n) => RESP_BODY | Promise<RESP_BODY>;\n\nexport type OpenApiCallFactory<\n URL_PARAMS extends string,\n REQ_BODY extends DefaultBodyType,\n RESP_BODY extends DefaultBodyType,\n> = (\n baseUrl: string,\n restImpl: RestImpl<URL_PARAMS, REQ_BODY, RESP_BODY>,\n options?: RequestHandlerOptions,\n) => HttpHandler;\n\nexport type CallFactory<\n URL_PARAMS extends string,\n X extends (...args: any[]) => Promise<any>,\n> = (\n baseUrl: string,\n restImpl: RestImpl<URL_PARAMS, ExtractBody<X>, ExtractResponse<X>>,\n options?: RequestHandlerOptions,\n) => HttpHandler;\n\nexport function handleOpenApiCall<\n const N extends ExtractStringParams<ParamsAfterReqCall<X>>,\n const X extends (...args: any[]) => Promise<any>,\n>(openApiCall: X, names: N): CallFactory<N[number], X> {\n return (\n baseUrl: string,\n restImpl: RestImpl<N[number], ExtractBody<X>, ExtractResponse<X>>,\n options?: RequestHandlerOptions,\n ): HttpHandler => {\n let captured: {\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\";\n endPoint: string;\n data?: any;\n queryArguments?: Record<string, any>;\n headers?: Record<string, any>;\n requestMediaType?: string;\n responseMediaType?: string;\n } = {} as any;\n\n const capture = {\n fetch: (url: string, req: Request) => {\n const u = new URL(url);\n u.search = \"\"; // msw doesn't want the search string\n captured = {\n method: req.method as any,\n endPoint: u.toString().replace(/%3A/g, \":\"),\n };\n\n // fake a response object so the call doesn't fail\n return {\n ok: true,\n json: () => Promise.resolve({}),\n blob: () => new Blob(),\n };\n },\n baseUrl,\n };\n\n // we don't care about the promise here, we are just building the url\n void openApiCall(\n capture as any,\n ...(names.map((n) => `:${n}`) as any),\n // add a simulated blob in here in case of an upload\n { type: \"\", size: 5 },\n );\n\n return http[\n captured.method.toLowerCase() as Lowercase<typeof captured.method>\n ](\n captured.endPoint,\n authHandlerMiddleware(async (info) => {\n try {\n const result: any = await restImpl(info as any);\n\n if (result instanceof Response) {\n return new HttpResponse(\n result.body,\n ) as HttpResponse<DefaultBodyType>;\n }\n return HttpResponse.json(result);\n } catch (e) {\n if (e instanceof OpenApiCallError) {\n return HttpResponse.json(\n { ...e.json, stack: e.stack },\n {\n status: e.status,\n statusText: e.message,\n },\n );\n }\n throw e;\n }\n }),\n options,\n );\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,IAAI,EAAEC,YAAY,QAAQ,KAAK;AAExC,SAASC,qBAAqB,QAAQ,6BAA6B;AAEnE,OAAO,MAAMC,gBAAgB,SAASC,KAAK,CAAC;EAC1CC,WAAWA,CACFC,MAAc,EACdC,IAMN,EACD;IACA,KAAK,CACH,GAAGA,IAAI,CAACC,SAAS,IAAID,IAAI,CAACE,SAAS,IAAI,eAAe,IACpDC,IAAI,CAACC,SAAS,CACZJ,IAAI,CAACK,UACP,CAAC,EAEL,CAAC;IAAC,KAfKN,MAAc,GAAdA,MAAc;IAAA,KACdC,IAMN,GANMA,IAMN;EASH;AACF;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8CA,OAAO,SAASM,iBAAiBA,CAG/BC,WAAc,EAAEC,KAAQ,EAA6B;EACrD,OAAO,CACLC,OAAe,EACfC,QAAiE,EACjEC,OAA+B,KACf;IAChB,IAAIC,QAQH,GAAG,CAAC,CAAQ;IAqBb;IACA,KAAKL,WAAW,CApBA;MACdM,KAAK,EAAEA,CAACC,GAAW,EAAEC,GAAY,KAAK;QACpC,MAAMC,CAAC,GAAG,IAAIC,GAAG,CAACH,GAAG,CAAC;QACtBE,CAAC,CAACE,MAAM,GAAG,EAAE,CAAC,CAAC;QACfN,QAAQ,GAAG;UACTO,MAAM,EAAEJ,GAAG,CAACI,MAAa;UACzBC,QAAQ,EAAEJ,CAAC,CAACK,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG;QAC5C,CAAC;;QAED;QACA,OAAO;UACLC,EAAE,EAAE,IAAI;UACRvB,IAAI,EAAEA,CAAA,KAAMwB,OAAO,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;UAC/BC,IAAI,EAAEA,CAAA,KAAM,IAAIC,IAAI,CAAC;QACvB,CAAC;MACH,CAAC;MACDlB;IACF,CAAC,EAKC,GAAID,KAAK,CAACoB,GAAG,CAAEC,CAAC,IAAK,IAAIA,CAAC,EAAE,CAAS;IACrC;IACA;MAAEC,IAAI,EAAE,EAAE;MAAEC,IAAI,EAAE;IAAE,CACtB,CAAC;IAED,OAAOtC,IAAI,CACTmB,QAAQ,CAACO,MAAM,CAACa,WAAW,CAAC,CAAC,CAC9B,CACCpB,QAAQ,CAACQ,QAAQ,EACjBzB,qBAAqB,CAAC,MAAOsC,IAAI,IAAK;MACpC,IAAI;QACF,MAAMC,MAAW,GAAG,MAAMxB,QAAQ,CAACuB,IAAW,CAAC;QAE/C,IAAIC,MAAM,YAAYC,QAAQ,EAAE;UAC9B,OAAO,IAAIzC,YAAY,CACrBwC,MAAM,CAACE,IACT,CAAC;QACH;QACA,OAAO1C,YAAY,CAACM,IAAI,CAACkC,MAAM,CAAC;MAClC,CAAC,CAAC,OAAOG,CAAC,EAAE;QACV,IAAIA,CAAC,YAAYzC,gBAAgB,EAAE;UACjC,OAAOF,YAAY,CAACM,IAAI,CACtB;YAAE,GAAGqC,CAAC,CAACrC,IAAI;YAAEsC,KAAK,EAAED,CAAC,CAACC;UAAM,CAAC,EAC7B;YACEvC,MAAM,EAAEsC,CAAC,CAACtC,MAAM;YAChBwC,UAAU,EAAEF,CAAC,CAACG;UAChB,CACF,CAAC;QACH;QACA,MAAMH,CAAC;MACT;IACF,CAAC,CAAC,EACF1B,OACF,CAAC;EACH,CAAC;AACH","ignoreList":[]}
@@ -484,7 +484,8 @@ var FauxDataStoreBatch = class {
484
484
  parameters: {
485
485
  objectType,
486
486
  primaryKey
487
- }
487
+ },
488
+ errorDescription: "The object the user is attempting to create already exists."
488
489
  });
489
490
  }
490
491
  const fullMetadata = this.#fauxDataStore.ontology.getObjectTypeFullMetadataOrThrow(objectType);
@@ -917,6 +918,40 @@ function parseLocator(locator) {
917
918
  }
918
919
 
919
920
  // src/FauxFoundry/validateAction.ts
921
+ var NUMERIC_LITERAL_BOUNDS = {
922
+ byte: {
923
+ // Java min/max byte bounds
924
+ minimum: -128,
925
+ maximum: 127
926
+ },
927
+ double: {
928
+ // These numbers are smaller than the actual min/max of a java double,
929
+ // but going higher will require using BigInt in our input fields.
930
+ minimum: -Number.MAX_VALUE,
931
+ maximum: Number.MAX_VALUE
932
+ },
933
+ float: {
934
+ // Java min/max float bounds
935
+ minimum: -34028235e31,
936
+ maximum: 34028235e31
937
+ },
938
+ integer: {
939
+ // Java min/max integer bounds
940
+ minimum: -2147483648,
941
+ maximum: 2147483647
942
+ },
943
+ long: {
944
+ // These numbers are smaller than the actual min/max of a java long,
945
+ // but going higher will require using BigInt in our input fields.
946
+ minimum: Number.MIN_SAFE_INTEGER,
947
+ maximum: Number.MAX_SAFE_INTEGER
948
+ },
949
+ short: {
950
+ // Java min/max short bounds
951
+ minimum: -32768,
952
+ maximum: 32767
953
+ }
954
+ };
920
955
  function validateAction(payload, def, dataStore) {
921
956
  const ret = {
922
957
  parameters: {},
@@ -1086,39 +1121,39 @@ function matchesOntologyDataType(odt, value) {
1086
1121
  case "boolean":
1087
1122
  return typeof value === "boolean";
1088
1123
  case "byte":
1089
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1124
+ return typeof value === "number" && isInBounds(value, NUMERIC_LITERAL_BOUNDS.byte);
1090
1125
  case "cipherText":
1091
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1126
+ return isValidCipherText(value);
1092
1127
  case "date":
1093
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1128
+ return isValidDateString(value);
1094
1129
  case "decimal":
1095
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1130
+ return isValidDecimalString(value);
1096
1131
  case "double":
1097
- return typeof value === "number";
1132
+ return typeof value === "number" && isInBounds(value, NUMERIC_LITERAL_BOUNDS.double);
1098
1133
  case "float":
1099
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1134
+ return typeof value === "number" && isInBounds(value, NUMERIC_LITERAL_BOUNDS.float);
1100
1135
  case "integer":
1101
- return typeof value === "number" && Number.isInteger(value);
1136
+ return typeof value === "number" && Number.isInteger(value) && isInBounds(value, NUMERIC_LITERAL_BOUNDS.integer);
1102
1137
  case "long":
1103
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1138
+ return typeof value === "number" && Number.isInteger(value) && isInBounds(value, NUMERIC_LITERAL_BOUNDS.long);
1104
1139
  case "map":
1105
1140
  throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1106
1141
  case "marking":
1107
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1142
+ return typeof value === "string";
1108
1143
  case "object":
1109
1144
  return typeof value === "string" || value != null && typeof value === "object" && "$primaryKey" in value;
1110
1145
  case "objectSet":
1111
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1146
+ return typeof value === "string" && value.startsWith("ri.") || value != null && typeof value === "object" && "objectSet" in value;
1112
1147
  case "set":
1113
1148
  throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1114
1149
  case "short":
1115
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1150
+ return typeof value === "number" && isInBounds(value, NUMERIC_LITERAL_BOUNDS.short);
1116
1151
  case "string":
1117
1152
  return typeof value === "string";
1118
1153
  case "struct":
1119
1154
  throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1120
1155
  case "timestamp":
1121
- throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1156
+ return isValidTimestampString(value);
1122
1157
  case "unsupported":
1123
1158
  throw new Error(`matchesOntologyDataType: ${odt.type} not implemented yet.`);
1124
1159
  default:
@@ -1131,6 +1166,46 @@ function isMediaReference(o) {
1131
1166
  function isInterfaceActionParam(value) {
1132
1167
  return typeof value === "object" && "objectTypeApiName" in value && typeof value.objectTypeApiName === "string" && "primaryKeyValue" in value && (typeof value.primaryKeyValue === "string" || typeof value.primaryKeyValue === "number" || typeof value.primaryKeyValue === "boolean");
1133
1168
  }
1169
+ function isInBounds(value, bounds) {
1170
+ return bounds.minimum <= value && value <= bounds.maximum;
1171
+ }
1172
+ function isValidDateString(value) {
1173
+ if (typeof value !== "string") {
1174
+ return false;
1175
+ }
1176
+ const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
1177
+ if (!dateRegex.test(value)) {
1178
+ return false;
1179
+ }
1180
+ const date = new Date(value);
1181
+ return !isNaN(date.getTime()) && date.toISOString().startsWith(value);
1182
+ }
1183
+ function isValidTimestampString(value) {
1184
+ return typeof value === "string" && !isNaN(new Date(value).getTime());
1185
+ }
1186
+ function isValidCipherText(value) {
1187
+ if (typeof value !== "string") {
1188
+ return false;
1189
+ }
1190
+ const parts = value.split("::");
1191
+ if (!(isValidCipherAffix(parts, "CIPHER") || isValidCipherAffix(parts, "BELLASO") || isValidCipherAffix(parts, "BELLASO", true))) {
1192
+ return false;
1193
+ }
1194
+ const channelRid = parts[1];
1195
+ const encryptedValue = parts[2];
1196
+ return channelRid.startsWith("ri.") && encryptedValue !== "";
1197
+ }
1198
+ function isValidCipherAffix(parts, affix, prefixOnly = false) {
1199
+ const totalParts = prefixOnly ? 3 : 4;
1200
+ return parts.length === totalParts && parts[0] === affix && (prefixOnly || parts[3] === affix);
1201
+ }
1202
+ function isValidDecimalString(value) {
1203
+ if (typeof value !== "string") {
1204
+ return false;
1205
+ }
1206
+ const decimalRegex = /^[+-]?(\d+\.?\d*|\.\d+)(E[+-]?\d+)?$/;
1207
+ return decimalRegex.test(value) && !isNaN(parseFloat(value));
1208
+ }
1134
1209
 
1135
1210
  // src/FauxFoundry/FauxDataStore.ts
1136
1211
  var FauxDataStore = class {
@@ -1178,7 +1253,8 @@ var FauxDataStore = class {
1178
1253
  parameters: {
1179
1254
  objectType,
1180
1255
  primaryKey: String(primaryKey)
1181
- }
1256
+ },
1257
+ errorDescription: "The object the user is attempting to create already exists."
1182
1258
  });
1183
1259
  }
1184
1260
  }
@@ -1440,7 +1516,8 @@ var FauxDataStore = class {
1440
1516
  parameters: {
1441
1517
  objectType,
1442
1518
  properties: [property]
1443
- }
1519
+ },
1520
+ errorDescription: "The requested properties are not found on the object type."
1444
1521
  });
1445
1522
  }
1446
1523
  if (propertyDef.dataType.type !== "mediaReference") {
@@ -1451,7 +1528,8 @@ var FauxDataStore = class {
1451
1528
  parameters: {
1452
1529
  property,
1453
1530
  propertyBaseType: propertyDef.dataType.type
1454
- }
1531
+ },
1532
+ errorDescription: "The given property type is not of the expected type."
1455
1533
  });
1456
1534
  }
1457
1535
  const rid = obj[property].reference.mediaSetViewItem.mediaItemRid;
@@ -1464,7 +1542,8 @@ var FauxDataStore = class {
1464
1542
  property,
1465
1543
  propertyBaseType: propertyDef.dataType.type,
1466
1544
  propertyValue: rid
1467
- }
1545
+ },
1546
+ errorDescription: "The value of the given property is invalid. See the documentation of PropertyValue for details on how properties are represented."
1468
1547
  });
1469
1548
  }
1470
1549
  const ret = this.#media.get(objectType).get(property).get(rid);
@@ -1683,7 +1762,7 @@ __export(Actions_exports, {
1683
1762
  applyBatch: () => applyBatch2
1684
1763
  });
1685
1764
 
1686
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1765
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1687
1766
  var Action_exports = {};
1688
1767
  __export(Action_exports, {
1689
1768
  apply: () => apply,
@@ -1697,35 +1776,29 @@ var symbolClientContext = Symbol("ClientContext");
1697
1776
  // ../../node_modules/.pnpm/@osdk+shared.client2@1.0.0/node_modules/@osdk/shared.client2/index.js
1698
1777
  var symbolClientContext2 = "__osdkClientContext";
1699
1778
 
1700
- // ../../node_modules/.pnpm/@osdk+shared.net.errors@2.0.1/node_modules/@osdk/shared.net.errors/build/esm/PalantirApiError.js
1779
+ // ../../node_modules/.pnpm/@osdk+shared.net.errors@2.5.0-beta.2/node_modules/@osdk/shared.net.errors/build/esm/PalantirApiError.js
1701
1780
  var PalantirApiError = class extends Error {
1702
- message;
1703
- errorName;
1704
- errorCode;
1705
- statusCode;
1706
- errorInstanceId;
1707
- parameters;
1708
- constructor(message, errorName, errorCode, statusCode, errorInstanceId2, parameters) {
1781
+ constructor(message, errorName, errorCode, errorDescription, statusCode, errorInstanceId2, parameters) {
1709
1782
  super(message);
1710
1783
  this.message = message;
1711
1784
  this.errorName = errorName;
1712
1785
  this.errorCode = errorCode;
1786
+ this.errorDescription = errorDescription;
1713
1787
  this.statusCode = statusCode;
1714
1788
  this.errorInstanceId = errorInstanceId2;
1715
1789
  this.parameters = parameters;
1716
1790
  }
1717
1791
  };
1718
1792
 
1719
- // ../../node_modules/.pnpm/@osdk+shared.net.errors@2.0.1/node_modules/@osdk/shared.net.errors/build/esm/UnknownError.js
1793
+ // ../../node_modules/.pnpm/@osdk+shared.net.errors@2.5.0-beta.2/node_modules/@osdk/shared.net.errors/build/esm/UnknownError.js
1720
1794
  var UnknownError = class extends PalantirApiError {
1721
- originalError;
1722
- constructor(message, errorType, originalError) {
1723
- super(message, errorType);
1795
+ constructor(message, errorName, originalError, statusCode) {
1796
+ super(message, errorName, void 0, void 0, statusCode);
1724
1797
  this.originalError = originalError;
1725
1798
  }
1726
1799
  };
1727
1800
 
1728
- // ../../node_modules/.pnpm/@osdk+shared.net.platformapi@1.4.0/node_modules/@osdk/shared.net.platformapi/build/esm/foundryPlatformFetch.js
1801
+ // ../../node_modules/.pnpm/@osdk+shared.net.platformapi@1.5.0/node_modules/@osdk/shared.net.platformapi/build/esm/foundryPlatformFetch.js
1729
1802
  async function foundryPlatformFetch(client, [httpMethodNum, origPath, flags, contentType, responseContentType], ...args) {
1730
1803
  const path = origPath.replace(/\{([^}]+)\}/g, () => encodeURIComponent(args.shift()));
1731
1804
  const body = flags & 1 ? args.shift() : void 0;
@@ -1769,7 +1842,7 @@ async function apiFetch(clientCtx, method, endpointPath, data, queryArguments, h
1769
1842
  if (!response.ok) {
1770
1843
  try {
1771
1844
  const convertedError = await response.json();
1772
- return new PalantirApiError(convertedError.message, convertedError.errorName, convertedError.errorCode, response.status, convertedError.errorInstanceId, convertedError.parameters);
1845
+ return new PalantirApiError(convertedError.message, convertedError.errorName, convertedError.errorCode, convertedError.errorDescription, response.status, convertedError.errorInstanceId, convertedError.parameters);
1773
1846
  } catch (e) {
1774
1847
  if (e instanceof Error) {
1775
1848
  return new UnknownError(e.message, "UNKNOWN");
@@ -1790,7 +1863,7 @@ function parseUrl(baseUrl, endpointPath) {
1790
1863
  return new URL(`api${endpointPath}`, baseUrl);
1791
1864
  }
1792
1865
 
1793
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1866
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Action.js
1794
1867
  var _apply = [1, "/v2/ontologies/{0}/actions/{1}/apply", 3];
1795
1868
  function apply($ctx, ...args) {
1796
1869
  return foundryPlatformFetch($ctx, _apply, ...args);
@@ -1804,7 +1877,7 @@ function applyBatch($ctx, ...args) {
1804
1877
  return foundryPlatformFetch($ctx, _applyBatch, ...args);
1805
1878
  }
1806
1879
 
1807
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ActionTypeV2.js
1880
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ActionTypeV2.js
1808
1881
  var ActionTypeV2_exports = {};
1809
1882
  __export(ActionTypeV2_exports, {
1810
1883
  get: () => get,
@@ -1824,7 +1897,7 @@ function getByRid($ctx, ...args) {
1824
1897
  return foundryPlatformFetch($ctx, _getByRid, ...args);
1825
1898
  }
1826
1899
 
1827
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Attachment.js
1900
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Attachment.js
1828
1901
  var Attachment_exports = {};
1829
1902
  __export(Attachment_exports, {
1830
1903
  get: () => get2,
@@ -1849,7 +1922,7 @@ function get2($ctx, ...args) {
1849
1922
  return foundryPlatformFetch($ctx, _get2, ...args);
1850
1923
  }
1851
1924
 
1852
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/AttachmentPropertyV2.js
1925
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/AttachmentPropertyV2.js
1853
1926
  var AttachmentPropertyV2_exports = {};
1854
1927
  __export(AttachmentPropertyV2_exports, {
1855
1928
  getAttachment: () => getAttachment,
@@ -1874,7 +1947,7 @@ function readAttachmentByRid($ctx, ...args) {
1874
1947
  return foundryPlatformFetch($ctx, _readAttachmentByRid, ...args);
1875
1948
  }
1876
1949
 
1877
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/LinkedObjectV2.js
1950
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/LinkedObjectV2.js
1878
1951
  var LinkedObjectV2_exports = {};
1879
1952
  __export(LinkedObjectV2_exports, {
1880
1953
  getLinkedObject: () => getLinkedObject,
@@ -1889,7 +1962,7 @@ function getLinkedObject($ctx, ...args) {
1889
1962
  return foundryPlatformFetch($ctx, _getLinkedObject, ...args);
1890
1963
  }
1891
1964
 
1892
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/MediaReferenceProperty.js
1965
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/MediaReferenceProperty.js
1893
1966
  var MediaReferenceProperty_exports = {};
1894
1967
  __export(MediaReferenceProperty_exports, {
1895
1968
  getMediaContent: () => getMediaContent,
@@ -1914,7 +1987,7 @@ function uploadMedia($ctx, ...args) {
1914
1987
  return foundryPlatformFetch($ctx, _uploadMedia, ...args);
1915
1988
  }
1916
1989
 
1917
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ObjectTypeV2.js
1990
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/ObjectTypeV2.js
1918
1991
  var ObjectTypeV2_exports = {};
1919
1992
  __export(ObjectTypeV2_exports, {
1920
1993
  get: () => get3,
@@ -1944,13 +2017,14 @@ function getOutgoingLinkType($ctx, ...args) {
1944
2017
  return foundryPlatformFetch($ctx, _getOutgoingLinkType, ...args);
1945
2018
  }
1946
2019
 
1947
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyInterface.js
2020
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyInterface.js
1948
2021
  var OntologyInterface_exports = {};
1949
2022
  __export(OntologyInterface_exports, {
1950
2023
  aggregate: () => aggregate,
1951
2024
  get: () => get4,
1952
2025
  getOutgoingInterfaceLinkType: () => getOutgoingInterfaceLinkType,
1953
2026
  list: () => list3,
2027
+ listInterfaceLinkedObjects: () => listInterfaceLinkedObjects,
1954
2028
  listObjectsForInterface: () => listObjectsForInterface,
1955
2029
  listOutgoingInterfaceLinkTypes: () => listOutgoingInterfaceLinkTypes,
1956
2030
  search: () => search
@@ -1983,8 +2057,12 @@ var _getOutgoingInterfaceLinkType = [0, "/v2/ontologies/{0}/interfaceTypes/{1}/o
1983
2057
  function getOutgoingInterfaceLinkType($ctx, ...args) {
1984
2058
  return foundryPlatformFetch($ctx, _getOutgoingInterfaceLinkType, ...args);
1985
2059
  }
2060
+ var _listInterfaceLinkedObjects = [0, "/v2/ontologies/{0}/interfaces/{1}/{2}/{3}/links/{4}", 2];
2061
+ function listInterfaceLinkedObjects($ctx, ...args) {
2062
+ return foundryPlatformFetch($ctx, _listInterfaceLinkedObjects, ...args);
2063
+ }
1986
2064
 
1987
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectSet.js
2065
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectSet.js
1988
2066
  var OntologyObjectSet_exports = {};
1989
2067
  __export(OntologyObjectSet_exports, {
1990
2068
  aggregate: () => aggregate2,
@@ -2019,7 +2097,7 @@ function aggregate2($ctx, ...args) {
2019
2097
  return foundryPlatformFetch($ctx, _aggregate2, ...args);
2020
2098
  }
2021
2099
 
2022
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectV2.js
2100
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyObjectV2.js
2023
2101
  var OntologyObjectV2_exports = {};
2024
2102
  __export(OntologyObjectV2_exports, {
2025
2103
  aggregate: () => aggregate3,
@@ -2049,7 +2127,7 @@ function aggregate3($ctx, ...args) {
2049
2127
  return foundryPlatformFetch($ctx, _aggregate3, ...args);
2050
2128
  }
2051
2129
 
2052
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyTransaction.js
2130
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyTransaction.js
2053
2131
  var OntologyTransaction_exports = {};
2054
2132
  __export(OntologyTransaction_exports, {
2055
2133
  postEdits: () => postEdits
@@ -2059,7 +2137,7 @@ function postEdits($ctx, ...args) {
2059
2137
  return foundryPlatformFetch($ctx, _postEdits, ...args);
2060
2138
  }
2061
2139
 
2062
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyV2.js
2140
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/OntologyV2.js
2063
2141
  var OntologyV2_exports = {};
2064
2142
  __export(OntologyV2_exports, {
2065
2143
  get: () => get7,
@@ -2084,7 +2162,7 @@ function loadMetadata($ctx, ...args) {
2084
2162
  return foundryPlatformFetch($ctx, _loadMetadata, ...args);
2085
2163
  }
2086
2164
 
2087
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Query.js
2165
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/Query.js
2088
2166
  var Query_exports = {};
2089
2167
  __export(Query_exports, {
2090
2168
  execute: () => execute
@@ -2094,7 +2172,7 @@ function execute($ctx, ...args) {
2094
2172
  return foundryPlatformFetch($ctx, _execute, ...args);
2095
2173
  }
2096
2174
 
2097
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/QueryType.js
2175
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/QueryType.js
2098
2176
  var QueryType_exports = {};
2099
2177
  __export(QueryType_exports, {
2100
2178
  get: () => get8,
@@ -2109,7 +2187,7 @@ function get8($ctx, ...args) {
2109
2187
  return foundryPlatformFetch($ctx, _get8, ...args);
2110
2188
  }
2111
2189
 
2112
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesPropertyV2.js
2190
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesPropertyV2.js
2113
2191
  var TimeSeriesPropertyV2_exports = {};
2114
2192
  __export(TimeSeriesPropertyV2_exports, {
2115
2193
  getFirstPoint: () => getFirstPoint,
@@ -2129,7 +2207,7 @@ function streamPoints($ctx, ...args) {
2129
2207
  return foundryPlatformFetch($ctx, _streamPoints, ...args);
2130
2208
  }
2131
2209
 
2132
- // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.30.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesValueBankProperty.js
2210
+ // ../../node_modules/.pnpm/@osdk+foundry.ontologies@2.35.0/node_modules/@osdk/foundry.ontologies/build/esm/public/TimeSeriesValueBankProperty.js
2133
2211
  var TimeSeriesValueBankProperty_exports = {};
2134
2212
  __export(TimeSeriesValueBankProperty_exports, {
2135
2213
  getLatestValue: () => getLatestValue,
@@ -2852,7 +2930,8 @@ var FauxAttachmentStore = class {
2852
2930
  errorInstanceId: "internal",
2853
2931
  parameters: {
2854
2932
  attachmentRid
2855
- }
2933
+ },
2934
+ errorDescription: "The requested attachment is not found, or the client token does not have access to it. Attachments that are not attached to any objects are deleted after two weeks. Attachments that have not been attached to an object can only be viewed by the user who uploaded them. Attachments that have been attached to an object can be viewed by users who can view the object."
2856
2935
  });
2857
2936
  }
2858
2937
  const {
@@ -2873,7 +2952,8 @@ var FauxAttachmentStore = class {
2873
2952
  errorInstanceId: "internal",
2874
2953
  parameters: {
2875
2954
  attachmentRid
2876
- }
2955
+ },
2956
+ errorDescription: "The requested attachment is not found, or the client token does not have access to it. Attachments that are not attached to any objects are deleted after two weeks. Attachments that have not been attached to an object can only be viewed by the user who uploaded them. Attachments that have been attached to an object can be viewed by users who can view the object."
2877
2957
  });
2878
2958
  }
2879
2959
  return attachment.buffer;