@pacspace-io/sdk 0.1.0 → 0.2.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 (40) hide show
  1. package/README.md +65 -9
  2. package/dist/client.d.ts +33 -2
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +294 -19
  5. package/dist/client.js.map +1 -1
  6. package/dist/errors/index.d.ts +24 -1
  7. package/dist/errors/index.d.ts.map +1 -1
  8. package/dist/errors/index.js +44 -4
  9. package/dist/errors/index.js.map +1 -1
  10. package/dist/index.d.ts +49 -11
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +106 -7
  13. package/dist/index.js.map +1 -1
  14. package/dist/resources/balance.d.ts +207 -13
  15. package/dist/resources/balance.d.ts.map +1 -1
  16. package/dist/resources/balance.js +356 -16
  17. package/dist/resources/balance.js.map +1 -1
  18. package/dist/resources/submission.d.ts +79 -0
  19. package/dist/resources/submission.d.ts.map +1 -0
  20. package/dist/resources/submission.js +398 -0
  21. package/dist/resources/submission.js.map +1 -0
  22. package/dist/types/balance.d.ts +489 -19
  23. package/dist/types/balance.d.ts.map +1 -1
  24. package/dist/types/config.d.ts +51 -1
  25. package/dist/types/config.d.ts.map +1 -1
  26. package/dist/types/submission.d.ts +125 -0
  27. package/dist/types/submission.d.ts.map +1 -0
  28. package/dist/types/submission.js +3 -0
  29. package/dist/types/submission.js.map +1 -0
  30. package/dist/webhooks/index.d.ts +1 -1
  31. package/dist/webhooks/index.d.ts.map +1 -1
  32. package/dist/webhooks/types.d.ts +27 -31
  33. package/dist/webhooks/types.d.ts.map +1 -1
  34. package/dist/webhooks/types.js +0 -3
  35. package/dist/webhooks/types.js.map +1 -1
  36. package/dist/webhooks/verify.d.ts +5 -0
  37. package/dist/webhooks/verify.d.ts.map +1 -1
  38. package/dist/webhooks/verify.js +19 -4
  39. package/dist/webhooks/verify.js.map +1 -1
  40. package/package.json +1 -1
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BalanceResource = void 0;
4
4
  const polling_1 = require("../utils/polling");
5
+ const submission_1 = require("./submission");
5
6
  /**
6
7
  * PacSpace Balance API resource.
7
8
  *
@@ -15,8 +16,12 @@ const polling_1 = require("../utils/polling");
15
16
  */
16
17
  class BalanceResource {
17
18
  /** @internal */
18
- constructor(client) {
19
+ constructor(client, submissionOptions) {
19
20
  this.client = client;
21
+ this.submission = new submission_1.SubmissionCoordinator({
22
+ emitBatch: (deltas) => this.emitBatch(deltas),
23
+ options: submissionOptions,
24
+ });
20
25
  }
21
26
  // -------------------------------------------------------------------------
22
27
  // Emit
@@ -85,8 +90,131 @@ class BalanceResource {
85
90
  if (['ANCHORED', 'VERIFIED', 'FAILED'].includes(initial.status)) {
86
91
  return initial;
87
92
  }
88
- // Poll for terminal status using the anchor endpoint from writes controller
89
- return (0, polling_1.pollUntilTerminal)(() => this.client.get(`/api/v1/writes/${initial.anchorId}`, { signal }), { timeout, pollInterval, signal });
93
+ // Poll for terminal status using the balance delta endpoint
94
+ return (0, polling_1.pollUntilTerminal)(() => this.client.get(`/api/v1/balance/delta/${initial.anchorId}`, { signal }), { timeout, pollInterval, signal });
95
+ }
96
+ /**
97
+ * Check the status of a previously emitted delta.
98
+ *
99
+ * @param anchorId - The anchor ID returned from emit.
100
+ * @param options - Request overrides.
101
+ * @returns Delta status with receipt and transaction details.
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * const status = await pac.balance.deltaStatus('anc_abc123');
106
+ * console.log(status.status); // 'QUEUED', 'ANCHORED', etc.
107
+ * ```
108
+ */
109
+ async deltaStatus(anchorId, options) {
110
+ return this.client.get(`/api/v1/balance/delta/${encodeURIComponent(anchorId)}`, options);
111
+ }
112
+ /**
113
+ * Alias for `deltaStatus()` with lifecycle-oriented naming.
114
+ */
115
+ async getAnchorStatus(anchorId, options) {
116
+ return this.deltaStatus(anchorId, options);
117
+ }
118
+ /**
119
+ * Poll anchor lifecycle until it reaches a terminal status.
120
+ *
121
+ * Terminal statuses are `ANCHORED`, `VERIFIED`, and `FAILED`.
122
+ */
123
+ async waitForAnchored(anchorId, options) {
124
+ const { timeout = 60000, pollInterval = 2000, signal, ...requestOptions } = options ?? {};
125
+ return (0, polling_1.pollUntilTerminal)(() => this.getAnchorStatus(anchorId, {
126
+ ...requestOptions,
127
+ signal,
128
+ }), { timeout, pollInterval, signal });
129
+ }
130
+ /**
131
+ * Retrieve tenant usage counters and remaining allotment.
132
+ */
133
+ async usage(options) {
134
+ return this.client.get('/api/v1/balance/usage', options);
135
+ }
136
+ /**
137
+ * Detect missing per-customer sequence ranges.
138
+ *
139
+ * Use this to identify gaps and re-emit missing deltas safely.
140
+ */
141
+ async gaps(customerId, options) {
142
+ const { fromSequence, toSequence, limit, ...requestOptions } = options ?? {};
143
+ const params = new URLSearchParams();
144
+ if (fromSequence !== undefined)
145
+ params.set('fromSequence', fromSequence);
146
+ if (toSequence !== undefined)
147
+ params.set('toSequence', toSequence);
148
+ if (limit !== undefined)
149
+ params.set('limit', String(limit));
150
+ const query = params.toString();
151
+ const path = `/api/v1/balance/gaps/${encodeURIComponent(customerId)}${query ? `?${query}` : ''}`;
152
+ return this.client.get(path, requestOptions);
153
+ }
154
+ /**
155
+ * Record multiple deltas in a single batch request.
156
+ *
157
+ * Ideal for end-of-day reconciliation or importing historical data.
158
+ * Up to 100 deltas per batch.
159
+ *
160
+ * @param deltas - Array of deltas to record.
161
+ * @param options - Request overrides.
162
+ * @returns Per-delta results with totals.
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const result = await pac.balance.emitBatch([
167
+ * { customerId: 'cust_123', delta: -100, reason: 'usage' },
168
+ * { customerId: 'cust_456', delta: -200, reason: 'usage' },
169
+ * ]);
170
+ * console.log(result.totalQueued); // 2
171
+ * ```
172
+ */
173
+ async emitBatch(deltas, options) {
174
+ const { ...requestOptions } = options ?? {};
175
+ return this.client.post('/api/v1/balance/delta/batch', { deltas }, requestOptions);
176
+ }
177
+ /**
178
+ * Queue one tenant-produced summary for SDK-managed submission.
179
+ */
180
+ queueSummary(summary) {
181
+ return this.submission.queueSummary(summary);
182
+ }
183
+ /**
184
+ * Queue multiple tenant-produced summaries.
185
+ */
186
+ queueSummaries(summaries) {
187
+ return this.submission.queueSummaries(summaries);
188
+ }
189
+ /**
190
+ * Flush queued summaries immediately.
191
+ */
192
+ async flushSummaries(options) {
193
+ return this.submission.flushSummaries(options);
194
+ }
195
+ /**
196
+ * Start periodic summary submission scheduling.
197
+ */
198
+ startSummaryScheduler() {
199
+ this.submission.start();
200
+ }
201
+ /**
202
+ * Stop periodic summary submission scheduling.
203
+ */
204
+ stopSummaryScheduler() {
205
+ this.submission.stop();
206
+ }
207
+ /**
208
+ * Get queue/scheduler state for summary submission automation.
209
+ */
210
+ getSummaryQueueState() {
211
+ return this.submission.getQueueState();
212
+ }
213
+ /**
214
+ * Stop scheduler and flush queued summaries (best for graceful shutdown).
215
+ */
216
+ async shutdownSummaryScheduler() {
217
+ await this.submission.shutdown();
90
218
  }
91
219
  // -------------------------------------------------------------------------
92
220
  // Derive
@@ -113,7 +241,7 @@ class BalanceResource {
113
241
  * ```
114
242
  */
115
243
  async derive(customerId, options) {
116
- const { startingBalance, startingCheckpoint, startingCheckpointType, ...requestOptions } = options ?? {};
244
+ const { startingBalance, startingCheckpoint, startingCheckpointType, limit, offset, ...requestOptions } = options ?? {};
117
245
  // Build query string
118
246
  const params = new URLSearchParams();
119
247
  if (startingBalance !== undefined) {
@@ -125,6 +253,12 @@ class BalanceResource {
125
253
  if (startingCheckpointType !== undefined) {
126
254
  params.set('startingCheckpointType', startingCheckpointType);
127
255
  }
256
+ if (limit !== undefined) {
257
+ params.set('limit', String(limit));
258
+ }
259
+ if (offset !== undefined) {
260
+ params.set('offset', String(offset));
261
+ }
128
262
  const query = params.toString();
129
263
  const path = `/api/v1/balance/derive/${encodeURIComponent(customerId)}${query ? `?${query}` : ''}`;
130
264
  return this.client.get(path, requestOptions);
@@ -178,22 +312,57 @@ class BalanceResource {
178
312
  /**
179
313
  * Generate a verifiable receipt for a customer.
180
314
  *
181
- * Returns a human-readable receipt containing all verified deltas
182
- * and cryptographic proof data that any party can independently verify.
315
+ * When `options.period` is provided, returns a period-specific receipt (proof root,
316
+ * verifyUrl, verificationReference) suitable for sharing on invoices. When
317
+ * omitted, returns the full ledger receipt with all verified deltas.
183
318
  *
184
319
  * @param customerId - The customer account to generate a receipt for.
185
- * @param options - Request overrides.
186
- * @returns Receipt with verification data.
320
+ * @param options - Optional period (YYYY-MM) and request overrides.
321
+ * @returns Receipt with verification data; shape depends on whether period is set.
187
322
  *
188
323
  * @example
189
324
  * ```typescript
190
- * const receipt = await pac.balance.receipt('cust_123');
191
- * console.log(receipt.finalBalance);
192
- * console.log(receipt.verification.itemHashes);
325
+ * // Period-specific receipt (shareable proof for invoices)
326
+ * const receipt = await pac.balance.receipt('cust_123', { period: '2026-02' });
327
+ * console.log(receipt.proofRoot); // Include on invoice
328
+ * console.log(receipt.verifyUrl); // Share with counterparty
329
+ *
330
+ * // Full ledger receipt
331
+ * const full = await pac.balance.receipt('cust_123');
332
+ * console.log(full.finalBalance);
193
333
  * ```
194
334
  */
195
335
  async receipt(customerId, options) {
196
- return this.client.get(`/api/v1/balance/receipt/${encodeURIComponent(customerId)}`, options);
336
+ const opts = options ?? {};
337
+ const hasScopedReceipt = opts.period !== undefined ||
338
+ opts.timePreset !== undefined ||
339
+ opts.startDate !== undefined ||
340
+ opts.endDate !== undefined;
341
+ if (hasScopedReceipt) {
342
+ return this.receiptForPeriod(customerId, opts);
343
+ }
344
+ const { period: _period, timePreset: _timePreset, startDate: _startDate, endDate: _endDate, ...requestOptions } = opts;
345
+ const hasOverrides = Object.keys(requestOptions).length > 0;
346
+ return this.client.get(`/api/v1/balance/receipt/${encodeURIComponent(customerId)}`, hasOverrides ? requestOptions : undefined);
347
+ }
348
+ /**
349
+ * @internal
350
+ * Generate a period-specific receipt (proof root, verifyUrl). Used by receipt().
351
+ */
352
+ async receiptForPeriod(customerId, options) {
353
+ const { period, timePreset, startDate, endDate, ...requestOptions } = options ?? {};
354
+ const params = new URLSearchParams();
355
+ if (period !== undefined)
356
+ params.set('period', period);
357
+ if (timePreset !== undefined)
358
+ params.set('timePreset', timePreset);
359
+ if (startDate !== undefined)
360
+ params.set('startDate', startDate);
361
+ if (endDate !== undefined)
362
+ params.set('endDate', endDate);
363
+ const query = params.toString();
364
+ const path = `/api/v1/balance/invoice-proof/${encodeURIComponent(customerId)}${query ? `?${query}` : ''}`;
365
+ return this.client.get(path, requestOptions);
197
366
  }
198
367
  // -------------------------------------------------------------------------
199
368
  // Checkpoint
@@ -201,9 +370,9 @@ class BalanceResource {
201
370
  /**
202
371
  * Commit a period-end checkpoint.
203
372
  *
204
- * Computes a Merkle root over all verified deltas in the billing window
205
- * and anchors it on-chain. The checkpoint hash can be included in invoices
206
- * for instant counterparty verification.
373
+ * Computes a proof root over all verified deltas in the billing window
374
+ * and records it on the public verification layer. The proof root can be
375
+ * included in invoices for instant counterparty verification.
207
376
  *
208
377
  * @param customerId - Customer to checkpoint (omit for all customers).
209
378
  * @param options - Period (YYYY-MM) and request overrides.
@@ -218,14 +387,185 @@ class BalanceResource {
218
387
  * ```
219
388
  */
220
389
  async checkpoint(customerId, options) {
221
- const { period, ...requestOptions } = options ?? {};
390
+ const { period, timePreset, startDate, endDate, mode, fingerprints, ...requestOptions } = options ?? {};
222
391
  const body = {};
223
392
  if (customerId !== undefined)
224
393
  body.customerId = customerId;
225
394
  if (period !== undefined)
226
395
  body.period = period;
396
+ if (timePreset !== undefined)
397
+ body.timePreset = timePreset;
398
+ if (startDate !== undefined)
399
+ body.startDate = startDate;
400
+ if (endDate !== undefined)
401
+ body.endDate = endDate;
402
+ if (mode !== undefined)
403
+ body.mode = mode;
404
+ if (fingerprints !== undefined)
405
+ body.fingerprints = fingerprints;
227
406
  return this.client.post('/api/v1/balance/checkpoint', body, requestOptions);
228
407
  }
408
+ // -------------------------------------------------------------------------
409
+ // List Checkpoints
410
+ // -------------------------------------------------------------------------
411
+ /**
412
+ * List committed checkpoints for your tenant.
413
+ *
414
+ * Returns a paginated list of checkpoints, optionally filtered by
415
+ * customer ID and/or billing period.
416
+ *
417
+ * @param options - Filter and pagination options.
418
+ * @returns Paginated list of checkpoints.
419
+ *
420
+ * @example
421
+ * ```typescript
422
+ * const { checkpoints } = await pac.balance.listCheckpoints({
423
+ * period: '2026-02',
424
+ * limit: 10,
425
+ * });
426
+ * ```
427
+ */
428
+ async listCheckpoints(options) {
429
+ const { customerId, period, timePreset, startDate, endDate, limit, offset, ...requestOptions } = options ?? {};
430
+ const params = new URLSearchParams();
431
+ if (customerId !== undefined)
432
+ params.set('customerId', customerId);
433
+ if (period !== undefined)
434
+ params.set('period', period);
435
+ if (timePreset !== undefined)
436
+ params.set('timePreset', timePreset);
437
+ if (startDate !== undefined)
438
+ params.set('startDate', startDate);
439
+ if (endDate !== undefined)
440
+ params.set('endDate', endDate);
441
+ if (limit !== undefined)
442
+ params.set('limit', String(limit));
443
+ if (offset !== undefined)
444
+ params.set('offset', String(offset));
445
+ const query = params.toString();
446
+ const path = `/api/v1/balance/checkpoints${query ? `?${query}` : ''}`;
447
+ return this.client.get(path, requestOptions);
448
+ }
449
+ // -------------------------------------------------------------------------
450
+ // Webhook Deliveries
451
+ // -------------------------------------------------------------------------
452
+ /**
453
+ * List webhook delivery history.
454
+ *
455
+ * @param options - Filter and pagination options.
456
+ * @returns Paginated list of webhook deliveries.
457
+ *
458
+ * @example
459
+ * ```typescript
460
+ * const { deliveries } = await pac.balance.listWebhookDeliveries({
461
+ * status: 'failed',
462
+ * limit: 10,
463
+ * });
464
+ * ```
465
+ */
466
+ async listWebhookDeliveries(options) {
467
+ const { status, limit, offset, ...requestOptions } = options ?? {};
468
+ const params = new URLSearchParams();
469
+ if (status !== undefined)
470
+ params.set('status', status);
471
+ if (limit !== undefined)
472
+ params.set('limit', String(limit));
473
+ if (offset !== undefined)
474
+ params.set('offset', String(offset));
475
+ const query = params.toString();
476
+ const path = `/api/v1/balance/webhooks${query ? `?${query}` : ''}`;
477
+ return this.client.get(path, requestOptions);
478
+ }
479
+ /**
480
+ * Retry a failed webhook delivery.
481
+ *
482
+ * @param eventId - The event ID of the failed delivery.
483
+ * @param options - Request overrides.
484
+ *
485
+ * @example
486
+ * ```typescript
487
+ * await pac.balance.retryWebhook('evt_abc123');
488
+ * ```
489
+ */
490
+ async retryWebhook(eventId, options) {
491
+ return this.client.post(`/api/v1/balance/webhooks/${encodeURIComponent(eventId)}/retry`, {}, options);
492
+ }
493
+ // -------------------------------------------------------------------------
494
+ // Customer Ledgers
495
+ // -------------------------------------------------------------------------
496
+ /**
497
+ * List all customer ledgers for your account.
498
+ *
499
+ * Each unique customerId passed to emit() automatically creates an
500
+ * isolated ledger. This method returns a paginated list of all ledgers.
501
+ *
502
+ * @param options - Search, pagination, and request overrides.
503
+ * @returns Paginated list of customer ledgers.
504
+ *
505
+ * @example
506
+ * ```typescript
507
+ * const { customers } = await pac.balance.customers();
508
+ * for (const c of customers) {
509
+ * console.log(c.customerId, c.totalDeltas);
510
+ * }
511
+ * ```
512
+ */
513
+ async customers(options) {
514
+ const { search, limit, page, ...requestOptions } = options ?? {};
515
+ const params = new URLSearchParams();
516
+ if (search !== undefined)
517
+ params.set('search', search);
518
+ if (limit !== undefined)
519
+ params.set('limit', String(limit));
520
+ if (page !== undefined)
521
+ params.set('page', String(page));
522
+ const query = params.toString();
523
+ const path = `/api/v1/balance/customers${query ? `?${query}` : ''}`;
524
+ return this.client.get(path, requestOptions);
525
+ }
526
+ /**
527
+ * Get the full ledger detail for a specific customer.
528
+ *
529
+ * Returns the derived ledger identifier, computed balance, delta count,
530
+ * and latest checkpoint. The ledger identifier is deterministic --
531
+ * the same customerId always produces the same identifier.
532
+ *
533
+ * @param customerId - The customer to look up.
534
+ * @param options - Activity pagination and request overrides.
535
+ * @returns Customer ledger detail including balance and identifiers.
536
+ *
537
+ * @example
538
+ * ```typescript
539
+ * const ledger = await pac.balance.customer('cust_001');
540
+ * console.log(ledger.ledgerIdentifier); // 0xA1b2...Ef34
541
+ * console.log(ledger.computedBalance); // 4500.00
542
+ * ```
543
+ */
544
+ async customer(customerId, options) {
545
+ const { deltaPage, deltaLimit, ...requestOptions } = options ?? {};
546
+ const params = new URLSearchParams();
547
+ if (deltaPage !== undefined)
548
+ params.set('deltaPage', String(deltaPage));
549
+ if (deltaLimit !== undefined)
550
+ params.set('deltaLimit', String(deltaLimit));
551
+ const query = params.toString();
552
+ const path = `/api/v1/balance/customers/${encodeURIComponent(customerId)}${query ? `?${query}` : ''}`;
553
+ return this.client.get(path, requestOptions);
554
+ }
555
+ // -------------------------------------------------------------------------
556
+ // Invoice Proof (deprecated — use receipt with period)
557
+ // -------------------------------------------------------------------------
558
+ /**
559
+ * Generate an invoice-ready receipt for a customer's billing period.
560
+ *
561
+ * @deprecated Use `receipt(customerId, { period })` instead.
562
+ * @param customerId - The customer to generate the receipt for.
563
+ * @param options - Period selection and request overrides.
564
+ * @returns Receipt with proof root, verifyUrl, and verification data.
565
+ */
566
+ async invoiceProof(customerId, options) {
567
+ return this.receiptForPeriod(customerId, options);
568
+ }
229
569
  }
230
570
  exports.BalanceResource = BalanceResource;
231
571
  //# sourceMappingURL=balance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/resources/balance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/resources/balance.ts"],"names":[],"mappings":";;;AAyCA,8CAAqD;AACrD,6CAAqD;AAErD;;;;;;;;;;GAUG;AACH,MAAa,eAAe;IAM1B,gBAAgB;IAChB,YACmB,MAAkB,EACnC,iBAA+C;QAD9B,WAAM,GAAN,MAAM,CAAY;QAGnC,IAAI,CAAC,UAAU,GAAG,IAAI,kCAAqB,CAAC;YAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7C,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,OAAO;IACP,4EAA4E;IAE5E;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,IAAI,CACR,UAAkB,EAClB,KAAa,EACb,MAAc,EACd,OAAqB;QAErB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEnE,MAAM,IAAI,GAA4B;YACpC,UAAU;YACV,KAAK;YACL,MAAM;SACP,CAAC;QAEF,IAAI,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9D,IAAI,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAErD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,uBAAuB,EACvB,IAAI,EACJ,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,WAAW,CACf,UAAkB,EAClB,KAAa,EACb,MAAc,EACd,OAA4B;QAE5B,MAAM,EACJ,OAAO,GAAG,KAAM,EAChB,YAAY,GAAG,IAAK,EACpB,MAAM,EACN,GAAG,QAAQ,EACZ,GAAG,OAAO,IAAI,EAAE,CAAC;QAElB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;YACzD,GAAG,QAAQ;YACX,MAAM;SACP,CAAC,CAAC;QAEH,0CAA0C;QAC1C,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,4DAA4D;QAC5D,OAAO,IAAA,2BAAiB,EACtB,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,yBAAyB,OAAO,CAAC,QAAQ,EAAE,EAC3C,EAAE,MAAM,EAAoB,CAC7B,EACH,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAClC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB,yBAAyB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EACvD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,OAAwB;QAExB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,OAAgC;QAEhC,MAAM,EACJ,OAAO,GAAG,KAAM,EAChB,YAAY,GAAG,IAAK,EACpB,MAAM,EACN,GAAG,cAAc,EAClB,GAAG,OAAO,IAAI,EAAE,CAAC;QAElB,OAAO,IAAA,2BAAiB,EACtB,GAAG,EAAE,CACH,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC7B,GAAG,cAAc;YACjB,MAAM;SACP,CAAC,EACJ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAwB;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAgB,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,UAAkB,EAClB,OAA6B;QAE7B,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,GAAG,cAAc,EAClB,GAAG,OAAO,IAAI,EAAE,CAAC;QAElB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,YAAY,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,wBAAwB,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuB,IAAI,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,SAAS,CACb,MAAmB,EACnB,OAAyB;QAEzB,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAE5C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,6BAA6B,EAC7B,EAAE,MAAM,EAAE,EACV,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAA6B;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAiC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,OAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB;QAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED,4EAA4E;IAC5E,SAAS;IACT,4EAA4E;IAE5E;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,OAAuB;QAEvB,MAAM,EACJ,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,EACL,MAAM,EACN,GAAG,cAAc,EAClB,GAAG,OAAO,IAAI,EAAE,CAAC;QAElB,qBAAqB;QACrB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,0BAA0B,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEnG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAiB,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,OAAO,CACX,UAAkB,EAClB,QAAyB,EACzB,OAAwB;QAExB,MAAM,EACJ,eAAe,GAAG,CAAC,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,GAAG,cAAc,EAClB,GAAG,OAAO,IAAI,EAAE,CAAC;QAElB,MAAM,IAAI,GAA4B;YACpC,UAAU;YACV,WAAW,EAAE,QAAQ,CAAC,KAAK;YAC3B,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,eAAe;SAChB,CAAC;QAEF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QACD,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,yBAAyB,EACzB,IAAI,EACJ,cAAc,CACf,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,OAAO,CACX,UAAkB,EAClB,OAA8C;QAE9C,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;QAC3B,MAAM,gBAAgB,GACpB,IAAI,CAAC,MAAM,KAAK,SAAS;YACzB,IAAI,CAAC,UAAU,KAAK,SAAS;YAC7B,IAAI,CAAC,SAAS,KAAK,SAAS;YAC5B,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;QAC7B,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC;QACvH,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB,2BAA2B,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAC3D,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAC5B,UAAkB,EAClB,OAA6B;QAE7B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEpF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,iCAAiC,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE1G,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuB,IAAI,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IAED,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,UAAU,CACd,UAAmB,EACnB,OAA2B;QAE3B,MAAM,EACJ,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,GAAG,cAAc,EAClB,GAAG,OAAO,IAAI,EAAE,CAAC;QAElB,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3D,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAC/C,IAAI,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3D,IAAI,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACxD,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACzC,IAAI,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,4BAA4B,EAC5B,IAAI,EACJ,cAAc,CACf,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAE5E;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,eAAe,CACnB,OAAgC;QAEhC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAC5F,OAAO,IAAI,EAAE,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,8BAA8B,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEtE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAA0B,IAAI,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;IAED,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAE5E;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,qBAAqB,CACzB,OAAsC;QAEtC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEnE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,2BAA2B,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEnE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAgC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,4BAA4B,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAC/D,EAAE,EACF,OAAO,CACR,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAE5E;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,SAAS,CACb,OAA8B;QAE9B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,4BAA4B,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEpE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAwB,IAAI,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,QAAQ,CACZ,UAAkB,EAClB,OAA4B;QAE5B,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEnE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,6BAA6B,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEtG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuB,IAAI,EAAE,cAAc,CAAC,CAAC;IACrE,CAAC;IAED,4EAA4E;IAC5E,uDAAuD;IACvD,4EAA4E;IAE5E;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,UAAkB,EAClB,OAA6B;QAE7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAxtBD,0CAwtBC"}
@@ -0,0 +1,79 @@
1
+ import type { BulkDelta, BulkEmitResponse } from '../types/balance';
2
+ import type { CustomerUsageSummary, FlushSummariesOptions, QueuedUsageSummary, SubmissionAutomationOptions, SubmissionQueueState, SummaryFlushResult } from '../types/submission';
3
+ type EmitBatchFn = (deltas: BulkDelta[]) => Promise<BulkEmitResponse>;
4
+ interface SubmissionCoordinatorConfig {
5
+ emitBatch: EmitBatchFn;
6
+ options?: SubmissionAutomationOptions;
7
+ }
8
+ /**
9
+ * Tenant-owned metering submission automation.
10
+ *
11
+ * This coordinator only submits tenant-produced summaries. It does not infer
12
+ * or meter raw product usage events.
13
+ */
14
+ export declare class SubmissionCoordinator {
15
+ private static readonly trackedCoordinators;
16
+ private static shutdownHooksRegistered;
17
+ private static readonly shutdownHandlers;
18
+ private readonly emitBatch;
19
+ private readonly profile;
20
+ private readonly cadenceMs;
21
+ private readonly enterprise;
22
+ private readonly autoStart;
23
+ private readonly autoFlushOnShutdown;
24
+ private readonly batchSize;
25
+ private readonly maxRequestsPerMinute;
26
+ private readonly defaultReason;
27
+ private readonly queue;
28
+ private shutdownTracked;
29
+ private timer;
30
+ private running;
31
+ private nextFlushAt;
32
+ private activeFlush;
33
+ private lastRequestAt;
34
+ constructor(config: SubmissionCoordinatorConfig);
35
+ /**
36
+ * Enqueue one tenant-produced customer summary.
37
+ */
38
+ queueSummary(summary: CustomerUsageSummary): QueuedUsageSummary;
39
+ /**
40
+ * Enqueue multiple tenant-produced summaries.
41
+ */
42
+ queueSummaries(summaries: CustomerUsageSummary[]): QueuedUsageSummary[];
43
+ /**
44
+ * Returns queue and scheduler state.
45
+ */
46
+ getQueueState(): SubmissionQueueState;
47
+ /**
48
+ * Start scheduled flushes for non-immediate profiles.
49
+ */
50
+ start(): void;
51
+ /**
52
+ * Stop scheduled flushes.
53
+ */
54
+ stop(): void;
55
+ /**
56
+ * Flush queued summaries immediately.
57
+ */
58
+ flushSummaries(options?: FlushSummariesOptions): Promise<SummaryFlushResult>;
59
+ /**
60
+ * Stop scheduler, flush pending work, and unregister shutdown hooks.
61
+ */
62
+ shutdown(): Promise<void>;
63
+ private assertProfileCompatibility;
64
+ private normalizeSummary;
65
+ private normalizeIso;
66
+ private buildReferenceId;
67
+ private performFlush;
68
+ private paceRequests;
69
+ private chunk;
70
+ private scheduleNextFlush;
71
+ private onScheduledFlush;
72
+ private ensureShutdownHooks;
73
+ private static flushTrackedCoordinators;
74
+ private trackShutdownHooks;
75
+ private untrackShutdownHooks;
76
+ private sleep;
77
+ }
78
+ export {};
79
+ //# sourceMappingURL=submission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../src/resources/submission.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAE3B,oBAAoB,EAEpB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,WAAW,GAAG,CACjB,MAAM,EAAE,SAAS,EAAE,KAChB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B,UAAU,2BAA2B;IACnC,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACvC;AAUD;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IAC/E,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAS;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAatC;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,aAAa,CAAK;gBAEd,MAAM,EAAE,2BAA2B;IAuB/C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB;IAiB/D;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,kBAAkB,EAAE;IAIvE;;OAEG;IACH,aAAa,IAAI,oBAAoB;IAcrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAcb;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACG,cAAc,CAClB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;IAc9B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,gBAAgB;YAmBV,YAAY;YAgHZ,YAAY;IAU1B,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,iBAAiB;YAeX,gBAAgB;IAgB9B,OAAO,CAAC,mBAAmB;mBAUN,wBAAwB;IAY7C,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,KAAK;CAGd"}