@polymorfa/browser 0.1.0-dev.20260922094209
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/LICENSE +21 -0
- package/README.md +248 -0
- package/dist/calls/api.d.ts +22 -0
- package/dist/calls/api.d.ts.map +1 -0
- package/dist/calls/api.js +104 -0
- package/dist/calls/api.js.map +1 -0
- package/dist/calls/backend.d.ts +85 -0
- package/dist/calls/backend.d.ts.map +1 -0
- package/dist/calls/backend.js +141 -0
- package/dist/calls/backend.js.map +1 -0
- package/dist/calls/client.d.ts +56 -0
- package/dist/calls/client.d.ts.map +1 -0
- package/dist/calls/client.js +260 -0
- package/dist/calls/client.js.map +1 -0
- package/dist/calls/controller.d.ts +329 -0
- package/dist/calls/controller.d.ts.map +1 -0
- package/dist/calls/controller.js +1328 -0
- package/dist/calls/controller.js.map +1 -0
- package/dist/calls/diagnostics.d.ts +52 -0
- package/dist/calls/diagnostics.d.ts.map +1 -0
- package/dist/calls/diagnostics.js +188 -0
- package/dist/calls/diagnostics.js.map +1 -0
- package/dist/calls/index.d.ts +3 -0
- package/dist/calls/index.d.ts.map +1 -0
- package/dist/calls/index.js +5 -0
- package/dist/calls/index.js.map +1 -0
- package/dist/calls/internal.d.ts +8 -0
- package/dist/calls/internal.d.ts.map +1 -0
- package/dist/calls/internal.js +8 -0
- package/dist/calls/internal.js.map +1 -0
- package/dist/calls/media.d.ts +144 -0
- package/dist/calls/media.d.ts.map +1 -0
- package/dist/calls/media.js +512 -0
- package/dist/calls/media.js.map +1 -0
- package/dist/calls/signaling.d.ts +74 -0
- package/dist/calls/signaling.d.ts.map +1 -0
- package/dist/calls/signaling.js +169 -0
- package/dist/calls/signaling.js.map +1 -0
- package/dist/calls/socket.d.ts +95 -0
- package/dist/calls/socket.d.ts.map +1 -0
- package/dist/calls/socket.js +267 -0
- package/dist/calls/socket.js.map +1 -0
- package/dist/chat/composer.d.ts +59 -0
- package/dist/chat/composer.d.ts.map +1 -0
- package/dist/chat/composer.js +217 -0
- package/dist/chat/composer.js.map +1 -0
- package/dist/chat/conversation.d.ts +71 -0
- package/dist/chat/conversation.d.ts.map +1 -0
- package/dist/chat/conversation.js +204 -0
- package/dist/chat/conversation.js.map +1 -0
- package/dist/chat/index.d.ts +4 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +4 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/voice-recorder.d.ts +75 -0
- package/dist/chat/voice-recorder.d.ts.map +1 -0
- package/dist/chat/voice-recorder.js +346 -0
- package/dist/chat/voice-recorder.js.map +1 -0
- package/dist/controller.d.ts +16 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +50 -0
- package/dist/controller.js.map +1 -0
- package/dist/diagnostics.d.ts +27 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +2 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dropin/client.d.ts +82 -0
- package/dist/dropin/client.d.ts.map +1 -0
- package/dist/dropin/client.js +314 -0
- package/dist/dropin/client.js.map +1 -0
- package/dist/dropin/connect.d.ts +23 -0
- package/dist/dropin/connect.d.ts.map +1 -0
- package/dist/dropin/connect.js +54 -0
- package/dist/dropin/connect.js.map +1 -0
- package/dist/dropin/inbox.d.ts +131 -0
- package/dist/dropin/inbox.d.ts.map +1 -0
- package/dist/dropin/inbox.js +406 -0
- package/dist/dropin/inbox.js.map +1 -0
- package/dist/dropin/index.d.ts +5 -0
- package/dist/dropin/index.d.ts.map +1 -0
- package/dist/dropin/index.js +5 -0
- package/dist/dropin/index.js.map +1 -0
- package/dist/dropin/permissions.d.ts +29 -0
- package/dist/dropin/permissions.d.ts.map +1 -0
- package/dist/dropin/permissions.js +53 -0
- package/dist/dropin/permissions.js.map +1 -0
- package/dist/errors.d.ts +39 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +41 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +12 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +13 -0
- package/dist/internal.js.map +1 -0
- package/dist/messaging/client.d.ts +54 -0
- package/dist/messaging/client.d.ts.map +1 -0
- package/dist/messaging/client.js +153 -0
- package/dist/messaging/client.js.map +1 -0
- package/dist/messaging/composer.d.ts +12 -0
- package/dist/messaging/composer.d.ts.map +1 -0
- package/dist/messaging/composer.js +36 -0
- package/dist/messaging/composer.js.map +1 -0
- package/dist/messaging/index.d.ts +4 -0
- package/dist/messaging/index.d.ts.map +1 -0
- package/dist/messaging/index.js +3 -0
- package/dist/messaging/index.js.map +1 -0
- package/dist/messaging/types.d.ts +209 -0
- package/dist/messaging/types.d.ts.map +1 -0
- package/dist/messaging/types.js +2 -0
- package/dist/messaging/types.js.map +1 -0
- package/dist/templates/controller.d.ts +45 -0
- package/dist/templates/controller.d.ts.map +1 -0
- package/dist/templates/controller.js +298 -0
- package/dist/templates/controller.js.map +1 -0
- package/dist/templates/index.d.ts +4 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +3 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/transport.d.ts +7 -0
- package/dist/templates/transport.d.ts.map +1 -0
- package/dist/templates/transport.js +124 -0
- package/dist/templates/transport.js.map +1 -0
- package/dist/templates/types.d.ts +141 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +2 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/token.d.ts +37 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +152 -0
- package/dist/token.js.map +1 -0
- package/dist/transport.d.ts +53 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +328 -0
- package/dist/transport.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { ObservableController, } from "../controller.js";
|
|
2
|
+
export class TemplateBuilderController extends ObservableController {
|
|
3
|
+
#transport;
|
|
4
|
+
#operation = 0;
|
|
5
|
+
#abort = new AbortController();
|
|
6
|
+
constructor(transport, options = {}) {
|
|
7
|
+
super({ status: "idle", dirty: false, localIssues: [] }, options.now);
|
|
8
|
+
this.#transport = transport;
|
|
9
|
+
}
|
|
10
|
+
create(draft) {
|
|
11
|
+
this.assertActive();
|
|
12
|
+
this.#cancelOperation();
|
|
13
|
+
const copy = cloneDraft(draft);
|
|
14
|
+
this.transition({
|
|
15
|
+
status: "ready",
|
|
16
|
+
draft: copy,
|
|
17
|
+
dirty: true,
|
|
18
|
+
localIssues: validateLocally(copy),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async load(templateId) {
|
|
22
|
+
const operation = this.#beginOperation();
|
|
23
|
+
this.transition({
|
|
24
|
+
status: "loading",
|
|
25
|
+
templateId,
|
|
26
|
+
dirty: false,
|
|
27
|
+
localIssues: [],
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
const loaded = await this.#transport.load(templateId, this.#abort.signal);
|
|
31
|
+
if (!this.#isCurrent(operation))
|
|
32
|
+
return;
|
|
33
|
+
const draft = draftFromDocument(loaded);
|
|
34
|
+
this.transition({
|
|
35
|
+
status: "ready",
|
|
36
|
+
templateId: loaded.id,
|
|
37
|
+
draft,
|
|
38
|
+
dirty: false,
|
|
39
|
+
localIssues: validateLocally(draft),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (cause) {
|
|
43
|
+
this.#fail(cause, operation, templateId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
setName(name) {
|
|
47
|
+
this.#edit((draft) => ({ ...draft, name }));
|
|
48
|
+
}
|
|
49
|
+
setBody(body) {
|
|
50
|
+
this.updateDefinition({ body });
|
|
51
|
+
}
|
|
52
|
+
updateDefinition(change) {
|
|
53
|
+
this.#edit((draft) => ({
|
|
54
|
+
...draft,
|
|
55
|
+
definition: { ...draft.definition, ...change },
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
setVariableExample(name, example) {
|
|
59
|
+
this.#edit((draft) => ({
|
|
60
|
+
...draft,
|
|
61
|
+
definition: {
|
|
62
|
+
...draft.definition,
|
|
63
|
+
variables: draft.definition.variables.map((variable) => variable.name === name ? { ...variable, example } : variable),
|
|
64
|
+
},
|
|
65
|
+
sampleValues: { ...draft.sampleValues, [name]: example },
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
async save() {
|
|
69
|
+
const current = this.getSnapshot();
|
|
70
|
+
const draft = requiredDraft(current);
|
|
71
|
+
if (current.localIssues.length > 0) {
|
|
72
|
+
throw new Error("Resolve local validation issues before saving.");
|
|
73
|
+
}
|
|
74
|
+
const operation = this.#beginOperation();
|
|
75
|
+
this.transition({ ...builderFields(current), status: "saving" });
|
|
76
|
+
try {
|
|
77
|
+
const saved = await this.#transport.save(current.templateId, draft, this.#abort.signal);
|
|
78
|
+
if (!this.#isCurrent(operation))
|
|
79
|
+
return;
|
|
80
|
+
const savedDraft = draftFromDocument(saved);
|
|
81
|
+
this.transition({
|
|
82
|
+
status: "ready",
|
|
83
|
+
templateId: saved.id,
|
|
84
|
+
draft: savedDraft,
|
|
85
|
+
dirty: false,
|
|
86
|
+
localIssues: validateLocally(savedDraft),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (cause) {
|
|
90
|
+
this.#fail(cause, operation, current.templateId, draft, true);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async refreshPreview(surface) {
|
|
94
|
+
const current = this.getSnapshot();
|
|
95
|
+
const draft = requiredDraft(current);
|
|
96
|
+
const templateId = requiredSavedId(current, "preview");
|
|
97
|
+
if (current.dirty)
|
|
98
|
+
throw new Error("Save the template before preview.");
|
|
99
|
+
const operation = this.#beginOperation();
|
|
100
|
+
this.transition({ ...builderFields(current), status: "previewing" });
|
|
101
|
+
try {
|
|
102
|
+
const preview = await this.#transport.preview(templateId, draft.sampleValues, surface, this.#abort.signal);
|
|
103
|
+
if (!this.#isCurrent(operation))
|
|
104
|
+
return;
|
|
105
|
+
this.transition({
|
|
106
|
+
...builderFields(this.getSnapshot()),
|
|
107
|
+
status: "ready",
|
|
108
|
+
preview,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (cause) {
|
|
112
|
+
this.#fail(cause, operation, templateId, draft, current.dirty);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async submitToMeta() {
|
|
116
|
+
const current = this.getSnapshot();
|
|
117
|
+
const draft = requiredDraft(current);
|
|
118
|
+
const templateId = requiredSavedId(current, "submission");
|
|
119
|
+
if (current.dirty)
|
|
120
|
+
throw new Error("Save the template before submission.");
|
|
121
|
+
const operation = this.#beginOperation();
|
|
122
|
+
this.transition({ ...builderFields(current), status: "submitting" });
|
|
123
|
+
try {
|
|
124
|
+
const submission = await this.#transport.submitToMeta(templateId, this.#abort.signal);
|
|
125
|
+
if (!this.#isCurrent(operation))
|
|
126
|
+
return;
|
|
127
|
+
const submittedDraft = draftFromDocument(submission);
|
|
128
|
+
this.transition({
|
|
129
|
+
status: "submitted",
|
|
130
|
+
templateId: submission.id,
|
|
131
|
+
draft: submittedDraft,
|
|
132
|
+
dirty: false,
|
|
133
|
+
localIssues: validateLocally(submittedDraft),
|
|
134
|
+
submission,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
catch (cause) {
|
|
138
|
+
this.#fail(cause, operation, templateId, draft, false);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async delete() {
|
|
142
|
+
const current = this.getSnapshot();
|
|
143
|
+
const templateId = requiredSavedId(current, "deletion");
|
|
144
|
+
const operation = this.#beginOperation();
|
|
145
|
+
this.transition({ ...builderFields(current), status: "deleting" });
|
|
146
|
+
try {
|
|
147
|
+
await this.#transport.delete(templateId, this.#abort.signal);
|
|
148
|
+
if (this.#isCurrent(operation)) {
|
|
149
|
+
this.transition({ status: "deleted", dirty: false, localIssues: [] });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
catch (cause) {
|
|
153
|
+
this.#fail(cause, operation, templateId, current.draft, current.dirty);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
onDispose() {
|
|
157
|
+
this.#cancelOperation();
|
|
158
|
+
}
|
|
159
|
+
#edit(update) {
|
|
160
|
+
const current = this.getSnapshot();
|
|
161
|
+
const draft = cloneDraft(update(requiredDraft(current)));
|
|
162
|
+
this.#cancelOperation();
|
|
163
|
+
this.transition({
|
|
164
|
+
status: "ready",
|
|
165
|
+
...(current.templateId === undefined
|
|
166
|
+
? {}
|
|
167
|
+
: { templateId: current.templateId }),
|
|
168
|
+
draft,
|
|
169
|
+
dirty: true,
|
|
170
|
+
localIssues: validateLocally(draft),
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
#beginOperation() {
|
|
174
|
+
this.assertActive();
|
|
175
|
+
this.#cancelOperation();
|
|
176
|
+
this.#abort = new AbortController();
|
|
177
|
+
return this.#operation;
|
|
178
|
+
}
|
|
179
|
+
#cancelOperation() {
|
|
180
|
+
this.#operation += 1;
|
|
181
|
+
this.#abort.abort();
|
|
182
|
+
}
|
|
183
|
+
#isCurrent(operation) {
|
|
184
|
+
return operation === this.#operation && !this.#abort.signal.aborted;
|
|
185
|
+
}
|
|
186
|
+
#fail(cause, operation, templateId, draft, dirty = false) {
|
|
187
|
+
if (!this.#isCurrent(operation))
|
|
188
|
+
return;
|
|
189
|
+
this.transition({
|
|
190
|
+
status: "error",
|
|
191
|
+
...(templateId === undefined ? {} : { templateId }),
|
|
192
|
+
...(draft === undefined ? {} : { draft }),
|
|
193
|
+
dirty,
|
|
194
|
+
localIssues: draft === undefined ? [] : validateLocally(draft),
|
|
195
|
+
error: templateError(cause),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function requiredDraft(snapshot) {
|
|
200
|
+
if (snapshot.draft === undefined)
|
|
201
|
+
throw new Error("A template draft is required.");
|
|
202
|
+
return snapshot.draft;
|
|
203
|
+
}
|
|
204
|
+
function requiredSavedId(snapshot, action) {
|
|
205
|
+
if (snapshot.templateId === undefined) {
|
|
206
|
+
throw new Error(`Save the template before ${action}.`);
|
|
207
|
+
}
|
|
208
|
+
return snapshot.templateId;
|
|
209
|
+
}
|
|
210
|
+
function builderFields(snapshot) {
|
|
211
|
+
return {
|
|
212
|
+
...(snapshot.templateId === undefined
|
|
213
|
+
? {}
|
|
214
|
+
: { templateId: snapshot.templateId }),
|
|
215
|
+
...(snapshot.draft === undefined ? {} : { draft: snapshot.draft }),
|
|
216
|
+
dirty: snapshot.dirty,
|
|
217
|
+
localIssues: snapshot.localIssues,
|
|
218
|
+
...(snapshot.preview === undefined ? {} : { preview: snapshot.preview }),
|
|
219
|
+
...(snapshot.submission === undefined
|
|
220
|
+
? {}
|
|
221
|
+
: { submission: snapshot.submission }),
|
|
222
|
+
...(snapshot.error === undefined ? {} : { error: snapshot.error }),
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
function draftFromDocument(document) {
|
|
226
|
+
return cloneDraft({
|
|
227
|
+
name: document.name,
|
|
228
|
+
definition: document.definition,
|
|
229
|
+
...(document.sampleValues === undefined
|
|
230
|
+
? {}
|
|
231
|
+
: { sampleValues: document.sampleValues }),
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function cloneDraft(draft) {
|
|
235
|
+
return cloneJson(draft);
|
|
236
|
+
}
|
|
237
|
+
function cloneJson(value) {
|
|
238
|
+
if (Array.isArray(value))
|
|
239
|
+
return value.map(cloneJson);
|
|
240
|
+
if (typeof value !== "object" || value === null)
|
|
241
|
+
return value;
|
|
242
|
+
const copy = {};
|
|
243
|
+
for (const [key, child] of Object.entries(value))
|
|
244
|
+
copy[key] = cloneJson(child);
|
|
245
|
+
return copy;
|
|
246
|
+
}
|
|
247
|
+
function validateLocally(draft) {
|
|
248
|
+
const issues = [];
|
|
249
|
+
if (draft.name.trim() === "") {
|
|
250
|
+
issues.push({
|
|
251
|
+
code: "name_required",
|
|
252
|
+
message: "Template name is required.",
|
|
253
|
+
path: "name",
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
else if (!/^[a-z0-9_]+$/.test(draft.name)) {
|
|
257
|
+
issues.push({
|
|
258
|
+
code: "name_invalid",
|
|
259
|
+
message: "Template name must contain lowercase letters, numbers, and underscores.",
|
|
260
|
+
path: "name",
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
if (draft.definition.body.trim() === "") {
|
|
264
|
+
issues.push({
|
|
265
|
+
code: "body_required",
|
|
266
|
+
message: "Template body is required.",
|
|
267
|
+
path: "definition.body",
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
const declared = new Set(draft.definition.variables.map(({ name }) => name));
|
|
271
|
+
for (const variable of referencedVariables(draft.definition)) {
|
|
272
|
+
if (!declared.has(variable)) {
|
|
273
|
+
issues.push({
|
|
274
|
+
code: "variable_undeclared",
|
|
275
|
+
message: `Declare the ${variable} variable before using it.`,
|
|
276
|
+
path: "definition.body",
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return issues;
|
|
281
|
+
}
|
|
282
|
+
function referencedVariables(definition) {
|
|
283
|
+
const text = [
|
|
284
|
+
definition.body,
|
|
285
|
+
definition.header?.format === "text" ? definition.header.text : "",
|
|
286
|
+
...(definition.buttons ?? []).map((button) => button.type === "url" ? button.url : ""),
|
|
287
|
+
...(definition.carousel?.cards ?? []).map(({ body }) => body),
|
|
288
|
+
].join("\n");
|
|
289
|
+
return [...text.matchAll(/{{\s*([a-zA-Z0-9_]+)\s*}}/g)].flatMap((match) => match[1] === undefined ? [] : [match[1]]);
|
|
290
|
+
}
|
|
291
|
+
function templateError(cause) {
|
|
292
|
+
return {
|
|
293
|
+
code: "template_request_failed",
|
|
294
|
+
message: cause instanceof Error ? cause.message : "Template request failed.",
|
|
295
|
+
recoverable: true,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/templates/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TemplateBuilderController, type TemplateBuilderError, type TemplateBuilderOptions, type TemplateBuilderSnapshot, type TemplateBuilderTransport, } from "./controller.js";
|
|
2
|
+
export { createSameOriginTemplateBuilderTransport, type SameOriginTemplateBuilderTransportOptions, } from "./transport.js";
|
|
3
|
+
export type { ProjectTemplateDocument, RenderedButton, RenderedCard, RenderedHeader, RenderedTemplate, TemplateButton, TemplateCarouselCard, TemplateCategory, TemplateDefinition, TemplateDraft, TemplateHeader, TemplateIssue, TemplateKind, TemplatePreview, TemplateSurface, TemplateVariable, TemplateVariableType, } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wCAAwC,EACxC,KAAK,yCAAyC,GAC/C,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAK1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wCAAwC,GAEzC,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TemplateBuilderTransport } from "./controller.js";
|
|
2
|
+
export interface SameOriginTemplateBuilderTransportOptions {
|
|
3
|
+
readonly path?: string;
|
|
4
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
5
|
+
}
|
|
6
|
+
export declare function createSameOriginTemplateBuilderTransport(options?: SameOriginTemplateBuilderTransportOptions): TemplateBuilderTransport;
|
|
7
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/templates/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAQhE,MAAM,WAAW,yCAAyC;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAC1C;AAED,wBAAgB,wCAAwC,CACtD,OAAO,GAAE,yCAA8C,GACtD,wBAAwB,CAoF1B"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BrowserConfigurationError, BrowserHttpError } from "../errors.js";
|
|
2
|
+
export function createSameOriginTemplateBuilderTransport(options = {}) {
|
|
3
|
+
const path = options.path ?? "/api/polymorfa/templates";
|
|
4
|
+
validatePath(path);
|
|
5
|
+
const fetch = options.fetch ?? globalThis.fetch;
|
|
6
|
+
const post = async (body, signal) => {
|
|
7
|
+
const response = await fetch(path, {
|
|
8
|
+
method: "POST",
|
|
9
|
+
credentials: "same-origin",
|
|
10
|
+
headers: {
|
|
11
|
+
accept: "application/json",
|
|
12
|
+
"content-type": "application/json",
|
|
13
|
+
},
|
|
14
|
+
body: JSON.stringify(body),
|
|
15
|
+
signal,
|
|
16
|
+
});
|
|
17
|
+
const value = await decodeJson(response);
|
|
18
|
+
if (!response.ok) {
|
|
19
|
+
throw new BrowserHttpError(errorMessage(value), {
|
|
20
|
+
category: response.status >= 500 ? "server" : "http",
|
|
21
|
+
status: response.status,
|
|
22
|
+
details: value,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
};
|
|
27
|
+
return Object.freeze({
|
|
28
|
+
async list(signal) {
|
|
29
|
+
const value = await post({ action: "list" }, signal);
|
|
30
|
+
const templates = isRecord(value) ? value.templates : undefined;
|
|
31
|
+
if (!Array.isArray(templates))
|
|
32
|
+
throw invalidResponse();
|
|
33
|
+
return templates.map((template) => readTemplate({ template }));
|
|
34
|
+
},
|
|
35
|
+
async load(templateId, signal) {
|
|
36
|
+
return readTemplate(await post({ action: "load", templateId }, signal));
|
|
37
|
+
},
|
|
38
|
+
async save(templateId, draft, signal) {
|
|
39
|
+
return readTemplate(await post({
|
|
40
|
+
action: "save",
|
|
41
|
+
...(templateId === undefined ? {} : { templateId }),
|
|
42
|
+
draft,
|
|
43
|
+
}, signal));
|
|
44
|
+
},
|
|
45
|
+
async preview(templateId, values, surface, signal) {
|
|
46
|
+
return readPreview(await post({
|
|
47
|
+
action: "preview",
|
|
48
|
+
templateId,
|
|
49
|
+
...(values === undefined ? {} : { values }),
|
|
50
|
+
...(surface === undefined ? {} : { surface }),
|
|
51
|
+
}, signal));
|
|
52
|
+
},
|
|
53
|
+
async submitToMeta(templateId, signal) {
|
|
54
|
+
return readTemplate(await post({ action: "submit", templateId }, signal));
|
|
55
|
+
},
|
|
56
|
+
async delete(templateId, signal) {
|
|
57
|
+
const value = await post({ action: "delete", templateId }, signal);
|
|
58
|
+
if (!isRecord(value) || value.deleted !== true) {
|
|
59
|
+
throw invalidResponse();
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function validatePath(path) {
|
|
65
|
+
if (!path.startsWith("/") ||
|
|
66
|
+
path.startsWith("//") ||
|
|
67
|
+
path.includes("\\") ||
|
|
68
|
+
URL.canParse(path)) {
|
|
69
|
+
throw new BrowserConfigurationError("Template routes must be same-origin paths beginning with one slash.", "invalid_template_route");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function decodeJson(response) {
|
|
73
|
+
const text = await response.text();
|
|
74
|
+
if (text.length === 0)
|
|
75
|
+
return undefined;
|
|
76
|
+
try {
|
|
77
|
+
return JSON.parse(text);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
throw invalidResponse();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function readTemplate(value) {
|
|
84
|
+
const template = isRecord(value) ? value.template : undefined;
|
|
85
|
+
if (!isRecord(template) ||
|
|
86
|
+
typeof template.id !== "string" ||
|
|
87
|
+
typeof template.name !== "string" ||
|
|
88
|
+
typeof template.category !== "string" ||
|
|
89
|
+
typeof template.language !== "string" ||
|
|
90
|
+
typeof template.status !== "string" ||
|
|
91
|
+
typeof template.kind !== "string" ||
|
|
92
|
+
!isRecord(template.definition) ||
|
|
93
|
+
!Array.isArray(template.cloudLinks) ||
|
|
94
|
+
typeof template.createdAt !== "number" ||
|
|
95
|
+
typeof template.updatedAt !== "number") {
|
|
96
|
+
throw invalidResponse();
|
|
97
|
+
}
|
|
98
|
+
return template;
|
|
99
|
+
}
|
|
100
|
+
function readPreview(value) {
|
|
101
|
+
const preview = isRecord(value) ? value.preview : undefined;
|
|
102
|
+
if (!isRecord(preview) ||
|
|
103
|
+
preview.surface !== "preview" ||
|
|
104
|
+
!isRecord(preview.rendered) ||
|
|
105
|
+
typeof preview.rendered.body !== "string" ||
|
|
106
|
+
!Array.isArray(preview.rendered.buttons) ||
|
|
107
|
+
!Array.isArray(preview.rendered.cards)) {
|
|
108
|
+
throw invalidResponse();
|
|
109
|
+
}
|
|
110
|
+
return preview;
|
|
111
|
+
}
|
|
112
|
+
function errorMessage(value) {
|
|
113
|
+
const error = isRecord(value) && isRecord(value.error) ? value.error : undefined;
|
|
114
|
+
return error !== undefined && typeof error.message === "string"
|
|
115
|
+
? error.message
|
|
116
|
+
: "Template request failed.";
|
|
117
|
+
}
|
|
118
|
+
function invalidResponse() {
|
|
119
|
+
return new BrowserConfigurationError("The application returned an invalid template response.", "invalid_template_response");
|
|
120
|
+
}
|
|
121
|
+
function isRecord(value) {
|
|
122
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/templates/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
export type TemplateSurface = "cloud" | "whatsmeow" | "sandbox";
|
|
2
|
+
export type TemplateCategory = "MARKETING" | "UTILITY" | "AUTHENTICATION";
|
|
3
|
+
export type TemplateKind = "standard" | "carousel" | "authentication" | "limited_time_offer";
|
|
4
|
+
export type TemplateVariableType = "text" | "number" | "currency" | "date_time";
|
|
5
|
+
export interface TemplateVariable {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly type: TemplateVariableType;
|
|
8
|
+
readonly example: string;
|
|
9
|
+
}
|
|
10
|
+
export type TemplateHeader = {
|
|
11
|
+
readonly format: "none";
|
|
12
|
+
} | {
|
|
13
|
+
readonly format: "text";
|
|
14
|
+
readonly text: string;
|
|
15
|
+
} | {
|
|
16
|
+
readonly format: "image" | "video" | "document";
|
|
17
|
+
readonly example?: string;
|
|
18
|
+
readonly filename?: string;
|
|
19
|
+
} | {
|
|
20
|
+
readonly format: "location";
|
|
21
|
+
readonly example?: {
|
|
22
|
+
readonly latitude: number;
|
|
23
|
+
readonly longitude: number;
|
|
24
|
+
readonly name?: string;
|
|
25
|
+
readonly address?: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export type TemplateButton = {
|
|
29
|
+
readonly type: "quick_reply";
|
|
30
|
+
readonly text: string;
|
|
31
|
+
} | {
|
|
32
|
+
readonly type: "url";
|
|
33
|
+
readonly text: string;
|
|
34
|
+
readonly url: string;
|
|
35
|
+
} | {
|
|
36
|
+
readonly type: "phone";
|
|
37
|
+
readonly text: string;
|
|
38
|
+
readonly phone: string;
|
|
39
|
+
} | {
|
|
40
|
+
readonly type: "copy_code";
|
|
41
|
+
readonly text?: string;
|
|
42
|
+
readonly example?: string;
|
|
43
|
+
};
|
|
44
|
+
export interface TemplateCarouselCard {
|
|
45
|
+
readonly header: Extract<TemplateHeader, {
|
|
46
|
+
readonly format: "image" | "video" | "document";
|
|
47
|
+
}>;
|
|
48
|
+
readonly body: string;
|
|
49
|
+
readonly buttons?: readonly TemplateButton[];
|
|
50
|
+
}
|
|
51
|
+
export interface TemplateDefinition {
|
|
52
|
+
readonly version: 1;
|
|
53
|
+
readonly kind: TemplateKind;
|
|
54
|
+
readonly category: TemplateCategory;
|
|
55
|
+
readonly language: string;
|
|
56
|
+
readonly header?: TemplateHeader;
|
|
57
|
+
readonly body: string;
|
|
58
|
+
readonly footer?: string;
|
|
59
|
+
readonly buttons?: readonly TemplateButton[];
|
|
60
|
+
readonly carousel?: {
|
|
61
|
+
readonly cards: readonly TemplateCarouselCard[];
|
|
62
|
+
};
|
|
63
|
+
readonly authentication?: {
|
|
64
|
+
readonly otpType: "copy_code" | "one_tap";
|
|
65
|
+
readonly codeExample?: string;
|
|
66
|
+
readonly addSecurityRecommendation?: boolean;
|
|
67
|
+
readonly codeExpirationMinutes?: number;
|
|
68
|
+
};
|
|
69
|
+
readonly limitedTimeOffer?: {
|
|
70
|
+
readonly text: string;
|
|
71
|
+
readonly hasExpiration: boolean;
|
|
72
|
+
};
|
|
73
|
+
readonly variables: readonly TemplateVariable[];
|
|
74
|
+
}
|
|
75
|
+
export interface TemplateDraft {
|
|
76
|
+
readonly name: string;
|
|
77
|
+
readonly definition: TemplateDefinition;
|
|
78
|
+
readonly sampleValues?: Readonly<Record<string, string>>;
|
|
79
|
+
}
|
|
80
|
+
export interface ProjectTemplateDocument {
|
|
81
|
+
readonly id: string;
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly category: string;
|
|
84
|
+
readonly language: string;
|
|
85
|
+
readonly status: string;
|
|
86
|
+
readonly kind: string;
|
|
87
|
+
readonly definition: TemplateDefinition;
|
|
88
|
+
readonly sampleValues?: Readonly<Record<string, string>>;
|
|
89
|
+
readonly cloudLinks: readonly unknown[];
|
|
90
|
+
readonly createdAt: number;
|
|
91
|
+
readonly updatedAt: number;
|
|
92
|
+
}
|
|
93
|
+
export interface RenderedButton {
|
|
94
|
+
readonly type: TemplateButton["type"];
|
|
95
|
+
readonly text: string;
|
|
96
|
+
readonly value?: string;
|
|
97
|
+
}
|
|
98
|
+
export interface RenderedHeader {
|
|
99
|
+
readonly format: Exclude<TemplateHeader["format"], "none">;
|
|
100
|
+
readonly text?: string;
|
|
101
|
+
readonly mediaUrl?: string;
|
|
102
|
+
readonly filename?: string;
|
|
103
|
+
readonly location?: {
|
|
104
|
+
readonly latitude: number;
|
|
105
|
+
readonly longitude: number;
|
|
106
|
+
readonly name?: string;
|
|
107
|
+
readonly address?: string;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export interface RenderedCard {
|
|
111
|
+
readonly header: RenderedHeader;
|
|
112
|
+
readonly body: string;
|
|
113
|
+
readonly buttons: readonly RenderedButton[];
|
|
114
|
+
}
|
|
115
|
+
export interface RenderedTemplate {
|
|
116
|
+
readonly kind: TemplateKind;
|
|
117
|
+
readonly category: TemplateCategory;
|
|
118
|
+
readonly header?: RenderedHeader;
|
|
119
|
+
readonly body: string;
|
|
120
|
+
readonly footer?: string;
|
|
121
|
+
readonly buttons: readonly RenderedButton[];
|
|
122
|
+
readonly cards: readonly RenderedCard[];
|
|
123
|
+
readonly authentication?: {
|
|
124
|
+
readonly otpType: "copy_code" | "one_tap";
|
|
125
|
+
readonly code: string;
|
|
126
|
+
};
|
|
127
|
+
readonly limitedTimeOffer?: {
|
|
128
|
+
readonly text: string;
|
|
129
|
+
readonly hasExpiration: boolean;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export interface TemplatePreview {
|
|
133
|
+
readonly surface: "preview";
|
|
134
|
+
readonly rendered: RenderedTemplate;
|
|
135
|
+
}
|
|
136
|
+
export interface TemplateIssue {
|
|
137
|
+
readonly code: string;
|
|
138
|
+
readonly message: string;
|
|
139
|
+
readonly path?: string;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/templates/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/templates/types.ts"],"names":[],"mappings":""}
|