@osdk/client 2.0.2-rc.0 → 2.1.0-beta.0

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 +17 -15
  2. package/build/browser/Client.d.ts +1 -1
  3. package/build/browser/Client.js +1 -1
  4. package/build/browser/Client.js.map +1 -1
  5. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts +3 -3
  6. package/build/browser/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
  7. package/build/browser/createClient.d.ts.map +1 -1
  8. package/build/browser/createClient.js +11 -0
  9. package/build/browser/createClient.js.map +1 -1
  10. package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts +1 -1
  11. package/build/browser/internal/conversions/modernToLegacyWhereClause.d.ts.map +1 -1
  12. package/build/browser/internal/conversions/modernToLegacyWhereClause.js +19 -7
  13. package/build/browser/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  14. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js +117 -14
  15. package/build/browser/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  16. package/build/browser/object/aggregate.js +1 -1
  17. package/build/browser/object/aggregate.js.map +1 -1
  18. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts +2 -2
  19. package/build/browser/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  20. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js +27 -1
  21. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  22. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts +2 -0
  23. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts.map +1 -0
  24. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js +190 -0
  25. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -0
  26. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +1 -3
  27. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  28. package/build/browser/object/convertWireToOsdkObjects.test.js +25 -1
  29. package/build/browser/object/convertWireToOsdkObjects.test.js.map +1 -1
  30. package/build/browser/object/fetchSingle.js +1 -1
  31. package/build/browser/object/fetchSingle.js.map +1 -1
  32. package/build/browser/object/object.test.js +1 -1
  33. package/build/browser/object/object.test.js.map +1 -1
  34. package/build/browser/objectSet/ObjectSet.test.js +0 -1
  35. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  36. package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts +1 -6
  37. package/build/browser/objectSet/ObjectSetListenerWebsocket.d.ts.map +1 -1
  38. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +37 -156
  39. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  40. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js +17 -16
  41. package/build/browser/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  42. package/build/browser/objectSet/createObjectSet.js +3 -3
  43. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  44. package/build/browser/queries/applyQuery.js +3 -3
  45. package/build/browser/queries/applyQuery.js.map +1 -1
  46. package/build/browser/queries/queries.test.js +7 -1
  47. package/build/browser/queries/queries.test.js.map +1 -1
  48. package/build/browser/util/UserAgent.js +1 -1
  49. package/build/browser/util/UserAgent.js.map +1 -1
  50. package/build/esm/Client.d.ts +1 -1
  51. package/build/esm/Client.js +1 -1
  52. package/build/esm/Client.js.map +1 -1
  53. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts +3 -3
  54. package/build/esm/__unstable/createBulkLinksAsyncIterFactory.d.ts.map +1 -1
  55. package/build/esm/createClient.d.ts.map +1 -1
  56. package/build/esm/createClient.js +11 -0
  57. package/build/esm/createClient.js.map +1 -1
  58. package/build/esm/internal/conversions/modernToLegacyWhereClause.d.ts +1 -1
  59. package/build/esm/internal/conversions/modernToLegacyWhereClause.d.ts.map +1 -1
  60. package/build/esm/internal/conversions/modernToLegacyWhereClause.js +19 -7
  61. package/build/esm/internal/conversions/modernToLegacyWhereClause.js.map +1 -1
  62. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js +117 -14
  63. package/build/esm/internal/conversions/modernToLegacyWhereClause.test.js.map +1 -1
  64. package/build/esm/object/aggregate.js +1 -1
  65. package/build/esm/object/aggregate.js.map +1 -1
  66. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts +2 -2
  67. package/build/esm/object/convertWireToOsdkObjects/InternalSymbols.d.ts.map +1 -1
  68. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js +27 -1
  69. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  70. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts +2 -0
  71. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.d.ts.map +1 -0
  72. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js +190 -0
  73. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.test.js.map +1 -0
  74. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +1 -3
  75. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  76. package/build/esm/object/convertWireToOsdkObjects.test.js +25 -1
  77. package/build/esm/object/convertWireToOsdkObjects.test.js.map +1 -1
  78. package/build/esm/object/fetchSingle.js +1 -1
  79. package/build/esm/object/fetchSingle.js.map +1 -1
  80. package/build/esm/object/object.test.js +1 -1
  81. package/build/esm/object/object.test.js.map +1 -1
  82. package/build/esm/objectSet/ObjectSet.test.js +0 -1
  83. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  84. package/build/esm/objectSet/ObjectSetListenerWebsocket.d.ts +1 -6
  85. package/build/esm/objectSet/ObjectSetListenerWebsocket.d.ts.map +1 -1
  86. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +37 -156
  87. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  88. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js +17 -16
  89. package/build/esm/objectSet/ObjectSetListenerWebsocket.test.js.map +1 -1
  90. package/build/esm/objectSet/createObjectSet.js +3 -3
  91. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  92. package/build/esm/queries/applyQuery.js +3 -3
  93. package/build/esm/queries/applyQuery.js.map +1 -1
  94. package/build/esm/queries/queries.test.js +7 -1
  95. package/build/esm/queries/queries.test.js.map +1 -1
  96. package/build/esm/util/UserAgent.js +1 -1
  97. package/build/esm/util/UserAgent.js.map +1 -1
  98. package/package.json +9 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectSetListenerWebsocket.test.js","names":["$ontologyRid","Employee","Office","apiServer","ImportedWebSocket","http","HttpResponse","afterAll","afterEach","beforeAll","beforeEach","describe","expect","it","vi","z","createMinimalClient","conjureUnionType","ObjectSetListenerWebsocket","rootLogger","hoisted","pino","pinoPretty","EventEmitter","Promise","resolve","level","build","sync","timestampKey","undefined","errorLikeObjectKeys","errorProps","ignore","destination","write","a","at","slice","console","log","MockedWebSocket","STACK","mock","importOriginal","original","WebSocket","createMockWebSocketConstructor","default","listen","addLoggerToApiServer","close","minimalClient","MINIMUM_RECONNECT_DELAY","OBJECT_SET_EXPIRY_MS","client","listener","oslwInst","ontologyRid","logger","child","minimumReconnectDelayMs","objectSetExpiryMs","onChange","fn","onError","onOutOfDate","objectSetRidCounter","use","post","json","objectSetRid","useFakeTimers","restoreAllMocks","resetHandlers","not","toHaveBeenCalled","ws","unsubscribe","subReq1","subscribeAndExpectWebSocket","expectSingleSubscribeMessage","setWebSocketState","runAllTicks","expectEqualRemoveAndAddListeners","respondSuccessToSubscribe","send","all","expectWebSocketConstructed","advanceTimersByTimeAsync","subReq2","unsubscribe2","subscribe","type","objectType","apiName","fatal","id","toEqual","toHaveBeenCalledTimes","sendToClient","responses","requests","map","_","i","removeEventListener","addEventListener","calls","length","SubscribeMessage","parse","consumeSingleSend","waitFor","results","value","mockClear","toBeCalledTimes","result","JSON","lastCall","toString","OriginalWebSocket","ret","_args","webSocketInst","debug","eventEmitter","EventTarget","bind","message","_eventEmitter","readyState","CONNECTING","Object","assign","OPEN","CLOSED","CLOSING","newState","dispatchEvent","Event","name","requestId","request","trace","url","eventNames","c","events","on","object","string","array","objectSet","objectSetContext","any","watchAllLinks","boolean","MessageEvent","data","constructor","stringify","t"],"sources":["ObjectSetListenerWebsocket.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 { $ontologyRid, Employee, Office } from \"@osdk/client.test.ontology\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport ImportedWebSocket from \"isomorphic-ws\";\nimport { http, HttpResponse } from \"msw\";\nimport { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi, } from \"vitest\";\nimport { z } from \"zod\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport { conjureUnionType } from \"./conjureUnionType.js\";\nimport { ObjectSetListenerWebsocket } from \"./ObjectSetListenerWebsocket.js\";\n// it needs to be hoisted because its referenced from our mocked WebSocket\n// which must be hoisted to work\nconst rootLogger = await vi.hoisted(async () => {\n const pino = (await import(\"pino\")).pino;\n const pinoPretty = await import(\"pino-pretty\");\n const { EventEmitter } = await import(\"node:events\");\n class PinoConsoleLogDestination extends EventEmitter {\n write(a) {\n // remove trailing newline since console.log adds one\n if (a.at(-1) === \"\\n\")\n a = a.slice(0, -1);\n // This lets the test framework aggregate the logs per test, whereas direct to stdout does not\n console.log(a);\n }\n }\n return Promise.resolve(pino({ level: \"info\" }, (pinoPretty.build)({\n sync: true,\n timestampKey: undefined,\n errorLikeObjectKeys: [\"error\", \"err\", \"exception\"],\n errorProps: \"stack,cause,properties\",\n ignore: \"time,hostname,pid\",\n destination: new PinoConsoleLogDestination(),\n })));\n});\n// make local uses of WebSocket typed right\nconst MockedWebSocket = ImportedWebSocket;\nconst STACK = \"https://stack.palantir.com\";\nvi.mock(\"isomorphic-ws\", async (importOriginal) => {\n const original = await importOriginal();\n const WebSocket = createMockWebSocketConstructor(original.default, rootLogger);\n return { default: WebSocket, WebSocket };\n});\ndescribe(\"ObjectSetListenerWebsocket\", async () => {\n beforeAll(async () => {\n apiServer.listen();\n addLoggerToApiServer(rootLogger);\n });\n afterAll(() => {\n apiServer.close();\n });\n describe(\"basic setup\", () => {\n let minimalClient;\n const MINIMUM_RECONNECT_DELAY = 2_000;\n const OBJECT_SET_EXPIRY_MS = 60_000;\n let client;\n let listener;\n let oslwInst = 0;\n beforeEach(() => {\n minimalClient = createMinimalClient({ ontologyRid: $ontologyRid }, STACK, async () => \"myAccessToken\", { logger: rootLogger });\n client = new ObjectSetListenerWebsocket({\n ...minimalClient,\n logger: rootLogger.child({ oslwInst: oslwInst++ }),\n }, {\n minimumReconnectDelayMs: MINIMUM_RECONNECT_DELAY,\n objectSetExpiryMs: OBJECT_SET_EXPIRY_MS,\n });\n listener = {\n onChange: vi.fn(),\n onError: vi.fn(),\n onOutOfDate: vi.fn(),\n };\n let objectSetRidCounter = 0;\n apiServer.use(http.post(`${STACK}/object-set-service/api/objectSets/temporary`, () => HttpResponse.json({\n objectSetRid: `rid.hi.${objectSetRidCounter++}`,\n })), http.post(`${STACK}/object-set-watcher/api/object-set-watcher/batchEnableWatcher`, async () => {\n return HttpResponse.json({});\n }));\n vi.useFakeTimers();\n });\n afterEach(() => {\n vi.restoreAllMocks();\n apiServer.resetHandlers();\n });\n it(\"should not send onOutOfDate since it has not subscribed yet\", () => {\n expect(MockedWebSocket).not.toHaveBeenCalled();\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n expect(listener.onChange).not.toHaveBeenCalled();\n expect(listener.onError).not.toHaveBeenCalled();\n });\n describe(\"requests subscription\", () => {\n let ws;\n let unsubscribe;\n let subReq1;\n beforeEach(async () => {\n [ws, unsubscribe] = await subscribeAndExpectWebSocket(client, listener);\n subReq1 = await expectSingleSubscribeMessage(ws);\n });\n afterEach(() => {\n // just ensure we ended in good states, as we clear these as we consume them\n expect(MockedWebSocket).not.toHaveBeenCalled();\n // make sure we are unsubscribed so closing the socket doesn't trigger reconnects\n unsubscribe();\n // disconnect the socket\n setWebSocketState(ws, \"close\");\n vi.runAllTicks();\n // Make sure we cleaned up\n expectEqualRemoveAndAddListeners(ws);\n });\n it(\"only sends a single request\", async () => {\n respondSuccessToSubscribe(ws, subReq1);\n // actually this is broken FIXME\n unsubscribe();\n expect(ws.send).not.toHaveBeenCalled();\n });\n describe(\"socket closed before subscription confirmed\", () => {\n beforeEach(() => {\n setWebSocketState(ws, \"close\");\n expectEqualRemoveAndAddListeners(ws);\n });\n describe(\"reconnect\", async () => {\n beforeEach(async () => {\n [ws] = await Promise.all([\n expectWebSocketConstructed(),\n // delay for connection reconnect\n vi.advanceTimersByTimeAsync(MINIMUM_RECONNECT_DELAY),\n ]);\n setWebSocketState(ws, \"open\");\n });\n describe(\"subscribe and respond\", () => {\n beforeEach(async () => {\n const subReq2 = await expectSingleSubscribeMessage(ws);\n respondSuccessToSubscribe(ws, subReq2);\n });\n it(\"should not send out of date\", () => {\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n });\n });\n });\n });\n describe(\"successfully subscribed\", () => {\n beforeEach(() => {\n respondSuccessToSubscribe(ws, subReq1);\n });\n describe(\"additional subscription\", async () => {\n let unsubscribe2;\n let subReq2;\n beforeEach(async () => {\n [unsubscribe2, subReq2] = await Promise.all([\n client.subscribe({\n type: \"base\",\n objectType: Office.apiName,\n }, listener),\n expectSingleSubscribeMessage(ws),\n ]);\n rootLogger.fatal({ subReq2 });\n respondSuccessToSubscribe(ws, subReq2);\n });\n afterEach(() => {\n unsubscribe2();\n });\n it(\"does not trigger an out of date \", () => {\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n });\n });\n describe(\"temporary object set expires\", () => {\n beforeEach(async () => {\n await vi.advanceTimersByTimeAsync(OBJECT_SET_EXPIRY_MS + 1000);\n });\n it(\"should resubscribe and fire out of date\", async () => {\n vi.runAllTicks();\n const subReq2 = await expectSingleSubscribeMessage(ws);\n expect(subReq2.id).not.toEqual(subReq1.id);\n respondSuccessToSubscribe(ws, subReq2);\n expect(listener.onOutOfDate).toHaveBeenCalledTimes(1);\n });\n });\n describe(\"socket closed abruptly\", () => {\n beforeEach(() => {\n setWebSocketState(ws, \"close\");\n expectEqualRemoveAndAddListeners(ws);\n });\n describe(\"reconnect, resubscribe successfully\", async () => {\n beforeEach(async () => {\n [ws] = await Promise.all([\n expectWebSocketConstructed(),\n // delay for connection reconnect\n vi.advanceTimersByTimeAsync(MINIMUM_RECONNECT_DELAY),\n ]);\n setWebSocketState(ws, \"open\");\n const subReq2 = await expectSingleSubscribeMessage(ws);\n respondSuccessToSubscribe(ws, subReq2);\n });\n it(\"should send out of date\", () => {\n expect(listener.onOutOfDate).toHaveBeenCalledTimes(1);\n });\n });\n });\n it(\"should not send onOutOfDate for first call\", () => {\n expect(MockedWebSocket).not.toHaveBeenCalled();\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n expect(listener.onChange).not.toHaveBeenCalled();\n expect(listener.onError).not.toHaveBeenCalled();\n });\n });\n });\n });\n});\nfunction respondSuccessToSubscribe(ws, subReq2) {\n sendToClient(ws, conjureUnionType(\"subscribeResponses\", {\n id: subReq2.id,\n responses: subReq2.requests.map((_, i) => conjureUnionType(\"success\", { id: `id-${i}` })),\n }));\n}\nfunction expectEqualRemoveAndAddListeners(ws) {\n expect(ws.removeEventListener).toHaveBeenCalledTimes(ws.addEventListener.mock.calls.length);\n}\nasync function expectSingleSubscribeMessage(ws) {\n return SubscribeMessage.parse(await consumeSingleSend(ws));\n}\nasync function subscribeAndExpectWebSocket(client, listener) {\n const [ws, unsubscribe] = await Promise.all([\n expectWebSocketConstructed(),\n client.subscribe({\n type: \"base\",\n objectType: Employee.apiName,\n }, listener),\n ]);\n // otherwise the ObjectSetListenerWebSocket is sitting waiting for it to \"connect\"\n setWebSocketState(ws, \"open\");\n return [ws, unsubscribe];\n}\nasync function expectWebSocketConstructed() {\n expect(MockedWebSocket).toHaveBeenCalledTimes(0);\n const ws = await vi.waitFor(() => {\n expect(MockedWebSocket).toHaveBeenCalled();\n expect(MockedWebSocket.mock.results[0].type === \"return\");\n return MockedWebSocket.mock.results[0].value;\n });\n expect(MockedWebSocket).toHaveBeenCalledTimes(1);\n MockedWebSocket.mockClear();\n expect(MockedWebSocket).toHaveBeenCalledTimes(0);\n return ws;\n}\nasync function consumeSingleSend(ws) {\n return await vi.waitFor(() => {\n expect(ws.send).toBeCalledTimes(1);\n const result = JSON.parse(ws.send.mock.lastCall[0].toString());\n ws.send.mockClear();\n return result;\n });\n}\nfunction createMockWebSocketConstructor(OriginalWebSocket, logger) {\n let i = 0;\n const ret = vi.fn(function (..._args) {\n const webSocketInst = i++;\n logger.debug(\"WebSocket constructor called\");\n const eventEmitter = new EventTarget();\n return {\n addEventListener: vi.fn(eventEmitter.addEventListener.bind(eventEmitter)),\n removeEventListener: vi.fn(eventEmitter.removeEventListener.bind(eventEmitter)),\n send: vi.fn((a, _b) => {\n logger.debug({ message: JSON.parse(a.toString()), webSocketInst }, \"send() called\");\n }),\n close: vi.fn(),\n _eventEmitter: eventEmitter,\n readyState: OriginalWebSocket.CONNECTING,\n };\n // ^ we only implement some things but the type system wants to think its the full deal,\n // thus the satisfies plus the cast\n });\n Object.assign(ret, {\n OPEN: OriginalWebSocket.OPEN,\n CLOSED: OriginalWebSocket.CLOSED,\n CLOSING: OriginalWebSocket.CLOSING,\n CONNECTING: OriginalWebSocket.CONNECTING,\n });\n return ret;\n}\nfunction setWebSocketState(ws, readyState) {\n const newState = readyState === \"open\"\n ? ImportedWebSocket.OPEN\n : ImportedWebSocket.CLOSED;\n if (newState === ws.readyState)\n return;\n ws.readyState = newState;\n ws._eventEmitter.dispatchEvent(new Event(readyState, {}));\n}\nfunction addLoggerToApiServer(logger) {\n const z = (name, { requestId, request }) => logger.trace({ requestId, url: request.url }, name);\n const eventNames = [\n \"request:start\",\n \"request:match\",\n \"request:end\",\n \"request:unhandled\",\n \"response:bypass\",\n \"response:mocked\",\n ];\n for (const c of eventNames) {\n apiServer.events.on(c, z.bind(undefined, c));\n }\n}\nconst SubscribeMessage = z.object({\n id: z.string(),\n requests: z.array(z.object({\n objectSet: z.string(),\n objectSetContext: z.any(),\n watchAllLinks: z.boolean(),\n })),\n});\nclass MessageEvent extends Event {\n data;\n constructor(data) {\n super(\"message\");\n this.data = JSON.stringify(data);\n }\n}\nfunction sendToClient(ws, t) {\n ws._eventEmitter.dispatchEvent(new MessageEvent(t));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,4BAA4B;AAC3E,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,OAAOC,iBAAiB,MAAM,eAAe;AAC7C,SAASC,IAAI,EAAEC,YAAY,QAAQ,KAAK;AACxC,SAASC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAS,QAAQ;AAC9F,SAASC,CAAC,QAAQ,KAAK;AACvB,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,0BAA0B,QAAQ,iCAAiC;AAC5E;AACA;AACA,MAAMC,UAAU,GAAG,MAAML,EAAE,CAACM,OAAO,CAAC,YAAY;EAC5C,MAAMC,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAEA,IAAI;EACxC,MAAMC,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;EAC9C,MAAM;IAAEC;EAAa,CAAC,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;EAUpD,OAAOC,OAAO,CAACC,OAAO,CAACJ,IAAI,CAAC;IAAEK,KAAK,EAAE;EAAO,CAAC,EAAGJ,UAAU,CAACK,KAAK,CAAE;IAC9DC,IAAI,EAAE,IAAI;IACVC,YAAY,EAAEC,SAAS;IACvBC,mBAAmB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC;IAClDC,UAAU,EAAE,wBAAwB;IACpCC,MAAM,EAAE,mBAAmB;IAC3BC,WAAW,EAAE,IAfjB,cAAwCX,YAAY,CAAC;MACjDY,KAAKA,CAACC,CAAC,EAAE;QACL;QACA,IAAIA,CAAC,CAACC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EACjBD,CAAC,GAAGA,CAAC,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB;QACAC,OAAO,CAACC,GAAG,CAACJ,CAAC,CAAC;MAClB;IACJ,CAAC,CAO8C;EAC/C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AACF;AACA,MAAMK,eAAe,GAAGrC,iBAAiB;AACzC,MAAMsC,KAAK,GAAG,4BAA4B;AAC1C5B,EAAE,CAAC6B,IAAI,CAAC,eAAe,EAAE,MAAOC,cAAc,IAAK;EAC/C,MAAMC,QAAQ,GAAG,MAAMD,cAAc,CAAC,CAAC;EACvC,MAAME,SAAS,GAAGC,8BAA8B,CAACF,QAAQ,CAACG,OAAO,EAAE7B,UAAU,CAAC;EAC9E,OAAO;IAAE6B,OAAO,EAAEF,SAAS;IAAEA;EAAU,CAAC;AAC5C,CAAC,CAAC;AACFnC,QAAQ,CAAC,4BAA4B,EAAE,YAAY;EAC/CF,SAAS,CAAC,YAAY;IAClBN,SAAS,CAAC8C,MAAM,CAAC,CAAC;IAClBC,oBAAoB,CAAC/B,UAAU,CAAC;EACpC,CAAC,CAAC;EACFZ,QAAQ,CAAC,MAAM;IACXJ,SAAS,CAACgD,KAAK,CAAC,CAAC;EACrB,CAAC,CAAC;EACFxC,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC1B,IAAIyC,aAAa;IACjB,MAAMC,uBAAuB,GAAG,KAAK;IACrC,MAAMC,oBAAoB,GAAG,MAAM;IACnC,IAAIC,MAAM;IACV,IAAIC,QAAQ;IACZ,IAAIC,QAAQ,GAAG,CAAC;IAChB/C,UAAU,CAAC,MAAM;MACb0C,aAAa,GAAGpC,mBAAmB,CAAC;QAAE0C,WAAW,EAAE1D;MAAa,CAAC,EAAE0C,KAAK,EAAE,YAAY,eAAe,EAAE;QAAEiB,MAAM,EAAExC;MAAW,CAAC,CAAC;MAC9HoC,MAAM,GAAG,IAAIrC,0BAA0B,CAAC;QACpC,GAAGkC,aAAa;QAChBO,MAAM,EAAExC,UAAU,CAACyC,KAAK,CAAC;UAAEH,QAAQ,EAAEA,QAAQ;QAAG,CAAC;MACrD,CAAC,EAAE;QACCI,uBAAuB,EAAER,uBAAuB;QAChDS,iBAAiB,EAAER;MACvB,CAAC,CAAC;MACFE,QAAQ,GAAG;QACPO,QAAQ,EAAEjD,EAAE,CAACkD,EAAE,CAAC,CAAC;QACjBC,OAAO,EAAEnD,EAAE,CAACkD,EAAE,CAAC,CAAC;QAChBE,WAAW,EAAEpD,EAAE,CAACkD,EAAE,CAAC;MACvB,CAAC;MACD,IAAIG,mBAAmB,GAAG,CAAC;MAC3BhE,SAAS,CAACiE,GAAG,CAAC/D,IAAI,CAACgE,IAAI,CAAC,GAAG3B,KAAK,8CAA8C,EAAE,MAAMpC,YAAY,CAACgE,IAAI,CAAC;QACpGC,YAAY,EAAE,UAAUJ,mBAAmB,EAAE;MACjD,CAAC,CAAC,CAAC,EAAE9D,IAAI,CAACgE,IAAI,CAAC,GAAG3B,KAAK,+DAA+D,EAAE,YAAY;QAChG,OAAOpC,YAAY,CAACgE,IAAI,CAAC,CAAC,CAAC,CAAC;MAChC,CAAC,CAAC,CAAC;MACHxD,EAAE,CAAC0D,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC;IACFhE,SAAS,CAAC,MAAM;MACZM,EAAE,CAAC2D,eAAe,CAAC,CAAC;MACpBtE,SAAS,CAACuE,aAAa,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF7D,EAAE,CAAC,6DAA6D,EAAE,MAAM;MACpED,MAAM,CAAC6B,eAAe,CAAC,CAACkC,GAAG,CAACC,gBAAgB,CAAC,CAAC;MAC9ChE,MAAM,CAAC4C,QAAQ,CAACU,WAAW,CAAC,CAACS,GAAG,CAACC,gBAAgB,CAAC,CAAC;MACnDhE,MAAM,CAAC4C,QAAQ,CAACO,QAAQ,CAAC,CAACY,GAAG,CAACC,gBAAgB,CAAC,CAAC;MAChDhE,MAAM,CAAC4C,QAAQ,CAACS,OAAO,CAAC,CAACU,GAAG,CAACC,gBAAgB,CAAC,CAAC;IACnD,CAAC,CAAC;IACFjE,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACpC,IAAIkE,EAAE;MACN,IAAIC,WAAW;MACf,IAAIC,OAAO;MACXrE,UAAU,CAAC,YAAY;QACnB,CAACmE,EAAE,EAAEC,WAAW,CAAC,GAAG,MAAME,2BAA2B,CAACzB,MAAM,EAAEC,QAAQ,CAAC;QACvEuB,OAAO,GAAG,MAAME,4BAA4B,CAACJ,EAAE,CAAC;MACpD,CAAC,CAAC;MACFrE,SAAS,CAAC,MAAM;QACZ;QACAI,MAAM,CAAC6B,eAAe,CAAC,CAACkC,GAAG,CAACC,gBAAgB,CAAC,CAAC;QAC9C;QACAE,WAAW,CAAC,CAAC;QACb;QACAI,iBAAiB,CAACL,EAAE,EAAE,OAAO,CAAC;QAC9B/D,EAAE,CAACqE,WAAW,CAAC,CAAC;QAChB;QACAC,gCAAgC,CAACP,EAAE,CAAC;MACxC,CAAC,CAAC;MACFhE,EAAE,CAAC,6BAA6B,EAAE,YAAY;QAC1CwE,yBAAyB,CAACR,EAAE,EAAEE,OAAO,CAAC;QACtC;QACAD,WAAW,CAAC,CAAC;QACblE,MAAM,CAACiE,EAAE,CAACS,IAAI,CAAC,CAACX,GAAG,CAACC,gBAAgB,CAAC,CAAC;MAC1C,CAAC,CAAC;MACFjE,QAAQ,CAAC,6CAA6C,EAAE,MAAM;QAC1DD,UAAU,CAAC,MAAM;UACbwE,iBAAiB,CAACL,EAAE,EAAE,OAAO,CAAC;UAC9BO,gCAAgC,CAACP,EAAE,CAAC;QACxC,CAAC,CAAC;QACFlE,QAAQ,CAAC,WAAW,EAAE,YAAY;UAC9BD,UAAU,CAAC,YAAY;YACnB,CAACmE,EAAE,CAAC,GAAG,MAAMrD,OAAO,CAAC+D,GAAG,CAAC,CACrBC,0BAA0B,CAAC,CAAC;YAC5B;YACA1E,EAAE,CAAC2E,wBAAwB,CAACpC,uBAAuB,CAAC,CACvD,CAAC;YACF6B,iBAAiB,CAACL,EAAE,EAAE,MAAM,CAAC;UACjC,CAAC,CAAC;UACFlE,QAAQ,CAAC,uBAAuB,EAAE,MAAM;YACpCD,UAAU,CAAC,YAAY;cACnB,MAAMgF,OAAO,GAAG,MAAMT,4BAA4B,CAACJ,EAAE,CAAC;cACtDQ,yBAAyB,CAACR,EAAE,EAAEa,OAAO,CAAC;YAC1C,CAAC,CAAC;YACF7E,EAAE,CAAC,6BAA6B,EAAE,MAAM;cACpCD,MAAM,CAAC4C,QAAQ,CAACU,WAAW,CAAC,CAACS,GAAG,CAACC,gBAAgB,CAAC,CAAC;YACvD,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC,CAAC;MACFjE,QAAQ,CAAC,yBAAyB,EAAE,MAAM;QACtCD,UAAU,CAAC,MAAM;UACb2E,yBAAyB,CAACR,EAAE,EAAEE,OAAO,CAAC;QAC1C,CAAC,CAAC;QACFpE,QAAQ,CAAC,yBAAyB,EAAE,YAAY;UAC5C,IAAIgF,YAAY;UAChB,IAAID,OAAO;UACXhF,UAAU,CAAC,YAAY;YACnB,CAACiF,YAAY,EAAED,OAAO,CAAC,GAAG,MAAMlE,OAAO,CAAC+D,GAAG,CAAC,CACxChC,MAAM,CAACqC,SAAS,CAAC;cACbC,IAAI,EAAE,MAAM;cACZC,UAAU,EAAE5F,MAAM,CAAC6F;YACvB,CAAC,EAAEvC,QAAQ,CAAC,EACZyB,4BAA4B,CAACJ,EAAE,CAAC,CACnC,CAAC;YACF1D,UAAU,CAAC6E,KAAK,CAAC;cAAEN;YAAQ,CAAC,CAAC;YAC7BL,yBAAyB,CAACR,EAAE,EAAEa,OAAO,CAAC;UAC1C,CAAC,CAAC;UACFlF,SAAS,CAAC,MAAM;YACZmF,YAAY,CAAC,CAAC;UAClB,CAAC,CAAC;UACF9E,EAAE,CAAC,kCAAkC,EAAE,MAAM;YACzCD,MAAM,CAAC4C,QAAQ,CAACU,WAAW,CAAC,CAACS,GAAG,CAACC,gBAAgB,CAAC,CAAC;UACvD,CAAC,CAAC;QACN,CAAC,CAAC;QACFjE,QAAQ,CAAC,8BAA8B,EAAE,MAAM;UAC3CD,UAAU,CAAC,YAAY;YACnB,MAAMI,EAAE,CAAC2E,wBAAwB,CAACnC,oBAAoB,GAAG,IAAI,CAAC;UAClE,CAAC,CAAC;UACFzC,EAAE,CAAC,yCAAyC,EAAE,YAAY;YACtDC,EAAE,CAACqE,WAAW,CAAC,CAAC;YAChB,MAAMO,OAAO,GAAG,MAAMT,4BAA4B,CAACJ,EAAE,CAAC;YACtDjE,MAAM,CAAC8E,OAAO,CAACO,EAAE,CAAC,CAACtB,GAAG,CAACuB,OAAO,CAACnB,OAAO,CAACkB,EAAE,CAAC;YAC1CZ,yBAAyB,CAACR,EAAE,EAAEa,OAAO,CAAC;YACtC9E,MAAM,CAAC4C,QAAQ,CAACU,WAAW,CAAC,CAACiC,qBAAqB,CAAC,CAAC,CAAC;UACzD,CAAC,CAAC;QACN,CAAC,CAAC;QACFxF,QAAQ,CAAC,wBAAwB,EAAE,MAAM;UACrCD,UAAU,CAAC,MAAM;YACbwE,iBAAiB,CAACL,EAAE,EAAE,OAAO,CAAC;YAC9BO,gCAAgC,CAACP,EAAE,CAAC;UACxC,CAAC,CAAC;UACFlE,QAAQ,CAAC,qCAAqC,EAAE,YAAY;YACxDD,UAAU,CAAC,YAAY;cACnB,CAACmE,EAAE,CAAC,GAAG,MAAMrD,OAAO,CAAC+D,GAAG,CAAC,CACrBC,0BAA0B,CAAC,CAAC;cAC5B;cACA1E,EAAE,CAAC2E,wBAAwB,CAACpC,uBAAuB,CAAC,CACvD,CAAC;cACF6B,iBAAiB,CAACL,EAAE,EAAE,MAAM,CAAC;cAC7B,MAAMa,OAAO,GAAG,MAAMT,4BAA4B,CAACJ,EAAE,CAAC;cACtDQ,yBAAyB,CAACR,EAAE,EAAEa,OAAO,CAAC;YAC1C,CAAC,CAAC;YACF7E,EAAE,CAAC,yBAAyB,EAAE,MAAM;cAChCD,MAAM,CAAC4C,QAAQ,CAACU,WAAW,CAAC,CAACiC,qBAAqB,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC;UACN,CAAC,CAAC;QACN,CAAC,CAAC;QACFtF,EAAE,CAAC,4CAA4C,EAAE,MAAM;UACnDD,MAAM,CAAC6B,eAAe,CAAC,CAACkC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAC9ChE,MAAM,CAAC4C,QAAQ,CAACU,WAAW,CAAC,CAACS,GAAG,CAACC,gBAAgB,CAAC,CAAC;UACnDhE,MAAM,CAAC4C,QAAQ,CAACO,QAAQ,CAAC,CAACY,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAChDhE,MAAM,CAAC4C,QAAQ,CAACS,OAAO,CAAC,CAACU,GAAG,CAACC,gBAAgB,CAAC,CAAC;QACnD,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC;AACF,SAASS,yBAAyBA,CAACR,EAAE,EAAEa,OAAO,EAAE;EAC5CU,YAAY,CAACvB,EAAE,EAAE5D,gBAAgB,CAAC,oBAAoB,EAAE;IACpDgF,EAAE,EAAEP,OAAO,CAACO,EAAE;IACdI,SAAS,EAAEX,OAAO,CAACY,QAAQ,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKxF,gBAAgB,CAAC,SAAS,EAAE;MAAEgF,EAAE,EAAE,MAAMQ,CAAC;IAAG,CAAC,CAAC;EAC5F,CAAC,CAAC,CAAC;AACP;AACA,SAASrB,gCAAgCA,CAACP,EAAE,EAAE;EAC1CjE,MAAM,CAACiE,EAAE,CAAC6B,mBAAmB,CAAC,CAACP,qBAAqB,CAACtB,EAAE,CAAC8B,gBAAgB,CAAChE,IAAI,CAACiE,KAAK,CAACC,MAAM,CAAC;AAC/F;AACA,eAAe5B,4BAA4BA,CAACJ,EAAE,EAAE;EAC5C,OAAOiC,gBAAgB,CAACC,KAAK,CAAC,MAAMC,iBAAiB,CAACnC,EAAE,CAAC,CAAC;AAC9D;AACA,eAAeG,2BAA2BA,CAACzB,MAAM,EAAEC,QAAQ,EAAE;EACzD,MAAM,CAACqB,EAAE,EAAEC,WAAW,CAAC,GAAG,MAAMtD,OAAO,CAAC+D,GAAG,CAAC,CACxCC,0BAA0B,CAAC,CAAC,EAC5BjC,MAAM,CAACqC,SAAS,CAAC;IACbC,IAAI,EAAE,MAAM;IACZC,UAAU,EAAE7F,QAAQ,CAAC8F;EACzB,CAAC,EAAEvC,QAAQ,CAAC,CACf,CAAC;EACF;EACA0B,iBAAiB,CAACL,EAAE,EAAE,MAAM,CAAC;EAC7B,OAAO,CAACA,EAAE,EAAEC,WAAW,CAAC;AAC5B;AACA,eAAeU,0BAA0BA,CAAA,EAAG;EACxC5E,MAAM,CAAC6B,eAAe,CAAC,CAAC0D,qBAAqB,CAAC,CAAC,CAAC;EAChD,MAAMtB,EAAE,GAAG,MAAM/D,EAAE,CAACmG,OAAO,CAAC,MAAM;IAC9BrG,MAAM,CAAC6B,eAAe,CAAC,CAACmC,gBAAgB,CAAC,CAAC;IAC1ChE,MAAM,CAAC6B,eAAe,CAACE,IAAI,CAACuE,OAAO,CAAC,CAAC,CAAC,CAACrB,IAAI,KAAK,QAAQ,CAAC;IACzD,OAAOpD,eAAe,CAACE,IAAI,CAACuE,OAAO,CAAC,CAAC,CAAC,CAACC,KAAK;EAChD,CAAC,CAAC;EACFvG,MAAM,CAAC6B,eAAe,CAAC,CAAC0D,qBAAqB,CAAC,CAAC,CAAC;EAChD1D,eAAe,CAAC2E,SAAS,CAAC,CAAC;EAC3BxG,MAAM,CAAC6B,eAAe,CAAC,CAAC0D,qBAAqB,CAAC,CAAC,CAAC;EAChD,OAAOtB,EAAE;AACb;AACA,eAAemC,iBAAiBA,CAACnC,EAAE,EAAE;EACjC,OAAO,MAAM/D,EAAE,CAACmG,OAAO,CAAC,MAAM;IAC1BrG,MAAM,CAACiE,EAAE,CAACS,IAAI,CAAC,CAAC+B,eAAe,CAAC,CAAC,CAAC;IAClC,MAAMC,MAAM,GAAGC,IAAI,CAACR,KAAK,CAAClC,EAAE,CAACS,IAAI,CAAC3C,IAAI,CAAC6E,QAAQ,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC;IAC9D5C,EAAE,CAACS,IAAI,CAAC8B,SAAS,CAAC,CAAC;IACnB,OAAOE,MAAM;EACjB,CAAC,CAAC;AACN;AACA,SAASvE,8BAA8BA,CAAC2E,iBAAiB,EAAE/D,MAAM,EAAE;EAC/D,IAAI8C,CAAC,GAAG,CAAC;EACT,MAAMkB,GAAG,GAAG7G,EAAE,CAACkD,EAAE,CAAC,UAAU,GAAG4D,KAAK,EAAE;IAClC,MAAMC,aAAa,GAAGpB,CAAC,EAAE;IACzB9C,MAAM,CAACmE,KAAK,CAAC,8BAA8B,CAAC;IAC5C,MAAMC,YAAY,GAAG,IAAIC,WAAW,CAAC,CAAC;IACtC,OAAO;MACHrB,gBAAgB,EAAE7F,EAAE,CAACkD,EAAE,CAAC+D,YAAY,CAACpB,gBAAgB,CAACsB,IAAI,CAACF,YAAY,CAAC,CAAC;MACzErB,mBAAmB,EAAE5F,EAAE,CAACkD,EAAE,CAAC+D,YAAY,CAACrB,mBAAmB,CAACuB,IAAI,CAACF,YAAY,CAAC,CAAC;MAC/EzC,IAAI,EAAExE,EAAE,CAACkD,EAAE,CAAE5B,CAAC,IAAS;QACnBuB,MAAM,CAACmE,KAAK,CAAC;UAAEI,OAAO,EAAEX,IAAI,CAACR,KAAK,CAAC3E,CAAC,CAACqF,QAAQ,CAAC,CAAC,CAAC;UAAEI;QAAc,CAAC,EAAE,eAAe,CAAC;MACvF,CAAC,CAAC;MACF1E,KAAK,EAAErC,EAAE,CAACkD,EAAE,CAAC,CAAC;MACdmE,aAAa,EAAEJ,YAAY;MAC3BK,UAAU,EAAEV,iBAAiB,CAACW;IAClC,CAAC;IACD;IACA;EACJ,CAAC,CAAC;EACFC,MAAM,CAACC,MAAM,CAACZ,GAAG,EAAE;IACfa,IAAI,EAAEd,iBAAiB,CAACc,IAAI;IAC5BC,MAAM,EAAEf,iBAAiB,CAACe,MAAM;IAChCC,OAAO,EAAEhB,iBAAiB,CAACgB,OAAO;IAClCL,UAAU,EAAEX,iBAAiB,CAACW;EAClC,CAAC,CAAC;EACF,OAAOV,GAAG;AACd;AACA,SAASzC,iBAAiBA,CAACL,EAAE,EAAEuD,UAAU,EAAE;EACvC,MAAMO,QAAQ,GAAGP,UAAU,KAAK,MAAM,GAChChI,iBAAiB,CAACoI,IAAI,GACtBpI,iBAAiB,CAACqI,MAAM;EAC9B,IAAIE,QAAQ,KAAK9D,EAAE,CAACuD,UAAU,EAC1B;EACJvD,EAAE,CAACuD,UAAU,GAAGO,QAAQ;EACxB9D,EAAE,CAACsD,aAAa,CAACS,aAAa,CAAC,IAAIC,KAAK,CAACT,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA,SAASlF,oBAAoBA,CAACS,MAAM,EAAE;EAClC,MAAM5C,CAAC,GAAGA,CAAC+H,IAAI,EAAE;IAAEC,SAAS;IAAEC;EAAQ,CAAC,KAAKrF,MAAM,CAACsF,KAAK,CAAC;IAAEF,SAAS;IAAEG,GAAG,EAAEF,OAAO,CAACE;EAAI,CAAC,EAAEJ,IAAI,CAAC;EAC/F,MAAMK,UAAU,GAAG,CACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,CACpB;EACD,KAAK,MAAMC,CAAC,IAAID,UAAU,EAAE;IACxBhJ,SAAS,CAACkJ,MAAM,CAACC,EAAE,CAACF,CAAC,EAAErI,CAAC,CAACkH,IAAI,CAACnG,SAAS,EAAEsH,CAAC,CAAC,CAAC;EAChD;AACJ;AACA,MAAMtC,gBAAgB,GAAG/F,CAAC,CAACwI,MAAM,CAAC;EAC9BtD,EAAE,EAAElF,CAAC,CAACyI,MAAM,CAAC,CAAC;EACdlD,QAAQ,EAAEvF,CAAC,CAAC0I,KAAK,CAAC1I,CAAC,CAACwI,MAAM,CAAC;IACvBG,SAAS,EAAE3I,CAAC,CAACyI,MAAM,CAAC,CAAC;IACrBG,gBAAgB,EAAE5I,CAAC,CAAC6I,GAAG,CAAC,CAAC;IACzBC,aAAa,EAAE9I,CAAC,CAAC+I,OAAO,CAAC;EAC7B,CAAC,CAAC;AACN,CAAC,CAAC;AACF,MAAMC,YAAY,SAASlB,KAAK,CAAC;EAC7BmB,IAAI;EACJC,WAAWA,CAACD,IAAI,EAAE;IACd,KAAK,CAAC,SAAS,CAAC;IAChB,IAAI,CAACA,IAAI,GAAGzC,IAAI,CAAC2C,SAAS,CAACF,IAAI,CAAC;EACpC;AACJ;AACA,SAAS5D,YAAYA,CAACvB,EAAE,EAAEsF,CAAC,EAAE;EACzBtF,EAAE,CAACsD,aAAa,CAACS,aAAa,CAAC,IAAImB,YAAY,CAACI,CAAC,CAAC,CAAC;AACvD","ignoreList":[]}
1
+ {"version":3,"file":"ObjectSetListenerWebsocket.test.js","names":["$ontologyRid","Employee","Office","apiServer","ImportedWebSocket","http","HttpResponse","afterAll","afterEach","beforeAll","beforeEach","describe","expect","it","vi","z","createMinimalClient","ObjectSetListenerWebsocket","rootLogger","hoisted","pino","pinoPretty","EventEmitter","Promise","resolve","level","build","sync","timestampKey","undefined","errorLikeObjectKeys","errorProps","ignore","destination","write","a","at","slice","console","log","MockedWebSocket","STACK","mock","importOriginal","original","WebSocket","createMockWebSocketConstructor","default","listen","addLoggerToApiServer","close","minimalClient","MINIMUM_RECONNECT_DELAY","OBJECT_SET_EXPIRY_MS","client","listener","oslwInst","ontologyRid","logger","child","minimumReconnectDelayMs","objectSetExpiryMs","onChange","fn","onError","onOutOfDate","objectSetRidCounter","use","post","json","objectSetRid","useFakeTimers","restoreAllMocks","resetHandlers","not","toHaveBeenCalled","ws","unsubscribe","subReq1","subscribeAndExpectWebSocket","expectSingleSubscribeMessage","setWebSocketState","runAllTicks","expectEqualRemoveAndAddListeners","respondSuccessToSubscribe","send","all","expectWebSocketConstructed","advanceTimersByTimeAsync","subReq2","unsubscribe2","subscribe","type","objectType","apiName","fatal","id","toEqual","toHaveBeenCalledTimes","sendToClient","responses","removeEventListener","addEventListener","calls","length","consumeSingleSend","waitFor","results","value","mockClear","toBeCalledTimes","result","JSON","parse","lastCall","toString","OriginalWebSocket","i","ret","_args","webSocketInst","debug","eventEmitter","EventTarget","bind","message","_eventEmitter","readyState","CONNECTING","Object","assign","OPEN","CLOSED","CLOSING","newState","dispatchEvent","Event","name","requestId","request","trace","url","eventNames","c","events","on","SubscribeMessage","object","string","requests","array","objectSet","propertySet","referenceSet","MessageEvent","data","constructor","stringify","t"],"sources":["ObjectSetListenerWebsocket.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 { $ontologyRid, Employee, Office } from \"@osdk/client.test.ontology\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport ImportedWebSocket from \"isomorphic-ws\";\nimport { http, HttpResponse } from \"msw\";\nimport { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi, } from \"vitest\";\nimport { z } from \"zod\";\nimport { createMinimalClient } from \"../createMinimalClient.js\";\nimport { ObjectSetListenerWebsocket } from \"./ObjectSetListenerWebsocket.js\";\n// it needs to be hoisted because its referenced from our mocked WebSocket\n// which must be hoisted to work\nconst rootLogger = await vi.hoisted(async () => {\n const pino = (await import(\"pino\")).pino;\n const pinoPretty = await import(\"pino-pretty\");\n const { EventEmitter } = await import(\"node:events\");\n class PinoConsoleLogDestination extends EventEmitter {\n write(a) {\n // remove trailing newline since console.log adds one\n if (a.at(-1) === \"\\n\")\n a = a.slice(0, -1);\n // This lets the test framework aggregate the logs per test, whereas direct to stdout does not\n console.log(a);\n }\n }\n return Promise.resolve(pino({ level: \"info\" }, (pinoPretty.build)({\n sync: true,\n timestampKey: undefined,\n errorLikeObjectKeys: [\"error\", \"err\", \"exception\"],\n errorProps: \"stack,cause,properties\",\n ignore: \"time,hostname,pid\",\n destination: new PinoConsoleLogDestination(),\n })));\n});\n// make local uses of WebSocket typed right\nconst MockedWebSocket = ImportedWebSocket;\nconst STACK = \"https://stack.palantir.com\";\nvi.mock(\"isomorphic-ws\", async (importOriginal) => {\n const original = await importOriginal();\n const WebSocket = createMockWebSocketConstructor(original.default, rootLogger);\n return { default: WebSocket, WebSocket };\n});\ndescribe(\"ObjectSetListenerWebsocket\", async () => {\n beforeAll(async () => {\n apiServer.listen();\n addLoggerToApiServer(rootLogger);\n });\n afterAll(() => {\n apiServer.close();\n });\n describe(\"basic setup\", () => {\n let minimalClient;\n const MINIMUM_RECONNECT_DELAY = 2_000;\n const OBJECT_SET_EXPIRY_MS = 60_000;\n let client;\n let listener;\n let oslwInst = 0;\n beforeEach(() => {\n minimalClient = createMinimalClient({ ontologyRid: $ontologyRid }, STACK, async () => \"myAccessToken\", { logger: rootLogger });\n client = new ObjectSetListenerWebsocket({\n ...minimalClient,\n logger: rootLogger.child({ oslwInst: oslwInst++ }),\n }, {\n minimumReconnectDelayMs: MINIMUM_RECONNECT_DELAY,\n objectSetExpiryMs: OBJECT_SET_EXPIRY_MS,\n });\n listener = {\n onChange: vi.fn(),\n onError: vi.fn(),\n onOutOfDate: vi.fn(),\n };\n let objectSetRidCounter = 0;\n apiServer.use(http.post(`${STACK}api/v2/ontologySubscriptions/ontologies/${$ontologyRid}/streamSubscriptions`, () => HttpResponse.json({\n objectSetRid: `rid.hi.${objectSetRidCounter++}`,\n })));\n vi.useFakeTimers();\n });\n afterEach(() => {\n vi.restoreAllMocks();\n apiServer.resetHandlers();\n });\n it(\"should not send onOutOfDate since it has not subscribed yet\", () => {\n expect(MockedWebSocket).not.toHaveBeenCalled();\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n expect(listener.onChange).not.toHaveBeenCalled();\n expect(listener.onError).not.toHaveBeenCalled();\n });\n describe(\"requests subscription\", () => {\n let ws;\n let unsubscribe;\n let subReq1;\n beforeEach(async () => {\n [ws, unsubscribe] = await subscribeAndExpectWebSocket(client, listener);\n subReq1 = await expectSingleSubscribeMessage(ws);\n });\n afterEach(() => {\n // just ensure we ended in good states, as we clear these as we consume them\n expect(MockedWebSocket).not.toHaveBeenCalled();\n // make sure we are unsubscribed so closing the socket doesn't trigger reconnects\n unsubscribe();\n // disconnect the socket\n setWebSocketState(ws, \"close\");\n vi.runAllTicks();\n // Make sure we cleaned up\n expectEqualRemoveAndAddListeners(ws);\n });\n it(\"only sends a single request\", async () => {\n respondSuccessToSubscribe(ws, subReq1);\n // actually this is broken FIXME\n unsubscribe();\n expect(ws.send).not.toHaveBeenCalled();\n });\n describe(\"socket closed before subscription confirmed\", () => {\n beforeEach(() => {\n setWebSocketState(ws, \"close\");\n expectEqualRemoveAndAddListeners(ws);\n });\n describe(\"reconnect\", async () => {\n beforeEach(async () => {\n [ws] = await Promise.all([\n expectWebSocketConstructed(),\n // delay for connection reconnect\n vi.advanceTimersByTimeAsync(MINIMUM_RECONNECT_DELAY),\n ]);\n setWebSocketState(ws, \"open\");\n });\n describe(\"subscribe and respond\", () => {\n beforeEach(async () => {\n const subReq2 = await expectSingleSubscribeMessage(ws);\n respondSuccessToSubscribe(ws, subReq2);\n });\n it(\"should not send out of date\", () => {\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n });\n });\n });\n });\n describe(\"successfully subscribed\", () => {\n beforeEach(() => {\n respondSuccessToSubscribe(ws, subReq1);\n });\n describe(\"additional subscription\", async () => {\n let unsubscribe2;\n let subReq2;\n beforeEach(async () => {\n [unsubscribe2, subReq2] = await Promise.all([\n client.subscribe({\n type: \"base\",\n objectType: Office.apiName,\n }, listener, [\"employeeStatus\"]),\n expectSingleSubscribeMessage(ws),\n ]);\n rootLogger.fatal({ subReq2 });\n respondSuccessToSubscribe(ws, subReq2);\n });\n afterEach(() => {\n unsubscribe2();\n });\n it(\"does not trigger an out of date \", () => {\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n });\n });\n describe(\"temporary object set expires\", () => {\n beforeEach(async () => {\n await vi.advanceTimersByTimeAsync(OBJECT_SET_EXPIRY_MS + 1000);\n });\n it(\"should resubscribe and fire out of date\", async () => {\n vi.runAllTicks();\n const subReq2 = await expectSingleSubscribeMessage(ws);\n expect(subReq2.id).not.toEqual(subReq1.id);\n respondSuccessToSubscribe(ws, subReq2);\n expect(listener.onOutOfDate).toHaveBeenCalledTimes(1);\n });\n });\n describe(\"socket closed abruptly\", () => {\n beforeEach(() => {\n setWebSocketState(ws, \"close\");\n expectEqualRemoveAndAddListeners(ws);\n });\n describe(\"reconnect, resubscribe successfully\", async () => {\n beforeEach(async () => {\n [ws] = await Promise.all([\n expectWebSocketConstructed(),\n // delay for connection reconnect\n vi.advanceTimersByTimeAsync(MINIMUM_RECONNECT_DELAY),\n ]);\n setWebSocketState(ws, \"open\");\n const subReq2 = await expectSingleSubscribeMessage(ws);\n respondSuccessToSubscribe(ws, subReq2);\n });\n it(\"should send out of date\", () => {\n expect(listener.onOutOfDate).toHaveBeenCalledTimes(1);\n });\n });\n });\n it(\"should not send onOutOfDate for first call\", () => {\n expect(MockedWebSocket).not.toHaveBeenCalled();\n expect(listener.onOutOfDate).not.toHaveBeenCalled();\n expect(listener.onChange).not.toHaveBeenCalled();\n expect(listener.onError).not.toHaveBeenCalled();\n });\n });\n });\n });\n});\nfunction respondSuccessToSubscribe(ws, subReq2) {\n sendToClient(ws, {\n id: subReq2.id,\n type: \"subscribeResponses\",\n responses: [{\n type: \"success\",\n id: \"subId\",\n }],\n });\n}\nfunction expectEqualRemoveAndAddListeners(ws) {\n expect(ws.removeEventListener).toHaveBeenCalledTimes(ws.addEventListener.mock.calls.length);\n}\nasync function expectSingleSubscribeMessage(ws) {\n return await consumeSingleSend(ws);\n}\nasync function subscribeAndExpectWebSocket(client, listener) {\n const [ws, unsubscribe] = await Promise.all([\n expectWebSocketConstructed(),\n client.subscribe({\n type: \"base\",\n objectType: Employee.apiName,\n }, listener, [\"employeeStatus\"]),\n ]);\n // otherwise the ObjectSetListenerWebSocket is sitting waiting for it to \"connect\"\n setWebSocketState(ws, \"open\");\n return [ws, unsubscribe];\n}\nasync function expectWebSocketConstructed() {\n expect(MockedWebSocket).toHaveBeenCalledTimes(0);\n const ws = await vi.waitFor(() => {\n expect(MockedWebSocket).toHaveBeenCalled();\n expect(MockedWebSocket.mock.results[0].type === \"return\");\n return MockedWebSocket.mock.results[0].value;\n });\n expect(MockedWebSocket).toHaveBeenCalledTimes(1);\n MockedWebSocket.mockClear();\n expect(MockedWebSocket).toHaveBeenCalledTimes(0);\n return ws;\n}\nasync function consumeSingleSend(ws) {\n return await vi.waitFor(() => {\n expect(ws.send).toBeCalledTimes(1);\n const result = JSON.parse(ws.send.mock.lastCall[0].toString());\n ws.send.mockClear();\n return result;\n });\n}\nfunction createMockWebSocketConstructor(OriginalWebSocket, logger) {\n let i = 0;\n const ret = vi.fn(function (..._args) {\n const webSocketInst = i++;\n logger.debug(\"WebSocket constructor called\");\n const eventEmitter = new EventTarget();\n return {\n addEventListener: vi.fn(eventEmitter.addEventListener.bind(eventEmitter)),\n removeEventListener: vi.fn(eventEmitter.removeEventListener.bind(eventEmitter)),\n send: vi.fn((a, _b) => {\n logger.debug({ message: JSON.parse(a.toString()), webSocketInst }, \"send() called\");\n }),\n close: vi.fn(),\n _eventEmitter: eventEmitter,\n readyState: OriginalWebSocket.CONNECTING,\n };\n // ^ we only implement some things but the type system wants to think its the full deal,\n // thus the satisfies plus the cast\n });\n Object.assign(ret, {\n OPEN: OriginalWebSocket.OPEN,\n CLOSED: OriginalWebSocket.CLOSED,\n CLOSING: OriginalWebSocket.CLOSING,\n CONNECTING: OriginalWebSocket.CONNECTING,\n });\n return ret;\n}\nfunction setWebSocketState(ws, readyState) {\n const newState = readyState === \"open\"\n ? ImportedWebSocket.OPEN\n : ImportedWebSocket.CLOSED;\n if (newState === ws.readyState)\n return;\n ws.readyState = newState;\n ws._eventEmitter.dispatchEvent(new Event(readyState, {}));\n}\nfunction addLoggerToApiServer(logger) {\n const z = (name, { requestId, request }) => logger.trace({ requestId, url: request.url }, name);\n const eventNames = [\n \"request:start\",\n \"request:match\",\n \"request:end\",\n \"request:unhandled\",\n \"response:bypass\",\n \"response:mocked\",\n ];\n for (const c of eventNames) {\n apiServer.events.on(c, z.bind(undefined, c));\n }\n}\nconst SubscribeMessage = z.object({\n id: z.string(),\n requests: z.array(z.object({\n objectSet: z.object({ id: z.string() }),\n propertySet: z.array(z.string()),\n referenceSet: z.array(z.string()),\n })),\n});\nclass MessageEvent extends Event {\n data;\n constructor(data) {\n super(\"message\");\n this.data = JSON.stringify(data);\n }\n}\nfunction sendToClient(ws, t) {\n ws._eventEmitter.dispatchEvent(new MessageEvent(t));\n}\n"],"mappings":"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","ignoreList":[]}
@@ -52,7 +52,7 @@ export function createObjectSet(objectType, clientCtx, objectSet = {
52
52
  return clientCtx.objectSetFactory(objectType, clientCtx, {
53
53
  type: "filter",
54
54
  objectSet: objectSet,
55
- where: modernToLegacyWhereClause(clause)
55
+ where: modernToLegacyWhereClause(clause, objectType)
56
56
  });
57
57
  },
58
58
  pivotTo: function (type) {
@@ -101,8 +101,8 @@ export function createObjectSet(objectType, clientCtx, objectSet = {
101
101
  finalMethodCall: "fetchOneWithErrors"
102
102
  })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));
103
103
  } : undefined,
104
- [__EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe]: listener => {
105
- const pendingSubscribe = ObjectSetListenerWebsocket.getInstance(clientCtx).subscribe(objectSet, listener);
104
+ [__EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe]: (properties, listener) => {
105
+ const pendingSubscribe = ObjectSetListenerWebsocket.getInstance(clientCtx).subscribe(objectSet, listener, properties);
106
106
  return async () => (await pendingSubscribe)();
107
107
  }
108
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createObjectSet.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe","modernToLegacyWhereClause","aggregate","fetchPageInternal","fetchPageWithErrorsInternal","fetchSingle","fetchSingleWithErrors","augmentRequestContext","isWireObjectSet","ObjectSetListenerWebsocket","isObjectTypeDefinition","def","type","isObjectSet","o","objectSetDefinitions","get","getWireObjectSet","objectSet","WeakMap","createObjectSet","objectType","clientCtx","base","bind","globalThis","finalMethodCall","fetchPage","fetchPageWithErrors","where","clause","objectSetFactory","pivotTo","createSearchAround","union","objectSets","map","os","intersect","subtract","asyncIter","args","$nextPageToken","undefined","result","nextPageToken","obj","data","fetchOne","primaryKey","options","createWithPk","fetchOneWithErrors","listener","pendingSubscribe","getInstance","subscribe","link","set","objDef","ontologyProvider","getObjectDefinition","apiName","withPk","field","primaryKeyApiName","value"],"sources":["createObjectSet.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 { __EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe } from \"@osdk/api/unstable\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport { aggregate } from \"../object/aggregate.js\";\nimport { fetchPageInternal, fetchPageWithErrorsInternal, } from \"../object/fetchPage.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../object/fetchSingle.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { isWireObjectSet } from \"../util/WireObjectSet.js\";\nimport { ObjectSetListenerWebsocket } from \"./ObjectSetListenerWebsocket.js\";\nfunction isObjectTypeDefinition(def) {\n return def.type === \"object\";\n}\n/* @internal */\nexport function isObjectSet(o) {\n return o != null && typeof o === \"object\"\n && isWireObjectSet(objectSetDefinitions.get(o));\n}\n/** @internal */\nexport function getWireObjectSet(objectSet) {\n return objectSetDefinitions.get(objectSet);\n}\nconst objectSetDefinitions = new WeakMap();\n/** @internal */\nexport function createObjectSet(objectType, clientCtx, objectSet = {\n type: \"base\",\n objectType: objectType[\"apiName\"],\n}) {\n const base = {\n aggregate: (aggregate).bind(globalThis, augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"aggregate\" })), objectType, objectSet),\n fetchPage: fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchPage\" })), objectType, objectSet),\n fetchPageWithErrors: fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchPageWithErrors\" })), objectType, objectSet),\n where: (clause) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"filter\",\n objectSet: objectSet,\n where: modernToLegacyWhereClause(clause),\n });\n },\n pivotTo: function (type) {\n return createSearchAround(type)();\n },\n union: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"union\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)),\n ],\n });\n },\n intersect: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"intersect\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)),\n ],\n });\n },\n subtract: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"subtract\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)),\n ],\n });\n },\n asyncIter: async function* (args) {\n let $nextPageToken = undefined;\n do {\n const result = await fetchPageInternal(augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"asyncIter\" })), objectType, objectSet, { ...args, $nextPageToken });\n $nextPageToken = result.nextPageToken;\n for (const obj of result.data) {\n yield obj;\n }\n } while ($nextPageToken != null);\n },\n fetchOne: (isObjectTypeDefinition(objectType)\n ? async (primaryKey, options) => {\n return await fetchSingle(augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchOne\" })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n }\n : undefined),\n fetchOneWithErrors: (isObjectTypeDefinition(objectType)\n ? async (primaryKey, options) => {\n return await fetchSingleWithErrors(augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchOneWithErrors\" })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n }\n : undefined),\n [__EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe]: (listener) => {\n const pendingSubscribe = ObjectSetListenerWebsocket.getInstance(clientCtx).subscribe(objectSet, listener);\n return async () => (await pendingSubscribe)();\n },\n };\n function createSearchAround(link) {\n return () => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"searchAround\",\n objectSet,\n link,\n });\n };\n }\n objectSetDefinitions.set(base, objectSet);\n // we are using a type assertion because the marker symbol defined in BaseObjectSet isn't actually used\n // at runtime.\n return base;\n}\nasync function createWithPk(clientCtx, objectType, objectSet, primaryKey) {\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(objectType.apiName);\n const withPk = {\n type: \"filter\",\n objectSet: objectSet,\n where: {\n type: \"eq\",\n field: objDef.primaryKeyApiName,\n value: primaryKey,\n },\n };\n return withPk;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createObjectSet.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe","modernToLegacyWhereClause","aggregate","fetchPageInternal","fetchPageWithErrorsInternal","fetchSingle","fetchSingleWithErrors","augmentRequestContext","isWireObjectSet","ObjectSetListenerWebsocket","isObjectTypeDefinition","def","type","isObjectSet","o","objectSetDefinitions","get","getWireObjectSet","objectSet","WeakMap","createObjectSet","objectType","clientCtx","base","bind","globalThis","finalMethodCall","fetchPage","fetchPageWithErrors","where","clause","objectSetFactory","pivotTo","createSearchAround","union","objectSets","map","os","intersect","subtract","asyncIter","args","$nextPageToken","undefined","result","nextPageToken","obj","data","fetchOne","primaryKey","options","createWithPk","fetchOneWithErrors","properties","listener","pendingSubscribe","getInstance","subscribe","link","set","objDef","ontologyProvider","getObjectDefinition","apiName","withPk","field","primaryKeyApiName","value"],"sources":["createObjectSet.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 { __EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe } from \"@osdk/api/unstable\";\nimport { modernToLegacyWhereClause } from \"../internal/conversions/modernToLegacyWhereClause.js\";\nimport { aggregate } from \"../object/aggregate.js\";\nimport { fetchPageInternal, fetchPageWithErrorsInternal, } from \"../object/fetchPage.js\";\nimport { fetchSingle, fetchSingleWithErrors } from \"../object/fetchSingle.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { isWireObjectSet } from \"../util/WireObjectSet.js\";\nimport { ObjectSetListenerWebsocket } from \"./ObjectSetListenerWebsocket.js\";\nfunction isObjectTypeDefinition(def) {\n return def.type === \"object\";\n}\n/* @internal */\nexport function isObjectSet(o) {\n return o != null && typeof o === \"object\"\n && isWireObjectSet(objectSetDefinitions.get(o));\n}\n/** @internal */\nexport function getWireObjectSet(objectSet) {\n return objectSetDefinitions.get(objectSet);\n}\nconst objectSetDefinitions = new WeakMap();\n/** @internal */\nexport function createObjectSet(objectType, clientCtx, objectSet = {\n type: \"base\",\n objectType: objectType[\"apiName\"],\n}) {\n const base = {\n aggregate: (aggregate).bind(globalThis, augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"aggregate\" })), objectType, objectSet),\n fetchPage: fetchPageInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchPage\" })), objectType, objectSet),\n fetchPageWithErrors: fetchPageWithErrorsInternal.bind(globalThis, augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchPageWithErrors\" })), objectType, objectSet),\n where: (clause) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"filter\",\n objectSet: objectSet,\n where: modernToLegacyWhereClause(clause, objectType),\n });\n },\n pivotTo: function (type) {\n return createSearchAround(type)();\n },\n union: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"union\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)),\n ],\n });\n },\n intersect: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"intersect\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)),\n ],\n });\n },\n subtract: (...objectSets) => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"subtract\",\n objectSets: [\n objectSet,\n ...objectSets.map(os => objectSetDefinitions.get(os)),\n ],\n });\n },\n asyncIter: async function* (args) {\n let $nextPageToken = undefined;\n do {\n const result = await fetchPageInternal(augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"asyncIter\" })), objectType, objectSet, { ...args, $nextPageToken });\n $nextPageToken = result.nextPageToken;\n for (const obj of result.data) {\n yield obj;\n }\n } while ($nextPageToken != null);\n },\n fetchOne: (isObjectTypeDefinition(objectType)\n ? async (primaryKey, options) => {\n return await fetchSingle(augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchOne\" })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n }\n : undefined),\n fetchOneWithErrors: (isObjectTypeDefinition(objectType)\n ? async (primaryKey, options) => {\n return await fetchSingleWithErrors(augmentRequestContext(clientCtx, _ => ({ finalMethodCall: \"fetchOneWithErrors\" })), objectType, options, await createWithPk(clientCtx, objectType, objectSet, primaryKey));\n }\n : undefined),\n [__EXPERIMENTAL__NOT_SUPPORTED_YET_subscribe]: (properties, listener) => {\n const pendingSubscribe = ObjectSetListenerWebsocket.getInstance(clientCtx).subscribe(objectSet, listener, properties);\n return async () => (await pendingSubscribe)();\n },\n };\n function createSearchAround(link) {\n return () => {\n return clientCtx.objectSetFactory(objectType, clientCtx, {\n type: \"searchAround\",\n objectSet,\n link,\n });\n };\n }\n objectSetDefinitions.set(base, objectSet);\n // we are using a type assertion because the marker symbol defined in BaseObjectSet isn't actually used\n // at runtime.\n return base;\n}\nasync function createWithPk(clientCtx, objectType, objectSet, primaryKey) {\n const objDef = await clientCtx.ontologyProvider.getObjectDefinition(objectType.apiName);\n const withPk = {\n type: \"filter\",\n objectSet: objectSet,\n where: {\n type: \"eq\",\n field: objDef.primaryKeyApiName,\n value: primaryKey,\n },\n };\n return withPk;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -52,7 +52,7 @@ async function remapQueryResponse(client, responseDataType, responseValue, defin
52
52
  multiplicity: false
53
53
  };
54
54
  for (let i = 0; i < responseValue.length; i++) {
55
- responseValue[i] = await remapQueryResponse(responseValue[i], withoutMultiplicity, client, definitions);
55
+ responseValue[i] = await remapQueryResponse(client, withoutMultiplicity, responseValue[i], definitions);
56
56
  }
57
57
  return responseValue;
58
58
  }
@@ -64,7 +64,7 @@ async function remapQueryResponse(client, responseDataType, responseValue, defin
64
64
  case "set":
65
65
  {
66
66
  for (let i = 0; i < responseValue.length; i++) {
67
- responseValue[i] = await remapQueryResponse(responseValue[i], responseDataType.set, client, definitions);
67
+ responseValue[i] = await remapQueryResponse(client, responseDataType.set, responseValue[i], definitions);
68
68
  }
69
69
  return responseValue;
70
70
  }
@@ -105,7 +105,7 @@ async function remapQueryResponse(client, responseDataType, responseValue, defin
105
105
  // figure out what keys need to be fixed up
106
106
  for (const [key, subtype] of Object.entries(responseDataType.struct)) {
107
107
  if (requiresConversion(subtype)) {
108
- responseValue[key] = await remapQueryResponse(responseValue[key], subtype, client, definitions);
108
+ responseValue[key] = await remapQueryResponse(client, subtype, responseValue[key], definitions);
109
109
  }
110
110
  }
111
111
  return responseValue;
@@ -1 +1 @@
1
- {"version":3,"file":"applyQuery.js","names":["OntologiesV2","createAttachmentFromRid","createObjectSet","addUserAgentAndRequestContextHeaders","augmentRequestContext","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","response","Queries","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","undefined","Error","multiplicity","withoutMultiplicity","i","length","type","set","def","get","object","createQueryObjectResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","values","some","primaryKey","$apiName","$title","$objectType","$primaryKey"],"sources":["applyQuery.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 * as OntologiesV2 from \"@osdk/internal.foundry.ontologiesv2\";\nimport { createAttachmentFromRid } from \"../createAttachmentFromRid.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { toDataValueQueries } from \"../util/toDataValueQueries.js\";\nexport async function applyQuery(client, query, params) {\n const qd = await client.ontologyProvider.getQueryDefinition(query.apiName);\n const response = await OntologiesV2.Queries.execute(addUserAgentAndRequestContextHeaders(augmentRequestContext(client, _ => ({ finalMethodCall: \"applyQuery\" })), query), await client.ontologyRid, query.apiName, {\n parameters: params\n ? await remapQueryParams(params, client, qd.parameters)\n : {},\n });\n const objectOutputDefs = await getRequiredDefinitions(qd.output, client);\n const remappedResponse = await remapQueryResponse(client, qd.output, response.value, objectOutputDefs);\n return remappedResponse;\n}\nasync function remapQueryParams(params, client, paramTypes) {\n const parameterMap = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValueQueries(value, client, paramTypes[key]);\n }\n return parameterMap;\n}\nasync function remapQueryResponse(client, responseDataType, responseValue, definitions) {\n // handle null responses\n if (responseValue == null) {\n if (responseDataType.nullable) {\n return undefined;\n }\n else {\n throw new Error(\"Got null response when nullable was not allowed\");\n }\n }\n if (responseDataType.multiplicity != null\n && responseDataType.multiplicity !== false) {\n const withoutMultiplicity = { ...responseDataType, multiplicity: false };\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(responseValue[i], withoutMultiplicity, client, definitions);\n }\n return responseValue;\n }\n switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n case \"set\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(responseValue[i], responseDataType.set, client, definitions);\n }\n return responseValue;\n }\n case \"attachment\": {\n return createAttachmentFromRid(client, responseValue);\n }\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def) {\n throw new Error(`Missing definition for ${responseDataType.object}`);\n }\n return createQueryObjectResponse(responseValue, def);\n }\n case \"objectSet\": {\n const def = definitions.get(responseDataType.objectSet);\n if (!def) {\n throw new Error(`Missing definition for ${responseDataType.objectSet}`);\n }\n if (typeof responseValue === \"string\") {\n return createObjectSet(def, client, {\n type: \"intersect\",\n objectSets: [\n { type: \"base\", objectType: responseDataType.objectSet },\n { type: \"reference\", reference: responseValue },\n ],\n });\n }\n return createObjectSet(def, client, responseValue);\n }\n case \"struct\": {\n // figure out what keys need to be fixed up\n for (const [key, subtype] of Object.entries(responseDataType.struct)) {\n if (requiresConversion(subtype)) {\n responseValue[key] = await remapQueryResponse(responseValue[key], subtype, client, definitions);\n }\n }\n return responseValue;\n }\n case \"twoDimensionalAggregation\": {\n const result = [];\n for (const { key, value } of responseValue.groups) {\n result.push({ key, value });\n }\n return result;\n }\n case \"threeDimensionalAggregation\": {\n const result = [];\n for (const { key, groups } of responseValue.groups) {\n const subResult = [];\n for (const { key: subKey, value } of groups) {\n subResult.push({ key: subKey, value });\n }\n result.push({ key, groups: subResult });\n }\n return result;\n }\n }\n return responseValue;\n}\nasync function getRequiredDefinitions(dataType, client) {\n const result = new Map();\n switch (dataType.type) {\n case \"objectSet\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(dataType.objectSet);\n result.set(dataType.objectSet, objectDef);\n break;\n }\n case \"object\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(dataType.object);\n result.set(dataType.object, objectDef);\n break;\n }\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n case \"struct\": {\n for (const value of Object.values(dataType.struct)) {\n for (const [type, objectDef] of await getRequiredDefinitions(value, client)) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n case \"attachment\":\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"object\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"union\":\n break;\n }\n return result;\n}\nfunction requiresConversion(dataType) {\n switch (dataType.type) {\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"object\": // JSON encoded primary key\n case \"string\":\n case \"timestamp\":\n return false;\n case \"union\":\n return true;\n case \"struct\":\n return Object.values(dataType.struct).some(requiresConversion);\n case \"set\":\n return requiresConversion(dataType.set);\n case \"attachment\":\n case \"objectSet\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n return true;\n default:\n return false;\n }\n}\nexport function createQueryObjectResponse(primaryKey, objectDef) {\n return {\n $apiName: objectDef.apiName,\n $title: undefined,\n $objectType: objectDef.apiName,\n $primaryKey: primaryKey,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"applyQuery.js","names":["OntologiesV2","createAttachmentFromRid","createObjectSet","addUserAgentAndRequestContextHeaders","augmentRequestContext","toDataValueQueries","applyQuery","client","query","params","qd","ontologyProvider","getQueryDefinition","apiName","response","Queries","execute","finalMethodCall","ontologyRid","parameters","remapQueryParams","objectOutputDefs","getRequiredDefinitions","output","remappedResponse","remapQueryResponse","value","paramTypes","parameterMap","key","Object","entries","responseDataType","responseValue","definitions","nullable","undefined","Error","multiplicity","withoutMultiplicity","i","length","type","set","def","get","object","createQueryObjectResponse","objectSet","objectSets","objectType","reference","subtype","struct","requiresConversion","result","groups","push","subResult","subKey","dataType","Map","objectDef","getObjectDefinition","values","some","primaryKey","$apiName","$title","$objectType","$primaryKey"],"sources":["applyQuery.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 * as OntologiesV2 from \"@osdk/internal.foundry.ontologiesv2\";\nimport { createAttachmentFromRid } from \"../createAttachmentFromRid.js\";\nimport { createObjectSet } from \"../objectSet/createObjectSet.js\";\nimport { addUserAgentAndRequestContextHeaders } from \"../util/addUserAgentAndRequestContextHeaders.js\";\nimport { augmentRequestContext } from \"../util/augmentRequestContext.js\";\nimport { toDataValueQueries } from \"../util/toDataValueQueries.js\";\nexport async function applyQuery(client, query, params) {\n const qd = await client.ontologyProvider.getQueryDefinition(query.apiName);\n const response = await OntologiesV2.Queries.execute(addUserAgentAndRequestContextHeaders(augmentRequestContext(client, _ => ({ finalMethodCall: \"applyQuery\" })), query), await client.ontologyRid, query.apiName, {\n parameters: params\n ? await remapQueryParams(params, client, qd.parameters)\n : {},\n });\n const objectOutputDefs = await getRequiredDefinitions(qd.output, client);\n const remappedResponse = await remapQueryResponse(client, qd.output, response.value, objectOutputDefs);\n return remappedResponse;\n}\nasync function remapQueryParams(params, client, paramTypes) {\n const parameterMap = {};\n for (const [key, value] of Object.entries(params)) {\n parameterMap[key] = await toDataValueQueries(value, client, paramTypes[key]);\n }\n return parameterMap;\n}\nasync function remapQueryResponse(client, responseDataType, responseValue, definitions) {\n // handle null responses\n if (responseValue == null) {\n if (responseDataType.nullable) {\n return undefined;\n }\n else {\n throw new Error(\"Got null response when nullable was not allowed\");\n }\n }\n if (responseDataType.multiplicity != null\n && responseDataType.multiplicity !== false) {\n const withoutMultiplicity = { ...responseDataType, multiplicity: false };\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(client, withoutMultiplicity, responseValue[i], definitions);\n }\n return responseValue;\n }\n switch (responseDataType.type) {\n case \"union\": {\n throw new Error(\"Union return types are not yet supported\");\n }\n case \"set\": {\n for (let i = 0; i < responseValue.length; i++) {\n responseValue[i] = await remapQueryResponse(client, responseDataType.set, responseValue[i], definitions);\n }\n return responseValue;\n }\n case \"attachment\": {\n return createAttachmentFromRid(client, responseValue);\n }\n case \"object\": {\n const def = definitions.get(responseDataType.object);\n if (!def) {\n throw new Error(`Missing definition for ${responseDataType.object}`);\n }\n return createQueryObjectResponse(responseValue, def);\n }\n case \"objectSet\": {\n const def = definitions.get(responseDataType.objectSet);\n if (!def) {\n throw new Error(`Missing definition for ${responseDataType.objectSet}`);\n }\n if (typeof responseValue === \"string\") {\n return createObjectSet(def, client, {\n type: \"intersect\",\n objectSets: [\n { type: \"base\", objectType: responseDataType.objectSet },\n { type: \"reference\", reference: responseValue },\n ],\n });\n }\n return createObjectSet(def, client, responseValue);\n }\n case \"struct\": {\n // figure out what keys need to be fixed up\n for (const [key, subtype] of Object.entries(responseDataType.struct)) {\n if (requiresConversion(subtype)) {\n responseValue[key] = await remapQueryResponse(client, subtype, responseValue[key], definitions);\n }\n }\n return responseValue;\n }\n case \"twoDimensionalAggregation\": {\n const result = [];\n for (const { key, value } of responseValue.groups) {\n result.push({ key, value });\n }\n return result;\n }\n case \"threeDimensionalAggregation\": {\n const result = [];\n for (const { key, groups } of responseValue.groups) {\n const subResult = [];\n for (const { key: subKey, value } of groups) {\n subResult.push({ key: subKey, value });\n }\n result.push({ key, groups: subResult });\n }\n return result;\n }\n }\n return responseValue;\n}\nasync function getRequiredDefinitions(dataType, client) {\n const result = new Map();\n switch (dataType.type) {\n case \"objectSet\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(dataType.objectSet);\n result.set(dataType.objectSet, objectDef);\n break;\n }\n case \"object\": {\n const objectDef = await client.ontologyProvider.getObjectDefinition(dataType.object);\n result.set(dataType.object, objectDef);\n break;\n }\n case \"set\": {\n return getRequiredDefinitions(dataType.set, client);\n }\n case \"struct\": {\n for (const value of Object.values(dataType.struct)) {\n for (const [type, objectDef] of await getRequiredDefinitions(value, client)) {\n result.set(type, objectDef);\n }\n }\n break;\n }\n case \"attachment\":\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"object\":\n case \"string\":\n case \"threeDimensionalAggregation\":\n case \"timestamp\":\n case \"twoDimensionalAggregation\":\n case \"union\":\n break;\n }\n return result;\n}\nfunction requiresConversion(dataType) {\n switch (dataType.type) {\n case \"boolean\":\n case \"date\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"object\": // JSON encoded primary key\n case \"string\":\n case \"timestamp\":\n return false;\n case \"union\":\n return true;\n case \"struct\":\n return Object.values(dataType.struct).some(requiresConversion);\n case \"set\":\n return requiresConversion(dataType.set);\n case \"attachment\":\n case \"objectSet\":\n case \"twoDimensionalAggregation\":\n case \"threeDimensionalAggregation\":\n return true;\n default:\n return false;\n }\n}\nexport function createQueryObjectResponse(primaryKey, objectDef) {\n return {\n $apiName: objectDef.apiName,\n $title: undefined,\n $objectType: objectDef.apiName,\n $primaryKey: primaryKey,\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,uBAAuB,QAAQ,+BAA+B;AACvE,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,oCAAoC,QAAQ,iDAAiD;AACtG,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,OAAO,eAAeC,UAAUA,CAACC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAE;EACpD,MAAMC,EAAE,GAAG,MAAMH,MAAM,CAACI,gBAAgB,CAACC,kBAAkB,CAACJ,KAAK,CAACK,OAAO,CAAC;EAC1E,MAAMC,QAAQ,GAAG,MAAMd,YAAY,CAACe,OAAO,CAACC,OAAO,CAACb,oCAAoC,CAACC,qBAAqB,CAACG,MAAM,EAAE,OAAM;IAAEU,eAAe,EAAE;EAAa,CAAC,CAAC,CAAC,EAAET,KAAK,CAAC,EAAE,MAAMD,MAAM,CAACW,WAAW,EAAEV,KAAK,CAACK,OAAO,EAAE;IAC/MM,UAAU,EAAEV,MAAM,GACZ,MAAMW,gBAAgB,CAACX,MAAM,EAAEF,MAAM,EAAEG,EAAE,CAACS,UAAU,CAAC,GACrD,CAAC;EACX,CAAC,CAAC;EACF,MAAME,gBAAgB,GAAG,MAAMC,sBAAsB,CAACZ,EAAE,CAACa,MAAM,EAAEhB,MAAM,CAAC;EACxE,MAAMiB,gBAAgB,GAAG,MAAMC,kBAAkB,CAAClB,MAAM,EAAEG,EAAE,CAACa,MAAM,EAAET,QAAQ,CAACY,KAAK,EAAEL,gBAAgB,CAAC;EACtG,OAAOG,gBAAgB;AAC3B;AACA,eAAeJ,gBAAgBA,CAACX,MAAM,EAAEF,MAAM,EAAEoB,UAAU,EAAE;EACxD,MAAMC,YAAY,GAAG,CAAC,CAAC;EACvB,KAAK,MAAM,CAACC,GAAG,EAAEH,KAAK,CAAC,IAAII,MAAM,CAACC,OAAO,CAACtB,MAAM,CAAC,EAAE;IAC/CmB,YAAY,CAACC,GAAG,CAAC,GAAG,MAAMxB,kBAAkB,CAACqB,KAAK,EAAEnB,MAAM,EAAEoB,UAAU,CAACE,GAAG,CAAC,CAAC;EAChF;EACA,OAAOD,YAAY;AACvB;AACA,eAAeH,kBAAkBA,CAAClB,MAAM,EAAEyB,gBAAgB,EAAEC,aAAa,EAAEC,WAAW,EAAE;EACpF;EACA,IAAID,aAAa,IAAI,IAAI,EAAE;IACvB,IAAID,gBAAgB,CAACG,QAAQ,EAAE;MAC3B,OAAOC,SAAS;IACpB,CAAC,MACI;MACD,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;IACtE;EACJ;EACA,IAAIL,gBAAgB,CAACM,YAAY,IAAI,IAAI,IAClCN,gBAAgB,CAACM,YAAY,KAAK,KAAK,EAAE;IAC5C,MAAMC,mBAAmB,GAAG;MAAE,GAAGP,gBAAgB;MAAEM,YAAY,EAAE;IAAM,CAAC;IACxE,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,aAAa,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;MAC3CP,aAAa,CAACO,CAAC,CAAC,GAAG,MAAMf,kBAAkB,CAAClB,MAAM,EAAEgC,mBAAmB,EAAEN,aAAa,CAACO,CAAC,CAAC,EAAEN,WAAW,CAAC;IAC3G;IACA,OAAOD,aAAa;EACxB;EACA,QAAQD,gBAAgB,CAACU,IAAI;IACzB,KAAK,OAAO;MAAE;QACV,MAAM,IAAIL,KAAK,CAAC,0CAA0C,CAAC;MAC/D;IACA,KAAK,KAAK;MAAE;QACR,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,aAAa,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;UAC3CP,aAAa,CAACO,CAAC,CAAC,GAAG,MAAMf,kBAAkB,CAAClB,MAAM,EAAEyB,gBAAgB,CAACW,GAAG,EAAEV,aAAa,CAACO,CAAC,CAAC,EAAEN,WAAW,CAAC;QAC5G;QACA,OAAOD,aAAa;MACxB;IACA,KAAK,YAAY;MAAE;QACf,OAAOhC,uBAAuB,CAACM,MAAM,EAAE0B,aAAa,CAAC;MACzD;IACA,KAAK,QAAQ;MAAE;QACX,MAAMW,GAAG,GAAGV,WAAW,CAACW,GAAG,CAACb,gBAAgB,CAACc,MAAM,CAAC;QACpD,IAAI,CAACF,GAAG,EAAE;UACN,MAAM,IAAIP,KAAK,CAAC,0BAA0BL,gBAAgB,CAACc,MAAM,EAAE,CAAC;QACxE;QACA,OAAOC,yBAAyB,CAACd,aAAa,EAAEW,GAAG,CAAC;MACxD;IACA,KAAK,WAAW;MAAE;QACd,MAAMA,GAAG,GAAGV,WAAW,CAACW,GAAG,CAACb,gBAAgB,CAACgB,SAAS,CAAC;QACvD,IAAI,CAACJ,GAAG,EAAE;UACN,MAAM,IAAIP,KAAK,CAAC,0BAA0BL,gBAAgB,CAACgB,SAAS,EAAE,CAAC;QAC3E;QACA,IAAI,OAAOf,aAAa,KAAK,QAAQ,EAAE;UACnC,OAAO/B,eAAe,CAAC0C,GAAG,EAAErC,MAAM,EAAE;YAChCmC,IAAI,EAAE,WAAW;YACjBO,UAAU,EAAE,CACR;cAAEP,IAAI,EAAE,MAAM;cAAEQ,UAAU,EAAElB,gBAAgB,CAACgB;YAAU,CAAC,EACxD;cAAEN,IAAI,EAAE,WAAW;cAAES,SAAS,EAAElB;YAAc,CAAC;UAEvD,CAAC,CAAC;QACN;QACA,OAAO/B,eAAe,CAAC0C,GAAG,EAAErC,MAAM,EAAE0B,aAAa,CAAC;MACtD;IACA,KAAK,QAAQ;MAAE;QACX;QACA,KAAK,MAAM,CAACJ,GAAG,EAAEuB,OAAO,CAAC,IAAItB,MAAM,CAACC,OAAO,CAACC,gBAAgB,CAACqB,MAAM,CAAC,EAAE;UAClE,IAAIC,kBAAkB,CAACF,OAAO,CAAC,EAAE;YAC7BnB,aAAa,CAACJ,GAAG,CAAC,GAAG,MAAMJ,kBAAkB,CAAClB,MAAM,EAAE6C,OAAO,EAAEnB,aAAa,CAACJ,GAAG,CAAC,EAAEK,WAAW,CAAC;UACnG;QACJ;QACA,OAAOD,aAAa;MACxB;IACA,KAAK,2BAA2B;MAAE;QAC9B,MAAMsB,MAAM,GAAG,EAAE;QACjB,KAAK,MAAM;UAAE1B,GAAG;UAAEH;QAAM,CAAC,IAAIO,aAAa,CAACuB,MAAM,EAAE;UAC/CD,MAAM,CAACE,IAAI,CAAC;YAAE5B,GAAG;YAAEH;UAAM,CAAC,CAAC;QAC/B;QACA,OAAO6B,MAAM;MACjB;IACA,KAAK,6BAA6B;MAAE;QAChC,MAAMA,MAAM,GAAG,EAAE;QACjB,KAAK,MAAM;UAAE1B,GAAG;UAAE2B;QAAO,CAAC,IAAIvB,aAAa,CAACuB,MAAM,EAAE;UAChD,MAAME,SAAS,GAAG,EAAE;UACpB,KAAK,MAAM;YAAE7B,GAAG,EAAE8B,MAAM;YAAEjC;UAAM,CAAC,IAAI8B,MAAM,EAAE;YACzCE,SAAS,CAACD,IAAI,CAAC;cAAE5B,GAAG,EAAE8B,MAAM;cAAEjC;YAAM,CAAC,CAAC;UAC1C;UACA6B,MAAM,CAACE,IAAI,CAAC;YAAE5B,GAAG;YAAE2B,MAAM,EAAEE;UAAU,CAAC,CAAC;QAC3C;QACA,OAAOH,MAAM;MACjB;EACJ;EACA,OAAOtB,aAAa;AACxB;AACA,eAAeX,sBAAsBA,CAACsC,QAAQ,EAAErD,MAAM,EAAE;EACpD,MAAMgD,MAAM,GAAG,IAAIM,GAAG,CAAC,CAAC;EACxB,QAAQD,QAAQ,CAAClB,IAAI;IACjB,KAAK,WAAW;MAAE;QACd,MAAMoB,SAAS,GAAG,MAAMvD,MAAM,CAACI,gBAAgB,CAACoD,mBAAmB,CAACH,QAAQ,CAACZ,SAAS,CAAC;QACvFO,MAAM,CAACZ,GAAG,CAACiB,QAAQ,CAACZ,SAAS,EAAEc,SAAS,CAAC;QACzC;MACJ;IACA,KAAK,QAAQ;MAAE;QACX,MAAMA,SAAS,GAAG,MAAMvD,MAAM,CAACI,gBAAgB,CAACoD,mBAAmB,CAACH,QAAQ,CAACd,MAAM,CAAC;QACpFS,MAAM,CAACZ,GAAG,CAACiB,QAAQ,CAACd,MAAM,EAAEgB,SAAS,CAAC;QACtC;MACJ;IACA,KAAK,KAAK;MAAE;QACR,OAAOxC,sBAAsB,CAACsC,QAAQ,CAACjB,GAAG,EAAEpC,MAAM,CAAC;MACvD;IACA,KAAK,QAAQ;MAAE;QACX,KAAK,MAAMmB,KAAK,IAAII,MAAM,CAACkC,MAAM,CAACJ,QAAQ,CAACP,MAAM,CAAC,EAAE;UAChD,KAAK,MAAM,CAACX,IAAI,EAAEoB,SAAS,CAAC,IAAI,MAAMxC,sBAAsB,CAACI,KAAK,EAAEnB,MAAM,CAAC,EAAE;YACzEgD,MAAM,CAACZ,GAAG,CAACD,IAAI,EAAEoB,SAAS,CAAC;UAC/B;QACJ;QACA;MACJ;IACA,KAAK,YAAY;IACjB,KAAK,SAAS;IACd,KAAK,MAAM;IACX,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,MAAM;IACX,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,6BAA6B;IAClC,KAAK,WAAW;IAChB,KAAK,2BAA2B;IAChC,KAAK,OAAO;MACR;EACR;EACA,OAAOP,MAAM;AACjB;AACA,SAASD,kBAAkBA,CAACM,QAAQ,EAAE;EAClC,QAAQA,QAAQ,CAAClB,IAAI;IACjB,KAAK,SAAS;IACd,KAAK,MAAM;IACX,KAAK,QAAQ;IACb,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,MAAM;IACX,KAAK,QAAQ,CAAC,CAAC;IACf,KAAK,QAAQ;IACb,KAAK,WAAW;MACZ,OAAO,KAAK;IAChB,KAAK,OAAO;MACR,OAAO,IAAI;IACf,KAAK,QAAQ;MACT,OAAOZ,MAAM,CAACkC,MAAM,CAACJ,QAAQ,CAACP,MAAM,CAAC,CAACY,IAAI,CAACX,kBAAkB,CAAC;IAClE,KAAK,KAAK;MACN,OAAOA,kBAAkB,CAACM,QAAQ,CAACjB,GAAG,CAAC;IAC3C,KAAK,YAAY;IACjB,KAAK,WAAW;IAChB,KAAK,2BAA2B;IAChC,KAAK,6BAA6B;MAC9B,OAAO,IAAI;IACf;MACI,OAAO,KAAK;EACpB;AACJ;AACA,OAAO,SAASI,yBAAyBA,CAACmB,UAAU,EAAEJ,SAAS,EAAE;EAC7D,OAAO;IACHK,QAAQ,EAAEL,SAAS,CAACjD,OAAO;IAC3BuD,MAAM,EAAEhC,SAAS;IACjBiC,WAAW,EAAEP,SAAS,CAACjD,OAAO;IAC9ByD,WAAW,EAAEJ;EACjB,CAAC;AACL","ignoreList":[]}
@@ -165,7 +165,13 @@ describe("queries", () => {
165
165
  });
166
166
  it("queries are enumerable", async () => {
167
167
  const queries = Object.keys($Queries);
168
- expect(queries).toStrictEqual(["acceptsThreeDimensionalAggregationFunction", "acceptsTwoDimensionalAggregationFunction", "addOne", "incrementPersonAge", "queryAcceptsObject", "queryAcceptsObjectSets", "returnsDate", "returnsObject", "returnsTimestamp", "threeDimensionalAggregationFunction", "twoDimensionalAggregationFunction"]);
168
+ expect(queries).toStrictEqual(["acceptsThreeDimensionalAggregationFunction", "acceptsTwoDimensionalAggregationFunction", "addOne", "incrementPersonAge", "queryAcceptsObject", "queryAcceptsObjectSets", "queryTypeReturnsArray", "returnsDate", "returnsObject", "returnsTimestamp", "threeDimensionalAggregationFunction", "twoDimensionalAggregationFunction"]);
169
+ });
170
+ it("queries work with arrays", async () => {
171
+ const result = await client($Queries.queryTypeReturnsArray).executeFunction({
172
+ people: ["Brad", "George", "Ryan"]
173
+ });
174
+ expect(result).toEqual(["Pitt", "Clooney", "Reynolds"]);
169
175
  });
170
176
  });
171
177
  //# sourceMappingURL=queries.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.test.js","names":["$ontologyRid","$Queries","acceptsThreeDimensionalAggregationFunction","acceptsTwoDimensionalAggregationFunction","addOne","Employee","incrementPersonAge","queryAcceptsObject","queryAcceptsObjectSets","returnsDate","returnsTimestamp","threeDimensionalAggregationFunction","twoDimensionalAggregationFunction","apiServer","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","result","executeFunction","n","toBe","employee","fetchOne","object","toEqual","$apiName","$objectType","$primaryKey","result2","employeeObjectSet","objectSet","toMatchTypeOf","resultWithTimestamp","resultWithDate","person","firstName","lastName","age","key","value","aggFunction","groups","startValue","endValue","fail","e","message","toMatch","queries","Object","keys","toStrictEqual"],"sources":["queries.test.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 { $ontologyRid, $Queries, acceptsThreeDimensionalAggregationFunction, acceptsTwoDimensionalAggregationFunction, addOne, Employee, incrementPersonAge, queryAcceptsObject, queryAcceptsObjectSets, returnsDate, returnsTimestamp, threeDimensionalAggregationFunction, twoDimensionalAggregationFunction, } from \"@osdk/client.test.ontology\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, expectTypeOf, it, } from \"vitest\";\nimport { createClient } from \"../createClient.js\";\ndescribe(\"queries\", () => {\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(\"simple query works\", async () => {\n const result = await client(addOne).executeFunction({ n: 2 });\n expect(result).toBe(3);\n });\n it(\"accepts objects\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n const result = await client(queryAcceptsObject).executeFunction({\n object: employee,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n });\n // Should also accept primary keys\n const result2 = await client(queryAcceptsObject).executeFunction({\n object: 50030,\n });\n expect(result2).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n });\n });\n it(\"accepts objectSets\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n expectTypeOf().toMatchTypeOf();\n });\n it(\"no params work\", async () => {\n const resultWithTimestamp = await client(returnsTimestamp)\n .executeFunction();\n expect(resultWithTimestamp).toBe(\"2019-01-01T00:00:00.000Z\");\n const resultWithDate = await client(returnsDate).executeFunction();\n expect(resultWithDate).toBe(\"2019-01-01\");\n });\n it(\"returns and accepts structs property\", async () => {\n const result = await client(incrementPersonAge).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42 },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n });\n });\n it(\"two dimensional aggregation response works\", async () => {\n const result = await client(twoDimensionalAggregationFunction)\n .executeFunction();\n expect(result).toEqual([{ key: \"Q-AFN\", value: 1 }, {\n key: \"Q-AFO\",\n value: 2,\n }]);\n });\n it(\"two dimensional aggregation request/response works\", async () => {\n const result = await client(acceptsTwoDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n value: 1,\n },\n {\n key: \"testKey2\",\n value: 2,\n },\n ],\n });\n expect(result).toEqual([{ key: \"responseKey1\", value: 3 }, {\n key: \"responseKey2\",\n value: 4,\n }]);\n });\n it(\"three dimensional aggregation response works\", async () => {\n const result = await client(threeDimensionalAggregationFunction)\n .executeFunction();\n expect(result).toEqual([{\n key: \"Q-AFN\",\n groups: [{\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n }],\n }, { key: \"Q-AFO\", groups: [] }]);\n });\n it(\"throws when response is null and response is non-nullable\", async () => {\n try {\n const result = await client(addOne).executeFunction({ n: 3 });\n expect.fail(\"Should not reach here\");\n }\n catch (e) {\n expect(e.message).toMatch(`Got null response when nullable was not allowed`);\n }\n });\n it(\"three dimensional aggregation request/response works\", async () => {\n const result = await client(acceptsThreeDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"testKey2\",\n groups: [],\n },\n ],\n });\n expect(result).toEqual([\n {\n key: \"Q-AFN\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"Q-AFO\",\n groups: [],\n },\n ]);\n });\n it(\"queries are enumerable\", async () => {\n const queries = Object.keys($Queries);\n expect(queries).toStrictEqual([\n \"acceptsThreeDimensionalAggregationFunction\",\n \"acceptsTwoDimensionalAggregationFunction\",\n \"addOne\",\n \"incrementPersonAge\",\n \"queryAcceptsObject\",\n \"queryAcceptsObjectSets\",\n \"returnsDate\",\n \"returnsObject\",\n \"returnsTimestamp\",\n \"threeDimensionalAggregationFunction\",\n \"twoDimensionalAggregationFunction\",\n ]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"queries.test.js","names":["$ontologyRid","$Queries","acceptsThreeDimensionalAggregationFunction","acceptsTwoDimensionalAggregationFunction","addOne","Employee","incrementPersonAge","queryAcceptsObject","queryAcceptsObjectSets","returnsDate","returnsTimestamp","threeDimensionalAggregationFunction","twoDimensionalAggregationFunction","apiServer","afterAll","beforeAll","describe","expect","expectTypeOf","it","createClient","client","listen","close","result","executeFunction","n","toBe","employee","fetchOne","object","toEqual","$apiName","$objectType","$primaryKey","result2","employeeObjectSet","objectSet","toMatchTypeOf","resultWithTimestamp","resultWithDate","person","firstName","lastName","age","key","value","aggFunction","groups","startValue","endValue","fail","e","message","toMatch","queries","Object","keys","toStrictEqual","queryTypeReturnsArray","people"],"sources":["queries.test.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 { $ontologyRid, $Queries, acceptsThreeDimensionalAggregationFunction, acceptsTwoDimensionalAggregationFunction, addOne, Employee, incrementPersonAge, queryAcceptsObject, queryAcceptsObjectSets, returnsDate, returnsTimestamp, threeDimensionalAggregationFunction, twoDimensionalAggregationFunction, } from \"@osdk/client.test.ontology\";\nimport { apiServer } from \"@osdk/shared.test\";\nimport { afterAll, beforeAll, describe, expect, expectTypeOf, it, } from \"vitest\";\nimport { createClient } from \"../createClient.js\";\ndescribe(\"queries\", () => {\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(\"simple query works\", async () => {\n const result = await client(addOne).executeFunction({ n: 2 });\n expect(result).toBe(3);\n });\n it(\"accepts objects\", async () => {\n const employee = await client(Employee).fetchOne(50030);\n const result = await client(queryAcceptsObject).executeFunction({\n object: employee,\n });\n expect(result).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n });\n // Should also accept primary keys\n const result2 = await client(queryAcceptsObject).executeFunction({\n object: 50030,\n });\n expect(result2).toEqual({\n $apiName: \"Employee\",\n $objectType: \"Employee\",\n $primaryKey: 50031,\n });\n });\n it(\"accepts objectSets\", async () => {\n const employeeObjectSet = client(Employee);\n const result = await client(queryAcceptsObjectSets).executeFunction({\n objectSet: employeeObjectSet,\n });\n expectTypeOf().toMatchTypeOf();\n });\n it(\"no params work\", async () => {\n const resultWithTimestamp = await client(returnsTimestamp)\n .executeFunction();\n expect(resultWithTimestamp).toBe(\"2019-01-01T00:00:00.000Z\");\n const resultWithDate = await client(returnsDate).executeFunction();\n expect(resultWithDate).toBe(\"2019-01-01\");\n });\n it(\"returns and accepts structs property\", async () => {\n const result = await client(incrementPersonAge).executeFunction({\n person: { firstName: \"John\", lastName: \"Doe\", age: 42 },\n });\n expect(result).toEqual({\n firstName: \"John\",\n lastName: \"Doe\",\n age: 43,\n });\n });\n it(\"two dimensional aggregation response works\", async () => {\n const result = await client(twoDimensionalAggregationFunction)\n .executeFunction();\n expect(result).toEqual([{ key: \"Q-AFN\", value: 1 }, {\n key: \"Q-AFO\",\n value: 2,\n }]);\n });\n it(\"two dimensional aggregation request/response works\", async () => {\n const result = await client(acceptsTwoDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n value: 1,\n },\n {\n key: \"testKey2\",\n value: 2,\n },\n ],\n });\n expect(result).toEqual([{ key: \"responseKey1\", value: 3 }, {\n key: \"responseKey2\",\n value: 4,\n }]);\n });\n it(\"three dimensional aggregation response works\", async () => {\n const result = await client(threeDimensionalAggregationFunction)\n .executeFunction();\n expect(result).toEqual([{\n key: \"Q-AFN\",\n groups: [{\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n }],\n }, { key: \"Q-AFO\", groups: [] }]);\n });\n it(\"throws when response is null and response is non-nullable\", async () => {\n try {\n const result = await client(addOne).executeFunction({ n: 3 });\n expect.fail(\"Should not reach here\");\n }\n catch (e) {\n expect(e.message).toMatch(`Got null response when nullable was not allowed`);\n }\n });\n it(\"three dimensional aggregation request/response works\", async () => {\n const result = await client(acceptsThreeDimensionalAggregationFunction)\n .executeFunction({\n aggFunction: [\n {\n key: \"testKey1\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"testKey2\",\n groups: [],\n },\n ],\n });\n expect(result).toEqual([\n {\n key: \"Q-AFN\",\n groups: [\n {\n key: {\n startValue: \"2010-10-01T00:00:00Z\",\n endValue: \"2010-10-02T00:00:00Z\",\n },\n value: 65.0,\n },\n ],\n },\n {\n key: \"Q-AFO\",\n groups: [],\n },\n ]);\n });\n it(\"queries are enumerable\", async () => {\n const queries = Object.keys($Queries);\n expect(queries).toStrictEqual([\n \"acceptsThreeDimensionalAggregationFunction\",\n \"acceptsTwoDimensionalAggregationFunction\",\n \"addOne\",\n \"incrementPersonAge\",\n \"queryAcceptsObject\",\n \"queryAcceptsObjectSets\",\n \"queryTypeReturnsArray\",\n \"returnsDate\",\n \"returnsObject\",\n \"returnsTimestamp\",\n \"threeDimensionalAggregationFunction\",\n \"twoDimensionalAggregationFunction\",\n ]);\n });\n it(\"queries work with arrays\", async () => {\n const result = await client($Queries.queryTypeReturnsArray).executeFunction({ people: [\"Brad\", \"George\", \"Ryan\"] });\n expect(result).toEqual([\"Pitt\", \"Clooney\", \"Reynolds\"]);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -13,5 +13,5 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export const USER_AGENT = `osdk-client/${"2.0.2-rc.0"}`;
16
+ export const USER_AGENT = `osdk-client/${"2.1.0-beta.0"}`;
17
17
  //# sourceMappingURL=UserAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserAgent.js","names":["USER_AGENT"],"sources":["UserAgent.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 */\nexport const USER_AGENT = `osdk-client/${process.env.PACKAGE_VERSION}`;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,UAAU,GAAG,6BAA4C","ignoreList":[]}
1
+ {"version":3,"file":"UserAgent.js","names":["USER_AGENT"],"sources":["UserAgent.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 */\nexport const USER_AGENT = `osdk-client/${process.env.PACKAGE_VERSION}`;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,UAAU,GAAG,+BAA4C","ignoreList":[]}
@@ -32,7 +32,7 @@ export interface Client extends SharedClient<MinimalClient> {
32
32
  */
33
33
  readonly [__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks]: <T extends ObjectOrInterfaceDefinition>(objs: Osdk<T>[], links: string[]) => AsyncGenerator<BulkLinkResult, void, undefined>;
34
34
  }
35
- declare const MaxOsdkVersion = "2.0.2";
35
+ declare const MaxOsdkVersion = "2.1.0";
36
36
  export type MaxOsdkVersion = typeof MaxOsdkVersion;
37
37
  declare const ErrorMessage: unique symbol;
38
38
  export {};
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  // BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.
17
- const MaxOsdkVersion = "2.0.2";
17
+ const MaxOsdkVersion = "2.1.0";
18
18
  const ErrorMessage = Symbol("ErrorMessage");
19
19
  export {};
20
20
  //# sourceMappingURL=Client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","names":["MaxOsdkVersion","ErrorMessage","Symbol"],"sources":["Client.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 */\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.0.2\";\nconst ErrorMessage = Symbol(\"ErrorMessage\");\nexport {};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,OAAO;AAC9B,MAAMC,YAAY,GAAGC,MAAM,CAAC,cAAc,CAAC;AAC3C","ignoreList":[]}
1
+ {"version":3,"file":"Client.js","names":["MaxOsdkVersion","ErrorMessage","Symbol"],"sources":["Client.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 */\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst MaxOsdkVersion = \"2.1.0\";\nconst ErrorMessage = Symbol(\"ErrorMessage\");\nexport {};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,OAAO;AAC9B,MAAMC,YAAY,GAAGC,MAAM,CAAC,cAAc,CAAC;AAC3C","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- import type { OsdkObject } from "@osdk/api";
1
+ import type { OsdkBase } from "@osdk/api";
2
2
  import type { MinimalClient } from "../MinimalClientContext.js";
3
3
  export interface BulkLinkResult {
4
- object: OsdkObject<any>;
4
+ object: OsdkBase<any>;
5
5
  linkApiName: string;
6
6
  otherObjectApiName: string | undefined;
7
7
  otherObjectPk: unknown;
8
8
  }
9
- export declare function createBulkLinksAsyncIterFactory(ctx: MinimalClient): (objs: Array<OsdkObject<any>>, linkTypes: string[]) => AsyncGenerator<BulkLinkResult, void, unknown>;
9
+ export declare function createBulkLinksAsyncIterFactory(ctx: MinimalClient): (objs: Array<OsdkBase<any>>, linkTypes: string[]) => AsyncGenerator<BulkLinkResult, void, unknown>;
10
10
  //# sourceMappingURL=createBulkLinksAsyncIterFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createBulkLinksAsyncIterFactory.d.ts","sourceRoot":"","sources":["../../../src/__unstable/createBulkLinksAsyncIterFactory.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAS5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAUhE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,aAAa,UAExD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,aACjB,MAAM,EAAE,KAClB,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CA8GjD"}
1
+ {"version":3,"file":"createBulkLinksAsyncIterFactory.d.ts","sourceRoot":"","sources":["../../../src/__unstable/createBulkLinksAsyncIterFactory.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAS1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAUhE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,aAAa,UAExD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,aACf,MAAM,EAAE,KAClB,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CA8GjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/createClient.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAyI1C,eAAO,MAAM,YAAY,gFA7FF,OAAO,CAAC,MAAM,CAAC;aAChB,MAAM;4DA+F3B,CAAC"}
1
+ {"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/createClient.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAqJ1C,eAAO,MAAM,YAAY,gFAzGF,OAAO,CAAC,MAAM,CAAC;aAChB,MAAM;4DA2G3B,CAAC"}
@@ -43,6 +43,17 @@ class QueryInvoker {
43
43
  export function createClientInternal(objectSetFactory,
44
44
  // first so i can bind
45
45
  baseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {
46
+ if (typeof ontologyRid === "string") {
47
+ if (!ontologyRid.startsWith("ri.")) {
48
+ throw new Error("Invalid ontology RID");
49
+ }
50
+ } else {
51
+ ontologyRid.then(ontologyRid => {
52
+ if (!ontologyRid.startsWith("ri.")) {
53
+ throw new Error("Invalid ontology RID");
54
+ }
55
+ });
56
+ }
46
57
  const clientCtx = createMinimalClient({
47
58
  ontologyRid
48
59
  }, baseUrl, tokenProvider, options, fetchFn, objectSetFactory);
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","__EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet","symbolClientContext","createBulkLinksAsyncIterFactory","applyAction","createMinimalClient","fetchMetadataInternal","createObjectSet","applyQuery","ActionInvoker","constructor","clientCtx","actionDef","bind","undefined","batchApplyAction","QueryInvoker","queryDef","executeFunction","createClientInternal","objectSetFactory","baseUrl","ontologyRid","tokenProvider","options","fetchFn","fetch","fetchMetadata","client","Object","defineProperties","o","type","Error","value","get","definition","rid","objectSets","objectType","apiName","reference","createClient"],"sources":["createClient.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 { __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks, __EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet, } from \"@osdk/api/unstable\";\nimport { symbolClientContext } from \"@osdk/shared.client\";\nimport { createBulkLinksAsyncIterFactory } from \"./__unstable/createBulkLinksAsyncIterFactory.js\";\nimport { applyAction } from \"./actions/applyAction.js\";\nimport { createMinimalClient } from \"./createMinimalClient.js\";\nimport { fetchMetadataInternal } from \"./fetchMetadata.js\";\nimport { createObjectSet } from \"./objectSet/createObjectSet.js\";\nimport { applyQuery } from \"./queries/applyQuery.js\";\nclass ActionInvoker {\n constructor(clientCtx, actionDef) {\n // We type the property as a generic function as binding `applyAction`\n // doesn't return a type thats all that useful anyway\n // The implements covers us for the most part here as this exact type doesn't\n // escape this file\n this.applyAction = applyAction.bind(undefined, clientCtx, actionDef);\n this.batchApplyAction = applyAction.bind(undefined, clientCtx, actionDef);\n }\n applyAction;\n batchApplyAction;\n}\nclass QueryInvoker {\n constructor(clientCtx, queryDef) {\n this.executeFunction = applyQuery.bind(undefined, clientCtx, queryDef);\n }\n executeFunction;\n}\n/** @internal */\nexport function createClientInternal(objectSetFactory, // first so i can bind\nbaseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {\n const clientCtx = createMinimalClient({ ontologyRid }, baseUrl, tokenProvider, options, fetchFn, objectSetFactory);\n function clientFn(o) {\n if (o.type === \"object\" || o.type === \"interface\") {\n return objectSetFactory(o, clientCtx);\n }\n else if (o.type === \"action\") {\n return new ActionInvoker(clientCtx, o); // then as any for dealing with the conditional return value\n }\n else if (o.type === \"query\") {\n return new QueryInvoker(clientCtx, o);\n }\n else {\n throw new Error(\"not implemented\");\n }\n }\n const fetchMetadata = fetchMetadataInternal.bind(undefined, clientCtx);\n const client = Object.defineProperties(clientFn, {\n [symbolClientContext]: {\n value: clientCtx,\n },\n [__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks]: {\n get: () => createBulkLinksAsyncIterFactory(clientCtx),\n },\n [__EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet]: {\n get: () => (definition, rid) => {\n return createObjectSet(definition, client[symbolClientContext], {\n type: \"intersect\",\n objectSets: [\n {\n type: \"base\",\n objectType: definition.apiName,\n },\n {\n type: \"reference\",\n reference: rid,\n },\n ],\n });\n },\n },\n fetchMetadata: {\n value: fetchMetadata,\n },\n });\n return client;\n}\nexport const createClient = createClientInternal.bind(undefined, createObjectSet);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createClient.js","names":["__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks","__EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet","symbolClientContext","createBulkLinksAsyncIterFactory","applyAction","createMinimalClient","fetchMetadataInternal","createObjectSet","applyQuery","ActionInvoker","constructor","clientCtx","actionDef","bind","undefined","batchApplyAction","QueryInvoker","queryDef","executeFunction","createClientInternal","objectSetFactory","baseUrl","ontologyRid","tokenProvider","options","fetchFn","fetch","startsWith","Error","then","fetchMetadata","client","Object","defineProperties","o","type","value","get","definition","rid","objectSets","objectType","apiName","reference","createClient"],"sources":["createClient.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 { __EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks, __EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet, } from \"@osdk/api/unstable\";\nimport { symbolClientContext } from \"@osdk/shared.client\";\nimport { createBulkLinksAsyncIterFactory } from \"./__unstable/createBulkLinksAsyncIterFactory.js\";\nimport { applyAction } from \"./actions/applyAction.js\";\nimport { createMinimalClient } from \"./createMinimalClient.js\";\nimport { fetchMetadataInternal } from \"./fetchMetadata.js\";\nimport { createObjectSet } from \"./objectSet/createObjectSet.js\";\nimport { applyQuery } from \"./queries/applyQuery.js\";\nclass ActionInvoker {\n constructor(clientCtx, actionDef) {\n // We type the property as a generic function as binding `applyAction`\n // doesn't return a type thats all that useful anyway\n // The implements covers us for the most part here as this exact type doesn't\n // escape this file\n this.applyAction = applyAction.bind(undefined, clientCtx, actionDef);\n this.batchApplyAction = applyAction.bind(undefined, clientCtx, actionDef);\n }\n applyAction;\n batchApplyAction;\n}\nclass QueryInvoker {\n constructor(clientCtx, queryDef) {\n this.executeFunction = applyQuery.bind(undefined, clientCtx, queryDef);\n }\n executeFunction;\n}\n/** @internal */\nexport function createClientInternal(objectSetFactory, // first so i can bind\nbaseUrl, ontologyRid, tokenProvider, options = undefined, fetchFn = fetch) {\n if (typeof ontologyRid === \"string\") {\n if (!ontologyRid.startsWith(\"ri.\")) {\n throw new Error(\"Invalid ontology RID\");\n }\n }\n else {\n ontologyRid.then((ontologyRid) => {\n if (!ontologyRid.startsWith(\"ri.\")) {\n throw new Error(\"Invalid ontology RID\");\n }\n });\n }\n const clientCtx = createMinimalClient({ ontologyRid }, baseUrl, tokenProvider, options, fetchFn, objectSetFactory);\n function clientFn(o) {\n if (o.type === \"object\" || o.type === \"interface\") {\n return objectSetFactory(o, clientCtx);\n }\n else if (o.type === \"action\") {\n return new ActionInvoker(clientCtx, o); // then as any for dealing with the conditional return value\n }\n else if (o.type === \"query\") {\n return new QueryInvoker(clientCtx, o);\n }\n else {\n throw new Error(\"not implemented\");\n }\n }\n const fetchMetadata = fetchMetadataInternal.bind(undefined, clientCtx);\n const client = Object.defineProperties(clientFn, {\n [symbolClientContext]: {\n value: clientCtx,\n },\n [__EXPERIMENTAL__NOT_SUPPORTED_YET__getBulkLinks]: {\n get: () => createBulkLinksAsyncIterFactory(clientCtx),\n },\n [__EXPERIMENTAL__NOT_SUPPORTED_YET__preexistingObjectSet]: {\n get: () => (definition, rid) => {\n return createObjectSet(definition, client[symbolClientContext], {\n type: \"intersect\",\n objectSets: [\n {\n type: \"base\",\n objectType: definition.apiName,\n },\n {\n type: \"reference\",\n reference: rid,\n },\n ],\n });\n },\n },\n fetchMetadata: {\n value: fetchMetadata,\n },\n });\n return client;\n}\nexport const createClient = createClientInternal.bind(undefined, createObjectSet);\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- export {};
1
+ export declare function extractNamespace(fqApiName: string): [string | undefined, string];
2
2
  //# sourceMappingURL=modernToLegacyWhereClause.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modernToLegacyWhereClause.d.ts","sourceRoot":"","sources":["../../../../src/internal/conversions/modernToLegacyWhereClause.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"modernToLegacyWhereClause.d.ts","sourceRoot":"","sources":["../../../../src/internal/conversions/modernToLegacyWhereClause.ts"],"names":[],"mappings":"AA6BA,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAChB,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,CAI9B"}