@milaboratories/pl-client 2.16.26 → 2.16.28

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 (212) hide show
  1. package/README.md +2 -1
  2. package/dist/core/PromiseTracker.cjs +1 -3
  3. package/dist/core/PromiseTracker.cjs.map +1 -1
  4. package/dist/core/PromiseTracker.d.ts.map +1 -1
  5. package/dist/core/PromiseTracker.js +1 -3
  6. package/dist/core/PromiseTracker.js.map +1 -1
  7. package/dist/core/StatefulPromise.cjs +4 -4
  8. package/dist/core/StatefulPromise.cjs.map +1 -1
  9. package/dist/core/StatefulPromise.d.ts +1 -1
  10. package/dist/core/StatefulPromise.d.ts.map +1 -1
  11. package/dist/core/StatefulPromise.js +4 -4
  12. package/dist/core/StatefulPromise.js.map +1 -1
  13. package/dist/core/advisory_locks.cjs +1 -1
  14. package/dist/core/advisory_locks.cjs.map +1 -1
  15. package/dist/core/advisory_locks.js +1 -1
  16. package/dist/core/advisory_locks.js.map +1 -1
  17. package/dist/core/auth.cjs.map +1 -1
  18. package/dist/core/auth.d.ts +1 -1
  19. package/dist/core/auth.js.map +1 -1
  20. package/dist/core/cache.d.ts +1 -1
  21. package/dist/core/client.cjs +14 -14
  22. package/dist/core/client.cjs.map +1 -1
  23. package/dist/core/client.d.ts +11 -11
  24. package/dist/core/client.d.ts.map +1 -1
  25. package/dist/core/client.js +14 -14
  26. package/dist/core/client.js.map +1 -1
  27. package/dist/core/config.cjs +39 -39
  28. package/dist/core/config.cjs.map +1 -1
  29. package/dist/core/config.d.ts +5 -5
  30. package/dist/core/config.js +39 -39
  31. package/dist/core/config.js.map +1 -1
  32. package/dist/core/default_client.cjs +23 -23
  33. package/dist/core/default_client.cjs.map +1 -1
  34. package/dist/core/default_client.d.ts +3 -3
  35. package/dist/core/default_client.js +23 -23
  36. package/dist/core/default_client.js.map +1 -1
  37. package/dist/core/driver.cjs +1 -1
  38. package/dist/core/driver.cjs.map +1 -1
  39. package/dist/core/driver.d.ts +5 -5
  40. package/dist/core/driver.js +1 -1
  41. package/dist/core/driver.js.map +1 -1
  42. package/dist/core/error_resource.cjs +2 -2
  43. package/dist/core/error_resource.cjs.map +1 -1
  44. package/dist/core/error_resource.d.ts +1 -1
  45. package/dist/core/error_resource.js +2 -2
  46. package/dist/core/error_resource.js.map +1 -1
  47. package/dist/core/errors.cjs +24 -24
  48. package/dist/core/errors.cjs.map +1 -1
  49. package/dist/core/errors.d.ts +1 -1
  50. package/dist/core/errors.d.ts.map +1 -1
  51. package/dist/core/errors.js +24 -24
  52. package/dist/core/errors.js.map +1 -1
  53. package/dist/core/final.cjs +43 -43
  54. package/dist/core/final.cjs.map +1 -1
  55. package/dist/core/final.d.ts +3 -3
  56. package/dist/core/final.d.ts.map +1 -1
  57. package/dist/core/final.js +43 -43
  58. package/dist/core/final.js.map +1 -1
  59. package/dist/core/ll_client.cjs +50 -43
  60. package/dist/core/ll_client.cjs.map +1 -1
  61. package/dist/core/ll_client.d.ts +9 -9
  62. package/dist/core/ll_client.d.ts.map +1 -1
  63. package/dist/core/ll_client.js +50 -43
  64. package/dist/core/ll_client.js.map +1 -1
  65. package/dist/core/ll_transaction.cjs +9 -9
  66. package/dist/core/ll_transaction.cjs.map +1 -1
  67. package/dist/core/ll_transaction.d.ts +7 -7
  68. package/dist/core/ll_transaction.d.ts.map +1 -1
  69. package/dist/core/ll_transaction.js +9 -9
  70. package/dist/core/ll_transaction.js.map +1 -1
  71. package/dist/core/stat.cjs.map +1 -1
  72. package/dist/core/stat.d.ts +1 -1
  73. package/dist/core/stat.js.map +1 -1
  74. package/dist/core/transaction.cjs +46 -46
  75. package/dist/core/transaction.cjs.map +1 -1
  76. package/dist/core/transaction.d.ts +7 -7
  77. package/dist/core/transaction.d.ts.map +1 -1
  78. package/dist/core/transaction.js +46 -46
  79. package/dist/core/transaction.js.map +1 -1
  80. package/dist/core/type_conversion.cjs +22 -22
  81. package/dist/core/type_conversion.cjs.map +1 -1
  82. package/dist/core/type_conversion.d.ts +3 -3
  83. package/dist/core/type_conversion.d.ts.map +1 -1
  84. package/dist/core/type_conversion.js +22 -22
  85. package/dist/core/type_conversion.js.map +1 -1
  86. package/dist/core/types.cjs +25 -25
  87. package/dist/core/types.cjs.map +1 -1
  88. package/dist/core/types.d.ts +7 -7
  89. package/dist/core/types.js +25 -25
  90. package/dist/core/types.js.map +1 -1
  91. package/dist/core/unauth_client.cjs +6 -4
  92. package/dist/core/unauth_client.cjs.map +1 -1
  93. package/dist/core/unauth_client.d.ts +4 -4
  94. package/dist/core/unauth_client.d.ts.map +1 -1
  95. package/dist/core/unauth_client.js +6 -4
  96. package/dist/core/unauth_client.js.map +1 -1
  97. package/dist/core/websocket_stream.cjs +22 -20
  98. package/dist/core/websocket_stream.cjs.map +1 -1
  99. package/dist/core/websocket_stream.d.ts +3 -3
  100. package/dist/core/websocket_stream.d.ts.map +1 -1
  101. package/dist/core/websocket_stream.js +22 -20
  102. package/dist/core/websocket_stream.js.map +1 -1
  103. package/dist/core/wire.d.ts +6 -6
  104. package/dist/core/wire.d.ts.map +1 -1
  105. package/dist/helpers/pl.cjs +19 -19
  106. package/dist/helpers/pl.cjs.map +1 -1
  107. package/dist/helpers/pl.d.ts +2 -2
  108. package/dist/helpers/pl.js +19 -19
  109. package/dist/helpers/pl.js.map +1 -1
  110. package/dist/helpers/poll.cjs +6 -6
  111. package/dist/helpers/poll.cjs.map +1 -1
  112. package/dist/helpers/poll.d.ts +4 -4
  113. package/dist/helpers/poll.d.ts.map +1 -1
  114. package/dist/helpers/poll.js +6 -6
  115. package/dist/helpers/poll.js.map +1 -1
  116. package/dist/helpers/retry_strategy.cjs +1 -1
  117. package/dist/helpers/retry_strategy.cjs.map +1 -1
  118. package/dist/helpers/retry_strategy.d.ts.map +1 -1
  119. package/dist/helpers/retry_strategy.js +1 -1
  120. package/dist/helpers/retry_strategy.js.map +1 -1
  121. package/dist/helpers/state_helpers.d.ts +2 -2
  122. package/dist/helpers/tx_helpers.cjs +2 -2
  123. package/dist/helpers/tx_helpers.cjs.map +1 -1
  124. package/dist/helpers/tx_helpers.d.ts +2 -2
  125. package/dist/helpers/tx_helpers.d.ts.map +1 -1
  126. package/dist/helpers/tx_helpers.js +2 -2
  127. package/dist/helpers/tx_helpers.js.map +1 -1
  128. package/dist/index.d.ts +16 -16
  129. package/dist/proto-grpc/google/protobuf/struct.d.ts +1 -1
  130. package/dist/proto-grpc/google/protobuf/struct.d.ts.map +1 -1
  131. package/dist/proto-rest/index.cjs +4 -5
  132. package/dist/proto-rest/index.cjs.map +1 -1
  133. package/dist/proto-rest/index.d.ts +4 -4
  134. package/dist/proto-rest/index.d.ts.map +1 -1
  135. package/dist/proto-rest/index.js +4 -5
  136. package/dist/proto-rest/index.js.map +1 -1
  137. package/dist/proto-rest/plapi.d.ts.map +1 -1
  138. package/dist/test/tcp-proxy.cjs +11 -10
  139. package/dist/test/tcp-proxy.cjs.map +1 -1
  140. package/dist/test/tcp-proxy.d.ts +1 -1
  141. package/dist/test/tcp-proxy.d.ts.map +1 -1
  142. package/dist/test/tcp-proxy.js +11 -10
  143. package/dist/test/tcp-proxy.js.map +1 -1
  144. package/dist/test/test_config.cjs +21 -17
  145. package/dist/test/test_config.cjs.map +1 -1
  146. package/dist/test/test_config.d.ts +6 -6
  147. package/dist/test/test_config.d.ts.map +1 -1
  148. package/dist/test/test_config.js +21 -17
  149. package/dist/test/test_config.js.map +1 -1
  150. package/dist/util/pl.cjs +1 -1
  151. package/dist/util/pl.cjs.map +1 -1
  152. package/dist/util/pl.js +1 -1
  153. package/dist/util/pl.js.map +1 -1
  154. package/dist/util/util.cjs +1 -1
  155. package/dist/util/util.cjs.map +1 -1
  156. package/dist/util/util.js +1 -1
  157. package/dist/util/util.js.map +1 -1
  158. package/package.json +23 -23
  159. package/src/core/PromiseTracker.ts +3 -4
  160. package/src/core/StatefulPromise.ts +17 -8
  161. package/src/core/abstract_stream.ts +3 -4
  162. package/src/core/advisory_locks.ts +1 -1
  163. package/src/core/auth.ts +2 -2
  164. package/src/core/cache.ts +1 -1
  165. package/src/core/client.test.ts +25 -21
  166. package/src/core/client.ts +54 -45
  167. package/src/core/config.test.ts +44 -44
  168. package/src/core/config.ts +49 -49
  169. package/src/core/connectivity.test.ts +69 -63
  170. package/src/core/default_client.ts +46 -46
  171. package/src/core/driver.ts +6 -6
  172. package/src/core/error.test.ts +5 -5
  173. package/src/core/error_resource.ts +3 -3
  174. package/src/core/errors.ts +39 -31
  175. package/src/core/final.ts +48 -55
  176. package/src/core/ll_client.test.ts +53 -36
  177. package/src/core/ll_client.ts +125 -81
  178. package/src/core/ll_transaction.test.ts +75 -49
  179. package/src/core/ll_transaction.ts +37 -35
  180. package/src/core/stat.ts +1 -1
  181. package/src/core/transaction.test.ts +65 -65
  182. package/src/core/transaction.ts +91 -84
  183. package/src/core/type_conversion.ts +30 -31
  184. package/src/core/types.test.ts +6 -6
  185. package/src/core/types.ts +35 -35
  186. package/src/core/unauth_client.test.ts +18 -14
  187. package/src/core/unauth_client.ts +14 -12
  188. package/src/core/websocket_stream.test.ts +52 -52
  189. package/src/core/websocket_stream.ts +41 -37
  190. package/src/core/wire.ts +10 -8
  191. package/src/helpers/pl.ts +22 -22
  192. package/src/helpers/poll.ts +13 -27
  193. package/src/helpers/retry_strategy.ts +2 -4
  194. package/src/helpers/rich_resource_types.test.ts +2 -2
  195. package/src/helpers/state_helpers.ts +3 -3
  196. package/src/helpers/tx_helpers.ts +9 -7
  197. package/src/index.ts +16 -16
  198. package/src/proto-grpc/google/protobuf/struct.ts +1 -1
  199. package/src/proto-rest/index.ts +17 -18
  200. package/src/proto-rest/plapi.ts +1472 -1472
  201. package/src/test/tcp-proxy.ts +55 -54
  202. package/src/test/test_config.test.ts +3 -3
  203. package/src/test/test_config.ts +51 -46
  204. package/src/util/pl.ts +1 -1
  205. package/src/util/util.test.ts +5 -5
  206. package/src/util/util.ts +1 -1
  207. package/dist/helpers/rich_resource_types.d.ts +0 -2
  208. package/dist/helpers/rich_resource_types.d.ts.map +0 -1
  209. package/dist/helpers/smart_accessors.d.ts +0 -2
  210. package/dist/helpers/smart_accessors.d.ts.map +0 -1
  211. package/src/helpers/rich_resource_types.ts +0 -84
  212. package/src/helpers/smart_accessors.ts +0 -146
@@ -1 +1 @@
1
- {"version":3,"file":"errors.cjs","sources":["../../src/core/errors.ts"],"sourcesContent":["import type { Status } from '../proto-grpc/github.com/googleapis/googleapis/google/rpc/status';\nimport { Aborted } from '@milaboratories/ts-helpers';\nimport { Code } from '../proto-grpc/google/rpc/code';\n\nexport function isConnectionProblem(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof DisconnectedError) return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'UNAVAILABLE') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.UNAVAILABLE) return true;\n if ((err as any).cause !== undefined && !nested) return isConnectionProblem((err as any).cause, true);\n return false;\n}\n\nexport function isUnauthenticated(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof UnauthenticatedError) return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'UNAUTHENTICATED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.UNAUTHENTICATED) return true;\n if ((err as any).cause !== undefined && !nested) return isUnauthenticated((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == 'TimeoutError') return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'DEADLINE_EXCEEDED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.DEADLINE_EXCEEDED) return true;\n if ((err as any).cause !== undefined && !nested) return isTimeoutError((err as any).cause, true);\n return false;\n}\n\nexport function isCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == 'RpcError' && (err as any).code == 'CANCELLED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.CANCELLED) return true;\n if ((err as any).cause !== undefined && !nested) return isCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isAbortedError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof Aborted || (err as any).name == 'AbortError') return true;\n if ((err as any).code == 'ABORT_ERR') return true;\n if (err instanceof DOMException && err.code === DOMException.ABORT_ERR) return true; // WebSocket error\n if ((err as any).name == 'RpcError' && (err as any).code == 'ABORTED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.ABORTED) return true;\n if ((err as any).cause !== undefined && !nested) isAbortedError((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutOrCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (isAbortedError(err, true)) return true;\n if (isTimeoutError(err, true)) return true;\n if (isCancelError(err, true)) return true;\n if ((err as any).cause !== undefined && !nested) return isTimeoutOrCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isNotFoundError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == 'RpcError' && (err as any).code == 'NOT_FOUND') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.NOT_FOUND) return true;\n if ((err as any).cause !== undefined && !nested) return isNotFoundError((err as any).cause, true);\n return err instanceof RecoverablePlError && err.status.code === PlErrorCodeNotFound;\n}\n\nexport const PlErrorCodeNotFound: number = Code.NOT_FOUND;\n\nexport class PlError extends Error {\n name = 'PlError';\n constructor(public readonly status: Status, opts?: ErrorOptions) {\n super(`code=${status.code} ${status.message}`, opts);\n }\n}\n\nexport function throwPlNotFoundError(message: string): never {\n throw new RecoverablePlError({ code: PlErrorCodeNotFound, message, details: [] });\n}\n\nexport class RecoverablePlError extends PlError {\n name = 'RecoverablePlError';\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnrecoverablePlError extends PlError {\n name = 'UnrecoverablePlError';\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnauthenticatedError extends Error {\n name = 'UnauthenticatedError';\n constructor(message: string) {\n super('LoginFailed: ' + message);\n }\n}\n\nexport class DisconnectedError extends Error {\n name = 'DisconnectedError';\n constructor(message: string) {\n super('Disconnected: ' + message);\n }\n}\n\nexport class RESTError extends PlError {\n name = 'RESTError';\n constructor(status: Status, opts?: ErrorOptions) {\n super(status, opts);\n }\n}\n\nexport function rethrowMeaningfulError(error: any, wrapIfUnknown: boolean = false): never {\n if (isUnauthenticated(error)) {\n if (error instanceof UnauthenticatedError) throw error;\n throw new UnauthenticatedError(error.message);\n }\n if (isConnectionProblem(error)) {\n if (error instanceof DisconnectedError) throw error;\n throw new DisconnectedError(error.message);\n }\n if (isTimeoutOrCancelError(error)) throw new Aborted(error);\n if (wrapIfUnknown) {\n const message = error.message || String(error) || 'Unknown error';\n throw new Error(message, { cause: error });\n } else throw error;\n}\n"],"names":["Code","Aborted"],"mappings":"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"}
1
+ {"version":3,"file":"errors.cjs","sources":["../../src/core/errors.ts"],"sourcesContent":["import type { Status } from \"../proto-grpc/github.com/googleapis/googleapis/google/rpc/status\";\nimport { Aborted } from \"@milaboratories/ts-helpers\";\nimport { Code } from \"../proto-grpc/google/rpc/code\";\n\nexport function isConnectionProblem(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof DisconnectedError) return true;\n if ((err as any).name == \"RpcError\" && (err as any).code == \"UNAVAILABLE\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.UNAVAILABLE) return true;\n if ((err as any).cause !== undefined && !nested)\n return isConnectionProblem((err as any).cause, true);\n return false;\n}\n\nexport function isUnauthenticated(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof UnauthenticatedError) return true;\n if ((err as any).name == \"RpcError\" && (err as any).code == \"UNAUTHENTICATED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.UNAUTHENTICATED)\n return true;\n if ((err as any).cause !== undefined && !nested)\n return isUnauthenticated((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == \"TimeoutError\") return true;\n if ((err as any).name == \"RpcError\" && (err as any).code == \"DEADLINE_EXCEEDED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.DEADLINE_EXCEEDED)\n return true;\n if ((err as any).cause !== undefined && !nested) return isTimeoutError((err as any).cause, true);\n return false;\n}\n\nexport function isCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == \"RpcError\" && (err as any).code == \"CANCELLED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.CANCELLED) return true;\n if ((err as any).cause !== undefined && !nested) return isCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isAbortedError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof Aborted || (err as any).name == \"AbortError\") return true;\n if ((err as any).code == \"ABORT_ERR\") return true;\n if (err instanceof DOMException && err.code === DOMException.ABORT_ERR) return true; // WebSocket error\n if ((err as any).name == \"RpcError\" && (err as any).code == \"ABORTED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.ABORTED) return true;\n if ((err as any).cause !== undefined && !nested) isAbortedError((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutOrCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (isAbortedError(err, true)) return true;\n if (isTimeoutError(err, true)) return true;\n if (isCancelError(err, true)) return true;\n if ((err as any).cause !== undefined && !nested)\n return isTimeoutOrCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isNotFoundError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == \"RpcError\" && (err as any).code == \"NOT_FOUND\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.NOT_FOUND) return true;\n if ((err as any).cause !== undefined && !nested) return isNotFoundError((err as any).cause, true);\n return err instanceof RecoverablePlError && err.status.code === PlErrorCodeNotFound;\n}\n\nexport const PlErrorCodeNotFound: number = Code.NOT_FOUND;\n\nexport class PlError extends Error {\n name = \"PlError\";\n constructor(\n public readonly status: Status,\n opts?: ErrorOptions,\n ) {\n super(`code=${status.code} ${status.message}`, opts);\n }\n}\n\nexport function throwPlNotFoundError(message: string): never {\n throw new RecoverablePlError({ code: PlErrorCodeNotFound, message, details: [] });\n}\n\nexport class RecoverablePlError extends PlError {\n name = \"RecoverablePlError\";\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnrecoverablePlError extends PlError {\n name = \"UnrecoverablePlError\";\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnauthenticatedError extends Error {\n name = \"UnauthenticatedError\";\n constructor(message: string) {\n super(\"LoginFailed: \" + message);\n }\n}\n\nexport class DisconnectedError extends Error {\n name = \"DisconnectedError\";\n constructor(message: string) {\n super(\"Disconnected: \" + message);\n }\n}\n\nexport class RESTError extends PlError {\n name = \"RESTError\";\n constructor(status: Status, opts?: ErrorOptions) {\n super(status, opts);\n }\n}\n\nexport function rethrowMeaningfulError(error: any, wrapIfUnknown: boolean = false): never {\n if (isUnauthenticated(error)) {\n if (error instanceof UnauthenticatedError) throw error;\n throw new UnauthenticatedError(error.message);\n }\n if (isConnectionProblem(error)) {\n if (error instanceof DisconnectedError) throw error;\n throw new DisconnectedError(error.message);\n }\n if (isTimeoutOrCancelError(error)) throw new Aborted(error);\n if (wrapIfUnknown) {\n const message = error.message || String(error) || \"Unknown error\";\n throw new Error(message, { cause: error });\n } else throw error;\n}\n"],"names":["Code","Aborted"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Status } from '../proto-grpc/github.com/googleapis/googleapis/google/rpc/status';
1
+ import type { Status } from "../proto-grpc/github.com/googleapis/googleapis/google/rpc/status";
2
2
  export declare function isConnectionProblem(err: unknown, nested?: boolean): boolean;
3
3
  export declare function isUnauthenticated(err: unknown, nested?: boolean): boolean;
4
4
  export declare function isTimeoutError(err: unknown, nested?: boolean): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kEAAkE,CAAC;AAI/F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAQlF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAQhF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAQ7E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAO5E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAU7E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAQrF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAO9E;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAuB,CAAC;AAE1D,qBAAa,OAAQ,SAAQ,KAAK;aAEJ,MAAM,EAAE,MAAM;IAD1C,IAAI,SAAa;gBACW,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY;CAGhE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE3D;AAED,qBAAa,kBAAmB,SAAQ,OAAO;IAC7C,IAAI,SAAwB;gBAChB,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,IAAI,SAA0B;gBAClB,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,IAAI,SAA0B;gBAClB,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,IAAI,SAAuB;gBACf,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,SAAU,SAAQ,OAAO;IACpC,IAAI,SAAe;gBACP,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY;CAGhD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,GAAE,OAAe,GAAG,KAAK,CAcxF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kEAAkE,CAAC;AAI/F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CASlF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAUhF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAS7E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAO5E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAU7E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CASrF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAO9E;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAuB,CAAC;AAE1D,qBAAa,OAAQ,SAAQ,KAAK;aAGd,MAAM,EAAE,MAAM;IAFhC,IAAI,SAAa;gBAEC,MAAM,EAAE,MAAM,EAC9B,IAAI,CAAC,EAAE,YAAY;CAItB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE3D;AAED,qBAAa,kBAAmB,SAAQ,OAAO;IAC7C,IAAI,SAAwB;gBAChB,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,IAAI,SAA0B;gBAClB,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,IAAI,SAA0B;gBAClB,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,IAAI,SAAuB;gBACf,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,SAAU,SAAQ,OAAO;IACpC,IAAI,SAAe;gBACP,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY;CAGhD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,GAAE,OAAe,GAAG,KAAK,CAcxF"}
@@ -6,9 +6,9 @@ function isConnectionProblem(err, nested = false) {
6
6
  return false;
7
7
  if (err instanceof DisconnectedError)
8
8
  return true;
9
- if (err.name == 'RpcError' && err.code == 'UNAVAILABLE')
9
+ if (err.name == "RpcError" && err.code == "UNAVAILABLE")
10
10
  return true;
11
- if (err.name == 'RESTError' && err.status.code == Code.UNAVAILABLE)
11
+ if (err.name == "RESTError" && err.status.code == Code.UNAVAILABLE)
12
12
  return true;
13
13
  if (err.cause !== undefined && !nested)
14
14
  return isConnectionProblem(err.cause, true);
@@ -19,9 +19,9 @@ function isUnauthenticated(err, nested = false) {
19
19
  return false;
20
20
  if (err instanceof UnauthenticatedError)
21
21
  return true;
22
- if (err.name == 'RpcError' && err.code == 'UNAUTHENTICATED')
22
+ if (err.name == "RpcError" && err.code == "UNAUTHENTICATED")
23
23
  return true;
24
- if (err.name == 'RESTError' && err.status.code == Code.UNAUTHENTICATED)
24
+ if (err.name == "RESTError" && err.status.code == Code.UNAUTHENTICATED)
25
25
  return true;
26
26
  if (err.cause !== undefined && !nested)
27
27
  return isUnauthenticated(err.cause, true);
@@ -30,11 +30,11 @@ function isUnauthenticated(err, nested = false) {
30
30
  function isTimeoutError(err, nested = false) {
31
31
  if (err === undefined || err === null)
32
32
  return false;
33
- if (err.name == 'TimeoutError')
33
+ if (err.name == "TimeoutError")
34
34
  return true;
35
- if (err.name == 'RpcError' && err.code == 'DEADLINE_EXCEEDED')
35
+ if (err.name == "RpcError" && err.code == "DEADLINE_EXCEEDED")
36
36
  return true;
37
- if (err.name == 'RESTError' && err.status.code == Code.DEADLINE_EXCEEDED)
37
+ if (err.name == "RESTError" && err.status.code == Code.DEADLINE_EXCEEDED)
38
38
  return true;
39
39
  if (err.cause !== undefined && !nested)
40
40
  return isTimeoutError(err.cause, true);
@@ -43,9 +43,9 @@ function isTimeoutError(err, nested = false) {
43
43
  function isCancelError(err, nested = false) {
44
44
  if (err === undefined || err === null)
45
45
  return false;
46
- if (err.name == 'RpcError' && err.code == 'CANCELLED')
46
+ if (err.name == "RpcError" && err.code == "CANCELLED")
47
47
  return true;
48
- if (err.name == 'RESTError' && err.status.code == Code.CANCELLED)
48
+ if (err.name == "RESTError" && err.status.code == Code.CANCELLED)
49
49
  return true;
50
50
  if (err.cause !== undefined && !nested)
51
51
  return isCancelError(err.cause, true);
@@ -54,15 +54,15 @@ function isCancelError(err, nested = false) {
54
54
  function isAbortedError(err, nested = false) {
55
55
  if (err === undefined || err === null)
56
56
  return false;
57
- if (err instanceof Aborted || err.name == 'AbortError')
57
+ if (err instanceof Aborted || err.name == "AbortError")
58
58
  return true;
59
- if (err.code == 'ABORT_ERR')
59
+ if (err.code == "ABORT_ERR")
60
60
  return true;
61
61
  if (err instanceof DOMException && err.code === DOMException.ABORT_ERR)
62
62
  return true; // WebSocket error
63
- if (err.name == 'RpcError' && err.code == 'ABORTED')
63
+ if (err.name == "RpcError" && err.code == "ABORTED")
64
64
  return true;
65
- if (err.name == 'RESTError' && err.status.code == Code.ABORTED)
65
+ if (err.name == "RESTError" && err.status.code == Code.ABORTED)
66
66
  return true;
67
67
  if (err.cause !== undefined && !nested)
68
68
  isAbortedError(err.cause, true);
@@ -84,9 +84,9 @@ function isTimeoutOrCancelError(err, nested = false) {
84
84
  function isNotFoundError(err, nested = false) {
85
85
  if (err === undefined || err === null)
86
86
  return false;
87
- if (err.name == 'RpcError' && err.code == 'NOT_FOUND')
87
+ if (err.name == "RpcError" && err.code == "NOT_FOUND")
88
88
  return true;
89
- if (err.name == 'RESTError' && err.status.code == Code.NOT_FOUND)
89
+ if (err.name == "RESTError" && err.status.code == Code.NOT_FOUND)
90
90
  return true;
91
91
  if (err.cause !== undefined && !nested)
92
92
  return isNotFoundError(err.cause, true);
@@ -95,7 +95,7 @@ function isNotFoundError(err, nested = false) {
95
95
  const PlErrorCodeNotFound = Code.NOT_FOUND;
96
96
  class PlError extends Error {
97
97
  status;
98
- name = 'PlError';
98
+ name = "PlError";
99
99
  constructor(status, opts) {
100
100
  super(`code=${status.code} ${status.message}`, opts);
101
101
  this.status = status;
@@ -105,31 +105,31 @@ function throwPlNotFoundError(message) {
105
105
  throw new RecoverablePlError({ code: PlErrorCodeNotFound, message, details: [] });
106
106
  }
107
107
  class RecoverablePlError extends PlError {
108
- name = 'RecoverablePlError';
108
+ name = "RecoverablePlError";
109
109
  constructor(status) {
110
110
  super(status);
111
111
  }
112
112
  }
113
113
  class UnrecoverablePlError extends PlError {
114
- name = 'UnrecoverablePlError';
114
+ name = "UnrecoverablePlError";
115
115
  constructor(status) {
116
116
  super(status);
117
117
  }
118
118
  }
119
119
  class UnauthenticatedError extends Error {
120
- name = 'UnauthenticatedError';
120
+ name = "UnauthenticatedError";
121
121
  constructor(message) {
122
- super('LoginFailed: ' + message);
122
+ super("LoginFailed: " + message);
123
123
  }
124
124
  }
125
125
  class DisconnectedError extends Error {
126
- name = 'DisconnectedError';
126
+ name = "DisconnectedError";
127
127
  constructor(message) {
128
- super('Disconnected: ' + message);
128
+ super("Disconnected: " + message);
129
129
  }
130
130
  }
131
131
  class RESTError extends PlError {
132
- name = 'RESTError';
132
+ name = "RESTError";
133
133
  constructor(status, opts) {
134
134
  super(status, opts);
135
135
  }
@@ -148,7 +148,7 @@ function rethrowMeaningfulError(error, wrapIfUnknown = false) {
148
148
  if (isTimeoutOrCancelError(error))
149
149
  throw new Aborted(error);
150
150
  if (wrapIfUnknown) {
151
- const message = error.message || String(error) || 'Unknown error';
151
+ const message = error.message || String(error) || "Unknown error";
152
152
  throw new Error(message, { cause: error });
153
153
  }
154
154
  else
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sources":["../../src/core/errors.ts"],"sourcesContent":["import type { Status } from '../proto-grpc/github.com/googleapis/googleapis/google/rpc/status';\nimport { Aborted } from '@milaboratories/ts-helpers';\nimport { Code } from '../proto-grpc/google/rpc/code';\n\nexport function isConnectionProblem(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof DisconnectedError) return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'UNAVAILABLE') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.UNAVAILABLE) return true;\n if ((err as any).cause !== undefined && !nested) return isConnectionProblem((err as any).cause, true);\n return false;\n}\n\nexport function isUnauthenticated(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof UnauthenticatedError) return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'UNAUTHENTICATED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.UNAUTHENTICATED) return true;\n if ((err as any).cause !== undefined && !nested) return isUnauthenticated((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == 'TimeoutError') return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'DEADLINE_EXCEEDED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.DEADLINE_EXCEEDED) return true;\n if ((err as any).cause !== undefined && !nested) return isTimeoutError((err as any).cause, true);\n return false;\n}\n\nexport function isCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == 'RpcError' && (err as any).code == 'CANCELLED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.CANCELLED) return true;\n if ((err as any).cause !== undefined && !nested) return isCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isAbortedError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof Aborted || (err as any).name == 'AbortError') return true;\n if ((err as any).code == 'ABORT_ERR') return true;\n if (err instanceof DOMException && err.code === DOMException.ABORT_ERR) return true; // WebSocket error\n if ((err as any).name == 'RpcError' && (err as any).code == 'ABORTED') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.ABORTED) return true;\n if ((err as any).cause !== undefined && !nested) isAbortedError((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutOrCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (isAbortedError(err, true)) return true;\n if (isTimeoutError(err, true)) return true;\n if (isCancelError(err, true)) return true;\n if ((err as any).cause !== undefined && !nested) return isTimeoutOrCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isNotFoundError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == 'RpcError' && (err as any).code == 'NOT_FOUND') return true;\n if ((err as any).name == 'RESTError' && (err as any).status.code == Code.NOT_FOUND) return true;\n if ((err as any).cause !== undefined && !nested) return isNotFoundError((err as any).cause, true);\n return err instanceof RecoverablePlError && err.status.code === PlErrorCodeNotFound;\n}\n\nexport const PlErrorCodeNotFound: number = Code.NOT_FOUND;\n\nexport class PlError extends Error {\n name = 'PlError';\n constructor(public readonly status: Status, opts?: ErrorOptions) {\n super(`code=${status.code} ${status.message}`, opts);\n }\n}\n\nexport function throwPlNotFoundError(message: string): never {\n throw new RecoverablePlError({ code: PlErrorCodeNotFound, message, details: [] });\n}\n\nexport class RecoverablePlError extends PlError {\n name = 'RecoverablePlError';\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnrecoverablePlError extends PlError {\n name = 'UnrecoverablePlError';\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnauthenticatedError extends Error {\n name = 'UnauthenticatedError';\n constructor(message: string) {\n super('LoginFailed: ' + message);\n }\n}\n\nexport class DisconnectedError extends Error {\n name = 'DisconnectedError';\n constructor(message: string) {\n super('Disconnected: ' + message);\n }\n}\n\nexport class RESTError extends PlError {\n name = 'RESTError';\n constructor(status: Status, opts?: ErrorOptions) {\n super(status, opts);\n }\n}\n\nexport function rethrowMeaningfulError(error: any, wrapIfUnknown: boolean = false): never {\n if (isUnauthenticated(error)) {\n if (error instanceof UnauthenticatedError) throw error;\n throw new UnauthenticatedError(error.message);\n }\n if (isConnectionProblem(error)) {\n if (error instanceof DisconnectedError) throw error;\n throw new DisconnectedError(error.message);\n }\n if (isTimeoutOrCancelError(error)) throw new Aborted(error);\n if (wrapIfUnknown) {\n const message = error.message || String(error) || 'Unknown error';\n throw new Error(message, { cause: error });\n } else throw error;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sources":["../../src/core/errors.ts"],"sourcesContent":["import type { Status } from \"../proto-grpc/github.com/googleapis/googleapis/google/rpc/status\";\nimport { Aborted } from \"@milaboratories/ts-helpers\";\nimport { Code } from \"../proto-grpc/google/rpc/code\";\n\nexport function isConnectionProblem(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof DisconnectedError) return true;\n if ((err as any).name == \"RpcError\" && (err as any).code == \"UNAVAILABLE\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.UNAVAILABLE) return true;\n if ((err as any).cause !== undefined && !nested)\n return isConnectionProblem((err as any).cause, true);\n return false;\n}\n\nexport function isUnauthenticated(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof UnauthenticatedError) return true;\n if ((err as any).name == \"RpcError\" && (err as any).code == \"UNAUTHENTICATED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.UNAUTHENTICATED)\n return true;\n if ((err as any).cause !== undefined && !nested)\n return isUnauthenticated((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == \"TimeoutError\") return true;\n if ((err as any).name == \"RpcError\" && (err as any).code == \"DEADLINE_EXCEEDED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.DEADLINE_EXCEEDED)\n return true;\n if ((err as any).cause !== undefined && !nested) return isTimeoutError((err as any).cause, true);\n return false;\n}\n\nexport function isCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == \"RpcError\" && (err as any).code == \"CANCELLED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.CANCELLED) return true;\n if ((err as any).cause !== undefined && !nested) return isCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isAbortedError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (err instanceof Aborted || (err as any).name == \"AbortError\") return true;\n if ((err as any).code == \"ABORT_ERR\") return true;\n if (err instanceof DOMException && err.code === DOMException.ABORT_ERR) return true; // WebSocket error\n if ((err as any).name == \"RpcError\" && (err as any).code == \"ABORTED\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.ABORTED) return true;\n if ((err as any).cause !== undefined && !nested) isAbortedError((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutOrCancelError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if (isAbortedError(err, true)) return true;\n if (isTimeoutError(err, true)) return true;\n if (isCancelError(err, true)) return true;\n if ((err as any).cause !== undefined && !nested)\n return isTimeoutOrCancelError((err as any).cause, true);\n return false;\n}\n\nexport function isNotFoundError(err: unknown, nested: boolean = false): boolean {\n if (err === undefined || err === null) return false;\n\n if ((err as any).name == \"RpcError\" && (err as any).code == \"NOT_FOUND\") return true;\n if ((err as any).name == \"RESTError\" && (err as any).status.code == Code.NOT_FOUND) return true;\n if ((err as any).cause !== undefined && !nested) return isNotFoundError((err as any).cause, true);\n return err instanceof RecoverablePlError && err.status.code === PlErrorCodeNotFound;\n}\n\nexport const PlErrorCodeNotFound: number = Code.NOT_FOUND;\n\nexport class PlError extends Error {\n name = \"PlError\";\n constructor(\n public readonly status: Status,\n opts?: ErrorOptions,\n ) {\n super(`code=${status.code} ${status.message}`, opts);\n }\n}\n\nexport function throwPlNotFoundError(message: string): never {\n throw new RecoverablePlError({ code: PlErrorCodeNotFound, message, details: [] });\n}\n\nexport class RecoverablePlError extends PlError {\n name = \"RecoverablePlError\";\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnrecoverablePlError extends PlError {\n name = \"UnrecoverablePlError\";\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnauthenticatedError extends Error {\n name = \"UnauthenticatedError\";\n constructor(message: string) {\n super(\"LoginFailed: \" + message);\n }\n}\n\nexport class DisconnectedError extends Error {\n name = \"DisconnectedError\";\n constructor(message: string) {\n super(\"Disconnected: \" + message);\n }\n}\n\nexport class RESTError extends PlError {\n name = \"RESTError\";\n constructor(status: Status, opts?: ErrorOptions) {\n super(status, opts);\n }\n}\n\nexport function rethrowMeaningfulError(error: any, wrapIfUnknown: boolean = false): never {\n if (isUnauthenticated(error)) {\n if (error instanceof UnauthenticatedError) throw error;\n throw new UnauthenticatedError(error.message);\n }\n if (isConnectionProblem(error)) {\n if (error instanceof DisconnectedError) throw error;\n throw new DisconnectedError(error.message);\n }\n if (isTimeoutOrCancelError(error)) throw new Aborted(error);\n if (wrapIfUnknown) {\n const message = error.message || String(error) || \"Unknown error\";\n throw new Error(message, { cause: error });\n } else throw error;\n}\n"],"names":[],"mappings":"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"}
@@ -22,72 +22,72 @@ const unknownResourceTypeNames = new Set();
22
22
  /** Default implementation, defining behaviour for built-in resource types. */
23
23
  const DefaultFinalResourceDataPredicate = (r) => {
24
24
  switch (r.type.name) {
25
- case 'StreamManager': {
25
+ case "StreamManager": {
26
26
  if (!readyOrDuplicateOrError(r))
27
27
  return false;
28
28
  if (r.fields === undefined)
29
29
  return true; // if fields are not provided basic resource state is not expected to change in the future
30
30
  if (types.isNotNullResourceId(r.error))
31
31
  return true;
32
- const downloadable = types.getField(r, 'downloadable');
33
- const stream = types.getField(r, 'stream');
32
+ const downloadable = types.getField(r, "downloadable");
33
+ const stream = types.getField(r, "stream");
34
34
  return stream.value === downloadable.value;
35
35
  }
36
- case 'StdMap':
37
- case 'std/map':
38
- case 'EphStdMap':
39
- case 'PFrame':
40
- case 'ParquetChunk':
41
- case 'BContext':
42
- case 'BlockPackCustom':
43
- case 'BinaryMap':
44
- case 'BinaryValue':
45
- case 'BlobMap':
46
- case 'BResolveSingle':
47
- case 'BResolveSingleNoResult':
48
- case 'BQueryResult':
49
- case 'TengoTemplate':
50
- case 'TengoLib':
51
- case 'SoftwareInfo':
52
- case 'Dummy':
36
+ case "StdMap":
37
+ case "std/map":
38
+ case "EphStdMap":
39
+ case "PFrame":
40
+ case "ParquetChunk":
41
+ case "BContext":
42
+ case "BlockPackCustom":
43
+ case "BinaryMap":
44
+ case "BinaryValue":
45
+ case "BlobMap":
46
+ case "BResolveSingle":
47
+ case "BResolveSingleNoResult":
48
+ case "BQueryResult":
49
+ case "TengoTemplate":
50
+ case "TengoLib":
51
+ case "SoftwareInfo":
52
+ case "Dummy":
53
53
  return readyOrDuplicateOrError(r);
54
- case 'json/resourceError':
55
- return r.type.version === '1';
56
- case 'json/object':
57
- case 'json-gz/object':
58
- case 'json/string':
59
- case 'json/array':
60
- case 'json/number':
61
- case 'BContextEnd':
62
- case 'Frontend/FromUrl':
63
- case 'Frontend/FromFolder':
64
- case 'BObjectSpec':
65
- case 'Blob':
66
- case 'Null':
67
- case 'binary':
68
- case 'LSProvider':
54
+ case "json/resourceError":
55
+ return r.type.version === "1";
56
+ case "json/object":
57
+ case "json-gz/object":
58
+ case "json/string":
59
+ case "json/array":
60
+ case "json/number":
61
+ case "BContextEnd":
62
+ case "Frontend/FromUrl":
63
+ case "Frontend/FromFolder":
64
+ case "BObjectSpec":
65
+ case "Blob":
66
+ case "Null":
67
+ case "binary":
68
+ case "LSProvider":
69
69
  return true;
70
- case 'UserProject':
71
- case 'Projects':
72
- case 'ClientRoot':
70
+ case "UserProject":
71
+ case "Projects":
72
+ case "ClientRoot":
73
73
  return false;
74
74
  default:
75
- if (r.type.name.startsWith('Blob/'))
75
+ if (r.type.name.startsWith("Blob/"))
76
76
  return true;
77
- else if (r.type.name.startsWith('BlobUpload/') || r.type.name.startsWith('BlobIndex/')) {
77
+ else if (r.type.name.startsWith("BlobUpload/") || r.type.name.startsWith("BlobIndex/")) {
78
78
  return readyAndHasAllOutputsFilled(r);
79
79
  }
80
- else if (r.type.name.startsWith('PColumnData/')) {
80
+ else if (r.type.name.startsWith("PColumnData/")) {
81
81
  return readyOrDuplicateOrError(r);
82
82
  }
83
- else if (r.type.name.startsWith('StreamWorkdir/')) {
83
+ else if (r.type.name.startsWith("StreamWorkdir/")) {
84
84
  return readyOrDuplicateOrError(r);
85
85
  }
86
86
  else {
87
87
  // Unknown resource type detected
88
88
  // Set used to log this message only once
89
89
  if (!unknownResourceTypeNames.has(r.type.name)) {
90
- console.log('UNKNOWN RESOURCE TYPE: ' + r.type.name);
90
+ console.log("UNKNOWN RESOURCE TYPE: " + r.type.name);
91
91
  unknownResourceTypeNames.add(r.type.name);
92
92
  }
93
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"final.cjs","sources":["../../src/core/final.ts"],"sourcesContent":["import type { Optional } from 'utility-types';\nimport type {\n BasicResourceData,\n ResourceData,\n} from './types';\nimport {\n getField,\n isNotNullResourceId,\n isNullResourceId,\n} from './types';\n\n/**\n * Function is used to guide multiple layers of caching in pl-client and derived pl-tree.\n *\n * This function defines expected resource-specific state mutation behaviour,\n * if it returns true, system will expect that this data will never change as long as resource exist.\n *\n * If resource data contain information about fields, if should be taken into account, fields are undefined,\n * \"final\" state should be calculated for \"basic\" part of resource data only.\n */\nexport type FinalResourceDataPredicate = (\n resourceData: Optional<ResourceData, 'fields'>\n) => boolean;\n\nfunction readyOrDuplicateOrError(r: ResourceData | BasicResourceData): boolean {\n return (\n r.resourceReady || isNotNullResourceId(r.originalResourceId) || isNotNullResourceId(r.error)\n );\n}\n\nfunction readyAndHasAllOutputsFilled(r: Optional<ResourceData, 'fields'>): boolean {\n if (!readyOrDuplicateOrError(r)) return false;\n if (!r.outputsLocked) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n for (const f of r.fields)\n if (isNullResourceId(f.error) && (isNullResourceId(f.value) || !f.valueIsFinal)) return false;\n return true;\n}\n\n// solely for logging\nconst unknownResourceTypeNames = new Set<string>();\n\n/** Default implementation, defining behaviour for built-in resource types. */\nexport const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate = (r): boolean => {\n switch (r.type.name) {\n case 'StreamManager': {\n if (!readyOrDuplicateOrError(r)) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n if (isNotNullResourceId(r.error)) return true;\n const downloadable = getField(r as ResourceData, 'downloadable');\n const stream = getField(r as ResourceData, 'stream');\n return stream.value === downloadable.value;\n }\n case 'StdMap':\n case 'std/map':\n case 'EphStdMap':\n case 'PFrame':\n case 'ParquetChunk':\n case 'BContext':\n case 'BlockPackCustom':\n case 'BinaryMap':\n case 'BinaryValue':\n case 'BlobMap':\n case 'BResolveSingle':\n case 'BResolveSingleNoResult':\n case 'BQueryResult':\n case 'TengoTemplate':\n case 'TengoLib':\n case 'SoftwareInfo':\n case 'Dummy':\n return readyOrDuplicateOrError(r);\n case 'json/resourceError':\n return r.type.version === '1';\n case 'json/object':\n case 'json-gz/object':\n case 'json/string':\n case 'json/array':\n case 'json/number':\n case 'BContextEnd':\n case 'Frontend/FromUrl':\n case 'Frontend/FromFolder':\n case 'BObjectSpec':\n case 'Blob':\n case 'Null':\n case 'binary':\n case 'LSProvider':\n return true;\n case 'UserProject':\n case 'Projects':\n case 'ClientRoot':\n return false;\n default:\n if (r.type.name.startsWith('Blob/')) return true;\n else if (r.type.name.startsWith('BlobUpload/') || r.type.name.startsWith('BlobIndex/')) {\n return readyAndHasAllOutputsFilled(r);\n } else if (r.type.name.startsWith('PColumnData/')) {\n return readyOrDuplicateOrError(r);\n } else if (r.type.name.startsWith('StreamWorkdir/')) {\n return readyOrDuplicateOrError(r);\n } else {\n // Unknown resource type detected\n // Set used to log this message only once\n if (!unknownResourceTypeNames.has(r.type.name)) {\n console.log('UNKNOWN RESOURCE TYPE: ' + r.type.name);\n unknownResourceTypeNames.add(r.type.name);\n }\n }\n }\n return false;\n};\n"],"names":["isNotNullResourceId","isNullResourceId","getField"],"mappings":"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"}
1
+ {"version":3,"file":"final.cjs","sources":["../../src/core/final.ts"],"sourcesContent":["import type { Optional } from \"utility-types\";\nimport type { BasicResourceData, ResourceData } from \"./types\";\nimport { getField, isNotNullResourceId, isNullResourceId } from \"./types\";\n\n/**\n * Function is used to guide multiple layers of caching in pl-client and derived pl-tree.\n *\n * This function defines expected resource-specific state mutation behaviour,\n * if it returns true, system will expect that this data will never change as long as resource exist.\n *\n * If resource data contain information about fields, if should be taken into account, fields are undefined,\n * \"final\" state should be calculated for \"basic\" part of resource data only.\n */\nexport type FinalResourceDataPredicate = (\n resourceData: Optional<ResourceData, \"fields\">,\n) => boolean;\n\nfunction readyOrDuplicateOrError(r: ResourceData | BasicResourceData): boolean {\n return (\n r.resourceReady || isNotNullResourceId(r.originalResourceId) || isNotNullResourceId(r.error)\n );\n}\n\nfunction readyAndHasAllOutputsFilled(r: Optional<ResourceData, \"fields\">): boolean {\n if (!readyOrDuplicateOrError(r)) return false;\n if (!r.outputsLocked) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n for (const f of r.fields)\n if (isNullResourceId(f.error) && (isNullResourceId(f.value) || !f.valueIsFinal)) return false;\n return true;\n}\n\n// solely for logging\nconst unknownResourceTypeNames = new Set<string>();\n\n/** Default implementation, defining behaviour for built-in resource types. */\nexport const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate = (r): boolean => {\n switch (r.type.name) {\n case \"StreamManager\": {\n if (!readyOrDuplicateOrError(r)) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n if (isNotNullResourceId(r.error)) return true;\n const downloadable = getField(r as ResourceData, \"downloadable\");\n const stream = getField(r as ResourceData, \"stream\");\n return stream.value === downloadable.value;\n }\n case \"StdMap\":\n case \"std/map\":\n case \"EphStdMap\":\n case \"PFrame\":\n case \"ParquetChunk\":\n case \"BContext\":\n case \"BlockPackCustom\":\n case \"BinaryMap\":\n case \"BinaryValue\":\n case \"BlobMap\":\n case \"BResolveSingle\":\n case \"BResolveSingleNoResult\":\n case \"BQueryResult\":\n case \"TengoTemplate\":\n case \"TengoLib\":\n case \"SoftwareInfo\":\n case \"Dummy\":\n return readyOrDuplicateOrError(r);\n case \"json/resourceError\":\n return r.type.version === \"1\";\n case \"json/object\":\n case \"json-gz/object\":\n case \"json/string\":\n case \"json/array\":\n case \"json/number\":\n case \"BContextEnd\":\n case \"Frontend/FromUrl\":\n case \"Frontend/FromFolder\":\n case \"BObjectSpec\":\n case \"Blob\":\n case \"Null\":\n case \"binary\":\n case \"LSProvider\":\n return true;\n case \"UserProject\":\n case \"Projects\":\n case \"ClientRoot\":\n return false;\n default:\n if (r.type.name.startsWith(\"Blob/\")) return true;\n else if (r.type.name.startsWith(\"BlobUpload/\") || r.type.name.startsWith(\"BlobIndex/\")) {\n return readyAndHasAllOutputsFilled(r);\n } else if (r.type.name.startsWith(\"PColumnData/\")) {\n return readyOrDuplicateOrError(r);\n } else if (r.type.name.startsWith(\"StreamWorkdir/\")) {\n return readyOrDuplicateOrError(r);\n } else {\n // Unknown resource type detected\n // Set used to log this message only once\n if (!unknownResourceTypeNames.has(r.type.name)) {\n console.log(\"UNKNOWN RESOURCE TYPE: \" + r.type.name);\n unknownResourceTypeNames.add(r.type.name);\n }\n }\n }\n return false;\n};\n"],"names":["isNotNullResourceId","isNullResourceId","getField"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Optional } from 'utility-types';
2
- import type { ResourceData } from './types';
1
+ import type { Optional } from "utility-types";
2
+ import type { ResourceData } from "./types";
3
3
  /**
4
4
  * Function is used to guide multiple layers of caching in pl-client and derived pl-tree.
5
5
  *
@@ -9,7 +9,7 @@ import type { ResourceData } from './types';
9
9
  * If resource data contain information about fields, if should be taken into account, fields are undefined,
10
10
  * "final" state should be calculated for "basic" part of resource data only.
11
11
  */
12
- export type FinalResourceDataPredicate = (resourceData: Optional<ResourceData, 'fields'>) => boolean;
12
+ export type FinalResourceDataPredicate = (resourceData: Optional<ResourceData, "fields">) => boolean;
13
13
  /** Default implementation, defining behaviour for built-in resource types. */
14
14
  export declare const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate;
15
15
  //# sourceMappingURL=final.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"final.d.ts","sourceRoot":"","sources":["../../src/core/final.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,SAAS,CAAC;AAOjB;;;;;;;;GAQG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACvC,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,KAC3C,OAAO,CAAC;AAoBb,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,EAAE,0BAkE/C,CAAC"}
1
+ {"version":3,"file":"final.d.ts","sourceRoot":"","sources":["../../src/core/final.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D;;;;;;;;GAQG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACvC,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,KAC3C,OAAO,CAAC;AAoBb,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,EAAE,0BAkE/C,CAAC"}
@@ -20,72 +20,72 @@ const unknownResourceTypeNames = new Set();
20
20
  /** Default implementation, defining behaviour for built-in resource types. */
21
21
  const DefaultFinalResourceDataPredicate = (r) => {
22
22
  switch (r.type.name) {
23
- case 'StreamManager': {
23
+ case "StreamManager": {
24
24
  if (!readyOrDuplicateOrError(r))
25
25
  return false;
26
26
  if (r.fields === undefined)
27
27
  return true; // if fields are not provided basic resource state is not expected to change in the future
28
28
  if (isNotNullResourceId(r.error))
29
29
  return true;
30
- const downloadable = getField(r, 'downloadable');
31
- const stream = getField(r, 'stream');
30
+ const downloadable = getField(r, "downloadable");
31
+ const stream = getField(r, "stream");
32
32
  return stream.value === downloadable.value;
33
33
  }
34
- case 'StdMap':
35
- case 'std/map':
36
- case 'EphStdMap':
37
- case 'PFrame':
38
- case 'ParquetChunk':
39
- case 'BContext':
40
- case 'BlockPackCustom':
41
- case 'BinaryMap':
42
- case 'BinaryValue':
43
- case 'BlobMap':
44
- case 'BResolveSingle':
45
- case 'BResolveSingleNoResult':
46
- case 'BQueryResult':
47
- case 'TengoTemplate':
48
- case 'TengoLib':
49
- case 'SoftwareInfo':
50
- case 'Dummy':
34
+ case "StdMap":
35
+ case "std/map":
36
+ case "EphStdMap":
37
+ case "PFrame":
38
+ case "ParquetChunk":
39
+ case "BContext":
40
+ case "BlockPackCustom":
41
+ case "BinaryMap":
42
+ case "BinaryValue":
43
+ case "BlobMap":
44
+ case "BResolveSingle":
45
+ case "BResolveSingleNoResult":
46
+ case "BQueryResult":
47
+ case "TengoTemplate":
48
+ case "TengoLib":
49
+ case "SoftwareInfo":
50
+ case "Dummy":
51
51
  return readyOrDuplicateOrError(r);
52
- case 'json/resourceError':
53
- return r.type.version === '1';
54
- case 'json/object':
55
- case 'json-gz/object':
56
- case 'json/string':
57
- case 'json/array':
58
- case 'json/number':
59
- case 'BContextEnd':
60
- case 'Frontend/FromUrl':
61
- case 'Frontend/FromFolder':
62
- case 'BObjectSpec':
63
- case 'Blob':
64
- case 'Null':
65
- case 'binary':
66
- case 'LSProvider':
52
+ case "json/resourceError":
53
+ return r.type.version === "1";
54
+ case "json/object":
55
+ case "json-gz/object":
56
+ case "json/string":
57
+ case "json/array":
58
+ case "json/number":
59
+ case "BContextEnd":
60
+ case "Frontend/FromUrl":
61
+ case "Frontend/FromFolder":
62
+ case "BObjectSpec":
63
+ case "Blob":
64
+ case "Null":
65
+ case "binary":
66
+ case "LSProvider":
67
67
  return true;
68
- case 'UserProject':
69
- case 'Projects':
70
- case 'ClientRoot':
68
+ case "UserProject":
69
+ case "Projects":
70
+ case "ClientRoot":
71
71
  return false;
72
72
  default:
73
- if (r.type.name.startsWith('Blob/'))
73
+ if (r.type.name.startsWith("Blob/"))
74
74
  return true;
75
- else if (r.type.name.startsWith('BlobUpload/') || r.type.name.startsWith('BlobIndex/')) {
75
+ else if (r.type.name.startsWith("BlobUpload/") || r.type.name.startsWith("BlobIndex/")) {
76
76
  return readyAndHasAllOutputsFilled(r);
77
77
  }
78
- else if (r.type.name.startsWith('PColumnData/')) {
78
+ else if (r.type.name.startsWith("PColumnData/")) {
79
79
  return readyOrDuplicateOrError(r);
80
80
  }
81
- else if (r.type.name.startsWith('StreamWorkdir/')) {
81
+ else if (r.type.name.startsWith("StreamWorkdir/")) {
82
82
  return readyOrDuplicateOrError(r);
83
83
  }
84
84
  else {
85
85
  // Unknown resource type detected
86
86
  // Set used to log this message only once
87
87
  if (!unknownResourceTypeNames.has(r.type.name)) {
88
- console.log('UNKNOWN RESOURCE TYPE: ' + r.type.name);
88
+ console.log("UNKNOWN RESOURCE TYPE: " + r.type.name);
89
89
  unknownResourceTypeNames.add(r.type.name);
90
90
  }
91
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"final.js","sources":["../../src/core/final.ts"],"sourcesContent":["import type { Optional } from 'utility-types';\nimport type {\n BasicResourceData,\n ResourceData,\n} from './types';\nimport {\n getField,\n isNotNullResourceId,\n isNullResourceId,\n} from './types';\n\n/**\n * Function is used to guide multiple layers of caching in pl-client and derived pl-tree.\n *\n * This function defines expected resource-specific state mutation behaviour,\n * if it returns true, system will expect that this data will never change as long as resource exist.\n *\n * If resource data contain information about fields, if should be taken into account, fields are undefined,\n * \"final\" state should be calculated for \"basic\" part of resource data only.\n */\nexport type FinalResourceDataPredicate = (\n resourceData: Optional<ResourceData, 'fields'>\n) => boolean;\n\nfunction readyOrDuplicateOrError(r: ResourceData | BasicResourceData): boolean {\n return (\n r.resourceReady || isNotNullResourceId(r.originalResourceId) || isNotNullResourceId(r.error)\n );\n}\n\nfunction readyAndHasAllOutputsFilled(r: Optional<ResourceData, 'fields'>): boolean {\n if (!readyOrDuplicateOrError(r)) return false;\n if (!r.outputsLocked) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n for (const f of r.fields)\n if (isNullResourceId(f.error) && (isNullResourceId(f.value) || !f.valueIsFinal)) return false;\n return true;\n}\n\n// solely for logging\nconst unknownResourceTypeNames = new Set<string>();\n\n/** Default implementation, defining behaviour for built-in resource types. */\nexport const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate = (r): boolean => {\n switch (r.type.name) {\n case 'StreamManager': {\n if (!readyOrDuplicateOrError(r)) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n if (isNotNullResourceId(r.error)) return true;\n const downloadable = getField(r as ResourceData, 'downloadable');\n const stream = getField(r as ResourceData, 'stream');\n return stream.value === downloadable.value;\n }\n case 'StdMap':\n case 'std/map':\n case 'EphStdMap':\n case 'PFrame':\n case 'ParquetChunk':\n case 'BContext':\n case 'BlockPackCustom':\n case 'BinaryMap':\n case 'BinaryValue':\n case 'BlobMap':\n case 'BResolveSingle':\n case 'BResolveSingleNoResult':\n case 'BQueryResult':\n case 'TengoTemplate':\n case 'TengoLib':\n case 'SoftwareInfo':\n case 'Dummy':\n return readyOrDuplicateOrError(r);\n case 'json/resourceError':\n return r.type.version === '1';\n case 'json/object':\n case 'json-gz/object':\n case 'json/string':\n case 'json/array':\n case 'json/number':\n case 'BContextEnd':\n case 'Frontend/FromUrl':\n case 'Frontend/FromFolder':\n case 'BObjectSpec':\n case 'Blob':\n case 'Null':\n case 'binary':\n case 'LSProvider':\n return true;\n case 'UserProject':\n case 'Projects':\n case 'ClientRoot':\n return false;\n default:\n if (r.type.name.startsWith('Blob/')) return true;\n else if (r.type.name.startsWith('BlobUpload/') || r.type.name.startsWith('BlobIndex/')) {\n return readyAndHasAllOutputsFilled(r);\n } else if (r.type.name.startsWith('PColumnData/')) {\n return readyOrDuplicateOrError(r);\n } else if (r.type.name.startsWith('StreamWorkdir/')) {\n return readyOrDuplicateOrError(r);\n } else {\n // Unknown resource type detected\n // Set used to log this message only once\n if (!unknownResourceTypeNames.has(r.type.name)) {\n console.log('UNKNOWN RESOURCE TYPE: ' + r.type.name);\n unknownResourceTypeNames.add(r.type.name);\n }\n }\n }\n return false;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"final.js","sources":["../../src/core/final.ts"],"sourcesContent":["import type { Optional } from \"utility-types\";\nimport type { BasicResourceData, ResourceData } from \"./types\";\nimport { getField, isNotNullResourceId, isNullResourceId } from \"./types\";\n\n/**\n * Function is used to guide multiple layers of caching in pl-client and derived pl-tree.\n *\n * This function defines expected resource-specific state mutation behaviour,\n * if it returns true, system will expect that this data will never change as long as resource exist.\n *\n * If resource data contain information about fields, if should be taken into account, fields are undefined,\n * \"final\" state should be calculated for \"basic\" part of resource data only.\n */\nexport type FinalResourceDataPredicate = (\n resourceData: Optional<ResourceData, \"fields\">,\n) => boolean;\n\nfunction readyOrDuplicateOrError(r: ResourceData | BasicResourceData): boolean {\n return (\n r.resourceReady || isNotNullResourceId(r.originalResourceId) || isNotNullResourceId(r.error)\n );\n}\n\nfunction readyAndHasAllOutputsFilled(r: Optional<ResourceData, \"fields\">): boolean {\n if (!readyOrDuplicateOrError(r)) return false;\n if (!r.outputsLocked) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n for (const f of r.fields)\n if (isNullResourceId(f.error) && (isNullResourceId(f.value) || !f.valueIsFinal)) return false;\n return true;\n}\n\n// solely for logging\nconst unknownResourceTypeNames = new Set<string>();\n\n/** Default implementation, defining behaviour for built-in resource types. */\nexport const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate = (r): boolean => {\n switch (r.type.name) {\n case \"StreamManager\": {\n if (!readyOrDuplicateOrError(r)) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n if (isNotNullResourceId(r.error)) return true;\n const downloadable = getField(r as ResourceData, \"downloadable\");\n const stream = getField(r as ResourceData, \"stream\");\n return stream.value === downloadable.value;\n }\n case \"StdMap\":\n case \"std/map\":\n case \"EphStdMap\":\n case \"PFrame\":\n case \"ParquetChunk\":\n case \"BContext\":\n case \"BlockPackCustom\":\n case \"BinaryMap\":\n case \"BinaryValue\":\n case \"BlobMap\":\n case \"BResolveSingle\":\n case \"BResolveSingleNoResult\":\n case \"BQueryResult\":\n case \"TengoTemplate\":\n case \"TengoLib\":\n case \"SoftwareInfo\":\n case \"Dummy\":\n return readyOrDuplicateOrError(r);\n case \"json/resourceError\":\n return r.type.version === \"1\";\n case \"json/object\":\n case \"json-gz/object\":\n case \"json/string\":\n case \"json/array\":\n case \"json/number\":\n case \"BContextEnd\":\n case \"Frontend/FromUrl\":\n case \"Frontend/FromFolder\":\n case \"BObjectSpec\":\n case \"Blob\":\n case \"Null\":\n case \"binary\":\n case \"LSProvider\":\n return true;\n case \"UserProject\":\n case \"Projects\":\n case \"ClientRoot\":\n return false;\n default:\n if (r.type.name.startsWith(\"Blob/\")) return true;\n else if (r.type.name.startsWith(\"BlobUpload/\") || r.type.name.startsWith(\"BlobIndex/\")) {\n return readyAndHasAllOutputsFilled(r);\n } else if (r.type.name.startsWith(\"PColumnData/\")) {\n return readyOrDuplicateOrError(r);\n } else if (r.type.name.startsWith(\"StreamWorkdir/\")) {\n return readyOrDuplicateOrError(r);\n } else {\n // Unknown resource type detected\n // Set used to log this message only once\n if (!unknownResourceTypeNames.has(r.type.name)) {\n console.log(\"UNKNOWN RESOURCE TYPE: \" + r.type.name);\n unknownResourceTypeNames.add(r.type.name);\n }\n }\n }\n return false;\n};\n"],"names":[],"mappings":"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"}