@voltro/runtime 0.87.0 → 0.89.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 (179) hide show
  1. package/CHANGELOG.md +272 -6
  2. package/THIRD-PARTY-NOTICES.md +644 -48
  3. package/dist/aggregate.js +1 -2
  4. package/dist/aggregateExtrema.js +1 -2
  5. package/dist/aggregateIvm.js +1 -2
  6. package/dist/analyticsMirror.js +1 -2
  7. package/dist/analyticsSink.js +1 -2
  8. package/dist/apiKeyUsage.js +1 -2
  9. package/dist/apiKeys.js +1 -2
  10. package/dist/apiKeysWiring.js +1 -2
  11. package/dist/apiRoleBucketSampler.js +1 -2
  12. package/dist/apiRoleWorkloadHistory.js +1 -2
  13. package/dist/apiRoleWorkloadMetrics.js +1 -2
  14. package/dist/apiRoleWorkloadStorage.js +1 -2
  15. package/dist/approvalBuiltins.js +1 -2
  16. package/dist/approvals.js +1 -2
  17. package/dist/authMiddlewareLayer.js +1 -2
  18. package/dist/bindEvent.js +1 -2
  19. package/dist/boot-refusal.d.ts +10 -0
  20. package/dist/{bootRefusal.js → boot-refusal.js} +1 -2
  21. package/dist/bootListener.js +154 -65
  22. package/dist/bootStoreCodec.js +1 -2
  23. package/dist/businessRules.js +1 -2
  24. package/dist/changeClaimsTable.js +1 -2
  25. package/dist/columnOnUpdate.js +1 -2
  26. package/dist/composeAnalytics.js +1 -2
  27. package/dist/computedQuery.js +1 -2
  28. package/dist/computedQueryCache.js +136 -78
  29. package/dist/connectionBuiltins.js +1 -2
  30. package/dist/connectionCredentials.js +1 -2
  31. package/dist/connectionState.js +1 -2
  32. package/dist/connectionVault.js +1 -2
  33. package/dist/connectionsFacade.js +1 -2
  34. package/dist/coordinatedSchedule.js +1 -2
  35. package/dist/crdtHistory.js +1 -2
  36. package/dist/crdtMerge.js +1 -2
  37. package/dist/crdtVersionsTable.js +1 -2
  38. package/dist/credentialBound.js +1 -2
  39. package/dist/crud.js +1 -2
  40. package/dist/dataStore.js +1 -2
  41. package/dist/dataloader.js +1 -2
  42. package/dist/declaredTablesGuard.js +1 -2
  43. package/dist/defineExecutor.js +1 -2
  44. package/dist/dependencyGraph.js +1 -2
  45. package/dist/devices.js +1 -2
  46. package/dist/devicesWiring.js +1 -2
  47. package/dist/dialectReplicationAdapter.js +1 -2
  48. package/dist/dispatcher.js +1 -2
  49. package/dist/effectStore.js +1 -2
  50. package/dist/engineClients.js +1 -2
  51. package/dist/eventBus.js +1 -2
  52. package/dist/eventPublish.js +1 -2
  53. package/dist/events.js +1 -2
  54. package/dist/expectation.js +1 -2
  55. package/dist/expectationEvaluator.js +2 -3
  56. package/dist/experiment.js +1 -2
  57. package/dist/experimentEvaluator.js +1 -2
  58. package/dist/externalizedTasks.js +1 -2
  59. package/dist/fieldCipher.js +1 -2
  60. package/dist/fieldKeyRegistry.js +1 -2
  61. package/dist/fieldKeyRekey.js +1 -2
  62. package/dist/fieldKeyScan.js +1 -2
  63. package/dist/fieldKeyring.js +1 -2
  64. package/dist/fingerprint.js +1 -2
  65. package/dist/finops.js +1 -2
  66. package/dist/finopsAccountant.js +1 -2
  67. package/dist/handlerBody.js +1 -2
  68. package/dist/healthProbes.js +1 -2
  69. package/dist/hotDataStore.js +1 -2
  70. package/dist/hotDataStoreSnapshot.js +1 -2
  71. package/dist/hotDataStoreTables.js +1 -2
  72. package/dist/http-range.js +1 -2
  73. package/dist/httpClientSsrf.js +1 -2
  74. package/dist/httpClientTracing.js +1 -2
  75. package/dist/httpCompression.js +1 -2
  76. package/dist/httpInputStream.js +1 -2
  77. package/dist/httpKeepAlive.js +1 -2
  78. package/dist/httpRouteMounts.js +1 -2
  79. package/dist/idempotencyStore.js +1 -2
  80. package/dist/idleDetector.js +1 -2
  81. package/dist/index.d.ts +22 -2
  82. package/dist/index.js +109 -110
  83. package/dist/insertRequiredColumns.js +1 -2
  84. package/dist/instanceMembership.js +1 -2
  85. package/dist/ivm.js +1 -2
  86. package/dist/kvDataStore.js +1 -2
  87. package/dist/kvFacade.js +1 -2
  88. package/dist/matcher.js +1 -2
  89. package/dist/memoryColumnDefaults.js +1 -2
  90. package/dist/memoryQueryJoins.js +1 -2
  91. package/dist/memorySetOperations.js +1 -2
  92. package/dist/metrics.js +1 -2
  93. package/dist/observability.js +2 -3
  94. package/dist/observedGraph.js +1 -2
  95. package/dist/originGuard.js +1 -2
  96. package/dist/outbox.js +1 -2
  97. package/dist/pluginRefRules.js +1 -2
  98. package/dist/policyGuardResolver.js +1 -2
  99. package/dist/preview.js +1 -2
  100. package/dist/projectedRows.js +1 -2
  101. package/dist/provenance.js +1 -2
  102. package/dist/rangeIndex.js +1 -2
  103. package/dist/rawReadScope.js +2 -3
  104. package/dist/reaction.js +1 -2
  105. package/dist/reactiveConfig.js +1 -2
  106. package/dist/readClassification.js +1 -2
  107. package/dist/readRecorder.js +1 -2
  108. package/dist/readScopePredicate.js +1 -2
  109. package/dist/rebac.js +1 -2
  110. package/dist/rebacInterceptor.js +1 -2
  111. package/dist/registry.js +1 -2
  112. package/dist/relevantFields.js +1 -2
  113. package/dist/replicaHealth.js +1 -2
  114. package/dist/replicaLocality.js +1 -2
  115. package/dist/replicaObservations.js +1 -2
  116. package/dist/replicaSelection.js +1 -2
  117. package/dist/replicatedDataStore.js +1 -2
  118. package/dist/requestLoader.js +1 -2
  119. package/dist/resumeCensus.js +1 -2
  120. package/dist/revalidation.js +1 -2
  121. package/dist/rowFilter.js +1 -2
  122. package/dist/rowStateBytes.js +1 -2
  123. package/dist/rpcBodyCap.js +1 -2
  124. package/dist/rpcConnections.js +1 -2
  125. package/dist/rpcDefectDiagnostics.js +1 -2
  126. package/dist/rpcServer.js +1 -2
  127. package/dist/rpcWorkloadAdmission.js +1 -2
  128. package/dist/runAsSystem.js +1 -2
  129. package/dist/rywPositionStore.js +1 -2
  130. package/dist/schedule.js +1 -2
  131. package/dist/scheduleBackfillRequests.js +1 -2
  132. package/dist/scheduleClaimsTable.js +1 -2
  133. package/dist/scheduleRunsTable.js +1 -2
  134. package/dist/scheduler.js +4 -4
  135. package/dist/schemaRegistry.js +1 -2
  136. package/dist/secretsResolver.js +1 -2
  137. package/dist/securityHeaders.js +1 -2
  138. package/dist/servePipeline.js +198 -183
  139. package/dist/serverOnlyAudit.js +1 -2
  140. package/dist/serverTracer.js +1 -2
  141. package/dist/serviceCredentials.js +1 -2
  142. package/dist/setReadScopes.js +1 -2
  143. package/dist/singleNodeOrchestrator.js +1 -2
  144. package/dist/snapshotValueCodec.js +1 -2
  145. package/dist/sourceResolution.js +1 -2
  146. package/dist/storeMiddleware.js +3 -4
  147. package/dist/storeQuery.js +1 -2
  148. package/dist/storeRead.js +1 -2
  149. package/dist/subscriber.js +1 -2
  150. package/dist/subscriptionOutbox.js +1 -2
  151. package/dist/subscriptionRegistry.js +1 -2
  152. package/dist/subscriptionResume.js +1 -2
  153. package/dist/subscriptionSocketMetrics.js +1 -2
  154. package/dist/systemSubject.js +1 -2
  155. package/dist/tenantScope.js +1 -2
  156. package/dist/tenantSelection.js +1 -2
  157. package/dist/timeline.js +1 -2
  158. package/dist/traceContext.js +1 -2
  159. package/dist/traceSink.js +1 -2
  160. package/dist/traceSpansTable.js +1 -2
  161. package/dist/traceparent.js +1 -2
  162. package/dist/transactionSubject.js +1 -2
  163. package/dist/trustedProxy.js +2 -3
  164. package/dist/undo.js +1 -2
  165. package/dist/undoBuiltins.js +1 -2
  166. package/dist/undoCapture.js +1 -2
  167. package/dist/undoLogTable.js +1 -2
  168. package/dist/upsertBinding.js +1 -2
  169. package/dist/wakeOrchestrator.js +1 -2
  170. package/dist/wakeRegistry.js +1 -2
  171. package/dist/wakeRouter.js +1 -2
  172. package/dist/wakeSupervisor.js +1 -2
  173. package/dist/wakeupsTable.js +1 -2
  174. package/dist/webSocketGatewayRuntime.js +1 -2
  175. package/dist/webhookVerification.js +1 -2
  176. package/dist/wireColumnStrip.js +1 -2
  177. package/dist/workflowReadBuiltins.js +1 -2
  178. package/dist/workflowRuntime.js +1 -2
  179. package/package.json +26 -19
@@ -1,28 +1,28 @@
1
- import { cachedComputedCall as e, computedCacheKey as t, currentQueryDependencies as n, enterQueryDependencies as r } from "./computedQueryCache.js";
2
- import { enterReadRecording as i } from "./readRecorder.js";
3
- import { getRowFilter as a, makeDefaultRefilter as o, resolveRowFilterScope as s } from "./rowFilter.js";
4
- import { isComputedQuery as c } from "./computedQuery.js";
5
- import { TX_READ_VERSIONS_KEY as l, isTransactionReadConflict as u } from "./storeMiddleware.js";
6
- import { evaluateTouchedRules as d, makeRuleCapture as f } from "./businessRules.js";
7
- import { enforceApproval as p } from "./approvals.js";
8
- import { observeApiRoleEffect as m } from "./apiRoleWorkloadMetrics.js";
9
- import { Cause as h, Effect as g, Exit as _, Option as v } from "effect";
10
- import { isTransientContention as y } from "@voltro/database";
11
- import { SubjectService as b, checkGuardsEffect as x, currentSubjectAuthority as S, recheckGuardsEffect as C } from "@voltro/protocol";
12
- import { createLogger as w } from "@voltro/logger";
13
- //#region src/servePipeline.ts
14
- var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
15
- if (_.isSuccess(e)) return e.value;
16
- let t = h.findErrorOption(e.cause);
17
- throw v.isSome(t) ? t.value : h.squash(e.cause);
18
- }), E = (e) => T(e), D = (e, t) => e.pipe(g.provideService(b, t)), O = async (e, t, n, r) => {
19
- let i = await g.runPromise(x(t, e.guards, n, {
1
+ import { cachedComputedCall as e, computedAuthorityRefusal as t, computedCacheKey as n, computedSubjectIdentity as r, currentQueryDependencies as i, enterQueryDependencies as a } from "./computedQueryCache.js";
2
+ import { enterReadRecording as o } from "./readRecorder.js";
3
+ import { getRowFilter as s, makeDefaultRefilter as c, resolveRowFilterScope as l } from "./rowFilter.js";
4
+ import { isComputedQuery as u } from "./computedQuery.js";
5
+ import { TX_READ_VERSIONS_KEY as d, isTransactionReadConflict as f } from "./storeMiddleware.js";
6
+ import { evaluateTouchedRules as p, makeRuleCapture as m } from "./businessRules.js";
7
+ import { enforceApproval as h } from "./approvals.js";
8
+ import { observeApiRoleEffect as g } from "./apiRoleWorkloadMetrics.js";
9
+ import { Cause as _, Effect as v, Exit as y, Option as b } from "effect";
10
+ import { isTransientContention as x } from "@voltro/database";
11
+ import { SubjectService as S, checkGuardsEffect as C, currentSubjectAuthority as w, recheckGuardsEffect as T } from "@voltro/protocol";
12
+ import { createLogger as E } from "@voltro/logger";
13
+ // src/servePipeline.ts
14
+ var D = (e, t) => v.runPromiseExit(e, t).then((e) => {
15
+ if (y.isSuccess(e)) return e.value;
16
+ let t = _.findErrorOption(e.cause);
17
+ throw b.isSome(t) ? t.value : _.squash(e.cause);
18
+ }), O = (e) => D(e), k = (e, t) => e.pipe(v.provideService(S, t)), A = async (e, t, n, r) => {
19
+ let i = await v.runPromise(C(t, e.guards, n, {
20
20
  defaultDeny: r === !0,
21
21
  procedure: e.name
22
22
  }));
23
23
  if (i) throw i;
24
- }, k = async (e, t, n, r) => {
25
- e.requiresApproval !== void 0 && await p({
24
+ }, j = async (e, t, n, r) => {
25
+ e.requiresApproval !== void 0 && await h({
26
26
  procedure: e.name,
27
27
  kind: t,
28
28
  policy: e.requiresApproval,
@@ -30,20 +30,20 @@ var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
30
30
  input: r,
31
31
  traceId: n.traceId
32
32
  });
33
- }, A = w({ scope: "voltro:rpc" }), j = async (e) => {
34
- if (a() === void 0) return e;
35
- let t = await E(s(e.subject, (e) => {
36
- A.error("row filter failed to load", {}, e instanceof Error ? e : Error(String(e)));
33
+ }, M = E({ scope: "voltro:rpc" }), N = async (e) => {
34
+ if (s() === void 0) return e;
35
+ let t = await O(l(e.subject, (e) => {
36
+ M.error("row filter failed to load", {}, e instanceof Error ? e : Error(String(e)));
37
37
  }));
38
38
  return {
39
39
  ...e,
40
40
  rowFilter: t
41
41
  };
42
- }, M = (e) => ({
42
+ }, P = (e) => ({
43
43
  ...e.surface === void 0 ? {} : { surface: e.surface },
44
44
  ...e.publicApi === void 0 ? {} : { publicApi: e.publicApi },
45
45
  ...e.remoteAddr === void 0 ? {} : { remoteAddr: e.remoteAddr }
46
- }), N = (e) => {
46
+ }), F = (e) => {
47
47
  let t = e.descriptor.target;
48
48
  if (t == null) return [];
49
49
  let n = Array.isArray(t) ? t : [t], r = /* @__PURE__ */ new Set();
@@ -52,7 +52,7 @@ var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
52
52
  typeof t == "string" && t.length > 0 && r.add(t);
53
53
  }
54
54
  return [...r];
55
- }, P = async (e) => {
55
+ }, I = async (e) => {
56
56
  let { store: t, target: n, procedure: r, input: i, output: a } = e;
57
57
  if (n == null) return;
58
58
  let o = Array.isArray(n) ? n : [n];
@@ -69,15 +69,15 @@ var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
69
69
  await u.set(c.map((e) => String(e)));
70
70
  }
71
71
  }
72
- }, F = (e, t) => e === void 0 ? {} : { enqueueOutcome: async (n, r, i) => {
72
+ }, L = (e, t) => e === void 0 ? {} : { enqueueOutcome: async (n, r, i) => {
73
73
  let a = e(t);
74
74
  if (a === void 0) throw TypeError("Invocation outcome outbox is unavailable");
75
75
  return a.enqueue(n, r, i);
76
- } }, I = async (e) => {
76
+ } }, R = async (e) => {
77
77
  let t = `${e.kind}.${e.name}`, n = Date.now(), r = "ok";
78
78
  try {
79
79
  if (e.interceptor) {
80
- let t = g.tryPromise({
80
+ let t = v.tryPromise({
81
81
  try: () => e.runExecutor(),
82
82
  catch: (e) => e
83
83
  }), n = e.interceptor(t, {
@@ -89,10 +89,10 @@ var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
89
89
  ...e.enqueueOutcome === void 0 ? {} : { enqueueOutcome: e.enqueueOutcome },
90
90
  ...e.requestContext.spanId === void 0 ? {} : { spanId: e.requestContext.spanId },
91
91
  ...e.target !== void 0 && e.target.length > 0 ? { target: e.target } : {},
92
- ...M(e.requestContext)
93
- }), r = await g.runPromiseExit(n, e.requestContext.signal === void 0 ? void 0 : { signal: e.requestContext.signal });
94
- if (_.isSuccess(r)) return r.value;
95
- throw h.squash(r.cause);
92
+ ...P(e.requestContext)
93
+ }), r = await v.runPromiseExit(n, e.requestContext.signal === void 0 ? void 0 : { signal: e.requestContext.signal });
94
+ if (y.isSuccess(r)) return r.value;
95
+ throw _.squash(r.cause);
96
96
  }
97
97
  return await e.runExecutor();
98
98
  } catch (e) {
@@ -105,99 +105,99 @@ var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
105
105
  status: r
106
106
  });
107
107
  }
108
- }, L = (e) => y(e) || u(e), R = 3, z = (e) => new Promise((t) => setTimeout(t, e)), B = async (e, t) => {
109
- let n = t?.delay ?? ((e) => z(e * 20 + Math.floor(Math.random() * 30))), r = t?.attempts ?? 3;
108
+ }, z = (e) => x(e) || f(e), B = 3, V = (e) => new Promise((t) => setTimeout(t, e)), H = async (e, t) => {
109
+ let n = t?.delay ?? ((e) => V(e * 20 + Math.floor(Math.random() * 30))), r = t?.attempts ?? 3;
110
110
  for (let t = 1;; t++) try {
111
111
  return await e();
112
112
  } catch (e) {
113
- if (t >= r || !L(e)) throw u(e) ? e.conflict : e;
113
+ if (t >= r || !z(e)) throw f(e) ? e.conflict : e;
114
114
  await n(t);
115
115
  }
116
- }, V = (e) => (t, n, r) => I({
116
+ }, U = (e) => (t, n, r) => R({
117
117
  name: t.descriptor.name,
118
118
  kind: "mutation",
119
119
  input: n,
120
120
  requestContext: r,
121
- ...F(e.outcomeOutbox, r),
122
- target: N(t),
121
+ ...L(e.outcomeOutbox, r),
122
+ target: F(t),
123
123
  ...e.interceptor ? { interceptor: e.interceptor } : {},
124
124
  ...e.recordMetric ? { recordMetric: e.recordMetric } : {},
125
125
  runExecutor: async () => {
126
126
  let i = Date.now();
127
- await q(t, "mutation", { defaultDeny: e.defaultDeny === !0 })(n, r);
127
+ await Y(t, "mutation", { defaultDeny: e.defaultDeny === !0 })(n, r);
128
128
  let a = {
129
129
  ...r,
130
- subject: S(r.subject)
130
+ subject: w(r.subject)
131
131
  };
132
- await k(t.descriptor, "mutation", a, n);
133
- let o = await j(a), s = e.resolveStore === void 0 ? e.store : await e.resolveStore(o), c = [], u = [], p = await B(async () => s.transactional(async (a) => {
134
- c.length = 0, u.length = 0, a[Symbol.for("@voltro/runtime:tx-fold-releases")] = u, a[l] = /* @__PURE__ */ new Map();
135
- let p = t.descriptor.undo?.capture === !1 ? void 0 : e.undoCapture?.(a), m = p ? p.tx : a, h = f(m), _ = e.buildContext(o, h.tx, {
132
+ await j(t.descriptor, "mutation", a, n);
133
+ let o = await N(a), s = e.resolveStore === void 0 ? e.store : await e.resolveStore(o), c = [], l = [], u = await H(async () => s.transactional(async (a) => {
134
+ c.length = 0, l.length = 0, a[Symbol.for("@voltro/runtime:tx-fold-releases")] = l, a[d] = /* @__PURE__ */ new Map();
135
+ let u = t.descriptor.undo?.capture === !1 ? void 0 : e.undoCapture?.(a), f = u ? u.tx : a, h = m(f), g = e.buildContext(o, h.tx, {
136
136
  committedStore: s,
137
137
  afterCommit: (e) => {
138
138
  c.push(e);
139
139
  }
140
- }), v = e.measureSync ? e.measureSync(() => t.executor(n, _)) : t.executor(n, _), y = g.isEffect(v) ? await e.runEffect(D(v, o.subject), _.store) : await v;
141
- if (await P({
142
- store: _.store,
140
+ }), _ = e.measureSync ? e.measureSync(() => t.executor(n, g)) : t.executor(n, g), y = v.isEffect(_) ? await e.runEffect(k(_, o.subject), g.store) : await _;
141
+ if (await I({
142
+ store: g.store,
143
143
  target: t.descriptor.target,
144
144
  procedure: t.descriptor.name,
145
145
  input: n,
146
146
  output: y
147
- }), p && await p.persist(_.store, {
147
+ }), u && await u.persist(g.store, {
148
148
  tag: t.descriptor.name,
149
149
  subject: o.subject,
150
150
  traceId: r.traceId
151
- }), await d({
151
+ }), await p({
152
152
  touched: h.drain(),
153
- store: _.store,
153
+ store: g.store,
154
154
  subject: o.subject
155
155
  }), e.beforeMutationCommit !== void 0) {
156
- let r = N(t), a = e.beforeMutationCommit({
156
+ let r = F(t), a = e.beforeMutationCommit({
157
157
  tag: t.descriptor.name,
158
158
  kind: "mutation",
159
159
  input: n,
160
160
  output: y,
161
161
  subject: o.subject,
162
162
  traceId: o.traceId,
163
- store: _.store,
164
- ..._.outbox === void 0 ? {} : { outbox: _.outbox },
163
+ store: g.store,
164
+ ...g.outbox === void 0 ? {} : { outbox: g.outbox },
165
165
  startedAt: i,
166
166
  durationMs: Math.max(0, Date.now() - i),
167
167
  ...o.spanId === void 0 ? {} : { spanId: o.spanId },
168
168
  ...r.length > 0 ? { target: r } : {},
169
- ...M(o)
169
+ ...P(o)
170
170
  });
171
- await e.runEffect(D(a, o.subject), _.store);
171
+ await e.runEffect(k(a, o.subject), g.store);
172
172
  }
173
173
  return y;
174
174
  }), { ...e.replayAttempts === void 0 ? {} : { attempts: e.replayAttempts } });
175
- if (u.length > 0) {
175
+ if (l.length > 0) {
176
176
  let t = e.buildContext(o, s, {
177
177
  committedStore: s,
178
178
  afterCommit: () => {}
179
179
  }).store;
180
- for (let e of u.splice(0)) await t.update(e.table, e.pk, e.patch);
180
+ for (let e of l.splice(0)) await t.update(e.table, e.pk, e.patch);
181
181
  }
182
182
  for (let e of c) await e();
183
- return e.settleCacheInvalidations !== void 0 && await e.settleCacheInvalidations(), p;
183
+ return e.settleCacheInvalidations !== void 0 && await e.settleCacheInvalidations(), u;
184
184
  }
185
- }), H = (e) => (t, n, r, i) => I({
185
+ }), W = (e) => (t, n, r, i) => R({
186
186
  name: t.name,
187
187
  kind: "workflow",
188
188
  input: n,
189
189
  requestContext: r,
190
- ...F(e.outcomeOutbox, r),
190
+ ...L(e.outcomeOutbox, r),
191
191
  ...e.interceptor ? { interceptor: e.interceptor } : {},
192
192
  ...e.recordMetric ? { recordMetric: e.recordMetric } : {},
193
- runExecutor: async () => (await O(t, r.subject, n, e.defaultDeny), i())
194
- }), U = (e) => e && typeof e == "object" && "descriptor" in e ? e.descriptor : e, W = (e) => typeof e == "object" && !!e && !Array.isArray(e) && "table" in e && "order" in e, G = (e) => {
193
+ runExecutor: async () => (await A(t, r.subject, n, e.defaultDeny), i())
194
+ }), G = (e) => e && typeof e == "object" && "descriptor" in e ? e.descriptor : e, K = (e) => typeof e == "object" && !!e && !Array.isArray(e) && "table" in e && "order" in e, q = (e) => {
195
195
  let t = e.descriptor.source;
196
196
  return t == null ? [] : typeof t == "string" ? [t] : [...t];
197
- }, K = (e, t, n) => (r) => () => g.runPromise(C(r, e.descriptor.guards, t, {
197
+ }, J = (e, t, n) => (r) => () => v.runPromise(T(r, e.descriptor.guards, t, {
198
198
  defaultDeny: n === !0,
199
199
  procedure: e.descriptor.name
200
- })), q = (e, t, n = {}) => async (r, i) => {
200
+ })), Y = (e, t, n = {}) => async (r, i) => {
201
201
  let a = i.subject;
202
202
  n.bindReplayAuthority?.({
203
203
  tag: e.descriptor.name,
@@ -209,133 +209,149 @@ var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
209
209
  ...i.publicApi === void 0 ? {} : { publicApi: i.publicApi },
210
210
  ...i.remoteAddr === void 0 ? {} : { remoteAddr: i.remoteAddr }
211
211
  });
212
- let o = await K(e, r, n.defaultDeny)(a)();
212
+ let o = await J(e, r, n.defaultDeny)(a)();
213
213
  if (o) throw o;
214
- }, J = (e, t) => e.rowFilter !== void 0 || a() === void 0 ? t(e) : g.promise(() => j(e)).pipe(g.flatMap((e) => {
214
+ }, X = (e, t) => e.rowFilter !== void 0 || s() === void 0 ? t(e) : v.promise(() => N(e)).pipe(v.flatMap((e) => {
215
215
  let n = t(e);
216
- return g.isEffect(n) ? n : g.succeed(n);
217
- })), Y = (e, t) => X(e, t, /* @__PURE__ */ new Set()), X = (o, s, l) => (u, d) => (f) => {
218
- if (f.rowFilter === void 0 && a() !== void 0) return J(f, (e) => X(o, s, l)(u, d)(e));
219
- let p = s ?? (f.connection?.transport === "http" ? "rpc" : "subscriptions"), h = (e) => o.workloadMetrics ? o.workloadMetrics.measureSync(p, e) : e(), _ = (e, t) => {
220
- let n = o.provideEffect(e, t);
221
- return o.workloadMetrics ? m(n, o.workloadMetrics, p) : n;
222
- }, v = o.buildContext(f), y = K(u, d, o.defaultDeny)(f.subject), b = async () => {
223
- let e = await y();
216
+ return v.isEffect(n) ? n : v.succeed(n);
217
+ })), Z = (e, t) => Q(e, t, /* @__PURE__ */ new Set()), Q = (c, l, d) => (f, p) => (m) => {
218
+ if (m.rowFilter === void 0 && s() !== void 0) return X(m, (e) => Q(c, l, d)(f, p)(e));
219
+ let h = l ?? (m.connection?.transport === "http" ? "rpc" : "subscriptions"), _ = (e) => c.workloadMetrics ? c.workloadMetrics.measureSync(h, e) : e(), y = (e, t) => {
220
+ let n = c.provideEffect(e, t);
221
+ return c.workloadMetrics ? g(n, c.workloadMetrics, h) : n;
222
+ }, b = c.buildContext(m), x = J(f, p, c.defaultDeny)(m.subject), S = async () => {
223
+ let e = await x();
224
224
  if (e) throw e;
225
225
  let t = {
226
- ...f,
227
- subject: S(f.subject)
228
- }, n = o.buildContext(await j(t)), r = h(() => u.executor(d, n)), i = g.isEffect(r) ? await T(_(D(r, t.subject), n.store), f.signal === void 0 ? void 0 : { signal: f.signal }) : U(await Promise.resolve(r)), a = await y();
226
+ ...m,
227
+ subject: w(m.subject)
228
+ }, n = c.buildContext(await N(t)), r = _(() => f.executor(p, n)), i = v.isEffect(r) ? await D(y(k(r, t.subject), n.store), m.signal === void 0 ? void 0 : { signal: m.signal }) : G(await Promise.resolve(r)), a = await x();
229
229
  if (a) throw a;
230
230
  return i;
231
- }, C = (e, t = n()) => {
232
- let r = U(e);
233
- if (W(r)) {
234
- let e = o.finalize(r, f), t = G(u);
231
+ }, T = (e, t = i()) => {
232
+ let n = G(e);
233
+ if (K(n)) {
234
+ let e = c.finalize(n, m), t = q(f);
235
235
  if (t.length === 0) return e;
236
- let n = e.dependentTables ?? [];
236
+ let r = e.dependentTables ?? [];
237
237
  return {
238
238
  ...e,
239
- dependentTables: [.../* @__PURE__ */ new Set([...n, ...t])]
239
+ dependentTables: [.../* @__PURE__ */ new Set([...r, ...t])]
240
240
  };
241
241
  }
242
242
  return {
243
243
  __voltroComputed: !0,
244
- value: r,
245
- dependentTables: [.../* @__PURE__ */ new Set([...G(u), ...t])],
246
- tenantId: f.subject?.tenantId ?? null,
247
- recompute: b
244
+ value: n,
245
+ dependentTables: [.../* @__PURE__ */ new Set([...q(f), ...t])],
246
+ tenantId: m.subject?.tenantId ?? null,
247
+ recompute: S
248
248
  };
249
- }, w = (e, t) => {
250
- let n = C(e, t);
251
- return c(n) ? g.tryPromise({
252
- try: y,
253
- catch: (e) => e
254
- }).pipe(g.flatMap((e) => e ? g.fail(e) : g.succeed(n))) : n;
255
249
  }, E = (e, t) => {
256
- let n = w(e, t);
257
- return g.isEffect(n) ? n : g.succeed(n);
258
- }, O = () => {
259
- let n = o.computedCache, r = u.descriptor.cache;
260
- if (n === void 0 || r === void 0 || l.has(u.descriptor.name)) return;
261
- let i = n.policyFor(r);
262
- if (i === void 0) return;
263
- let a = f.subject, s = G(u), c = t({
264
- name: u.descriptor.name,
265
- codeIdentity: n.codeIdentity,
266
- output: u.descriptor.output,
267
- input: u.descriptor.input,
268
- decodedInput: d,
269
- scope: i.scope,
270
- subject: a,
271
- rowFilter: f.rowFilter,
272
- declaredSources: s
273
- });
274
- if ("bypass" in c) c.bypass === "input-not-encodable" && n.notice(u.descriptor.name, c.bypass, `${u.descriptor.name}: \`cache:\` NOT applied — the input does not encode through its \`input\` schema, so it has no key.`);
275
- else return e({
276
- cache: n,
277
- policy: i,
278
- key: c.key,
279
- name: u.descriptor.name,
280
- sources: s,
281
- output: u.descriptor.output,
282
- subject: f.subject,
283
- rowFilter: f.rowFilter,
284
- ctx: v,
285
- ...f.signal === void 0 ? {} : { signal: f.signal },
286
- execute: (e, t) => {
287
- let n = h(() => u.executor(d, e));
288
- return g.isEffect(n) ? T(_(D(n, t), v.store), f.signal === void 0 ? void 0 : { signal: f.signal }) : Promise.resolve(n);
289
- },
290
- onDescriptor: () => {
291
- l.add(u.descriptor.name);
250
+ let n = T(e, t);
251
+ return u(n) ? v.tryPromise({
252
+ try: x,
253
+ catch: (e) => e
254
+ }).pipe(v.flatMap((e) => e ? v.fail(e) : v.succeed(n))) : n;
255
+ }, O = (e, t) => {
256
+ let n = E(e, t);
257
+ return v.isEffect(n) ? n : v.succeed(n);
258
+ }, A = () => {
259
+ let i = c.computedCache, a = f.descriptor.cache;
260
+ if (i === void 0 || a === void 0 || d.has(f.descriptor.name)) return;
261
+ let o = i.policyFor(a);
262
+ if (o !== void 0) return v.tryPromise({
263
+ try: async () => {
264
+ let e = await x();
265
+ if (e) throw e;
266
+ return N({
267
+ ...m,
268
+ subject: w(m.subject)
269
+ });
292
270
  },
293
- isDescriptor: (e) => W(U(e)),
294
- unwrap: (e) => U(e)
295
- }).pipe(g.flatMap(({ value: e, dependencies: t }) => E(e, t)));
296
- }, k = () => {
297
- i(u.descriptor.name, G(u)), r();
298
- let e = O();
271
+ catch: (e) => e
272
+ }).pipe(v.flatMap((a) => {
273
+ let s = a.subject, l = c.buildContext(a), u = r(s), h = q(f), g = n({
274
+ name: f.descriptor.name,
275
+ codeIdentity: i.codeIdentity,
276
+ output: f.descriptor.output,
277
+ input: f.descriptor.input,
278
+ decodedInput: p,
279
+ scope: o.scope,
280
+ subject: s,
281
+ rowFilter: a.rowFilter,
282
+ declaredSources: h
283
+ });
284
+ return "bypass" in g ? (g.bypass === "input-not-encodable" && i.notice(f.descriptor.name, g.bypass, `${f.descriptor.name}: \`cache:\` NOT applied — the input does not encode through its \`input\` schema, so it has no key.`), g.bypass === "subject-not-encodable" && i.notice(f.descriptor.name, g.bypass, `${f.descriptor.name}: \`cache:\` NOT applied — the subject contains claims that cannot be keyed as data. Keep subject claims as plain data, or drop \`cache:\`.`), v.tryPromise({
285
+ try: S,
286
+ catch: (e) => e
287
+ }).pipe(v.flatMap((e) => O(e)))) : e({
288
+ cache: i,
289
+ policy: o,
290
+ key: g.key,
291
+ name: f.descriptor.name,
292
+ sources: h,
293
+ output: f.descriptor.output,
294
+ subject: s,
295
+ rowFilter: a.rowFilter,
296
+ ctx: l,
297
+ ...m.signal === void 0 ? {} : { signal: m.signal },
298
+ execute: (e, t) => {
299
+ let n = _(() => f.executor(p, e));
300
+ return v.isEffect(n) ? D(y(k(n, t), l.store), m.signal === void 0 ? void 0 : { signal: m.signal }) : Promise.resolve(n);
301
+ },
302
+ onDescriptor: () => {
303
+ d.add(f.descriptor.name);
304
+ },
305
+ isDescriptor: (e) => K(G(e)),
306
+ unwrap: (e) => G(e)
307
+ }).pipe(v.flatMap(({ value: e, dependencies: t }) => O(e, t)), v.flatMap((e) => {
308
+ let n = r(w(m.subject));
309
+ return u === n ? v.succeed(e) : v.fail(t());
310
+ }));
311
+ }));
312
+ }, j = () => {
313
+ o(f.descriptor.name, q(f)), a();
314
+ let e = A();
299
315
  if (e !== void 0) return e;
300
- let t = h(() => u.executor(d, v));
301
- return g.isEffect(t) ? _(D(t, f.subject), v.store).pipe(g.flatMap(E)) : t instanceof Promise ? g.promise(() => t).pipe(g.flatMap(E)) : w(t);
302
- }, A = () => {
303
- let e = u.descriptor.guards;
304
- return (!e || e.length === 0) && o.defaultDeny !== !0 && f.subject.type !== "service" ? k() : x(f.subject, e, d, {
305
- defaultDeny: o.defaultDeny === !0,
306
- procedure: u.descriptor.name
307
- }).pipe(g.flatMap((e) => {
308
- if (e) return g.fail(e);
309
- let t = k();
310
- return g.isEffect(t) ? t : g.succeed(t);
316
+ let t = _(() => f.executor(p, b));
317
+ return v.isEffect(t) ? y(k(t, m.subject), b.store).pipe(v.flatMap(O)) : t instanceof Promise ? v.promise(() => t).pipe(v.flatMap(O)) : E(t);
318
+ }, M = () => {
319
+ let e = f.descriptor.guards;
320
+ return (!e || e.length === 0) && c.defaultDeny !== !0 && m.subject.type !== "service" ? j() : C(m.subject, e, p, {
321
+ defaultDeny: c.defaultDeny === !0,
322
+ procedure: f.descriptor.name
323
+ }).pipe(v.flatMap((e) => {
324
+ if (e) return v.fail(e);
325
+ let t = j();
326
+ return v.isEffect(t) ? t : v.succeed(t);
311
327
  }));
312
328
  };
313
- if (!o.interceptor) return A();
314
- let N = g.suspend(() => {
315
- let e = A();
316
- return g.isEffect(e) ? e : g.succeed(e);
329
+ if (!c.interceptor) return M();
330
+ let F = v.suspend(() => {
331
+ let e = M();
332
+ return v.isEffect(e) ? e : v.succeed(e);
317
333
  });
318
- return o.interceptor(N, {
319
- tag: u.descriptor.name,
334
+ return c.interceptor(F, {
335
+ tag: f.descriptor.name,
320
336
  kind: "query",
321
- input: d,
322
- subject: f.subject,
323
- traceId: f.traceId,
324
- ...f.spanId === void 0 ? {} : { spanId: f.spanId },
325
- ...M(f)
337
+ input: p,
338
+ subject: m.subject,
339
+ traceId: m.traceId,
340
+ ...m.spanId === void 0 ? {} : { spanId: m.spanId },
341
+ ...P(m)
326
342
  });
327
- }, Z = (e) => async (t, n, r) => {
328
- let i = await j(r), a = Y(e, "rpc")(t, n)(i), o = g.isEffect(a) ? await E(a) : a;
329
- if (c(o)) return o.value;
330
- let s = e.buildContext(i), l = await e.queryRows(o, i, s.store), u = await K(t, n, e.defaultDeny)(i.subject)();
331
- if (u) throw u;
332
- return l;
333
- }, Q = (e) => (t, n, r, i) => {
334
- let a = !1, s;
343
+ }, $ = (e) => async (t, n, r) => {
344
+ let i = await N(r), a = Z(e, "rpc")(t, n)(i), o = v.isEffect(a) ? await O(a) : a;
345
+ if (u(o)) return o.value;
346
+ let s = e.buildContext(i), c = await e.queryRows(o, i, s.store), l = await J(t, n, e.defaultDeny)(i.subject)();
347
+ if (l) throw l;
348
+ return c;
349
+ }, ee = (e) => (t, n, r, i) => {
350
+ let a = !1, o;
335
351
  return (async () => {
336
352
  try {
337
- let l = await j(r), u = Y(e, "subscriptions")(t, n)(l), d = g.isEffect(u) ? await E(u) : u, f = (e) => i(e), p = c(d) ? await e.subscribeComputed(d, f, l) : await e.subscribeDescriptor(d, f, l, K(t, n, e.defaultDeny)(l.subject), o(l.subject));
338
- a ? p() : s = p;
353
+ let s = await N(r), l = Z(e, "subscriptions")(t, n)(s), d = v.isEffect(l) ? await O(l) : l, f = (e) => i(e), p = u(d) ? await e.subscribeComputed(d, f, s) : await e.subscribeDescriptor(d, f, s, J(t, n, e.defaultDeny)(s.subject), c(s.subject));
354
+ a ? p() : o = p;
339
355
  } catch (e) {
340
356
  i({
341
357
  _tag: "error",
@@ -346,29 +362,28 @@ var T = (e, t) => g.runPromiseExit(e, t).then((e) => {
346
362
  });
347
363
  }
348
364
  })(), () => {
349
- a = !0, s?.();
365
+ a = !0, o?.();
350
366
  };
351
- }, $ = (e) => (t, n, r) => I({
367
+ }, te = (e) => (t, n, r) => R({
352
368
  name: t.descriptor.name,
353
369
  kind: "action",
354
370
  input: n,
355
371
  requestContext: r,
356
- ...F(e.outcomeOutbox, r),
357
- target: N(t),
372
+ ...L(e.outcomeOutbox, r),
373
+ target: F(t),
358
374
  ...e.interceptor ? { interceptor: e.interceptor } : {},
359
375
  ...e.recordMetric ? { recordMetric: e.recordMetric } : {},
360
376
  runExecutor: async () => {
361
- await q(t, "action", { defaultDeny: e.defaultDeny === !0 })(n, r);
362
- let a = {
377
+ await Y(t, "action", { defaultDeny: e.defaultDeny === !0 })(n, r);
378
+ let i = {
363
379
  ...r,
364
- subject: S(r.subject)
380
+ subject: w(r.subject)
365
381
  };
366
- await k(t.descriptor, "action", a, n);
367
- let o = e.buildContext(await j(a));
368
- i(t.descriptor.name, G(t));
369
- let s = e.measureSync ? e.measureSync(() => t.executor(n, o)) : t.executor(n, o), c = g.isEffect(s) ? await e.runEffect(D(s, a.subject), o.store) : await s;
382
+ await j(t.descriptor, "action", i, n);
383
+ let a = e.buildContext(await N(i));
384
+ o(t.descriptor.name, q(t));
385
+ let s = e.measureSync ? e.measureSync(() => t.executor(n, a)) : t.executor(n, a), c = v.isEffect(s) ? await e.runEffect(k(s, i.subject), a.store) : await s;
370
386
  return e.settleCacheInvalidations !== void 0 && await e.settleCacheInvalidations(), c;
371
387
  }
372
388
  });
373
- //#endregion
374
- export { R as DEFAULT_MUTATION_REPLAY_ATTEMPTS, P as applyDeclaredRelations, $ as makeActionRunner, q as makeMutationReplayAdmission, V as makeMutationRunner, Z as makeOneShotQueryRunner, Y as makeQueryDescriptorProducer, K as makeQueryReauthorizer, Q as makeQuerySubscriber, H as makeWorkflowStartRunner, E as runProvidedEffect, B as runWithDeadlockRetry, j as withRowFilter, J as withScopedRequest };
389
+ export { B as DEFAULT_MUTATION_REPLAY_ATTEMPTS, I as applyDeclaredRelations, te as makeActionRunner, Y as makeMutationReplayAdmission, U as makeMutationRunner, $ as makeOneShotQueryRunner, Z as makeQueryDescriptorProducer, J as makeQueryReauthorizer, ee as makeQuerySubscriber, W as makeWorkflowStartRunner, O as runProvidedEffect, H as runWithDeadlockRetry, N as withRowFilter, X as withScopedRequest };
@@ -1,5 +1,5 @@
1
1
  import { SchemaAST as e } from "effect";
2
- //#region src/serverOnlyAudit.ts
2
+ // src/serverOnlyAudit.ts
3
3
  var t = (t) => {
4
4
  let n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = (t) => {
5
5
  if (!r.has(t)) switch (r.add(t), t.encoding !== void 0 && i(e.toEncoded(t)), t._tag) {
@@ -62,5 +62,4 @@ var t = (t) => {
62
62
  })) : [], o = (e) => {
63
63
  if (e.length !== 0) return `A cached query shares one entry across tenants:\n${e.map((e) => ` • query '${e.query}' caches scope:'global' while reading '${e.table}', a tenant()-scoped table`).join("\n")}\n\nscope:'global' stores ONE entry for every caller. On a tenant-scoped table the\nrows depend on who asked, so the first caller's rows are served to the next one.\n\nUse scope:'tenant' — one entry per org, none shared across orgs. Use 'subject'\nif the result also depends on WHICH person is asking, and 'global' only for data\nthat depends on neither.`;
64
64
  };
65
- //#endregion
66
65
  export { a as cacheScopeLeaks, o as formatCacheScopeLeaks, i as formatServerOnlyLeaks, t as schemaPropertyNames, r as serverOnlyLeaks };
@@ -1,5 +1,5 @@
1
1
  import { Effect as e, Layer as t } from "effect";
2
- //#region src/serverTracer.ts
2
+ // src/serverTracer.ts
3
3
  var n = Symbol.for("@voltro/runtime:serverTracer"), r = (() => {
4
4
  let e = globalThis;
5
5
  return e[n] ??= {};
@@ -11,5 +11,4 @@ var n = Symbol.for("@voltro/runtime:serverTracer"), r = (() => {
11
11
  let n = r.tracer;
12
12
  return n === void 0 ? t : e.withTracer(t, n);
13
13
  };
14
- //#endregion
15
14
  export { o as publishServerTracerLayer, a as serverTracer, i as setServerTracer, s as withServerTracer };
@@ -1,6 +1,6 @@
1
1
  import { createHash as e, randomBytes as t, timingSafeEqual as n } from "node:crypto";
2
2
  import { SERVICE_NAME_PATTERN as r, serviceSubject as i } from "@voltro/protocol";
3
- //#region src/serviceCredentials.ts
3
+ // src/serviceCredentials.ts
4
4
  var a = "vsvc_", o = /^vsvc_[A-Za-z0-9_-]{43}$/, s = () => `${a}${t(32).toString("base64url")}`, c = (e) => o.test(e), l = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1_$2").replace(/-/g, "_").toUpperCase(), u = (e) => `VOLTRO_SERVICE_CALLER_${l(e)}_TOKEN`, d = (e) => `${u(e)}_NEXT`, f = (e) => `VOLTRO_API_${l(e)}_TOKEN`, p = (e) => `VOLTRO_API_${l(e)}_URL`, m = (e) => {
5
5
  for (let t of Object.keys(e)) if (!r.test(t)) throw Error(`serviceCallers: ${JSON.stringify(t)} is not an app name — letters, digits and dashes, starting with a letter, at most 56 characters. It is the name the calling app binds this api under and the name its procedures list in \`service: { callers }\`.`);
6
6
  }, h = (t) => e("sha256").update(t).digest(), g = (e, t) => n(e, h(t)), _ = (e, t) => [e[u(t)], e[d(t)]].filter((e) => typeof e == "string" && e !== ""), v = (e) => {
@@ -36,5 +36,4 @@ var a = "vsvc_", o = /^vsvc_[A-Za-z0-9_-]{43}$/, s = () => `${a}${t(32).toString
36
36
  }
37
37
  };
38
38
  };
39
- //#endregion
40
39
  export { a as SERVICE_TOKEN_PREFIX, f as apiBindingTokenEnv, p as apiBindingUrlEnv, m as assertServiceCallersConfig, c as isWellFormedServiceToken, s as mintServiceToken, d as serviceCallerNextTokenEnv, v as serviceCallerStrategy, u as serviceCallerTokenEnv, l as serviceEnvSegment };
@@ -1,4 +1,4 @@
1
- //#region src/setReadScopes.ts
1
+ // src/setReadScopes.ts
2
2
  var e = [
3
3
  "crossTenant",
4
4
  "includeDeleted",
@@ -24,5 +24,4 @@ var e = [
24
24
  };
25
25
  return r(t);
26
26
  };
27
- //#endregion
28
27
  export { t as mapSetReadScopes };
@@ -3,7 +3,7 @@ import { wakeDueOnce as t } from "./wakeOrchestrator.js";
3
3
  import { makeProcessAdapter as n } from "./wakeSupervisor.js";
4
4
  import { isIdleNow as r, makeIdleGate as i } from "./idleDetector.js";
5
5
  import { makeRouterActivity as a, makeWakeProxyServer as o } from "./wakeRouter.js";
6
- //#region src/singleNodeOrchestrator.ts
6
+ // src/singleNodeOrchestrator.ts
7
7
  var s = async (e) => {
8
8
  try {
9
9
  return (await e.query({
@@ -87,5 +87,4 @@ var s = async (e) => {
87
87
  }
88
88
  };
89
89
  };
90
- //#endregion
91
90
  export { s as countRunningWorkflows, c as runOrchestratorTick, l as runSingleNodeOrchestrator };
@@ -1,4 +1,4 @@
1
- //#region src/snapshotValueCodec.ts
1
+ // src/snapshotValueCodec.ts
2
2
  var e = "\0", t = `${e}d`, n = `${e}n`, r = `${e}b`, i = `${e}o`, a = 1, o = (e) => {
3
3
  if (typeof e != "object" || !e) return !1;
4
4
  let t = Object.getPrototypeOf(e);
@@ -42,5 +42,4 @@ var e = "\0", t = `${e}d`, n = `${e}n`, r = `${e}b`, i = `${e}o`, a = 1, o = (e)
42
42
  return;
43
43
  }
44
44
  };
45
- //#endregion
46
45
  export { u as decodeSnapshotValue, l as encodeSnapshotValue };
@@ -1,5 +1,5 @@
1
1
  import { captureOptionalQuerySources as e, declaredReactivityChannelKeys as t, isReactivityChannelKey as n, sourceKeys as r } from "@voltro/protocol";
2
- //#region src/sourceResolution.ts
2
+ // src/sourceResolution.ts
3
3
  var i = (e, t) => {
4
4
  let n, r = 0;
5
5
  for (let i of t) {
@@ -48,5 +48,4 @@ symptom is silence, and silence is what this surface exists to eliminate.
48
48
  A \`source:\` is a STRING, so \`tsc\` cannot see a stale one and a rename leaves it
49
49
  behind quietly.` + r;
50
50
  };
51
- //#endregion
52
51
  export { o as formatUnresolvedSources, a as unresolvedSources };