@voltro/runtime 0.85.0 → 0.87.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.
Files changed (184) hide show
  1. package/CHANGELOG.md +5987 -0
  2. package/README.md +43 -0
  3. package/THIRD-PARTY-NOTICES.md +864 -253
  4. package/dist/aggregate.js +42 -0
  5. package/dist/aggregateExtrema.js +80 -0
  6. package/dist/aggregateIvm.js +115 -0
  7. package/dist/analyticsMirror.js +228 -0
  8. package/dist/analyticsSink.js +32 -0
  9. package/dist/apiKeyUsage.js +33 -0
  10. package/dist/apiKeys.js +227 -0
  11. package/dist/apiKeysWiring.js +114 -0
  12. package/dist/apiRoleBucketSampler.js +64 -0
  13. package/dist/apiRoleWorkloadHistory.js +56 -0
  14. package/dist/apiRoleWorkloadMetrics.js +78 -0
  15. package/dist/apiRoleWorkloadStorage.js +95 -0
  16. package/dist/approvalBuiltins.js +10 -0
  17. package/dist/approvals.js +262 -0
  18. package/dist/authMiddlewareLayer.js +48 -0
  19. package/dist/bindEvent.js +92 -0
  20. package/dist/bootListener.js +143 -0
  21. package/dist/bootRefusal.js +7 -0
  22. package/dist/bootStoreCodec.js +71 -0
  23. package/dist/businessRules.js +67 -0
  24. package/dist/changeClaimsTable.js +12 -0
  25. package/dist/circuitBreaker.js +1 -0
  26. package/dist/columnOnUpdate.js +23 -0
  27. package/dist/composeAnalytics.js +129 -0
  28. package/dist/computedQuery.js +4 -0
  29. package/dist/computedQueryCache.js +231 -0
  30. package/dist/connectionBuiltins.js +81 -0
  31. package/dist/connectionCredentials.js +66 -0
  32. package/dist/connectionState.js +34 -0
  33. package/dist/connectionVault.js +410 -0
  34. package/dist/connectionsFacade.js +56 -0
  35. package/dist/coordinatedSchedule.js +145 -0
  36. package/dist/crdtHistory.js +138 -0
  37. package/dist/crdtMerge.js +179 -0
  38. package/dist/crdtVersionsTable.js +25 -0
  39. package/dist/credentialBound.js +12 -0
  40. package/dist/crud.js +72 -0
  41. package/dist/dataStore.js +712 -0
  42. package/dist/dataloader.js +61 -0
  43. package/dist/declaredTablesGuard.js +49 -0
  44. package/dist/defineExecutor.js +4 -0
  45. package/dist/dependencyGraph.js +32 -0
  46. package/dist/devices.js +228 -0
  47. package/dist/devicesWiring.js +168 -0
  48. package/dist/dialectReplicationAdapter.js +29 -0
  49. package/dist/dispatcher.js +522 -0
  50. package/dist/effectStore.js +71 -0
  51. package/dist/engineClients.js +24 -0
  52. package/dist/eventBus.js +260 -0
  53. package/dist/eventPublish.js +49 -0
  54. package/dist/events.js +193 -0
  55. package/dist/expectation.js +52 -0
  56. package/dist/expectationEvaluator.js +308 -0
  57. package/dist/experiment.js +96 -0
  58. package/dist/experimentEvaluator.js +245 -0
  59. package/dist/externalizedTasks.js +38 -0
  60. package/dist/fieldCipher.js +130 -0
  61. package/dist/fieldKeyRegistry.js +295 -0
  62. package/dist/fieldKeyRekey.js +286 -0
  63. package/dist/fieldKeyScan.js +136 -0
  64. package/dist/fieldKeyring.js +77 -0
  65. package/dist/fingerprint.js +21 -0
  66. package/dist/finops.js +42 -0
  67. package/dist/finopsAccountant.js +216 -0
  68. package/dist/handlerBody.js +8 -0
  69. package/dist/healthProbes.js +55 -0
  70. package/dist/hot.d.ts +56 -0
  71. package/dist/hot.js +3 -0
  72. package/dist/hotDataStore.js +148 -0
  73. package/dist/hotDataStoreSnapshot.js +98 -0
  74. package/dist/hotDataStoreTables.js +18 -0
  75. package/dist/http-range.d.ts +53 -0
  76. package/dist/http-range.js +52 -0
  77. package/dist/httpClientSsrf.js +24 -0
  78. package/dist/httpClientTracing.js +14 -0
  79. package/dist/httpCompression.js +76 -0
  80. package/dist/httpInputStream.js +82 -0
  81. package/dist/httpKeepAlive.js +12 -0
  82. package/dist/httpRouteMounts.js +48 -0
  83. package/dist/idempotencyStore.js +110 -0
  84. package/dist/idleDetector.js +21 -0
  85. package/dist/index.d.ts +1249 -517
  86. package/dist/index.js +155 -15292
  87. package/dist/insertRequiredColumns.js +19 -0
  88. package/dist/inspectWorkflow.js +1 -0
  89. package/dist/instanceMembership.js +98 -0
  90. package/dist/ivm.js +125 -0
  91. package/dist/kvDataStore.js +86 -0
  92. package/dist/kvFacade.js +38 -0
  93. package/dist/matcher.js +304 -0
  94. package/dist/memoryColumnDefaults.js +11 -0
  95. package/dist/memoryQueryJoins.js +114 -0
  96. package/dist/memorySetOperations.js +43 -0
  97. package/dist/metrics.js +175 -0
  98. package/dist/observability.js +123 -0
  99. package/dist/observedGraph.js +52 -0
  100. package/dist/originGuard.js +116 -0
  101. package/dist/outbox.js +352 -0
  102. package/dist/pluginRefRules.js +65 -0
  103. package/dist/policyGuardResolver.js +55 -0
  104. package/dist/preview.js +62 -0
  105. package/dist/projectedRows.js +12 -0
  106. package/dist/provenance.js +63 -0
  107. package/dist/rangeIndex.js +89 -0
  108. package/dist/rawReadScope.js +17 -0
  109. package/dist/reaction.js +85 -0
  110. package/dist/reactiveConfig.js +11 -0
  111. package/dist/readClassification.js +57 -0
  112. package/dist/readRecorder.js +67 -0
  113. package/dist/readScopePredicate.js +12 -0
  114. package/dist/rebac.js +104 -0
  115. package/dist/rebacInterceptor.js +81 -0
  116. package/dist/registry.js +29 -0
  117. package/dist/relevantFields.js +65 -0
  118. package/dist/replicaHealth.js +42 -0
  119. package/dist/replicaLocality.js +44 -0
  120. package/dist/replicaObservations.js +121 -0
  121. package/dist/replicaSelection.js +32 -0
  122. package/dist/replicatedDataStore.js +257 -0
  123. package/dist/requestLoader.js +7 -0
  124. package/dist/resumeCensus.js +28 -0
  125. package/dist/revalidation.js +22 -0
  126. package/dist/rowFilter.js +82 -0
  127. package/dist/rowStateBytes.js +45 -0
  128. package/dist/rpcBodyCap.js +63 -0
  129. package/dist/rpcConnections.js +83 -0
  130. package/dist/rpcDefectDiagnostics.js +15 -0
  131. package/dist/rpcServer.js +1065 -0
  132. package/dist/rpcWorkloadAdmission.js +50 -0
  133. package/dist/runAsSystem.js +23 -0
  134. package/dist/rywPositionStore.js +119 -0
  135. package/dist/schedule.js +23 -0
  136. package/dist/scheduleBackfillRequests.js +151 -0
  137. package/dist/scheduleClaimsTable.js +11 -0
  138. package/dist/scheduleRunsTable.js +37 -0
  139. package/dist/scheduler.js +840 -0
  140. package/dist/schemaRegistry.js +65 -0
  141. package/dist/secretsResolver.js +35 -0
  142. package/dist/securityHeaders.js +33 -0
  143. package/dist/servePipeline.js +374 -0
  144. package/dist/serverOnlyAudit.js +66 -0
  145. package/dist/serverTracer.js +15 -0
  146. package/dist/serviceCredentials.js +40 -0
  147. package/dist/setReadScopes.js +28 -0
  148. package/dist/singleNodeOrchestrator.js +91 -0
  149. package/dist/snapshotValueCodec.js +46 -0
  150. package/dist/sourceResolution.js +52 -0
  151. package/dist/storeMiddleware.js +882 -0
  152. package/dist/storeQuery.js +204 -0
  153. package/dist/storeRead.js +10 -0
  154. package/dist/subscriber.js +8 -0
  155. package/dist/subscriptionOutbox.js +139 -0
  156. package/dist/subscriptionRegistry.js +82 -0
  157. package/dist/subscriptionResume.js +132 -0
  158. package/dist/subscriptionSocketMetrics.js +65 -0
  159. package/dist/systemSubject.js +5 -0
  160. package/dist/tenantScope.js +11 -0
  161. package/dist/tenantSelection.js +27 -0
  162. package/dist/timeline.js +105 -0
  163. package/dist/traceContext.js +5 -0
  164. package/dist/traceSink.js +63 -0
  165. package/dist/traceSpansTable.js +29 -0
  166. package/dist/traceparent.js +23 -0
  167. package/dist/transactionSubject.js +12 -0
  168. package/dist/trustedProxy.js +155 -0
  169. package/dist/undo.js +129 -0
  170. package/dist/undoBuiltins.js +69 -0
  171. package/dist/undoCapture.js +74 -0
  172. package/dist/undoLogTable.js +16 -0
  173. package/dist/upsertBinding.js +20 -0
  174. package/dist/wakeOrchestrator.js +34 -0
  175. package/dist/wakeRegistry.js +71 -0
  176. package/dist/wakeRouter.js +63 -0
  177. package/dist/wakeSupervisor.js +62 -0
  178. package/dist/wakeupsTable.js +12 -0
  179. package/dist/webSocketGatewayRuntime.js +154 -0
  180. package/dist/webhookVerification.js +18 -0
  181. package/dist/wireColumnStrip.js +84 -0
  182. package/dist/workflowReadBuiltins.js +87 -0
  183. package/dist/workflowRuntime.js +708 -0
  184. package/package.json +19 -7
@@ -0,0 +1,83 @@
1
+ import { interruptConnectionStreams as e, unbindConnection as t } from "./connectionCredentials.js";
2
+ import { Effect as n, Layer as r, Queue as i } from "effect";
3
+ import { randomUUID as a } from "node:crypto";
4
+ import { RpcServer as o } from "effect/rpc";
5
+ import { Headers as s } from "effect/http";
6
+ //#region src/rpcConnections.ts
7
+ var c = Symbol.for("@voltro/runtime/rpcConnections"), l = globalThis, u = l[c] ??= {
8
+ nextId: 1,
9
+ entries: /* @__PURE__ */ new Map(),
10
+ addressMark: a()
11
+ }, d = "x-voltro-client-address", f = (e) => `${u.addressMark} ${e}`, p = (e, t) => {
12
+ let n = s.remove(e.headers, d), r = t === void 0 ? n : s.set(n, d, f(t)), i = Object.create(e);
13
+ return Object.defineProperty(i, "headers", {
14
+ value: r,
15
+ configurable: !0
16
+ }), i;
17
+ }, m = (e) => {
18
+ let t = `${u.addressMark} `, n, r = [];
19
+ for (let i of e) i[0].toLowerCase() === "x-voltro-client-address" ? n === void 0 && i[1].startsWith(t) && i[1].length > t.length && (n = i[1].slice(t.length)) : r.push(i);
20
+ return {
21
+ remoteAddr: n,
22
+ headers: r.length === e.length ? e : r
23
+ };
24
+ }, h = (e) => u.entries.get(e)?.connection, g = (s, c) => r.effect(o.Protocol, n.gen(function* () {
25
+ let r = yield* o.Protocol, s = yield* i.make(), l = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = (e, t) => {
26
+ let n = l.get(e);
27
+ if (n !== void 0) return t !== void 0 && n.connection.remoteAddr === void 0 && (n.connection = Object.freeze({
28
+ ...n.connection,
29
+ remoteAddr: t
30
+ })), n;
31
+ if (!Number.isSafeInteger(u.nextId)) throw Error("RPC connection identity space exhausted");
32
+ let r = new AbortController(), i = {
33
+ clientId: u.nextId++,
34
+ controller: r,
35
+ connection: Object.freeze({
36
+ id: a(),
37
+ transport: c,
38
+ signal: r.signal,
39
+ ...t === void 0 ? {} : { remoteAddr: t }
40
+ })
41
+ };
42
+ return l.set(e, i), d.set(i.clientId, e), u.entries.set(i.clientId, i), i;
43
+ }, p = (n) => {
44
+ let r = l.get(n);
45
+ if (r !== void 0) return l.delete(n), d.delete(r.clientId), u.entries.delete(r.clientId), t(r.clientId), e(r.clientId), r.controller.abort(), r.clientId;
46
+ };
47
+ return yield* n.addFinalizer(() => n.sync(() => {
48
+ for (let e of l.keys()) p(e);
49
+ })), yield* n.forkScoped(n.gen(function* () {
50
+ let e = yield* i.take(r.disconnects), t = p(e);
51
+ t !== void 0 && (yield* i.offer(s, t));
52
+ }).pipe(n.forever)), {
53
+ ...r,
54
+ disconnects: s,
55
+ run: (e) => r.run((t, i) => n.gen(function* () {
56
+ if (!(yield* r.clientIds).has(t)) return;
57
+ if (i._tag !== "Request") {
58
+ yield* e(f(t).clientId, i);
59
+ return;
60
+ }
61
+ let n = m(i.headers), a = n.headers === i.headers ? i : {
62
+ ...i,
63
+ headers: n.headers
64
+ };
65
+ yield* e(f(t, n.remoteAddr).clientId, a);
66
+ })),
67
+ send: (e, t, i) => n.suspend(() => {
68
+ let a = d.get(e);
69
+ return a === void 0 ? n.void : r.send(a, t, i);
70
+ }),
71
+ end: (e) => n.suspend(() => {
72
+ let t = d.get(e);
73
+ return t === void 0 ? n.void : r.end(t);
74
+ }),
75
+ clientIds: n.map(r.clientIds, (e) => {
76
+ let t = [...e], n = /* @__PURE__ */ new Set();
77
+ for (let e of t) n.add(f(e).clientId);
78
+ return n;
79
+ })
80
+ };
81
+ })).pipe(r.provide(s));
82
+ //#endregion
83
+ export { d as RPC_CLIENT_ADDRESS_HEADER, h as getRpcConnection, f as stampRpcClientAddress, m as takeRpcClientAddress, p as withRpcClientAddress, g as withRpcConnectionIdentity };
@@ -0,0 +1,15 @@
1
+ //#region src/rpcDefectDiagnostics.ts
2
+ var e = (e) => {
3
+ if (typeof e != "object" || !e) return [];
4
+ let t = e;
5
+ if (t._tag === "Defect") return [t.defect];
6
+ if (t._tag !== "Exit") return [];
7
+ let n = t.exit;
8
+ return n?._tag !== "Failure" || !Array.isArray(n.cause) ? [] : n.cause.flatMap((e) => {
9
+ if (typeof e != "object" || !e) return [];
10
+ let t = e;
11
+ return t._tag === "Die" ? [t.defect] : [];
12
+ });
13
+ };
14
+ //#endregion
15
+ export { e as rpcFrameDefects };