@tinycloud/sdk-services 3.11.0 → 3.12.0-beta.3

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 (71) hide show
  1. package/dist/{BaseService-Ma2MwJAd.d.ts → BaseService-BRDG69KR.d.ts} +1 -1
  2. package/dist/{BaseService-O0iyuFLk.d.cts → BaseService-CdBkfPGE.d.cts} +1 -1
  3. package/dist/{IHooksService-4QNODVy6.d.cts → IHooksService-C9p3stsB.d.cts} +1 -1
  4. package/dist/{IHooksService-CvTpJbQD.d.ts → IHooksService-D6eyZat1.d.ts} +1 -1
  5. package/dist/{ISQLService-Aly1CBsW.d.ts → ISQLService-B_4KcGA-.d.ts} +1 -1
  6. package/dist/{ISQLService-BOgWzHLT.d.cts → ISQLService-C6nNpcls.d.cts} +1 -1
  7. package/dist/context.cjs +4 -0
  8. package/dist/context.cjs.map +1 -1
  9. package/dist/context.d.cts +1 -1
  10. package/dist/context.d.ts +1 -1
  11. package/dist/context.js +4 -0
  12. package/dist/context.js.map +1 -1
  13. package/dist/encryption/index.cjs +60 -3
  14. package/dist/encryption/index.cjs.map +1 -1
  15. package/dist/encryption/index.d.cts +12 -22
  16. package/dist/encryption/index.d.ts +12 -22
  17. package/dist/encryption/index.js +60 -3
  18. package/dist/encryption/index.js.map +1 -1
  19. package/dist/encryption/named-keys.cjs +2 -0
  20. package/dist/encryption/named-keys.cjs.map +1 -1
  21. package/dist/encryption/named-keys.d.cts +2 -2
  22. package/dist/encryption/named-keys.d.ts +2 -2
  23. package/dist/encryption/named-keys.js +2 -0
  24. package/dist/encryption/named-keys.js.map +1 -1
  25. package/dist/encryption/resource.cjs.map +1 -1
  26. package/dist/encryption/resource.js.map +1 -1
  27. package/dist/feed/index.cjs +4 -0
  28. package/dist/feed/index.cjs.map +1 -1
  29. package/dist/feed/index.d.cts +3 -3
  30. package/dist/feed/index.d.ts +3 -3
  31. package/dist/feed/index.js +4 -0
  32. package/dist/feed/index.js.map +1 -1
  33. package/dist/index.cjs +260 -7
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.cts +14 -12
  36. package/dist/index.d.ts +14 -12
  37. package/dist/index.js +253 -7
  38. package/dist/index.js.map +1 -1
  39. package/dist/internal/decrypt-transport-response-error.d.cts +1 -1
  40. package/dist/internal/decrypt-transport-response-error.d.ts +1 -1
  41. package/dist/kv/index.cjs +34 -0
  42. package/dist/kv/index.cjs.map +1 -1
  43. package/dist/kv/index.d.cts +4 -4
  44. package/dist/kv/index.d.ts +4 -4
  45. package/dist/kv/index.js +34 -0
  46. package/dist/kv/index.js.map +1 -1
  47. package/dist/kv/replication/index.cjs +34 -0
  48. package/dist/kv/replication/index.cjs.map +1 -1
  49. package/dist/kv/replication/index.d.cts +3 -3
  50. package/dist/kv/replication/index.d.ts +3 -3
  51. package/dist/kv/replication/index.js +34 -0
  52. package/dist/kv/replication/index.js.map +1 -1
  53. package/dist/{scope-DEgc9f-W.d.cts → scope-DtcbyRKY.d.cts} +1 -1
  54. package/dist/{scope-BZr0QwxX.d.ts → scope-J20PQP3u.d.ts} +1 -1
  55. package/dist/sql/index.cjs +36 -0
  56. package/dist/sql/index.cjs.map +1 -1
  57. package/dist/sql/index.d.cts +4 -4
  58. package/dist/sql/index.d.ts +4 -4
  59. package/dist/sql/index.js +36 -0
  60. package/dist/sql/index.js.map +1 -1
  61. package/dist/telemetry/requestLog.cjs +4 -0
  62. package/dist/telemetry/requestLog.cjs.map +1 -1
  63. package/dist/telemetry/requestLog.d.cts +1 -1
  64. package/dist/telemetry/requestLog.d.ts +1 -1
  65. package/dist/telemetry/requestLog.js +4 -0
  66. package/dist/telemetry/requestLog.js.map +1 -1
  67. package/dist/{types-CSd0RYir.d.ts → types-DjAP8dve.d.cts} +4 -0
  68. package/dist/{types-CSd0RYir.d.cts → types-DjAP8dve.d.ts} +4 -0
  69. package/dist/{types-D4XbIfFJ.d.cts → types-XE4tyBLH.d.ts} +60 -3
  70. package/dist/{types-Bf91gup6.d.ts → types-cWtQmCCw.d.cts} +60 -3
  71. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { i as RetryStats, f as Result, F as FetchFunction } from './types-CSd0RYir.cjs';
1
+ import { i as RetryStats, f as Result, F as FetchFunction } from './types-DjAP8dve.cjs';
2
2
  import { REPLICA_KV_STORES } from './kv/replication/contractConstants.cjs';
3
3
  import { ReplicaConsentAnchor, ReplicaGrantPolicy } from './kv/replication/grantPolicyTypes.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { i as RetryStats, f as Result, F as FetchFunction } from './types-CSd0RYir.js';
1
+ import { i as RetryStats, f as Result, F as FetchFunction } from './types-DjAP8dve.js';
2
2
  import { REPLICA_KV_STORES } from './kv/replication/contractConstants.js';
3
3
  import { ReplicaConsentAnchor, ReplicaGrantPolicy } from './kv/replication/grantPolicyTypes.js';
4
4
 
@@ -39,6 +39,10 @@ var ErrorCodes = {
39
39
  /** HTTP 401: a delegation the cited one rests on was revoked. */
40
40
  AUTH_DELEGATION_ANCESTOR_REVOKED: "AUTH_DELEGATION_ANCESTOR_REVOKED",
41
41
  NETWORK_ERROR: "NETWORK_ERROR",
42
+ NODE_NOT_RESPONDING: "NODE_NOT_RESPONDING",
43
+ NODE_IDENTITY_MISMATCH: "NODE_IDENTITY_MISMATCH",
44
+ PARTIAL_NODE_WRITE: "PARTIAL_NODE_WRITE",
45
+ RESOURCE_NOT_ROUTED: "RESOURCE_NOT_ROUTED",
42
46
  TIMEOUT: "TIMEOUT",
43
47
  ABORTED: "ABORTED",
44
48
  INVALID_INPUT: "INVALID_INPUT",
@@ -165,6 +169,36 @@ function compactMessage(message) {
165
169
 
166
170
  // src/errors.ts
167
171
  var import_bootstrap = require("@tinycloud/bootstrap");
172
+
173
+ // src/resourceRouting.ts
174
+ var ROUTING_FAILURE_CODES = {
175
+ NODE_NOT_RESPONDING: true,
176
+ PARTIAL_NODE_WRITE: true,
177
+ NODE_IDENTITY_MISMATCH: true,
178
+ RESOURCE_NOT_ROUTED: true,
179
+ DECRYPTION_DEPENDENCY_UNAVAILABLE: true,
180
+ registry_unavailable: true,
181
+ node_not_found: true,
182
+ node_registry_entry_exists: true
183
+ };
184
+ function isRoutingFailureCode(code) {
185
+ return Object.prototype.hasOwnProperty.call(ROUTING_FAILURE_CODES, code);
186
+ }
187
+ function routingFailure(error) {
188
+ if (typeof error === "object" && error !== null && "code" in error && "message" in error && typeof error.code === "string" && typeof error.message === "string" && isRoutingFailureCode(error.code)) {
189
+ const candidate = "meta" in error ? error.meta : void 0;
190
+ let meta = typeof candidate === "object" && candidate !== null && !Array.isArray(candidate) ? candidate : void 0;
191
+ if (error.code === "NODE_NOT_RESPONDING" && "hosts" in error && Array.isArray(error.hosts)) {
192
+ meta = { ...meta, hosts: error.hosts };
193
+ } else if (error.code === "PARTIAL_NODE_WRITE" && "succeeded" in error && Array.isArray(error.succeeded) && "failed" in error && Array.isArray(error.failed)) {
194
+ meta = { ...meta, succeeded: error.succeeded, failed: error.failed };
195
+ }
196
+ return { code: error.code, message: error.message, ...error instanceof Error ? { cause: error } : {}, ...meta ? { meta } : {} };
197
+ }
198
+ return void 0;
199
+ }
200
+
201
+ // src/errors.ts
168
202
  function authRequiredError(service) {
169
203
  return {
170
204
  code: ErrorCodes.AUTH_REQUIRED,
@@ -309,6 +343,8 @@ function storageRejectionError(service, status, meta, responseText) {
309
343
  return status === 402 ? storageQuotaExceededError(service, STORAGE_FULL_MESSAGE, quotaMeta) : storageLimitReachedError(service, STORAGE_WRITE_TOO_LARGE_MESSAGE, quotaMeta);
310
344
  }
311
345
  function wrapError(service, error, defaultCode = ErrorCodes.NETWORK_ERROR) {
346
+ const routing = routingFailure(error);
347
+ if (routing) return { ...routing, service };
312
348
  if (error instanceof Error) {
313
349
  if (isRequestTimeoutError(error)) {
314
350
  return timeoutError(service, error.timeoutMs, error);