@effect-auth/core 0.1.0-alpha.10 → 0.1.0-alpha.13

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 (93) hide show
  1. package/README.md +65 -4
  2. package/dist/AuditLog.d.ts +60 -0
  3. package/dist/AuditLog.d.ts.map +1 -1
  4. package/dist/AuditLog.js +105 -0
  5. package/dist/AuditLog.js.map +1 -1
  6. package/dist/AuthKernel.d.ts +1 -1
  7. package/dist/Client.d.ts +72 -1
  8. package/dist/Client.d.ts.map +1 -1
  9. package/dist/Client.js +218 -1
  10. package/dist/Client.js.map +1 -1
  11. package/dist/DomainVerification.d.ts +200 -0
  12. package/dist/DomainVerification.d.ts.map +1 -0
  13. package/dist/DomainVerification.js +304 -0
  14. package/dist/DomainVerification.js.map +1 -0
  15. package/dist/EffectQbSqliteStorage.d.ts +389 -4
  16. package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
  17. package/dist/EffectQbSqliteStorage.js +1191 -4
  18. package/dist/EffectQbSqliteStorage.js.map +1 -1
  19. package/dist/EmailOtp.d.ts +2 -2
  20. package/dist/HttpApi/Api.d.ts +477 -23
  21. package/dist/HttpApi/Api.d.ts.map +1 -1
  22. package/dist/HttpApi/Api.js +705 -4
  23. package/dist/HttpApi/Api.js.map +1 -1
  24. package/dist/HttpApi/Endpoints.d.ts +133 -5
  25. package/dist/HttpApi/Endpoints.d.ts.map +1 -1
  26. package/dist/HttpApi/Endpoints.js +57 -2
  27. package/dist/HttpApi/Endpoints.js.map +1 -1
  28. package/dist/HttpApi/Errors.d.ts +32 -0
  29. package/dist/HttpApi/Errors.d.ts.map +1 -1
  30. package/dist/HttpApi/Errors.js +46 -0
  31. package/dist/HttpApi/Errors.js.map +1 -1
  32. package/dist/HttpApi/Schemas.d.ts +149 -8
  33. package/dist/HttpApi/Schemas.d.ts.map +1 -1
  34. package/dist/HttpApi/Schemas.js +128 -0
  35. package/dist/HttpApi/Schemas.js.map +1 -1
  36. package/dist/Identifiers.d.ts +3 -0
  37. package/dist/Identifiers.d.ts.map +1 -1
  38. package/dist/Identifiers.js +2 -0
  39. package/dist/Identifiers.js.map +1 -1
  40. package/dist/IncidentAction.d.ts +80 -0
  41. package/dist/IncidentAction.d.ts.map +1 -0
  42. package/dist/IncidentAction.js +158 -0
  43. package/dist/IncidentAction.js.map +1 -0
  44. package/dist/Jwt.d.ts +10 -0
  45. package/dist/Jwt.d.ts.map +1 -1
  46. package/dist/Jwt.js +209 -0
  47. package/dist/Jwt.js.map +1 -1
  48. package/dist/LoginNotification.d.ts +1 -1
  49. package/dist/LoginRisk.d.ts +272 -1
  50. package/dist/LoginRisk.d.ts.map +1 -1
  51. package/dist/LoginRisk.js +427 -0
  52. package/dist/LoginRisk.js.map +1 -1
  53. package/dist/MachineAuth.d.ts +73 -0
  54. package/dist/MachineAuth.d.ts.map +1 -0
  55. package/dist/MachineAuth.js +147 -0
  56. package/dist/MachineAuth.js.map +1 -0
  57. package/dist/MagicLink.d.ts +2 -2
  58. package/dist/OAuth.d.ts +957 -1
  59. package/dist/OAuth.d.ts.map +1 -1
  60. package/dist/OAuth.js +1403 -1
  61. package/dist/OAuth.js.map +1 -1
  62. package/dist/Password.d.ts +2 -2
  63. package/dist/Retention.d.ts +98 -0
  64. package/dist/Retention.d.ts.map +1 -0
  65. package/dist/Retention.js +204 -0
  66. package/dist/Retention.js.map +1 -0
  67. package/dist/SecurityTimeline.d.ts +8 -2
  68. package/dist/SecurityTimeline.d.ts.map +1 -1
  69. package/dist/SecurityTimeline.js +75 -0
  70. package/dist/SecurityTimeline.js.map +1 -1
  71. package/dist/StorageMigrations.d.ts +11 -1
  72. package/dist/StorageMigrations.d.ts.map +1 -1
  73. package/dist/StorageMigrations.js +206 -0
  74. package/dist/StorageMigrations.js.map +1 -1
  75. package/dist/Webhook.d.ts +310 -2
  76. package/dist/Webhook.d.ts.map +1 -1
  77. package/dist/Webhook.js +511 -1
  78. package/dist/Webhook.js.map +1 -1
  79. package/dist/index.d.ts +4 -0
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +4 -0
  82. package/dist/index.js.map +1 -1
  83. package/migrations/0014_auth_webhook_outbox.sql +16 -0
  84. package/migrations/0015_auth_webhook_replay.sql +7 -0
  85. package/migrations/0016_auth_login_risk_history.sql +23 -0
  86. package/migrations/0017_auth_audit_log.sql +17 -0
  87. package/migrations/0018_auth_domain_verification.sql +18 -0
  88. package/migrations/0019_auth_oauth_authorization_code.sql +17 -0
  89. package/migrations/0020_auth_oauth_provider_mode_token.sql +24 -0
  90. package/migrations/0021_auth_oauth_client_secret.sql +14 -0
  91. package/migrations/0022_auth_oauth_client.sql +15 -0
  92. package/migrations/0023_auth_oauth_consent.sql +15 -0
  93. package/package.json +17 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StorageMigrations.d.ts","sourceRoot":"","sources":["../src/StorageMigrations.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,EAAE,oBAkCrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBA2BrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAwBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAcrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAerC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAuBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAUrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAsBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,ySAcxB,CAAC"}
1
+ {"version":3,"file":"StorageMigrations.d.ts","sourceRoot":"","sources":["../src/StorageMigrations.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,EAAE,oBAkCrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBA2BrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAwBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAcrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAerC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAuBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAUrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAsBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBASrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAyBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAoBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBA0BrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAgBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAiBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAiBrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,qgBAwBxB,CAAC"}
@@ -273,6 +273,202 @@ create index if not exists auth_security_timeline_user_occurred_at_idx on auth_s
273
273
  create index if not exists auth_security_timeline_type_idx on auth_security_timeline (type);
274
274
  create index if not exists auth_security_timeline_category_idx on auth_security_timeline (category);`,
275
275
  };
276
+ export const authStorageMigration014 = {
277
+ id: "0014_auth_webhook_outbox",
278
+ sql: `create table if not exists auth_webhook_outbox (
279
+ id text primary key,
280
+ endpoint_key text not null,
281
+ event text not null,
282
+ status text not null,
283
+ attempts integer not null,
284
+ next_attempt_at integer not null,
285
+ created_at integer not null,
286
+ updated_at integer not null,
287
+ delivered_at integer,
288
+ last_error text
289
+ );
290
+
291
+ create index if not exists auth_webhook_outbox_due_idx on auth_webhook_outbox (next_attempt_at, status);
292
+ create index if not exists auth_webhook_outbox_endpoint_due_idx on auth_webhook_outbox (endpoint_key, next_attempt_at);
293
+ create index if not exists auth_webhook_outbox_status_idx on auth_webhook_outbox (status);`,
294
+ };
295
+ export const authStorageMigration015 = {
296
+ id: "0015_auth_webhook_replay",
297
+ sql: `create table if not exists auth_webhook_replay (
298
+ id text primary key,
299
+ expires_at integer not null,
300
+ created_at integer not null
301
+ );
302
+
303
+ create index if not exists auth_webhook_replay_expires_at_idx on auth_webhook_replay (expires_at);`,
304
+ };
305
+ export const authStorageMigration016 = {
306
+ id: "0016_auth_login_risk_history",
307
+ sql: `create table if not exists auth_login_risk_history (
308
+ id text primary key,
309
+ user_id text not null,
310
+ occurred_at integer not null,
311
+ outcome text not null,
312
+ method text not null,
313
+ amr text not null,
314
+ aal text not null,
315
+ device_status text not null,
316
+ device_key text,
317
+ location_key text,
318
+ country text,
319
+ region text,
320
+ latitude_micro integer,
321
+ longitude_micro integer,
322
+ risk_level text,
323
+ created_at integer not null
324
+ );
325
+
326
+ create index if not exists auth_login_risk_history_user_occurred_at_idx on auth_login_risk_history (user_id, occurred_at);
327
+ create index if not exists auth_login_risk_history_user_device_key_idx on auth_login_risk_history (user_id, device_key);
328
+ create index if not exists auth_login_risk_history_user_location_key_idx on auth_login_risk_history (user_id, location_key);
329
+ create index if not exists auth_login_risk_history_occurred_at_idx on auth_login_risk_history (occurred_at);`,
330
+ };
331
+ export const authStorageMigration017 = {
332
+ id: "0017_auth_audit_log",
333
+ sql: `create table if not exists auth_audit_log (
334
+ id text,
335
+ type text not null,
336
+ user_id text,
337
+ actor_user_id text,
338
+ occurred_at integer not null,
339
+ request_ip_hash text,
340
+ request_user_agent_hash text,
341
+ event text not null,
342
+ created_at integer not null
343
+ );
344
+
345
+ create index if not exists auth_audit_log_id_idx on auth_audit_log (id);
346
+ create index if not exists auth_audit_log_user_occurred_at_idx on auth_audit_log (user_id, occurred_at);
347
+ create index if not exists auth_audit_log_actor_user_occurred_at_idx on auth_audit_log (actor_user_id, occurred_at);
348
+ create index if not exists auth_audit_log_type_occurred_at_idx on auth_audit_log (type, occurred_at);
349
+ create index if not exists auth_audit_log_occurred_at_idx on auth_audit_log (occurred_at);`,
350
+ };
351
+ export const authStorageMigration018 = {
352
+ id: "0018_auth_domain_verification",
353
+ sql: `create table if not exists auth_domain_verification (
354
+ id text primary key,
355
+ owner_id text not null,
356
+ domain text not null,
357
+ proof_method text not null,
358
+ proof_token text not null,
359
+ status text not null,
360
+ created_at integer not null,
361
+ expires_at integer not null,
362
+ verified_at integer,
363
+ revoked_at integer,
364
+ last_checked_at integer,
365
+ metadata text
366
+ );
367
+
368
+ create unique index if not exists auth_domain_verification_owner_domain_idx on auth_domain_verification (owner_id, domain);
369
+ create index if not exists auth_domain_verification_domain_idx on auth_domain_verification (domain);
370
+ create index if not exists auth_domain_verification_status_expires_at_idx on auth_domain_verification (status, expires_at);`,
371
+ };
372
+ export const authStorageMigration019 = {
373
+ id: "0019_auth_oauth_authorization_code",
374
+ sql: `create table if not exists auth_oauth_authorization_code (
375
+ code_hash text primary key,
376
+ client_id text not null,
377
+ subject text not null,
378
+ redirect_uri text not null,
379
+ scopes text not null,
380
+ code_challenge text,
381
+ code_challenge_method text,
382
+ issued_at integer not null,
383
+ expires_at integer not null,
384
+ consumed_at integer,
385
+ metadata text
386
+ );
387
+
388
+ create index if not exists auth_oauth_authorization_code_client_expires_at_idx on auth_oauth_authorization_code (client_id, expires_at);
389
+ create index if not exists auth_oauth_authorization_code_expires_at_idx on auth_oauth_authorization_code (expires_at);
390
+ create index if not exists auth_oauth_authorization_code_consumed_at_idx on auth_oauth_authorization_code (consumed_at);`,
391
+ };
392
+ export const authStorageMigration020 = {
393
+ id: "0020_auth_oauth_provider_mode_token",
394
+ sql: `create table if not exists auth_oauth_provider_mode_token (
395
+ token_hash text primary key,
396
+ token_type text not null,
397
+ client_id text not null,
398
+ subject text not null,
399
+ scopes text not null,
400
+ issued_at integer not null,
401
+ expires_at integer not null,
402
+ issuer text,
403
+ audience text,
404
+ jwt_id text,
405
+ revoked_at integer,
406
+ revocation_reason text,
407
+ rotated_at integer,
408
+ replaced_by_token_hash text,
409
+ metadata text
410
+ );
411
+
412
+ create index if not exists auth_oauth_provider_mode_token_client_expires_at_idx on auth_oauth_provider_mode_token (client_id, expires_at);
413
+ create index if not exists auth_oauth_provider_mode_token_subject_idx on auth_oauth_provider_mode_token (subject);
414
+ create index if not exists auth_oauth_provider_mode_token_expires_at_idx on auth_oauth_provider_mode_token (expires_at);
415
+ create index if not exists auth_oauth_provider_mode_token_revoked_at_idx on auth_oauth_provider_mode_token (revoked_at);
416
+ create index if not exists auth_oauth_provider_mode_token_rotated_at_idx on auth_oauth_provider_mode_token (rotated_at);
417
+ create index if not exists auth_oauth_provider_mode_token_jwt_id_idx on auth_oauth_provider_mode_token (jwt_id);`,
418
+ };
419
+ export const authStorageMigration021 = {
420
+ id: "0021_auth_oauth_client_secret",
421
+ sql: `create table if not exists auth_oauth_client_secret (
422
+ prefix text primary key,
423
+ client_id text not null,
424
+ secret_hash text not null,
425
+ authentication_methods text not null,
426
+ created_at integer not null,
427
+ expires_at integer,
428
+ last_used_at integer,
429
+ revoked_at integer,
430
+ metadata text
431
+ );
432
+
433
+ create index if not exists auth_oauth_client_secret_client_prefix_idx on auth_oauth_client_secret (client_id, prefix);
434
+ create index if not exists auth_oauth_client_secret_client_id_idx on auth_oauth_client_secret (client_id);`,
435
+ };
436
+ export const authStorageMigration022 = {
437
+ id: "0022_auth_oauth_client",
438
+ sql: `create table if not exists auth_oauth_client (
439
+ id text primary key,
440
+ type text not null,
441
+ status text not null,
442
+ name text,
443
+ redirect_uris text not null,
444
+ allowed_grant_types text not null,
445
+ allowed_response_types text not null,
446
+ allowed_scopes text,
447
+ created_at integer,
448
+ updated_at integer,
449
+ metadata text
450
+ );
451
+
452
+ create index if not exists auth_oauth_client_status_idx on auth_oauth_client (status);`,
453
+ };
454
+ export const authStorageMigration023 = {
455
+ id: "0023_auth_oauth_consent",
456
+ sql: `create table if not exists auth_oauth_consent (
457
+ id text primary key,
458
+ user_id text not null,
459
+ client_id text not null,
460
+ scopes text not null,
461
+ granted_at integer not null,
462
+ expires_at integer,
463
+ revoked_at integer,
464
+ metadata text
465
+ );
466
+
467
+ create unique index if not exists auth_oauth_consent_user_client_idx on auth_oauth_consent (user_id, client_id);
468
+ create index if not exists auth_oauth_consent_user_id_idx on auth_oauth_consent (user_id);
469
+ create index if not exists auth_oauth_consent_expires_at_idx on auth_oauth_consent (expires_at);
470
+ create index if not exists auth_oauth_consent_revoked_at_idx on auth_oauth_consent (revoked_at);`,
471
+ };
276
472
  export const authStorageMigrations = [
277
473
  authStorageMigration001,
278
474
  authStorageMigration002,
@@ -287,5 +483,15 @@ export const authStorageMigrations = [
287
483
  authStorageMigration011,
288
484
  authStorageMigration012,
289
485
  authStorageMigration013,
486
+ authStorageMigration014,
487
+ authStorageMigration015,
488
+ authStorageMigration016,
489
+ authStorageMigration017,
490
+ authStorageMigration018,
491
+ authStorageMigration019,
492
+ authStorageMigration020,
493
+ authStorageMigration021,
494
+ authStorageMigration022,
495
+ authStorageMigration023,
290
496
  ];
291
497
  //# sourceMappingURL=StorageMigrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageMigrations.js","sourceRoot":"","sources":["../src/StorageMigrations.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,mBAAmB;IACvB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FA+BwF;CAC9F,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,oBAAoB;IACxB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;oGAwB6F;CACnG,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,iCAAiC;IACrC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;gIAqByH;CAC/H,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,0BAA0B;IAC9B,GAAG,EAAE;;;;;;;;;;;mGAW4F;CAClG,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,mBAAmB;IACvB,GAAG,EAAE;;;;;;;;;;;;;;;;2GAgBoG;CAC1G,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,uBAAuB;IAC3B,GAAG,EAAE;;;;;;;;;;;;;;;;6FAgBsF;CAC5F,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,yBAAyB;IAC7B,GAAG,EAAE;;;;;;;;;;;;iGAY0F;CAChG,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,mBAAmB;IACvB,GAAG,EAAE;;;;;;;;;;;;;;;;qFAgB8E;CACpF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,yBAAyB;IAC7B,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;iGAoB0F;CAChG,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,0BAA0B;IAC9B,GAAG,EAAE;;;;;;;mGAO4F;CAClG,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,yBAAyB;IAC7B,GAAG,EAAE;;;;;;;;;;;;;;;mGAe4F;CAClG,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,sCAAsC;IAC1C,GAAG,EAAE;;;;;;;;;;;;;;;;;;;2HAmBoH;CAC1H,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,EAAE,EAAE,6BAA6B;IACjC,GAAG,EAAE;;;;;;;;;;;;;;;qGAe8F;CACpG,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;CACf,CAAC"}
1
+ {"version":3,"file":"StorageMigrations.js","sourceRoot":"","sources":["../src/StorageMigrations.ts"],"names":[],"mappings":"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"}
package/dist/Webhook.d.ts CHANGED
@@ -1,7 +1,10 @@
1
- import { Context, Effect, Layer } from "effect";
1
+ import { Brand, Context, Effect, Layer } from "effect";
2
2
  import { Crypto, type CryptoKey } from "./Crypto.js";
3
- import type { UnixMillis } from "./Identifiers.js";
3
+ import { UnixMillis } from "./Identifiers.js";
4
+ import type { IncidentActionResult } from "./IncidentAction.js";
5
+ import type { LoginRiskAssessment } from "./LoginRisk.js";
4
6
  export type WebhookOperation = "encode" | "sign" | "verify" | "deliver";
7
+ export type WebhookEndpointResolverOperation = "resolve";
5
8
  declare const WebhookError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6
9
  readonly _tag: "WebhookError";
7
10
  } & Readonly<A>;
@@ -11,6 +14,28 @@ export declare class WebhookError extends WebhookError_base<{
11
14
  readonly cause?: unknown;
12
15
  }> {
13
16
  }
17
+ declare const WebhookEndpointResolverError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
18
+ readonly _tag: "WebhookEndpointResolverError";
19
+ } & Readonly<A>;
20
+ export declare class WebhookEndpointResolverError extends WebhookEndpointResolverError_base<{
21
+ readonly operation: WebhookEndpointResolverOperation;
22
+ readonly endpointKey: string;
23
+ readonly message: string;
24
+ readonly cause?: unknown;
25
+ }> {
26
+ }
27
+ export type WebhookReceiverErrorReason = "missing-header" | "invalid-timestamp" | "stale-timestamp" | "invalid-signature" | "replay-detected" | "replay-store";
28
+ declare const WebhookReceiverError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
29
+ readonly _tag: "WebhookReceiverError";
30
+ } & Readonly<A>;
31
+ export declare class WebhookReceiverError extends WebhookReceiverError_base<{
32
+ readonly reason: WebhookReceiverErrorReason;
33
+ readonly message: string;
34
+ readonly cause?: unknown;
35
+ }> {
36
+ }
37
+ export type WebhookOutboxItemId = Brand.Branded<string, "auth/WebhookOutboxItemId">;
38
+ export declare const WebhookOutboxItemId: Brand.Constructor<WebhookOutboxItemId>;
14
39
  export interface WebhookEvent<Type extends string = string, Payload = unknown> {
15
40
  readonly id: string;
16
41
  readonly type: Type;
@@ -20,6 +45,22 @@ export interface WebhookEvent<Type extends string = string, Payload = unknown> {
20
45
  export type WebhookEventInput<Type extends string = string, Payload = unknown> = Omit<WebhookEvent<Type, Payload>, "occurredAt"> & {
21
46
  readonly occurredAt?: UnixMillis;
22
47
  };
48
+ export type IncidentActionWebhookEventType = "auth.incident_action.executed";
49
+ export type IncidentActionWebhookPayload = IncidentActionResult;
50
+ export type IncidentActionWebhookEvent = WebhookEvent<IncidentActionWebhookEventType, IncidentActionWebhookPayload>;
51
+ export type LoginRiskWebhookEventType = "auth.risk.assessed";
52
+ export type LoginRiskWebhookPayload = LoginRiskAssessment;
53
+ export type LoginRiskWebhookEvent = WebhookEvent<LoginRiskWebhookEventType, LoginRiskWebhookPayload>;
54
+ export interface IncidentActionWebhookEventInput {
55
+ readonly id: string;
56
+ readonly result: IncidentActionResult;
57
+ readonly occurredAt?: UnixMillis;
58
+ }
59
+ export interface LoginRiskWebhookEventInput {
60
+ readonly id: string;
61
+ readonly assessment: LoginRiskAssessment;
62
+ readonly occurredAt?: UnixMillis;
63
+ }
23
64
  export interface WebhookEndpoint {
24
65
  readonly url: string;
25
66
  readonly secret: CryptoKey;
@@ -40,10 +81,247 @@ export interface WebhookSignatureInput {
40
81
  export interface WebhookVerifyInput extends WebhookSignatureInput {
41
82
  readonly signatureHeader: string;
42
83
  }
84
+ export type WebhookReceiverHeaders = Readonly<Record<string, string | undefined>>;
85
+ export interface VerifyWebhookRequestInput {
86
+ readonly headers: WebhookReceiverHeaders;
87
+ readonly body: string;
88
+ readonly secret: CryptoKey;
89
+ readonly now?: UnixMillis;
90
+ readonly toleranceMillis?: number;
91
+ }
92
+ export interface VerifiedWebhookRequest {
93
+ readonly id: string;
94
+ readonly timestamp: UnixMillis;
95
+ readonly eventType?: string;
96
+ readonly body: string;
97
+ }
98
+ export interface VerifyWebhookRequestOnceInput extends VerifyWebhookRequestInput {
99
+ readonly replayExpiresAt?: UnixMillis;
100
+ }
43
101
  export interface MakeWebhookRequestInput<Type extends string = string, Payload = unknown> {
44
102
  readonly endpoint: WebhookEndpoint;
45
103
  readonly event: WebhookEvent<Type, Payload>;
46
104
  }
105
+ export interface WebhookEndpointResolveInput {
106
+ readonly endpointKey: string;
107
+ readonly record: WebhookOutboxRecord;
108
+ }
109
+ export type WebhookOutboxStatus = "pending" | "failed" | "delivered" | "dead_lettered";
110
+ export interface WebhookOutboxRecord<Type extends string = string, Payload = unknown> {
111
+ readonly id: WebhookOutboxItemId;
112
+ readonly endpointKey: string;
113
+ readonly event: WebhookEvent<Type, Payload>;
114
+ readonly status: WebhookOutboxStatus;
115
+ readonly attempts: number;
116
+ readonly nextAttemptAt: UnixMillis;
117
+ readonly createdAt: UnixMillis;
118
+ readonly updatedAt: UnixMillis;
119
+ readonly deliveredAt?: UnixMillis;
120
+ readonly lastError?: string;
121
+ }
122
+ export interface WebhookOutboxEnqueueInput<Type extends string = string, Payload = unknown> {
123
+ readonly id: WebhookOutboxItemId;
124
+ readonly endpointKey: string;
125
+ readonly event: WebhookEvent<Type, Payload>;
126
+ readonly nextAttemptAt?: UnixMillis;
127
+ readonly now?: UnixMillis;
128
+ }
129
+ export interface WebhookOutboxFanoutResolveInput<Type extends string = string, Payload = unknown> {
130
+ readonly event: WebhookEvent<Type, Payload>;
131
+ readonly now: UnixMillis;
132
+ }
133
+ export type WebhookOutboxFanoutEndpointResolver<Type extends string = string, Payload = unknown, R = never> = (input: WebhookOutboxFanoutResolveInput<Type, Payload>) => Effect.Effect<readonly string[], unknown, R>;
134
+ export interface WebhookOutboxFanoutIdInput<Type extends string = string, Payload = unknown> {
135
+ readonly event: WebhookEvent<Type, Payload>;
136
+ readonly endpointKey: string;
137
+ readonly index: number;
138
+ readonly now: UnixMillis;
139
+ }
140
+ export type WebhookOutboxFanoutId<Type extends string = string, Payload = unknown> = (input: WebhookOutboxFanoutIdInput<Type, Payload>) => WebhookOutboxItemId;
141
+ interface WebhookOutboxFanoutInputBase<Type extends string = string, Payload = unknown> {
142
+ readonly event: WebhookEvent<Type, Payload>;
143
+ readonly id: WebhookOutboxFanoutId<Type, Payload>;
144
+ readonly nextAttemptAt?: UnixMillis;
145
+ readonly now?: UnixMillis;
146
+ }
147
+ export type WebhookOutboxFanoutInput<Type extends string = string, Payload = unknown, R = never> = WebhookOutboxFanoutInputBase<Type, Payload> & ({
148
+ readonly endpointKeys: readonly string[];
149
+ readonly resolveEndpointKeys?: never;
150
+ } | {
151
+ readonly endpointKeys?: never;
152
+ readonly resolveEndpointKeys: WebhookOutboxFanoutEndpointResolver<Type, Payload, R>;
153
+ });
154
+ export interface WebhookOutboxFanoutResult<Type extends string = string, Payload = unknown> {
155
+ readonly matched: number;
156
+ readonly enqueued: number;
157
+ readonly records: readonly WebhookOutboxRecord<Type, Payload>[];
158
+ }
159
+ export type WebhookOutboxFanoutOperation = "resolveEndpointKeys";
160
+ declare const WebhookOutboxFanoutError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
161
+ readonly _tag: "WebhookOutboxFanoutError";
162
+ } & Readonly<A>;
163
+ export declare class WebhookOutboxFanoutError extends WebhookOutboxFanoutError_base<{
164
+ readonly operation: WebhookOutboxFanoutOperation;
165
+ readonly message: string;
166
+ }> {
167
+ }
168
+ export interface WebhookOutboxClaimDueInput {
169
+ readonly now?: UnixMillis;
170
+ readonly limit?: number;
171
+ readonly endpointKey?: string;
172
+ }
173
+ export interface WebhookOutboxMarkDeliveredInput {
174
+ readonly id: WebhookOutboxItemId;
175
+ readonly deliveredAt?: UnixMillis;
176
+ }
177
+ export interface WebhookOutboxMarkFailedInput {
178
+ readonly id: WebhookOutboxItemId;
179
+ readonly failedAt?: UnixMillis;
180
+ readonly nextAttemptAt: UnixMillis;
181
+ readonly error?: string;
182
+ }
183
+ export interface WebhookOutboxMarkDeadLetteredInput {
184
+ readonly id: WebhookOutboxItemId;
185
+ readonly deadLetteredAt?: UnixMillis;
186
+ readonly error?: string;
187
+ }
188
+ export interface WebhookOutboxDeleteBeforeInput {
189
+ readonly beforeUpdatedAt: UnixMillis;
190
+ readonly statuses: readonly [WebhookOutboxStatus, ...WebhookOutboxStatus[]];
191
+ readonly endpointKey?: string;
192
+ }
193
+ export type WebhookOutboxFailureReason = "endpoint-not-found" | "endpoint-resolution-failed" | "dispatch-failed";
194
+ export type WebhookOutboxDeadLetterReason = WebhookOutboxFailureReason | "max-attempts";
195
+ export interface WebhookOutboxFailureInput {
196
+ readonly record: WebhookOutboxRecord;
197
+ readonly now: UnixMillis;
198
+ readonly nextAttemptNumber: number;
199
+ readonly reason: WebhookOutboxFailureReason;
200
+ readonly cause?: WebhookError | WebhookEndpointResolverError;
201
+ }
202
+ export interface WebhookOutboxDeadLetterInput {
203
+ readonly record: WebhookOutboxRecord;
204
+ readonly now: UnixMillis;
205
+ readonly attempts: number;
206
+ readonly reason: WebhookOutboxDeadLetterReason;
207
+ readonly cause?: WebhookError | WebhookEndpointResolverError;
208
+ }
209
+ export interface WebhookOutboxDeadLetterHandlerInput {
210
+ readonly id: WebhookOutboxItemId;
211
+ readonly endpointKey: string;
212
+ readonly eventId: string;
213
+ readonly eventType: string;
214
+ readonly attempts: number;
215
+ readonly reason: WebhookOutboxDeadLetterReason;
216
+ readonly deadLetteredAt: UnixMillis;
217
+ readonly error?: string;
218
+ }
219
+ export type WebhookOutboxNextAttempt = (input: WebhookOutboxFailureInput) => UnixMillis;
220
+ export type WebhookOutboxFailureMessage = (input: WebhookOutboxFailureInput) => string | undefined;
221
+ export type WebhookOutboxDeadLetterMessage = (input: WebhookOutboxDeadLetterInput) => string | undefined;
222
+ export type WebhookOutboxDeadLetterHandler = (input: WebhookOutboxDeadLetterHandlerInput) => Effect.Effect<void, unknown>;
223
+ export type WebhookOutboxDeadLetterHandlerFailure = "ignore" | "fail";
224
+ declare const WebhookOutboxDeadLetterHandlerError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
225
+ readonly _tag: "WebhookOutboxDeadLetterHandlerError";
226
+ } & Readonly<A>;
227
+ export declare class WebhookOutboxDeadLetterHandlerError extends WebhookOutboxDeadLetterHandlerError_base<{
228
+ readonly input: WebhookOutboxDeadLetterHandlerInput;
229
+ readonly message: string;
230
+ readonly cause?: unknown;
231
+ }> {
232
+ }
233
+ export interface WebhookOutboxProcessInput extends WebhookOutboxClaimDueInput {
234
+ readonly nextAttemptAt?: WebhookOutboxNextAttempt;
235
+ readonly failureMessage?: WebhookOutboxFailureMessage;
236
+ readonly maxAttempts?: number;
237
+ readonly deadLetterMessage?: WebhookOutboxDeadLetterMessage;
238
+ readonly onDeadLetter?: WebhookOutboxDeadLetterHandler;
239
+ readonly deadLetterHandlerFailure?: WebhookOutboxDeadLetterHandlerFailure;
240
+ }
241
+ export interface WebhookOutboxProcessFailInput extends WebhookOutboxProcessInput {
242
+ readonly onDeadLetter: WebhookOutboxDeadLetterHandler;
243
+ readonly deadLetterHandlerFailure: "fail";
244
+ }
245
+ export type WebhookOutboxProcessItemStatus = "delivered" | "failed" | "dead_lettered";
246
+ export interface WebhookOutboxProcessItemResult {
247
+ readonly id: WebhookOutboxItemId;
248
+ readonly endpointKey: string;
249
+ readonly eventId: string;
250
+ readonly eventType: string;
251
+ readonly status: WebhookOutboxProcessItemStatus;
252
+ readonly attempts: number;
253
+ readonly nextAttemptAt?: UnixMillis;
254
+ readonly error?: string;
255
+ }
256
+ export interface WebhookOutboxProcessResult {
257
+ readonly claimed: number;
258
+ readonly delivered: number;
259
+ readonly failed: number;
260
+ readonly deadLettered: number;
261
+ readonly records: readonly WebhookOutboxProcessItemResult[];
262
+ }
263
+ export interface WebhookReplayClaimInput {
264
+ readonly id: string;
265
+ readonly expiresAt: UnixMillis;
266
+ readonly now?: UnixMillis;
267
+ }
268
+ export interface WebhookReplayDeleteExpiredInput {
269
+ readonly now?: UnixMillis;
270
+ }
271
+ export type WebhookReplayStoreOperation = "claim" | "deleteExpired";
272
+ declare const WebhookReplayStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
273
+ readonly _tag: "WebhookReplayStoreError";
274
+ } & Readonly<A>;
275
+ export declare class WebhookReplayStoreError extends WebhookReplayStoreError_base<{
276
+ readonly operation: WebhookReplayStoreOperation;
277
+ readonly message: string;
278
+ readonly cause?: unknown;
279
+ }> {
280
+ }
281
+ export interface WebhookReplayStoreService {
282
+ readonly claim: (input: WebhookReplayClaimInput) => Effect.Effect<boolean, WebhookReplayStoreError>;
283
+ readonly deleteExpired: (input?: WebhookReplayDeleteExpiredInput) => Effect.Effect<number, WebhookReplayStoreError>;
284
+ }
285
+ export type WebhookOutboxStoreOperation = "enqueue" | "claimDue" | "markDelivered" | "markFailed" | "markDeadLettered" | "deleteBefore";
286
+ declare const WebhookOutboxStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
287
+ readonly _tag: "WebhookOutboxStoreError";
288
+ } & Readonly<A>;
289
+ export declare class WebhookOutboxStoreError extends WebhookOutboxStoreError_base<{
290
+ readonly operation: WebhookOutboxStoreOperation;
291
+ readonly message: string;
292
+ readonly cause?: unknown;
293
+ }> {
294
+ }
295
+ export type WebhookOutboxProcessError = WebhookOutboxStoreError | WebhookOutboxDeadLetterHandlerError;
296
+ export interface WebhookOutboxStoreService {
297
+ readonly enqueue: <Type extends string, Payload>(input: WebhookOutboxEnqueueInput<Type, Payload>) => Effect.Effect<WebhookOutboxRecord<Type, Payload>, WebhookOutboxStoreError>;
298
+ readonly claimDue: (input: WebhookOutboxClaimDueInput) => Effect.Effect<readonly WebhookOutboxRecord[], WebhookOutboxStoreError>;
299
+ readonly markDelivered: (input: WebhookOutboxMarkDeliveredInput) => Effect.Effect<void, WebhookOutboxStoreError>;
300
+ readonly markFailed: (input: WebhookOutboxMarkFailedInput) => Effect.Effect<void, WebhookOutboxStoreError>;
301
+ readonly markDeadLettered: (input: WebhookOutboxMarkDeadLetteredInput) => Effect.Effect<void, WebhookOutboxStoreError>;
302
+ readonly deleteBefore: (input: WebhookOutboxDeleteBeforeInput) => Effect.Effect<number, WebhookOutboxStoreError>;
303
+ }
304
+ declare const WebhookOutboxStore_base: Context.ServiceClass<WebhookOutboxStore, "auth/WebhookOutboxStore", WebhookOutboxStoreService>;
305
+ export declare class WebhookOutboxStore extends WebhookOutboxStore_base {
306
+ }
307
+ export declare namespace WebhookOutboxStore {
308
+ const make: (service: WebhookOutboxStoreService) => WebhookOutboxStoreService;
309
+ }
310
+ declare const WebhookReplayStore_base: Context.ServiceClass<WebhookReplayStore, "auth/WebhookReplayStore", WebhookReplayStoreService>;
311
+ export declare class WebhookReplayStore extends WebhookReplayStore_base {
312
+ }
313
+ export declare namespace WebhookReplayStore {
314
+ const make: (service: WebhookReplayStoreService) => WebhookReplayStoreService;
315
+ }
316
+ export interface WebhookEndpointResolverService {
317
+ readonly resolve: (input: WebhookEndpointResolveInput) => Effect.Effect<WebhookEndpoint | undefined, WebhookEndpointResolverError>;
318
+ }
319
+ declare const WebhookEndpointResolver_base: Context.ServiceClass<WebhookEndpointResolver, "auth/WebhookEndpointResolver", WebhookEndpointResolverService>;
320
+ export declare class WebhookEndpointResolver extends WebhookEndpointResolver_base {
321
+ }
322
+ export declare namespace WebhookEndpointResolver {
323
+ const make: (service: WebhookEndpointResolverService) => WebhookEndpointResolverService;
324
+ }
47
325
  export interface WebhookDeliveryService {
48
326
  readonly deliver: (request: WebhookSignedRequest) => Effect.Effect<void, WebhookError>;
49
327
  }
@@ -53,20 +331,50 @@ export declare class WebhookDelivery extends WebhookDelivery_base {
53
331
  export declare namespace WebhookDelivery {
54
332
  const make: (service: WebhookDeliveryService) => WebhookDeliveryService;
55
333
  }
334
+ export interface WebhookOutboxWorkerService {
335
+ readonly process: (input?: WebhookOutboxProcessInput) => Effect.Effect<WebhookOutboxProcessResult, WebhookOutboxStoreError | WebhookOutboxDeadLetterHandlerError, WebhookOutboxStore | WebhookEndpointResolver | Crypto | WebhookDelivery>;
336
+ }
56
337
  export declare const WebhookHeaders: {
57
338
  readonly id: "effect-auth-webhook-id";
58
339
  readonly timestamp: "effect-auth-webhook-timestamp";
59
340
  readonly signature: "effect-auth-webhook-signature";
60
341
  readonly eventType: "effect-auth-webhook-event";
61
342
  };
343
+ export declare const defaultWebhookReceiverToleranceMillis: number;
344
+ export declare const defaultWebhookOutboxBackoffMillis: (nextAttemptNumber: number) => number;
345
+ export declare const defaultWebhookOutboxNextAttemptAt: (input: WebhookOutboxFailureInput) => UnixMillis;
346
+ export declare const defaultWebhookOutboxFailureMessage: (input: WebhookOutboxFailureInput) => string;
347
+ export declare const defaultWebhookOutboxDeadLetterMessage: (input: WebhookOutboxDeadLetterInput) => string;
348
+ export declare const filterDueWebhookOutboxRecords: (records: Iterable<WebhookOutboxRecord>, input: Required<Pick<WebhookOutboxClaimDueInput, "now">> & Omit<WebhookOutboxClaimDueInput, "now">) => readonly WebhookOutboxRecord[];
62
349
  export declare const formatWebhookSignatureHeader: (signature: string) => string;
63
350
  export declare const makeWebhookEvent: <Type extends string, Payload>(input: WebhookEventInput<Type, Payload>) => Effect.Effect<WebhookEvent<Type, Payload>>;
351
+ export declare const makeIncidentActionWebhookEvent: (input: IncidentActionWebhookEventInput) => Effect.Effect<IncidentActionWebhookEvent>;
352
+ export declare const makeLoginRiskWebhookEvent: (input: LoginRiskWebhookEventInput) => Effect.Effect<LoginRiskWebhookEvent>;
64
353
  export declare const encodeWebhookEvent: (event: WebhookEvent) => Effect.Effect<string, WebhookError>;
65
354
  export declare const signWebhookBody: (input: WebhookSignatureInput) => Effect.Effect<string, WebhookError, Crypto>;
66
355
  export declare const verifyWebhookSignature: (input: WebhookVerifyInput) => Effect.Effect<boolean, WebhookError, Crypto>;
356
+ export declare const verifyWebhookRequest: (input: VerifyWebhookRequestInput) => Effect.Effect<VerifiedWebhookRequest, WebhookReceiverError, Crypto>;
357
+ export declare const claimWebhookReplay: (input: WebhookReplayClaimInput) => Effect.Effect<boolean, WebhookReplayStoreError, WebhookReplayStore>;
358
+ export declare const verifyWebhookRequestOnce: (input: VerifyWebhookRequestOnceInput) => Effect.Effect<VerifiedWebhookRequest, WebhookReceiverError, Crypto | WebhookReplayStore>;
67
359
  export declare const makeWebhookRequest: <Type extends string, Payload>(input: MakeWebhookRequestInput<Type, Payload>) => Effect.Effect<WebhookSignedRequest, WebhookError, Crypto>;
68
360
  export declare const deliverWebhook: (request: WebhookSignedRequest) => Effect.Effect<void, WebhookError, WebhookDelivery>;
361
+ export declare const resolveWebhookEndpoint: (input: WebhookEndpointResolveInput) => Effect.Effect<WebhookEndpoint | undefined, WebhookEndpointResolverError, WebhookEndpointResolver>;
69
362
  export declare const dispatchWebhook: <Type extends string, Payload>(input: MakeWebhookRequestInput<Type, Payload>) => Effect.Effect<void, WebhookError, Crypto | WebhookDelivery>;
363
+ export declare const enqueueWebhook: <Type extends string, Payload>(input: WebhookOutboxEnqueueInput<Type, Payload>) => Effect.Effect<WebhookOutboxRecord<Type, Payload>, WebhookOutboxStoreError, WebhookOutboxStore>;
364
+ export declare const enqueueWebhookFanout: <Type extends string, Payload, R = never>(input: WebhookOutboxFanoutInput<Type, Payload, R>) => Effect.Effect<WebhookOutboxFanoutResult<Type, Payload>, WebhookOutboxFanoutError | WebhookOutboxStoreError, WebhookOutboxStore | R>;
365
+ export declare const claimDueWebhooks: (input?: WebhookOutboxClaimDueInput) => Effect.Effect<readonly WebhookOutboxRecord[], WebhookOutboxStoreError, WebhookOutboxStore>;
366
+ export declare const markWebhookDelivered: (input: WebhookOutboxMarkDeliveredInput) => Effect.Effect<void, WebhookOutboxStoreError, WebhookOutboxStore>;
367
+ export declare const markWebhookFailed: (input: WebhookOutboxMarkFailedInput) => Effect.Effect<void, WebhookOutboxStoreError, WebhookOutboxStore>;
368
+ export declare const markWebhookDeadLettered: (input: WebhookOutboxMarkDeadLetteredInput) => Effect.Effect<void, WebhookOutboxStoreError, WebhookOutboxStore>;
369
+ export declare const deleteWebhookOutboxBefore: (input: WebhookOutboxDeleteBeforeInput) => Effect.Effect<number, WebhookOutboxStoreError, WebhookOutboxStore>;
370
+ export declare const deleteExpiredWebhookReplays: (input?: WebhookReplayDeleteExpiredInput) => Effect.Effect<number, WebhookReplayStoreError, WebhookReplayStore>;
371
+ export declare function processWebhookOutbox(input: WebhookOutboxProcessFailInput): Effect.Effect<WebhookOutboxProcessResult, WebhookOutboxProcessError, WebhookOutboxStore | WebhookEndpointResolver | Crypto | WebhookDelivery>;
372
+ export declare function processWebhookOutbox(input?: WebhookOutboxProcessInput): Effect.Effect<WebhookOutboxProcessResult, WebhookOutboxStoreError, WebhookOutboxStore | WebhookEndpointResolver | Crypto | WebhookDelivery>;
373
+ export declare const makeWebhookOutboxWorker: (options?: WebhookOutboxProcessInput) => WebhookOutboxWorkerService;
374
+ export declare const makeWebhookReplayStoreMemory: () => WebhookReplayStoreService;
375
+ export declare const makeWebhookOutboxStoreMemory: () => WebhookOutboxStoreService;
70
376
  export declare const WebhookDeliveryNoopLive: Layer.Layer<WebhookDelivery, never, never>;
377
+ export declare const WebhookOutboxStoreMemoryLive: Layer.Layer<WebhookOutboxStore, never, never>;
378
+ export declare const WebhookReplayStoreMemoryLive: Layer.Layer<WebhookReplayStore, never, never>;
71
379
  export {};
72
380
  //# sourceMappingURL=Webhook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Webhook.d.ts","sourceRoot":"","sources":["../src/Webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Webhook.d.ts","sourceRoot":"","sources":["../src/Webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAQ,MAAM,EAAY,KAAK,EAAU,MAAM,QAAQ,CAAC;AAE/E,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,gCAAgC,GAAG,SAAS,CAAC;;;;AAEzD,qBAAa,YAAa,SAAQ,kBAAiC;IACjE,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;;;;AAEL,qBAAa,4BAA6B,SAAQ,kCAEhD;IACA,QAAQ,CAAC,SAAS,EAAE,gCAAgC,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,MAAM,0BAA0B,GAClC,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,cAAc,CAAC;;;;AAEnB,qBAAa,oBAAqB,SAAQ,0BAExC;IACA,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAC7C,MAAM,EACN,0BAA0B,CAC3B,CAAC;AACF,eAAO,MAAM,mBAAmB,wCAAuC,CAAC;AAExE,MAAM,WAAW,YAAY,CAC3B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,MAAM,iBAAiB,CAC3B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO,IACf,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,GAAG;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,+BAA+B,CAAC;AAC7E,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAChE,MAAM,MAAM,0BAA0B,GAAG,YAAY,CACnD,8BAA8B,EAC9B,4BAA4B,CAC7B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAC7D,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAC9C,yBAAyB,EACzB,uBAAuB,CACxB,CAAC;AAEF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB,CACtC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,QAAQ,GACR,WAAW,GACX,eAAe,CAAC;AAEpB,MAAM,WAAW,mBAAmB,CAClC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB,CACxC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,+BAA+B,CAC9C,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,MAAM,mCAAmC,CAC7C,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO,EACjB,CAAC,GAAG,KAAK,IACP,CACF,KAAK,EAAE,+BAA+B,CAAC,IAAI,EAAE,OAAO,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAElD,MAAM,WAAW,0BAA0B,CACzC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,MAAM,qBAAqB,CAC/B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO,IACf,CAAC,KAAK,EAAE,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,mBAAmB,CAAC;AAE9E,UAAU,4BAA4B,CACpC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,MAAM,wBAAwB,CAClC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO,EACjB,CAAC,GAAG,KAAK,IACP,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,GAC7C,CACI;IACE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC;CACtC,GACD;IACE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,mCAAmC,CAC/D,IAAI,EACJ,OAAO,EACP,CAAC,CACF,CAAC;CACH,CACJ,CAAC;AAEJ,MAAM,WAAW,yBAAyB,CACxC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;CACjE;AAED,MAAM,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;;;;AAEjE,qBAAa,wBAAyB,SAAQ,8BAE5C;IACA,QAAQ,CAAC,SAAS,EAAE,4BAA4B,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,0BAA0B,GAClC,oBAAoB,GACpB,4BAA4B,GAC5B,iBAAiB,CAAC;AAEtB,MAAM,MAAM,6BAA6B,GACrC,0BAA0B,GAC1B,cAAc,CAAC;AAEnB,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,4BAA4B,CAAC;CAC9D;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,4BAA4B,CAAC;CAC9D;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,yBAAyB,KAC7B,UAAU,CAAC;AAEhB,MAAM,MAAM,2BAA2B,GAAG,CACxC,KAAK,EAAE,yBAAyB,KAC7B,MAAM,GAAG,SAAS,CAAC;AAExB,MAAM,MAAM,8BAA8B,GAAG,CAC3C,KAAK,EAAE,4BAA4B,KAChC,MAAM,GAAG,SAAS,CAAC;AAExB,MAAM,MAAM,8BAA8B,GAAG,CAC3C,KAAK,EAAE,mCAAmC,KACvC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAElC,MAAM,MAAM,qCAAqC,GAAG,QAAQ,GAAG,MAAM,CAAC;;;;AAEtE,qBAAa,mCAAoC,SAAQ,yCAEvD;IACA,QAAQ,CAAC,KAAK,EAAE,mCAAmC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAC;IAClD,QAAQ,CAAC,cAAc,CAAC,EAAE,2BAA2B,CAAC;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC;IAC5D,QAAQ,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC;IACvD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,qCAAqC,CAAC;CAC3E;AAED,MAAM,WAAW,6BACf,SAAQ,yBAAyB;IACjC,QAAQ,CAAC,YAAY,EAAE,8BAA8B,CAAC;IACtD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,MAAM,8BAA8B,GACtC,WAAW,GACX,QAAQ,GACR,eAAe,CAAC;AAEpB,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,eAAe,CAAC;;;;AAEpE,qBAAa,uBAAwB,SAAQ,6BAE3C;IACA,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,CACd,KAAK,EAAE,uBAAuB,KAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACrD,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,CAAC,EAAE,+BAA+B,KACpC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,2BAA2B,GACnC,SAAS,GACT,UAAU,GACV,eAAe,GACf,YAAY,GACZ,kBAAkB,GAClB,cAAc,CAAC;;;;AAEnB,qBAAa,uBAAwB,SAAQ,6BAE3C;IACA,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,MAAM,yBAAyB,GACjC,uBAAuB,GACvB,mCAAmC,CAAC;AAExC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,SAAS,MAAM,EAAE,OAAO,EAC7C,KAAK,EAAE,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,KAC5C,MAAM,CAAC,MAAM,CAChB,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,EAClC,uBAAuB,CACxB,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,0BAA0B,KAC9B,MAAM,CAAC,MAAM,CAAC,SAAS,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC5E,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,+BAA+B,KACnC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,CACnB,KAAK,EAAE,4BAA4B,KAChC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,CACzB,KAAK,EAAE,kCAAkC,KACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,CACrB,KAAK,EAAE,8BAA8B,KAClC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACrD;;AAED,qBAAa,kBAAmB,SAAQ,uBAGV;CAAG;AAEjC,yBAAiB,kBAAkB,CAAC;IAC3B,MAAM,IAAI,GACf,SAAS,yBAAyB,KACjC,yBAA2D,CAAC;CAChE;;AAED,qBAAa,kBAAmB,SAAQ,uBAGV;CAAG;AAEjC,yBAAiB,kBAAkB,CAAC;IAC3B,MAAM,IAAI,GACf,SAAS,yBAAyB,KACjC,yBAA2D,CAAC;CAChE;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,CAChB,KAAK,EAAE,2BAA2B,KAC/B,MAAM,CAAC,MAAM,CAAC,eAAe,GAAG,SAAS,EAAE,4BAA4B,CAAC,CAAC;CAC/E;;AAED,qBAAa,uBAAwB,SAAQ,4BAGV;CAAG;AAEtC,yBAAiB,uBAAuB,CAAC;IAChC,MAAM,IAAI,GACf,SAAS,8BAA8B,KACtC,8BAAqE,CAAC;CAC1E;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,oBAAoB,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;CACxC;;AAED,qBAAa,eAAgB,SAAQ,oBAGV;CAAG;AAE9B,yBAAiB,eAAe,CAAC;IACxB,MAAM,IAAI,GACf,SAAS,sBAAsB,KAC9B,sBAAqD,CAAC;CAC1D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,CAChB,KAAK,CAAC,EAAE,yBAAyB,KAC9B,MAAM,CAAC,MAAM,CAChB,0BAA0B,EAC1B,uBAAuB,GAAG,mCAAmC,EAC7D,kBAAkB,GAAG,uBAAuB,GAAG,MAAM,GAAG,eAAe,CACxE,CAAC;CACH;AAED,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAcX,eAAO,MAAM,qCAAqC,QAAa,CAAC;AAEhE,eAAO,MAAM,iCAAiC,GAC5C,mBAAmB,MAAM,KACxB,MACoE,CAAC;AAExE,eAAO,MAAM,iCAAiC,GAC5C,OAAO,yBAAyB,KAC/B,UAGA,CAAC;AAEJ,eAAO,MAAM,kCAAkC,GAC7C,OAAO,yBAAyB,KAC/B,MAYF,CAAC;AAEF,eAAO,MAAM,qCAAqC,GAChD,OAAO,4BAA4B,KAClC,MASF,CAAC;AAwHF,eAAO,MAAM,6BAA6B,GACxC,SAAS,QAAQ,CAAC,mBAAmB,CAAC,EACtC,OAAO,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,GACtD,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,KACxC,SAAS,mBAAmB,EAa9B,CAAC;AA2BF,eAAO,MAAM,4BAA4B,GAAI,WAAW,MAAM,KAAG,MAC9C,CAAC;AAEpB,eAAO,MAAM,gBAAgB,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,EAC3D,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,KACtC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAMxC,CAAC;AAEL,eAAO,MAAM,8BAA8B,GACzC,OAAO,+BAA+B,KACrC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAMvC,CAAC;AAEL,eAAO,MAAM,yBAAyB,GACpC,OAAO,0BAA0B,KAChC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAMlC,CAAC;AAEL,eAAO,MAAM,kBAAkB,GAC7B,OAAO,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAIjC,CAAC;AAEL,eAAO,MAAM,eAAe,GAC1B,OAAO,qBAAqB,KAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAY1C,CAAC;AAEJ,eAAO,MAAM,sBAAsB,GACjC,OAAO,kBAAkB,KACxB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAgB1C,CAAC;AAEL,eAAO,MAAM,oBAAoB,GAC/B,OAAO,yBAAyB,KAC/B,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CA2CjE,CAAC;AAEL,eAAO,MAAM,kBAAkB,GAC7B,OAAO,uBAAuB,KAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,CACd,CAAC;AAExD,eAAO,MAAM,wBAAwB,GACnC,OAAO,6BAA6B,KACnC,MAAM,CAAC,MAAM,CACd,sBAAsB,EACtB,oBAAoB,EACpB,MAAM,GAAG,kBAAkB,CA0BzB,CAAC;AAEL,eAAO,MAAM,kBAAkB,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,EAC7D,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,YAAY,EAAE,MAAM,CAuBvD,CAAC;AAEL,eAAO,MAAM,cAAc,GACzB,SAAS,oBAAoB,KAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,CACU,CAAC;AAE/D,eAAO,MAAM,sBAAsB,GACjC,OAAO,2BAA2B,KACjC,MAAM,CAAC,MAAM,CACd,eAAe,GAAG,SAAS,EAC3B,4BAA4B,EAC5B,uBAAuB,CAC8C,CAAC;AAExE,eAAO,MAAM,eAAe,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,EAC1D,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,CAKzD,CAAC;AAEL,eAAO,MAAM,cAAc,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,EACzD,OAAO,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,KAC9C,MAAM,CAAC,MAAM,CACd,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,EAClC,uBAAuB,EACvB,kBAAkB,CACwC,CAAC;AA+B7D,eAAO,MAAM,oBAAoB,GAAI,IAAI,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,EAC1E,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAChD,MAAM,CAAC,MAAM,CACd,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,EACxC,wBAAwB,GAAG,uBAAuB,EAClD,kBAAkB,GAAG,CAAC,CA6BpB,CAAC;AAEL,eAAO,MAAM,gBAAgB,GAC3B,QAAO,0BAA+B,KACrC,MAAM,CAAC,MAAM,CACd,SAAS,mBAAmB,EAAE,EAC9B,uBAAuB,EACvB,kBAAkB,CACyC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,GAC/B,OAAO,+BAA+B,KACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,CACH,CAAC;AAEhE,eAAO,MAAM,iBAAiB,GAC5B,OAAO,4BAA4B,KAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,CACN,CAAC;AAE7D,eAAO,MAAM,uBAAuB,GAClC,OAAO,kCAAkC,KACxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,EAAE,kBAAkB,CACA,CAAC;AAEnE,eAAO,MAAM,yBAAyB,GACpC,OAAO,8BAA8B,KACpC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,kBAAkB,CACN,CAAC;AAE/D,eAAO,MAAM,2BAA2B,GACtC,QAAO,+BAAoC,KAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,kBAAkB,CACL,CAAC;AAuRhE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,6BAA6B,GACnC,MAAM,CAAC,MAAM,CACd,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,GAAG,uBAAuB,GAAG,MAAM,GAAG,eAAe,CACxE,CAAC;AACF,wBAAgB,oBAAoB,CAClC,KAAK,CAAC,EAAE,yBAAyB,GAChC,MAAM,CAAC,MAAM,CACd,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,GAAG,uBAAuB,GAAG,MAAM,GAAG,eAAe,CACxE,CAAC;AAqCF,eAAO,MAAM,uBAAuB,GAClC,UAAS,yBAA8B,KACtC,0BAYD,CAAC;AAEH,eAAO,MAAM,4BAA4B,QAAO,yBAwC/C,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAAO,yBAqH/C,CAAC;AAEF,eAAO,MAAM,uBAAuB,4CAInC,CAAC;AAEF,eAAO,MAAM,4BAA4B,+CAExC,CAAC;AAEF,eAAO,MAAM,4BAA4B,+CAExC,CAAC"}