@tinycloud/sdk-services 3.2.0-beta.5 → 3.2.0-beta.7
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-BDQXjWMx.d.cts → BaseService-4wwJq1Gn.d.cts} +1 -1
- package/dist/{BaseService-Di_hVfUV.d.ts → BaseService-BGr2slUz.d.ts} +1 -1
- package/dist/encryption/index.cjs +5 -1
- 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 +5 -1
- package/dist/encryption/index.js.map +1 -1
- package/dist/index.cjs +176 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +156 -6
- package/dist/index.d.ts +156 -6
- package/dist/index.js +170 -3
- 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 +42 -3
- package/dist/kv/index.cjs.map +1 -1
- package/dist/kv/index.d.cts +4 -4
- package/dist/kv/index.d.ts +4 -4
- package/dist/kv/index.js +42 -3
- package/dist/kv/index.js.map +1 -1
- package/dist/kv/replication/index.cjs +2 -0
- 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 +2 -0
- package/dist/kv/replication/index.js.map +1 -1
- package/dist/{scope-BKge7zDT.d.ts → scope-CoKKmMiI.d.ts} +1 -1
- package/dist/{scope-C05VVAXH.d.cts → scope-D7wmjbMH.d.cts} +1 -1
- package/dist/sql/index.cjs +44 -2
- 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 +44 -2
- package/dist/sql/index.js.map +1 -1
- package/dist/{types-7A5rHWRY.d.cts → types-D-9A3Sut.d.cts} +6 -0
- package/dist/{types-7A5rHWRY.d.ts → types-D-9A3Sut.d.ts} +6 -0
- package/package.json +1 -1
package/dist/kv/index.cjs
CHANGED
|
@@ -70,6 +70,8 @@ var ErrorCodes = {
|
|
|
70
70
|
// Storage quota errors
|
|
71
71
|
STORAGE_QUOTA_EXCEEDED: "STORAGE_QUOTA_EXCEEDED",
|
|
72
72
|
STORAGE_LIMIT_REACHED: "STORAGE_LIMIT_REACHED",
|
|
73
|
+
/** The node answered the usage read without usage numbers (it predates the read). */
|
|
74
|
+
STORAGE_STATUS_UNAVAILABLE: "STORAGE_STATUS_UNAVAILABLE",
|
|
73
75
|
// DuckDB-specific errors
|
|
74
76
|
DUCKDB_ERROR: "DUCKDB_ERROR",
|
|
75
77
|
DUCKDB_PERMISSION_DENIED: "DUCKDB_PERMISSION_DENIED",
|
|
@@ -99,7 +101,9 @@ var TelemetryEvents = {
|
|
|
99
101
|
REPLICATION_WRITE: "replication.write",
|
|
100
102
|
REPLICATION_SYNC: "replication.sync",
|
|
101
103
|
REPLICATION_STATE: "replication.state",
|
|
102
|
-
REPLICATION_DIVERGENCE: "replication.divergence"
|
|
104
|
+
REPLICATION_DIVERGENCE: "replication.divergence",
|
|
105
|
+
/** Emitted once, on the first write rejected because storage is full. */
|
|
106
|
+
STORAGE_FULL: "storage.full"
|
|
103
107
|
};
|
|
104
108
|
function ok(data) {
|
|
105
109
|
return { ok: true, data };
|
|
@@ -375,8 +379,43 @@ function parseStorageQuotaBytes(responseText) {
|
|
|
375
379
|
limitBytes: parseInt(match[2], 10)
|
|
376
380
|
};
|
|
377
381
|
}
|
|
382
|
+
var STORAGE_REJECTION_BODY_ERRORS = {
|
|
383
|
+
storage_quota_exceeded: true,
|
|
384
|
+
storage_limit_reached: true
|
|
385
|
+
};
|
|
386
|
+
function isByteCount(value) {
|
|
387
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
388
|
+
}
|
|
389
|
+
function byteCountsOf(value) {
|
|
390
|
+
if (typeof value !== "object" || value === null) return void 0;
|
|
391
|
+
const { usedBytes, limitBytes } = value;
|
|
392
|
+
return isByteCount(usedBytes) && isByteCount(limitBytes) ? { usedBytes, limitBytes } : void 0;
|
|
393
|
+
}
|
|
394
|
+
function parseStorageRejection(responseText) {
|
|
395
|
+
let body;
|
|
396
|
+
try {
|
|
397
|
+
body = JSON.parse(responseText);
|
|
398
|
+
} catch {
|
|
399
|
+
return parseStorageQuotaBytes(responseText);
|
|
400
|
+
}
|
|
401
|
+
if (typeof body !== "object" || body === null) return void 0;
|
|
402
|
+
const record = body;
|
|
403
|
+
const message = typeof record.message === "string" ? record.message : "";
|
|
404
|
+
const space = byteCountsOf(record.space) ?? parseStorageQuotaBytes(message);
|
|
405
|
+
const isStorageBody = typeof record.error === "string" && STORAGE_REJECTION_BODY_ERRORS[record.error] === true;
|
|
406
|
+
if (!space && !isStorageBody) {
|
|
407
|
+
return void 0;
|
|
408
|
+
}
|
|
409
|
+
const details = { ...space };
|
|
410
|
+
const account = byteCountsOf(record.account);
|
|
411
|
+
if (account) {
|
|
412
|
+
const plan = record.account.plan;
|
|
413
|
+
details.account = typeof plan === "string" && plan !== "" ? { ...account, plan } : account;
|
|
414
|
+
}
|
|
415
|
+
return details;
|
|
416
|
+
}
|
|
378
417
|
function storageRejectionError(service, status, meta, responseText) {
|
|
379
|
-
const quotaMeta = { ...meta, ...
|
|
418
|
+
const quotaMeta = { ...meta, ...parseStorageRejection(responseText) };
|
|
380
419
|
return status === 402 ? storageQuotaExceededError(service, STORAGE_FULL_MESSAGE, quotaMeta) : storageLimitReachedError(service, STORAGE_WRITE_TOO_LARGE_MESSAGE, quotaMeta);
|
|
381
420
|
}
|
|
382
421
|
function wrapError(service, error, defaultCode = ErrorCodes.NETWORK_ERROR) {
|
|
@@ -899,7 +938,7 @@ var KVService = class extends BaseService {
|
|
|
899
938
|
if (response.status !== 402 && response.status !== 413) {
|
|
900
939
|
return void 0;
|
|
901
940
|
}
|
|
902
|
-
if (response.status === 413 && !
|
|
941
|
+
if (response.status === 413 && !parseStorageRejection(errorText)) {
|
|
903
942
|
return void 0;
|
|
904
943
|
}
|
|
905
944
|
return err(
|