@semics-tech/emdash-esign-pro 0.0.0-bootstrap.0 → 1.0.0-rc.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,569 @@
1
+ {
2
+ "id": "semics-esign",
3
+ "version": "1.0.0-rc.0",
4
+ "declaredAccess": {
5
+ "media": {
6
+ "read": {},
7
+ "bytesRead": {}
8
+ },
9
+ "network": {
10
+ "request": {
11
+ "allowedHosts": [
12
+ "challenges.cloudflare.com"
13
+ ]
14
+ }
15
+ },
16
+ "email": {
17
+ "send": {}
18
+ }
19
+ },
20
+ "capabilities": [
21
+ "media:read",
22
+ "media:bytes:read",
23
+ "network:request",
24
+ "email:send"
25
+ ],
26
+ "allowedHosts": [
27
+ "challenges.cloudflare.com"
28
+ ],
29
+ "storage": {
30
+ "templates": {
31
+ "indexes": [
32
+ "status",
33
+ "kind",
34
+ "public"
35
+ ]
36
+ },
37
+ "envelopes": {
38
+ "indexes": [
39
+ "status",
40
+ "expiresAt",
41
+ "createdAt",
42
+ "clientId",
43
+ "externalRef",
44
+ "pdfSha256",
45
+ "signerEmail",
46
+ [
47
+ "status",
48
+ "expiresAt"
49
+ ]
50
+ ]
51
+ },
52
+ "signers": {
53
+ "indexes": [
54
+ "envelopeId",
55
+ "email",
56
+ "copyTokenHash"
57
+ ],
58
+ "uniqueIndexes": [
59
+ "tokenHash"
60
+ ]
61
+ },
62
+ "snapshots": {
63
+ "indexes": [
64
+ "envelopeId"
65
+ ]
66
+ },
67
+ "artifacts": {
68
+ "indexes": [
69
+ "envelopeId",
70
+ [
71
+ "envelopeId",
72
+ "kind"
73
+ ]
74
+ ]
75
+ },
76
+ "audit_events": {
77
+ "indexes": [
78
+ "envelopeId",
79
+ [
80
+ "envelopeId",
81
+ "seq"
82
+ ]
83
+ ]
84
+ },
85
+ "clients": {
86
+ "indexes": [
87
+ "createdAt"
88
+ ],
89
+ "uniqueIndexes": [
90
+ "clientId"
91
+ ]
92
+ },
93
+ "nonces": {
94
+ "indexes": [
95
+ "expiresAt"
96
+ ],
97
+ "uniqueIndexes": [
98
+ "nonce"
99
+ ]
100
+ },
101
+ "outbox": {
102
+ "indexes": [
103
+ [
104
+ "status",
105
+ "nextAttemptAt"
106
+ ]
107
+ ]
108
+ },
109
+ "bulk": {
110
+ "indexes": [
111
+ [
112
+ "kind",
113
+ "createdAt"
114
+ ]
115
+ ]
116
+ },
117
+ "pdf_templates": {
118
+ "indexes": [
119
+ "status"
120
+ ]
121
+ },
122
+ "pdf_files": {
123
+ "indexes": [
124
+ "sha256"
125
+ ]
126
+ }
127
+ },
128
+ "hooks": [
129
+ "plugin:activate",
130
+ "cron"
131
+ ],
132
+ "routes": [
133
+ {
134
+ "name": "public/envelopes/from-intent",
135
+ "methods": [
136
+ "POST"
137
+ ],
138
+ "request": {
139
+ "body": "json",
140
+ "maxBytes": 16384
141
+ },
142
+ "public": true
143
+ },
144
+ {
145
+ "name": "public/session",
146
+ "methods": [
147
+ "POST"
148
+ ],
149
+ "request": {
150
+ "body": "json",
151
+ "maxBytes": 8192
152
+ },
153
+ "public": true
154
+ },
155
+ {
156
+ "name": "public/otp/send",
157
+ "methods": [
158
+ "POST"
159
+ ],
160
+ "request": {
161
+ "body": "json",
162
+ "maxBytes": 8192
163
+ },
164
+ "public": true
165
+ },
166
+ {
167
+ "name": "public/otp/verify",
168
+ "methods": [
169
+ "POST"
170
+ ],
171
+ "request": {
172
+ "body": "json",
173
+ "maxBytes": 8192
174
+ },
175
+ "public": true
176
+ },
177
+ {
178
+ "name": "public/submit",
179
+ "methods": [
180
+ "POST"
181
+ ],
182
+ "request": {
183
+ "body": "json",
184
+ "maxBytes": 262144
185
+ },
186
+ "public": true
187
+ },
188
+ {
189
+ "name": "public/decline",
190
+ "methods": [
191
+ "POST"
192
+ ],
193
+ "request": {
194
+ "body": "json",
195
+ "maxBytes": 8192
196
+ },
197
+ "public": true
198
+ },
199
+ {
200
+ "name": "public/download",
201
+ "methods": [
202
+ "GET"
203
+ ],
204
+ "request": {
205
+ "body": "none"
206
+ },
207
+ "response": "raw",
208
+ "public": true
209
+ },
210
+ {
211
+ "name": "public/verify",
212
+ "methods": [
213
+ "POST"
214
+ ],
215
+ "request": {
216
+ "body": "json",
217
+ "maxBytes": 8192
218
+ },
219
+ "public": true
220
+ },
221
+ {
222
+ "name": "public/receipts/lookup",
223
+ "methods": [
224
+ "POST"
225
+ ],
226
+ "request": {
227
+ "body": "json",
228
+ "maxBytes": 8192
229
+ },
230
+ "public": true
231
+ },
232
+ {
233
+ "name": "public/templates/catalog",
234
+ "methods": [
235
+ "POST"
236
+ ],
237
+ "request": {
238
+ "body": "json",
239
+ "maxBytes": 65536
240
+ },
241
+ "public": true
242
+ },
243
+ {
244
+ "name": "public/self-serve/start",
245
+ "methods": [
246
+ "POST"
247
+ ],
248
+ "request": {
249
+ "body": "json",
250
+ "maxBytes": 65536
251
+ },
252
+ "public": true
253
+ },
254
+ "admin",
255
+ "templates/create",
256
+ "templates/update",
257
+ "templates/get",
258
+ "templates/list",
259
+ "templates/archive",
260
+ "envelopes/create",
261
+ "envelopes/send",
262
+ "envelopes/get",
263
+ "envelopes/list",
264
+ "envelopes/resend",
265
+ "envelopes/void",
266
+ "outbox/status",
267
+ "pro/licence",
268
+ "pro/envelopes/send",
269
+ "pro/templates/self-serve",
270
+ "pro/bulk/start",
271
+ "pro/pdf-templates/upload",
272
+ "pro/pdf-templates/update",
273
+ "pro/pdf-templates/send",
274
+ {
275
+ "name": "pro/mcp/templates",
276
+ "permission": "plugins:manage"
277
+ },
278
+ {
279
+ "name": "pro/mcp/send",
280
+ "permission": "plugins:manage"
281
+ },
282
+ {
283
+ "name": "pro/mcp/status",
284
+ "permission": "plugins:manage"
285
+ },
286
+ {
287
+ "name": "pro/mcp/remind",
288
+ "permission": "plugins:manage"
289
+ },
290
+ {
291
+ "name": "pro/mcp/void",
292
+ "permission": "plugins:manage"
293
+ }
294
+ ],
295
+ "mcp": {
296
+ "tools": [
297
+ {
298
+ "name": "listTemplates",
299
+ "description": "List the e-sign templates by name: id, name, current version and status. Pass status \"archived\" for archived ones.",
300
+ "route": "pro/mcp/templates",
301
+ "permission": "plugins:manage",
302
+ "destructive": false,
303
+ "inputSchema": {
304
+ "type": "object",
305
+ "properties": {
306
+ "status": {
307
+ "type": "string",
308
+ "enum": [
309
+ "active",
310
+ "archived"
311
+ ]
312
+ }
313
+ },
314
+ "additionalProperties": false
315
+ }
316
+ },
317
+ {
318
+ "name": "sendForSignature",
319
+ "description": "Send a template for signature. Each signer is emailed a signing link. One signer: the envelope is created as a draft and sent within a minute. 2-10 signers sign in parallel (default) or in order (routing \"sequential\").",
320
+ "route": "pro/mcp/send",
321
+ "permission": "plugins:manage",
322
+ "destructive": false,
323
+ "inputSchema": {
324
+ "type": "object",
325
+ "properties": {
326
+ "templateId": {
327
+ "type": "string",
328
+ "description": "From listTemplates."
329
+ },
330
+ "templateVersion": {
331
+ "type": "integer",
332
+ "minimum": 1,
333
+ "description": "A pinned version; default the current one."
334
+ },
335
+ "title": {
336
+ "type": "string",
337
+ "description": "Envelope title (optional)."
338
+ },
339
+ "fields": {
340
+ "type": "object",
341
+ "additionalProperties": {
342
+ "type": "string"
343
+ },
344
+ "description": "Values for the template's {{placeholders}}."
345
+ },
346
+ "signers": {
347
+ "type": "array",
348
+ "minItems": 1,
349
+ "maxItems": 10,
350
+ "items": {
351
+ "type": "object",
352
+ "properties": {
353
+ "name": {
354
+ "type": "string"
355
+ },
356
+ "email": {
357
+ "type": "string"
358
+ }
359
+ },
360
+ "required": [
361
+ "name",
362
+ "email"
363
+ ],
364
+ "additionalProperties": false
365
+ }
366
+ },
367
+ "routing": {
368
+ "type": "string",
369
+ "enum": [
370
+ "parallel",
371
+ "sequential"
372
+ ]
373
+ }
374
+ },
375
+ "required": [
376
+ "templateId",
377
+ "signers"
378
+ ],
379
+ "additionalProperties": false
380
+ }
381
+ },
382
+ {
383
+ "name": "getEnvelopeStatus",
384
+ "description": "An envelope's status (draft, sent, in_progress, completed, declined, voided, expired), dates and each signer's status, with a short-lived signed PDF link once completed.",
385
+ "route": "pro/mcp/status",
386
+ "permission": "plugins:manage",
387
+ "destructive": false,
388
+ "inputSchema": {
389
+ "type": "object",
390
+ "properties": {
391
+ "id": {
392
+ "type": "string",
393
+ "minLength": 1,
394
+ "maxLength": 100,
395
+ "description": "The envelope id."
396
+ }
397
+ },
398
+ "required": [
399
+ "id"
400
+ ],
401
+ "additionalProperties": false
402
+ }
403
+ },
404
+ {
405
+ "name": "remindSigners",
406
+ "description": "Email the next pending signer a reminder with a fresh signing link (the old link stops working). One signer per call; `remaining` says how many more are due. A signer is reminded at most once an hour.",
407
+ "route": "pro/mcp/remind",
408
+ "permission": "plugins:manage",
409
+ "destructive": false,
410
+ "inputSchema": {
411
+ "type": "object",
412
+ "properties": {
413
+ "id": {
414
+ "type": "string",
415
+ "minLength": 1,
416
+ "maxLength": 100,
417
+ "description": "The envelope id."
418
+ }
419
+ },
420
+ "required": [
421
+ "id"
422
+ ],
423
+ "additionalProperties": false
424
+ }
425
+ },
426
+ {
427
+ "name": "voidEnvelope",
428
+ "description": "Void an open envelope: its signing links stop working at once. This cannot be undone.",
429
+ "route": "pro/mcp/void",
430
+ "permission": "plugins:manage",
431
+ "destructive": true,
432
+ "inputSchema": {
433
+ "type": "object",
434
+ "properties": {
435
+ "id": {
436
+ "type": "string",
437
+ "minLength": 1,
438
+ "maxLength": 100,
439
+ "description": "The envelope id."
440
+ }
441
+ },
442
+ "required": [
443
+ "id"
444
+ ],
445
+ "additionalProperties": false
446
+ }
447
+ }
448
+ ]
449
+ },
450
+ "admin": {
451
+ "settingsSchema": {
452
+ "senderName": {
453
+ "label": "Sender name",
454
+ "description": "Shown as the sender of signing emails.",
455
+ "type": "string"
456
+ },
457
+ "consentVersion": {
458
+ "label": "Consent version",
459
+ "description": "Recorded with every signature; bump when the wording changes.",
460
+ "type": "string",
461
+ "default": "1"
462
+ },
463
+ "consentWording": {
464
+ "label": "Consent wording",
465
+ "description": "Shown to signers before they sign.",
466
+ "type": "string",
467
+ "default": "I agree to use electronic records and an electronic signature for this document.",
468
+ "multiline": true
469
+ },
470
+ "expiryDays": {
471
+ "label": "Envelope expiry (days)",
472
+ "type": "number",
473
+ "default": 30,
474
+ "min": 1,
475
+ "max": 365
476
+ },
477
+ "reminderCadenceDays": {
478
+ "label": "Reminder cadence (days)",
479
+ "description": "Pro: automatic reminders.",
480
+ "type": "number",
481
+ "default": 3,
482
+ "min": 1,
483
+ "max": 30
484
+ },
485
+ "otpDefault": {
486
+ "label": "Require email code by default",
487
+ "description": "Pro: one-time code before signing.",
488
+ "type": "boolean",
489
+ "default": false
490
+ },
491
+ "otpContractTemplates": {
492
+ "label": "Require email code for contract templates",
493
+ "description": "Pro.",
494
+ "type": "boolean",
495
+ "default": true
496
+ },
497
+ "retentionPersonalDataMonths": {
498
+ "label": "Keep personal data (months)",
499
+ "type": "number",
500
+ "default": 12,
501
+ "min": 1,
502
+ "max": 120
503
+ },
504
+ "retentionSignedRecordsYears": {
505
+ "label": "Keep signed records (years)",
506
+ "type": "number",
507
+ "default": 7,
508
+ "min": 1,
509
+ "max": 50
510
+ },
511
+ "turnstileSiteKey": {
512
+ "label": "Turnstile site key",
513
+ "type": "string"
514
+ },
515
+ "turnstileSecretKey": {
516
+ "label": "Turnstile secret key",
517
+ "type": "secret"
518
+ },
519
+ "integrationMasterKey": {
520
+ "label": "Integration master key",
521
+ "description": "Client secrets are derived from this key; it is never shown again.",
522
+ "type": "secret"
523
+ },
524
+ "licenceKey": {
525
+ "label": "Pro licence key",
526
+ "description": "The semics1. key from your purchase email. Not needed on local or preview hosts. Stored encrypted.",
527
+ "type": "secret"
528
+ }
529
+ },
530
+ "pages": [
531
+ {
532
+ "path": "/envelopes",
533
+ "label": "Envelopes",
534
+ "icon": "file"
535
+ },
536
+ {
537
+ "path": "/templates",
538
+ "label": "Templates",
539
+ "icon": "file-text"
540
+ },
541
+ {
542
+ "path": "/integrations",
543
+ "label": "Integrations",
544
+ "icon": "link"
545
+ },
546
+ {
547
+ "path": "/settings",
548
+ "label": "Settings",
549
+ "icon": "gear"
550
+ },
551
+ {
552
+ "path": "/bulk",
553
+ "label": "Bulk send",
554
+ "icon": "users"
555
+ },
556
+ {
557
+ "path": "/self-serve",
558
+ "label": "Self-serve forms",
559
+ "icon": "globe"
560
+ },
561
+ {
562
+ "path": "/pdf-templates",
563
+ "label": "PDF templates",
564
+ "icon": "file"
565
+ }
566
+ ],
567
+ "widgets": []
568
+ }
569
+ }
@@ -0,0 +1,7 @@
1
+ import { SandboxedPlugin } from "emdash/plugin";
2
+
3
+ //#region src/plugin.d.ts
4
+ declare const licence: undefined;
5
+ declare const _default: SandboxedPlugin;
6
+ //#endregion
7
+ export { _default as default, licence };