@funnelchat-hq/sandbox 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,7 +29,7 @@ npx funnelchat-sandbox
29
29
  ```
30
30
 
31
31
  ```
32
- funnelchat-sandbox 0.1.0 at http://127.0.0.1:4010
32
+ funnelchat-sandbox 0.1.1 at http://127.0.0.1:4010
33
33
  API: http://127.0.0.1:4010/api/v1/... (Authorization: Bearer 1|fc_live_sandbox, or any well-formed key)
34
34
  panel: http://127.0.0.1:4010/_sandbox
35
35
  example numbers: 3 (official, with the 24-hour window) and 4 (QR, no window); contact 2001; template 45
@@ -163,7 +163,7 @@ Every session starts with this:
163
163
 
164
164
  The official number (`3`) has no groups (the sandbox account is not in the official groups beta); the QR one (`4`) does, and has no templates. `health` is `null` on the QR number.
165
165
 
166
- **The group actions by API** (create a group, participants, admins, name, description, photo, settings, invite link, sending to the group and the join requests) exist in communities but are off in production: with any key they answer `403 route_not_available`, as they do here. So do polls and events (`/message/poll`, `/message/event`).
166
+ **Polls and events** (`/message/poll`, `/message/event`) are closed to API keys in production: with any key they answer `403 route_not_available`, as they do here.
167
167
 
168
168
  ```json
169
169
  { "error": "route_not_available", "message": "Esta ruta no está disponible para API keys en el piloto. No es un permiso que falte: ninguna key la habilita." }
@@ -466,7 +466,7 @@ And at `http://localhost:4010/_sandbox` you see each request and each delivery w
466
466
  - **The validation messages** are Laravel's in Spanish, built from the schema: they may not match the API's word for word (decide by the HTTP status and by `error`, not by `message`). The real API's validation `422` is Laravel's, `{message, errors}`, without `error`; the sandbox adds `"error": "validation_failed"`.
467
467
  - **Webhook URLs** may be `http` and local, without the real API's protection against internal destinations (try `--require-https`). Do not expose the sandbox to the internet: the `/_sandbox` routes take no key and the sandbox `POST`s to any URL subscribed to it.
468
468
  - **The catalog** is transcribed from the code of accounts v1.4.24 (`spec/catalog.json`), not read from a response: if accounts changes it, it has to be transcribed again.
469
- - **There are no groups or campaigns with state:** their events are fired from `/_sandbox`, the group actions answer `403 route_not_available` as in production, and the other routes answer examples.
469
+ - **There are no groups or campaigns with state:** their events are fired from `/_sandbox`, and their routes answer examples.
470
470
  - **Forms do not talk to Meta:** `sync` and `publish` succeed unless the linter finds an error, and the linter is a short version of the real one (screens without a title, without an ending, without questions, with a connection to the server). There are no metrics (`…/metrics`) and no dynamic forms.
471
471
  - **Files are not downloaded:** the type comes from the extension or from `file_type`. The «known» extensions (the ones that give `415` instead of `422 errors.file_type`) are the common ones; the API uses symfony/mime's full list.
472
472
  - **The pace and the brakes** use the numbers of conversations in production (`config/send_guards.php`, `config/antiblock.php`); the official number paired with a QR one in coexistence (15 per second, shared) is not there.
@@ -487,7 +487,6 @@ Besides, `spec/catalog.json` is the event catalog of accounts v1.4.24, with its
487
487
  | `message.status_changed` and `device_id` in `message.received` | conversations v1.18.10 | In production; `message.status_changed` is `active`. |
488
488
  | The file by URL: `file_type`, `file_name`, their `422`s and the `415` | conversations v1.18.10 (`SendFileType`) | In production. |
489
489
  | Forms: `/api/v1/forms…`, `POST /api/v1/contacts/{contact}/message/form` and `whatsapp_form.completed` | conversations v1.18.10 | In production. The portal does not document them yet. |
490
- | The group actions and join requests, off (`403 route_not_available`) | communities v2.34.52 | In production, off. |
491
490
  | `capabilities` and the new keys of the numbers | accounts v1.4.24 (`DeviceResource`, `DeviceCapabilities`) | In production. |
492
491
  | `X-Request-Id` and the edge's errors (`route_not_found`, `origin_unreachable`, `edge_misconfigured`) | api-edge v0.3.0, platform-gate v0.8.0 | In production. |
493
492
 
@@ -17489,42 +17489,6 @@ var openapi_default = {
17489
17489
  "x-fc-proposito": "Usalo para listar los grupos de tu cuenta con filtros por tipo, estado, n\xFAmero o sin campa\xF1a asignada, por ejemplo para sincronizarlos con tu sistema.",
17490
17490
  "x-fc-domain": "communities",
17491
17491
  "x-fc-permission": "communities:read"
17492
- },
17493
- post: {
17494
- operationId: "pendingSandboxGroupActions.groups.post",
17495
- summary: "Group action by API (off)",
17496
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
17497
- tags: [
17498
- "GroupActions"
17499
- ],
17500
- "x-fc-domain": "communities",
17501
- "x-fc-permission": "communities:operate",
17502
- "x-fc-pending": "communities-group-actions",
17503
- responses: {
17504
- "403": {
17505
- description: "route_not_available: the group actions by API are off in production.",
17506
- content: {
17507
- "application/json": {
17508
- schema: {
17509
- type: "object",
17510
- properties: {
17511
- error: {
17512
- type: "string",
17513
- const: "route_not_available"
17514
- },
17515
- message: {
17516
- type: "string"
17517
- }
17518
- },
17519
- required: [
17520
- "error",
17521
- "message"
17522
- ]
17523
- }
17524
- }
17525
- }
17526
- }
17527
- }
17528
17492
  }
17529
17493
  },
17530
17494
  "/api/v1/devices/{device}/groups": {
@@ -18602,52 +18566,6 @@ var openapi_default = {
18602
18566
  "x-fc-proposito": "Sirve para ver los mensajes que se enviaron a un grupo y de qu\xE9 env\xEDo programado sali\xF3 cada uno.",
18603
18567
  "x-fc-domain": "communities",
18604
18568
  "x-fc-permission": "communities:read"
18605
- },
18606
- post: {
18607
- operationId: "pendingSandboxGroupActions.groups.group.messages.post",
18608
- summary: "Group action by API (off)",
18609
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
18610
- tags: [
18611
- "GroupActions"
18612
- ],
18613
- "x-fc-domain": "communities",
18614
- "x-fc-permission": "communities:operate",
18615
- "x-fc-pending": "communities-group-actions",
18616
- parameters: [
18617
- {
18618
- name: "group",
18619
- in: "path",
18620
- required: true,
18621
- schema: {
18622
- type: "string"
18623
- }
18624
- }
18625
- ],
18626
- responses: {
18627
- "403": {
18628
- description: "route_not_available: the group actions by API are off in production.",
18629
- content: {
18630
- "application/json": {
18631
- schema: {
18632
- type: "object",
18633
- properties: {
18634
- error: {
18635
- type: "string",
18636
- const: "route_not_available"
18637
- },
18638
- message: {
18639
- type: "string"
18640
- }
18641
- },
18642
- required: [
18643
- "error",
18644
- "message"
18645
- ]
18646
- }
18647
- }
18648
- }
18649
- }
18650
- }
18651
18569
  }
18652
18570
  },
18653
18571
  "/api/v1/groups/{group}/scheduled-messages": {
@@ -29318,716 +29236,19 @@ var openapi_default = {
29318
29236
  {
29319
29237
  name: "id",
29320
29238
  in: "path",
29321
- required: true,
29322
- schema: {
29323
- type: "integer"
29324
- }
29325
- }
29326
- ],
29327
- responses: {
29328
- "200": {
29329
- description: "OK",
29330
- content: {
29331
- "application/json": {
29332
- schema: {
29333
- type: "object"
29334
- }
29335
- }
29336
- }
29337
- }
29338
- }
29339
- }
29340
- },
29341
- "/api/v1/forms/families/{familyId}/definition": {
29342
- get: {
29343
- operationId: "pendingSandboxForms.families.definition",
29344
- summary: "The current published definition",
29345
- description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29346
- tags: [
29347
- "WhatsappForm"
29348
- ],
29349
- "x-fc-domain": "conversations",
29350
- "x-fc-permission": "conversations:read",
29351
- "x-fc-pending": "conversations-forms",
29352
- parameters: [
29353
- {
29354
- name: "familyId",
29355
- in: "path",
29356
- required: true,
29357
- schema: {
29358
- type: "integer"
29359
- }
29360
- }
29361
- ],
29362
- responses: {
29363
- "200": {
29364
- description: "OK",
29365
- content: {
29366
- "application/json": {
29367
- schema: {
29368
- type: "object"
29369
- }
29370
- }
29371
- }
29372
- }
29373
- }
29374
- }
29375
- },
29376
- "/api/v1/forms/families/{familyId}/versions": {
29377
- get: {
29378
- operationId: "pendingSandboxForms.families.versions",
29379
- summary: "The versions",
29380
- description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29381
- tags: [
29382
- "WhatsappForm"
29383
- ],
29384
- "x-fc-domain": "conversations",
29385
- "x-fc-permission": "conversations:read",
29386
- "x-fc-pending": "conversations-forms",
29387
- parameters: [
29388
- {
29389
- name: "familyId",
29390
- in: "path",
29391
- required: true,
29392
- schema: {
29393
- type: "integer"
29394
- }
29395
- }
29396
- ],
29397
- responses: {
29398
- "200": {
29399
- description: "OK",
29400
- content: {
29401
- "application/json": {
29402
- schema: {
29403
- type: "object"
29404
- }
29405
- }
29406
- }
29407
- }
29408
- }
29409
- }
29410
- },
29411
- "/api/v1/forms/families/{familyId}/responses": {
29412
- get: {
29413
- operationId: "pendingSandboxForms.families.responses",
29414
- summary: "The responses",
29415
- description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29416
- tags: [
29417
- "WhatsappForm"
29418
- ],
29419
- "x-fc-domain": "conversations",
29420
- "x-fc-permission": "conversations:read",
29421
- "x-fc-pending": "conversations-forms",
29422
- parameters: [
29423
- {
29424
- name: "familyId",
29425
- in: "path",
29426
- required: true,
29427
- schema: {
29428
- type: "integer"
29429
- }
29430
- },
29431
- {
29432
- name: "version_id",
29433
- in: "query",
29434
- schema: {
29435
- type: "integer"
29436
- }
29437
- },
29438
- {
29439
- name: "status",
29440
- in: "query",
29441
- schema: {
29442
- type: "string"
29443
- }
29444
- },
29445
- {
29446
- name: "per_page",
29447
- in: "query",
29448
- schema: {
29449
- type: "integer",
29450
- minimum: 1,
29451
- maximum: 100
29452
- }
29453
- },
29454
- {
29455
- name: "page",
29456
- in: "query",
29457
- schema: {
29458
- type: "integer",
29459
- minimum: 1
29460
- }
29461
- }
29462
- ],
29463
- responses: {
29464
- "200": {
29465
- description: "OK",
29466
- content: {
29467
- "application/json": {
29468
- schema: {
29469
- type: "object"
29470
- }
29471
- }
29472
- }
29473
- }
29474
- }
29475
- }
29476
- },
29477
- "/api/v1/forms/families/{familyId}/responses/{runId}": {
29478
- get: {
29479
- operationId: "pendingSandboxForms.families.response",
29480
- summary: "One response",
29481
- description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29482
- tags: [
29483
- "WhatsappForm"
29484
- ],
29485
- "x-fc-domain": "conversations",
29486
- "x-fc-permission": "conversations:read",
29487
- "x-fc-pending": "conversations-forms",
29488
- parameters: [
29489
- {
29490
- name: "familyId",
29491
- in: "path",
29492
- required: true,
29493
- schema: {
29494
- type: "integer"
29495
- }
29496
- },
29497
- {
29498
- name: "runId",
29499
- in: "path",
29500
- required: true,
29501
- schema: {
29502
- type: "integer"
29503
- }
29504
- }
29505
- ],
29506
- responses: {
29507
- "200": {
29508
- description: "OK",
29509
- content: {
29510
- "application/json": {
29511
- schema: {
29512
- type: "object"
29513
- }
29514
- }
29515
- }
29516
- }
29517
- }
29518
- }
29519
- },
29520
- "/api/v1/contacts/{contact}/message/form": {
29521
- post: {
29522
- operationId: "pendingSandboxForms.send",
29523
- summary: "Send a form to a contact",
29524
- description: 'Only through official numbers and with the 24-hour window open. Answers `200` with the queued message (`type: "whatsapp_form"`).\n\n**Pending of the spec**: it is in production, missing from the portal\'s snapshot.',
29525
- tags: [
29526
- "Message"
29527
- ],
29528
- "x-fc-domain": "conversations",
29529
- "x-fc-permission": "conversations:send",
29530
- "x-fc-pending": "conversations-forms",
29531
- parameters: [
29532
- {
29533
- name: "contact",
29534
- in: "path",
29535
- required: true,
29536
- schema: {
29537
- type: "integer"
29538
- }
29539
- }
29540
- ],
29541
- requestBody: {
29542
- required: true,
29543
- content: {
29544
- "application/json": {
29545
- schema: {
29546
- type: "object",
29547
- properties: {
29548
- form_id: {
29549
- type: "integer",
29550
- minimum: 1
29551
- },
29552
- device_id: {
29553
- type: "integer",
29554
- minimum: 1
29555
- },
29556
- text: {
29557
- type: "string",
29558
- minLength: 1,
29559
- maxLength: 1024
29560
- },
29561
- button_text: {
29562
- type: "string",
29563
- minLength: 1,
29564
- maxLength: 30
29565
- },
29566
- client_reference: {
29567
- type: [
29568
- "string",
29569
- "null"
29570
- ],
29571
- maxLength: 64
29572
- }
29573
- },
29574
- required: [
29575
- "form_id",
29576
- "device_id"
29577
- ]
29578
- }
29579
- }
29580
- }
29581
- },
29582
- responses: {
29583
- "200": {
29584
- description: "The form was queued.",
29585
- content: {
29586
- "application/json": {
29587
- schema: {
29588
- $ref: "#/components/schemas/PendingSandboxSendResponse"
29589
- }
29590
- }
29591
- }
29592
- },
29593
- "404": {
29594
- description: "It does not exist in the account",
29595
- content: {
29596
- "application/json": {
29597
- schema: {
29598
- $ref: "#/components/schemas/PendingSandboxNotFound"
29599
- }
29600
- }
29601
- }
29602
- }
29603
- }
29604
- }
29605
- },
29606
- "/api/v1/groups/actions/{action}": {
29607
- get: {
29608
- operationId: "pendingSandboxGroupActions.groups.actions.action.get",
29609
- summary: "Group action by API (off)",
29610
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29611
- tags: [
29612
- "GroupActions"
29613
- ],
29614
- "x-fc-domain": "communities",
29615
- "x-fc-permission": "communities:operate",
29616
- "x-fc-pending": "communities-group-actions",
29617
- parameters: [
29618
- {
29619
- name: "action",
29620
- in: "path",
29621
- required: true,
29622
- schema: {
29623
- type: "string"
29624
- }
29625
- }
29626
- ],
29627
- responses: {
29628
- "403": {
29629
- description: "route_not_available: the group actions by API are off in production.",
29630
- content: {
29631
- "application/json": {
29632
- schema: {
29633
- type: "object",
29634
- properties: {
29635
- error: {
29636
- type: "string",
29637
- const: "route_not_available"
29638
- },
29639
- message: {
29640
- type: "string"
29641
- }
29642
- },
29643
- required: [
29644
- "error",
29645
- "message"
29646
- ]
29647
- }
29648
- }
29649
- }
29650
- }
29651
- }
29652
- }
29653
- },
29654
- "/api/v1/groups/{group}/participants": {
29655
- post: {
29656
- operationId: "pendingSandboxGroupActions.groups.group.participants.post",
29657
- summary: "Group action by API (off)",
29658
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29659
- tags: [
29660
- "GroupActions"
29661
- ],
29662
- "x-fc-domain": "communities",
29663
- "x-fc-permission": "communities:operate",
29664
- "x-fc-pending": "communities-group-actions",
29665
- parameters: [
29666
- {
29667
- name: "group",
29668
- in: "path",
29669
- required: true,
29670
- schema: {
29671
- type: "string"
29672
- }
29673
- }
29674
- ],
29675
- responses: {
29676
- "403": {
29677
- description: "route_not_available: the group actions by API are off in production.",
29678
- content: {
29679
- "application/json": {
29680
- schema: {
29681
- type: "object",
29682
- properties: {
29683
- error: {
29684
- type: "string",
29685
- const: "route_not_available"
29686
- },
29687
- message: {
29688
- type: "string"
29689
- }
29690
- },
29691
- required: [
29692
- "error",
29693
- "message"
29694
- ]
29695
- }
29696
- }
29697
- }
29698
- }
29699
- }
29700
- }
29701
- },
29702
- "/api/v1/groups/{group}/participants/remove": {
29703
- post: {
29704
- operationId: "pendingSandboxGroupActions.groups.group.participants.remove.post",
29705
- summary: "Group action by API (off)",
29706
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29707
- tags: [
29708
- "GroupActions"
29709
- ],
29710
- "x-fc-domain": "communities",
29711
- "x-fc-permission": "communities:operate",
29712
- "x-fc-pending": "communities-group-actions",
29713
- parameters: [
29714
- {
29715
- name: "group",
29716
- in: "path",
29717
- required: true,
29718
- schema: {
29719
- type: "string"
29720
- }
29721
- }
29722
- ],
29723
- responses: {
29724
- "403": {
29725
- description: "route_not_available: the group actions by API are off in production.",
29726
- content: {
29727
- "application/json": {
29728
- schema: {
29729
- type: "object",
29730
- properties: {
29731
- error: {
29732
- type: "string",
29733
- const: "route_not_available"
29734
- },
29735
- message: {
29736
- type: "string"
29737
- }
29738
- },
29739
- required: [
29740
- "error",
29741
- "message"
29742
- ]
29743
- }
29744
- }
29745
- }
29746
- }
29747
- }
29748
- }
29749
- },
29750
- "/api/v1/groups/{group}/admins": {
29751
- post: {
29752
- operationId: "pendingSandboxGroupActions.groups.group.admins.post",
29753
- summary: "Group action by API (off)",
29754
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29755
- tags: [
29756
- "GroupActions"
29757
- ],
29758
- "x-fc-domain": "communities",
29759
- "x-fc-permission": "communities:operate",
29760
- "x-fc-pending": "communities-group-actions",
29761
- parameters: [
29762
- {
29763
- name: "group",
29764
- in: "path",
29765
- required: true,
29766
- schema: {
29767
- type: "string"
29768
- }
29769
- }
29770
- ],
29771
- responses: {
29772
- "403": {
29773
- description: "route_not_available: the group actions by API are off in production.",
29774
- content: {
29775
- "application/json": {
29776
- schema: {
29777
- type: "object",
29778
- properties: {
29779
- error: {
29780
- type: "string",
29781
- const: "route_not_available"
29782
- },
29783
- message: {
29784
- type: "string"
29785
- }
29786
- },
29787
- required: [
29788
- "error",
29789
- "message"
29790
- ]
29791
- }
29792
- }
29793
- }
29794
- }
29795
- }
29796
- }
29797
- },
29798
- "/api/v1/groups/{group}/admins/remove": {
29799
- post: {
29800
- operationId: "pendingSandboxGroupActions.groups.group.admins.remove.post",
29801
- summary: "Group action by API (off)",
29802
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29803
- tags: [
29804
- "GroupActions"
29805
- ],
29806
- "x-fc-domain": "communities",
29807
- "x-fc-permission": "communities:operate",
29808
- "x-fc-pending": "communities-group-actions",
29809
- parameters: [
29810
- {
29811
- name: "group",
29812
- in: "path",
29813
- required: true,
29814
- schema: {
29815
- type: "string"
29816
- }
29817
- }
29818
- ],
29819
- responses: {
29820
- "403": {
29821
- description: "route_not_available: the group actions by API are off in production.",
29822
- content: {
29823
- "application/json": {
29824
- schema: {
29825
- type: "object",
29826
- properties: {
29827
- error: {
29828
- type: "string",
29829
- const: "route_not_available"
29830
- },
29831
- message: {
29832
- type: "string"
29833
- }
29834
- },
29835
- required: [
29836
- "error",
29837
- "message"
29838
- ]
29839
- }
29840
- }
29841
- }
29842
- }
29843
- }
29844
- }
29845
- },
29846
- "/api/v1/groups/{group}/name": {
29847
- put: {
29848
- operationId: "pendingSandboxGroupActions.groups.group.name.put",
29849
- summary: "Group action by API (off)",
29850
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29851
- tags: [
29852
- "GroupActions"
29853
- ],
29854
- "x-fc-domain": "communities",
29855
- "x-fc-permission": "communities:operate",
29856
- "x-fc-pending": "communities-group-actions",
29857
- parameters: [
29858
- {
29859
- name: "group",
29860
- in: "path",
29861
- required: true,
29862
- schema: {
29863
- type: "string"
29864
- }
29865
- }
29866
- ],
29867
- responses: {
29868
- "403": {
29869
- description: "route_not_available: the group actions by API are off in production.",
29870
- content: {
29871
- "application/json": {
29872
- schema: {
29873
- type: "object",
29874
- properties: {
29875
- error: {
29876
- type: "string",
29877
- const: "route_not_available"
29878
- },
29879
- message: {
29880
- type: "string"
29881
- }
29882
- },
29883
- required: [
29884
- "error",
29885
- "message"
29886
- ]
29887
- }
29888
- }
29889
- }
29890
- }
29891
- }
29892
- }
29893
- },
29894
- "/api/v1/groups/{group}/description": {
29895
- put: {
29896
- operationId: "pendingSandboxGroupActions.groups.group.description.put",
29897
- summary: "Group action by API (off)",
29898
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29899
- tags: [
29900
- "GroupActions"
29901
- ],
29902
- "x-fc-domain": "communities",
29903
- "x-fc-permission": "communities:operate",
29904
- "x-fc-pending": "communities-group-actions",
29905
- parameters: [
29906
- {
29907
- name: "group",
29908
- in: "path",
29909
- required: true,
29910
- schema: {
29911
- type: "string"
29912
- }
29913
- }
29914
- ],
29915
- responses: {
29916
- "403": {
29917
- description: "route_not_available: the group actions by API are off in production.",
29918
- content: {
29919
- "application/json": {
29920
- schema: {
29921
- type: "object",
29922
- properties: {
29923
- error: {
29924
- type: "string",
29925
- const: "route_not_available"
29926
- },
29927
- message: {
29928
- type: "string"
29929
- }
29930
- },
29931
- required: [
29932
- "error",
29933
- "message"
29934
- ]
29935
- }
29936
- }
29937
- }
29938
- }
29939
- }
29940
- }
29941
- },
29942
- "/api/v1/groups/{group}/photo": {
29943
- put: {
29944
- operationId: "pendingSandboxGroupActions.groups.group.photo.put",
29945
- summary: "Group action by API (off)",
29946
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29947
- tags: [
29948
- "GroupActions"
29949
- ],
29950
- "x-fc-domain": "communities",
29951
- "x-fc-permission": "communities:operate",
29952
- "x-fc-pending": "communities-group-actions",
29953
- parameters: [
29954
- {
29955
- name: "group",
29956
- in: "path",
29957
- required: true,
29958
- schema: {
29959
- type: "string"
29960
- }
29961
- }
29962
- ],
29963
- responses: {
29964
- "403": {
29965
- description: "route_not_available: the group actions by API are off in production.",
29966
- content: {
29967
- "application/json": {
29968
- schema: {
29969
- type: "object",
29970
- properties: {
29971
- error: {
29972
- type: "string",
29973
- const: "route_not_available"
29974
- },
29975
- message: {
29976
- type: "string"
29977
- }
29978
- },
29979
- required: [
29980
- "error",
29981
- "message"
29982
- ]
29983
- }
29984
- }
29985
- }
29986
- }
29987
- }
29988
- }
29989
- },
29990
- "/api/v1/groups/{group}/settings": {
29991
- put: {
29992
- operationId: "pendingSandboxGroupActions.groups.group.settings.put",
29993
- summary: "Group action by API (off)",
29994
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29995
- tags: [
29996
- "GroupActions"
29997
- ],
29998
- "x-fc-domain": "communities",
29999
- "x-fc-permission": "communities:operate",
30000
- "x-fc-pending": "communities-group-actions",
30001
- parameters: [
30002
- {
30003
- name: "group",
30004
- in: "path",
30005
- required: true,
30006
- schema: {
30007
- type: "string"
30008
- }
30009
- }
30010
- ],
30011
- responses: {
30012
- "403": {
30013
- description: "route_not_available: the group actions by API are off in production.",
30014
- content: {
30015
- "application/json": {
30016
- schema: {
30017
- type: "object",
30018
- properties: {
30019
- error: {
30020
- type: "string",
30021
- const: "route_not_available"
30022
- },
30023
- message: {
30024
- type: "string"
30025
- }
30026
- },
30027
- required: [
30028
- "error",
30029
- "message"
30030
- ]
29239
+ required: true,
29240
+ schema: {
29241
+ type: "integer"
29242
+ }
29243
+ }
29244
+ ],
29245
+ responses: {
29246
+ "200": {
29247
+ description: "OK",
29248
+ content: {
29249
+ "application/json": {
29250
+ schema: {
29251
+ type: "object"
30031
29252
  }
30032
29253
  }
30033
29254
  }
@@ -30035,47 +29256,34 @@ var openapi_default = {
30035
29256
  }
30036
29257
  }
30037
29258
  },
30038
- "/api/v1/groups/{group}/invite-link/renew": {
30039
- post: {
30040
- operationId: "pendingSandboxGroupActions.groups.group.invite-link.renew.post",
30041
- summary: "Group action by API (off)",
30042
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29259
+ "/api/v1/forms/families/{familyId}/definition": {
29260
+ get: {
29261
+ operationId: "pendingSandboxForms.families.definition",
29262
+ summary: "The current published definition",
29263
+ description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
30043
29264
  tags: [
30044
- "GroupActions"
29265
+ "WhatsappForm"
30045
29266
  ],
30046
- "x-fc-domain": "communities",
30047
- "x-fc-permission": "communities:operate",
30048
- "x-fc-pending": "communities-group-actions",
29267
+ "x-fc-domain": "conversations",
29268
+ "x-fc-permission": "conversations:read",
29269
+ "x-fc-pending": "conversations-forms",
30049
29270
  parameters: [
30050
29271
  {
30051
- name: "group",
29272
+ name: "familyId",
30052
29273
  in: "path",
30053
29274
  required: true,
30054
29275
  schema: {
30055
- type: "string"
29276
+ type: "integer"
30056
29277
  }
30057
29278
  }
30058
29279
  ],
30059
29280
  responses: {
30060
- "403": {
30061
- description: "route_not_available: the group actions by API are off in production.",
29281
+ "200": {
29282
+ description: "OK",
30062
29283
  content: {
30063
29284
  "application/json": {
30064
29285
  schema: {
30065
- type: "object",
30066
- properties: {
30067
- error: {
30068
- type: "string",
30069
- const: "route_not_available"
30070
- },
30071
- message: {
30072
- type: "string"
30073
- }
30074
- },
30075
- required: [
30076
- "error",
30077
- "message"
30078
- ]
29286
+ type: "object"
30079
29287
  }
30080
29288
  }
30081
29289
  }
@@ -30083,47 +29291,34 @@ var openapi_default = {
30083
29291
  }
30084
29292
  }
30085
29293
  },
30086
- "/api/v1/groups/{group}/invite-link/live": {
29294
+ "/api/v1/forms/families/{familyId}/versions": {
30087
29295
  get: {
30088
- operationId: "pendingSandboxGroupActions.groups.group.invite-link.live.get",
30089
- summary: "Group action by API (off)",
30090
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29296
+ operationId: "pendingSandboxForms.families.versions",
29297
+ summary: "The versions",
29298
+ description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
30091
29299
  tags: [
30092
- "GroupActions"
29300
+ "WhatsappForm"
30093
29301
  ],
30094
- "x-fc-domain": "communities",
30095
- "x-fc-permission": "communities:operate",
30096
- "x-fc-pending": "communities-group-actions",
29302
+ "x-fc-domain": "conversations",
29303
+ "x-fc-permission": "conversations:read",
29304
+ "x-fc-pending": "conversations-forms",
30097
29305
  parameters: [
30098
29306
  {
30099
- name: "group",
29307
+ name: "familyId",
30100
29308
  in: "path",
30101
29309
  required: true,
30102
29310
  schema: {
30103
- type: "string"
29311
+ type: "integer"
30104
29312
  }
30105
29313
  }
30106
29314
  ],
30107
29315
  responses: {
30108
- "403": {
30109
- description: "route_not_available: the group actions by API are off in production.",
29316
+ "200": {
29317
+ description: "OK",
30110
29318
  content: {
30111
29319
  "application/json": {
30112
29320
  schema: {
30113
- type: "object",
30114
- properties: {
30115
- error: {
30116
- type: "string",
30117
- const: "route_not_available"
30118
- },
30119
- message: {
30120
- type: "string"
30121
- }
30122
- },
30123
- required: [
30124
- "error",
30125
- "message"
30126
- ]
29321
+ type: "object"
30127
29322
  }
30128
29323
  }
30129
29324
  }
@@ -30131,47 +29326,65 @@ var openapi_default = {
30131
29326
  }
30132
29327
  }
30133
29328
  },
30134
- "/api/v1/groups/{group}/join-requests": {
29329
+ "/api/v1/forms/families/{familyId}/responses": {
30135
29330
  get: {
30136
- operationId: "pendingSandboxGroupActions.groups.group.join-requests.get",
30137
- summary: "Group action by API (off)",
30138
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29331
+ operationId: "pendingSandboxForms.families.responses",
29332
+ summary: "The responses",
29333
+ description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
30139
29334
  tags: [
30140
- "GroupActions"
29335
+ "WhatsappForm"
30141
29336
  ],
30142
- "x-fc-domain": "communities",
30143
- "x-fc-permission": "communities:operate",
30144
- "x-fc-pending": "communities-group-actions",
29337
+ "x-fc-domain": "conversations",
29338
+ "x-fc-permission": "conversations:read",
29339
+ "x-fc-pending": "conversations-forms",
30145
29340
  parameters: [
30146
29341
  {
30147
- name: "group",
29342
+ name: "familyId",
30148
29343
  in: "path",
30149
29344
  required: true,
29345
+ schema: {
29346
+ type: "integer"
29347
+ }
29348
+ },
29349
+ {
29350
+ name: "version_id",
29351
+ in: "query",
29352
+ schema: {
29353
+ type: "integer"
29354
+ }
29355
+ },
29356
+ {
29357
+ name: "status",
29358
+ in: "query",
30150
29359
  schema: {
30151
29360
  type: "string"
30152
29361
  }
29362
+ },
29363
+ {
29364
+ name: "per_page",
29365
+ in: "query",
29366
+ schema: {
29367
+ type: "integer",
29368
+ minimum: 1,
29369
+ maximum: 100
29370
+ }
29371
+ },
29372
+ {
29373
+ name: "page",
29374
+ in: "query",
29375
+ schema: {
29376
+ type: "integer",
29377
+ minimum: 1
29378
+ }
30153
29379
  }
30154
29380
  ],
30155
29381
  responses: {
30156
- "403": {
30157
- description: "route_not_available: the group actions by API are off in production.",
29382
+ "200": {
29383
+ description: "OK",
30158
29384
  content: {
30159
29385
  "application/json": {
30160
29386
  schema: {
30161
- type: "object",
30162
- properties: {
30163
- error: {
30164
- type: "string",
30165
- const: "route_not_available"
30166
- },
30167
- message: {
30168
- type: "string"
30169
- }
30170
- },
30171
- required: [
30172
- "error",
30173
- "message"
30174
- ]
29387
+ type: "object"
30175
29388
  }
30176
29389
  }
30177
29390
  }
@@ -30179,47 +29392,42 @@ var openapi_default = {
30179
29392
  }
30180
29393
  }
30181
29394
  },
30182
- "/api/v1/groups/{group}/join-requests/approve": {
30183
- post: {
30184
- operationId: "pendingSandboxGroupActions.groups.group.join-requests.approve.post",
30185
- summary: "Group action by API (off)",
30186
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29395
+ "/api/v1/forms/families/{familyId}/responses/{runId}": {
29396
+ get: {
29397
+ operationId: "pendingSandboxForms.families.response",
29398
+ summary: "One response",
29399
+ description: "\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
30187
29400
  tags: [
30188
- "GroupActions"
29401
+ "WhatsappForm"
30189
29402
  ],
30190
- "x-fc-domain": "communities",
30191
- "x-fc-permission": "communities:operate",
30192
- "x-fc-pending": "communities-group-actions",
29403
+ "x-fc-domain": "conversations",
29404
+ "x-fc-permission": "conversations:read",
29405
+ "x-fc-pending": "conversations-forms",
30193
29406
  parameters: [
30194
29407
  {
30195
- name: "group",
29408
+ name: "familyId",
30196
29409
  in: "path",
30197
29410
  required: true,
30198
29411
  schema: {
30199
- type: "string"
29412
+ type: "integer"
29413
+ }
29414
+ },
29415
+ {
29416
+ name: "runId",
29417
+ in: "path",
29418
+ required: true,
29419
+ schema: {
29420
+ type: "integer"
30200
29421
  }
30201
29422
  }
30202
29423
  ],
30203
29424
  responses: {
30204
- "403": {
30205
- description: "route_not_available: the group actions by API are off in production.",
29425
+ "200": {
29426
+ description: "OK",
30206
29427
  content: {
30207
29428
  "application/json": {
30208
29429
  schema: {
30209
- type: "object",
30210
- properties: {
30211
- error: {
30212
- type: "string",
30213
- const: "route_not_available"
30214
- },
30215
- message: {
30216
- type: "string"
30217
- }
30218
- },
30219
- required: [
30220
- "error",
30221
- "message"
30222
- ]
29430
+ type: "object"
30223
29431
  }
30224
29432
  }
30225
29433
  }
@@ -30227,47 +29435,85 @@ var openapi_default = {
30227
29435
  }
30228
29436
  }
30229
29437
  },
30230
- "/api/v1/groups/{group}/join-requests/reject": {
29438
+ "/api/v1/contacts/{contact}/message/form": {
30231
29439
  post: {
30232
- operationId: "pendingSandboxGroupActions.groups.group.join-requests.reject.post",
30233
- summary: "Group action by API (off)",
30234
- description: "It exists in communities but is off in production: any key gets `403 route_not_available`.\n\n**Pending of the spec**: it is in production, missing from the portal's snapshot.",
29440
+ operationId: "pendingSandboxForms.send",
29441
+ summary: "Send a form to a contact",
29442
+ description: 'Only through official numbers and with the 24-hour window open. Answers `200` with the queued message (`type: "whatsapp_form"`).\n\n**Pending of the spec**: it is in production, missing from the portal\'s snapshot.',
30235
29443
  tags: [
30236
- "GroupActions"
29444
+ "Message"
30237
29445
  ],
30238
- "x-fc-domain": "communities",
30239
- "x-fc-permission": "communities:operate",
30240
- "x-fc-pending": "communities-group-actions",
29446
+ "x-fc-domain": "conversations",
29447
+ "x-fc-permission": "conversations:send",
29448
+ "x-fc-pending": "conversations-forms",
30241
29449
  parameters: [
30242
29450
  {
30243
- name: "group",
29451
+ name: "contact",
30244
29452
  in: "path",
30245
29453
  required: true,
30246
29454
  schema: {
30247
- type: "string"
29455
+ type: "integer"
30248
29456
  }
30249
29457
  }
30250
29458
  ],
29459
+ requestBody: {
29460
+ required: true,
29461
+ content: {
29462
+ "application/json": {
29463
+ schema: {
29464
+ type: "object",
29465
+ properties: {
29466
+ form_id: {
29467
+ type: "integer",
29468
+ minimum: 1
29469
+ },
29470
+ device_id: {
29471
+ type: "integer",
29472
+ minimum: 1
29473
+ },
29474
+ text: {
29475
+ type: "string",
29476
+ minLength: 1,
29477
+ maxLength: 1024
29478
+ },
29479
+ button_text: {
29480
+ type: "string",
29481
+ minLength: 1,
29482
+ maxLength: 30
29483
+ },
29484
+ client_reference: {
29485
+ type: [
29486
+ "string",
29487
+ "null"
29488
+ ],
29489
+ maxLength: 64
29490
+ }
29491
+ },
29492
+ required: [
29493
+ "form_id",
29494
+ "device_id"
29495
+ ]
29496
+ }
29497
+ }
29498
+ }
29499
+ },
30251
29500
  responses: {
30252
- "403": {
30253
- description: "route_not_available: the group actions by API are off in production.",
29501
+ "200": {
29502
+ description: "The form was queued.",
30254
29503
  content: {
30255
29504
  "application/json": {
30256
29505
  schema: {
30257
- type: "object",
30258
- properties: {
30259
- error: {
30260
- type: "string",
30261
- const: "route_not_available"
30262
- },
30263
- message: {
30264
- type: "string"
30265
- }
30266
- },
30267
- required: [
30268
- "error",
30269
- "message"
30270
- ]
29506
+ $ref: "#/components/schemas/PendingSandboxSendResponse"
29507
+ }
29508
+ }
29509
+ }
29510
+ },
29511
+ "404": {
29512
+ description: "It does not exist in the account",
29513
+ content: {
29514
+ "application/json": {
29515
+ schema: {
29516
+ $ref: "#/components/schemas/PendingSandboxNotFound"
30271
29517
  }
30272
29518
  }
30273
29519
  }
@@ -42522,7 +41768,7 @@ var openapi_default = {
42522
41768
  inputs: {
42523
41769
  "spec/funnelchat.json": "8bbbae569b4cab520884db98f28204156c1bd6c629578bee609343c193e0dadb",
42524
41770
  "spec/pending.json": "a14bc4dbc3025d3e958ffda8afd1fa9fdab34af264418060825f3300799aceb0",
42525
- "spec/pending-sandbox.json": "d915e3b23cbc1738d999eb2b582af2b205b7989c08361cee293f23b2ef278a0e"
41771
+ "spec/pending-sandbox.json": "1f4dbb082f57a1093bd3e36260108ee7a15d64683a75ec1a366091a3127c498f"
42526
41772
  },
42527
41773
  snapshot_commit: "0ef4abb008870ed8c7cae49a08900a81e5e57ed8",
42528
41774
  pending_commit: "88557ce7819c5a4061e84c58053a1b6c49f35ec2",
@@ -42581,22 +41827,6 @@ var openapi_default = {
42581
41827
  "GET /api/v1/forms/families/{familyId}/responses [pending-sandbox.json]",
42582
41828
  "GET /api/v1/forms/families/{familyId}/responses/{runId} [pending-sandbox.json]",
42583
41829
  "POST /api/v1/contacts/{contact}/message/form [pending-sandbox.json]",
42584
- "GET /api/v1/groups/actions/{action} [pending-sandbox.json]",
42585
- "POST /api/v1/groups [pending-sandbox.json]",
42586
- "POST /api/v1/groups/{group}/participants [pending-sandbox.json]",
42587
- "POST /api/v1/groups/{group}/participants/remove [pending-sandbox.json]",
42588
- "POST /api/v1/groups/{group}/admins [pending-sandbox.json]",
42589
- "POST /api/v1/groups/{group}/admins/remove [pending-sandbox.json]",
42590
- "PUT /api/v1/groups/{group}/name [pending-sandbox.json]",
42591
- "PUT /api/v1/groups/{group}/description [pending-sandbox.json]",
42592
- "PUT /api/v1/groups/{group}/photo [pending-sandbox.json]",
42593
- "PUT /api/v1/groups/{group}/settings [pending-sandbox.json]",
42594
- "POST /api/v1/groups/{group}/invite-link/renew [pending-sandbox.json]",
42595
- "POST /api/v1/groups/{group}/messages [pending-sandbox.json]",
42596
- "GET /api/v1/groups/{group}/invite-link/live [pending-sandbox.json]",
42597
- "GET /api/v1/groups/{group}/join-requests [pending-sandbox.json]",
42598
- "POST /api/v1/groups/{group}/join-requests/approve [pending-sandbox.json]",
42599
- "POST /api/v1/groups/{group}/join-requests/reject [pending-sandbox.json]",
42600
41830
  "POST /api/v1/contacts/{contact}/message (cuerpo: file_type, file_name) [pending-sandbox.json]",
42601
41831
  "POST /api/v1/message/send-message (cuerpo: file_type, file_name) [pending-sandbox.json]",
42602
41832
  "POST /api/v1/contacts/{contact}/message (respuestas: 200) [pending-sandbox.json]",
@@ -43555,7 +42785,7 @@ function resolveFile(body2, style) {
43555
42785
 
43556
42786
  // package.json
43557
42787
  var package_default = {
43558
- version: "0.1.0"};
42788
+ version: "0.1.1"};
43559
42789
 
43560
42790
  // src/version.ts
43561
42791
  var VERSION = package_default.version;
@@ -45620,27 +44850,9 @@ var formHandlers = {
45620
44850
  "POST /api/v1/contacts/{contact}/message/form": sendForm
45621
44851
  };
45622
44852
 
45623
- // src/handlers/groups.ts
45624
- var GROUP_ACTION_ROUTES = [
45625
- "GET /api/v1/groups/actions/{action}",
45626
- "POST /api/v1/groups",
45627
- "POST /api/v1/groups/{group}/participants",
45628
- "POST /api/v1/groups/{group}/participants/remove",
45629
- "POST /api/v1/groups/{group}/admins",
45630
- "POST /api/v1/groups/{group}/admins/remove",
45631
- "PUT /api/v1/groups/{group}/name",
45632
- "PUT /api/v1/groups/{group}/description",
45633
- "PUT /api/v1/groups/{group}/photo",
45634
- "PUT /api/v1/groups/{group}/settings",
45635
- "POST /api/v1/groups/{group}/invite-link/renew",
45636
- "POST /api/v1/groups/{group}/messages",
45637
- "GET /api/v1/groups/{group}/invite-link/live",
45638
- "GET /api/v1/groups/{group}/join-requests",
45639
- "POST /api/v1/groups/{group}/join-requests/approve",
45640
- "POST /api/v1/groups/{group}/join-requests/reject"
45641
- ];
45642
- var GATE_CLOSED = /* @__PURE__ */ new Set([...GROUP_ACTION_ROUTES, "POST /api/v1/contacts/{contact}/message/poll", "POST /api/v1/contacts/{contact}/message/event"]);
45643
- var groupHandlers = Object.fromEntries(
44853
+ // src/handlers/gate.ts
44854
+ var GATE_CLOSED = /* @__PURE__ */ new Set(["POST /api/v1/contacts/{contact}/message/poll", "POST /api/v1/contacts/{contact}/message/event"]);
44855
+ var gateHandlers = Object.fromEntries(
45644
44856
  [...GATE_CLOSED].map((route) => [
45645
44857
  route,
45646
44858
  () => {
@@ -46248,7 +45460,7 @@ async function handleSandbox(app, req) {
46248
45460
  // src/server.ts
46249
45461
  var MAX_BODY_BYTES = 1024 * 1024;
46250
45462
  var API_KEY = /^Bearer\s+(\d+)\|fc_live_[A-Za-z0-9]+$/;
46251
- var handlers = { ...contactHandlers, ...messageHandlers, ...formHandlers, ...groupHandlers, ...webhookHandlers };
45463
+ var handlers = { ...contactHandlers, ...messageHandlers, ...formHandlers, ...gateHandlers, ...webhookHandlers };
46252
45464
  var BodyError = class extends ApiError {
46253
45465
  };
46254
45466
  async function readBody(req) {
@@ -46433,5 +45645,5 @@ function createSandbox(options = {}) {
46433
45645
  }
46434
45646
 
46435
45647
  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, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, parseArgs, resolveConfig, signature };
46436
- //# sourceMappingURL=chunk-PF4CGK6J.js.map
46437
- //# sourceMappingURL=chunk-PF4CGK6J.js.map
45648
+ //# sourceMappingURL=chunk-KH6A3I2A.js.map
45649
+ //# sourceMappingURL=chunk-KH6A3I2A.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-PF4CGK6J.js';
2
+ import { ConfigError, parseArgs, VERSION, DEFAULT_PORT, DEFAULT_CONFIG_FILE, resolveConfig, createSandbox } from './chunk-KH6A3I2A.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, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, signature } from './chunk-PF4CGK6J.js';
1
+ export { DELIVERY_HEADER, EDGE_ERRORS, EVENT_HEADER, FAILURE_REASONS, FORM_TEMPLATES, META_ERRORS, REJECTIONS, REQUEST_ID_HEADER, SEND_FILE_TYPES, SIGNATURE_HEADER, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, signature } from './chunk-KH6A3I2A.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.1.0",
3
+ "version": "0.1.1",
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": {