@ganju/utils 0.0.17 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/constants.d.ts +8 -0
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +21 -4
  4. package/dist/crypto.d.ts +2 -2
  5. package/dist/crypto.d.ts.map +1 -1
  6. package/dist/crypto.js +1 -0
  7. package/dist/customCodeToken.d.ts +4 -0
  8. package/dist/customCodeToken.d.ts.map +1 -1
  9. package/dist/customCodeToken.js +9 -1
  10. package/dist/data.d.ts +2 -0
  11. package/dist/data.d.ts.map +1 -1
  12. package/dist/data.js +28 -1
  13. package/dist/dataApi.d.ts +133 -1
  14. package/dist/dataApi.d.ts.map +1 -1
  15. package/dist/dataApi.js +62 -1
  16. package/dist/dataDdl.d.ts.map +1 -1
  17. package/dist/dataDdl.js +3 -1
  18. package/dist/dataEngine.d.ts.map +1 -1
  19. package/dist/dataEngine.js +62 -0
  20. package/dist/dataRpc.d.ts +25 -0
  21. package/dist/dataRpc.d.ts.map +1 -1
  22. package/dist/dataTriggers.d.ts +203 -0
  23. package/dist/dataTriggers.d.ts.map +1 -0
  24. package/dist/dataTriggers.js +760 -0
  25. package/dist/dataTypes.d.ts +1 -0
  26. package/dist/dataTypes.d.ts.map +1 -1
  27. package/dist/index.d.ts +198 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +27 -0
  30. package/dist/localizeDataError.d.ts +18 -0
  31. package/dist/localizeDataError.d.ts.map +1 -0
  32. package/dist/localizeDataError.js +359 -0
  33. package/dist/schema.d.ts +161 -0
  34. package/dist/schema.d.ts.map +1 -1
  35. package/dist/schema.js +146 -1
  36. package/dist/sdkConstants.d.ts +3 -0
  37. package/dist/sdkConstants.d.ts.map +1 -1
  38. package/dist/sdkConstants.js +4 -1
  39. package/dist/whatsappTemplates.d.ts +77 -0
  40. package/dist/whatsappTemplates.d.ts.map +1 -0
  41. package/dist/whatsappTemplates.js +402 -0
  42. package/package.json +1 -1
  43. package/src/constants.ts +28 -4
  44. package/src/crypto.ts +3 -2
  45. package/src/customCodeToken.ts +14 -1
  46. package/src/data.ts +40 -0
  47. package/src/dataApi.ts +78 -2
  48. package/src/dataDdl.ts +3 -1
  49. package/src/dataEngine.ts +70 -0
  50. package/src/dataRpc.ts +15 -0
  51. package/src/dataTriggers.ts +1134 -0
  52. package/src/dataTypes.ts +3 -0
  53. package/src/index.ts +65 -1
  54. package/src/localizeDataError.ts +593 -0
  55. package/src/schema.ts +170 -1
  56. package/src/sdkConstants.ts +3 -0
  57. package/src/whatsappTemplates.ts +465 -0
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAokCxB,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGrB,CAAC;AAyDN,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4CpB,CAAC;AAWH,QAAA,MAAM,kBAAkB;;;;;;;;;;iBA+CtB,CAAC;AAqCH,QAAA,MAAM,gBAAgB;;;;;kBAOX,CAAC;AAEZ,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwBpB,CAAC;AAYH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCxB,CAAC;AAqPH,QAAA,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4DpC,CAAC;AA4BL,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAkDzB,CAAC;AAuHH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJlB,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAG1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAIlE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMtE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAGtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIvE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,kCAAkC,CAC1C,CAAC;AAKF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IAIrB,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;CAChD;AAKD,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC1E;AAMD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACzC,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACtC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+oCxB,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGrB,CAAC;AAyDN,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4CpB,CAAC;AAWH,QAAA,MAAM,kBAAkB;;;;;;;;;;iBA+CtB,CAAC;AAqCH,QAAA,MAAM,gBAAgB;;;;;kBAOX,CAAC;AAEZ,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BpB,CAAC;AAYH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCxB,CAAC;AAyQH,QAAA,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4DpC,CAAC;AA4BL,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAkDzB,CAAC;AA6KH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/dist/schema.js CHANGED
@@ -11,6 +11,7 @@ const slugifyTitle_1 = require("./slugifyTitle");
11
11
  const toolConfirmation_1 = require("./toolConfirmation");
12
12
  const channelCustomer_1 = require("./channelCustomer");
13
13
  const dataTypes_1 = require("./dataTypes");
14
+ const whatsappTemplates_1 = require("./whatsappTemplates");
14
15
  // A prompt title becomes a slash command; it must not collide with a command
15
16
  // the channel runner handles itself (e.g. `/link`).
16
17
  const PROMPT_TITLE = zod_1.z
@@ -638,12 +639,71 @@ const DATA_QUERY_RUN_BODY = zod_1.z.strictObject({
638
639
  limit: zod_1.z.number().int().min(1).max(500).optional(),
639
640
  timeZone: zod_1.z.string().max(100).optional()
640
641
  });
642
+ // A trigger, as the dashboard, the API and ganju.json's "triggers" write it:
643
+ // a table, an event, an optional condition and exactly one action. The
644
+ // object checks the rest (columns, fields used in texts) against the schema.
645
+ const DATA_TRIGGER_NAME = zod_1.z
646
+ .string()
647
+ .regex(/^[a-z][a-z0-9_-]{0,62}$/, 'Lowercase letters, digits, _ and -, starting with a letter');
648
+ const DATA_TRIGGER_TEMPLATE = zod_1.z.strictObject({
649
+ name: zod_1.z.string().min(1).max(512),
650
+ language: zod_1.z.string().min(1).max(20),
651
+ // Each {{n}} of the template in order: fixed text or a {{field}} of the row.
652
+ params: zod_1.z.array(zod_1.z.string().max(1024)).max(20).optional()
653
+ });
654
+ const DATA_TRIGGER_INPUT = zod_1.z.strictObject({
655
+ name: DATA_TRIGGER_NAME.optional(),
656
+ description: zod_1.z.string().max(300).nullish(),
657
+ table: DATA_IDENTIFIER,
658
+ on: zod_1.z.enum(['insert', 'update', 'delete']),
659
+ // { column: { changedTo | changedFrom | equals: value, changed: true } },
660
+ // combined with { all: [...] } or { any: [...] }.
661
+ when: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullish(),
662
+ enabled: zod_1.z.boolean().optional(),
663
+ // false: refuse to save over an existing trigger of this name.
664
+ replace: zod_1.z.boolean().optional(),
665
+ // Runs a minute; past it events wait in the queue. 60 by default.
666
+ rateLimit: zod_1.z.number().int().min(1).max(600).optional(),
667
+ function: zod_1.z.string().min(1).max(64).optional(),
668
+ webhook: zod_1.z.url().max(2000).optional(),
669
+ chat: zod_1.z
670
+ .strictObject({
671
+ channelId: zod_1.z.string().min(1).max(100),
672
+ chatId: zod_1.z.union([zod_1.z.string().min(1).max(200), zod_1.z.number().int()]),
673
+ text: zod_1.z.string().min(1).max(2000)
674
+ })
675
+ .optional(),
676
+ email: zod_1.z
677
+ .strictObject({
678
+ to: zod_1.z.union([zod_1.z.email(), zod_1.z.array(zod_1.z.email()).min(1).max(10)]),
679
+ subject: zod_1.z.string().min(1).max(200).optional(),
680
+ text: zod_1.z.string().min(1).max(2000)
681
+ })
682
+ .optional(),
683
+ customer: zod_1.z
684
+ .strictObject({
685
+ text: zod_1.z.string().min(1).max(2000),
686
+ template: DATA_TRIGGER_TEMPLATE.optional()
687
+ })
688
+ .optional()
689
+ });
690
+ const DATA_TRIGGER_PATCH = zod_1.z.strictObject({ enabled: zod_1.z.boolean() });
691
+ const DATA_TRIGGER_DEPLOY_BODY = zod_1.z.strictObject({
692
+ triggers: zod_1.z.array(DATA_TRIGGER_INPUT).max(50)
693
+ });
694
+ const DATA_TRIGGER_RUN_LIST_QUERY = zod_1.z.object({
695
+ limit: zod_1.z.coerce.number().int().min(1).max(50).optional()
696
+ });
641
697
  const DATA_TABLE_PARAMS = DATA_DATABASE_GET.extend({ table: DATA_IDENTIFIER });
642
698
  const DATA_COLUMN_PARAMS = DATA_TABLE_PARAMS.extend({
643
699
  column: DATA_IDENTIFIER
644
700
  });
645
701
  const DATA_ROW_PARAMS = DATA_TABLE_PARAMS.extend({ id: DATA_ROW_ID });
646
702
  const DATA_QUERY_PATH_PARAMS = DATA_DATABASE_GET.extend({ name: DATA_IDENTIFIER });
703
+ const DATA_TRIGGER_PATH_PARAMS = DATA_DATABASE_GET.extend({ name: DATA_TRIGGER_NAME });
704
+ const DATA_TRIGGER_RUN_PARAMS = DATA_TRIGGER_PATH_PARAMS.extend({
705
+ runId: zod_1.z.string().min(1).max(64)
706
+ });
647
707
  const ARTIFACT_UPLOAD_RESOURCE_FILE = zod_1.z.object({
648
708
  resourceId: zod_1.z.uuid(),
649
709
  projectId: zod_1.z.uuid(),
@@ -1197,12 +1257,18 @@ const CUSTOM_CODE_TOOL = zod_1.z.object({
1197
1257
  // is the owner's code. Narrowing matters most for a function a channel bot
1198
1258
  // calls after reading customer text, and the broker enforces it, since
1199
1259
  // anything in the script can be edited.
1260
+ // false: deployed and run by triggers, but never offered to the assistant
1261
+ // (left out of tools/list, and not counted toward its tools).
1262
+ expose: zod_1.z.boolean().optional(),
1200
1263
  data: zod_1.z
1201
1264
  .strictObject({
1202
1265
  access: zod_1.z.enum(['read', 'write']).optional(),
1203
1266
  tables: zod_1.z.array(zod_1.z.string().min(1).max(63)).max(50).optional()
1204
1267
  })
1205
- .optional()
1268
+ .optional(),
1269
+ // true: the function may message customers and chats through ctx.channels.
1270
+ // Left out, the broker refuses it.
1271
+ channels: zod_1.z.boolean().optional()
1206
1272
  });
1207
1273
  // The manifest a `ganju deploy` (or the dashboard) uploads alongside a bundle.
1208
1274
  // Names must be unique within one script: apps/mcp registers them into a single
@@ -1437,6 +1503,25 @@ const CUSTOM_CODE_BROKER_DATA = zod_1.z.object({
1437
1503
  op: zod_1.z.enum(['describe', 'query', 'write', 'run']),
1438
1504
  args: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).default({})
1439
1505
  });
1506
+ // ctx.channels: a message to a customer the bot has spoken with, or a post
1507
+ // to a chat the bot is in. `call` names the function, as for ctx.data.
1508
+ const CUSTOM_CODE_BROKER_CHANNELS_SEND = zod_1.z.object({
1509
+ call: zod_1.z.string().min(1).max(4000),
1510
+ participantId: zod_1.z.string().min(1).max(100),
1511
+ text: zod_1.z.string().min(1).max(4000).optional(),
1512
+ template: DATA_TRIGGER_TEMPLATE.optional()
1513
+ });
1514
+ // ctx.channels.templates: the approved WhatsApp templates of the project's
1515
+ // channels.
1516
+ const CUSTOM_CODE_BROKER_CHANNELS_TEMPLATES = zod_1.z.object({
1517
+ call: zod_1.z.string().min(1).max(4000)
1518
+ });
1519
+ const CUSTOM_CODE_BROKER_CHANNELS_POST = zod_1.z.object({
1520
+ call: zod_1.z.string().min(1).max(4000),
1521
+ channelId: zod_1.z.string().min(1).max(100),
1522
+ chatId: zod_1.z.union([zod_1.z.string().min(1).max(200), zod_1.z.number().int()]),
1523
+ text: zod_1.z.string().min(1).max(4000)
1524
+ });
1440
1525
  const CUSTOM_CODE_BROKER_RESOURCE_SEARCH = zod_1.z.object({
1441
1526
  query: zod_1.z.string().min(1).max(2000),
1442
1527
  limit: zod_1.z.number().int().positive().max(20).default(5)
@@ -1654,6 +1739,52 @@ const CHANNEL_LIST_MESSAGES = zod_1.z.object({
1654
1739
  userId: zod_1.z.uuid(),
1655
1740
  organizationId: zod_1.z.uuid()
1656
1741
  });
1742
+ const CHANNEL_WHATSAPP_PARAMS = zod_1.z.object({
1743
+ channelId: zod_1.z.uuid(),
1744
+ projectId: zod_1.z.uuid(),
1745
+ userId: zod_1.z.uuid(),
1746
+ organizationId: zod_1.z.uuid()
1747
+ });
1748
+ // A new access token, the business account's id, or both, for a WhatsApp
1749
+ // channel's message templates. The rest of its credentials stay as they are.
1750
+ const CHANNEL_WHATSAPP_ACCOUNT = zod_1.z
1751
+ .strictObject({
1752
+ accessToken: zod_1.z.string().trim().min(20).max(2000).optional(),
1753
+ businessAccountId: zod_1.z
1754
+ .string()
1755
+ .trim()
1756
+ .regex(/^\d{5,30}$/, 'The business account id is a number')
1757
+ .optional()
1758
+ })
1759
+ .refine(v => v.accessToken !== undefined || v.businessAccountId !== undefined, 'Give a new access token, the business account id, or both');
1760
+ // A WhatsApp message template as the dashboard writes it. Meta's own rules
1761
+ // are checked with checkWhatsappTemplate before it is sent for review.
1762
+ const CHANNEL_WHATSAPP_TEMPLATE_CONTENT = zod_1.z.strictObject({
1763
+ category: zod_1.z.enum(whatsappTemplates_1.WHATSAPP_TEMPLATE_CATEGORIES),
1764
+ header: zod_1.z.string().max(whatsappTemplates_1.WHATSAPP_TEMPLATE_HEADER_MAX).nullish(),
1765
+ body: zod_1.z.string().trim().min(1).max(whatsappTemplates_1.WHATSAPP_TEMPLATE_BODY_MAX),
1766
+ footer: zod_1.z.string().max(whatsappTemplates_1.WHATSAPP_TEMPLATE_FOOTER_MAX).nullish(),
1767
+ buttons: zod_1.z
1768
+ .array(zod_1.z.string().max(whatsappTemplates_1.WHATSAPP_TEMPLATE_BUTTON_MAX))
1769
+ .max(whatsappTemplates_1.WHATSAPP_TEMPLATE_BUTTONS_MAX)
1770
+ .optional(),
1771
+ // {{n}}'s example value and label are at n - 1.
1772
+ examples: zod_1.z
1773
+ .array(zod_1.z.string().max(whatsappTemplates_1.WHATSAPP_TEMPLATE_EXAMPLE_MAX))
1774
+ .max(whatsappTemplates_1.WHATSAPP_TEMPLATE_VARIABLES_MAX)
1775
+ .optional(),
1776
+ labels: zod_1.z
1777
+ .array(zod_1.z.string().max(whatsappTemplates_1.WHATSAPP_TEMPLATE_LABEL_MAX))
1778
+ .max(whatsappTemplates_1.WHATSAPP_TEMPLATE_VARIABLES_MAX)
1779
+ .optional()
1780
+ });
1781
+ const CHANNEL_WHATSAPP_TEMPLATE_CREATE = CHANNEL_WHATSAPP_TEMPLATE_CONTENT.extend({
1782
+ name: zod_1.z.string().trim().min(1).max(whatsappTemplates_1.WHATSAPP_TEMPLATE_NAME_MAX),
1783
+ language: zod_1.z.string().trim().min(2).max(10)
1784
+ });
1785
+ const CHANNEL_WHATSAPP_TEMPLATE_PARAMS = CHANNEL_WHATSAPP_PARAMS.extend({
1786
+ templateId: zod_1.z.uuid()
1787
+ });
1657
1788
  const CHANNEL_CREATE_VIEW = CHANNEL_CREATE.omit({
1658
1789
  projectId: true,
1659
1790
  userId: true,
@@ -1769,6 +1900,12 @@ exports.Schema = {
1769
1900
  DATA_QUERY_INPUT,
1770
1901
  DATA_QUERY_RUN_BODY,
1771
1902
  DATA_QUERY_PATH_PARAMS,
1903
+ DATA_TRIGGER_INPUT,
1904
+ DATA_TRIGGER_PATCH,
1905
+ DATA_TRIGGER_DEPLOY_BODY,
1906
+ DATA_TRIGGER_RUN_LIST_QUERY,
1907
+ DATA_TRIGGER_PATH_PARAMS,
1908
+ DATA_TRIGGER_RUN_PARAMS,
1772
1909
  DATA_COLUMN_PARAMS,
1773
1910
  DATA_ROW_PARAMS,
1774
1911
  ARTIFACT_REMOVE_RESOURCE,
@@ -1805,6 +1942,11 @@ exports.Schema = {
1805
1942
  CHANNEL_REMOVE,
1806
1943
  CHANNEL_LIST_CONVERSATIONS,
1807
1944
  CHANNEL_LIST_MESSAGES,
1945
+ CHANNEL_WHATSAPP_PARAMS,
1946
+ CHANNEL_WHATSAPP_ACCOUNT,
1947
+ CHANNEL_WHATSAPP_TEMPLATE_CREATE,
1948
+ CHANNEL_WHATSAPP_TEMPLATE_CONTENT,
1949
+ CHANNEL_WHATSAPP_TEMPLATE_PARAMS,
1808
1950
  ARTIFACT_UPDATE_RESOURCE_SHOW_SOURCE,
1809
1951
  ARTIFACT_UPDATE_RESOURCE_SYNC_INTERVAL,
1810
1952
  ARTIFACT_SYNC_RESOURCE,
@@ -1833,6 +1975,9 @@ exports.Schema = {
1833
1975
  CUSTOM_CODE_BROKER_CONNECTION,
1834
1976
  CUSTOM_CODE_BROKER_SECRET,
1835
1977
  CUSTOM_CODE_BROKER_DATA,
1978
+ CUSTOM_CODE_BROKER_CHANNELS_SEND,
1979
+ CUSTOM_CODE_BROKER_CHANNELS_POST,
1980
+ CUSTOM_CODE_BROKER_CHANNELS_TEMPLATES,
1836
1981
  CUSTOM_CODE_BROKER_RESOURCE_SEARCH,
1837
1982
  CUSTOM_CODE_BROKER_RESOURCE_READ,
1838
1983
  CUSTOM_CODE_BROKER_RESOURCE_CREATE,
@@ -10,6 +10,9 @@ export declare const CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = "/resources/crea
10
10
  export declare const CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = "/resources/delete";
11
11
  export declare const CUSTOM_CODE_BROKER_PATH_SEND_FILE = "/send-file";
12
12
  export declare const CUSTOM_CODE_BROKER_PATH_DATA = "/data";
13
+ export declare const CUSTOM_CODE_BROKER_PATH_CHANNELS_SEND = "/channels/send";
14
+ export declare const CUSTOM_CODE_BROKER_PATH_CHANNELS_POST = "/channels/post";
15
+ export declare const CUSTOM_CODE_BROKER_PATH_CHANNELS_TEMPLATES = "/channels/templates";
13
16
  export declare const CUSTOM_CODE_BINDING_VERSION = "GANJU_SCRIPT_VERSION";
14
17
  export declare const CUSTOM_CODE_HEALTH_TOOL = "__ganju_health";
15
18
  export declare const CUSTOM_CODE_MAX_LOGS = 50;
@@ -1 +1 @@
1
- {"version":3,"file":"sdkConstants.d.ts","sourceRoot":"","sources":["../src/sdkConstants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAC5D,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAKzD,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AACzE,eAAO,MAAM,kCAAkC,gBAAgB,CAAC;AAChE,eAAO,MAAM,8BAA8B,YAAY,CAAC;AACxD,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,iCAAiC,eAAe,CAAC;AAC9D,eAAO,MAAM,4BAA4B,UAAU,CAAC;AAYpD,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAOlE,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAKxD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,0BAA0B,OAAQ,CAAC"}
1
+ {"version":3,"file":"sdkConstants.d.ts","sourceRoot":"","sources":["../src/sdkConstants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAC5D,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAKzD,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AACzE,eAAO,MAAM,kCAAkC,gBAAgB,CAAC;AAChE,eAAO,MAAM,8BAA8B,YAAY,CAAC;AACxD,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,sCAAsC,oBAAoB,CAAC;AACxE,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,wCAAwC,sBAAsB,CAAC;AAC5E,eAAO,MAAM,iCAAiC,eAAe,CAAC;AAC9D,eAAO,MAAM,4BAA4B,UAAU,CAAC;AACpD,eAAO,MAAM,qCAAqC,mBAAmB,CAAC;AACtE,eAAO,MAAM,qCAAqC,mBAAmB,CAAC;AACtE,eAAO,MAAM,0CAA0C,wBAAwB,CAAC;AAYhF,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAOlE,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAKxD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,0BAA0B,OAAQ,CAAC"}
@@ -11,7 +11,7 @@
11
11
  // The rule for this file: nothing lands here unless the SDK reads it at runtime,
12
12
  // and it imports nothing.
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.CUSTOM_CODE_MAX_LOG_LENGTH = exports.CUSTOM_CODE_MAX_LOGS = exports.CUSTOM_CODE_HEALTH_TOOL = exports.CUSTOM_CODE_BINDING_VERSION = exports.CUSTOM_CODE_BROKER_PATH_DATA = exports.CUSTOM_CODE_BROKER_PATH_SEND_FILE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_LIST = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_READ = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_SEARCH = exports.CUSTOM_CODE_BROKER_PATH_SECRET = exports.CUSTOM_CODE_BROKER_PATH_CONNECTION = exports.CUSTOM_CODE_BROKER_ORIGIN = exports.CUSTOM_CODE_BINDING_BROKER = exports.CUSTOM_CODE_BINDING_TOKEN = void 0;
14
+ exports.CUSTOM_CODE_MAX_LOG_LENGTH = exports.CUSTOM_CODE_MAX_LOGS = exports.CUSTOM_CODE_HEALTH_TOOL = exports.CUSTOM_CODE_BINDING_VERSION = exports.CUSTOM_CODE_BROKER_PATH_CHANNELS_TEMPLATES = exports.CUSTOM_CODE_BROKER_PATH_CHANNELS_POST = exports.CUSTOM_CODE_BROKER_PATH_CHANNELS_SEND = exports.CUSTOM_CODE_BROKER_PATH_DATA = exports.CUSTOM_CODE_BROKER_PATH_SEND_FILE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_LIST = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_READ = exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_SEARCH = exports.CUSTOM_CODE_BROKER_PATH_SECRET = exports.CUSTOM_CODE_BROKER_PATH_CONNECTION = exports.CUSTOM_CODE_BROKER_ORIGIN = exports.CUSTOM_CODE_BINDING_BROKER = exports.CUSTOM_CODE_BINDING_TOKEN = void 0;
15
15
  // Bindings injected into every user script at upload time. The token is a
16
16
  // secret_text binding rotated on each publish; the broker is a service binding.
17
17
  // Names are part of the SDK's contract with the script, so they can't be
@@ -31,6 +31,9 @@ exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_CREATE = '/resources/create';
31
31
  exports.CUSTOM_CODE_BROKER_PATH_RESOURCES_DELETE = '/resources/delete';
32
32
  exports.CUSTOM_CODE_BROKER_PATH_SEND_FILE = '/send-file';
33
33
  exports.CUSTOM_CODE_BROKER_PATH_DATA = '/data';
34
+ exports.CUSTOM_CODE_BROKER_PATH_CHANNELS_SEND = '/channels/send';
35
+ exports.CUSTOM_CODE_BROKER_PATH_CHANNELS_POST = '/channels/post';
36
+ exports.CUSTOM_CODE_BROKER_PATH_CHANNELS_TEMPLATES = '/channels/templates';
34
37
  // Injected at upload time and echoed back by the health probe below. Uploading a
35
38
  // script into the dispatch namespace is not read-your-writes: dispatching to the
36
39
  // name immediately afterwards can still reach the previous edition. Tool names
@@ -0,0 +1,77 @@
1
+ export declare const WHATSAPP_TEMPLATE_CATEGORIES: readonly ["UTILITY", "MARKETING"];
2
+ export type WhatsappTemplateCategory = (typeof WHATSAPP_TEMPLATE_CATEGORIES)[number];
3
+ export declare const WHATSAPP_TEMPLATE_STATUS_APPROVED = "APPROVED";
4
+ export declare const WHATSAPP_TEMPLATE_STATUSES_WAITING: string[];
5
+ export declare const WHATSAPP_TEMPLATE_STATUSES_STOPPED: string[];
6
+ export declare const WHATSAPP_TEMPLATE_NAME_MAX = 512;
7
+ export declare const WHATSAPP_TEMPLATE_BODY_MAX = 1024;
8
+ export declare const WHATSAPP_TEMPLATE_HEADER_MAX = 60;
9
+ export declare const WHATSAPP_TEMPLATE_FOOTER_MAX = 60;
10
+ export declare const WHATSAPP_TEMPLATE_BUTTON_MAX = 25;
11
+ export declare const WHATSAPP_TEMPLATE_BUTTONS_MAX = 10;
12
+ export declare const WHATSAPP_TEMPLATE_VARIABLES_MAX = 20;
13
+ export declare const WHATSAPP_TEMPLATE_LABEL_MAX = 40;
14
+ export declare const WHATSAPP_TEMPLATE_EXAMPLE_MAX = 200;
15
+ export declare const WHATSAPP_TEMPLATE_LANGUAGES: {
16
+ code: string;
17
+ name: string;
18
+ }[];
19
+ /** A template as the owner writes it. `examples[i]` and `labels[i]` are {{i+1}}'s. */
20
+ export interface WhatsappTemplateDraft {
21
+ name: string;
22
+ language: string;
23
+ category: WhatsappTemplateCategory;
24
+ header?: string | null;
25
+ body: string;
26
+ footer?: string | null;
27
+ buttons?: string[];
28
+ examples?: string[];
29
+ labels?: string[];
30
+ }
31
+ /** A template's text, read back from Meta's components. */
32
+ export interface WhatsappTemplateContent {
33
+ header: string | null;
34
+ body: string;
35
+ footer: string | null;
36
+ buttons: string[];
37
+ examples: string[];
38
+ }
39
+ export type WhatsappTemplateIssueCode = 'name_format' | 'name_long' | 'language' | 'category' | 'body_empty' | 'body_long' | 'header_long' | 'header_variables' | 'header_lines' | 'footer_long' | 'footer_variables' | 'button_empty' | 'button_long' | 'button_variables' | 'buttons_many' | 'buttons_repeated' | 'variables_many' | 'variables_order' | 'variable_at_start' | 'variable_at_end' | 'variables_adjacent' | 'variables_dense' | 'example_missing';
40
+ export interface WhatsappTemplateIssue {
41
+ code: WhatsappTemplateIssueCode;
42
+ n?: number;
43
+ }
44
+ /** Each {{n}} in the text, in the order they appear. */
45
+ export declare const whatsappTemplateVariables: (text: string) => number[];
46
+ /** How many variables the body has: its highest {{n}}. */
47
+ export declare const whatsappTemplateVariableCount: (body: string) => number;
48
+ /**
49
+ * The rules Meta rejects templates for most often, checked before sending
50
+ * one for review. Meta's review has the last word; this only catches the
51
+ * common mistakes early.
52
+ */
53
+ export declare const checkWhatsappTemplate: (draft: WhatsappTemplateDraft) => WhatsappTemplateIssue[];
54
+ export declare const whatsappTemplateIssueText: (issue: WhatsappTemplateIssue) => string;
55
+ /** The components Meta's create and edit calls take. */
56
+ export declare const whatsappTemplateComponents: (draft: WhatsappTemplateDraft) => Record<string, unknown>[];
57
+ /** A template's text, from the components Meta returns. */
58
+ export declare const whatsappTemplateContent: (components: unknown) => WhatsappTemplateContent;
59
+ /**
60
+ * Whether Ganju can send it: it fills the body's variables only. A media
61
+ * header, a header variable, or a button that takes a value (a URL with a
62
+ * variable, a code, a flow) needs more, and Meta refuses the send.
63
+ */
64
+ export declare const whatsappTemplateSendable: (components: unknown) => boolean;
65
+ /** The body with each {{n}} replaced, for previews and the message record. */
66
+ export declare const fillWhatsappTemplate: (body: string, values: string[]) => string;
67
+ /**
68
+ * A value for a {{n}} as Meta accepts it: no line breaks or tabs, no long
69
+ * runs of spaces, and never empty.
70
+ */
71
+ export declare const cleanWhatsappTemplateParam: (value: unknown) => string;
72
+ /** A Meta send error as an owner reads it, and whether a retry may help. */
73
+ export declare const whatsappSendError: (code: number | undefined, detail: string | undefined) => {
74
+ text: string;
75
+ retry: boolean;
76
+ };
77
+ //# sourceMappingURL=whatsappTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsappTemplates.d.ts","sourceRoot":"","sources":["../src/whatsappTemplates.ts"],"names":[],"mappings":"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"}