@agentunion/fastaun 0.5.33 → 0.5.34

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 (89) hide show
  1. package/CHANGELOG.md +30 -2
  2. package/README.md +28 -26
  3. package/_packed_docs/CHANGELOG.md +30 -2
  4. package/_packed_docs/INDEX.md +17 -3
  5. package/_packed_docs/KITE_DOCS_GUIDE.md +10 -4
  6. package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +58 -8
  7. package/_packed_docs/sdk/0.5.33-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +464 -316
  8. package/_packed_docs/sdk/0.5.33-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +499 -304
  9. package/_packed_docs/sdk/0.5.34-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +133 -0
  10. package/_packed_docs/sdk/0.5.34-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +107 -0
  11. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +16 -13
  12. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +13 -1
  13. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +17 -7
  14. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +55 -14
  15. package/_packed_docs/sdk/09-collab-rpc-manual.md +48 -30
  16. package/_packed_docs/sdk/09-custody-api-manual.md +3 -3
  17. package/_packed_docs/sdk/09-group-rpc-manual.md +53 -6
  18. package/_packed_docs/sdk/09-message-rpc-manual.md +22 -0
  19. package/_packed_docs/sdk/09-meta-rpc-manual.md +2 -1
  20. package/_packed_docs/sdk/09-payload-reference.md +9 -8
  21. package/_packed_docs/sdk/09-proxy-rpc-manual.md +20 -14
  22. package/_packed_docs/sdk/09-storage-rpc-manual.md +1698 -1659
  23. package/_packed_docs/sdk/09-stream-rpc-manual.md +33 -20
  24. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +11 -9
  25. package/_packed_docs/sdk/AUN/344/272/213/344/273/266/345/217/221/345/270/203/350/256/242/351/230/205/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +53 -28
  26. package/_packed_docs/sdk/AUN/344/272/213/344/273/266/345/217/221/345/270/203/350/256/242/351/230/205/345/274/200/345/217/221/347/247/273/346/244/215/346/214/207/345/215/227.md +62 -28
  27. package/_packed_docs/sdk/INDEX.md +21 -9
  28. package/_packed_docs/sdk/README.md +11 -6
  29. package/dist/auth.js +8 -2
  30. package/dist/auth.js.map +1 -1
  31. package/dist/client/control-messages.js +2 -2
  32. package/dist/client/control-messages.js.map +1 -1
  33. package/dist/client/delivery.d.ts +5 -0
  34. package/dist/client/delivery.js +146 -32
  35. package/dist/client/delivery.js.map +1 -1
  36. package/dist/client/lifecycle.js +3 -0
  37. package/dist/client/lifecycle.js.map +1 -1
  38. package/dist/client/rpc-budget.d.ts +21 -0
  39. package/dist/client/rpc-budget.js +82 -0
  40. package/dist/client/rpc-budget.js.map +1 -0
  41. package/dist/client/rpc-pipeline.d.ts +3 -0
  42. package/dist/client/rpc-pipeline.js +166 -60
  43. package/dist/client/rpc-pipeline.js.map +1 -1
  44. package/dist/client/sync-channels.d.ts +89 -0
  45. package/dist/client/sync-channels.js +489 -0
  46. package/dist/client/sync-channels.js.map +1 -0
  47. package/dist/client/v2-e2ee.d.ts +4 -1
  48. package/dist/client/v2-e2ee.js +401 -298
  49. package/dist/client/v2-e2ee.js.map +1 -1
  50. package/dist/client.d.ts +2 -0
  51. package/dist/client.js +63 -1
  52. package/dist/client.js.map +1 -1
  53. package/dist/index.d.ts +1 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/pubsub/binding.js +14 -1
  56. package/dist/pubsub/binding.js.map +1 -1
  57. package/dist/pubsub/channel.d.ts +4 -0
  58. package/dist/pubsub/channel.js +26 -0
  59. package/dist/pubsub/channel.js.map +1 -1
  60. package/dist/pubsub/client.d.ts +9 -0
  61. package/dist/pubsub/client.js +154 -31
  62. package/dist/pubsub/client.js.map +1 -1
  63. package/dist/pubsub/credentials.d.ts +3 -0
  64. package/dist/pubsub/credentials.js +57 -20
  65. package/dist/pubsub/credentials.js.map +1 -1
  66. package/dist/pubsub/index.d.ts +3 -0
  67. package/dist/pubsub/index.js +69 -53
  68. package/dist/pubsub/index.js.map +1 -1
  69. package/dist/pubsub/service.d.ts +3 -0
  70. package/dist/pubsub/service.js +167 -12
  71. package/dist/pubsub/service.js.map +1 -1
  72. package/dist/pubsub/types.d.ts +2 -0
  73. package/dist/storage/lowlevel.d.ts +3 -1
  74. package/dist/storage/lowlevel.js +13 -0
  75. package/dist/storage/lowlevel.js.map +1 -1
  76. package/dist/storage/types.d.ts +10 -0
  77. package/dist/storage/types.js.map +1 -1
  78. package/dist/storage/vfs.d.ts +3 -1
  79. package/dist/storage/vfs.js +2 -2
  80. package/dist/storage/vfs.js.map +1 -1
  81. package/dist/tools/cross-sdk-agent.d.ts +55 -5
  82. package/dist/tools/cross-sdk-agent.js +88 -21
  83. package/dist/tools/cross-sdk-agent.js.map +1 -1
  84. package/dist/transport.d.ts +12 -0
  85. package/dist/transport.js +91 -6
  86. package/dist/transport.js.map +1 -1
  87. package/dist/version.d.ts +1 -1
  88. package/dist/version.js +1 -1
  89. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pubsub/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pubsub/index.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export declare class EventService {
25
25
  private requests;
26
26
  private published;
27
27
  private counters;
28
+ private publicationSummaries;
29
+ private publicationBytes;
28
30
  private scheduler?;
29
31
  private snapshots;
30
32
  private snapshotRefs;
@@ -93,6 +95,7 @@ export declare class EventService {
93
95
  private catalogOp;
94
96
  private validateContent;
95
97
  private counter;
98
+ private listingOp;
96
99
  private publish;
97
100
  private runFanout;
98
101
  private deliver;
@@ -33,6 +33,8 @@ export class EventService {
33
33
  requests = new Map();
34
34
  published = new Map();
35
35
  counters = new Map();
36
+ publicationSummaries = new Map();
37
+ publicationBytes = 0;
36
38
  scheduler;
37
39
  snapshots = new Map();
38
40
  snapshotRefs = new Map();
@@ -82,42 +84,99 @@ export class EventService {
82
84
  return this; this.starting = this.initialize().finally(() => { this.starting = undefined; }); return this.starting; }
83
85
  async initialize() {
84
86
  const saved = await this.state?.load?.();
87
+ this.leases.clear();
88
+ this.leaseSizes.clear();
89
+ this.leaseBytes = this.subscriptionBytes = 0;
90
+ this.nextLeaseExpiry = Infinity;
91
+ this.subscriptions.clear();
92
+ this.subscriptionsByEvent.clear();
93
+ this.snapshots.clear();
85
94
  if (saved && saved.service_aid === this.service_aid) {
86
- this.catalog = copy(saved.catalog ?? this.catalog);
87
- this.allowlist = copy(saved.allowlist ?? this.allowlist);
95
+ this.catalog = copy({ ...saved.catalog, ...this.catalog });
96
+ this.allowlist = copy({ ...saved.allowlist, ...this.allowlist });
88
97
  this.issuedGrants = new Map(saved.issued_grants ?? []);
89
98
  this.pausedCids = new Set(saved.paused_cids ?? []);
90
99
  }
91
100
  this.validateCatalog(this.catalog);
92
101
  this.refreshRevision();
93
- await this.saveState();
94
102
  await this.credentials?.refreshRevocations?.();
103
+ if (saved && saved.service_aid === this.service_aid) {
104
+ for (const [id, value] of saved.leases ?? []) {
105
+ const lease = copy(value);
106
+ if (lease.expires_at <= this.clock() || lease.cid && (this.pausedCids.has(lease.cid) || this.credentials?.isRevoked?.(lease.grant ?? lease.cid)))
107
+ continue;
108
+ lease.scope = lease.scope.filter(item => !!this.catalog[item.event_name] && (lease.auth_mode !== 'allowlist' || this.allowlisted(lease.aid, item)));
109
+ if (!lease.scope.length)
110
+ continue;
111
+ if (lease.auth_mode === 'credential') {
112
+ if (!this.credentials || !lease.grant)
113
+ continue;
114
+ try {
115
+ const credentials = this.credentials;
116
+ const verified = credentials._restoreVerificationContext ? await credentials._restoreVerificationContext(lease.grant, lease.aid, lease.scope, lease.verification_context) : await credentials.verify(lease.grant, lease.aid, lease.scope, undefined);
117
+ lease.expires_at = Math.min(lease.expires_at, Number(verified.expires_at ?? lease.expires_at));
118
+ lease.authorization_until = Math.min(lease.expires_at, Number(verified.proof_expires_at ?? lease.expires_at));
119
+ if (lease.authorization_until <= this.clock())
120
+ continue;
121
+ if (verified.verification_context !== undefined)
122
+ lease.verification_context = verified.verification_context;
123
+ }
124
+ catch (error) {
125
+ if (error instanceof PubSubError && ['FORBIDDEN', 'REAUTH_REQUIRED'].includes(error.code))
126
+ continue;
127
+ throw error;
128
+ }
129
+ }
130
+ this.leases.set(id, lease);
131
+ const size = this.leaseSize(lease);
132
+ this.leaseSizes.set(id, size);
133
+ this.leaseBytes += size;
134
+ this.nextLeaseExpiry = Math.min(this.nextLeaseExpiry, lease.expires_at);
135
+ }
136
+ for (const [key, value] of saved.subscriptions ?? []) {
137
+ const sub = copy(value), lease = this.leases.get(sub.leaseId);
138
+ if (!lease || lease.aid !== sub.aid || !lease.scope.some(item => item.event_name === sub.event && item.action === 'subscribe'))
139
+ continue;
140
+ this.subscriptions.set(key, sub);
141
+ this.subscriptionBytes += sub.size;
142
+ this.generation = Math.max(this.generation, sub.generation);
143
+ let view = this.subscriptionsByEvent.get(sub.event);
144
+ if (!view)
145
+ this.subscriptionsByEvent.set(sub.event, view = new Map());
146
+ view.set(key, sub);
147
+ }
148
+ this.pruneSubscriptions();
149
+ }
150
+ await this.saveState();
95
151
  this.scheduler = new FairScheduler(task => this.deliver(task), { concurrency: Math.min(4, this.limits.event_concurrency ?? 4), quantum: this.limits.quantum ?? 4096, maxQueued: this.limits.delivery_items ?? 4096, maxBytes: Math.min(this.limits.delivery_bytes ?? 8 * 1024 * 1024, this.limit('body_bytes', 64 * 1024 * 1024), 64 * 1024 * 1024), perAidQueued: this.limits.per_aid_items ?? 512, perAidBytes: this.limits.per_aid_bytes ?? 2 * 1024 * 1024, costOverhead: this.limits.cost_overhead ?? 128, onDrop: (task, reason) => { this.deliveryLeases.delete(task.message_id); this.counter(task.event_name)[reason === 'failed' ? 'failed' : 'skipped_revoked']++; } });
96
152
  this.scheduler.onCapacity(() => this.capacityChanged());
97
153
  this.counters.clear();
154
+ this.publicationSummaries.clear();
155
+ this.publicationBytes = 0;
156
+ this.tokenKey = uuid();
98
157
  this.since = this.clock();
99
158
  this.closed = false;
100
159
  this.running = true;
101
160
  await this.scheduler.start();
102
161
  return this;
103
162
  }
104
- saveState() { const value = copy({ service_aid: this.service_aid, catalog: this.catalog, allowlist: this.allowlist, issued_grants: [...this.issuedGrants], paused_cids: [...this.pausedCids] }); const write = this.stateWrite.then(async () => { await this.state?.save?.(value); }); this.stateWrite = write.catch(() => { }); return write; }
163
+ saveState() { const value = copy({ service_aid: this.service_aid, catalog: this.catalog, allowlist: this.allowlist, issued_grants: [...this.issuedGrants], paused_cids: [...this.pausedCids], leases: [...this.leases], subscriptions: [...this.subscriptions] }); const write = this.stateWrite.then(async () => { await this.state?.save?.(value); }); this.stateWrite = write.catch(() => { }); return write; }
105
164
  async close() { if (this.starting) {
106
165
  try {
107
166
  await this.starting;
108
167
  }
109
168
  catch { }
110
169
  } this.lifecycleGeneration++; this.closed = true; this.running = false; this.capacityChanged(); await this.fanoutTask; if (this.scheduler)
111
- await this.scheduler.close(); this.scheduler = undefined; this.fanout.clear(); this.fanoutReady = []; this.fanoutCount = this.fanoutBytes = this.snapshotBytes = 0; this.snapshotRefs.clear(); this.deliveryLeases.clear(); this.leases.clear(); this.leaseSizes.clear(); this.leaseBytes = this.subscriptionBytes = 0; this.nextLeaseExpiry = Infinity; this.subscriptions.clear(); this.subscriptionsByEvent.clear(); this.snapshots.clear(); this.credentials?.clearVerified?.(); this.requests.clear(); this.published.clear(); await this.stateWrite; }
170
+ await this.scheduler.close(); this.scheduler = undefined; this.fanout.clear(); this.fanoutReady = []; this.fanoutCount = this.fanoutBytes = this.snapshotBytes = 0; this.snapshotRefs.clear(); this.deliveryLeases.clear(); this.leases.clear(); this.leaseSizes.clear(); this.leaseBytes = this.subscriptionBytes = 0; this.nextLeaseExpiry = Infinity; this.subscriptions.clear(); this.subscriptionsByEvent.clear(); this.snapshots.clear(); this.credentials?.clearVerified?.(); this.requests.clear(); this.published.clear(); this.publicationSummaries.clear(); this.publicationBytes = 0; await this.stateWrite; }
112
171
  async drain() { while (this.fanoutTask)
113
172
  await this.fanoutTask; await this.scheduler?.drain(); }
114
173
  setSend(send) { this.send = send; }
115
174
  async updateConfig(config) { if (config.catalog) {
116
175
  this.validateCatalog(config.catalog);
117
- this.catalog = copy(config.catalog);
176
+ this.catalog = copy({ ...this.catalog, ...config.catalog });
118
177
  this.refreshRevision();
119
178
  } if (config.allowlist)
120
- this.allowlist = copy(config.allowlist); for (const [id, lease] of this.leases) {
179
+ this.allowlist = copy({ ...this.allowlist, ...config.allowlist }); for (const [id, lease] of this.leases) {
121
180
  lease.scope = lease.scope.filter(item => !!this.catalog[item.event_name] && (lease.auth_mode !== 'allowlist' || this.allowlisted(lease.aid, item)));
122
181
  if (!lease.scope.length)
123
182
  this.removeLease(id);
@@ -166,6 +225,8 @@ export class EventService {
166
225
  return this.catalogOp(senderAid, request, undefined, undefined, local);
167
226
  if (op === 'stats')
168
227
  return this.statsOp(senderAid, request);
228
+ if (op === 'publications' || op === 'subscriptions')
229
+ return this.listingOp(senderAid, request, local);
169
230
  const id = request.request_id;
170
231
  if (!id)
171
232
  throw new PubSubError('INVALID_REQUEST');
@@ -183,7 +244,8 @@ export class EventService {
183
244
  throw new PubSubError('OVERLOADED');
184
245
  const entry = { fingerprint: fp, expiresAt: request.expires_at ?? this.clock() + 60_000 };
185
246
  this.requests.set(key, entry);
186
- const promise = Promise.resolve().then(() => this.dispatch(senderAid, request, route));
247
+ const promise = Promise.resolve().then(async () => { const result = await this.dispatch(senderAid, request, route); if (this.state?.save && ['authorize', 'renew', 'subscribe', 'unsubscribe'].includes(op))
248
+ await this.saveState(); return result; });
187
249
  entry.promise = promise;
188
250
  try {
189
251
  const result = await promise;
@@ -248,6 +310,7 @@ export class EventService {
248
310
  let expires = this.clock() + 12_000_000;
249
311
  let cid;
250
312
  let proofExpires = expires;
313
+ let verificationContext;
251
314
  if (mode === 'allowlist') {
252
315
  if (scope.some(item => !this.allowlisted(sender, item)))
253
316
  throw new PubSubError('FORBIDDEN');
@@ -262,13 +325,14 @@ export class EventService {
262
325
  if (this.pausedCids.has(cid) || this.credentials.isRevoked?.(grant))
263
326
  throw new PubSubError('REAUTH_REQUIRED');
264
327
  proofExpires = Number(verified.proof_expires_at ?? expires);
328
+ verificationContext = verified.verification_context;
265
329
  }
266
330
  else
267
331
  throw new PubSubError('INVALID_AUTH_MODE');
268
332
  if (generation !== this.lifecycleGeneration || this.closed)
269
333
  throw new PubSubError('SERVICE_CLOSED');
270
334
  const grant = mode === 'credential' ? (request.grant ?? request.credential) : undefined;
271
- const lease = { lease_id: uuid(), aid: sender, ...(route ? { route: copy(route) } : {}), scope, auth_mode: mode, expires_at: expires, authorization_until: Math.min(expires, proofExpires), ...(cid ? { cid } : {}), ...(grant ? { grant } : {}) };
335
+ const lease = { lease_id: uuid(), aid: sender, ...(route ? { route: copy(route) } : {}), scope, auth_mode: mode, expires_at: expires, authorization_until: Math.min(expires, proofExpires), ...(cid ? { cid } : {}), ...(grant ? { grant } : {}), ...(verificationContext !== undefined ? { verification_context: verificationContext } : {}) };
272
336
  const size = this.leaseSize(lease);
273
337
  if (this.leases.size >= this.limit('lease_items', 16384) || this.leaseBytes + size > this.limit('lease_bytes', 8 * 1024 * 1024))
274
338
  throw new PubSubError('OVERLOADED');
@@ -305,7 +369,7 @@ export class EventService {
305
369
  throw new PubSubError('REAUTH_REQUIRED');
306
370
  }
307
371
  catch (error) {
308
- if (error instanceof PubSubError && error.code === 'TIMEOUT')
372
+ if (!(error instanceof PubSubError) || !['FORBIDDEN', 'REAUTH_REQUIRED', 'CREDENTIAL_REVOKED', 'CREDENTIAL_EXPIRED'].includes(error.code))
309
373
  throw error;
310
374
  this.removeLease(lease.lease_id);
311
375
  this.pruneSubscriptions();
@@ -313,7 +377,7 @@ export class EventService {
313
377
  }
314
378
  }
315
379
  async renew(sender, request) { const old = this.lease(sender, request.lease_id); if (old.auth_mode === 'credential')
316
- await this.credentials?.assertNotRevoked?.(old.grant ?? old.cid, request.expires_at); const now = this.clock(); let expires = now + 12_000_000, proofExpires = expires; let grant = old.grant, cid = old.cid; if (old.auth_mode === 'credential') {
380
+ await this.credentials?.assertNotRevoked?.(old.grant ?? old.cid, request.expires_at); const now = this.clock(); let expires = now + 12_000_000, proofExpires = expires; let grant = old.grant, cid = old.cid; let verificationContext = old.verification_context; if (old.auth_mode === 'credential') {
317
381
  grant = request.grant ?? old.grant;
318
382
  if (!this.credentials || !grant)
319
383
  throw new PubSubError('REAUTH_REQUIRED');
@@ -321,11 +385,12 @@ export class EventService {
321
385
  const verified = await this.credentials.verify(grant, sender, old.scope, request, request.expires_at);
322
386
  expires = Math.min(expires, Number(verified.expires_at));
323
387
  proofExpires = Number(verified.proof_expires_at ?? expires);
388
+ verificationContext = verified.verification_context;
324
389
  cid = String(verified.cid ?? grant.cid ?? '');
325
390
  if (Math.min(expires, proofExpires) <= now || this.pausedCids.has(cid) || this.credentials.isRevoked?.(grant))
326
391
  throw new PubSubError('REAUTH_REQUIRED');
327
392
  } if (this.lease(sender, request.lease_id) !== old)
328
- throw new PubSubError('REAUTH_REQUIRED'); const updated = { ...old, grant, cid, expires_at: expires, authorization_until: Math.min(expires, proofExpires) }; const change = this.leaseSize(updated) - (this.leaseSizes.get(old.lease_id) ?? 0); if (this.leaseBytes + change > this.limit('lease_bytes', 8 * 1024 * 1024))
393
+ throw new PubSubError('REAUTH_REQUIRED'); const updated = { ...old, grant, cid, expires_at: expires, authorization_until: Math.min(expires, proofExpires), ...(verificationContext !== undefined ? { verification_context: verificationContext } : {}) }; const change = this.leaseSize(updated) - (this.leaseSizes.get(old.lease_id) ?? 0); if (this.leaseBytes + change > this.limit('lease_bytes', 8 * 1024 * 1024))
329
394
  throw new PubSubError('OVERLOADED'); Object.assign(old, updated); this.leaseBytes += change; this.leaseSizes.set(old.lease_id, this.leaseSize(updated)); this.nextLeaseExpiry = Math.min(this.nextLeaseExpiry, expires); return this.leaseResult(old); }
330
395
  events(request) { const names = request.events ?? (request.event_name ? [request.event_name] : []); if (!names.length || names.some(name => typeof name !== 'string' || !this.catalog[name]))
331
396
  throw new PubSubError('UNKNOWN_EVENT'); return [...new Set(names)]; }
@@ -443,6 +508,90 @@ export class EventService {
443
508
  } return true; }
444
509
  counter(name) { const c = this.counters.get(name) ?? {}; for (const k of ['published', 'matched', 'submitted', 'failed', 'unconfirmed', 'deduplicated', 'rejected', 'skipped_expired', 'skipped_overloaded', 'skipped_revoked'])
445
510
  c[k] ??= 0; this.counters.set(name, c); return c; }
511
+ async listingOp(sender, request, local) {
512
+ const generation = this.lifecycleGeneration, check = () => { if (generation !== this.lifecycleGeneration || this.closed || !this.running)
513
+ throw new PubSubError('SERVICE_CLOSED'); };
514
+ const action = request.op === 'publications' ? 'publish' : 'subscribe', lease = local ? undefined : this.lease(sender, request.lease_id);
515
+ let scope = local ? Object.keys(this.catalog).sort() : [...new Set(lease.scope.filter(item => item.action === action).map(item => item.event_name))].sort();
516
+ if (!local && !scope.length)
517
+ throw new PubSubError('FORBIDDEN');
518
+ const limit = request.limit ?? 50;
519
+ if (!Number.isInteger(limit) || limit < 1 || limit > 200)
520
+ throw new PubSubError('INVALID_LIMIT');
521
+ let binding = digest([request.op, local, sender, lease?.lease_id ?? null, scope, request.event_name ?? null, this.since]), pageExpires = Infinity;
522
+ let last;
523
+ if (request.page_token !== undefined) {
524
+ try {
525
+ const envelope = JSON.parse(new TextDecoder().decode(Uint8Array.from(atob(request.page_token), value => value.charCodeAt(0))));
526
+ if (envelope.signature !== digest([this.tokenKey, envelope.token]) || envelope.token.binding !== binding || envelope.token.expires_at <= this.clock() || !Array.isArray(envelope.token.last) || envelope.token.last.length !== (action === 'publish' ? 2 : 4) || envelope.token.last.some((value) => typeof value !== 'string'))
527
+ throw new Error();
528
+ last = envelope.token.last;
529
+ pageExpires = envelope.token.expires_at;
530
+ }
531
+ catch {
532
+ throw new PubSubError('INVALID_PAGE_TOKEN');
533
+ }
534
+ }
535
+ if (action === 'subscribe') {
536
+ const checked = new Set();
537
+ for (const sub of this.subscriptions.values()) {
538
+ if ((!local && sub.leaseId !== lease.lease_id) || !scope.includes(sub.event) || request.event_name && sub.event !== request.event_name || checked.has(sub.leaseId))
539
+ continue;
540
+ checked.add(sub.leaseId);
541
+ const current = this.leases.get(sub.leaseId);
542
+ if (!current)
543
+ continue;
544
+ try {
545
+ await this.refreshProof(this.lease(current.aid, current.lease_id), request.expires_at);
546
+ }
547
+ catch (error) {
548
+ check();
549
+ if (!(error instanceof PubSubError) || !['REAUTH_REQUIRED', 'FORBIDDEN'].includes(error.code))
550
+ throw error;
551
+ }
552
+ check();
553
+ }
554
+ this.pruneSubscriptions();
555
+ }
556
+ check();
557
+ const currentLease = local ? undefined : this.lease(sender, request.lease_id);
558
+ scope = local ? Object.keys(this.catalog).sort() : [...new Set(currentLease.scope.filter(item => item.action === action).map(item => item.event_name))].sort();
559
+ if (!local && !scope.length)
560
+ throw new PubSubError('FORBIDDEN');
561
+ const currentBinding = digest([request.op, local, sender, currentLease?.lease_id ?? null, scope, request.event_name ?? null, this.since]);
562
+ if (request.page_token !== undefined && (binding !== currentBinding || pageExpires <= this.clock()))
563
+ throw new PubSubError('INVALID_PAGE_TOKEN');
564
+ binding = currentBinding;
565
+ const key = (item) => action === 'publish' ? [String(item.event_name), String(item.publisher_aid)] : [String(item.event_name), String(item.subscriber_aid), String(item.device_id), String(item.slot_id)];
566
+ const compare = (a, b) => { for (let i = 0; i < a.length; i++) {
567
+ const left = Array.from(a[i], value => value.codePointAt(0)), right = Array.from(b[i], value => value.codePointAt(0));
568
+ for (let j = 0; j < Math.min(left.length, right.length); j++)
569
+ if (left[j] !== right[j])
570
+ return left[j] - right[j];
571
+ if (left.length !== right.length)
572
+ return left.length - right.length;
573
+ } return 0; };
574
+ const rows = action === 'publish' ? [...this.publicationSummaries.values()].filter(item => scope.includes(item.event_name) && (!request.event_name || item.event_name === request.event_name) && (local || item.publisher_aid === sender)).map(item => copy(item)) : [...this.subscriptions.values()].filter(sub => { const current = this.leases.get(sub.leaseId); return current && current.expires_at > this.clock() && (current.auth_mode !== 'credential' || current.authorization_until > this.clock()) && current.scope.some(item => item.event_name === sub.event && item.action === 'subscribe') && (local || sub.leaseId === currentLease.lease_id) && scope.includes(sub.event) && (!request.event_name || sub.event === request.event_name); }).map(sub => { const current = this.leases.get(sub.leaseId); return { subscriber_aid: sub.aid, event_name: sub.event, device_id: current.route?.device_id ?? '', slot_id: current.route?.slot_id ?? '', expires_at: current.expires_at }; });
575
+ const remaining = rows.sort((a, b) => compare(key(a), key(b))).filter(item => !last || compare(key(item), last) > 0), asOf = this.clock();
576
+ const result = (items) => {
577
+ const token = { binding, last: items.length ? key(items[items.length - 1]) : last, expires_at: Math.min(this.clock() + 60000, lease?.expires_at ?? Infinity) };
578
+ const next = items.length && items.length < remaining.length ? btoa(String.fromCharCode(...new TextEncoder().encode(JSON.stringify({ token, signature: digest([this.tokenKey, token]) })))) : null;
579
+ return { service_aid: this.service_aid, since: this.since, as_of: asOf, items, next_page_token: next };
580
+ };
581
+ const fits = (items) => new TextEncoder().encode(json({ type: 'app.pubsub.v1', op: `${request.op}.result`, service_aid: this.service_aid, request_id: request.request_id, expires_at: request.expires_at, ...(request.event_id ? { event_id: request.event_id } : {}), result: result(items) })).byteLength <= Math.min(this.limit('catalog_page_bytes', 65536), 65536);
582
+ const items = [];
583
+ for (const item of remaining.slice(0, limit)) {
584
+ if (!fits([...items, item])) {
585
+ if (!items.length)
586
+ throw new PubSubError('MESSAGE_TOO_LARGE');
587
+ break;
588
+ }
589
+ items.push(item);
590
+ }
591
+ if (!fits(items))
592
+ throw new PubSubError('MESSAGE_TOO_LARGE');
593
+ return result(items);
594
+ }
446
595
  async publish(sender, request, reservation) {
447
596
  const event = request.event_name;
448
597
  if (!event || !this.catalog[event])
@@ -467,6 +616,10 @@ export class EventService {
467
616
  this.counter(event).deduplicated++;
468
617
  return copy(prior.result);
469
618
  }
619
+ const summaryKey = json([sender, event]), previous = this.publicationSummaries.get(summaryKey), summary = { publisher_aid: sender, event_name: event, published: (previous?.published ?? 0) + 1, first_published_at: previous?.first_published_at ?? now, last_published_at: now };
620
+ const summaryBytes = new TextEncoder().encode(json(summary)).byteLength, previousBytes = previous ? new TextEncoder().encode(json(previous)).byteLength : 0;
621
+ if (!previous && this.publicationSummaries.size >= this.limit('publication_items', 8192) || this.publicationBytes + summaryBytes - previousBytes > this.limit('publication_bytes', 4 * 1024 * 1024))
622
+ throw new PubSubError('OVERLOADED');
470
623
  const size = new TextEncoder().encode(json(payload)).byteLength + 128, queue = this.fanout.get(sender) ?? [], snapshotView = this.snapshot(event), snapshot = snapshotView.entries, snapshotSize = snapshotView.size;
471
624
  if (size - 128 > this.limit('event_bytes', 65536) || !this.publishCapacityAvailable(size, reservation?.bytes ?? 0) || queue.length >= this.limit('accepted_per_aid', 128) || this.published.size >= this.limit('dedup_items', 8192) || (!this.snapshotRefs.has(snapshot) && (this.snapshotRefs.size >= this.limit('snapshot_items', 256) || this.snapshotBytes + snapshotSize > this.limit('snapshot_bytes', 8 * 1024 * 1024))))
472
625
  throw new PubSubError('OVERLOADED');
@@ -492,6 +645,8 @@ export class EventService {
492
645
  this.published.set(key, { fingerprint, result, expiresAt: deadline });
493
646
  this.counter(event).published++;
494
647
  this.capacityChanged();
648
+ this.publicationSummaries.set(summaryKey, summary);
649
+ this.publicationBytes += summaryBytes - previousBytes;
495
650
  if (!this.fanoutTask)
496
651
  this.fanoutTask = new Promise(resolve => setTimeout(resolve, 0)).then(() => this.runFanout()).finally(() => { this.fanoutTask = undefined; });
497
652
  return result;