@milaboratories/pl-client 2.17.7 → 2.17.9
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.
- package/dist/_virtual/_rolldown/runtime.cjs +43 -0
- package/dist/_virtual/_rolldown/runtime.js +18 -0
- package/dist/core/PromiseTracker.cjs +33 -33
- package/dist/core/PromiseTracker.cjs.map +1 -1
- package/dist/core/PromiseTracker.d.ts +10 -7
- package/dist/core/PromiseTracker.js +33 -31
- package/dist/core/PromiseTracker.js.map +1 -1
- package/dist/core/StatefulPromise.cjs +60 -61
- package/dist/core/StatefulPromise.cjs.map +1 -1
- package/dist/core/StatefulPromise.js +60 -60
- package/dist/core/StatefulPromise.js.map +1 -1
- package/dist/core/abstract_stream.d.ts +18 -15
- package/dist/core/advisory_locks.cjs +42 -49
- package/dist/core/advisory_locks.cjs.map +1 -1
- package/dist/core/advisory_locks.js +42 -48
- package/dist/core/advisory_locks.js.map +1 -1
- package/dist/core/auth.cjs +10 -15
- package/dist/core/auth.cjs.map +1 -1
- package/dist/core/auth.d.ts +7 -3
- package/dist/core/auth.js +10 -13
- package/dist/core/auth.js.map +1 -1
- package/dist/core/cache.d.ts +11 -7
- package/dist/core/client.cjs +255 -306
- package/dist/core/client.cjs.map +1 -1
- package/dist/core/client.d.ts +72 -68
- package/dist/core/client.js +253 -285
- package/dist/core/client.js.map +1 -1
- package/dist/core/config.cjs +81 -99
- package/dist/core/config.cjs.map +1 -1
- package/dist/core/config.d.ts +93 -90
- package/dist/core/config.js +81 -98
- package/dist/core/config.js.map +1 -1
- package/dist/core/default_client.cjs +84 -125
- package/dist/core/default_client.cjs.map +1 -1
- package/dist/core/default_client.d.ts +9 -6
- package/dist/core/default_client.js +78 -103
- package/dist/core/default_client.js.map +1 -1
- package/dist/core/driver.cjs +12 -16
- package/dist/core/driver.cjs.map +1 -1
- package/dist/core/driver.d.ts +18 -14
- package/dist/core/driver.js +12 -15
- package/dist/core/driver.js.map +1 -1
- package/dist/core/error_resource.cjs +5 -4
- package/dist/core/error_resource.cjs.map +1 -1
- package/dist/core/error_resource.js +5 -3
- package/dist/core/error_resource.js.map +1 -1
- package/dist/core/errors.cjs +104 -140
- package/dist/core/errors.cjs.map +1 -1
- package/dist/core/errors.d.ts +34 -30
- package/dist/core/errors.js +102 -137
- package/dist/core/errors.js.map +1 -1
- package/dist/core/final.cjs +63 -89
- package/dist/core/final.cjs.map +1 -1
- package/dist/core/final.d.ts +8 -4
- package/dist/core/final.js +63 -87
- package/dist/core/final.js.map +1 -1
- package/dist/core/ll_client.cjs +416 -521
- package/dist/core/ll_client.cjs.map +1 -1
- package/dist/core/ll_client.d.ts +100 -97
- package/dist/core/ll_client.js +415 -519
- package/dist/core/ll_client.js.map +1 -1
- package/dist/core/ll_transaction.cjs +206 -240
- package/dist/core/ll_transaction.cjs.map +1 -1
- package/dist/core/ll_transaction.d.ts +50 -52
- package/dist/core/ll_transaction.js +205 -238
- package/dist/core/ll_transaction.js.map +1 -1
- package/dist/core/stat.cjs +64 -63
- package/dist/core/stat.cjs.map +1 -1
- package/dist/core/stat.d.ts +35 -36
- package/dist/core/stat.js +64 -62
- package/dist/core/stat.js.map +1 -1
- package/dist/core/transaction.cjs +613 -650
- package/dist/core/transaction.cjs.map +1 -1
- package/dist/core/transaction.d.ts +165 -162
- package/dist/core/transaction.js +612 -648
- package/dist/core/transaction.js.map +1 -1
- package/dist/core/type_conversion.cjs +62 -83
- package/dist/core/type_conversion.cjs.map +1 -1
- package/dist/core/type_conversion.js +61 -81
- package/dist/core/type_conversion.js.map +1 -1
- package/dist/core/types.cjs +56 -86
- package/dist/core/types.cjs.map +1 -1
- package/dist/core/types.d.ts +63 -62
- package/dist/core/types.js +54 -83
- package/dist/core/types.js.map +1 -1
- package/dist/core/unauth_client.cjs +35 -41
- package/dist/core/unauth_client.cjs.map +1 -1
- package/dist/core/unauth_client.d.ts +18 -14
- package/dist/core/unauth_client.js +34 -39
- package/dist/core/unauth_client.js.map +1 -1
- package/dist/core/websocket_stream.cjs +280 -349
- package/dist/core/websocket_stream.cjs.map +1 -1
- package/dist/core/websocket_stream.js +278 -347
- package/dist/core/websocket_stream.js.map +1 -1
- package/dist/core/wire.d.ts +21 -17
- package/dist/helpers/pl.cjs +71 -73
- package/dist/helpers/pl.cjs.map +1 -1
- package/dist/helpers/pl.d.ts +40 -41
- package/dist/helpers/pl.js +66 -46
- package/dist/helpers/pl.js.map +1 -1
- package/dist/helpers/poll.cjs +99 -134
- package/dist/helpers/poll.cjs.map +1 -1
- package/dist/helpers/poll.d.ts +37 -34
- package/dist/helpers/poll.js +97 -113
- package/dist/helpers/poll.js.map +1 -1
- package/dist/helpers/retry_strategy.cjs +82 -87
- package/dist/helpers/retry_strategy.cjs.map +1 -1
- package/dist/helpers/retry_strategy.js +83 -86
- package/dist/helpers/retry_strategy.js.map +1 -1
- package/dist/helpers/tx_helpers.cjs +21 -20
- package/dist/helpers/tx_helpers.cjs.map +1 -1
- package/dist/helpers/tx_helpers.d.ts +11 -7
- package/dist/helpers/tx_helpers.js +20 -18
- package/dist/helpers/tx_helpers.js.map +1 -1
- package/dist/index.cjs +117 -106
- package/dist/index.d.ts +17 -17
- package/dist/index.js +17 -19
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.cjs +72 -66
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.cjs.map +1 -1
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.d.ts +35 -37
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.js +71 -64
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs +12611 -12866
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs +226 -226
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts +281 -330
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js +225 -224
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts +2640 -4294
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js +12608 -12706
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs +1230 -1089
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts +393 -420
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js +1228 -1083
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs +142 -143
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts +62 -64
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js +140 -141
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs +572 -487
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts +125 -228
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js +572 -485
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js.map +1 -1
- package/dist/proto-grpc/google/protobuf/any.cjs +131 -146
- package/dist/proto-grpc/google/protobuf/any.cjs.map +1 -1
- package/dist/proto-grpc/google/protobuf/any.d.ts +78 -84
- package/dist/proto-grpc/google/protobuf/any.js +130 -144
- package/dist/proto-grpc/google/protobuf/any.js.map +1 -1
- package/dist/proto-grpc/google/protobuf/duration.cjs +92 -100
- package/dist/proto-grpc/google/protobuf/duration.cjs.map +1 -1
- package/dist/proto-grpc/google/protobuf/duration.d.ts +38 -43
- package/dist/proto-grpc/google/protobuf/duration.js +91 -98
- package/dist/proto-grpc/google/protobuf/duration.js.map +1 -1
- package/dist/proto-grpc/google/protobuf/timestamp.cjs +117 -128
- package/dist/proto-grpc/google/protobuf/timestamp.cjs.map +1 -1
- package/dist/proto-grpc/google/protobuf/timestamp.d.ts +50 -55
- package/dist/proto-grpc/google/protobuf/timestamp.js +116 -126
- package/dist/proto-grpc/google/protobuf/timestamp.js.map +1 -1
- package/dist/proto-grpc/google/rpc/code.cjs +223 -238
- package/dist/proto-grpc/google/rpc/code.cjs.map +1 -1
- package/dist/proto-grpc/google/rpc/code.d.ts +209 -206
- package/dist/proto-grpc/google/rpc/code.js +221 -237
- package/dist/proto-grpc/google/rpc/code.js.map +1 -1
- package/dist/proto-rest/index.cjs +67 -66
- package/dist/proto-rest/index.cjs.map +1 -1
- package/dist/proto-rest/index.d.ts +24 -18
- package/dist/proto-rest/index.js +61 -65
- package/dist/proto-rest/index.js.map +1 -1
- package/dist/proto-rest/plapi.d.ts +1400 -1477
- package/dist/test/tcp-proxy.cjs +100 -126
- package/dist/test/tcp-proxy.cjs.map +1 -1
- package/dist/test/tcp-proxy.d.ts +17 -13
- package/dist/test/tcp-proxy.js +97 -104
- package/dist/test/tcp-proxy.js.map +1 -1
- package/dist/test/test_config.cjs +145 -194
- package/dist/test/test_config.cjs.map +1 -1
- package/dist/test/test_config.d.ts +34 -30
- package/dist/test/test_config.js +138 -166
- package/dist/test/test_config.js.map +1 -1
- package/dist/util/pl.cjs +4 -3
- package/dist/util/pl.cjs.map +1 -1
- package/dist/util/pl.js +4 -2
- package/dist/util/pl.js.map +1 -1
- package/dist/util/util.cjs +7 -10
- package/dist/util/util.cjs.map +1 -1
- package/dist/util/util.js +7 -9
- package/dist/util/util.js.map +1 -1
- package/package.json +8 -8
- package/src/core/errors.ts +1 -1
- package/src/core/transaction.ts +123 -133
- package/src/core/websocket_stream.ts +10 -1
- 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
- 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
- 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
- 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
- package/dist/core/PromiseTracker.d.ts.map +0 -1
- package/dist/core/StatefulPromise.d.ts +0 -39
- package/dist/core/StatefulPromise.d.ts.map +0 -1
- package/dist/core/abstract_stream.d.ts.map +0 -1
- package/dist/core/advisory_locks.d.ts +0 -10
- package/dist/core/advisory_locks.d.ts.map +0 -1
- package/dist/core/auth.d.ts.map +0 -1
- package/dist/core/cache.d.ts.map +0 -1
- package/dist/core/client.d.ts.map +0 -1
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/default_client.d.ts.map +0 -1
- package/dist/core/driver.d.ts.map +0 -1
- package/dist/core/error_resource.d.ts +0 -6
- package/dist/core/error_resource.d.ts.map +0 -1
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/final.d.ts.map +0 -1
- package/dist/core/ll_client.d.ts.map +0 -1
- package/dist/core/ll_transaction.d.ts.map +0 -1
- package/dist/core/stat.d.ts.map +0 -1
- package/dist/core/transaction.d.ts.map +0 -1
- package/dist/core/type_conversion.d.ts +0 -8
- package/dist/core/type_conversion.d.ts.map +0 -1
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/unauth_client.d.ts.map +0 -1
- package/dist/core/websocket_stream.d.ts +0 -67
- package/dist/core/websocket_stream.d.ts.map +0 -1
- package/dist/core/wire.d.ts.map +0 -1
- package/dist/helpers/pl.d.ts.map +0 -1
- package/dist/helpers/poll.d.ts.map +0 -1
- package/dist/helpers/retry_strategy.d.ts +0 -24
- package/dist/helpers/retry_strategy.d.ts.map +0 -1
- package/dist/helpers/state_helpers.d.ts +0 -3
- package/dist/helpers/state_helpers.d.ts.map +0 -1
- package/dist/helpers/tx_helpers.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.d.ts.map +0 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts.map +0 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts.map +0 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts.map +0 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts.map +0 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/import.d.ts +0 -106
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/import.d.ts.map +0 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts.map +0 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/ws-test.d.ts +0 -73
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/ws-test.d.ts.map +0 -1
- package/dist/proto-grpc/google/api/http.d.ts +0 -456
- package/dist/proto-grpc/google/api/http.d.ts.map +0 -1
- package/dist/proto-grpc/google/protobuf/any.d.ts.map +0 -1
- package/dist/proto-grpc/google/protobuf/descriptor.d.ts +0 -2340
- package/dist/proto-grpc/google/protobuf/descriptor.d.ts.map +0 -1
- package/dist/proto-grpc/google/protobuf/duration.d.ts.map +0 -1
- package/dist/proto-grpc/google/protobuf/empty.d.ts +0 -32
- package/dist/proto-grpc/google/protobuf/empty.d.ts.map +0 -1
- package/dist/proto-grpc/google/protobuf/struct.d.ts +0 -187
- package/dist/proto-grpc/google/protobuf/struct.d.ts.map +0 -1
- package/dist/proto-grpc/google/protobuf/timestamp.d.ts.map +0 -1
- package/dist/proto-grpc/google/protobuf/wrappers.d.ts +0 -308
- package/dist/proto-grpc/google/protobuf/wrappers.d.ts.map +0 -1
- package/dist/proto-grpc/google/rpc/code.d.ts.map +0 -1
- package/dist/proto-grpc/google/rpc/error_details.d.ts +0 -654
- package/dist/proto-grpc/google/rpc/error_details.d.ts.map +0 -1
- package/dist/proto-grpc/google/rpc/http.d.ts +0 -121
- package/dist/proto-grpc/google/rpc/http.d.ts.map +0 -1
- package/dist/proto-grpc/google/rpc/status.d.ts +0 -55
- package/dist/proto-grpc/google/rpc/status.d.ts.map +0 -1
- package/dist/proto-rest/index.d.ts.map +0 -1
- package/dist/proto-rest/plapi.d.ts.map +0 -1
- package/dist/test/tcp-proxy.d.ts.map +0 -1
- package/dist/test/test_config.d.ts.map +0 -1
- package/dist/util/branding.d.ts +0 -7
- package/dist/util/branding.d.ts.map +0 -1
- package/dist/util/pl.d.ts +0 -9
- package/dist/util/pl.d.ts.map +0 -1
- package/dist/util/util.d.ts +0 -2
- package/dist/util/util.d.ts.map +0 -1
package/dist/core/errors.js
CHANGED
|
@@ -1,159 +1,124 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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) return isAbortedError(err.cause, true);
|
|
44
|
+
return false;
|
|
70
45
|
}
|
|
71
46
|
function isTimeoutOrCancelError(err, nested = false) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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
|
package/dist/core/errors.js.map
CHANGED
|
@@ -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":"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"}
|
|
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) return 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":"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"}
|
package/dist/core/final.cjs
CHANGED
|
@@ -1,99 +1,73 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
5
|
+
return r.resourceReady || require_types.isNotNullResourceId(r.originalResourceId) || require_types.isNotNullResourceId(r.error);
|
|
7
6
|
}
|
|
8
7
|
function readyAndHasAllOutputsFilled(r) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
package/dist/core/final.cjs.map
CHANGED
|
@@ -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"],"
|
|
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"}
|
package/dist/core/final.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
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
|
-
|
|
14
|
+
type FinalResourceDataPredicate = (resourceData: Optional<ResourceData, "fields">) => boolean;
|
|
13
15
|
/** Default implementation, defining behaviour for built-in resource types. */
|
|
14
|
-
|
|
16
|
+
declare const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { DefaultFinalResourceDataPredicate, FinalResourceDataPredicate };
|
|
15
19
|
//# sourceMappingURL=final.d.ts.map
|