@adatechnology/meta-whatsapp-module 0.2.0-rc.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,186 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/testing/index.ts
5
+ import { buildInboundTextPayload, buildInboundInteractivePayload, buildInboundAudioPayload, buildInboundMediaPayload, serializeWebhookPayload as serializeWebhookPayload2, PREVIEW_PHONE_NUMBER_ID, PREVIEW_WABA_ID, PREVIEW_DISPLAY_PHONE_NUMBER, PREVIEW_AUDIO_MIME_TYPE } from "@adatechnology/meta-whatsapp-contracts/testing";
6
+
7
+ // src/testing/mediaSamples.ts
8
+ var SAMPLE_PDF_BASE64 = "JVBERi0xLjQKMSAwIG9iajw8L1R5cGUvQ2F0YWxvZy9QYWdlcyAyIDAgUj4+ZW5kb2JqCjIgMCBvYmo8PC9UeXBlL1BhZ2VzL0tpZHNbMyAwIFJdL0NvdW50IDE+PmVuZG9iagozIDAgb2JqPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9NZWRpYUJveFswIDAgMjYwIDExMF0vQ29udGVudHMgNCAwIFIvUmVzb3VyY2VzPDwvRm9udDw8L0YxIDUgMCBSPj4+Pj4+ZW5kb2JqCjQgMCBvYmo8PC9MZW5ndGggNjI+PnN0cmVhbQpCVCAvRjEgMTMgVGYgMTggNTUgVGQgKERvY3VtZW50byBkZSBleGVtcGxvIGRvIHByZXZpZXcpIFRqIEVUCmVuZHN0cmVhbWVuZG9iago1IDAgb2JqPDwvVHlwZS9Gb250L1N1YnR5cGUvVHlwZTEvQmFzZUZvbnQvSGVsdmV0aWNhPj5lbmRvYmoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTIgMDAwMDAgbiAKMDAwMDAwMDEwMSAwMDAwMCBuIAowMDAwMDAwMjExIDAwMDAwIG4gCjAwMDAwMDAzMTcgMDAwMDAgbiAKdHJhaWxlcjw8L1NpemUgNi9Sb290IDEgMCBSPj4Kc3RhcnR4cmVmCjM3OAolJUVPRgo=";
9
+ var SAMPLE_DOCX_BASE64 = "UEsDBBQAAAAIANFO/Fx5bjPX6AAAAK0BAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbH1QyU7DMBD9FWuuKHHggBCK0wPLETiUDxjZk8SqN3nc0v49Tlt6QIXjzFv1+tXeO7GjzDYGBbdtB4KCjsaGScHn+rV5AMEFg0EXAyk4EMNq6NeHRCyqNrCCuZT0KCXrmTxyGxOFiowxeyz1zJNMqDc4kbzrunupYygUSlMWDxj6Zxpx64p42df3qUcmxyCeTsQlSwGm5KzGUnG5C+ZXSnNOaKvyyOHZJr6pBJBXExbk74Cz7r0Ok60h8YG5vKGvLPkVs5Em6q2vyvZ/mys94zhaTRf94pZy1MRcF/euvSAebfjpL49zD99QSwMEFAAAAAgA0U78XJv9N+qtAAAAKQEAAAsAAABfcmVscy8ucmVsc43POw7CMAwG4KtE3mlaBoRQ0y4IqSsqB7ASN61oHkrCo7cnAwNFDIy2f3+W6/ZpZnanECdnBVRFCYysdGqyWsClP232wGJCq3B2lgQsFKFt6jPNmPJKHCcfWTZsFDCm5A+cRzmSwVg4TzZPBhcMplwGzT3KK2ri27Lc8fBpwNpknRIQOlUB6xdP/9huGCZJRydvhmz6ceIrkWUMmpKAhwuKq3e7yCzwpuarF5sXUEsDBBQAAAAIANFO/FyraIuoqgAAAOcAAAARAAAAd29yZC9kb2N1bWVudC54bWxFjksOwjAMBa8SZU9TWCBUNWWBxAngAKExbaTGjpzQz+1JyoLNPFt+Grm9rn4SM3B0hFoeq1oKwJ6sw0HL5+N+uEgRk0FrJkLQcoMor127NJb6jwdMIgswNouWY0qhUSr2I3gTKwqA+fYm9ibllQe1ENvA1EOM2e8ndarrs/LGoSzKF9mtZCjggtTdCBObRMKCgBV8mPJIIjDMDpZWlU4h7ww7fx71/7H7AlBLAQIUAxQAAAAIANFO/Fx5bjPX6AAAAK0BAAATAAAAAAAAAAAAAACAAQAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAhQDFAAAAAgA0U78XJv9N+qtAAAAKQEAAAsAAAAAAAAAAAAAAIABGQEAAF9yZWxzLy5yZWxzUEsBAhQDFAAAAAgA0U78XKtoi6iqAAAA5wAAABEAAAAAAAAAAAAAAIAB7wEAAHdvcmQvZG9jdW1lbnQueG1sUEsFBgAAAAADAAMAuQAAAMgCAAAAAA==";
10
+ var SAMPLE_XLSX_BASE64 = "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";
11
+ var SAMPLE_TXT_BASE64 = "TGlzdGEgZGUgY29tcHJhcwotIGFycm96IDJrZwotIG9sZW8gMXVuCg==";
12
+ var SAMPLE_CSV_BASE64 = "cHJvZHV0byxxdWFudGlkYWRlLHByZWNvCmFycm96LDIsMjQuOTAKb2xlbywxLDcuNTAK";
13
+ var SAMPLE_ZIP_BASE64 = "UEsDBBQAAAAIANFO/FwtmGOxGwAAABkAAAARAAAAY29tcHJvdmFudGUtMS50eHRLzs8tKMovS8wrSVVISVUoSExPzE3NK8nnAgBQSwMEFAAAAAgA0U78XCftV8YWAAAAFAAAABEAAABjb21wcm92YW50ZS0yLnR4dCtOTS/NS8lXSM7PLSjKL0vMK0nlAgBQSwECFAMUAAAACADRTvxcLZhjsRsAAAAZAAAAEQAAAAAAAAAAAAAAgAEAAAAAY29tcHJvdmFudGUtMS50eHRQSwECFAMUAAAACADRTvxcJ+1XxhYAAAAUAAAAEQAAAAAAAAAAAAAAgAFKAAAAY29tcHJvdmFudGUtMi50eHRQSwUGAAAAAAIAAgB+AAAAjwAAAAAA";
14
+ var SAMPLE_PNG_BASE64 = "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAACXBIWXMAAAABAAAAAQBPJcTWAAAATElEQVR4nO3OMRHAIAAAMbhDWo2hCYPdu/xIh0RB5rPP+JN1O/AlVISKUBEqQkWoCBWhIlSEilARKkJFqAgVoSJUhIpQESpCRagIlRcgDwI25HmPQAAAAABJRU5ErkJggg==";
15
+ var SAMPLE_JPEG_BASE64 = "/9j/4AAQSkZJRgABAgAAAQABAAD//gAQTGF2YzYyLjExLjEwMAD/2wBDAAgEBAQEBAUFBQUFBQYGBgYGBgYGBgYGBgYHBwcICAgHBwcGBgcHCAgICAkJCQgICAgJCQoKCgwMCwsODg4RERT/xABMAAEBAAAAAAAAAAAAAAAAAAAABAEBAQAAAAAAAAAAAAAAAAAAAAYQAQAAAAAAAAAAAAAAAAAAAAARAQAAAAAAAAAAAAAAAAAAAAD/wAARCAAwADADASIAAhEAAxEA/9oADAMBAAIRAxEAPwCUBRpwAAAAAAAAAAAAAAAB/9k=";
16
+ var SAMPLE_WEBP_BASE64 = "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==";
17
+ var SAMPLE_MP4_BASE64 = "AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAANdbW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAAASwAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAoh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAASwAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAEAAAABAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAEsAAAIAAABAAAAAAIAbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAAoAAAAEABVxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAABq21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAWtzdGJsAAAAv3N0c2QAAAAAAAAAAQAAAK9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAEAAQABIAAAASAAAAAAAAAABFUxhdmM2Mi4xMS4xMDAgbGlieDI2NAAAAAAAAAAAAAAAGP//AAAANWF2Y0MBZAAK/+EAGGdkAAqs2UQmwEQAAAMABAAAAwBQPEiWWAEABmjr48siwP34+AAAAAAQcGFzcAAAAAEAAAABAAAAFGJ0cnQAAAAAAABO2gAAAAAAAAAYc3R0cwAAAAAAAAABAAAAAwAABAAAAAAUc3RzcwAAAAAAAAABAAAAAQAAAChjdHRzAAAAAAAAAAMAAAABAAAIAAAAAAEAAAwAAAAAAQAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAMAAAABAAAAIHN0c3oAAAAAAAAAAAAAAAMAAALbAAAADgAAAAwAAAAUc3RjbwAAAAAAAAABAAADjQAAAGF1ZHRhAAAAWW1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALGlsc3QAAAAkqXRvbwAAABxkYXRhAAAAAQAAAABMYXZmNjIuMy4xMDAAAAAIZnJlZQAAAv1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2NSByMzIyMiBiMzU2MDVhIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTIgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAJWWIhAA///7mdfgUoKykhh+DdK6xVynnAWznTQ4fVSgMZ1FwY28AAAAKQZoibEN//qePiAAAAAgBnkF5Df8HfQ==";
18
+ var SAMPLE_OGG_BASE64 = "T2dnUwACAAAAAAAAAABXDTmmAAAAAKMnDKEBE09wdXNIZWFkAQE4AYC7AAAAAABPZ2dTAAAAAAAAAAAAAFcNOaYBAAAAZlPuKwE9T3B1c1RhZ3MMAAAATGF2ZjYyLjMuMTAwAQAAAB0AAABlbmNvZGVyPUxhdmM2Mi4xMS4xMDAgbGlib3B1c09nZ1MABLgmAAAAAAAAVw05pgIAAAA3uL6lCw8REhISEhISEhISeAvkwTbsxY2MSUaZpCaweAfJcifhROpV8fDA1d3pUmB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOA=";
19
+ var SAMPLE_M4A_BASE64 = "AAAAHGZ0eXBNNEEgAAACAE00QSBpc29taXNvMgAAAAhmcmVlAAAAQW1kYXTeAgBMYXZjNjIuMTEuMTAwAAIwQA4BGCAHARggBwEYIAcBGCAHARggBwEYIAcBGCAHARggBwEYIAcAAAMibW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAAAMgAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAk10cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAAMgAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAADIAAAEAAABAAAAAAHFbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAACsRAAAJnRVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAABcG1pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAABNHN0YmwAAABqc3RzZAAAAAAAAAABAAAAWm1wNGEAAAAAAAAAAQAAAAAAAAAAAAEAEAAAAACsRAAAAAAANmVzZHMAAAAAA4CAgCUAAQAEgICAF0AVAAAAAAB9AAAAB/oFgICABRIIVuUABoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAAAkAAAQAAAAAAQAAAnQAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAoAAAABAAAAPHN0c3oAAAAAAAAAAAAAAAoAAAAVAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAFHN0Y28AAAAAAAAAAQAAACwAAAAac2dwZAEAAAByb2xsAAAAAgAAAAH//wAAABxzYmdwAAAAAHJvbGwAAAABAAAACgAAAAEAAABhdWR0YQAAAFltZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAACxpbHN0AAAAJKl0b28AAAAcZGF0YQAAAAEAAAAATGF2ZjYyLjMuMTAw";
20
+ var SAMPLE_AAC_BASE64 = "//FQQAOf/N4CAExhdmM2Mi4xMS4xMDAAAjBADv/xUEABf/wBGCAH//FQQAF//AEYIAf/8VBAAX/8ARggB//xUEABf/wBGCAH//FQQAF//AEYIAf/8VBAAX/8ARggB//xUEABf/wBGCAH//FQQAF//AEYIAf/8VBAAX/8ARggBw==";
21
+ var SAMPLE_MP3_BASE64 = "SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/40jAAAAAAAAAAAAASW5mbwAAAA8AAAAFAAAGwABVVVVVVVVVVVVVVVVVVVVVVVVVgICAgICAgICAgICAgICAgICAgICqqqqqqqqqqqqqqqqqqqqqqqqqqtXV1dXV1dXV1dXV1dXV1dXV1dXV//////////////////////////8AAAAATGF2YzYyLjExAAAAAAAAAAAAAAAAJALAAAAAAAAABsDR4nNFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=";
22
+ var SAMPLE_BYTES = {
23
+ pdf: SAMPLE_PDF_BASE64,
24
+ docx: SAMPLE_DOCX_BASE64,
25
+ xlsx: SAMPLE_XLSX_BASE64,
26
+ txt: SAMPLE_TXT_BASE64,
27
+ csv: SAMPLE_CSV_BASE64,
28
+ zip: SAMPLE_ZIP_BASE64,
29
+ png: SAMPLE_PNG_BASE64,
30
+ jpeg: SAMPLE_JPEG_BASE64,
31
+ webp: SAMPLE_WEBP_BASE64,
32
+ mp4: SAMPLE_MP4_BASE64,
33
+ ogg: SAMPLE_OGG_BASE64,
34
+ m4a: SAMPLE_M4A_BASE64,
35
+ aac: SAMPLE_AAC_BASE64,
36
+ mp3: SAMPLE_MP3_BASE64
37
+ };
38
+ var MEDIA_SAMPLES = [
39
+ {
40
+ name: "pdf",
41
+ mimeType: "application/pdf",
42
+ extension: "pdf",
43
+ mediaType: "document",
44
+ sizeBytes: 557
45
+ },
46
+ {
47
+ name: "docx",
48
+ mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
49
+ extension: "docx",
50
+ mediaType: "document",
51
+ sizeBytes: 919
52
+ },
53
+ {
54
+ name: "xlsx",
55
+ mimeType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
56
+ extension: "xlsx",
57
+ mediaType: "document",
58
+ sizeBytes: 1567
59
+ },
60
+ {
61
+ name: "txt",
62
+ mimeType: "text/plain",
63
+ extension: "txt",
64
+ mediaType: "document",
65
+ sizeBytes: 40
66
+ },
67
+ {
68
+ name: "csv",
69
+ mimeType: "text/csv",
70
+ extension: "csv",
71
+ mediaType: "document",
72
+ sizeBytes: 51
73
+ },
74
+ {
75
+ name: "zip",
76
+ mimeType: "application/zip",
77
+ extension: "zip",
78
+ mediaType: "document",
79
+ sizeBytes: 291
80
+ },
81
+ {
82
+ name: "png",
83
+ mimeType: "image/png",
84
+ extension: "png",
85
+ mediaType: "image",
86
+ sizeBytes: 154
87
+ },
88
+ {
89
+ name: "jpeg",
90
+ mimeType: "image/jpeg",
91
+ extension: "jpg",
92
+ mediaType: "image",
93
+ sizeBytes: 236
94
+ },
95
+ {
96
+ name: "webp",
97
+ mimeType: "image/webp",
98
+ extension: "webp",
99
+ mediaType: "sticker",
100
+ sizeBytes: 34
101
+ },
102
+ {
103
+ name: "mp4",
104
+ mimeType: "video/mp4",
105
+ extension: "mp4",
106
+ mediaType: "video",
107
+ sizeBytes: 1666
108
+ },
109
+ {
110
+ name: "ogg",
111
+ mimeType: "audio/ogg; codecs=opus",
112
+ extension: "ogg",
113
+ mediaType: "audio",
114
+ sizeBytes: 368
115
+ },
116
+ {
117
+ name: "m4a",
118
+ mimeType: "audio/mp4",
119
+ extension: "m4a",
120
+ mediaType: "audio",
121
+ sizeBytes: 903
122
+ },
123
+ {
124
+ name: "aac",
125
+ mimeType: "audio/aac",
126
+ extension: "aac",
127
+ mediaType: "audio",
128
+ sizeBytes: 127
129
+ },
130
+ {
131
+ name: "mp3",
132
+ mimeType: "audio/mpeg",
133
+ extension: "mp3",
134
+ mediaType: "audio",
135
+ sizeBytes: 1772
136
+ }
137
+ ];
138
+ function readMediaSample(name) {
139
+ return Buffer.from(SAMPLE_BYTES[name], "base64");
140
+ }
141
+ __name(readMediaSample, "readMediaSample");
142
+ function findMediaSample(name) {
143
+ const sample = MEDIA_SAMPLES.find((candidate) => candidate.name === name);
144
+ if (!sample) throw new Error(`Amostra de m\xEDdia desconhecida: ${name}`);
145
+ return sample;
146
+ }
147
+ __name(findMediaSample, "findMediaSample");
148
+
149
+ // src/testing/inboundPayloads.ts
150
+ import { createHmac } from "crypto";
151
+ import { serializeWebhookPayload } from "@adatechnology/meta-whatsapp-contracts/testing";
152
+ function signWebhookPayload(params) {
153
+ return `sha256=${createHmac("sha256", params.appSecret).update(params.rawBody).digest("hex")}`;
154
+ }
155
+ __name(signWebhookPayload, "signWebhookPayload");
156
+ function toSignedWebhookRequest(params) {
157
+ const rawBody = serializeWebhookPayload(params.payload);
158
+ return {
159
+ rawBody,
160
+ headers: {
161
+ "content-type": "application/json",
162
+ "x-hub-signature-256": signWebhookPayload({
163
+ rawBody,
164
+ appSecret: params.appSecret
165
+ })
166
+ }
167
+ };
168
+ }
169
+ __name(toSignedWebhookRequest, "toSignedWebhookRequest");
170
+ export {
171
+ MEDIA_SAMPLES,
172
+ PREVIEW_AUDIO_MIME_TYPE,
173
+ PREVIEW_DISPLAY_PHONE_NUMBER,
174
+ PREVIEW_PHONE_NUMBER_ID,
175
+ PREVIEW_WABA_ID,
176
+ buildInboundAudioPayload,
177
+ buildInboundInteractivePayload,
178
+ buildInboundMediaPayload,
179
+ buildInboundTextPayload,
180
+ findMediaSample,
181
+ readMediaSample,
182
+ serializeWebhookPayload2 as serializeWebhookPayload,
183
+ signWebhookPayload,
184
+ toSignedWebhookRequest
185
+ };
186
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/testing/index.ts","../../src/testing/mediaSamples.ts","../../src/testing/inboundPayloads.ts"],"sourcesContent":["/**\n * Export separado (`@adatechnology/meta-whatsapp-module/testing`) para que utilitário de\n * desenvolvimento não entre no grafo de import de quem só consome o módulo em produção.\n *\n * Os builders são reexportados dos contratos por conveniência de quem já depende do módulo\n * (scripts de CLI, `make test-msg`): quem monta payload no navegador deve importar direto de\n * `@adatechnology/meta-whatsapp-contracts/testing`, que não toca em `node:crypto`.\n */\n\nexport {\n buildInboundTextPayload,\n buildInboundInteractivePayload,\n buildInboundAudioPayload,\n buildInboundMediaPayload,\n serializeWebhookPayload,\n PREVIEW_PHONE_NUMBER_ID,\n PREVIEW_WABA_ID,\n PREVIEW_DISPLAY_PHONE_NUMBER,\n PREVIEW_AUDIO_MIME_TYPE,\n} from '@adatechnology/meta-whatsapp-contracts/testing'\n\nexport type {\n BuildInboundTextPayloadParams,\n BuildInboundInteractivePayloadParams,\n BuildInboundAudioPayloadParams,\n BuildInboundMediaPayloadParams,\n InboundMediaType,\n InteractiveReplyOption,\n} from '@adatechnology/meta-whatsapp-contracts/testing'\n\nexport { MEDIA_SAMPLES, findMediaSample, readMediaSample } from './mediaSamples'\nexport type { MediaSample, MediaSampleName } from './mediaSamples'\n\nexport { signWebhookPayload, toSignedWebhookRequest } from './inboundPayloads'\nexport type { SignWebhookPayloadParams, SignedWebhookRequest, ToSignedWebhookRequestParams } from './inboundPayloads'\n","/**\n * Amostras binárias mínimas, uma por tipo de mídia que a Meta aceita.\n *\n * Existem porque payload de mídia sem bytes não exercita nada de verdade: quem semeia uma\n * biblioteca de documentos ou testa ingestão precisa de arquivo que o leitor do sistema\n * operacional consiga ABRIR. Um `.txt` rotulado `application/pdf` passa por toda a pilha e só\n * falha na frente do usuário, que é o único lugar onde não dá para corrigir.\n *\n * Por isso cada amostra é um arquivo legítimo do seu formato — mínimo, porém válido: o PDF abre\n * com uma página em branco, o XLSX abre com uma planilha vazia, o OGG toca silêncio.\n *\n * Vêm embutidas em base64, e não como arquivos no pacote, porque asset solto obrigaria o consumidor\n * a resolver caminho dentro de `node_modules` — que muda com bundler, com ESM/CJS e com pnpm. São\n * ~9 KB no total; o custo de embutir é menor que o de resolver caminho.\n */\n\nimport type { InboundMediaType } from '@adatechnology/meta-whatsapp-contracts/testing'\n\n/** Chave da amostra: o formato, não a extensão do arquivo. */\nexport type MediaSampleName =\n | 'pdf'\n | 'docx'\n | 'xlsx'\n | 'txt'\n | 'csv'\n | 'zip'\n | 'png'\n | 'jpeg'\n | 'webp'\n | 'mp4'\n | 'ogg'\n | 'm4a'\n | 'aac'\n | 'mp3'\n\nexport type MediaSample = {\n readonly name: MediaSampleName\n readonly mimeType: string\n /** Extensão sugerida para compor um nome de arquivo — sem o ponto. */\n readonly extension: string\n /**\n * Espécie com que a Meta entregaria essa mídia por padrão. É só o default: a mesma foto chega\n * como `image` quando enviada pela câmera e como `document` quando anexada pelo seletor de\n * arquivos, e o consumidor pode escolher a outra.\n */\n readonly mediaType: InboundMediaType\n readonly sizeBytes: number\n}\n\nconst SAMPLE_PDF_BASE64 =\n 'JVBERi0xLjQKMSAwIG9iajw8L1R5cGUvQ2F0YWxvZy9QYWdlcyAyIDAgUj4+ZW5kb2JqCjIgMCBvYmo8PC9UeXBlL1BhZ2Vz' +\n 'L0tpZHNbMyAwIFJdL0NvdW50IDE+PmVuZG9iagozIDAgb2JqPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9NZWRpYUJveFsw' +\n 'IDAgMjYwIDExMF0vQ29udGVudHMgNCAwIFIvUmVzb3VyY2VzPDwvRm9udDw8L0YxIDUgMCBSPj4+Pj4+ZW5kb2JqCjQgMCBv' +\n 'Ymo8PC9MZW5ndGggNjI+PnN0cmVhbQpCVCAvRjEgMTMgVGYgMTggNTUgVGQgKERvY3VtZW50byBkZSBleGVtcGxvIGRvIHBy' +\n 'ZXZpZXcpIFRqIEVUCmVuZHN0cmVhbWVuZG9iago1IDAgb2JqPDwvVHlwZS9Gb250L1N1YnR5cGUvVHlwZTEvQmFzZUZvbnQv' +\n 'SGVsdmV0aWNhPj5lbmRvYmoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAw' +\n 'MDAwNTIgMDAwMDAgbiAKMDAwMDAwMDEwMSAwMDAwMCBuIAowMDAwMDAwMjExIDAwMDAwIG4gCjAwMDAwMDAzMTcgMDAwMDAg' +\n 'biAKdHJhaWxlcjw8L1NpemUgNi9Sb290IDEgMCBSPj4Kc3RhcnR4cmVmCjM3OAolJUVPRgo='\n\nconst SAMPLE_DOCX_BASE64 =\n 'UEsDBBQAAAAIANFO/Fx5bjPX6AAAAK0BAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbH1QyU7DMBD9FWuuKHHggBCK0wPLETiU' +\n 'DxjZk8SqN3nc0v49Tlt6QIXjzFv1+tXeO7GjzDYGBbdtB4KCjsaGScHn+rV5AMEFg0EXAyk4EMNq6NeHRCyqNrCCuZT0KCXr' +\n 'mTxyGxOFiowxeyz1zJNMqDc4kbzrunupYygUSlMWDxj6Zxpx64p42df3qUcmxyCeTsQlSwGm5KzGUnG5C+ZXSnNOaKvyyOHZ' +\n 'Jr6pBJBXExbk74Cz7r0Ok60h8YG5vKGvLPkVs5Em6q2vyvZ/mys94zhaTRf94pZy1MRcF/euvSAebfjpL49zD99QSwMEFAAA' +\n 'AAgA0U78XJv9N+qtAAAAKQEAAAsAAABfcmVscy8ucmVsc43POw7CMAwG4KtE3mlaBoRQ0y4IqSsqB7ASN61oHkrCo7cnAwNF' +\n 'DIy2f3+W6/ZpZnanECdnBVRFCYysdGqyWsClP232wGJCq3B2lgQsFKFt6jPNmPJKHCcfWTZsFDCm5A+cRzmSwVg4TzZPBhcM' +\n 'plwGzT3KK2ri27Lc8fBpwNpknRIQOlUB6xdP/9huGCZJRydvhmz6ceIrkWUMmpKAhwuKq3e7yCzwpuarF5sXUEsDBBQAAAAI' +\n 'ANFO/FyraIuoqgAAAOcAAAARAAAAd29yZC9kb2N1bWVudC54bWxFjksOwjAMBa8SZU9TWCBUNWWBxAngAKExbaTGjpzQz+1J' +\n 'yoLNPFt+Grm9rn4SM3B0hFoeq1oKwJ6sw0HL5+N+uEgRk0FrJkLQcoMor127NJb6jwdMIgswNouWY0qhUSr2I3gTKwqA+fYm' +\n '9ibllQe1ENvA1EOM2e8ndarrs/LGoSzKF9mtZCjggtTdCBObRMKCgBV8mPJIIjDMDpZWlU4h7ww7fx71/7H7AlBLAQIUAxQA' +\n 'AAAIANFO/Fx5bjPX6AAAAK0BAAATAAAAAAAAAAAAAACAAQAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAhQDFAAAAAgA0U78' +\n 'XJv9N+qtAAAAKQEAAAsAAAAAAAAAAAAAAIABGQEAAF9yZWxzLy5yZWxzUEsBAhQDFAAAAAgA0U78XKtoi6iqAAAA5wAAABEA' +\n 'AAAAAAAAAAAAAIAB7wEAAHdvcmQvZG9jdW1lbnQueG1sUEsFBgAAAAADAAMAuQAAAMgCAAAAAA=='\n\nconst SAMPLE_XLSX_BASE64 =\n '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'\n\nconst SAMPLE_TXT_BASE64 = 'TGlzdGEgZGUgY29tcHJhcwotIGFycm96IDJrZwotIG9sZW8gMXVuCg=='\n\nconst SAMPLE_CSV_BASE64 = 'cHJvZHV0byxxdWFudGlkYWRlLHByZWNvCmFycm96LDIsMjQuOTAKb2xlbywxLDcuNTAK'\n\nconst SAMPLE_ZIP_BASE64 =\n 'UEsDBBQAAAAIANFO/FwtmGOxGwAAABkAAAARAAAAY29tcHJvdmFudGUtMS50eHRLzs8tKMovS8wrSVVISVUoSExPzE3NK8nn' +\n 'AgBQSwMEFAAAAAgA0U78XCftV8YWAAAAFAAAABEAAABjb21wcm92YW50ZS0yLnR4dCtOTS/NS8lXSM7PLSjKL0vMK0nlAgBQ' +\n 'SwECFAMUAAAACADRTvxcLZhjsRsAAAAZAAAAEQAAAAAAAAAAAAAAgAEAAAAAY29tcHJvdmFudGUtMS50eHRQSwECFAMUAAAA' +\n 'CADRTvxcJ+1XxhYAAAAUAAAAEQAAAAAAAAAAAAAAgAFKAAAAY29tcHJvdmFudGUtMi50eHRQSwUGAAAAAAIAAgB+AAAAjwAA' +\n 'AAAA'\n\nconst SAMPLE_PNG_BASE64 =\n 'iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAACXBIWXMAAAABAAAAAQBPJcTWAAAATElEQVR4nO3OMRHAIAAA' +\n 'MbhDWo2hCYPdu/xIh0RB5rPP+JN1O/AlVISKUBEqQkWoCBWhIlSEilARKkJFqAgVoSJUhIpQESpCRagIlRcgDwI25HmPQAAA' +\n 'AABJRU5ErkJggg=='\n\nconst SAMPLE_JPEG_BASE64 =\n '/9j/4AAQSkZJRgABAgAAAQABAAD//gAQTGF2YzYyLjExLjEwMAD/2wBDAAgEBAQEBAUFBQUFBQYGBgYGBgYGBgYGBgYHBwcI' +\n 'CAgHBwcGBgcHCAgICAkJCQgICAgJCQoKCgwMCwsODg4RERT/xABMAAEBAAAAAAAAAAAAAAAAAAAABAEBAQAAAAAAAAAAAAAA' +\n 'AAAAAAYQAQAAAAAAAAAAAAAAAAAAAAARAQAAAAAAAAAAAAAAAAAAAAD/wAARCAAwADADASIAAhEAAxEA/9oADAMBAAIRAxEA' +\n 'PwCUBRpwAAAAAAAAAAAAAAAB/9k='\n\nconst SAMPLE_WEBP_BASE64 = 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA=='\n\nconst SAMPLE_MP4_BASE64 =\n 'AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAANdbW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAAASwAAQAA' +\n 'AQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAgAAAoh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAASwAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA' +\n 'AAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAEAAAABAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAEsAAAIAAABAAAAAAIA' +\n 'bWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAAoAAAAEABVxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRl' +\n 'b0hhbmRsZXIAAAABq21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAA' +\n 'AQAAAWtzdGJsAAAAv3N0c2QAAAAAAAAAAQAAAK9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAEAAQABIAAAASAAAAAAA' +\n 'AAABFUxhdmM2Mi4xMS4xMDAgbGlieDI2NAAAAAAAAAAAAAAAGP//AAAANWF2Y0MBZAAK/+EAGGdkAAqs2UQmwEQAAAMABAAA' +\n 'AwBQPEiWWAEABmjr48siwP34+AAAAAAQcGFzcAAAAAEAAAABAAAAFGJ0cnQAAAAAAABO2gAAAAAAAAAYc3R0cwAAAAAAAAAB' +\n 'AAAAAwAABAAAAAAUc3RzcwAAAAAAAAABAAAAAQAAAChjdHRzAAAAAAAAAAMAAAABAAAIAAAAAAEAAAwAAAAAAQAABAAAAAAc' +\n 'c3RzYwAAAAAAAAABAAAAAQAAAAMAAAABAAAAIHN0c3oAAAAAAAAAAAAAAAMAAALbAAAADgAAAAwAAAAUc3RjbwAAAAAAAAAB' +\n 'AAADjQAAAGF1ZHRhAAAAWW1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALGlsc3QAAAAkqXRv' +\n 'bwAAABxkYXRhAAAAAQAAAABMYXZmNjIuMy4xMDAAAAAIZnJlZQAAAv1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gy' +\n 'NjQgLSBjb3JlIDE2NSByMzIyMiBiMzU2MDVhIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAy' +\n 'NSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0x' +\n 'OjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0x' +\n 'IG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bz' +\n 'a2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTIgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0w' +\n 'IG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1l' +\n 'cz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRw' +\n 'PTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAg' +\n 'cmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0x' +\n 'LjQwIGFxPTE6MS4wMACAAAAAJWWIhAA///7mdfgUoKykhh+DdK6xVynnAWznTQ4fVSgMZ1FwY28AAAAKQZoibEN//qePiAAA' +\n 'AAgBnkF5Df8HfQ=='\n\nconst SAMPLE_OGG_BASE64 =\n 'T2dnUwACAAAAAAAAAABXDTmmAAAAAKMnDKEBE09wdXNIZWFkAQE4AYC7AAAAAABPZ2dTAAAAAAAAAAAAAFcNOaYBAAAAZlPu' +\n 'KwE9T3B1c1RhZ3MMAAAATGF2ZjYyLjMuMTAwAQAAAB0AAABlbmNvZGVyPUxhdmM2Mi4xMS4xMDAgbGlib3B1c09nZ1MABLgm' +\n 'AAAAAAAAVw05pgIAAAA3uL6lCw8REhISEhISEhISeAvkwTbsxY2MSUaZpCaweAfJcifhROpV8fDA1d3pUmB4B8l5yMlXwKIS' +\n 'I/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKIS' +\n 'I/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKISI/rvZ/NkwOB4B8l5yMlXwKIS' +\n 'I/rvZ/NkwOA='\n\nconst SAMPLE_M4A_BASE64 =\n 'AAAAHGZ0eXBNNEEgAAACAE00QSBpc29taXNvMgAAAAhmcmVlAAAAQW1kYXTeAgBMYXZjNjIuMTEuMTAwAAIwQA4BGCAHARgg' +\n 'BwEYIAcBGCAHARggBwEYIAcBGCAHARggBwEYIAcAAAMibW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAAAMgAAQAAAQAA' +\n 'AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AgAAAk10cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAAMgAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAA' +\n 'AAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAADIAAAEAAABAAAAAAHFbWRp' +\n 'YQAAACBtZGhkAAAAAAAAAAAAAAAAAACsRAAAJnRVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhh' +\n 'bmRsZXIAAAABcG1pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAABNHN0' +\n 'YmwAAABqc3RzZAAAAAAAAAABAAAAWm1wNGEAAAAAAAAAAQAAAAAAAAAAAAEAEAAAAACsRAAAAAAANmVzZHMAAAAAA4CAgCUA' +\n 'AQAEgICAF0AVAAAAAAB9AAAAB/oFgICABRIIVuUABoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAAAkAAAQAAAAAAQAAAnQAAAAc' +\n 'c3RzYwAAAAAAAAABAAAAAQAAAAoAAAABAAAAPHN0c3oAAAAAAAAAAAAAAAoAAAAVAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE' +\n 'AAAABAAAAAQAAAAEAAAAFHN0Y28AAAAAAAAAAQAAACwAAAAac2dwZAEAAAByb2xsAAAAAgAAAAH//wAAABxzYmdwAAAAAHJv' +\n 'bGwAAAABAAAACgAAAAEAAABhdWR0YQAAAFltZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAACxp' +\n 'bHN0AAAAJKl0b28AAAAcZGF0YQAAAAEAAAAATGF2ZjYyLjMuMTAw'\n\nconst SAMPLE_AAC_BASE64 =\n '//FQQAOf/N4CAExhdmM2Mi4xMS4xMDAAAjBADv/xUEABf/wBGCAH//FQQAF//AEYIAf/8VBAAX/8ARggB//xUEABf/wBGCAH' +\n '//FQQAF//AEYIAf/8VBAAX/8ARggB//xUEABf/wBGCAH//FQQAF//AEYIAf/8VBAAX/8ARggBw=='\n\nconst SAMPLE_MP3_BASE64 =\n 'SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/40jAAAAAAAAAAAAASW5mbwAAAA8AAAAFAAAG' +\n 'wABVVVVVVVVVVVVVVVVVVVVVVVVVgICAgICAgICAgICAgICAgICAgICqqqqqqqqqqqqqqqqqqqqqqqqqqtXV1dXV1dXV1dXV' +\n '1dXV1dXV1dXV//////////////////////////8AAAAATGF2YzYyLjExAAAAAAAAAAAAAAAAJALAAAAAAAAABsDR4nNFAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVV' +\n 'VVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVV' +\n 'VVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVV' +\n 'VVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVV' +\n 'VVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/40jEAAAAA0gAAAAATEFNRTMuMTAwVVVVVVVV' +\n 'VVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' +\n 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU='\n\nconst SAMPLE_BYTES: Readonly<Record<MediaSampleName, string>> = {\n pdf: SAMPLE_PDF_BASE64,\n docx: SAMPLE_DOCX_BASE64,\n xlsx: SAMPLE_XLSX_BASE64,\n txt: SAMPLE_TXT_BASE64,\n csv: SAMPLE_CSV_BASE64,\n zip: SAMPLE_ZIP_BASE64,\n png: SAMPLE_PNG_BASE64,\n jpeg: SAMPLE_JPEG_BASE64,\n webp: SAMPLE_WEBP_BASE64,\n mp4: SAMPLE_MP4_BASE64,\n ogg: SAMPLE_OGG_BASE64,\n m4a: SAMPLE_M4A_BASE64,\n aac: SAMPLE_AAC_BASE64,\n mp3: SAMPLE_MP3_BASE64,\n}\n\nexport const MEDIA_SAMPLES: readonly MediaSample[] = [\n { name: 'pdf', mimeType: 'application/pdf', extension: 'pdf', mediaType: 'document', sizeBytes: 557 },\n {\n name: 'docx',\n mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n extension: 'docx',\n mediaType: 'document',\n sizeBytes: 919,\n },\n {\n name: 'xlsx',\n mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n extension: 'xlsx',\n mediaType: 'document',\n sizeBytes: 1567,\n },\n { name: 'txt', mimeType: 'text/plain', extension: 'txt', mediaType: 'document', sizeBytes: 40 },\n { name: 'csv', mimeType: 'text/csv', extension: 'csv', mediaType: 'document', sizeBytes: 51 },\n { name: 'zip', mimeType: 'application/zip', extension: 'zip', mediaType: 'document', sizeBytes: 291 },\n { name: 'png', mimeType: 'image/png', extension: 'png', mediaType: 'image', sizeBytes: 154 },\n { name: 'jpeg', mimeType: 'image/jpeg', extension: 'jpg', mediaType: 'image', sizeBytes: 236 },\n { name: 'webp', mimeType: 'image/webp', extension: 'webp', mediaType: 'sticker', sizeBytes: 34 },\n { name: 'mp4', mimeType: 'video/mp4', extension: 'mp4', mediaType: 'video', sizeBytes: 1666 },\n { name: 'ogg', mimeType: 'audio/ogg; codecs=opus', extension: 'ogg', mediaType: 'audio', sizeBytes: 368 },\n { name: 'm4a', mimeType: 'audio/mp4', extension: 'm4a', mediaType: 'audio', sizeBytes: 903 },\n { name: 'aac', mimeType: 'audio/aac', extension: 'aac', mediaType: 'audio', sizeBytes: 127 },\n { name: 'mp3', mimeType: 'audio/mpeg', extension: 'mp3', mediaType: 'audio', sizeBytes: 1772 },\n]\n\n/**\n * Devolve uma cópia nova a cada chamada: quem recebe pode escrever no buffer sem contaminar a\n * próxima leitura da mesma amostra.\n */\nexport function readMediaSample(name: MediaSampleName): Buffer {\n return Buffer.from(SAMPLE_BYTES[name], 'base64')\n}\n\nexport function findMediaSample(name: MediaSampleName): MediaSample {\n const sample = MEDIA_SAMPLES.find((candidate) => candidate.name === name)\n if (!sample) throw new Error(`Amostra de mídia desconhecida: ${name}`)\n return sample\n}\n","/**\n * Assinatura de payload de preview no runtime do servidor. Os builders vivem em\n * `@adatechnology/meta-whatsapp-contracts/testing` porque precisam rodar também no navegador;\n * aqui fica só o que depende de `node:crypto`.\n *\n * Não existe bypass de assinatura em lugar nenhum: o preview bate na mesma rota, com a mesma\n * validação de HMAC de staging e produção. O que muda é apenas quem assina — a Meta lá, o app\n * secret local aqui.\n */\n\nimport { createHmac } from 'node:crypto'\nimport type { WhatsAppWebhookPayload } from '@adatechnology/meta-whatsapp-contracts'\nimport { serializeWebhookPayload } from '@adatechnology/meta-whatsapp-contracts/testing'\n\nexport type SignWebhookPayloadParams = {\n readonly rawBody: string\n readonly appSecret: string\n}\n\nexport function signWebhookPayload(params: SignWebhookPayloadParams): string {\n return `sha256=${createHmac('sha256', params.appSecret).update(params.rawBody).digest('hex')}`\n}\n\nexport type SignedWebhookRequest = {\n readonly rawBody: string\n readonly headers: Readonly<Record<string, string>>\n}\n\nexport type ToSignedWebhookRequestParams = {\n readonly payload: WhatsAppWebhookPayload\n readonly appSecret: string\n}\n\n/**\n * Devolve o corpo JÁ serializado junto da assinatura, porque a validação assina os bytes exatos:\n * quem serializar de novo antes de enviar (ou deixar o cliente HTTP serializar o objeto) muda\n * espaçamento/ordem e derruba a assinatura. Enviar `rawBody` como está é o contrato.\n */\nexport function toSignedWebhookRequest(params: ToSignedWebhookRequestParams): SignedWebhookRequest {\n const rawBody = serializeWebhookPayload(params.payload)\n\n return {\n rawBody,\n headers: {\n 'content-type': 'application/json',\n 'x-hub-signature-256': signWebhookPayload({ rawBody, appSecret: params.appSecret }),\n },\n }\n}\n"],"mappings":"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","names":["buildInboundTextPayload","buildInboundInteractivePayload","buildInboundAudioPayload","buildInboundMediaPayload","serializeWebhookPayload","PREVIEW_PHONE_NUMBER_ID","PREVIEW_WABA_ID","PREVIEW_DISPLAY_PHONE_NUMBER","PREVIEW_AUDIO_MIME_TYPE","SAMPLE_PDF_BASE64","SAMPLE_DOCX_BASE64","SAMPLE_XLSX_BASE64","SAMPLE_TXT_BASE64","SAMPLE_CSV_BASE64","SAMPLE_ZIP_BASE64","SAMPLE_PNG_BASE64","SAMPLE_JPEG_BASE64","SAMPLE_WEBP_BASE64","SAMPLE_MP4_BASE64","SAMPLE_OGG_BASE64","SAMPLE_M4A_BASE64","SAMPLE_AAC_BASE64","SAMPLE_MP3_BASE64","SAMPLE_BYTES","pdf","docx","xlsx","txt","csv","zip","png","jpeg","webp","mp4","ogg","m4a","aac","mp3","MEDIA_SAMPLES","name","mimeType","extension","mediaType","sizeBytes","readMediaSample","Buffer","from","findMediaSample","sample","find","candidate","Error","createHmac","serializeWebhookPayload","signWebhookPayload","params","createHmac","appSecret","update","rawBody","digest","toSignedWebhookRequest","serializeWebhookPayload","payload","headers"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adatechnology/meta-whatsapp-module",
3
- "version": "0.2.0-rc.8",
3
+ "version": "0.2.0",
4
4
  "description": "Stateful conversation/flow module for WhatsApp — schema, migrations, repositories, and use-cases behind pluggable ports (Fase 3-5 of the meta-whatsapp trio)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -8,13 +8,25 @@
8
8
  "type": "module",
9
9
  "main": "dist/index.js",
10
10
  "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/index.cjs"
16
+ },
17
+ "./testing": {
18
+ "types": "./dist/testing/index.d.ts",
19
+ "import": "./dist/testing/index.js",
20
+ "require": "./dist/testing/index.cjs"
21
+ }
22
+ },
11
23
  "files": [
12
24
  "dist"
13
25
  ],
14
26
  "dependencies": {
15
- "@adatechnology/meta-graph-core": "0.2.0-rc.1",
16
- "@adatechnology/meta-whatsapp-contracts": "0.2.0-rc.2",
17
- "@adatechnology/meta-whatsapp-provider": "0.2.0-rc.2"
27
+ "@adatechnology/meta-graph-core": "0.2.0",
28
+ "@adatechnology/meta-whatsapp-provider": "0.2.0",
29
+ "@adatechnology/meta-whatsapp-contracts": "0.2.0"
18
30
  },
19
31
  "devDependencies": {
20
32
  "@types/bun": "1.3.14",