@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.
Files changed (39) hide show
  1. package/dist/{BaseService-BDQXjWMx.d.cts → BaseService-4wwJq1Gn.d.cts} +1 -1
  2. package/dist/{BaseService-Di_hVfUV.d.ts → BaseService-BGr2slUz.d.ts} +1 -1
  3. package/dist/encryption/index.cjs +5 -1
  4. package/dist/encryption/index.cjs.map +1 -1
  5. package/dist/encryption/index.d.cts +2 -2
  6. package/dist/encryption/index.d.ts +2 -2
  7. package/dist/encryption/index.js +5 -1
  8. package/dist/encryption/index.js.map +1 -1
  9. package/dist/index.cjs +176 -3
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +156 -6
  12. package/dist/index.d.ts +156 -6
  13. package/dist/index.js +170 -3
  14. package/dist/index.js.map +1 -1
  15. package/dist/internal/decrypt-transport-response-error.d.cts +1 -1
  16. package/dist/internal/decrypt-transport-response-error.d.ts +1 -1
  17. package/dist/kv/index.cjs +42 -3
  18. package/dist/kv/index.cjs.map +1 -1
  19. package/dist/kv/index.d.cts +4 -4
  20. package/dist/kv/index.d.ts +4 -4
  21. package/dist/kv/index.js +42 -3
  22. package/dist/kv/index.js.map +1 -1
  23. package/dist/kv/replication/index.cjs +2 -0
  24. package/dist/kv/replication/index.cjs.map +1 -1
  25. package/dist/kv/replication/index.d.cts +3 -3
  26. package/dist/kv/replication/index.d.ts +3 -3
  27. package/dist/kv/replication/index.js +2 -0
  28. package/dist/kv/replication/index.js.map +1 -1
  29. package/dist/{scope-BKge7zDT.d.ts → scope-CoKKmMiI.d.ts} +1 -1
  30. package/dist/{scope-C05VVAXH.d.cts → scope-D7wmjbMH.d.cts} +1 -1
  31. package/dist/sql/index.cjs +44 -2
  32. package/dist/sql/index.cjs.map +1 -1
  33. package/dist/sql/index.d.cts +2 -2
  34. package/dist/sql/index.d.ts +2 -2
  35. package/dist/sql/index.js +44 -2
  36. package/dist/sql/index.js.map +1 -1
  37. package/dist/{types-7A5rHWRY.d.cts → types-D-9A3Sut.d.cts} +6 -0
  38. package/dist/{types-7A5rHWRY.d.ts → types-D-9A3Sut.d.ts} +6 -0
  39. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { P as PermissionHint } from '../types-7A5rHWRY.cjs';
1
+ import { P as PermissionHint } from '../types-D-9A3Sut.cjs';
2
2
 
3
3
  /** A reachable node returned an HTTP failure for a decrypt request. */
4
4
  declare class DecryptTransportResponseError extends Error {
@@ -1,4 +1,4 @@
1
- import { P as PermissionHint } from '../types-7A5rHWRY.js';
1
+ import { P as PermissionHint } from '../types-D-9A3Sut.js';
2
2
 
3
3
  /** A reachable node returned an HTTP failure for a decrypt request. */
4
4
  declare class DecryptTransportResponseError extends Error {
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, ...parseStorageQuotaBytes(responseText) };
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 && !parseStorageQuotaBytes(errorText)) {
941
+ if (response.status === 413 && !parseStorageRejection(errorText)) {
903
942
  return void 0;
904
943
  }
905
944
  return err(