@milaboratories/pl-client 2.17.7 → 2.17.8

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 (274) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +43 -0
  2. package/dist/_virtual/_rolldown/runtime.js +18 -0
  3. package/dist/core/PromiseTracker.cjs +33 -33
  4. package/dist/core/PromiseTracker.cjs.map +1 -1
  5. package/dist/core/PromiseTracker.d.ts +10 -7
  6. package/dist/core/PromiseTracker.js +33 -31
  7. package/dist/core/PromiseTracker.js.map +1 -1
  8. package/dist/core/StatefulPromise.cjs +60 -61
  9. package/dist/core/StatefulPromise.cjs.map +1 -1
  10. package/dist/core/StatefulPromise.js +60 -60
  11. package/dist/core/StatefulPromise.js.map +1 -1
  12. package/dist/core/abstract_stream.d.ts +18 -15
  13. package/dist/core/advisory_locks.cjs +42 -49
  14. package/dist/core/advisory_locks.cjs.map +1 -1
  15. package/dist/core/advisory_locks.js +42 -48
  16. package/dist/core/advisory_locks.js.map +1 -1
  17. package/dist/core/auth.cjs +10 -15
  18. package/dist/core/auth.cjs.map +1 -1
  19. package/dist/core/auth.d.ts +7 -3
  20. package/dist/core/auth.js +10 -13
  21. package/dist/core/auth.js.map +1 -1
  22. package/dist/core/cache.d.ts +11 -7
  23. package/dist/core/client.cjs +255 -306
  24. package/dist/core/client.cjs.map +1 -1
  25. package/dist/core/client.d.ts +72 -68
  26. package/dist/core/client.js +253 -285
  27. package/dist/core/client.js.map +1 -1
  28. package/dist/core/config.cjs +81 -99
  29. package/dist/core/config.cjs.map +1 -1
  30. package/dist/core/config.d.ts +93 -90
  31. package/dist/core/config.js +81 -98
  32. package/dist/core/config.js.map +1 -1
  33. package/dist/core/default_client.cjs +84 -125
  34. package/dist/core/default_client.cjs.map +1 -1
  35. package/dist/core/default_client.d.ts +9 -6
  36. package/dist/core/default_client.js +78 -103
  37. package/dist/core/default_client.js.map +1 -1
  38. package/dist/core/driver.cjs +12 -16
  39. package/dist/core/driver.cjs.map +1 -1
  40. package/dist/core/driver.d.ts +18 -14
  41. package/dist/core/driver.js +12 -15
  42. package/dist/core/driver.js.map +1 -1
  43. package/dist/core/error_resource.cjs +5 -4
  44. package/dist/core/error_resource.cjs.map +1 -1
  45. package/dist/core/error_resource.js +5 -3
  46. package/dist/core/error_resource.js.map +1 -1
  47. package/dist/core/errors.cjs +104 -140
  48. package/dist/core/errors.cjs.map +1 -1
  49. package/dist/core/errors.d.ts +34 -30
  50. package/dist/core/errors.js +102 -137
  51. package/dist/core/errors.js.map +1 -1
  52. package/dist/core/final.cjs +63 -89
  53. package/dist/core/final.cjs.map +1 -1
  54. package/dist/core/final.d.ts +8 -4
  55. package/dist/core/final.js +63 -87
  56. package/dist/core/final.js.map +1 -1
  57. package/dist/core/ll_client.cjs +416 -521
  58. package/dist/core/ll_client.cjs.map +1 -1
  59. package/dist/core/ll_client.d.ts +100 -97
  60. package/dist/core/ll_client.js +415 -519
  61. package/dist/core/ll_client.js.map +1 -1
  62. package/dist/core/ll_transaction.cjs +206 -240
  63. package/dist/core/ll_transaction.cjs.map +1 -1
  64. package/dist/core/ll_transaction.d.ts +50 -52
  65. package/dist/core/ll_transaction.js +205 -238
  66. package/dist/core/ll_transaction.js.map +1 -1
  67. package/dist/core/stat.cjs +64 -63
  68. package/dist/core/stat.cjs.map +1 -1
  69. package/dist/core/stat.d.ts +35 -36
  70. package/dist/core/stat.js +64 -62
  71. package/dist/core/stat.js.map +1 -1
  72. package/dist/core/transaction.cjs +613 -650
  73. package/dist/core/transaction.cjs.map +1 -1
  74. package/dist/core/transaction.d.ts +165 -162
  75. package/dist/core/transaction.js +612 -648
  76. package/dist/core/transaction.js.map +1 -1
  77. package/dist/core/type_conversion.cjs +62 -83
  78. package/dist/core/type_conversion.cjs.map +1 -1
  79. package/dist/core/type_conversion.js +61 -81
  80. package/dist/core/type_conversion.js.map +1 -1
  81. package/dist/core/types.cjs +56 -86
  82. package/dist/core/types.cjs.map +1 -1
  83. package/dist/core/types.d.ts +63 -62
  84. package/dist/core/types.js +54 -83
  85. package/dist/core/types.js.map +1 -1
  86. package/dist/core/unauth_client.cjs +35 -41
  87. package/dist/core/unauth_client.cjs.map +1 -1
  88. package/dist/core/unauth_client.d.ts +18 -14
  89. package/dist/core/unauth_client.js +34 -39
  90. package/dist/core/unauth_client.js.map +1 -1
  91. package/dist/core/websocket_stream.cjs +277 -349
  92. package/dist/core/websocket_stream.cjs.map +1 -1
  93. package/dist/core/websocket_stream.js +275 -347
  94. package/dist/core/websocket_stream.js.map +1 -1
  95. package/dist/core/wire.d.ts +21 -17
  96. package/dist/helpers/pl.cjs +71 -73
  97. package/dist/helpers/pl.cjs.map +1 -1
  98. package/dist/helpers/pl.d.ts +40 -41
  99. package/dist/helpers/pl.js +66 -46
  100. package/dist/helpers/pl.js.map +1 -1
  101. package/dist/helpers/poll.cjs +99 -134
  102. package/dist/helpers/poll.cjs.map +1 -1
  103. package/dist/helpers/poll.d.ts +37 -34
  104. package/dist/helpers/poll.js +97 -113
  105. package/dist/helpers/poll.js.map +1 -1
  106. package/dist/helpers/retry_strategy.cjs +82 -87
  107. package/dist/helpers/retry_strategy.cjs.map +1 -1
  108. package/dist/helpers/retry_strategy.js +83 -86
  109. package/dist/helpers/retry_strategy.js.map +1 -1
  110. package/dist/helpers/tx_helpers.cjs +21 -20
  111. package/dist/helpers/tx_helpers.cjs.map +1 -1
  112. package/dist/helpers/tx_helpers.d.ts +11 -7
  113. package/dist/helpers/tx_helpers.js +20 -18
  114. package/dist/helpers/tx_helpers.js.map +1 -1
  115. package/dist/index.cjs +117 -106
  116. package/dist/index.d.ts +17 -17
  117. package/dist/index.js +17 -19
  118. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.cjs +72 -66
  119. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.cjs.map +1 -1
  120. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.d.ts +35 -37
  121. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.js +71 -64
  122. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.js.map +1 -1
  123. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs +12611 -12866
  124. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs.map +1 -1
  125. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs +226 -226
  126. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs.map +1 -1
  127. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts +281 -330
  128. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js +225 -224
  129. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js.map +1 -1
  130. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts +2640 -4294
  131. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js +12608 -12706
  132. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js.map +1 -1
  133. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs +1230 -1089
  134. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs.map +1 -1
  135. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts +393 -420
  136. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js +1228 -1083
  137. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js.map +1 -1
  138. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs +142 -143
  139. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs.map +1 -1
  140. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts +62 -64
  141. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js +140 -141
  142. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js.map +1 -1
  143. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs +572 -487
  144. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs.map +1 -1
  145. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts +125 -228
  146. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js +572 -485
  147. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js.map +1 -1
  148. package/dist/proto-grpc/google/protobuf/any.cjs +131 -146
  149. package/dist/proto-grpc/google/protobuf/any.cjs.map +1 -1
  150. package/dist/proto-grpc/google/protobuf/any.d.ts +78 -84
  151. package/dist/proto-grpc/google/protobuf/any.js +130 -144
  152. package/dist/proto-grpc/google/protobuf/any.js.map +1 -1
  153. package/dist/proto-grpc/google/protobuf/duration.cjs +92 -100
  154. package/dist/proto-grpc/google/protobuf/duration.cjs.map +1 -1
  155. package/dist/proto-grpc/google/protobuf/duration.d.ts +38 -43
  156. package/dist/proto-grpc/google/protobuf/duration.js +91 -98
  157. package/dist/proto-grpc/google/protobuf/duration.js.map +1 -1
  158. package/dist/proto-grpc/google/protobuf/timestamp.cjs +117 -128
  159. package/dist/proto-grpc/google/protobuf/timestamp.cjs.map +1 -1
  160. package/dist/proto-grpc/google/protobuf/timestamp.d.ts +50 -55
  161. package/dist/proto-grpc/google/protobuf/timestamp.js +116 -126
  162. package/dist/proto-grpc/google/protobuf/timestamp.js.map +1 -1
  163. package/dist/proto-grpc/google/rpc/code.cjs +223 -238
  164. package/dist/proto-grpc/google/rpc/code.cjs.map +1 -1
  165. package/dist/proto-grpc/google/rpc/code.d.ts +209 -206
  166. package/dist/proto-grpc/google/rpc/code.js +221 -237
  167. package/dist/proto-grpc/google/rpc/code.js.map +1 -1
  168. package/dist/proto-rest/index.cjs +67 -66
  169. package/dist/proto-rest/index.cjs.map +1 -1
  170. package/dist/proto-rest/index.d.ts +24 -18
  171. package/dist/proto-rest/index.js +61 -65
  172. package/dist/proto-rest/index.js.map +1 -1
  173. package/dist/proto-rest/plapi.d.ts +1400 -1477
  174. package/dist/test/tcp-proxy.cjs +100 -126
  175. package/dist/test/tcp-proxy.cjs.map +1 -1
  176. package/dist/test/tcp-proxy.d.ts +17 -13
  177. package/dist/test/tcp-proxy.js +97 -104
  178. package/dist/test/tcp-proxy.js.map +1 -1
  179. package/dist/test/test_config.cjs +145 -194
  180. package/dist/test/test_config.cjs.map +1 -1
  181. package/dist/test/test_config.d.ts +34 -30
  182. package/dist/test/test_config.js +138 -166
  183. package/dist/test/test_config.js.map +1 -1
  184. package/dist/util/pl.cjs +4 -3
  185. package/dist/util/pl.cjs.map +1 -1
  186. package/dist/util/pl.js +4 -2
  187. package/dist/util/pl.js.map +1 -1
  188. package/dist/util/util.cjs +7 -10
  189. package/dist/util/util.cjs.map +1 -1
  190. package/dist/util/util.js +7 -9
  191. package/dist/util/util.js.map +1 -1
  192. package/package.json +8 -8
  193. package/src/core/transaction.ts +123 -133
  194. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs +0 -61
  195. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs.map +0 -1
  196. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js +0 -58
  197. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js.map +0 -1
  198. package/dist/core/PromiseTracker.d.ts.map +0 -1
  199. package/dist/core/StatefulPromise.d.ts +0 -39
  200. package/dist/core/StatefulPromise.d.ts.map +0 -1
  201. package/dist/core/abstract_stream.d.ts.map +0 -1
  202. package/dist/core/advisory_locks.d.ts +0 -10
  203. package/dist/core/advisory_locks.d.ts.map +0 -1
  204. package/dist/core/auth.d.ts.map +0 -1
  205. package/dist/core/cache.d.ts.map +0 -1
  206. package/dist/core/client.d.ts.map +0 -1
  207. package/dist/core/config.d.ts.map +0 -1
  208. package/dist/core/default_client.d.ts.map +0 -1
  209. package/dist/core/driver.d.ts.map +0 -1
  210. package/dist/core/error_resource.d.ts +0 -6
  211. package/dist/core/error_resource.d.ts.map +0 -1
  212. package/dist/core/errors.d.ts.map +0 -1
  213. package/dist/core/final.d.ts.map +0 -1
  214. package/dist/core/ll_client.d.ts.map +0 -1
  215. package/dist/core/ll_transaction.d.ts.map +0 -1
  216. package/dist/core/stat.d.ts.map +0 -1
  217. package/dist/core/transaction.d.ts.map +0 -1
  218. package/dist/core/type_conversion.d.ts +0 -8
  219. package/dist/core/type_conversion.d.ts.map +0 -1
  220. package/dist/core/types.d.ts.map +0 -1
  221. package/dist/core/unauth_client.d.ts.map +0 -1
  222. package/dist/core/websocket_stream.d.ts +0 -67
  223. package/dist/core/websocket_stream.d.ts.map +0 -1
  224. package/dist/core/wire.d.ts.map +0 -1
  225. package/dist/helpers/pl.d.ts.map +0 -1
  226. package/dist/helpers/poll.d.ts.map +0 -1
  227. package/dist/helpers/retry_strategy.d.ts +0 -24
  228. package/dist/helpers/retry_strategy.d.ts.map +0 -1
  229. package/dist/helpers/state_helpers.d.ts +0 -3
  230. package/dist/helpers/state_helpers.d.ts.map +0 -1
  231. package/dist/helpers/tx_helpers.d.ts.map +0 -1
  232. package/dist/index.cjs.map +0 -1
  233. package/dist/index.d.ts.map +0 -1
  234. package/dist/index.js.map +0 -1
  235. package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.d.ts.map +0 -1
  236. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts.map +0 -1
  237. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts.map +0 -1
  238. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts.map +0 -1
  239. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts.map +0 -1
  240. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/import.d.ts +0 -106
  241. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/import.d.ts.map +0 -1
  242. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts.map +0 -1
  243. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/ws-test.d.ts +0 -73
  244. package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/ws-test.d.ts.map +0 -1
  245. package/dist/proto-grpc/google/api/http.d.ts +0 -456
  246. package/dist/proto-grpc/google/api/http.d.ts.map +0 -1
  247. package/dist/proto-grpc/google/protobuf/any.d.ts.map +0 -1
  248. package/dist/proto-grpc/google/protobuf/descriptor.d.ts +0 -2340
  249. package/dist/proto-grpc/google/protobuf/descriptor.d.ts.map +0 -1
  250. package/dist/proto-grpc/google/protobuf/duration.d.ts.map +0 -1
  251. package/dist/proto-grpc/google/protobuf/empty.d.ts +0 -32
  252. package/dist/proto-grpc/google/protobuf/empty.d.ts.map +0 -1
  253. package/dist/proto-grpc/google/protobuf/struct.d.ts +0 -187
  254. package/dist/proto-grpc/google/protobuf/struct.d.ts.map +0 -1
  255. package/dist/proto-grpc/google/protobuf/timestamp.d.ts.map +0 -1
  256. package/dist/proto-grpc/google/protobuf/wrappers.d.ts +0 -308
  257. package/dist/proto-grpc/google/protobuf/wrappers.d.ts.map +0 -1
  258. package/dist/proto-grpc/google/rpc/code.d.ts.map +0 -1
  259. package/dist/proto-grpc/google/rpc/error_details.d.ts +0 -654
  260. package/dist/proto-grpc/google/rpc/error_details.d.ts.map +0 -1
  261. package/dist/proto-grpc/google/rpc/http.d.ts +0 -121
  262. package/dist/proto-grpc/google/rpc/http.d.ts.map +0 -1
  263. package/dist/proto-grpc/google/rpc/status.d.ts +0 -55
  264. package/dist/proto-grpc/google/rpc/status.d.ts.map +0 -1
  265. package/dist/proto-rest/index.d.ts.map +0 -1
  266. package/dist/proto-rest/plapi.d.ts.map +0 -1
  267. package/dist/test/tcp-proxy.d.ts.map +0 -1
  268. package/dist/test/test_config.d.ts.map +0 -1
  269. package/dist/util/branding.d.ts +0 -7
  270. package/dist/util/branding.d.ts.map +0 -1
  271. package/dist/util/pl.d.ts +0 -9
  272. package/dist/util/pl.d.ts.map +0 -1
  273. package/dist/util/util.d.ts +0 -2
  274. package/dist/util/util.d.ts.map +0 -1
@@ -1,159 +1,124 @@
1
- import { Aborted } from '@milaboratories/ts-helpers';
2
- import { Code } from '../proto-grpc/google/rpc/code.js';
1
+ import { Code } from "../proto-grpc/google/rpc/code.js";
2
+ import { Aborted } from "@milaboratories/ts-helpers";
3
3
 
4
+ //#region src/core/errors.ts
4
5
  function isConnectionProblem(err, nested = false) {
5
- if (err === undefined || err === null)
6
- return false;
7
- if (err instanceof DisconnectedError)
8
- return true;
9
- if (err.name == "RpcError" && err.code == "UNAVAILABLE")
10
- return true;
11
- if (err.name == "RESTError" && err.status.code == Code.UNAVAILABLE)
12
- return true;
13
- if (err.cause !== undefined && !nested)
14
- return isConnectionProblem(err.cause, true);
15
- return false;
6
+ if (err === void 0 || err === null) return false;
7
+ if (err instanceof DisconnectedError) return true;
8
+ if (err.name == "RpcError" && err.code == "UNAVAILABLE") return true;
9
+ if (err.name == "RESTError" && err.status.code == Code.UNAVAILABLE) return true;
10
+ if (err.cause !== void 0 && !nested) return isConnectionProblem(err.cause, true);
11
+ return false;
16
12
  }
17
13
  function isUnauthenticated(err, nested = false) {
18
- if (err === undefined || err === null)
19
- return false;
20
- if (err instanceof UnauthenticatedError)
21
- return true;
22
- if (err.name == "RpcError" && err.code == "UNAUTHENTICATED")
23
- return true;
24
- if (err.name == "RESTError" && err.status.code == Code.UNAUTHENTICATED)
25
- return true;
26
- if (err.cause !== undefined && !nested)
27
- return isUnauthenticated(err.cause, true);
28
- return false;
14
+ if (err === void 0 || err === null) return false;
15
+ if (err instanceof UnauthenticatedError) return true;
16
+ if (err.name == "RpcError" && err.code == "UNAUTHENTICATED") return true;
17
+ if (err.name == "RESTError" && err.status.code == Code.UNAUTHENTICATED) return true;
18
+ if (err.cause !== void 0 && !nested) return isUnauthenticated(err.cause, true);
19
+ return false;
29
20
  }
30
21
  function isTimeoutError(err, nested = false) {
31
- if (err === undefined || err === null)
32
- return false;
33
- if (err.name == "TimeoutError")
34
- return true;
35
- if (err.name == "RpcError" && err.code == "DEADLINE_EXCEEDED")
36
- return true;
37
- if (err.name == "RESTError" && err.status.code == Code.DEADLINE_EXCEEDED)
38
- return true;
39
- if (err.cause !== undefined && !nested)
40
- return isTimeoutError(err.cause, true);
41
- return false;
22
+ if (err === void 0 || err === null) return false;
23
+ if (err.name == "TimeoutError") return true;
24
+ if (err.name == "RpcError" && err.code == "DEADLINE_EXCEEDED") return true;
25
+ if (err.name == "RESTError" && err.status.code == Code.DEADLINE_EXCEEDED) return true;
26
+ if (err.cause !== void 0 && !nested) return isTimeoutError(err.cause, true);
27
+ return false;
42
28
  }
43
29
  function isCancelError(err, nested = false) {
44
- if (err === undefined || err === null)
45
- return false;
46
- if (err.name == "RpcError" && err.code == "CANCELLED")
47
- return true;
48
- if (err.name == "RESTError" && err.status.code == Code.CANCELLED)
49
- return true;
50
- if (err.cause !== undefined && !nested)
51
- return isCancelError(err.cause, true);
52
- return false;
30
+ if (err === void 0 || err === null) return false;
31
+ if (err.name == "RpcError" && err.code == "CANCELLED") return true;
32
+ if (err.name == "RESTError" && err.status.code == Code.CANCELLED) return true;
33
+ if (err.cause !== void 0 && !nested) return isCancelError(err.cause, true);
34
+ return false;
53
35
  }
54
36
  function isAbortedError(err, nested = false) {
55
- if (err === undefined || err === null)
56
- return false;
57
- if (err instanceof Aborted || err.name == "AbortError")
58
- return true;
59
- if (err.code == "ABORT_ERR")
60
- return true;
61
- if (err instanceof DOMException && err.code === DOMException.ABORT_ERR)
62
- return true; // WebSocket error
63
- if (err.name == "RpcError" && err.code == "ABORTED")
64
- return true;
65
- if (err.name == "RESTError" && err.status.code == Code.ABORTED)
66
- return true;
67
- if (err.cause !== undefined && !nested)
68
- isAbortedError(err.cause, true);
69
- return false;
37
+ if (err === void 0 || err === null) return false;
38
+ if (err instanceof Aborted || err.name == "AbortError") return true;
39
+ if (err.code == "ABORT_ERR") return true;
40
+ if (err instanceof DOMException && err.code === DOMException.ABORT_ERR) return true;
41
+ if (err.name == "RpcError" && err.code == "ABORTED") return true;
42
+ if (err.name == "RESTError" && err.status.code == Code.ABORTED) return true;
43
+ if (err.cause !== void 0 && !nested) isAbortedError(err.cause, true);
44
+ return false;
70
45
  }
71
46
  function isTimeoutOrCancelError(err, nested = false) {
72
- if (err === undefined || err === null)
73
- return false;
74
- if (isAbortedError(err, true))
75
- return true;
76
- if (isTimeoutError(err, true))
77
- return true;
78
- if (isCancelError(err, true))
79
- return true;
80
- if (err.cause !== undefined && !nested)
81
- return isTimeoutOrCancelError(err.cause, true);
82
- return false;
47
+ if (err === void 0 || err === null) return false;
48
+ if (isAbortedError(err, true)) return true;
49
+ if (isTimeoutError(err, true)) return true;
50
+ if (isCancelError(err, true)) return true;
51
+ if (err.cause !== void 0 && !nested) return isTimeoutOrCancelError(err.cause, true);
52
+ return false;
83
53
  }
84
54
  function isNotFoundError(err, nested = false) {
85
- if (err === undefined || err === null)
86
- return false;
87
- if (err.name == "RpcError" && err.code == "NOT_FOUND")
88
- return true;
89
- if (err.name == "RESTError" && err.status.code == Code.NOT_FOUND)
90
- return true;
91
- if (err.cause !== undefined && !nested)
92
- return isNotFoundError(err.cause, true);
93
- return err instanceof RecoverablePlError && err.status.code === PlErrorCodeNotFound;
55
+ if (err === void 0 || err === null) return false;
56
+ if (err.name == "RpcError" && err.code == "NOT_FOUND") return true;
57
+ if (err.name == "RESTError" && err.status.code == Code.NOT_FOUND) return true;
58
+ if (err.cause !== void 0 && !nested) return isNotFoundError(err.cause, true);
59
+ return err instanceof RecoverablePlError && err.status.code === PlErrorCodeNotFound;
94
60
  }
95
61
  const PlErrorCodeNotFound = Code.NOT_FOUND;
96
- class PlError extends Error {
97
- status;
98
- name = "PlError";
99
- constructor(status, opts) {
100
- super(`code=${status.code} ${status.message}`, opts);
101
- this.status = status;
102
- }
103
- }
62
+ var PlError = class extends Error {
63
+ name = "PlError";
64
+ constructor(status, opts) {
65
+ super(`code=${status.code} ${status.message}`, opts);
66
+ this.status = status;
67
+ }
68
+ };
104
69
  function throwPlNotFoundError(message) {
105
- throw new RecoverablePlError({ code: PlErrorCodeNotFound, message, details: [] });
106
- }
107
- class RecoverablePlError extends PlError {
108
- name = "RecoverablePlError";
109
- constructor(status) {
110
- super(status);
111
- }
112
- }
113
- class UnrecoverablePlError extends PlError {
114
- name = "UnrecoverablePlError";
115
- constructor(status) {
116
- super(status);
117
- }
118
- }
119
- class UnauthenticatedError extends Error {
120
- name = "UnauthenticatedError";
121
- constructor(message) {
122
- super("LoginFailed: " + message);
123
- }
124
- }
125
- class DisconnectedError extends Error {
126
- name = "DisconnectedError";
127
- constructor(message) {
128
- super("Disconnected: " + message);
129
- }
130
- }
131
- class RESTError extends PlError {
132
- name = "RESTError";
133
- constructor(status, opts) {
134
- super(status, opts);
135
- }
70
+ throw new RecoverablePlError({
71
+ code: PlErrorCodeNotFound,
72
+ message,
73
+ details: []
74
+ });
136
75
  }
76
+ var RecoverablePlError = class extends PlError {
77
+ name = "RecoverablePlError";
78
+ constructor(status) {
79
+ super(status);
80
+ }
81
+ };
82
+ var UnrecoverablePlError = class extends PlError {
83
+ name = "UnrecoverablePlError";
84
+ constructor(status) {
85
+ super(status);
86
+ }
87
+ };
88
+ var UnauthenticatedError = class extends Error {
89
+ name = "UnauthenticatedError";
90
+ constructor(message) {
91
+ super("LoginFailed: " + message);
92
+ }
93
+ };
94
+ var DisconnectedError = class extends Error {
95
+ name = "DisconnectedError";
96
+ constructor(message) {
97
+ super("Disconnected: " + message);
98
+ }
99
+ };
100
+ var RESTError = class extends PlError {
101
+ name = "RESTError";
102
+ constructor(status, opts) {
103
+ super(status, opts);
104
+ }
105
+ };
137
106
  function rethrowMeaningfulError(error, wrapIfUnknown = false) {
138
- if (isUnauthenticated(error)) {
139
- if (error instanceof UnauthenticatedError)
140
- throw error;
141
- throw new UnauthenticatedError(error.message);
142
- }
143
- if (isConnectionProblem(error)) {
144
- if (error instanceof DisconnectedError)
145
- throw error;
146
- throw new DisconnectedError(error.message);
147
- }
148
- if (isTimeoutOrCancelError(error))
149
- throw new Aborted(error);
150
- if (wrapIfUnknown) {
151
- const message = error.message || String(error) || "Unknown error";
152
- throw new Error(message, { cause: error });
153
- }
154
- else
155
- throw error;
107
+ if (isUnauthenticated(error)) {
108
+ if (error instanceof UnauthenticatedError) throw error;
109
+ throw new UnauthenticatedError(error.message);
110
+ }
111
+ if (isConnectionProblem(error)) {
112
+ if (error instanceof DisconnectedError) throw error;
113
+ throw new DisconnectedError(error.message);
114
+ }
115
+ if (isTimeoutOrCancelError(error)) throw new Aborted(error);
116
+ if (wrapIfUnknown) {
117
+ const message = error.message || String(error) || "Unknown error";
118
+ throw new Error(message, { cause: error });
119
+ } else throw error;
156
120
  }
157
121
 
122
+ //#endregion
158
123
  export { DisconnectedError, PlError, PlErrorCodeNotFound, RESTError, RecoverablePlError, UnauthenticatedError, UnrecoverablePlError, isAbortedError, isCancelError, isConnectionProblem, isNotFoundError, isTimeoutError, isTimeoutOrCancelError, isUnauthenticated, rethrowMeaningfulError, throwPlNotFoundError };
159
- //# sourceMappingURL=errors.js.map
124
+ //# sourceMappingURL=errors.js.map
@@ -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)\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":";;;SAIgB,mBAAmB,CAAC,GAAY,EAAE,SAAkB,KAAK,EAAA;AACvE,IAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,KAAK;IAEnD,IAAI,GAAG,YAAY,iBAAiB;AAAE,QAAA,OAAO,IAAI;IACjD,IAAK,GAAW,CAAC,IAAI,IAAI,UAAU,IAAK,GAAW,CAAC,IAAI,IAAI,aAAa;AAAE,QAAA,OAAO,IAAI;AACtF,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;AAAE,QAAA,OAAO,IAAI;AACjG,IAAA,IAAK,GAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAC7C,OAAO,mBAAmB,CAAE,GAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AACtD,IAAA,OAAO,KAAK;AACd;SAEgB,iBAAiB,CAAC,GAAY,EAAE,SAAkB,KAAK,EAAA;AACrE,IAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,KAAK;IAEnD,IAAI,GAAG,YAAY,oBAAoB;AAAE,QAAA,OAAO,IAAI;IACpD,IAAK,GAAW,CAAC,IAAI,IAAI,UAAU,IAAK,GAAW,CAAC,IAAI,IAAI,iBAAiB;AAAE,QAAA,OAAO,IAAI;AAC1F,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe;AACtF,QAAA,OAAO,IAAI;AACb,IAAA,IAAK,GAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAC7C,OAAO,iBAAiB,CAAE,GAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AACpD,IAAA,OAAO,KAAK;AACd;SAEgB,cAAc,CAAC,GAAY,EAAE,SAAkB,KAAK,EAAA;AAClE,IAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,KAAK;AAEnD,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,cAAc;AAAE,QAAA,OAAO,IAAI;IACpD,IAAK,GAAW,CAAC,IAAI,IAAI,UAAU,IAAK,GAAW,CAAC,IAAI,IAAI,mBAAmB;AAAE,QAAA,OAAO,IAAI;AAC5F,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB;AACxF,QAAA,OAAO,IAAI;AACb,IAAA,IAAK,GAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,cAAc,CAAE,GAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AAChG,IAAA,OAAO,KAAK;AACd;SAEgB,aAAa,CAAC,GAAY,EAAE,SAAkB,KAAK,EAAA;AACjE,IAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,KAAK;IAEnD,IAAK,GAAW,CAAC,IAAI,IAAI,UAAU,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW;AAAE,QAAA,OAAO,IAAI;AACpF,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAC/F,IAAA,IAAK,GAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,aAAa,CAAE,GAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/F,IAAA,OAAO,KAAK;AACd;SAEgB,cAAc,CAAC,GAAY,EAAE,SAAkB,KAAK,EAAA;AAClE,IAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,KAAK;IAEnD,IAAI,GAAG,YAAY,OAAO,IAAK,GAAW,CAAC,IAAI,IAAI,YAAY;AAAE,QAAA,OAAO,IAAI;AAC5E,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW;AAAE,QAAA,OAAO,IAAI;IACjD,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACpF,IAAK,GAAW,CAAC,IAAI,IAAI,UAAU,IAAK,GAAW,CAAC,IAAI,IAAI,SAAS;AAAE,QAAA,OAAO,IAAI;AAClF,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAC7F,IAAA,IAAK,GAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;AAAE,QAAA,cAAc,CAAE,GAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AACzF,IAAA,OAAO,KAAK;AACd;SAEgB,sBAAsB,CAAC,GAAY,EAAE,SAAkB,KAAK,EAAA;AAC1E,IAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,KAAK;AAEnD,IAAA,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;AAC1C,IAAA,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;AAC1C,IAAA,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;AACzC,IAAA,IAAK,GAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAC7C,OAAO,sBAAsB,CAAE,GAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AACzD,IAAA,OAAO,KAAK;AACd;SAEgB,eAAe,CAAC,GAAY,EAAE,SAAkB,KAAK,EAAA;AACnE,IAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,KAAK;IAEnD,IAAK,GAAW,CAAC,IAAI,IAAI,UAAU,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW;AAAE,QAAA,OAAO,IAAI;AACpF,IAAA,IAAK,GAAW,CAAC,IAAI,IAAI,WAAW,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAC/F,IAAA,IAAK,GAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,eAAe,CAAE,GAAW,CAAC,KAAK,EAAE,IAAI,CAAC;IACjG,OAAO,GAAG,YAAY,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,mBAAmB;AACrF;AAEO,MAAM,mBAAmB,GAAW,IAAI,CAAC;AAE1C,MAAO,OAAQ,SAAQ,KAAK,CAAA;AAGd,IAAA,MAAA;IAFlB,IAAI,GAAG,SAAS;IAChB,WAAA,CACkB,MAAc,EAC9B,IAAmB,EAAA;AAEnB,QAAA,KAAK,CAAC,CAAA,KAAA,EAAQ,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,MAAM,CAAC,OAAO,CAAA,CAAE,EAAE,IAAI,CAAC;QAHpC,IAAA,CAAA,MAAM,GAAN,MAAM;IAIxB;AACD;AAEK,SAAU,oBAAoB,CAAC,OAAe,EAAA;AAClD,IAAA,MAAM,IAAI,kBAAkB,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACnF;AAEM,MAAO,kBAAmB,SAAQ,OAAO,CAAA;IAC7C,IAAI,GAAG,oBAAoB;AAC3B,IAAA,WAAA,CAAY,MAAc,EAAA;QACxB,KAAK,CAAC,MAAM,CAAC;IACf;AACD;AAEK,MAAO,oBAAqB,SAAQ,OAAO,CAAA;IAC/C,IAAI,GAAG,sBAAsB;AAC7B,IAAA,WAAA,CAAY,MAAc,EAAA;QACxB,KAAK,CAAC,MAAM,CAAC;IACf;AACD;AAEK,MAAO,oBAAqB,SAAQ,KAAK,CAAA;IAC7C,IAAI,GAAG,sBAAsB;AAC7B,IAAA,WAAA,CAAY,OAAe,EAAA;AACzB,QAAA,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;IAClC;AACD;AAEK,MAAO,iBAAkB,SAAQ,KAAK,CAAA;IAC1C,IAAI,GAAG,mBAAmB;AAC1B,IAAA,WAAA,CAAY,OAAe,EAAA;AACzB,QAAA,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC;IACnC;AACD;AAEK,MAAO,SAAU,SAAQ,OAAO,CAAA;IACpC,IAAI,GAAG,WAAW;IAClB,WAAA,CAAY,MAAc,EAAE,IAAmB,EAAA;AAC7C,QAAA,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;IACrB;AACD;SAEe,sBAAsB,CAAC,KAAU,EAAE,gBAAyB,KAAK,EAAA;AAC/E,IAAA,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;QAC5B,IAAI,KAAK,YAAY,oBAAoB;AAAE,YAAA,MAAM,KAAK;AACtD,QAAA,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC;IAC/C;AACA,IAAA,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC9B,IAAI,KAAK,YAAY,iBAAiB;AAAE,YAAA,MAAM,KAAK;AACnD,QAAA,MAAM,IAAI,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5C;IACA,IAAI,sBAAsB,CAAC,KAAK,CAAC;AAAE,QAAA,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAC3D,IAAI,aAAa,EAAE;AACjB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,eAAe;QACjE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5C;;AAAO,QAAA,MAAM,KAAK;AACpB;;;;"}
1
+ {"version":3,"file":"errors.js","names":[],"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"],"mappings":";;;;AAIA,SAAgB,oBAAoB,KAAc,SAAkB,OAAgB;AAClF,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO;AAE9C,KAAI,eAAe,kBAAmB,QAAO;AAC7C,KAAK,IAAY,QAAQ,cAAe,IAAY,QAAQ,cAAe,QAAO;AAClF,KAAK,IAAY,QAAQ,eAAgB,IAAY,OAAO,QAAQ,KAAK,YAAa,QAAO;AAC7F,KAAK,IAAY,UAAU,UAAa,CAAC,OACvC,QAAO,oBAAqB,IAAY,OAAO,KAAK;AACtD,QAAO;;AAGT,SAAgB,kBAAkB,KAAc,SAAkB,OAAgB;AAChF,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO;AAE9C,KAAI,eAAe,qBAAsB,QAAO;AAChD,KAAK,IAAY,QAAQ,cAAe,IAAY,QAAQ,kBAAmB,QAAO;AACtF,KAAK,IAAY,QAAQ,eAAgB,IAAY,OAAO,QAAQ,KAAK,gBACvE,QAAO;AACT,KAAK,IAAY,UAAU,UAAa,CAAC,OACvC,QAAO,kBAAmB,IAAY,OAAO,KAAK;AACpD,QAAO;;AAGT,SAAgB,eAAe,KAAc,SAAkB,OAAgB;AAC7E,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO;AAE9C,KAAK,IAAY,QAAQ,eAAgB,QAAO;AAChD,KAAK,IAAY,QAAQ,cAAe,IAAY,QAAQ,oBAAqB,QAAO;AACxF,KAAK,IAAY,QAAQ,eAAgB,IAAY,OAAO,QAAQ,KAAK,kBACvE,QAAO;AACT,KAAK,IAAY,UAAU,UAAa,CAAC,OAAQ,QAAO,eAAgB,IAAY,OAAO,KAAK;AAChG,QAAO;;AAGT,SAAgB,cAAc,KAAc,SAAkB,OAAgB;AAC5E,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO;AAE9C,KAAK,IAAY,QAAQ,cAAe,IAAY,QAAQ,YAAa,QAAO;AAChF,KAAK,IAAY,QAAQ,eAAgB,IAAY,OAAO,QAAQ,KAAK,UAAW,QAAO;AAC3F,KAAK,IAAY,UAAU,UAAa,CAAC,OAAQ,QAAO,cAAe,IAAY,OAAO,KAAK;AAC/F,QAAO;;AAGT,SAAgB,eAAe,KAAc,SAAkB,OAAgB;AAC7E,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO;AAE9C,KAAI,eAAe,WAAY,IAAY,QAAQ,aAAc,QAAO;AACxE,KAAK,IAAY,QAAQ,YAAa,QAAO;AAC7C,KAAI,eAAe,gBAAgB,IAAI,SAAS,aAAa,UAAW,QAAO;AAC/E,KAAK,IAAY,QAAQ,cAAe,IAAY,QAAQ,UAAW,QAAO;AAC9E,KAAK,IAAY,QAAQ,eAAgB,IAAY,OAAO,QAAQ,KAAK,QAAS,QAAO;AACzF,KAAK,IAAY,UAAU,UAAa,CAAC,OAAQ,gBAAgB,IAAY,OAAO,KAAK;AACzF,QAAO;;AAGT,SAAgB,uBAAuB,KAAc,SAAkB,OAAgB;AACrF,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO;AAE9C,KAAI,eAAe,KAAK,KAAK,CAAE,QAAO;AACtC,KAAI,eAAe,KAAK,KAAK,CAAE,QAAO;AACtC,KAAI,cAAc,KAAK,KAAK,CAAE,QAAO;AACrC,KAAK,IAAY,UAAU,UAAa,CAAC,OACvC,QAAO,uBAAwB,IAAY,OAAO,KAAK;AACzD,QAAO;;AAGT,SAAgB,gBAAgB,KAAc,SAAkB,OAAgB;AAC9E,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO;AAE9C,KAAK,IAAY,QAAQ,cAAe,IAAY,QAAQ,YAAa,QAAO;AAChF,KAAK,IAAY,QAAQ,eAAgB,IAAY,OAAO,QAAQ,KAAK,UAAW,QAAO;AAC3F,KAAK,IAAY,UAAU,UAAa,CAAC,OAAQ,QAAO,gBAAiB,IAAY,OAAO,KAAK;AACjG,QAAO,eAAe,sBAAsB,IAAI,OAAO,SAAS;;AAGlE,MAAa,sBAA8B,KAAK;AAEhD,IAAa,UAAb,cAA6B,MAAM;CACjC,OAAO;CACP,YACE,AAAgB,QAChB,MACA;AACA,QAAM,QAAQ,OAAO,KAAK,GAAG,OAAO,WAAW,KAAK;EAHpC;;;AAOpB,SAAgB,qBAAqB,SAAwB;AAC3D,OAAM,IAAI,mBAAmB;EAAE,MAAM;EAAqB;EAAS,SAAS,EAAE;EAAE,CAAC;;AAGnF,IAAa,qBAAb,cAAwC,QAAQ;CAC9C,OAAO;CACP,YAAY,QAAgB;AAC1B,QAAM,OAAO;;;AAIjB,IAAa,uBAAb,cAA0C,QAAQ;CAChD,OAAO;CACP,YAAY,QAAgB;AAC1B,QAAM,OAAO;;;AAIjB,IAAa,uBAAb,cAA0C,MAAM;CAC9C,OAAO;CACP,YAAY,SAAiB;AAC3B,QAAM,kBAAkB,QAAQ;;;AAIpC,IAAa,oBAAb,cAAuC,MAAM;CAC3C,OAAO;CACP,YAAY,SAAiB;AAC3B,QAAM,mBAAmB,QAAQ;;;AAIrC,IAAa,YAAb,cAA+B,QAAQ;CACrC,OAAO;CACP,YAAY,QAAgB,MAAqB;AAC/C,QAAM,QAAQ,KAAK;;;AAIvB,SAAgB,uBAAuB,OAAY,gBAAyB,OAAc;AACxF,KAAI,kBAAkB,MAAM,EAAE;AAC5B,MAAI,iBAAiB,qBAAsB,OAAM;AACjD,QAAM,IAAI,qBAAqB,MAAM,QAAQ;;AAE/C,KAAI,oBAAoB,MAAM,EAAE;AAC9B,MAAI,iBAAiB,kBAAmB,OAAM;AAC9C,QAAM,IAAI,kBAAkB,MAAM,QAAQ;;AAE5C,KAAI,uBAAuB,MAAM,CAAE,OAAM,IAAI,QAAQ,MAAM;AAC3D,KAAI,eAAe;EACjB,MAAM,UAAU,MAAM,WAAW,OAAO,MAAM,IAAI;AAClD,QAAM,IAAI,MAAM,SAAS,EAAE,OAAO,OAAO,CAAC;OACrC,OAAM"}
@@ -1,99 +1,73 @@
1
- 'use strict';
2
-
3
- var types = require('./types.cjs');
1
+ const require_types = require('./types.cjs');
4
2
 
3
+ //#region src/core/final.ts
5
4
  function readyOrDuplicateOrError(r) {
6
- return (r.resourceReady || types.isNotNullResourceId(r.originalResourceId) || types.isNotNullResourceId(r.error));
5
+ return r.resourceReady || require_types.isNotNullResourceId(r.originalResourceId) || require_types.isNotNullResourceId(r.error);
7
6
  }
8
7
  function readyAndHasAllOutputsFilled(r) {
9
- if (!readyOrDuplicateOrError(r))
10
- return false;
11
- if (!r.outputsLocked)
12
- return false;
13
- if (r.fields === undefined)
14
- return true; // if fields are not provided basic resource state is not expected to change in the future
15
- for (const f of r.fields)
16
- if (types.isNullResourceId(f.error) && (types.isNullResourceId(f.value) || !f.valueIsFinal))
17
- return false;
18
- return true;
8
+ if (!readyOrDuplicateOrError(r)) return false;
9
+ if (!r.outputsLocked) return false;
10
+ if (r.fields === void 0) return true;
11
+ for (const f of r.fields) if (require_types.isNullResourceId(f.error) && (require_types.isNullResourceId(f.value) || !f.valueIsFinal)) return false;
12
+ return true;
19
13
  }
20
- // solely for logging
21
- const unknownResourceTypeNames = new Set();
14
+ const unknownResourceTypeNames = /* @__PURE__ */ new Set();
22
15
  /** Default implementation, defining behaviour for built-in resource types. */
23
16
  const DefaultFinalResourceDataPredicate = (r) => {
24
- switch (r.type.name) {
25
- case "StreamManager": {
26
- if (!readyOrDuplicateOrError(r))
27
- return false;
28
- if (r.fields === undefined)
29
- return true; // if fields are not provided basic resource state is not expected to change in the future
30
- if (types.isNotNullResourceId(r.error))
31
- return true;
32
- const downloadable = types.getField(r, "downloadable");
33
- const stream = types.getField(r, "stream");
34
- return stream.value === downloadable.value;
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":
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":
69
- return true;
70
- case "UserProject":
71
- case "Projects":
72
- case "ClientRoot":
73
- return false;
74
- default:
75
- if (r.type.name.startsWith("Blob/"))
76
- return true;
77
- else if (r.type.name.startsWith("BlobUpload/") || r.type.name.startsWith("BlobIndex/")) {
78
- return readyAndHasAllOutputsFilled(r);
79
- }
80
- else if (r.type.name.startsWith("PColumnData/")) {
81
- return readyOrDuplicateOrError(r);
82
- }
83
- else if (r.type.name.startsWith("StreamWorkdir/")) {
84
- return readyOrDuplicateOrError(r);
85
- }
86
- else {
87
- // Unknown resource type detected
88
- // Set used to log this message only once
89
- if (!unknownResourceTypeNames.has(r.type.name)) {
90
- console.log("UNKNOWN RESOURCE TYPE: " + r.type.name);
91
- unknownResourceTypeNames.add(r.type.name);
92
- }
93
- }
94
- }
95
- return false;
17
+ switch (r.type.name) {
18
+ case "StreamManager": {
19
+ if (!readyOrDuplicateOrError(r)) return false;
20
+ if (r.fields === void 0) return true;
21
+ if (require_types.isNotNullResourceId(r.error)) return true;
22
+ const downloadable = require_types.getField(r, "downloadable");
23
+ return require_types.getField(r, "stream").value === downloadable.value;
24
+ }
25
+ case "StdMap":
26
+ case "std/map":
27
+ case "EphStdMap":
28
+ case "PFrame":
29
+ case "ParquetChunk":
30
+ case "BContext":
31
+ case "BlockPackCustom":
32
+ case "BinaryMap":
33
+ case "BinaryValue":
34
+ case "BlobMap":
35
+ case "BResolveSingle":
36
+ case "BResolveSingleNoResult":
37
+ case "BQueryResult":
38
+ case "TengoTemplate":
39
+ case "TengoLib":
40
+ case "SoftwareInfo":
41
+ case "Dummy": return readyOrDuplicateOrError(r);
42
+ case "json/resourceError": return r.type.version === "1";
43
+ case "json/object":
44
+ case "json-gz/object":
45
+ case "json/string":
46
+ case "json/array":
47
+ case "json/number":
48
+ case "BContextEnd":
49
+ case "Frontend/FromUrl":
50
+ case "Frontend/FromFolder":
51
+ case "BObjectSpec":
52
+ case "Blob":
53
+ case "Null":
54
+ case "binary":
55
+ case "LSProvider": return true;
56
+ case "UserProject":
57
+ case "Projects":
58
+ case "ClientRoot": return false;
59
+ default: if (r.type.name.startsWith("Blob/")) return true;
60
+ else if (r.type.name.startsWith("BlobUpload/") || r.type.name.startsWith("BlobIndex/")) return readyAndHasAllOutputsFilled(r);
61
+ else if (r.type.name.startsWith("PColumnData/")) return readyOrDuplicateOrError(r);
62
+ else if (r.type.name.startsWith("StreamWorkdir/")) return readyOrDuplicateOrError(r);
63
+ else if (!unknownResourceTypeNames.has(r.type.name)) {
64
+ console.log("UNKNOWN RESOURCE TYPE: " + r.type.name);
65
+ unknownResourceTypeNames.add(r.type.name);
66
+ }
67
+ }
68
+ return false;
96
69
  };
97
70
 
71
+ //#endregion
98
72
  exports.DefaultFinalResourceDataPredicate = DefaultFinalResourceDataPredicate;
99
- //# sourceMappingURL=final.cjs.map
73
+ //# sourceMappingURL=final.cjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"final.cjs","names":["isNotNullResourceId","isNullResourceId","getField"],"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"],"mappings":";;;AAiBA,SAAS,wBAAwB,GAA8C;AAC7E,QACE,EAAE,iBAAiBA,kCAAoB,EAAE,mBAAmB,IAAIA,kCAAoB,EAAE,MAAM;;AAIhG,SAAS,4BAA4B,GAA8C;AACjF,KAAI,CAAC,wBAAwB,EAAE,CAAE,QAAO;AACxC,KAAI,CAAC,EAAE,cAAe,QAAO;AAC7B,KAAI,EAAE,WAAW,OAAW,QAAO;AACnC,MAAK,MAAM,KAAK,EAAE,OAChB,KAAIC,+BAAiB,EAAE,MAAM,KAAKA,+BAAiB,EAAE,MAAM,IAAI,CAAC,EAAE,cAAe,QAAO;AAC1F,QAAO;;AAIT,MAAM,2CAA2B,IAAI,KAAa;;AAGlD,MAAa,qCAAiE,MAAe;AAC3F,SAAQ,EAAE,KAAK,MAAf;EACE,KAAK,iBAAiB;AACpB,OAAI,CAAC,wBAAwB,EAAE,CAAE,QAAO;AACxC,OAAI,EAAE,WAAW,OAAW,QAAO;AACnC,OAAID,kCAAoB,EAAE,MAAM,CAAE,QAAO;GACzC,MAAM,eAAeE,uBAAS,GAAmB,eAAe;AAEhE,UADeA,uBAAS,GAAmB,SAAS,CACtC,UAAU,aAAa;;EAEvC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,QACH,QAAO,wBAAwB,EAAE;EACnC,KAAK,qBACH,QAAO,EAAE,KAAK,YAAY;EAC5B,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,aACH,QAAO;EACT,KAAK;EACL,KAAK;EACL,KAAK,aACH,QAAO;EACT,QACE,KAAI,EAAE,KAAK,KAAK,WAAW,QAAQ,CAAE,QAAO;WACnC,EAAE,KAAK,KAAK,WAAW,cAAc,IAAI,EAAE,KAAK,KAAK,WAAW,aAAa,CACpF,QAAO,4BAA4B,EAAE;WAC5B,EAAE,KAAK,KAAK,WAAW,eAAe,CAC/C,QAAO,wBAAwB,EAAE;WACxB,EAAE,KAAK,KAAK,WAAW,iBAAiB,CACjD,QAAO,wBAAwB,EAAE;WAI7B,CAAC,yBAAyB,IAAI,EAAE,KAAK,KAAK,EAAE;AAC9C,WAAQ,IAAI,4BAA4B,EAAE,KAAK,KAAK;AACpD,4BAAyB,IAAI,EAAE,KAAK,KAAK;;;AAIjD,QAAO"}
@@ -1,5 +1,7 @@
1
- import type { Optional } from "utility-types";
2
- import type { ResourceData } from "./types";
1
+ import { ResourceData } from "./types.js";
2
+ import { Optional } from "utility-types";
3
+
4
+ //#region src/core/final.d.ts
3
5
  /**
4
6
  * Function is used to guide multiple layers of caching in pl-client and derived pl-tree.
5
7
  *
@@ -9,7 +11,9 @@ import type { ResourceData } from "./types";
9
11
  * If resource data contain information about fields, if should be taken into account, fields are undefined,
10
12
  * "final" state should be calculated for "basic" part of resource data only.
11
13
  */
12
- export type FinalResourceDataPredicate = (resourceData: Optional<ResourceData, "fields">) => boolean;
14
+ type FinalResourceDataPredicate = (resourceData: Optional<ResourceData, "fields">) => boolean;
13
15
  /** Default implementation, defining behaviour for built-in resource types. */
14
- export declare const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate;
16
+ declare const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate;
17
+ //#endregion
18
+ export { DefaultFinalResourceDataPredicate, FinalResourceDataPredicate };
15
19
  //# sourceMappingURL=final.d.ts.map