@tinycloud/sdk-services 3.3.0-beta.7 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BaseService-Cc6Ueicm.d.cts → BaseService-BhfKzKke.d.cts} +5 -1
- package/dist/{BaseService-DOdXd7sr.d.ts → BaseService-x4AFZiEa.d.ts} +5 -1
- package/dist/encryption/index.cjs +18 -5
- package/dist/encryption/index.cjs.map +1 -1
- package/dist/encryption/index.d.cts +2 -2
- package/dist/encryption/index.d.ts +2 -2
- package/dist/encryption/index.js +18 -5
- package/dist/encryption/index.js.map +1 -1
- package/dist/index.cjs +911 -797
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +95 -11
- package/dist/index.d.ts +95 -11
- package/dist/index.js +911 -797
- package/dist/index.js.map +1 -1
- package/dist/internal/decrypt-transport-response-error.d.cts +1 -1
- package/dist/internal/decrypt-transport-response-error.d.ts +1 -1
- package/dist/kv/index.cjs +72 -80
- package/dist/kv/index.cjs.map +1 -1
- package/dist/kv/index.d.cts +4 -5
- package/dist/kv/index.d.ts +4 -5
- package/dist/kv/index.js +72 -80
- package/dist/kv/index.js.map +1 -1
- package/dist/kv/replication/index.cjs +6 -5
- package/dist/kv/replication/index.cjs.map +1 -1
- package/dist/kv/replication/index.d.cts +3 -3
- package/dist/kv/replication/index.d.ts +3 -3
- package/dist/kv/replication/index.js +6 -5
- package/dist/kv/replication/index.js.map +1 -1
- package/dist/{scope-B-m6cKH-.d.ts → scope-BHTkk5Yk.d.ts} +13 -2
- package/dist/{scope-B7oeKdLM.d.cts → scope-DMhalRFn.d.cts} +13 -2
- package/dist/sql/index.cjs +30 -16
- package/dist/sql/index.cjs.map +1 -1
- package/dist/sql/index.d.cts +2 -2
- package/dist/sql/index.d.ts +2 -2
- package/dist/sql/index.js +30 -16
- package/dist/sql/index.js.map +1 -1
- package/dist/{types-BjH0ZtGy.d.cts → types-eVS1Whuf.d.cts} +24 -4
- package/dist/{types-BjH0ZtGy.d.ts → types-eVS1Whuf.d.ts} +24 -4
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as IService, a as IServiceContext, S as ServiceSession, b as ServiceError, R as Result } from './types-
|
|
1
|
+
import { I as IService, a as IServiceContext, S as ServiceSession, b as ServiceError, c as ServiceHeaders, F as FetchRequestInit, d as FetchResponse, R as Result } from './types-eVS1Whuf.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Base Service Types
|
|
@@ -195,6 +195,10 @@ declare abstract class BaseService implements IService {
|
|
|
195
195
|
* @returns A combined abort signal
|
|
196
196
|
*/
|
|
197
197
|
protected combineSignals(...signals: (AbortSignal | undefined)[]): AbortSignal;
|
|
198
|
+
/** POST a signed invocation with retry; `mint` re-signs per attempt, `init.headers` add to the signed ones. */
|
|
199
|
+
protected invokeWithRetry(url: string, mint: () => ServiceHeaders, { headers: extra, ...init }?: Omit<FetchRequestInit, "headers"> & {
|
|
200
|
+
headers?: Record<string, string>;
|
|
201
|
+
}): Promise<FetchResponse>;
|
|
198
202
|
/**
|
|
199
203
|
* Create the abort signal for one request, bounded by the request timeout.
|
|
200
204
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as IService, a as IServiceContext, S as ServiceSession, b as ServiceError, R as Result } from './types-
|
|
1
|
+
import { I as IService, a as IServiceContext, S as ServiceSession, b as ServiceError, c as ServiceHeaders, F as FetchRequestInit, d as FetchResponse, R as Result } from './types-eVS1Whuf.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Base Service Types
|
|
@@ -195,6 +195,10 @@ declare abstract class BaseService implements IService {
|
|
|
195
195
|
* @returns A combined abort signal
|
|
196
196
|
*/
|
|
197
197
|
protected combineSignals(...signals: (AbortSignal | undefined)[]): AbortSignal;
|
|
198
|
+
/** POST a signed invocation with retry; `mint` re-signs per attempt, `init.headers` add to the signed ones. */
|
|
199
|
+
protected invokeWithRetry(url: string, mint: () => ServiceHeaders, { headers: extra, ...init }?: Omit<FetchRequestInit, "headers"> & {
|
|
200
|
+
headers?: Record<string, string>;
|
|
201
|
+
}): Promise<FetchResponse>;
|
|
198
202
|
/**
|
|
199
203
|
* Create the abort signal for one request, bounded by the request timeout.
|
|
200
204
|
*
|
|
@@ -82,7 +82,7 @@ var ErrorCodes = {
|
|
|
82
82
|
PERMISSION_DENIED: "PERMISSION_DENIED",
|
|
83
83
|
// Node retry signals (tinycloud-node #347). `meta.retryable` says whether a
|
|
84
84
|
// retry is safe; `meta.retryAfterMs` carries the node's Retry-After.
|
|
85
|
-
/** HTTP 503 `sql_busy:<stage>` / `unavailable_retryable`: nothing was applied; retry after `meta.retryAfterMs`. */
|
|
85
|
+
/** HTTP 503 `sql_busy:<stage>` / `unavailable_retryable`/`read_audit_busy`: nothing was applied; retry after `meta.retryAfterMs`. */
|
|
86
86
|
NODE_BUSY: "NODE_BUSY",
|
|
87
87
|
/** HTTP 503 `request_timeout`: the node's deadline passed before any write began; nothing was applied. */
|
|
88
88
|
REQUEST_TIMEOUT: "REQUEST_TIMEOUT",
|
|
@@ -123,11 +123,12 @@ var ErrorCodes = {
|
|
|
123
123
|
DUCKDB_READONLY_VIOLATION: "DUCKDB_READONLY_VIOLATION"
|
|
124
124
|
};
|
|
125
125
|
var defaultRetryPolicy = {
|
|
126
|
-
maxAttempts:
|
|
126
|
+
maxAttempts: 4,
|
|
127
127
|
backoff: "exponential",
|
|
128
|
-
baseDelayMs:
|
|
129
|
-
maxDelayMs:
|
|
130
|
-
retryableErrors: [ErrorCodes.
|
|
128
|
+
baseDelayMs: 250,
|
|
129
|
+
maxDelayMs: 4e3,
|
|
130
|
+
retryableErrors: [ErrorCodes.NODE_BUSY, ErrorCodes.REQUEST_TIMEOUT],
|
|
131
|
+
maxTotalMs: 12e3
|
|
131
132
|
};
|
|
132
133
|
var TelemetryEvents = {
|
|
133
134
|
SPAN: "telemetry.span",
|
|
@@ -499,6 +500,18 @@ var BaseService = class {
|
|
|
499
500
|
}
|
|
500
501
|
return controller.signal;
|
|
501
502
|
}
|
|
503
|
+
/** POST a signed invocation with retry; `mint` re-signs per attempt, `init.headers` add to the signed ones. */
|
|
504
|
+
invokeWithRetry(url, mint, { headers: extra, ...init } = {}) {
|
|
505
|
+
const build = () => {
|
|
506
|
+
const signed = mint();
|
|
507
|
+
return {
|
|
508
|
+
method: "POST",
|
|
509
|
+
...init,
|
|
510
|
+
headers: Array.isArray(signed) ? [...signed, ...Object.entries(extra ?? {})] : { ...signed, ...extra }
|
|
511
|
+
};
|
|
512
|
+
};
|
|
513
|
+
return this.context.invokeWithRetry ? this.context.invokeWithRetry(url, build) : this.context.fetch(url, build());
|
|
514
|
+
}
|
|
502
515
|
/**
|
|
503
516
|
* Create the abort signal for one request, bounded by the request timeout.
|
|
504
517
|
*
|