@cat-factory/gatekeeper-worker 0.5.0 → 0.6.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 (73) hide show
  1. package/README.md +43 -2
  2. package/dist/arguments.d.ts +18 -0
  3. package/dist/arguments.d.ts.map +1 -0
  4. package/dist/arguments.js +75 -0
  5. package/dist/arguments.js.map +1 -0
  6. package/dist/capability.d.ts +10 -0
  7. package/dist/capability.d.ts.map +1 -1
  8. package/dist/capability.js +39 -1
  9. package/dist/capability.js.map +1 -1
  10. package/dist/env.d.ts +10 -0
  11. package/dist/env.d.ts.map +1 -1
  12. package/dist/env.js +12 -0
  13. package/dist/env.js.map +1 -1
  14. package/dist/errors.d.ts +20 -1
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +11 -0
  17. package/dist/errors.js.map +1 -1
  18. package/dist/gatekeeper.d.ts +31 -1
  19. package/dist/gatekeeper.d.ts.map +1 -1
  20. package/dist/gatekeeper.js +38 -8
  21. package/dist/gatekeeper.js.map +1 -1
  22. package/dist/index.d.ts +8 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +5 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/os/discoverability.d.ts +13 -1
  27. package/dist/os/discoverability.d.ts.map +1 -1
  28. package/dist/os/discoverability.js +23 -6
  29. package/dist/os/discoverability.js.map +1 -1
  30. package/dist/os/exports.d.ts +27 -0
  31. package/dist/os/exports.d.ts.map +1 -1
  32. package/dist/os/exports.js +25 -0
  33. package/dist/os/exports.js.map +1 -1
  34. package/dist/os/hook-controller.d.ts +14 -0
  35. package/dist/os/hook-controller.d.ts.map +1 -0
  36. package/dist/os/hook-controller.js +53 -0
  37. package/dist/os/hook-controller.js.map +1 -0
  38. package/dist/os/hooks.d.ts +200 -0
  39. package/dist/os/hooks.d.ts.map +1 -0
  40. package/dist/os/hooks.js +253 -0
  41. package/dist/os/hooks.js.map +1 -0
  42. package/dist/os/protocol.d.ts +43 -0
  43. package/dist/os/protocol.d.ts.map +1 -1
  44. package/dist/os/queue.d.ts +9 -0
  45. package/dist/os/queue.d.ts.map +1 -1
  46. package/dist/os/queue.js +44 -1
  47. package/dist/os/queue.js.map +1 -1
  48. package/dist/os/resource-core.d.ts +25 -10
  49. package/dist/os/resource-core.d.ts.map +1 -1
  50. package/dist/os/resource-core.js +31 -14
  51. package/dist/os/resource-core.js.map +1 -1
  52. package/dist/os/resource.d.ts.map +1 -1
  53. package/dist/os/resource.js +7 -1
  54. package/dist/os/resource.js.map +1 -1
  55. package/dist/os/session-types.d.ts.map +1 -1
  56. package/dist/os/session-types.js +28 -0
  57. package/dist/os/session-types.js.map +1 -1
  58. package/dist/os/sharing.d.ts +35 -0
  59. package/dist/os/sharing.d.ts.map +1 -0
  60. package/dist/os/sharing.js +135 -0
  61. package/dist/os/sharing.js.map +1 -0
  62. package/dist/os/vendor.d.ts +1 -1
  63. package/dist/os/vendor.d.ts.map +1 -1
  64. package/dist/os/vendor.js +8 -1
  65. package/dist/os/vendor.js.map +1 -1
  66. package/dist/state.d.ts +80 -1
  67. package/dist/state.d.ts.map +1 -1
  68. package/dist/state.js +234 -6
  69. package/dist/state.js.map +1 -1
  70. package/dist/worker.d.ts.map +1 -1
  71. package/dist/worker.js +4 -1
  72. package/dist/worker.js.map +1 -1
  73. package/package.json +3 -3
package/dist/state.js CHANGED
@@ -1,5 +1,5 @@
1
- // The Gatekeeper's durable state: one object per paired workspace, holding the four things a
2
- // stateless Worker cannot.
1
+ // The Gatekeeper's durable state: one object per paired workspace, holding what a stateless Worker
2
+ // cannot.
3
3
  //
4
4
  // 1. WHICH DELIVERIES HAVE BEEN SEEN. The platform's terminal run events are at-least-once and
5
5
  // a replay re-stamps `sentAt`, so two deliveries of one transition are not byte-identical
@@ -13,6 +13,15 @@
13
13
  // 4. THE MINTED PER-ACTOR KEYS. `POST /api/v1/keys` returns a raw secret EXACTLY ONCE; a
14
14
  // Gatekeeper that forgets it has minted one mints another on the next call and leaves a
15
15
  // trail of live credentials nobody revokes.
16
+ // 5. THE ENABLED HOOKS. A workspace enables one in a session and is pushed to from the webhook,
17
+ // which is a different invocation entirely, so the registration cannot live in either. This
18
+ // is also the object every delivery already wakes, which is why the fan-out runs HERE rather
19
+ // than in the receiver: the live half of a registration is a stub, and a stub can only be
20
+ // held where it was handed over.
21
+ // 6. WHICH ACCOUNTS THIS DEPLOYMENT MINTED. One boolean, for one question: `addObserver` is
22
+ // handed an account id by a verifier and has to know whether it is an account of ours before
23
+ // resolving a tier for it. Without this the tier lookup answers for an id it has never seen,
24
+ // and a viewer from another vendor entirely measures up as identical to the owner.
16
25
  //
17
26
  // The dedupe marker and the effect it guards are written TOGETHER, in one multi-key `put`, which
18
27
  // is the reason `applyDelivery` lives here rather than being composed from two calls in the
@@ -28,11 +37,14 @@
28
37
  // not acceptable for your deployment, mint per call and revoke after, at the cost of a key row
29
38
  // per operation.
30
39
  import { DurableObject } from 'cloudflare:workers';
40
+ import { applyPushOutcome, holdInitiator, pushToHook, registrationKey, releaseInitiator, } from './os/hooks.js';
31
41
  const DELIVERY_PREFIX = 'delivery:';
32
42
  const CARD_PREFIX = 'card:';
33
43
  const KEY_PREFIX = 'key:';
34
44
  const CLAIM_PREFIX = 'mint:';
35
45
  const RUN_PREFIX = 'run:';
46
+ const HOOK_PREFIX = 'hook:';
47
+ const ACCOUNT_PREFIX = 'account:';
36
48
  /**
37
49
  * How long a `deliveryId` is remembered for dedupe purposes.
38
50
  *
@@ -56,6 +68,17 @@ const MINT_CLAIM_TTL_MS = 30_000;
56
68
  /** How often the prune alarm runs. */
57
69
  const PRUNE_INTERVAL_MS = 24 * 60 * 60 * 1000;
58
70
  export class GatekeeperState extends DurableObject {
71
+ /**
72
+ * The live half of every enabled hook: the workspace's initiator, held past the call it came on.
73
+ *
74
+ * IN MEMORY, and there is no version of this that is not. A stub is a reference into another
75
+ * Worker, so it cannot be written to storage, and an object that is evicted between two
76
+ * deliveries keeps its records and loses this map. That is why a push with no entry here is
77
+ * COUNTED as missed on the record rather than skipped: the count is what a workspace reads to
78
+ * discover its hook went quiet, and the projection it was pushing is still there to reconcile
79
+ * against.
80
+ */
81
+ #initiators = new Map();
59
82
  /**
60
83
  * Take one delivery: dedupe and act, as ONE durable write.
61
84
  *
@@ -70,32 +93,56 @@ export class GatekeeperState extends DurableObject {
70
93
  return { applied: false, reason: 'duplicate' };
71
94
  }
72
95
  const writes = { [marker]: now };
96
+ const pushes = [];
73
97
  if (effect.kind === 'open') {
74
98
  writes[`${CARD_PREFIX}${effect.card.cardId}`] = effect.card;
99
+ pushes.push({ topic: 'approval_card', cardId: effect.card.cardId });
75
100
  }
76
101
  else if (effect.kind === 'supersede') {
77
102
  const key = `${CARD_PREFIX}${effect.cardId}`;
78
103
  const card = await this.ctx.storage.get(key);
79
104
  if (card !== undefined && card.resolvedAt === null) {
80
105
  writes[key] = { ...card, resolvedAt: now, resolution: 'superseded' };
106
+ pushes.push({ topic: 'approval_card', cardId: effect.cardId });
81
107
  }
82
108
  }
83
109
  else if (effect.kind === 'run-event') {
84
110
  writes[`${RUN_PREFIX}${effect.state.runId}`] = { ...effect.state, updatedAt: now };
111
+ pushes.push({ topic: 'run_event', runId: effect.state.runId });
85
112
  // A run that ended answers nothing more, so its open cards stop asking. Doing it here rather
86
113
  // than lazily at read time is what keeps the inbox honest for an OS that renders the list
87
- // without asking this Gatekeeper anything else.
114
+ // without asking this Gatekeeper anything else, and each settlement is pushed for the same
115
+ // reason: a hook that heard only the run event would leave its gadget showing decisions
116
+ // nobody can answer any more.
88
117
  if (effect.state.terminal) {
89
118
  for (const [key, card] of await this.#openCardsFor(effect.state.runId)) {
90
- writes[key] = { ...card, resolvedAt: now, resolution: `run_${effect.state.event}` };
119
+ writes[key] = {
120
+ ...card,
121
+ resolvedAt: now,
122
+ resolution: `run_${effect.state.event}`,
123
+ };
124
+ pushes.push({ topic: 'approval_card', cardId: card.cardId });
91
125
  }
92
126
  }
93
127
  }
94
128
  await this.ctx.storage.put(writes);
95
129
  await this.#ensureAlarm(now);
96
- return { applied: true, effect: effect.kind === 'none' ? 'none' : effectName(effect.kind) };
130
+ return {
131
+ applied: true,
132
+ effect: effect.kind === 'none' ? 'none' : effectName(effect.kind),
133
+ pushes,
134
+ };
97
135
  }
98
- /** Settle a card this Gatekeeper answered. A card already settled keeps its first resolution. */
136
+ /**
137
+ * Settle a card this Gatekeeper answered. A card already settled keeps its first resolution.
138
+ *
139
+ * The settlement is pushed before this returns, which is the opposite disposition from the
140
+ * webhook receiver's and for the reason that separates the two callers. There the fan-out is
141
+ * deferred because the platform's retry is waiting on the acknowledgement and would re-drive a
142
+ * delivery this Gatekeeper has already committed; here the caller is the session that just
143
+ * answered the card, nothing is retrying it, and a push bounded by its own per-hook deadline
144
+ * costs that one call rather than the record.
145
+ */
99
146
  async resolveCard(cardId, resolution, now) {
100
147
  const key = `${CARD_PREFIX}${cardId}`;
101
148
  const card = await this.ctx.storage.get(key);
@@ -103,6 +150,7 @@ export class GatekeeperState extends DurableObject {
103
150
  return card ?? null;
104
151
  const resolved = { ...card, resolvedAt: now, resolution };
105
152
  await this.ctx.storage.put(key, resolved);
153
+ await this.dispatchHooks([{ topic: 'approval_card', cardId }], now);
106
154
  return resolved;
107
155
  }
108
156
  async getCard(cardId) {
@@ -118,6 +166,154 @@ export class GatekeeperState extends DurableObject {
118
166
  const rows = await this.ctx.storage.list({ prefix: RUN_PREFIX });
119
167
  return [...rows.values()].sort((a, b) => b.updatedAt - a.updatedAt);
120
168
  }
169
+ /**
170
+ * The workspace enabled a hook: store the registration, and hold the live half beside it.
171
+ *
172
+ * The counters of an existing registration SURVIVE a re-enable. A workspace re-arms a hook
173
+ * exactly when it noticed one had gone quiet, and the number that told it so is `missed`;
174
+ * zeroing it on the way back up would delete the evidence at the one moment it is being acted
175
+ * on. What is replaced is the initiator, which the contract asks for by name.
176
+ */
177
+ async enableHook(record, initiator) {
178
+ const key = `${HOOK_PREFIX}${registrationKey(record)}`;
179
+ const existing = await this.ctx.storage.get(key);
180
+ // The record lands FIRST, so a failure between the two halves leaves the one that reports
181
+ // itself: a registration with no live initiator counts every delivery as missed, where a live
182
+ // initiator with no registration is a stub nothing will ever push to and nothing can see.
183
+ await this.ctx.storage.put(key, {
184
+ ...record,
185
+ deliveries: existing?.deliveries ?? record.deliveries,
186
+ missed: existing?.missed ?? record.missed,
187
+ failures: existing?.failures ?? record.failures,
188
+ lastDeliveryAt: existing?.lastDeliveryAt ?? record.lastDeliveryAt,
189
+ lastError: existing?.lastError ?? record.lastError,
190
+ });
191
+ // A re-bind arrives under a fresh hook id and replaces the row (see `registrationKey`), so the
192
+ // id it displaced is one nothing can reach any more: its hold on the workspace's end of a
193
+ // connection is released here or never.
194
+ if (existing !== undefined && existing.hookId !== record.hookId) {
195
+ this.#replaceInitiator(existing.hookId, undefined);
196
+ }
197
+ this.#replaceInitiator(record.hookId, holdInitiator(initiator));
198
+ }
199
+ /**
200
+ * The workspace withdrew a hook: both halves go, which is the permanent clean-up asked for.
201
+ *
202
+ * Found BY HOOK ID rather than addressed by it, because the row is keyed on the target while the
203
+ * controller a workspace persisted names the id it was bound under. A controller whose row was
204
+ * replaced by a later bind from the same gadget finds nothing and settles for releasing its own
205
+ * half, which is the right answer: it is being asked to withdraw a registration that a re-arm
206
+ * has already superseded, and deleting the successor's row would silence a live hook.
207
+ */
208
+ async disableHook(hookId) {
209
+ this.#replaceInitiator(hookId, undefined);
210
+ const rows = await this.ctx.storage.list({ prefix: HOOK_PREFIX });
211
+ for (const [key, record] of rows) {
212
+ if (record.hookId === hookId)
213
+ await this.ctx.storage.delete(key);
214
+ }
215
+ }
216
+ /**
217
+ * The hooks enabled for one account, newest first, each with whether its live half survives.
218
+ *
219
+ * Scoped to the account rather than answering the object's whole set: a session reads this, and
220
+ * one account's gadget bindings are not another's to enumerate.
221
+ */
222
+ async listHooks(accountId) {
223
+ const rows = await this.ctx.storage.list({ prefix: HOOK_PREFIX });
224
+ return [...rows.values()]
225
+ .filter((record) => record.accountId === accountId)
226
+ .sort((a, b) => b.enabledAt - a.enabledAt)
227
+ .map((record) => ({ ...record, live: this.#initiators.has(record.hookId) }));
228
+ }
229
+ /**
230
+ * Push what a change produced to every hook registered for each payload's topic.
231
+ *
232
+ * Called AFTER the write it reports has committed, never as part of it: the card is the durable
233
+ * truth and the push is the accelerator over it, so an outbound call that hangs or refuses costs
234
+ * a notification and never the record of what the deployment reported. Each registration is
235
+ * pushed independently and concurrently, and every outcome lands on that registration's own
236
+ * counters, because one workspace's broken gadget must not decide whether another's hook fires
237
+ * or how long it waits to.
238
+ */
239
+ async dispatchHooks(pushes, now) {
240
+ const report = { delivered: 0, stale: 0, failed: 0 };
241
+ if (pushes.length === 0)
242
+ return report;
243
+ const rows = [...(await this.ctx.storage.list({ prefix: HOOK_PREFIX }))];
244
+ // Every payload is resolved BEFORE any push starts, rather than as each one comes up. The two
245
+ // phases read the same either way, and interleaving them would leave a push in flight across
246
+ // the next `#payloadFor` await with nothing yet attached to its rejection: a storage failure in
247
+ // that window is an unhandled rejection instead of the outcome it should have been.
248
+ const planned = [];
249
+ for (const target of pushes) {
250
+ const registered = rows.filter(([, record]) => record.topic === target.topic);
251
+ // Read once per target rather than once per hook, and not at all for a topic nothing is
252
+ // registered for.
253
+ if (registered.length === 0)
254
+ continue;
255
+ const payload = await this.#payloadFor(target);
256
+ if (payload === null)
257
+ continue;
258
+ for (const [key, record] of registered)
259
+ planned.push({ payload, key, record });
260
+ }
261
+ const work = planned.map((push) => this.#pushOne(push.payload, push.key, push.record, now));
262
+ for (const outcome of await Promise.all(work)) {
263
+ if (outcome === 'delivered')
264
+ report.delivered += 1;
265
+ else if (outcome === 'stale')
266
+ report.stale += 1;
267
+ else
268
+ report.failed += 1;
269
+ }
270
+ return report;
271
+ }
272
+ /**
273
+ * Push to one registration, then fold the outcome onto the row AS IT STANDS.
274
+ *
275
+ * The re-read is the point. A push awaits a call into another Worker, and a non-storage await
276
+ * opens this object's input gate, so by the time it resolves a concurrent `disableHook` may have
277
+ * removed the row and a concurrent delivery may have moved its counters. Writing back the
278
+ * snapshot the push was described from resurrected the withdrawn registration (permanently not
279
+ * live, counting a miss against every later delivery) and discarded the sibling's increments.
280
+ * Reading and writing with no await between them is what makes the fold atomic: a storage
281
+ * operation holds the gate closed, so nothing is delivered in the gap.
282
+ *
283
+ * A row that has GONE, or that a re-arm has replaced with a different hook id, is one this push
284
+ * is no longer about, so its outcome is reported and not recorded.
285
+ */
286
+ async #pushOne(payload, key, record, now) {
287
+ const result = await pushToHook(payload, record, this.#initiators.get(record.hookId));
288
+ const current = await this.ctx.storage.get(key);
289
+ if (current !== undefined && current.hookId === record.hookId) {
290
+ await this.ctx.storage.put(key, applyPushOutcome(current, result, now));
291
+ }
292
+ return result.outcome;
293
+ }
294
+ /**
295
+ * Remember that this deployment minted an account.
296
+ *
297
+ * The one thing an account id has to be checkable for, and the reason it is the only account
298
+ * state here: `addObserver` is handed an id by a verifier and has to decide whether this
299
+ * Gatekeeper has ever heard of it. Nothing else consults this, because nothing else needs to. A
300
+ * session's account id rides `ctx.props` on a stub the workspace holds, so it was minted here by
301
+ * construction, and re-deriving that on every call would be a lookup with no question behind it.
302
+ */
303
+ async recordAccount(accountId, now) {
304
+ await this.ctx.storage.put(`${ACCOUNT_PREFIX}${accountId}`, now);
305
+ }
306
+ /**
307
+ * Whether this deployment minted the named account.
308
+ *
309
+ * Never pruned, and that is deliberate rather than an omission: the workspace holds the account
310
+ * stub for as long as it likes, and an id whose row expired would read as an account this
311
+ * Gatekeeper never made. Revoking an account's keys does not remove it either, because what was
312
+ * revoked is a credential and what is asked here is a fact about who exists.
313
+ */
314
+ async hasAccount(accountId) {
315
+ return (await this.ctx.storage.get(`${ACCOUNT_PREFIX}${accountId}`)) !== undefined;
316
+ }
121
317
  /**
122
318
  * Either the actor's existing key, or an exclusive claim on minting one.
123
319
  *
@@ -198,6 +394,38 @@ export class GatekeeperState extends DurableObject {
198
394
  await this.#pruneOlderThan(RUN_PREFIX, RUN_STATE_RETENTION_MS, now, (state) => state.updatedAt);
199
395
  await this.ctx.storage.setAlarm(now + PRUNE_INTERVAL_MS);
200
396
  }
397
+ /**
398
+ * Install (or drop) one hook's live half, giving back the reference it replaces.
399
+ *
400
+ * One method for both directions because the release is the half that gets forgotten: a
401
+ * duplicate taken on enable and overwritten on the next enable would hold the workspace's end of
402
+ * a connection open for the object's whole lifetime, and nothing about either call site would
403
+ * show it.
404
+ */
405
+ #replaceInitiator(hookId, initiator) {
406
+ const previous = this.#initiators.get(hookId);
407
+ if (previous !== undefined)
408
+ releaseInitiator(previous);
409
+ if (initiator === undefined)
410
+ this.#initiators.delete(hookId);
411
+ else
412
+ this.#initiators.set(hookId, initiator);
413
+ }
414
+ /**
415
+ * The row one push target names, as it stands now.
416
+ *
417
+ * `null` is the honest answer for a row that has gone (a card pruned, a run whose state a later
418
+ * write removed): a callback cannot be handed a payload nothing backs, and a hook that fired on
419
+ * one would be pushing an event with no subject.
420
+ */
421
+ async #payloadFor(target) {
422
+ if (target.topic === 'approval_card') {
423
+ const card = await this.ctx.storage.get(`${CARD_PREFIX}${target.cardId}`);
424
+ return card === undefined ? null : { topic: 'approval_card', card };
425
+ }
426
+ const state = await this.ctx.storage.get(`${RUN_PREFIX}${target.runId}`);
427
+ return state === undefined ? null : { topic: 'run_event', state };
428
+ }
201
429
  async #openCardsFor(runId) {
202
430
  const rows = await this.ctx.storage.list({ prefix: CARD_PREFIX });
203
431
  return [...rows.entries()].filter(([, card]) => card.runId === runId && card.resolvedAt === null);
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAyD,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAKpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAwDD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,eAAe,CAAC,aAAa,CAAC,CAiHhC"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAyD,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAKpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAwDD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,eAAe,CAAC,aAAa,CAAC,CAsHhC"}
package/dist/worker.js CHANGED
@@ -116,7 +116,10 @@ export function createGatekeeperWorker(options) {
116
116
  if (url.pathname === '/webhook') {
117
117
  if (request.method !== 'POST')
118
118
  return problem(405, 'method_not_allowed', 'POST only.');
119
- const outcome = await gatekeeper.takeDelivery(request, Date.now());
119
+ // The hook fan-out rides `waitUntil` rather than the response: the platform is waiting
120
+ // on this acknowledgement with a retry behind it, and a workspace's own callback must
121
+ // never be in a position to spend that retry (see `takeDelivery`).
122
+ const outcome = await gatekeeper.takeDelivery(request, Date.now(), (work) => ctx.waitUntil(work));
120
123
  if (outcome.handled === 'rejected') {
121
124
  return problem(401, outcome.reason, 'This delivery did not verify against the endpoint secret.');
122
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/gatekeeper-worker",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers every park a run stops on. A deployment supplies only its policy; deploy/gatekeeper is the template it copies.",
5
5
  "keywords": [
6
6
  "capnweb",
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "capnweb": "^0.10.0",
40
- "@cat-factory/gatekeeper-bindings": "0.10.0",
41
- "@cat-factory/sdk": "0.28.1"
40
+ "@cat-factory/gatekeeper-bindings": "0.11.0",
41
+ "@cat-factory/sdk": "0.29.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@cloudflare/vitest-pool-workers": "^0.20.3",