@0xmaxma/claude-gateway 1.8.9 → 1.8.11

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 (121) hide show
  1. package/README.md +46 -6
  2. package/config.template.json +2 -1
  3. package/dist/agent/runner.d.ts +86 -1
  4. package/dist/agent/runner.d.ts.map +1 -1
  5. package/dist/agent/runner.js +396 -9
  6. package/dist/agent/runner.js.map +1 -1
  7. package/dist/api/router.d.ts.map +1 -1
  8. package/dist/api/router.js +1028 -6
  9. package/dist/api/router.js.map +1 -1
  10. package/dist/api/share-router.d.ts.map +1 -1
  11. package/dist/api/share-router.js +24 -0
  12. package/dist/api/share-router.js.map +1 -1
  13. package/dist/api/webhooks-router.d.ts +2 -0
  14. package/dist/api/webhooks-router.d.ts.map +1 -1
  15. package/dist/api/webhooks-router.js +2 -0
  16. package/dist/api/webhooks-router.js.map +1 -1
  17. package/dist/api/whatsapp-access.d.ts +123 -0
  18. package/dist/api/whatsapp-access.d.ts.map +1 -0
  19. package/dist/api/whatsapp-access.js +135 -0
  20. package/dist/api/whatsapp-access.js.map +1 -0
  21. package/dist/api/whatsapp-cloud-access.d.ts +48 -0
  22. package/dist/api/whatsapp-cloud-access.d.ts.map +1 -0
  23. package/dist/api/whatsapp-cloud-access.js +58 -0
  24. package/dist/api/whatsapp-cloud-access.js.map +1 -0
  25. package/dist/api/whatsapp-cloud-client.d.ts +143 -0
  26. package/dist/api/whatsapp-cloud-client.d.ts.map +1 -0
  27. package/dist/api/whatsapp-cloud-client.js +298 -0
  28. package/dist/api/whatsapp-cloud-client.js.map +1 -0
  29. package/dist/api/whatsapp-cloud-webhook-router.d.ts +132 -0
  30. package/dist/api/whatsapp-cloud-webhook-router.d.ts.map +1 -0
  31. package/dist/api/whatsapp-cloud-webhook-router.js +494 -0
  32. package/dist/api/whatsapp-cloud-webhook-router.js.map +1 -0
  33. package/dist/cli/args.d.ts +34 -0
  34. package/dist/cli/args.d.ts.map +1 -1
  35. package/dist/cli/args.js +55 -0
  36. package/dist/cli/args.js.map +1 -1
  37. package/dist/cli/commands/app.d.ts +28 -0
  38. package/dist/cli/commands/app.d.ts.map +1 -0
  39. package/dist/cli/commands/app.js +411 -0
  40. package/dist/cli/commands/app.js.map +1 -0
  41. package/dist/cli/commands/doctor.d.ts.map +1 -1
  42. package/dist/cli/commands/doctor.js +77 -16
  43. package/dist/cli/commands/doctor.js.map +1 -1
  44. package/dist/cli/commands/service.d.ts.map +1 -1
  45. package/dist/cli/commands/service.js +373 -56
  46. package/dist/cli/commands/service.js.map +1 -1
  47. package/dist/cli/commands/update.d.ts.map +1 -1
  48. package/dist/cli/commands/update.js +1 -17
  49. package/dist/cli/commands/update.js.map +1 -1
  50. package/dist/cli/http-client.d.ts +8 -0
  51. package/dist/cli/http-client.d.ts.map +1 -1
  52. package/dist/cli/http-client.js +5 -2
  53. package/dist/cli/http-client.js.map +1 -1
  54. package/dist/cli/index.d.ts.map +1 -1
  55. package/dist/cli/index.js +16 -4
  56. package/dist/cli/index.js.map +1 -1
  57. package/dist/cli/prompt.d.ts +17 -2
  58. package/dist/cli/prompt.d.ts.map +1 -1
  59. package/dist/cli/prompt.js +33 -2
  60. package/dist/cli/prompt.js.map +1 -1
  61. package/dist/config/loader.d.ts +8 -0
  62. package/dist/config/loader.d.ts.map +1 -1
  63. package/dist/config/loader.js +22 -4
  64. package/dist/config/loader.js.map +1 -1
  65. package/dist/config/watcher.d.ts.map +1 -1
  66. package/dist/config/watcher.js +12 -0
  67. package/dist/config/watcher.js.map +1 -1
  68. package/dist/config/whatsapp-accounts.d.ts +77 -0
  69. package/dist/config/whatsapp-accounts.d.ts.map +1 -0
  70. package/dist/config/whatsapp-accounts.js +218 -0
  71. package/dist/config/whatsapp-accounts.js.map +1 -0
  72. package/dist/history/db.d.ts.map +1 -1
  73. package/dist/history/db.js +43 -11
  74. package/dist/history/db.js.map +1 -1
  75. package/dist/history/types.d.ts +18 -1
  76. package/dist/history/types.d.ts.map +1 -1
  77. package/dist/history/types.js +1 -1
  78. package/dist/history/types.js.map +1 -1
  79. package/dist/index.js +26 -0
  80. package/dist/index.js.map +1 -1
  81. package/dist/session/process.d.ts.map +1 -1
  82. package/dist/session/process.js +37 -0
  83. package/dist/session/process.js.map +1 -1
  84. package/dist/session/store.d.ts +3 -2
  85. package/dist/session/store.d.ts.map +1 -1
  86. package/dist/session/store.js +1 -1
  87. package/dist/session/store.js.map +1 -1
  88. package/dist/share/session-video-catalog.d.ts +19 -0
  89. package/dist/share/session-video-catalog.d.ts.map +1 -0
  90. package/dist/share/session-video-catalog.js +119 -0
  91. package/dist/share/session-video-catalog.js.map +1 -0
  92. package/dist/shared/image-optimize.d.ts +32 -0
  93. package/dist/shared/image-optimize.d.ts.map +1 -0
  94. package/dist/shared/image-optimize.js +197 -0
  95. package/dist/shared/image-optimize.js.map +1 -0
  96. package/dist/shared/image-sniff.d.ts +9 -0
  97. package/dist/shared/image-sniff.d.ts.map +1 -1
  98. package/dist/shared/image-sniff.js +13 -0
  99. package/dist/shared/image-sniff.js.map +1 -1
  100. package/dist/shared/text-chunk.d.ts +37 -0
  101. package/dist/shared/text-chunk.d.ts.map +1 -0
  102. package/dist/shared/text-chunk.js +105 -0
  103. package/dist/shared/text-chunk.js.map +1 -0
  104. package/dist/shared/whatsapp-ack.d.ts +13 -0
  105. package/dist/shared/whatsapp-ack.d.ts.map +1 -0
  106. package/dist/shared/whatsapp-ack.js +16 -0
  107. package/dist/shared/whatsapp-ack.js.map +1 -0
  108. package/dist/types.d.ts +183 -0
  109. package/dist/types.d.ts.map +1 -1
  110. package/dist/whatsapp/manager.d.ts +173 -0
  111. package/dist/whatsapp/manager.d.ts.map +1 -0
  112. package/dist/whatsapp/manager.js +838 -0
  113. package/dist/whatsapp/manager.js.map +1 -0
  114. package/mcp/server.ts +4 -0
  115. package/mcp/tools/image/module.ts +6 -1
  116. package/mcp/tools/telegram/receiver-server.ts +15 -8
  117. package/mcp/tools/telegram/reply-attachment.ts +81 -0
  118. package/mcp/tools/video/module.ts +6 -1
  119. package/mcp/tools/whatsapp/module.ts +162 -0
  120. package/mcp/tools/whatsapp-cloud/module.ts +536 -0
  121. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"share-router.d.ts","sourceRoot":"","sources":["../../src/api/share-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAMpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,UAAU,EAEV,WAAW,EAOZ,MAAM,sBAAsB,CAAC;AAkE9B;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC5E;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC;qDACiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE,qBAA0B,GAC/B,MAAM,CA2GR;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,WAAW,GAC3B,MAAM,CAqTR"}
1
+ {"version":3,"file":"share-router.d.ts","sourceRoot":"","sources":["../../src/api/share-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAMpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,UAAU,EAEV,WAAW,EAOZ,MAAM,sBAAsB,CAAC;AAmE9B;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC5E;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC;qDACiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EACjB,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE,qBAA0B,GAC/B,MAAM,CA2GR;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,WAAW,GAC3B,MAAM,CA6UR"}
@@ -44,6 +44,7 @@ const router_1 = require("./router");
44
44
  const media_store_1 = require("../history/media-store");
45
45
  const share_store_1 = require("../share/share-store");
46
46
  const session_image_catalog_1 = require("../share/session-image-catalog");
47
+ const session_video_catalog_1 = require("../share/session-video-catalog");
47
48
  const PURPOSE_RE = /^[a-z][a-z0-9_]{0,31}$/;
48
49
  const MIN_TTL_SECONDS = 10;
49
50
  const MAX_TTL_SECONDS = 86400;
@@ -517,6 +518,29 @@ function createSharesPrivateRouter(store, apiKeys, agentsBaseDir, publicBaseUrl,
517
518
  const items = (0, session_image_catalog_1.computeSessionImageCatalog)({ agentsBaseDir, store, agentId, sessionId });
518
519
  res.json({ items });
519
520
  });
521
+ /**
522
+ * GET /api/v1/video-catalog?agent_id=...&session_id=... — the deterministic
523
+ * video list of one session, oldest first. Response:
524
+ * { items: [{ index, relative_path, origin, ts, available, desc? }] }.
525
+ *
526
+ * The video analogue of /v1/image-catalog, kept separate so clips never leak
527
+ * into the image-reference surface. Read-only: mints nothing, returns no token.
528
+ */
529
+ router.get('/v1/video-catalog', auth, (req, res) => {
530
+ const apiKey = req.apiKey;
531
+ const agentId = typeof req.query.agent_id === 'string' ? req.query.agent_id.trim() : '';
532
+ const sessionId = typeof req.query.session_id === 'string' ? req.query.session_id.trim() : '';
533
+ if (!(0, router_1.isValidAgentId)(agentId) || !(0, router_1.isValidSessionId)(sessionId)) {
534
+ res.status(400).json({ error: 'agent_id and session_id must be valid identifiers' });
535
+ return;
536
+ }
537
+ if (!(0, auth_1.canAccessAgent)(apiKey, agentId)) {
538
+ res.status(403).json({ error: `API key has no access to agent '${agentId}'` });
539
+ return;
540
+ }
541
+ const items = (0, session_video_catalog_1.computeSessionVideoCatalog)({ agentsBaseDir, agentId, sessionId });
542
+ res.json({ items });
543
+ });
520
544
  return router;
521
545
  }
522
546
  //# sourceMappingURL=share-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"share-router.js","sourceRoot":"","sources":["../../src/api/share-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"share-router.js","sourceRoot":"","sources":["../../src/api/share-router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FA,sDAqCC;AAQD,4DA+GC;AAED,8DAmVC;AA5kBD,qCAAoD;AACpD,uCAAyB;AACzB,2CAA6B;AAC7B,iCAAiE;AACjE,qCAA4D;AAC5D,wDAAoD;AAEpD,sDAU8B;AAC9B,0EAA4E;AAC5E,0EAA4E;AAsB5E,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAC5C,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,eAAe,GAAG,KAAM,CAAC;AAC/B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC,SAAS,SAAS,CAAC,IAAY;IAC7B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,qBAAqB,CAAC,CAAC,OAAO,GAAG,CAAC;QACvC,KAAK,gBAAgB,CAAC,CAAC,OAAO,GAAG,CAAC;QAClC,KAAK,qBAAqB,CAAC,CAAC,OAAO,GAAG,CAAC;QACvC,KAAK,uBAAuB,CAAC,CAAC,OAAO,GAAG,CAAC;QACzC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC;IACtB,CAAC;AACH,CAAC;AAED;iEACiE;AACjE,SAAS,cAAc,CAAC,GAAa;IACnC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACvD,CAAC;AAED;;;;iEAIiE;AACjE,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,OAAO,CACtC,SAAS,EACT,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CACxD,CAAC;AACJ,CAAC;AAED;;;;8EAI8E;AAC9E,MAAM,YAAY,GAA2B,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;AAE1E;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,QAAgB,EAAE,IAAY;IAClE,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,yDAAyD;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACpD,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,0EAA0E;IAC1E,2EAA2E;IAC3E,2CAA2C;IAC3C,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,IAAI,GACR,CAAC,GAAG,OAAO,CAAC;SACT,KAAK,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;SACpD,IAAI,CAAC,EAAE,CAAC;SACR,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,IAAI,EAAE,IAAI,UAAU,CAAC;IAC1B,yEAAyE;IACzE,8EAA8E;IAC9E,4CAA4C;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC;IACjG,OAAO,yBAAyB,SAAS,GAAG,MAAM,uBAAuB,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;AACzG,CAAC;AAQD,SAAgB,wBAAwB,CACtC,KAAiB,EACjB,aAAqB,EACrB,OAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAA,sBAAQ,EAAC,qBAAqB,CAAC,CAAC,CAAC;IACxD,MAAM,aAAa,GACjB,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC1G,MAAM,MAAM,GAAG,IAAA,gCAAkB,GAAE,CAAC;IAEpC,2EAA2E;IAC3E,2EAA2E;IAC3E,6CAA6C;IAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8C,CAAC;IACtE,6EAA6E;IAC7E,+EAA+E;IAC/E,4EAA4E;IAC5E,iDAAiD;IACjD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,iBAAiB,GAAG,KAAM,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAW,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,6DAA6D;YAC7D,IAAI,OAAO,CAAC,IAAI,GAAG,KAAM,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO;oBAAE,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;wBAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,KAAM,EAAE,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,aAAa;YAAE,OAAO,KAAK,CAAC;QAC/C,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,gEAAgE;IAChE,yEAAyE;IACzE,MAAM,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACvF,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,KAAK,GAAG,WAAW,IAAI,iBAAiB,EAAE,CAAC;gBAC7C,WAAW,GAAG,KAAK,CAAC;gBACpB,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,wCAAwC;YAClE,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,0EAA0E;QAC1E,4EAA4E;QAC5E,IAAI,EAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,wBAAU,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YACrF,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAClC,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,qCAAqC;YACrC,MAAM,IAAI,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAE/C,wEAAwE;YACxE,0EAA0E;YAC1E,sCAAsC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBAClB,cAAc,EAAE,IAAI;gBACpB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;gBAC1G,wBAAwB,EAAE,SAAS;gBACnC,eAAe,EAAE,mBAAmB;aACrC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACjB,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,oEAAoE;gBACpE,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACtB,IAAI,CAAC;wBAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,OAAO,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC;oBAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;YAC1D,CAAC;YACD,yEAAyE;YACzE,cAAc,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,yBAAyB,CACvC,KAAiB,EACjB,OAAiB,EACjB,aAAqB,EACrB,aAAsB,EACtB,cAA4B;IAE5B,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,IAAI,GAAG,IAAA,8BAAuB,EAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,cAAc,IAAI,IAAA,gCAAkB,GAAE,CAAC;IACtD,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;QACvB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAA,sBAAQ,EAAC,mBAAmB,CAAC,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAyB,CAAC;IACjF,CAAC,CAAC,EAAE,CAAC;IAEL;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAI,GAAqB,CAAC,MAAM,CAAC;QAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAOhB,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,IAAI,CAAC,IAAA,uBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAA,yBAAgB,EAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAA,qBAAc,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QACD,IAAI,UAAU,GAAG,UAAU,CAAC;QAC5B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACpF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAmB,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,MAAM,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QAeD,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,IAAiB,EAAE,CAAC;YACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qDAAqD,EAAE,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,GAAgD,CAAC;YAC7D,IAAI,SAAiB,CAAC;YACtB,IAAI,aAAqB,CAAC;YAC1B,IAAI,MAA0B,CAAC;YAC/B,IAAI,WAA+B,CAAC;YACpC,IAAI,WAA+B,CAAC;YACpC,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yDAAyD,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;oBACxH,OAAO;gBACT,CAAC;gBACD,SAAS,GAAG,YAAY,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC9C,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC;gBACtC,IAAI,QAAQ,CAAC,MAAM;oBAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC9C,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAChC,IAAI,QAAQ,CAAC,MAAM;oBAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;YACrD,CAAC;iBAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC3D,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChC,SAAS,GAAG,EAAE,CAAC,CAAC,2DAA2D;YAC7E,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YACD,IAAI,SAAS,CAAC;YACd,IAAI,CAAC;gBACH,SAAS,GAAG,IAAA,+BAAiB,EAAC,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACvG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,wBAAU,EAAE,CAAC;oBAC9B,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC7E,OAAO;gBACT,CAAC;gBACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YACD,IAAI,CAAC,SAAS;gBAAE,SAAS,GAAG,QAAQ,SAAS,CAAC,YAAY,EAAE,CAAC;YAC7D,0EAA0E;YAC1E,wEAAwE;YACxE,mEAAmE;YACnE,iEAAiE;YACjE,oEAAoE;YACpE,+BAA+B;YAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACpB,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC;YAC/B,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS;gBACT,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,qEAAqE;gBACrE,qEAAqE;gBACrE,kEAAkE;gBAClE,sEAAsE;gBACtE,uEAAuE;gBACvE,uEAAuE;gBACvE,sEAAsE;gBACtE,wEAAwE;gBACxE,mCAAmC;gBACnC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBACpE,MAAM;gBACN,QAAQ,EAAE,WAAW;gBACrB,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;QACD,IAAI,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,MAAM,CAAC,aAAa,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC3H,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;gBAC3B,OAAO;gBACP,SAAS;gBACT,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO;gBACP,UAAU;gBACV,SAAS,EAAE,CAAC,CAAC,SAAS;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,OAAO,YAAY,OAAO,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7F,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,aAAa,WAAW,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;gBACpD,qDAAqD;gBACrD,4DAA4D;gBAC5D,oEAAoE;gBACpE,yBAAyB;gBACzB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,oDAAoD;gBACpD,kEAAkE;gBAClE,qEAAqE;gBACrE,kEAAkE;gBAClE,mCAAmC;gBACnC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACzE,MAAM,MAAM,GAAI,GAAqB,CAAC,MAAM,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAA,qBAAc,EAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACvE,MAAM,MAAM,GAAI,GAAqB,CAAC,MAAM,CAAC;QAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAQhB,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,IAAI,CAAC,IAAA,uBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAA,yBAAgB,EAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAA,qBAAc,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACzG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,kBAAkB,GAAG,EAAE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9G,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzG,2EAA2E;QAC3E,2EAA2E;QAC3E,oBAAoB;QACpB,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAClE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,KAAK,GAAsF,EAAE,CAAC;QACpG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAI,KAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAChE,MAAM,IAAI,GAAI,KAAkB,CAAC,KAAK,CAAE,CAAC;YACzC,IAAI,SAAS,CAAC;YACd,IAAI,CAAC;gBACH,oEAAoE;gBACpE,uEAAuE;gBACvE,gEAAgE;gBAChE,SAAS,GAAG,IAAA,+BAAiB,EAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,GAAG,YAAY,wBAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;gBACnE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvG,OAAO;YACT,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACxC,OAAO;gBACP,SAAS;gBACT,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,QAAQ;gBACR,KAAK;gBACL,MAAM;gBACN,UAAU,EAAE,KAAK;gBACjB,MAAM;aACP,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,CAAC,MAAM,aAAa,QAAQ,EAAE,CAAC,CAAC;QACvF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACpE,MAAM,MAAM,GAAI,GAAqB,CAAC,MAAM,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,IAAI,CAAC,IAAA,uBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAA,yBAAgB,EAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAA,qBAAc,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAA,kDAA0B,EAAC,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACvF,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACpE,MAAM,MAAM,GAAI,GAAqB,CAAC,MAAM,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,IAAI,CAAC,IAAA,uBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,IAAA,yBAAgB,EAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAA,qBAAc,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAA,kDAA0B,EAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAChF,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -22,6 +22,7 @@ import { Router, type Request, type Response } from 'express';
22
22
  import type { AgentRunner } from '../agent/runner';
23
23
  import { type LineWebhookOptions } from './line-webhook-router';
24
24
  import { type SlackWebhookOptions } from './slack-webhook-router';
25
+ import { type WhatsAppCloudWebhookOptions } from './whatsapp-cloud-webhook-router';
25
26
  /**
26
27
  * A per-app webhook handler. `verify` answers provider URL-verification probes
27
28
  * (GET / empty POST); `handlePost` processes a signed inbound POST. Each handler
@@ -40,6 +41,7 @@ export interface WebhookAppHandler {
40
41
  export interface WebhooksOptions {
41
42
  line?: LineWebhookOptions;
42
43
  slack?: SlackWebhookOptions;
44
+ whatsapp_cloud?: WhatsAppCloudWebhookOptions;
43
45
  }
44
46
  export declare function createWebhooksRouter(agents: Map<string, AgentRunner>, logDir: string, opts?: WebhooksOptions): Router;
45
47
  //# sourceMappingURL=webhooks-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks-router.d.ts","sourceRoot":"","sources":["../../src/api/webhooks-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAgB,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7F;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,eAAoB,GACzB,MAAM,CAsCR"}
1
+ {"version":3,"file":"webhooks-router.d.ts","sourceRoot":"","sources":["../../src/api/webhooks-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAgB,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAqC,KAAK,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAItH;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,eAAoB,GACzB,MAAM,CAuCR"}
@@ -57,6 +57,7 @@ exports.createWebhooksRouter = createWebhooksRouter;
57
57
  const express_1 = __importStar(require("express"));
58
58
  const line_webhook_router_1 = require("./line-webhook-router");
59
59
  const slack_webhook_router_1 = require("./slack-webhook-router");
60
+ const whatsapp_cloud_webhook_router_1 = require("./whatsapp-cloud-webhook-router");
60
61
  const MAX_BODY_BYTES = 256 * 1024; // pre-auth body cap
61
62
  function createWebhooksRouter(agents, logDir, opts = {}) {
62
63
  const router = (0, express_1.Router)();
@@ -64,6 +65,7 @@ function createWebhooksRouter(agents, logDir, opts = {}) {
64
65
  const handlers = {
65
66
  line: (0, line_webhook_router_1.createLineWebhookHandler)(agents, logDir, opts.line ?? {}),
66
67
  slack: (0, slack_webhook_router_1.createSlackWebhookHandler)(agents, logDir, opts.slack ?? {}),
68
+ whatsapp_cloud: (0, whatsapp_cloud_webhook_router_1.createWhatsAppCloudWebhookHandler)(agents, logDir, opts.whatsapp_cloud ?? {}),
67
69
  };
68
70
  const resolve = (req, res) => {
69
71
  const app = req.params.app;
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks-router.js","sourceRoot":"","sources":["../../src/api/webhooks-router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,oDA0CC;AA1FD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mDAAuE;AAEvE,+DAA0F;AAC1F,iEAA6F;AAE7F,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,oBAAoB;AAuBvD,SAAgB,oBAAoB,CAClC,MAAgC,EAChC,MAAc,EACd,OAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,OAAO,GAAG,iBAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAsC;QAClD,IAAI,EAAE,IAAA,8CAAwB,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/D,KAAK,EAAE,IAAA,gDAAyB,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;KACnE,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,GAAa,EAA4B,EAAE;QACxE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,+EAA+E;QAC/E,oFAAoF;QACpF,kFAAkF;QAClF,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;QACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO;YAAE,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAErD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"webhooks-router.js","sourceRoot":"","sources":["../../src/api/webhooks-router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,oDA2CC;AA7FD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mDAAuE;AAEvE,+DAA0F;AAC1F,iEAA6F;AAC7F,mFAAsH;AAEtH,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,oBAAoB;AAwBvD,SAAgB,oBAAoB,CAClC,MAAgC,EAChC,MAAc,EACd,OAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACxB,MAAM,OAAO,GAAG,iBAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAsC;QAClD,IAAI,EAAE,IAAA,8CAAwB,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/D,KAAK,EAAE,IAAA,gDAAyB,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAClE,cAAc,EAAE,IAAA,iEAAiC,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;KAC7F,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,GAAa,EAA4B,EAAE;QACxE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,+EAA+E;QAC/E,oFAAoF;QACpF,kFAAkF;QAClF,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;QACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO;YAAE,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAErD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * WhatsApp DM/group access control — pure, stateless sender gate.
3
+ *
4
+ * Structural port of `slack-access.ts` (same closed-by-default posture,
5
+ * same two-tier dmPolicy/groupPolicy shape — Slack is the right template
6
+ * here, not the DM-only `sms-access.ts`, because WhatsApp has real groups).
7
+ * The manager reads `whatsapp` config directly and calls this once per
8
+ * inbound message — no env plumbing, no state files.
9
+ *
10
+ * Default (policy absent) is CLOSED: only ids in the allowlist pass. Set
11
+ * `dmPolicy`/`groupPolicy`: 'open' to restore "reply to anyone" behavior.
12
+ *
13
+ * Allowlist entries MUST be WhatsApp JIDs (e.g. "66812345678@s.whatsapp.net"
14
+ * for a DM sender, "1234567890-1234567890@g.us" for a group) — never a
15
+ * bare phone number or a group's display name (renamable/ambiguous, same
16
+ * footgun Slack/LINE's own doc comments call out).
17
+ */
18
+ export declare function isWhatsAppSenderAllowed(policy: 'open' | 'allowlist' | 'disabled' | undefined, allowlist: string[] | undefined, id: string): boolean;
19
+ /**
20
+ * Structural view of a Baileys inbound message — the only fields the gate
21
+ * needs. Kept local (not the Baileys `WAMessage` type) so this module stays
22
+ * pure and trivially testable.
23
+ */
24
+ export interface WhatsAppMessageLike {
25
+ key?: {
26
+ remoteJid?: string | null;
27
+ /** Sender within a group (absent for 1:1 DMs, where remoteJid IS the sender). */
28
+ participant?: string | null;
29
+ /**
30
+ * Phone-number JID for `participant`, present when WhatsApp's Linked ID
31
+ * (LID) privacy system reports `participant` as a `@lid` address instead
32
+ * of the classic `@s.whatsapp.net` phone JID.
33
+ */
34
+ participantPn?: string | null;
35
+ /**
36
+ * Phone-number JID for `remoteJid` on a 1:1 chat, present when LID
37
+ * privacy reports `remoteJid` itself as `@lid` instead of the classic
38
+ * `@s.whatsapp.net` form.
39
+ */
40
+ senderPn?: string | null;
41
+ fromMe?: boolean | null;
42
+ } | null;
43
+ message?: {
44
+ /** @mentioned JIDs, present on group messages that tag someone (including the bot). */
45
+ extendedTextMessage?: {
46
+ contextInfo?: {
47
+ mentionedJid?: string[] | null;
48
+ } | null;
49
+ } | null;
50
+ imageMessage?: {
51
+ contextInfo?: {
52
+ mentionedJid?: string[] | null;
53
+ } | null;
54
+ } | null;
55
+ } | null;
56
+ }
57
+ export type WhatsAppSourceKind = 'user' | 'group' | 'other';
58
+ export interface ResolvedWhatsAppSource {
59
+ /** Conversation key — the reply target: the DM JID or the group JID. */
60
+ conversationId: string;
61
+ /** The human who sent the message — same as conversationId for a DM, the participant JID for a group. */
62
+ senderId: string;
63
+ kind: WhatsAppSourceKind;
64
+ /** @mentioned JIDs on this message (group messages only; empty for DMs). */
65
+ mentionedJids: string[];
66
+ }
67
+ /** Map a raw Baileys message to {conversationId, senderId, kind, mentionedJids}. */
68
+ export declare function resolveWhatsAppSource(msg: WhatsAppMessageLike | undefined | null): ResolvedWhatsAppSource;
69
+ /** The subset of `whatsapp` config the conversation gate reads. */
70
+ export interface WhatsAppAccessConfig {
71
+ dmPolicy?: 'open' | 'allowlist' | 'disabled';
72
+ dmAllowlist?: string[];
73
+ groupPolicy?: 'open' | 'allowlist' | 'disabled';
74
+ groupAllowlist?: string[];
75
+ }
76
+ /**
77
+ * Gate an already-resolved WhatsApp source. DMs are gated on the sender's
78
+ * JID against `dmPolicy`/`dmAllowlist`; groups are gated on the group JID
79
+ * against `groupPolicy`/`groupAllowlist`, closed by default — same posture
80
+ * as DMs. Unknown source kinds are denied.
81
+ */
82
+ export declare function isResolvedSourceAllowed(cfg: WhatsAppAccessConfig | undefined, resolved: ResolvedWhatsAppSource): boolean;
83
+ /**
84
+ * Convenience wrapper that resolves a raw message and gates it in one call.
85
+ * Equivalent to `isResolvedSourceAllowed(cfg, resolveWhatsAppSource(msg))`.
86
+ */
87
+ export declare function isWhatsAppConversationAllowed(cfg: WhatsAppAccessConfig | undefined, msg: WhatsAppMessageLike | undefined | null): boolean;
88
+ /**
89
+ * @mention gate for groups (mirrors `slack`/`line`'s `requireMention`,
90
+ * default true — only effective in groups, DMs always pass). Unlike Slack
91
+ * (which infers "was mentioned" from the event *type* being `app_mention`)
92
+ * Baileys hands every message's mentioned-JID list directly on
93
+ * `contextInfo.mentionedJid` — no separate text-scanning heuristic needed,
94
+ * just check one of the bot's own JIDs is in that list.
95
+ *
96
+ * Under WhatsApp's Linked ID (LID) privacy system a group can report the
97
+ * mentioned bot using its `@lid` identity even though `sock.user.id` (the
98
+ * phone-number JID we log in with) is the classic `@s.whatsapp.net` form —
99
+ * two different strings for the same bot. Pass `botLid` (`sock.user.lid`)
100
+ * alongside `botJid` (`sock.user.id`) so either form matches; omit it if
101
+ * unknown (older Baileys / non-LID accounts) and only `botJid` is checked.
102
+ */
103
+ export declare function wasBotMentioned(mentionedJids: string[], botJid: string | undefined, botLid?: string | null): boolean;
104
+ /**
105
+ * Canonical form of a WhatsApp JID for equality checks.
106
+ *
107
+ * WhatsApp JIDs occasionally carry a ":<device>" suffix on the *user* part
108
+ * (multi-device, e.g. "66811112222:5@s.whatsapp.net") — strip only that
109
+ * segment, not everything after the first colon, or the "@server" half gets
110
+ * dropped too and a same-user-different-device JID never matches at all
111
+ * (splitting on ':' before splitting on '@' would do exactly that). The
112
+ * `@lid` vs `@s.whatsapp.net` distinction is preserved: those are genuinely
113
+ * different addresses, and callers that must accept either (wasBotMentioned)
114
+ * normalize both forms and compare against the set.
115
+ *
116
+ * Shared by the INBOUND mention gate (wasBotMentioned above) and the OUTBOUND
117
+ * `@digits` → `mentions:[jid]` matcher in WhatsAppManager, so both sides agree
118
+ * on what "the same participant" means.
119
+ */
120
+ export declare function normalizeWhatsAppJid(jid: string): string;
121
+ /** The user half of a normalized JID — "66811112222" from "66811112222:5@s.whatsapp.net". */
122
+ export declare function whatsAppJidUser(jid: string): string;
123
+ //# sourceMappingURL=whatsapp-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-access.d.ts","sourceRoot":"","sources":["../../src/api/whatsapp-access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,EACrD,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,EAAE,EAAE,MAAM,GACT,OAAO,CAKT;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE;QACJ,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,iFAAiF;QACjF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B;;;;WAIG;QACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B;;;;WAIG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KACzB,GAAG,IAAI,CAAC;IACT,OAAO,CAAC,EAAE;QACR,uFAAuF;QACvF,mBAAmB,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE;gBAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;aAAE,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;QACzF,YAAY,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE;gBAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;aAAE,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;KACnF,GAAG,IAAI,CAAC;CACV;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IACzB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,GAAG,sBAAsB,CA+BzG;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,oBAAoB,GAAG,SAAS,EACrC,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAST;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,oBAAoB,GAAG,SAAS,EACrC,GAAG,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,GAC1C,OAAO,CAET;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAIT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWhatsAppSenderAllowed = isWhatsAppSenderAllowed;
4
+ exports.resolveWhatsAppSource = resolveWhatsAppSource;
5
+ exports.isResolvedSourceAllowed = isResolvedSourceAllowed;
6
+ exports.isWhatsAppConversationAllowed = isWhatsAppConversationAllowed;
7
+ exports.wasBotMentioned = wasBotMentioned;
8
+ exports.normalizeWhatsAppJid = normalizeWhatsAppJid;
9
+ exports.whatsAppJidUser = whatsAppJidUser;
10
+ /**
11
+ * WhatsApp DM/group access control — pure, stateless sender gate.
12
+ *
13
+ * Structural port of `slack-access.ts` (same closed-by-default posture,
14
+ * same two-tier dmPolicy/groupPolicy shape — Slack is the right template
15
+ * here, not the DM-only `sms-access.ts`, because WhatsApp has real groups).
16
+ * The manager reads `whatsapp` config directly and calls this once per
17
+ * inbound message — no env plumbing, no state files.
18
+ *
19
+ * Default (policy absent) is CLOSED: only ids in the allowlist pass. Set
20
+ * `dmPolicy`/`groupPolicy`: 'open' to restore "reply to anyone" behavior.
21
+ *
22
+ * Allowlist entries MUST be WhatsApp JIDs (e.g. "66812345678@s.whatsapp.net"
23
+ * for a DM sender, "1234567890-1234567890@g.us" for a group) — never a
24
+ * bare phone number or a group's display name (renamable/ambiguous, same
25
+ * footgun Slack/LINE's own doc comments call out).
26
+ */
27
+ function isWhatsAppSenderAllowed(policy, allowlist, id) {
28
+ if (policy === 'open')
29
+ return true;
30
+ if (policy === 'disabled')
31
+ return false;
32
+ // 'allowlist' OR undefined (closed default) → only listed ids pass.
33
+ return !!id && (allowlist ?? []).includes(id);
34
+ }
35
+ /** Map a raw Baileys message to {conversationId, senderId, kind, mentionedJids}. */
36
+ function resolveWhatsAppSource(msg) {
37
+ const remoteJid = msg?.key?.remoteJid ?? '';
38
+ if (!remoteJid)
39
+ return { conversationId: '', senderId: '', kind: 'other', mentionedJids: [] };
40
+ const mentionedJids = msg?.message?.extendedTextMessage?.contextInfo?.mentionedJid ??
41
+ msg?.message?.imageMessage?.contextInfo?.mentionedJid ??
42
+ [];
43
+ if (remoteJid.endsWith('@g.us')) {
44
+ // Group: the sender is `participant`, the conversation is the group JID itself.
45
+ // `participant` arrives as a `@lid` address (not the classic phone JID)
46
+ // for some senders under WhatsApp's Linked ID privacy system — prefer
47
+ // `participantPn` (the real phone-number JID) when Baileys supplies it.
48
+ const participant = msg?.key?.participantPn || msg?.key?.participant || '';
49
+ if (!participant)
50
+ return { conversationId: '', senderId: '', kind: 'other', mentionedJids: [] };
51
+ return { conversationId: remoteJid, senderId: participant, kind: 'group', mentionedJids };
52
+ }
53
+ if (remoteJid.endsWith('@s.whatsapp.net') || remoteJid.endsWith('@lid')) {
54
+ // DM: sender and conversation are (normally) the same JID. Under
55
+ // WhatsApp's Linked ID (LID) privacy system, `remoteJid` itself can
56
+ // arrive as `<id>@lid` instead of the classic `<phone>@s.whatsapp.net`
57
+ // — reply on whichever JID we actually received the message on
58
+ // (`remoteJid`), but gate on the real phone-number JID (`senderPn`, when
59
+ // Baileys supplies it): allowlists are documented and configured in
60
+ // phone-number JID form and would never match a bare `@lid`.
61
+ const senderId = msg?.key?.senderPn || remoteJid;
62
+ return { conversationId: remoteJid, senderId, kind: 'user', mentionedJids: [] };
63
+ }
64
+ // Broadcast lists, status updates, newsletters, etc. — not a supported source.
65
+ return { conversationId: '', senderId: '', kind: 'other', mentionedJids: [] };
66
+ }
67
+ /**
68
+ * Gate an already-resolved WhatsApp source. DMs are gated on the sender's
69
+ * JID against `dmPolicy`/`dmAllowlist`; groups are gated on the group JID
70
+ * against `groupPolicy`/`groupAllowlist`, closed by default — same posture
71
+ * as DMs. Unknown source kinds are denied.
72
+ */
73
+ function isResolvedSourceAllowed(cfg, resolved) {
74
+ const { conversationId, senderId, kind } = resolved;
75
+ if (kind === 'user') {
76
+ return isWhatsAppSenderAllowed(cfg?.dmPolicy, cfg?.dmAllowlist, senderId || conversationId);
77
+ }
78
+ if (kind === 'group') {
79
+ return isWhatsAppSenderAllowed(cfg?.groupPolicy, cfg?.groupAllowlist, conversationId);
80
+ }
81
+ return false;
82
+ }
83
+ /**
84
+ * Convenience wrapper that resolves a raw message and gates it in one call.
85
+ * Equivalent to `isResolvedSourceAllowed(cfg, resolveWhatsAppSource(msg))`.
86
+ */
87
+ function isWhatsAppConversationAllowed(cfg, msg) {
88
+ return isResolvedSourceAllowed(cfg, resolveWhatsAppSource(msg));
89
+ }
90
+ /**
91
+ * @mention gate for groups (mirrors `slack`/`line`'s `requireMention`,
92
+ * default true — only effective in groups, DMs always pass). Unlike Slack
93
+ * (which infers "was mentioned" from the event *type* being `app_mention`)
94
+ * Baileys hands every message's mentioned-JID list directly on
95
+ * `contextInfo.mentionedJid` — no separate text-scanning heuristic needed,
96
+ * just check one of the bot's own JIDs is in that list.
97
+ *
98
+ * Under WhatsApp's Linked ID (LID) privacy system a group can report the
99
+ * mentioned bot using its `@lid` identity even though `sock.user.id` (the
100
+ * phone-number JID we log in with) is the classic `@s.whatsapp.net` form —
101
+ * two different strings for the same bot. Pass `botLid` (`sock.user.lid`)
102
+ * alongside `botJid` (`sock.user.id`) so either form matches; omit it if
103
+ * unknown (older Baileys / non-LID accounts) and only `botJid` is checked.
104
+ */
105
+ function wasBotMentioned(mentionedJids, botJid, botLid) {
106
+ if (!botJid && !botLid)
107
+ return false;
108
+ const botIdentities = [botJid, botLid].filter((v) => !!v).map(normalizeWhatsAppJid);
109
+ return mentionedJids.some((jid) => botIdentities.includes(normalizeWhatsAppJid(jid)));
110
+ }
111
+ /**
112
+ * Canonical form of a WhatsApp JID for equality checks.
113
+ *
114
+ * WhatsApp JIDs occasionally carry a ":<device>" suffix on the *user* part
115
+ * (multi-device, e.g. "66811112222:5@s.whatsapp.net") — strip only that
116
+ * segment, not everything after the first colon, or the "@server" half gets
117
+ * dropped too and a same-user-different-device JID never matches at all
118
+ * (splitting on ':' before splitting on '@' would do exactly that). The
119
+ * `@lid` vs `@s.whatsapp.net` distinction is preserved: those are genuinely
120
+ * different addresses, and callers that must accept either (wasBotMentioned)
121
+ * normalize both forms and compare against the set.
122
+ *
123
+ * Shared by the INBOUND mention gate (wasBotMentioned above) and the OUTBOUND
124
+ * `@digits` → `mentions:[jid]` matcher in WhatsAppManager, so both sides agree
125
+ * on what "the same participant" means.
126
+ */
127
+ function normalizeWhatsAppJid(jid) {
128
+ const [userPart, server] = jid.split('@');
129
+ return server ? `${userPart.split(':')[0]}@${server}` : userPart.split(':')[0];
130
+ }
131
+ /** The user half of a normalized JID — "66811112222" from "66811112222:5@s.whatsapp.net". */
132
+ function whatsAppJidUser(jid) {
133
+ return normalizeWhatsAppJid(jid).split('@')[0] ?? '';
134
+ }
135
+ //# sourceMappingURL=whatsapp-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-access.js","sourceRoot":"","sources":["../../src/api/whatsapp-access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * WhatsApp Business Cloud API DM access control — pure, stateless sender gate.
3
+ *
4
+ * Structural port of `whatsapp-access.ts` (the Baileys sibling), simplified:
5
+ * the Cloud API has no group concept (a Business phone number cannot be added
6
+ * to a group the way a personal/linked number can — every inbound message is
7
+ * a 1:1 conversation with the business), so there is no group tier here at
8
+ * all — `kind` is `'user' | 'other'`, not `'user' | 'group' | 'other'`.
9
+ *
10
+ * ⚠️ FOOTGUN: Cloud API's inbound `from` is a BARE PHONE-NUMBER STRING (e.g.
11
+ * `"66812345678"` — digits only, no `+`, no `@s.whatsapp.net` suffix), NOT a
12
+ * JID like Baileys hands `whatsapp-access.ts`. `dmAllowlist` entries here
13
+ * MUST be bare digits — pasting a JID (`"66812345678@s.whatsapp.net"`) or a
14
+ * `+`-prefixed E.164 string will silently never match. This is the exact
15
+ * same class of footgun Slack/LINE's own doc comments call out for their
16
+ * allowlists, just with a different wrong shape (JID/`+` instead of a name).
17
+ *
18
+ * Default (policy absent) is CLOSED: only ids in the allowlist pass. Set
19
+ * `dmPolicy: 'open'` to restore "reply to anyone" behavior.
20
+ */
21
+ export declare function isWhatsAppCloudSenderAllowed(policy: 'open' | 'allowlist' | 'disabled' | undefined, allowlist: string[] | undefined, id: string): boolean;
22
+ export type WhatsAppCloudSourceKind = 'user' | 'other';
23
+ export interface ResolvedWhatsAppCloudSource {
24
+ /** Conversation key — the reply target: the sender's bare phone-number string. */
25
+ conversationId: string;
26
+ /** The human who sent the message — always the same as conversationId (no groups). */
27
+ senderId: string;
28
+ kind: WhatsAppCloudSourceKind;
29
+ }
30
+ /**
31
+ * Map a raw inbound Cloud API `from` field to {conversationId, senderId, kind}.
32
+ * `from` is always a bare phone-number string on a real webhook payload —
33
+ * empty/missing is the only "other" case, since there is no group tier to
34
+ * misclassify into.
35
+ */
36
+ export declare function resolveWhatsAppCloudSource(from: string | undefined | null): ResolvedWhatsAppCloudSource;
37
+ /** The subset of `whatsapp_cloud` config the conversation gate reads. */
38
+ export interface WhatsAppCloudAccessConfig {
39
+ dmPolicy?: 'open' | 'allowlist' | 'disabled';
40
+ dmAllowlist?: string[];
41
+ }
42
+ /**
43
+ * Gate an already-resolved WhatsApp Cloud source. Every source is a DM
44
+ * (`kind === 'user'`), gated on the sender's bare phone number against
45
+ * `dmPolicy`/`dmAllowlist`. Unknown/empty source kinds are denied.
46
+ */
47
+ export declare function isResolvedWhatsAppCloudSourceAllowed(cfg: WhatsAppCloudAccessConfig | undefined, resolved: ResolvedWhatsAppCloudSource): boolean;
48
+ //# sourceMappingURL=whatsapp-cloud-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-cloud-access.d.ts","sourceRoot":"","sources":["../../src/api/whatsapp-cloud-access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,EACrD,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,EAAE,EAAE,MAAM,GACT,OAAO,CAKT;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,2BAA2B;IAC1C,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,uBAAuB,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,2BAA2B,CAIvG;AAED,yEAAyE;AACzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,yBAAyB,GAAG,SAAS,EAC1C,QAAQ,EAAE,2BAA2B,GACpC,OAAO,CAMT"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWhatsAppCloudSenderAllowed = isWhatsAppCloudSenderAllowed;
4
+ exports.resolveWhatsAppCloudSource = resolveWhatsAppCloudSource;
5
+ exports.isResolvedWhatsAppCloudSourceAllowed = isResolvedWhatsAppCloudSourceAllowed;
6
+ /**
7
+ * WhatsApp Business Cloud API DM access control — pure, stateless sender gate.
8
+ *
9
+ * Structural port of `whatsapp-access.ts` (the Baileys sibling), simplified:
10
+ * the Cloud API has no group concept (a Business phone number cannot be added
11
+ * to a group the way a personal/linked number can — every inbound message is
12
+ * a 1:1 conversation with the business), so there is no group tier here at
13
+ * all — `kind` is `'user' | 'other'`, not `'user' | 'group' | 'other'`.
14
+ *
15
+ * ⚠️ FOOTGUN: Cloud API's inbound `from` is a BARE PHONE-NUMBER STRING (e.g.
16
+ * `"66812345678"` — digits only, no `+`, no `@s.whatsapp.net` suffix), NOT a
17
+ * JID like Baileys hands `whatsapp-access.ts`. `dmAllowlist` entries here
18
+ * MUST be bare digits — pasting a JID (`"66812345678@s.whatsapp.net"`) or a
19
+ * `+`-prefixed E.164 string will silently never match. This is the exact
20
+ * same class of footgun Slack/LINE's own doc comments call out for their
21
+ * allowlists, just with a different wrong shape (JID/`+` instead of a name).
22
+ *
23
+ * Default (policy absent) is CLOSED: only ids in the allowlist pass. Set
24
+ * `dmPolicy: 'open'` to restore "reply to anyone" behavior.
25
+ */
26
+ function isWhatsAppCloudSenderAllowed(policy, allowlist, id) {
27
+ if (policy === 'open')
28
+ return true;
29
+ if (policy === 'disabled')
30
+ return false;
31
+ // 'allowlist' OR undefined (closed default) → only listed ids pass.
32
+ return !!id && (allowlist ?? []).includes(id);
33
+ }
34
+ /**
35
+ * Map a raw inbound Cloud API `from` field to {conversationId, senderId, kind}.
36
+ * `from` is always a bare phone-number string on a real webhook payload —
37
+ * empty/missing is the only "other" case, since there is no group tier to
38
+ * misclassify into.
39
+ */
40
+ function resolveWhatsAppCloudSource(from) {
41
+ const id = from ?? '';
42
+ if (!id)
43
+ return { conversationId: '', senderId: '', kind: 'other' };
44
+ return { conversationId: id, senderId: id, kind: 'user' };
45
+ }
46
+ /**
47
+ * Gate an already-resolved WhatsApp Cloud source. Every source is a DM
48
+ * (`kind === 'user'`), gated on the sender's bare phone number against
49
+ * `dmPolicy`/`dmAllowlist`. Unknown/empty source kinds are denied.
50
+ */
51
+ function isResolvedWhatsAppCloudSourceAllowed(cfg, resolved) {
52
+ const { conversationId, senderId, kind } = resolved;
53
+ if (kind === 'user') {
54
+ return isWhatsAppCloudSenderAllowed(cfg?.dmPolicy, cfg?.dmAllowlist, senderId || conversationId);
55
+ }
56
+ return false;
57
+ }
58
+ //# sourceMappingURL=whatsapp-cloud-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-cloud-access.js","sourceRoot":"","sources":["../../src/api/whatsapp-cloud-access.ts"],"names":[],"mappings":";;AAoBA,oEASC;AAkBD,gEAIC;AAaD,oFASC;AAzED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,4BAA4B,CAC1C,MAAqD,EACrD,SAA+B,EAC/B,EAAU;IAEV,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACxC,oEAAoE;IACpE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC;AAYD;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,IAA+B;IACxE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACpE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5D,CAAC;AAQD;;;;GAIG;AACH,SAAgB,oCAAoC,CAClD,GAA0C,EAC1C,QAAqC;IAErC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IACpD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,4BAA4B,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,IAAI,cAAc,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}