@ariaflowagents/messaging-meta 0.8.1
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.
- package/README.md +236 -0
- package/dist/graph-api/client.d.ts +125 -0
- package/dist/graph-api/client.d.ts.map +1 -0
- package/dist/graph-api/client.js +204 -0
- package/dist/graph-api/client.js.map +1 -0
- package/dist/graph-api/errors.d.ts +41 -0
- package/dist/graph-api/errors.d.ts.map +1 -0
- package/dist/graph-api/errors.js +72 -0
- package/dist/graph-api/errors.js.map +1 -0
- package/dist/graph-api/index.d.ts +15 -0
- package/dist/graph-api/index.d.ts.map +1 -0
- package/dist/graph-api/index.js +11 -0
- package/dist/graph-api/index.js.map +1 -0
- package/dist/graph-api/rate-limiter.d.ts +90 -0
- package/dist/graph-api/rate-limiter.d.ts.map +1 -0
- package/dist/graph-api/rate-limiter.js +172 -0
- package/dist/graph-api/rate-limiter.js.map +1 -0
- package/dist/graph-api/retry.d.ts +55 -0
- package/dist/graph-api/retry.d.ts.map +1 -0
- package/dist/graph-api/retry.js +103 -0
- package/dist/graph-api/retry.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/instagram/client.d.ts +365 -0
- package/dist/instagram/client.d.ts.map +1 -0
- package/dist/instagram/client.js +857 -0
- package/dist/instagram/client.js.map +1 -0
- package/dist/instagram/format.d.ts +62 -0
- package/dist/instagram/format.d.ts.map +1 -0
- package/dist/instagram/format.js +92 -0
- package/dist/instagram/format.js.map +1 -0
- package/dist/instagram/ice-breakers.d.ts +63 -0
- package/dist/instagram/ice-breakers.d.ts.map +1 -0
- package/dist/instagram/ice-breakers.js +87 -0
- package/dist/instagram/ice-breakers.js.map +1 -0
- package/dist/instagram/index.d.ts +44 -0
- package/dist/instagram/index.d.ts.map +1 -0
- package/dist/instagram/index.js +46 -0
- package/dist/instagram/index.js.map +1 -0
- package/dist/instagram/types.d.ts +188 -0
- package/dist/instagram/types.d.ts.map +1 -0
- package/dist/instagram/types.js +19 -0
- package/dist/instagram/types.js.map +1 -0
- package/dist/messenger/client.d.ts +339 -0
- package/dist/messenger/client.d.ts.map +1 -0
- package/dist/messenger/client.js +782 -0
- package/dist/messenger/client.js.map +1 -0
- package/dist/messenger/format.d.ts +69 -0
- package/dist/messenger/format.d.ts.map +1 -0
- package/dist/messenger/format.js +98 -0
- package/dist/messenger/format.js.map +1 -0
- package/dist/messenger/index.d.ts +34 -0
- package/dist/messenger/index.d.ts.map +1 -0
- package/dist/messenger/index.js +35 -0
- package/dist/messenger/index.js.map +1 -0
- package/dist/messenger/types.d.ts +181 -0
- package/dist/messenger/types.d.ts.map +1 -0
- package/dist/messenger/types.js +10 -0
- package/dist/messenger/types.js.map +1 -0
- package/dist/server.d.ts +31 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +29 -0
- package/dist/server.js.map +1 -0
- package/dist/webhook/index.d.ts +10 -0
- package/dist/webhook/index.d.ts.map +1 -0
- package/dist/webhook/index.js +8 -0
- package/dist/webhook/index.js.map +1 -0
- package/dist/webhook/normalizer.d.ts +169 -0
- package/dist/webhook/normalizer.d.ts.map +1 -0
- package/dist/webhook/normalizer.js +301 -0
- package/dist/webhook/normalizer.js.map +1 -0
- package/dist/webhook/verifier.d.ts +45 -0
- package/dist/webhook/verifier.d.ts.map +1 -0
- package/dist/webhook/verifier.js +62 -0
- package/dist/webhook/verifier.js.map +1 -0
- package/dist/whatsapp/client.d.ts +481 -0
- package/dist/whatsapp/client.d.ts.map +1 -0
- package/dist/whatsapp/client.js +1043 -0
- package/dist/whatsapp/client.js.map +1 -0
- package/dist/whatsapp/flows.d.ts +74 -0
- package/dist/whatsapp/flows.d.ts.map +1 -0
- package/dist/whatsapp/flows.js +77 -0
- package/dist/whatsapp/flows.js.map +1 -0
- package/dist/whatsapp/format.d.ts +78 -0
- package/dist/whatsapp/format.d.ts.map +1 -0
- package/dist/whatsapp/format.js +195 -0
- package/dist/whatsapp/format.js.map +1 -0
- package/dist/whatsapp/index.d.ts +39 -0
- package/dist/whatsapp/index.d.ts.map +1 -0
- package/dist/whatsapp/index.js +42 -0
- package/dist/whatsapp/index.js.map +1 -0
- package/dist/whatsapp/split.d.ts +35 -0
- package/dist/whatsapp/split.d.ts.map +1 -0
- package/dist/whatsapp/split.js +76 -0
- package/dist/whatsapp/split.js.map +1 -0
- package/dist/whatsapp/templates.d.ts +129 -0
- package/dist/whatsapp/templates.d.ts.map +1 -0
- package/dist/whatsapp/templates.js +125 -0
- package/dist/whatsapp/templates.js.map +1 -0
- package/dist/whatsapp/types.d.ts +440 -0
- package/dist/whatsapp/types.d.ts.map +1 -0
- package/dist/whatsapp/types.js +11 -0
- package/dist/whatsapp/types.js.map +1 -0
- package/package.json +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/whatsapp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module whatsapp/flows
|
|
3
|
+
*
|
|
4
|
+
* Utilities and types for WhatsApp Flows.
|
|
5
|
+
*
|
|
6
|
+
* WhatsApp Flows are multi-screen forms that run natively inside WhatsApp.
|
|
7
|
+
* This module re-exports the relevant types and provides helper functions
|
|
8
|
+
* for common flow operations.
|
|
9
|
+
*
|
|
10
|
+
* The primary flow management methods (create, update, publish, delete,
|
|
11
|
+
* getAssets) live on the {@link WhatsAppClient} via the `client.flows`
|
|
12
|
+
* namespace. This module provides supplementary helpers.
|
|
13
|
+
*
|
|
14
|
+
* @see https://developers.facebook.com/docs/whatsapp/flows
|
|
15
|
+
*/
|
|
16
|
+
import type { FlowInteractiveInput } from './types.js';
|
|
17
|
+
export type { FlowDefinition, FlowInfo, FlowAssets, FlowInteractiveInput, } from './types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Generate a random flow token for a WhatsApp Flow session.
|
|
20
|
+
*
|
|
21
|
+
* Flow tokens are opaque strings used to correlate flow responses
|
|
22
|
+
* with the originating business logic. Each flow message should use
|
|
23
|
+
* a unique token.
|
|
24
|
+
*
|
|
25
|
+
* @param length - Length of the generated token. Default `32`.
|
|
26
|
+
* @returns A cryptographically random hex string.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const token = generateFlowToken();
|
|
31
|
+
* await client.sendInteractiveFlow(to, {
|
|
32
|
+
* body: { text: 'Complete your order' },
|
|
33
|
+
* flowId: '123456789',
|
|
34
|
+
* flowCta: 'Start',
|
|
35
|
+
* flowToken: token,
|
|
36
|
+
* flowAction: 'navigate',
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function generateFlowToken(length?: number): string;
|
|
41
|
+
/**
|
|
42
|
+
* Build a {@link FlowInteractiveInput} payload with sensible defaults.
|
|
43
|
+
*
|
|
44
|
+
* @param options - Flow message options.
|
|
45
|
+
* @returns A complete {@link FlowInteractiveInput} ready to pass to
|
|
46
|
+
* {@link WhatsAppClient.sendInteractiveFlow}.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* const flow = buildFlowInput({
|
|
51
|
+
* bodyText: 'Complete your registration',
|
|
52
|
+
* flowId: '123456789',
|
|
53
|
+
* flowCta: 'Get Started',
|
|
54
|
+
* });
|
|
55
|
+
* await client.sendInteractiveFlow(to, flow);
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function buildFlowInput(options: {
|
|
59
|
+
/** Body text for the flow message. */
|
|
60
|
+
bodyText: string;
|
|
61
|
+
/** The WhatsApp Flow ID. */
|
|
62
|
+
flowId: string;
|
|
63
|
+
/** Call-to-action button text. */
|
|
64
|
+
flowCta: string;
|
|
65
|
+
/** Optional footer text. */
|
|
66
|
+
footerText?: string;
|
|
67
|
+
/** Flow action type. Default `"navigate"`. */
|
|
68
|
+
flowAction?: 'navigate' | 'data_exchange';
|
|
69
|
+
/** Optional flow token. Auto-generated if not provided. */
|
|
70
|
+
flowToken?: string;
|
|
71
|
+
/** Optional initial payload data. */
|
|
72
|
+
flowActionPayload?: Record<string, unknown>;
|
|
73
|
+
}): FlowInteractiveInput;
|
|
74
|
+
//# sourceMappingURL=flows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/whatsapp/flows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,YAAY,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAO7D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC;IAC1C,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,GAAG,oBAAoB,CAUvB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module whatsapp/flows
|
|
3
|
+
*
|
|
4
|
+
* Utilities and types for WhatsApp Flows.
|
|
5
|
+
*
|
|
6
|
+
* WhatsApp Flows are multi-screen forms that run natively inside WhatsApp.
|
|
7
|
+
* This module re-exports the relevant types and provides helper functions
|
|
8
|
+
* for common flow operations.
|
|
9
|
+
*
|
|
10
|
+
* The primary flow management methods (create, update, publish, delete,
|
|
11
|
+
* getAssets) live on the {@link WhatsAppClient} via the `client.flows`
|
|
12
|
+
* namespace. This module provides supplementary helpers.
|
|
13
|
+
*
|
|
14
|
+
* @see https://developers.facebook.com/docs/whatsapp/flows
|
|
15
|
+
*/
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Flow token helpers
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
/**
|
|
20
|
+
* Generate a random flow token for a WhatsApp Flow session.
|
|
21
|
+
*
|
|
22
|
+
* Flow tokens are opaque strings used to correlate flow responses
|
|
23
|
+
* with the originating business logic. Each flow message should use
|
|
24
|
+
* a unique token.
|
|
25
|
+
*
|
|
26
|
+
* @param length - Length of the generated token. Default `32`.
|
|
27
|
+
* @returns A cryptographically random hex string.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* const token = generateFlowToken();
|
|
32
|
+
* await client.sendInteractiveFlow(to, {
|
|
33
|
+
* body: { text: 'Complete your order' },
|
|
34
|
+
* flowId: '123456789',
|
|
35
|
+
* flowCta: 'Start',
|
|
36
|
+
* flowToken: token,
|
|
37
|
+
* flowAction: 'navigate',
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function generateFlowToken(length = 32) {
|
|
42
|
+
const bytes = new Uint8Array(Math.ceil(length / 2));
|
|
43
|
+
crypto.getRandomValues(bytes);
|
|
44
|
+
return Array.from(bytes)
|
|
45
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
46
|
+
.join('')
|
|
47
|
+
.slice(0, length);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Build a {@link FlowInteractiveInput} payload with sensible defaults.
|
|
51
|
+
*
|
|
52
|
+
* @param options - Flow message options.
|
|
53
|
+
* @returns A complete {@link FlowInteractiveInput} ready to pass to
|
|
54
|
+
* {@link WhatsAppClient.sendInteractiveFlow}.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* const flow = buildFlowInput({
|
|
59
|
+
* bodyText: 'Complete your registration',
|
|
60
|
+
* flowId: '123456789',
|
|
61
|
+
* flowCta: 'Get Started',
|
|
62
|
+
* });
|
|
63
|
+
* await client.sendInteractiveFlow(to, flow);
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export function buildFlowInput(options) {
|
|
67
|
+
return {
|
|
68
|
+
body: { text: options.bodyText },
|
|
69
|
+
footer: options.footerText ? { text: options.footerText } : undefined,
|
|
70
|
+
flowId: options.flowId,
|
|
71
|
+
flowCta: options.flowCta,
|
|
72
|
+
flowToken: options.flowToken ?? generateFlowToken(),
|
|
73
|
+
flowAction: options.flowAction ?? 'navigate',
|
|
74
|
+
flowActionPayload: options.flowActionPayload,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=flows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/whatsapp/flows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE;IACnD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAAC,OAe9B;IACC,OAAO;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;QACrE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,iBAAiB,EAAE;QACnD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,UAAU;QAC5C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module whatsapp/format
|
|
3
|
+
*
|
|
4
|
+
* WhatsApp-specific text format converter.
|
|
5
|
+
*
|
|
6
|
+
* WhatsApp uses a unique formatting syntax that differs from standard Markdown:
|
|
7
|
+
* - Bold: `*text*` (Markdown: `**text**`)
|
|
8
|
+
* - Italic: `_text_` (same as Markdown)
|
|
9
|
+
* - Strikethrough: `~text~` (Markdown: `~~text~~`)
|
|
10
|
+
* - Monospace: `` `code` `` (same as Markdown)
|
|
11
|
+
* - Code block: ` ```block``` ` (same as Markdown)
|
|
12
|
+
*
|
|
13
|
+
* This converter handles bidirectional translation between Markdown and
|
|
14
|
+
* WhatsApp's native format, as well as stripping all formatting to plain text.
|
|
15
|
+
*/
|
|
16
|
+
import { BaseFormatConverter } from '@ariaflowagents/messaging';
|
|
17
|
+
/**
|
|
18
|
+
* Converts text between Markdown and WhatsApp's native formatting syntax.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const converter = new WhatsAppFormatConverter();
|
|
23
|
+
*
|
|
24
|
+
* // Markdown to WhatsApp
|
|
25
|
+
* converter.toPlatformFormat('**bold** and ~~strike~~');
|
|
26
|
+
* // => '*bold* and ~strike~'
|
|
27
|
+
*
|
|
28
|
+
* // WhatsApp to Markdown
|
|
29
|
+
* converter.toMarkdown('*bold* and ~strike~');
|
|
30
|
+
* // => '**bold** and ~~strike~~'
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class WhatsAppFormatConverter extends BaseFormatConverter {
|
|
34
|
+
/**
|
|
35
|
+
* Convert standard Markdown to WhatsApp's native formatting.
|
|
36
|
+
*
|
|
37
|
+
* Transformations applied:
|
|
38
|
+
* - `**bold**` or `__bold__` becomes `*bold*`
|
|
39
|
+
* - `~~strike~~` becomes `~strike~`
|
|
40
|
+
* - `# Heading` becomes `*Heading*` (bold)
|
|
41
|
+
* - `## Heading` becomes `*Heading*`
|
|
42
|
+
* - `### Heading` becomes `*Heading*`
|
|
43
|
+
* - `---` or `***` horizontal rules become `━━━━━━━━━━`
|
|
44
|
+
* - `[text](url)` becomes `text (url)`
|
|
45
|
+
* - `` becomes `alt`
|
|
46
|
+
* - Tables are converted to code-block ASCII representation
|
|
47
|
+
* - Italic (`_text_`) and inline code (`` `code` ``) are preserved
|
|
48
|
+
*
|
|
49
|
+
* @param markdown - Markdown-formatted text.
|
|
50
|
+
* @returns Text formatted for WhatsApp.
|
|
51
|
+
*/
|
|
52
|
+
toPlatformFormat(markdown: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Convert WhatsApp-formatted text to standard Markdown.
|
|
55
|
+
*
|
|
56
|
+
* Transformations applied:
|
|
57
|
+
* - `*bold*` becomes `**bold**`
|
|
58
|
+
* - `~strike~` becomes `~~strike~~`
|
|
59
|
+
* - Italic (`_text_`) and code (`` `code` ``) are already Markdown-compatible
|
|
60
|
+
*
|
|
61
|
+
* @param text - WhatsApp-formatted text.
|
|
62
|
+
* @returns Markdown-formatted text.
|
|
63
|
+
*/
|
|
64
|
+
toMarkdown(text: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* Strip all formatting (Markdown and WhatsApp) to produce plain text.
|
|
67
|
+
*
|
|
68
|
+
* @param markdown - Markdown or WhatsApp-formatted text.
|
|
69
|
+
* @returns Plain text with all formatting markers removed.
|
|
70
|
+
*/
|
|
71
|
+
toPlainText(markdown: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* Convert Markdown tables to a code-block ASCII representation suitable
|
|
74
|
+
* for WhatsApp (which does not support tables natively).
|
|
75
|
+
*/
|
|
76
|
+
private convertTables;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/whatsapp/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAwD1C;;;;;;;;;;OAUG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAiChC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IA2CrC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAkCtB"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module whatsapp/format
|
|
3
|
+
*
|
|
4
|
+
* WhatsApp-specific text format converter.
|
|
5
|
+
*
|
|
6
|
+
* WhatsApp uses a unique formatting syntax that differs from standard Markdown:
|
|
7
|
+
* - Bold: `*text*` (Markdown: `**text**`)
|
|
8
|
+
* - Italic: `_text_` (same as Markdown)
|
|
9
|
+
* - Strikethrough: `~text~` (Markdown: `~~text~~`)
|
|
10
|
+
* - Monospace: `` `code` `` (same as Markdown)
|
|
11
|
+
* - Code block: ` ```block``` ` (same as Markdown)
|
|
12
|
+
*
|
|
13
|
+
* This converter handles bidirectional translation between Markdown and
|
|
14
|
+
* WhatsApp's native format, as well as stripping all formatting to plain text.
|
|
15
|
+
*/
|
|
16
|
+
import { BaseFormatConverter } from '@ariaflowagents/messaging';
|
|
17
|
+
/**
|
|
18
|
+
* Converts text between Markdown and WhatsApp's native formatting syntax.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const converter = new WhatsAppFormatConverter();
|
|
23
|
+
*
|
|
24
|
+
* // Markdown to WhatsApp
|
|
25
|
+
* converter.toPlatformFormat('**bold** and ~~strike~~');
|
|
26
|
+
* // => '*bold* and ~strike~'
|
|
27
|
+
*
|
|
28
|
+
* // WhatsApp to Markdown
|
|
29
|
+
* converter.toMarkdown('*bold* and ~strike~');
|
|
30
|
+
* // => '**bold** and ~~strike~~'
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export class WhatsAppFormatConverter extends BaseFormatConverter {
|
|
34
|
+
/**
|
|
35
|
+
* Convert standard Markdown to WhatsApp's native formatting.
|
|
36
|
+
*
|
|
37
|
+
* Transformations applied:
|
|
38
|
+
* - `**bold**` or `__bold__` becomes `*bold*`
|
|
39
|
+
* - `~~strike~~` becomes `~strike~`
|
|
40
|
+
* - `# Heading` becomes `*Heading*` (bold)
|
|
41
|
+
* - `## Heading` becomes `*Heading*`
|
|
42
|
+
* - `### Heading` becomes `*Heading*`
|
|
43
|
+
* - `---` or `***` horizontal rules become `━━━━━━━━━━`
|
|
44
|
+
* - `[text](url)` becomes `text (url)`
|
|
45
|
+
* - `` becomes `alt`
|
|
46
|
+
* - Tables are converted to code-block ASCII representation
|
|
47
|
+
* - Italic (`_text_`) and inline code (`` `code` ``) are preserved
|
|
48
|
+
*
|
|
49
|
+
* @param markdown - Markdown-formatted text.
|
|
50
|
+
* @returns Text formatted for WhatsApp.
|
|
51
|
+
*/
|
|
52
|
+
toPlatformFormat(markdown) {
|
|
53
|
+
let text = markdown;
|
|
54
|
+
// Preserve code blocks from being transformed
|
|
55
|
+
const codeBlocks = [];
|
|
56
|
+
text = text.replace(/```[\s\S]*?```/g, (match) => {
|
|
57
|
+
codeBlocks.push(match);
|
|
58
|
+
return `\x00CB${codeBlocks.length - 1}\x00`;
|
|
59
|
+
});
|
|
60
|
+
// Preserve inline code
|
|
61
|
+
const inlineCode = [];
|
|
62
|
+
text = text.replace(/`[^`]+`/g, (match) => {
|
|
63
|
+
inlineCode.push(match);
|
|
64
|
+
return `\x00IC${inlineCode.length - 1}\x00`;
|
|
65
|
+
});
|
|
66
|
+
// Convert Markdown tables to code-block ASCII
|
|
67
|
+
text = this.convertTables(text);
|
|
68
|
+
// Headings → bold
|
|
69
|
+
text = text.replace(/^#{1,6}\s+(.+)$/gm, '*$1*');
|
|
70
|
+
// Horizontal rules → line
|
|
71
|
+
text = text.replace(/^(?:---+|\*\*\*+|___+)\s*$/gm, '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501');
|
|
72
|
+
// Unordered list markers: normalize * and + bullets to dashes BEFORE bold
|
|
73
|
+
// conversion, since `* item` would become `- item` correctly, but after
|
|
74
|
+
// bold conversion `*bold*` at line start would be mistakenly treated as a bullet.
|
|
75
|
+
text = text.replace(/^(\s*)[*+]\s/gm, '$1- ');
|
|
76
|
+
// Bold: **text** or __text__ → *text*
|
|
77
|
+
text = text.replace(/\*\*(.+?)\*\*/g, '*$1*');
|
|
78
|
+
text = text.replace(/__(.+?)__/g, '*$1*');
|
|
79
|
+
// Strikethrough: ~~text~~ → ~text~
|
|
80
|
+
text = text.replace(/~~(.+?)~~/g, '~$1~');
|
|
81
|
+
// Links: [text](url) → text (url)
|
|
82
|
+
text = text.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '$1 ($2)');
|
|
83
|
+
// Images:  → alt
|
|
84
|
+
text = text.replace(/!\[([^\]]*)\]\([^)]+\)/g, '$1');
|
|
85
|
+
// Blockquotes: > text → text (remove the > prefix)
|
|
86
|
+
text = text.replace(/^>\s?/gm, '');
|
|
87
|
+
// Restore inline code
|
|
88
|
+
text = text.replace(/\x00IC(\d+)\x00/g, (_, idx) => inlineCode[parseInt(idx)]);
|
|
89
|
+
// Restore code blocks
|
|
90
|
+
text = text.replace(/\x00CB(\d+)\x00/g, (_, idx) => codeBlocks[parseInt(idx)]);
|
|
91
|
+
return text;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Convert WhatsApp-formatted text to standard Markdown.
|
|
95
|
+
*
|
|
96
|
+
* Transformations applied:
|
|
97
|
+
* - `*bold*` becomes `**bold**`
|
|
98
|
+
* - `~strike~` becomes `~~strike~~`
|
|
99
|
+
* - Italic (`_text_`) and code (`` `code` ``) are already Markdown-compatible
|
|
100
|
+
*
|
|
101
|
+
* @param text - WhatsApp-formatted text.
|
|
102
|
+
* @returns Markdown-formatted text.
|
|
103
|
+
*/
|
|
104
|
+
toMarkdown(text) {
|
|
105
|
+
let result = text;
|
|
106
|
+
// Preserve code blocks
|
|
107
|
+
const codeBlocks = [];
|
|
108
|
+
result = result.replace(/```[\s\S]*?```/g, (match) => {
|
|
109
|
+
codeBlocks.push(match);
|
|
110
|
+
return `\x00CB${codeBlocks.length - 1}\x00`;
|
|
111
|
+
});
|
|
112
|
+
// Preserve inline code
|
|
113
|
+
const inlineCode = [];
|
|
114
|
+
result = result.replace(/`[^`]+`/g, (match) => {
|
|
115
|
+
inlineCode.push(match);
|
|
116
|
+
return `\x00IC${inlineCode.length - 1}\x00`;
|
|
117
|
+
});
|
|
118
|
+
// Bold: *text* → **text**
|
|
119
|
+
// Match single asterisks that are not part of code or escaped
|
|
120
|
+
result = result.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, '**$1**');
|
|
121
|
+
// Strikethrough: ~text~ → ~~text~~
|
|
122
|
+
result = result.replace(/(?<!~)~(?!~)(.+?)(?<!~)~(?!~)/g, '~~$1~~');
|
|
123
|
+
// Restore inline code
|
|
124
|
+
result = result.replace(/\x00IC(\d+)\x00/g, (_, idx) => inlineCode[parseInt(idx)]);
|
|
125
|
+
// Restore code blocks
|
|
126
|
+
result = result.replace(/\x00CB(\d+)\x00/g, (_, idx) => codeBlocks[parseInt(idx)]);
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Strip all formatting (Markdown and WhatsApp) to produce plain text.
|
|
131
|
+
*
|
|
132
|
+
* @param markdown - Markdown or WhatsApp-formatted text.
|
|
133
|
+
* @returns Plain text with all formatting markers removed.
|
|
134
|
+
*/
|
|
135
|
+
toPlainText(markdown) {
|
|
136
|
+
let text = markdown;
|
|
137
|
+
// Remove code blocks but keep content
|
|
138
|
+
text = text.replace(/```(?:\w*\n)?([\s\S]*?)```/g, '$1');
|
|
139
|
+
// Remove inline code markers
|
|
140
|
+
text = text.replace(/`([^`]+)`/g, '$1');
|
|
141
|
+
// Remove headings markers
|
|
142
|
+
text = text.replace(/^#{1,6}\s+/gm, '');
|
|
143
|
+
// Remove images
|
|
144
|
+
text = text.replace(/!\[([^\]]*)\]\([^)]+\)/g, '$1');
|
|
145
|
+
// Remove links but keep text
|
|
146
|
+
text = text.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1');
|
|
147
|
+
// Remove bold (Markdown and WhatsApp)
|
|
148
|
+
text = text.replace(/\*\*(.+?)\*\*/g, '$1');
|
|
149
|
+
text = text.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, '$1');
|
|
150
|
+
// Remove italic
|
|
151
|
+
text = text.replace(/__(.+?)__/g, '$1');
|
|
152
|
+
text = text.replace(/(?<!_)_(?!_)(.+?)(?<!_)_(?!_)/g, '$1');
|
|
153
|
+
// Remove strikethrough
|
|
154
|
+
text = text.replace(/~~(.+?)~~/g, '$1');
|
|
155
|
+
text = text.replace(/(?<!~)~(?!~)(.+?)(?<!~)~(?!~)/g, '$1');
|
|
156
|
+
// Remove blockquote markers
|
|
157
|
+
text = text.replace(/^>\s?/gm, '');
|
|
158
|
+
// Remove horizontal rules
|
|
159
|
+
text = text.replace(/^(?:---+|\*\*\*+|___+)\s*$/gm, '');
|
|
160
|
+
return text.trim();
|
|
161
|
+
}
|
|
162
|
+
// -----------------------------------------------------------------------
|
|
163
|
+
// Private helpers
|
|
164
|
+
// -----------------------------------------------------------------------
|
|
165
|
+
/**
|
|
166
|
+
* Convert Markdown tables to a code-block ASCII representation suitable
|
|
167
|
+
* for WhatsApp (which does not support tables natively).
|
|
168
|
+
*/
|
|
169
|
+
convertTables(text) {
|
|
170
|
+
// Match simple Markdown tables (header, separator, rows)
|
|
171
|
+
const tableRegex = /^(\|.+\|)\n(\|[-| :]+\|)\n((?:\|.+\|\n?)+)/gm;
|
|
172
|
+
return text.replace(tableRegex, (match) => {
|
|
173
|
+
const lines = match.trim().split('\n');
|
|
174
|
+
if (lines.length < 3)
|
|
175
|
+
return match;
|
|
176
|
+
// Parse cells
|
|
177
|
+
const parseCells = (line) => line.split('|').slice(1, -1).map(cell => cell.trim());
|
|
178
|
+
const headerCells = parseCells(lines[0]);
|
|
179
|
+
const dataRows = lines.slice(2).map(parseCells);
|
|
180
|
+
// Calculate column widths
|
|
181
|
+
const colWidths = headerCells.map((h, i) => {
|
|
182
|
+
const maxData = dataRows.reduce((max, row) => Math.max(max, (row[i] ?? '').length), 0);
|
|
183
|
+
return Math.max(h.length, maxData);
|
|
184
|
+
});
|
|
185
|
+
// Build ASCII table
|
|
186
|
+
const pad = (str, width) => str.padEnd(width);
|
|
187
|
+
const separator = colWidths.map(w => '\u2500'.repeat(w + 2)).join('\u253C');
|
|
188
|
+
const formatRow = (cells) => cells.map((cell, i) => ` ${pad(cell, colWidths[i])} `).join('\u2502');
|
|
189
|
+
const headerLine = formatRow(headerCells);
|
|
190
|
+
const bodyLines = dataRows.map(formatRow);
|
|
191
|
+
return '```\n' + headerLine + '\n' + separator + '\n' + bodyLines.join('\n') + '\n```';
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/whatsapp/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module whatsapp
|
|
3
|
+
*
|
|
4
|
+
* WhatsApp Cloud API client for the AriaFlow messaging framework.
|
|
5
|
+
*
|
|
6
|
+
* This module provides a complete, production-ready WhatsApp Business Platform
|
|
7
|
+
* integration implementing the `PlatformClient` interface from
|
|
8
|
+
* `@ariaflowagents/messaging`.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import {
|
|
13
|
+
* createWhatsAppClient,
|
|
14
|
+
* buildTemplateSendPayload,
|
|
15
|
+
* WhatsAppFormatConverter,
|
|
16
|
+
* } from '@ariaflowagents/messaging-meta/whatsapp';
|
|
17
|
+
*
|
|
18
|
+
* const client = createWhatsAppClient({
|
|
19
|
+
* accessToken: process.env.WHATSAPP_ACCESS_TOKEN!,
|
|
20
|
+
* appSecret: process.env.META_APP_SECRET!,
|
|
21
|
+
* phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID!,
|
|
22
|
+
* verifyToken: process.env.WHATSAPP_VERIFY_TOKEN!,
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* client.onMessage(async (msg) => {
|
|
26
|
+
* await client.sendText(msg.from.phone!, `Echo: ${msg.text}`);
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @packageDocumentation
|
|
31
|
+
*/
|
|
32
|
+
export { WhatsAppClient, createWhatsAppClient } from './client.js';
|
|
33
|
+
export type { WhatsAppClientConfig, WhatsAppThreadId, WhatsAppSendResponse, TemplateMessage, TemplateLanguage, TemplateComponent, TemplateParameter, MediaObject, ListMessage, ListSection, ListRow, ButtonMessage, ReplyButton, CTAButtonMessage, FlowInteractiveInput, LocationPayload, ContactPayload, BusinessProfile, TemplateDefinition, TemplateDefinitionComponent, TemplateInfo, FlowDefinition, FlowInfo, FlowAssets, WhatsAppMediaResponse, TextOrTemplateOptions, } from './types.js';
|
|
34
|
+
export { buildTemplateSendPayload, buildTemplatePayload, } from './templates.js';
|
|
35
|
+
export type { TypedTemplateConfig, RawTemplateComponents, } from './templates.js';
|
|
36
|
+
export { WhatsAppFormatConverter } from './format.js';
|
|
37
|
+
export { splitMessage } from './split.js';
|
|
38
|
+
export { generateFlowToken, buildFlowInput } from './flows.js';
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/whatsapp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnE,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,WAAW,EACX,OAAO,EACP,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,2BAA2B,EAC3B,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module whatsapp
|
|
3
|
+
*
|
|
4
|
+
* WhatsApp Cloud API client for the AriaFlow messaging framework.
|
|
5
|
+
*
|
|
6
|
+
* This module provides a complete, production-ready WhatsApp Business Platform
|
|
7
|
+
* integration implementing the `PlatformClient` interface from
|
|
8
|
+
* `@ariaflowagents/messaging`.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import {
|
|
13
|
+
* createWhatsAppClient,
|
|
14
|
+
* buildTemplateSendPayload,
|
|
15
|
+
* WhatsAppFormatConverter,
|
|
16
|
+
* } from '@ariaflowagents/messaging-meta/whatsapp';
|
|
17
|
+
*
|
|
18
|
+
* const client = createWhatsAppClient({
|
|
19
|
+
* accessToken: process.env.WHATSAPP_ACCESS_TOKEN!,
|
|
20
|
+
* appSecret: process.env.META_APP_SECRET!,
|
|
21
|
+
* phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID!,
|
|
22
|
+
* verifyToken: process.env.WHATSAPP_VERIFY_TOKEN!,
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* client.onMessage(async (msg) => {
|
|
26
|
+
* await client.sendText(msg.from.phone!, `Echo: ${msg.text}`);
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @packageDocumentation
|
|
31
|
+
*/
|
|
32
|
+
// ─── Client ───────────────────────────────────────────────────────────────
|
|
33
|
+
export { WhatsAppClient, createWhatsAppClient } from './client.js';
|
|
34
|
+
// ─── Templates ────────────────────────────────────────────────────────────
|
|
35
|
+
export { buildTemplateSendPayload, buildTemplatePayload, } from './templates.js';
|
|
36
|
+
// ─── Format converter ────────────────────────────────────────────────────
|
|
37
|
+
export { WhatsAppFormatConverter } from './format.js';
|
|
38
|
+
// ─── Message splitting ──────────────────────────────────────────────────
|
|
39
|
+
export { splitMessage } from './split.js';
|
|
40
|
+
// ─── Flows ──────────────────────────────────────────────────────────────
|
|
41
|
+
export { generateFlowToken, buildFlowInput } from './flows.js';
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/whatsapp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,6EAA6E;AAC7E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAgCnE,6EAA6E;AAC7E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAMxB,4EAA4E;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,2EAA2E;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,2EAA2E;AAC3E,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module whatsapp/split
|
|
3
|
+
*
|
|
4
|
+
* Smart message splitting for WhatsApp's 4096-character limit.
|
|
5
|
+
*
|
|
6
|
+
* Splits long messages at natural boundaries (paragraph breaks, line breaks)
|
|
7
|
+
* to maintain readability. Falls back to hard splitting only when no natural
|
|
8
|
+
* boundary exists within the allowed range.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Split a text message into chunks that fit within WhatsApp's character limit.
|
|
12
|
+
*
|
|
13
|
+
* The splitting strategy prioritises readability:
|
|
14
|
+
* 1. Paragraph boundaries (`\n\n`) within the first `maxLength` characters.
|
|
15
|
+
* 2. Line boundaries (`\n`) if no paragraph break is available.
|
|
16
|
+
* 3. Word boundaries (last space character) as a third preference.
|
|
17
|
+
* 4. Hard split at `maxLength` as a last resort.
|
|
18
|
+
*
|
|
19
|
+
* A split point is only used if it falls in the latter half of the chunk
|
|
20
|
+
* to avoid producing very short fragments.
|
|
21
|
+
*
|
|
22
|
+
* @param text - The full message text.
|
|
23
|
+
* @param maxLength - Maximum characters per chunk. Default `4096`.
|
|
24
|
+
* @returns An array of text chunks, each within `maxLength`.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const chunks = splitMessage(longReport);
|
|
29
|
+
* for (const chunk of chunks) {
|
|
30
|
+
* await client.sendText(to, chunk);
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function splitMessage(text: string, maxLength?: number): string[];
|
|
35
|
+
//# sourceMappingURL=split.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../src/whatsapp/split.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAmB,GAAG,MAAM,EAAE,CA+CnF"}
|