@funnelchat-hq/sandbox 0.5.2 → 0.5.3

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A local server that imitates the Funnelchat public API and sends signed webhooks, with no real effects: nothing goes out to WhatsApp, nothing is charged, everything stays in memory. Build and test your integration without an account.
4
4
 
5
- It comes from the spec the developer portal publishes, v0.6.16: the same operations and events (see [Pending of the spec](#pending-of-the-spec)). What it simulates with state follows production as it was checked on 06-11.
5
+ It comes from the spec the developer portal publishes, v0.6.18: the same operations and events (see [Pending of the spec](#pending-of-the-spec)). What it simulates with state follows production as it was checked on 06-11.
6
6
 
7
7
  ## Try it in 3 minutes, without an account
8
8
 
@@ -129,7 +129,7 @@ npx funnelchat-sandbox
129
129
  ```
130
130
 
131
131
  ```
132
- funnelchat-sandbox 0.5.2 at http://127.0.0.1:4010
132
+ funnelchat-sandbox 0.5.3 at http://127.0.0.1:4010
133
133
  API: http://127.0.0.1:4010/api/v1/... (Authorization: Bearer 1|fc_live_sandbox, or any well-formed key)
134
134
  panel: http://127.0.0.1:4010/_sandbox
135
135
  example numbers: 3 (official, with the 24-hour window) and 4 (QR, no window); contact 2001; template 45
@@ -758,7 +758,7 @@ And at `http://localhost:4010/_sandbox` you see each request and each delivery w
758
758
 
759
759
  ## Pending of the spec
760
760
 
761
- The spec (`spec/funnelchat.json`) is the one the portal publishes, v0.6.16 (https://developers-portal.funnelchat.app/specs/funnelchat.json): only the operations and events the portal shows. **The sandbox offers only that:** a layer corrects shapes where the spec says otherwise than production answers, but never adds an operation or an event (the generator refuses it and says so). The corrections are in two layers, which the next regeneration drops on its own once the spec carries them:
761
+ The spec (`spec/funnelchat.json`) is the one the portal publishes, v0.6.18 (https://developers-portal.funnelchat.app/specs/funnelchat.json): only the operations and events the portal shows. **The sandbox offers only that:** a layer corrects shapes where the spec says otherwise than production answers, but never adds an operation or an event (the generator refuses it and says so). The corrections are in two layers, which the next regeneration drops on its own once the spec carries them:
762
762
 
763
763
  - `spec/pending.json`: the pending layer of the Node SDK (`funnelchat-node` @ `bde8679`), with the corrections of 13-11 made here ahead of the SDK: `answers[].label` of `whatsapp_form.completed` is always a string, `message.type` of `message.received` accepts types the spec does not list yet, and its sources say what portal v0.6.14 shows (its note in `spec/procedencia.json` lists them). Guarded by JSON Pointer conditions: the send answers, `devices/{device}/qr`, the template list, `PUT webhooks/{id}`, and the shapes of the number, group, billing, form and message events. Its entry for `GET groups/actions/{action}` no longer applies: the spec of v0.6.16 carries that answer, and `npm run generate` lists the entry so that the layer drops it.
764
764
  - `spec/pending-sandbox.json`: what the sandbox corrects on top of it, with its sources inside.
@@ -780,7 +780,7 @@ Everything generated comes from a single script:
780
780
  # With a new spec of the portal: always the one it publishes, only the operations and events the portal shows (the
781
781
  # tools are generated only from what the portal publishes). Download it, and say with --origin which version of the
782
782
  # portal it is, for example {"url": "https://developers-portal.funnelchat.app/specs/funnelchat.json",
783
- # "portal_version": "v0.6.16"}; it is the only place the version is written, and spec/procedencia.json keeps it:
783
+ # "portal_version": "v0.6.18"}; it is the only place the version is written, and spec/procedencia.json keeps it:
784
784
  curl -sO https://developers-portal.funnelchat.app/specs/funnelchat.json
785
785
  npm run generate -- --spec funnelchat.json --origin <that JSON>
786
786
 
@@ -805,7 +805,7 @@ What it does:
805
805
 
806
806
  **A handler whose operation is not in the spec is not reached:** the route answers `404 route_not_found`, like a route the API does not have. After a regeneration, `GET /_sandbox/operations` says what has state and what answers [shape only](#with-state-or-shape-only).
807
807
 
808
- **The current spec** is the one the portal publishes, v0.6.16, at https://developers-portal.funnelchat.app/specs/funnelchat.json (sha256 `7db2ead826697c80fd8feef3f0ea556b5374dd3d2cb5e02f3cfe4584af79e33c`), with the common error format of the API: 209 paths, 253 operations and 57 events (56 types: the 55 of the `events` enum and `webhook.test`, which two areas document), in 30 groups: 1 of «Primer uso», 9 of «Funciones de WhatsApp» and 20 of «Funciones de Funnelchat». The detail is in `spec/procedencia.json`.
808
+ **The current spec** is the one the portal publishes, v0.6.18, at https://developers-portal.funnelchat.app/specs/funnelchat.json (sha256 `19e91748ddfe19eef74886264ee984d360417596745e5a900a02a7a831b570a0`), with the common error format of the API: 209 paths, 253 operations and 57 events (56 types: the 55 of the `events` enum and `webhook.test`, which two areas document), in 30 groups: 1 of «Primer uso», 9 of «Funciones de WhatsApp» and 20 of «Funciones de Funnelchat». The detail is in `spec/procedencia.json`.
809
809
 
810
810
  ## Development
811
811
 
@@ -635,7 +635,7 @@ var catalog_default = {
635
635
  type: "mac.usage_80",
636
636
  area: "accounts",
637
637
  status: "active",
638
- description: "La cuenta alcanz\xF3 el 80% de sus contactos activos mensuales del ciclo.",
638
+ description: "La cuenta alcanz\xF3 el 80% de sus contactos activos mensuales del ciclo. `workspace_id` es el workspace al que se rutea el evento, como en todos los eventos: el workspace con facturaci\xF3n propia cuyo pool alcanz\xF3 el umbral, o el workspace por defecto cuando el pool es el de la cuenta.",
639
639
  subscribable: true,
640
640
  example: {
641
641
  id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
@@ -655,7 +655,7 @@ var catalog_default = {
655
655
  type: "mac.usage_100",
656
656
  area: "accounts",
657
657
  status: "active",
658
- description: "La cuenta agot\xF3 sus contactos activos mensuales del ciclo; se abre una gracia de 24 horas cuyo vencimiento viaja en `grace_expires_at`.",
658
+ description: "La cuenta agot\xF3 sus contactos activos mensuales del ciclo; se abre una gracia de 24 horas cuyo vencimiento viaja en `grace_expires_at`. `workspace_id` es el workspace al que se rutea el evento, como en todos los eventos: el workspace con facturaci\xF3n propia cuyo pool se agot\xF3, o el workspace por defecto cuando el pool es el de la cuenta.",
659
659
  subscribable: true,
660
660
  example: {
661
661
  id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
@@ -1148,7 +1148,7 @@ var catalog_default = {
1148
1148
  type: "group.created",
1149
1149
  area: "communities",
1150
1150
  status: "active",
1151
- description: "Se cre\xF3 o se import\xF3 un grupo dentro de una campa\xF1a de la cuenta.",
1151
+ description: "Se cre\xF3 o se import\xF3 un grupo dentro de una campa\xF1a de la cuenta; `source` vale `imported` si el grupo ya exist\xEDa en WhatsApp y entr\xF3 por una importaci\xF3n o una sincronizaci\xF3n, y `created` en cualquier otro caso.",
1152
1152
  subscribable: true,
1153
1153
  example: {
1154
1154
  id: "evt_00000000000000000000000000000001",
@@ -1162,7 +1162,7 @@ var catalog_default = {
1162
1162
  type: "group"
1163
1163
  },
1164
1164
  campaign: {
1165
- uuid: "00000000-0000-4000-8000-000000000001",
1165
+ uuid: "xK9mQz",
1166
1166
  name: "Campa\xF1a de ejemplo"
1167
1167
  },
1168
1168
  source: "created",
@@ -1188,7 +1188,7 @@ var catalog_default = {
1188
1188
  type: "group"
1189
1189
  },
1190
1190
  campaign: {
1191
- uuid: "00000000-0000-4000-8000-000000000001",
1191
+ uuid: "xK9mQz",
1192
1192
  name: "Campa\xF1a de ejemplo"
1193
1193
  },
1194
1194
  reason: "http_404",
@@ -1215,7 +1215,7 @@ var catalog_default = {
1215
1215
  type: "group"
1216
1216
  },
1217
1217
  campaign: {
1218
- uuid: "00000000-0000-4000-8000-000000000001",
1218
+ uuid: "xK9mQz",
1219
1219
  name: "Campa\xF1a de ejemplo"
1220
1220
  },
1221
1221
  invite_link: "https://chat.whatsapp.com/EjemploNuevo0000000000001",
@@ -1323,7 +1323,7 @@ var catalog_default = {
1323
1323
  uid: "120363000000000001@g.us"
1324
1324
  },
1325
1325
  participant: {
1326
- identity: "+5491100000000",
1326
+ identity: "5491100000000",
1327
1327
  identity_type: "phone",
1328
1328
  name: "Ana P\xE9rez"
1329
1329
  },
@@ -1360,7 +1360,7 @@ var catalog_default = {
1360
1360
  uuid: "00000000-0000-4000-8000-000000000004"
1361
1361
  },
1362
1362
  participant: {
1363
- identity: "+5491100000000",
1363
+ identity: "5491100000000",
1364
1364
  identity_type: "phone",
1365
1365
  name: null
1366
1366
  },
@@ -1384,7 +1384,7 @@ var catalog_default = {
1384
1384
  occurred_at: "2026-10-01T12:00:00Z",
1385
1385
  data: {
1386
1386
  campaign: {
1387
- uuid: "00000000-0000-4000-8000-00000000000a"
1387
+ uuid: "xK9mQz"
1388
1388
  },
1389
1389
  pipeline: {
1390
1390
  uuid: "00000000-0000-4000-8000-00000000000b",
@@ -1420,7 +1420,7 @@ var catalog_default = {
1420
1420
  name: "Grupo de ejemplo"
1421
1421
  },
1422
1422
  campaign: {
1423
- uuid: "00000000-0000-4000-8000-000000000001"
1423
+ uuid: "xK9mQz"
1424
1424
  },
1425
1425
  reason: "admin_access_lost",
1426
1426
  workspace_id: 37
@@ -1444,7 +1444,7 @@ var catalog_default = {
1444
1444
  name: "Grupo de ejemplo"
1445
1445
  },
1446
1446
  campaign: {
1447
- uuid: "00000000-0000-4000-8000-000000000001"
1447
+ uuid: "xK9mQz"
1448
1448
  },
1449
1449
  reason: "access_restored",
1450
1450
  workspace_id: 37
@@ -1464,7 +1464,7 @@ var catalog_default = {
1464
1464
  occurred_at: "2026-10-01T12:00:00Z",
1465
1465
  data: {
1466
1466
  campaign: {
1467
- uuid: "00000000-0000-4000-8000-000000000009",
1467
+ uuid: "xK9mQz",
1468
1468
  name: "Campa\xF1a de ejemplo"
1469
1469
  },
1470
1470
  from: "active",
@@ -13954,6 +13954,16 @@ var openapi_default = {
13954
13954
  tags: [
13955
13955
  "Puntaje"
13956
13956
  ],
13957
+ requestBody: {
13958
+ required: true,
13959
+ content: {
13960
+ "application/json": {
13961
+ schema: {
13962
+ $ref: "#/components/schemas/UpdateLeadScoreSettingsRequest"
13963
+ }
13964
+ }
13965
+ }
13966
+ },
13957
13967
  responses: {
13958
13968
  "200": {
13959
13969
  description: "OK",
@@ -40620,7 +40630,7 @@ var openapi_default = {
40620
40630
  post: {
40621
40631
  operationId: "webhook.group_created",
40622
40632
  summary: "group.created",
40623
- description: "Se cre\xF3 o se import\xF3 un grupo dentro de una campa\xF1a de la cuenta.",
40633
+ description: "Se cre\xF3 o se import\xF3 un grupo dentro de una campa\xF1a de la cuenta; `source` vale `imported` si el grupo ya exist\xEDa en WhatsApp y entr\xF3 por una importaci\xF3n o una sincronizaci\xF3n, y `created` en cualquier otro caso.",
40624
40634
  tags: [
40625
40635
  "Webhooks"
40626
40636
  ],
@@ -40690,7 +40700,7 @@ var openapi_default = {
40690
40700
  type: "group"
40691
40701
  },
40692
40702
  campaign: {
40693
- uuid: "00000000-0000-4000-8000-000000000001",
40703
+ uuid: "xK9mQz",
40694
40704
  name: "Campa\xF1a de ejemplo"
40695
40705
  },
40696
40706
  source: "created",
@@ -40874,7 +40884,7 @@ var openapi_default = {
40874
40884
  name: "Grupo de ejemplo"
40875
40885
  },
40876
40886
  campaign: {
40877
- uuid: "00000000-0000-4000-8000-000000000001"
40887
+ uuid: "xK9mQz"
40878
40888
  },
40879
40889
  reason: "admin_access_lost",
40880
40890
  workspace_id: 37
@@ -40964,7 +40974,7 @@ var openapi_default = {
40964
40974
  name: "Grupo de ejemplo"
40965
40975
  },
40966
40976
  campaign: {
40967
- uuid: "00000000-0000-4000-8000-000000000001"
40977
+ uuid: "xK9mQz"
40968
40978
  },
40969
40979
  reason: "access_restored",
40970
40980
  workspace_id: 37
@@ -41148,7 +41158,7 @@ var openapi_default = {
41148
41158
  uid: "120363000000000001@g.us"
41149
41159
  },
41150
41160
  participant: {
41151
- identity: "+5491100000000",
41161
+ identity: "5491100000000",
41152
41162
  identity_type: "phone",
41153
41163
  name: "Ana P\xE9rez"
41154
41164
  },
@@ -41242,7 +41252,7 @@ var openapi_default = {
41242
41252
  occurred_at: "2026-10-01T12:00:00Z",
41243
41253
  data: {
41244
41254
  campaign: {
41245
- uuid: "00000000-0000-4000-8000-000000000009",
41255
+ uuid: "xK9mQz",
41246
41256
  name: "Campa\xF1a de ejemplo"
41247
41257
  },
41248
41258
  from: "active",
@@ -41330,7 +41340,7 @@ var openapi_default = {
41330
41340
  occurred_at: "2026-10-01T12:00:00Z",
41331
41341
  data: {
41332
41342
  campaign: {
41333
- uuid: "00000000-0000-4000-8000-00000000000a"
41343
+ uuid: "xK9mQz"
41334
41344
  },
41335
41345
  pipeline: {
41336
41346
  uuid: "00000000-0000-4000-8000-00000000000b",
@@ -41437,7 +41447,7 @@ var openapi_default = {
41437
41447
  uuid: "00000000-0000-4000-8000-000000000004"
41438
41448
  },
41439
41449
  participant: {
41440
- identity: "+5491100000000",
41450
+ identity: "5491100000000",
41441
41451
  identity_type: "phone",
41442
41452
  name: null
41443
41453
  },
@@ -41532,7 +41542,7 @@ var openapi_default = {
41532
41542
  type: "group"
41533
41543
  },
41534
41544
  campaign: {
41535
- uuid: "00000000-0000-4000-8000-000000000001",
41545
+ uuid: "xK9mQz",
41536
41546
  name: "Campa\xF1a de ejemplo"
41537
41547
  },
41538
41548
  invite_link: "https://chat.whatsapp.com/EjemploNuevo0000000000001",
@@ -41627,7 +41637,7 @@ var openapi_default = {
41627
41637
  type: "group"
41628
41638
  },
41629
41639
  campaign: {
41630
- uuid: "00000000-0000-4000-8000-000000000001",
41640
+ uuid: "xK9mQz",
41631
41641
  name: "Campa\xF1a de ejemplo"
41632
41642
  },
41633
41643
  reason: "http_404",
@@ -42077,7 +42087,7 @@ var openapi_default = {
42077
42087
  "mac.usage_100": {
42078
42088
  post: {
42079
42089
  summary: "mac.usage_100",
42080
- description: "La cuenta agot\xF3 sus contactos activos mensuales del ciclo; se abre una gracia de 24 horas cuyo vencimiento viaja en `grace_expires_at`.",
42090
+ description: "La cuenta agot\xF3 sus contactos activos mensuales del ciclo; se abre una gracia de 24 horas cuyo vencimiento viaja en `grace_expires_at`. `workspace_id` es el workspace al que se rutea el evento, como en todos los eventos: el workspace con facturaci\xF3n propia cuyo pool se agot\xF3, o el workspace por defecto cuando el pool es el de la cuenta.",
42081
42091
  "x-fc-status": "live",
42082
42092
  parameters: [
42083
42093
  {
@@ -42145,7 +42155,7 @@ var openapi_default = {
42145
42155
  "mac.usage_80": {
42146
42156
  post: {
42147
42157
  summary: "mac.usage_80",
42148
- description: "La cuenta alcanz\xF3 el 80% de sus contactos activos mensuales del ciclo.",
42158
+ description: "La cuenta alcanz\xF3 el 80% de sus contactos activos mensuales del ciclo. `workspace_id` es el workspace al que se rutea el evento, como en todos los eventos: el workspace con facturaci\xF3n propia cuyo pool alcanz\xF3 el umbral, o el workspace por defecto cuando el pool es el de la cuenta.",
42149
42159
  "x-fc-status": "live",
42150
42160
  parameters: [
42151
42161
  {
@@ -43986,10 +43996,10 @@ var openapi_default = {
43986
43996
  name: "Grupo de ejemplo"
43987
43997
  },
43988
43998
  campaign: {
43989
- uuid: "00000000-0000-4000-8000-000000000001"
43999
+ uuid: "xK9mQz"
43990
44000
  },
43991
44001
  participant: {
43992
- identity: "+5491100000000",
44002
+ identity: "5491100000000",
43993
44003
  identity_type: "phone",
43994
44004
  name: "Ana P\xE9rez"
43995
44005
  }
@@ -44135,10 +44145,10 @@ var openapi_default = {
44135
44145
  name: "Grupo de ejemplo"
44136
44146
  },
44137
44147
  campaign: {
44138
- uuid: "00000000-0000-4000-8000-000000000001"
44148
+ uuid: "xK9mQz"
44139
44149
  },
44140
44150
  participant: {
44141
- identity: "+5491100000000",
44151
+ identity: "5491100000000",
44142
44152
  identity_type: "phone",
44143
44153
  name: "Ana P\xE9rez"
44144
44154
  }
@@ -54012,6 +54022,224 @@ var openapi_default = {
54012
54022
  ],
54013
54023
  title: "UpdateKanbanStageRequest"
54014
54024
  },
54025
+ UpdateLeadScoreSettingsRequest: {
54026
+ type: "object",
54027
+ properties: {
54028
+ hot_threshold: {
54029
+ type: "integer",
54030
+ minimum: 0,
54031
+ maximum: 100
54032
+ },
54033
+ warm_threshold: {
54034
+ type: "integer",
54035
+ minimum: 0,
54036
+ maximum: 100
54037
+ },
54038
+ min_signals: {
54039
+ type: "integer",
54040
+ minimum: 1,
54041
+ maximum: 20
54042
+ },
54043
+ hysteresis: {
54044
+ type: "integer",
54045
+ minimum: 0,
54046
+ maximum: 25
54047
+ },
54048
+ decay_enabled: {
54049
+ type: "boolean"
54050
+ },
54051
+ rules: {
54052
+ type: "array",
54053
+ items: {
54054
+ type: "object",
54055
+ properties: {
54056
+ id: {
54057
+ type: "string",
54058
+ maxLength: 64
54059
+ },
54060
+ signal: {
54061
+ type: "string",
54062
+ enum: [
54063
+ "tag_added",
54064
+ "tag_removed",
54065
+ "stage_advanced",
54066
+ "broadcast_reply",
54067
+ "message_reply",
54068
+ "intent_keyword",
54069
+ "group_join",
54070
+ "group_leave",
54071
+ "group_reaction",
54072
+ "group_poll_vote",
54073
+ "link_click",
54074
+ "automation_completed"
54075
+ ]
54076
+ },
54077
+ mode: {
54078
+ type: "string",
54079
+ enum: [
54080
+ "event",
54081
+ "state"
54082
+ ]
54083
+ },
54084
+ points: {
54085
+ type: "integer",
54086
+ minimum: -100,
54087
+ maximum: 100
54088
+ },
54089
+ daily_cap: {
54090
+ type: [
54091
+ "integer",
54092
+ "null"
54093
+ ],
54094
+ minimum: 1
54095
+ },
54096
+ unique_scope: {
54097
+ type: "string",
54098
+ enum: [
54099
+ "none",
54100
+ "contact",
54101
+ "contact_scope"
54102
+ ]
54103
+ },
54104
+ enabled: {
54105
+ type: "boolean"
54106
+ },
54107
+ disqualifies: {
54108
+ type: "boolean"
54109
+ },
54110
+ on_release: {
54111
+ type: "string",
54112
+ enum: [
54113
+ "restore",
54114
+ "keep"
54115
+ ]
54116
+ },
54117
+ config: {
54118
+ type: "object",
54119
+ properties: {
54120
+ keywords: {
54121
+ type: "array",
54122
+ items: {
54123
+ type: "string",
54124
+ minLength: 1
54125
+ },
54126
+ maxItems: 50
54127
+ },
54128
+ broadcast_ids: {
54129
+ type: [
54130
+ "array",
54131
+ "null"
54132
+ ],
54133
+ items: {
54134
+ type: "integer"
54135
+ },
54136
+ maxItems: 100
54137
+ },
54138
+ group_ids: {
54139
+ type: [
54140
+ "array",
54141
+ "null"
54142
+ ],
54143
+ items: {
54144
+ type: "string",
54145
+ minLength: 1,
54146
+ maxLength: 255
54147
+ },
54148
+ maxItems: 100
54149
+ },
54150
+ flow_ids: {
54151
+ type: [
54152
+ "array",
54153
+ "null"
54154
+ ],
54155
+ items: {
54156
+ type: "integer"
54157
+ },
54158
+ maxItems: 100
54159
+ },
54160
+ whalink_ids: {
54161
+ type: [
54162
+ "array",
54163
+ "null"
54164
+ ],
54165
+ items: {
54166
+ type: "string",
54167
+ minLength: 1,
54168
+ maxLength: 255
54169
+ },
54170
+ maxItems: 100
54171
+ },
54172
+ tag_ids: {
54173
+ type: [
54174
+ "array",
54175
+ "null"
54176
+ ],
54177
+ items: {
54178
+ type: "integer"
54179
+ },
54180
+ maxItems: 100
54181
+ },
54182
+ stage_ids: {
54183
+ type: [
54184
+ "array",
54185
+ "null"
54186
+ ],
54187
+ items: {
54188
+ type: "integer"
54189
+ },
54190
+ maxItems: 100
54191
+ }
54192
+ }
54193
+ }
54194
+ },
54195
+ required: [
54196
+ "id",
54197
+ "signal",
54198
+ "mode",
54199
+ "points",
54200
+ "unique_scope",
54201
+ "enabled",
54202
+ "disqualifies",
54203
+ "on_release"
54204
+ ]
54205
+ },
54206
+ maxItems: 30
54207
+ },
54208
+ decay_steps: {
54209
+ type: "array",
54210
+ items: {
54211
+ type: "object",
54212
+ properties: {
54213
+ days: {
54214
+ type: "integer",
54215
+ minimum: 1,
54216
+ maximum: 365
54217
+ },
54218
+ points: {
54219
+ type: "integer",
54220
+ minimum: -100,
54221
+ maximum: -1
54222
+ }
54223
+ },
54224
+ required: [
54225
+ "days",
54226
+ "points"
54227
+ ]
54228
+ },
54229
+ maxItems: 5
54230
+ }
54231
+ },
54232
+ required: [
54233
+ "hot_threshold",
54234
+ "warm_threshold",
54235
+ "min_signals",
54236
+ "hysteresis",
54237
+ "decay_enabled",
54238
+ "rules",
54239
+ "decay_steps"
54240
+ ],
54241
+ title: "UpdateLeadScoreSettingsRequest"
54242
+ },
54015
54243
  UpdateMessageTemplateRequest: {
54016
54244
  type: "object",
54017
54245
  properties: {
@@ -55758,8 +55986,8 @@ var openapi_default = {
55758
55986
  generated_by: "scripts/generate.mjs",
55759
55987
  note: "GENERATED: do not edit it. The portal's snapshot plus the pending layers.",
55760
55988
  inputs: {
55761
- "spec/funnelchat.json": "7db2ead826697c80fd8feef3f0ea556b5374dd3d2cb5e02f3cfe4584af79e33c",
55762
- "spec/pending.json": "dd7b8cf6e5be45ddf1c0c00a9f4480cceec11b364adec083bbf989fa11944d9d",
55989
+ "spec/funnelchat.json": "19e91748ddfe19eef74886264ee984d360417596745e5a900a02a7a831b570a0",
55990
+ "spec/pending.json": "665399018a4a5193038efd4471c4e8655b2fd05400eb9bd9b621627148f8be47",
55763
55991
  "spec/pending-sandbox.json": "32bcbfef902fbabd57e1626f4d97e964b89f3c561c7b0f0e21531c8576019aaf"
55764
55992
  },
55765
55993
  snapshot_commit: null,
@@ -56832,7 +57060,7 @@ function shapeOnlyAnswer(op) {
56832
57060
 
56833
57061
  // package.json
56834
57062
  var package_default = {
56835
- version: "0.5.2"};
57063
+ version: "0.5.3"};
56836
57064
 
56837
57065
  // src/version.ts
56838
57066
  var VERSION = package_default.version;
@@ -61350,5 +61578,5 @@ function createSandbox(options = {}) {
61350
61578
  }
61351
61579
 
61352
61580
  export { ConfigError, DEFAULT_CONFIG_FILE, DEFAULT_PORT, DELIVERY_HEADER, EDGE_ERRORS, EVENT_HEADER, FAILURE_REASONS, FORM_TEMPLATES, META_ERRORS, REJECTIONS, REQUEST_ID_HEADER, SEND_FILE_TYPES, SIGNATURE_HEADER, SIMULATED_HEADER, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, parseArgs, resolveConfig, signature };
61353
- //# sourceMappingURL=chunk-4ELMG644.js.map
61354
- //# sourceMappingURL=chunk-4ELMG644.js.map
61581
+ //# sourceMappingURL=chunk-ZHTK33SS.js.map
61582
+ //# sourceMappingURL=chunk-ZHTK33SS.js.map
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { ConfigError, parseArgs, VERSION, DEFAULT_PORT, DEFAULT_CONFIG_FILE, resolveConfig, createSandbox } from './chunk-4ELMG644.js';
2
+ import { ConfigError, parseArgs, VERSION, DEFAULT_PORT, DEFAULT_CONFIG_FILE, resolveConfig, createSandbox } from './chunk-ZHTK33SS.js';
3
3
 
4
4
  // src/cli.ts
5
5
  var HELP = `funnelchat-sandbox ${VERSION}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { DELIVERY_HEADER, EDGE_ERRORS, EVENT_HEADER, FAILURE_REASONS, FORM_TEMPLATES, META_ERRORS, REJECTIONS, REQUEST_ID_HEADER, SEND_FILE_TYPES, SIGNATURE_HEADER, SIMULATED_HEADER, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, signature } from './chunk-4ELMG644.js';
1
+ export { DELIVERY_HEADER, EDGE_ERRORS, EVENT_HEADER, FAILURE_REASONS, FORM_TEMPLATES, META_ERRORS, REJECTIONS, REQUEST_ID_HEADER, SEND_FILE_TYPES, SIGNATURE_HEADER, SIMULATED_HEADER, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, signature } from './chunk-ZHTK33SS.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnelchat-hq/sandbox",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "A local server that imitates the Funnelchat public API and sends signed webhooks, with no real effects",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -2,8 +2,8 @@
2
2
  "description": "Where each file of spec/ came from. Written by `npm run generate -- --spec <file>` or `-- --pending <file>`; do not edit it by hand. spec/pending-sandbox.json belongs to this repo: its sources are inside it.",
3
3
  "snapshot": {
4
4
  "file": "spec/funnelchat.json",
5
- "sha256": "7db2ead826697c80fd8feef3f0ea556b5374dd3d2cb5e02f3cfe4584af79e33c",
6
- "bytes": 888446,
5
+ "sha256": "19e91748ddfe19eef74886264ee984d360417596745e5a900a02a7a831b570a0",
6
+ "bytes": 891547,
7
7
  "source": {
8
8
  "repository": null,
9
9
  "path": null,
@@ -12,12 +12,12 @@
12
12
  "commit_date": null,
13
13
  "file_tracked_in_git": null,
14
14
  "tracked_files_clean": null,
15
- "file_modified_at": "2026-11-13T23:32:56.295Z",
15
+ "file_modified_at": "2026-11-14T12:30:29.511Z",
16
16
  "url": "https://developers-portal.funnelchat.app/specs/funnelchat.json",
17
- "portal_version": "v0.6.16",
18
- "note": "The spec the developer portal publishes as v0.6.16: only the operations and events the portal shows. The sha256 is the one of the file the portal publishes in that version."
17
+ "portal_version": "v0.6.18",
18
+ "note": "The spec the developer portal publishes as v0.6.18: only the operations and events the portal shows. The sha256 is the one of the file the portal publishes in that version."
19
19
  },
20
- "imported_at": "2026-11-13T23:34:13.652Z",
20
+ "imported_at": "2026-11-14T12:32:24.426Z",
21
21
  "spec": {
22
22
  "openapi": "3.1.0",
23
23
  "title": "Funnelchat API",