From 646836b84d0b750b6482cfe85b17e98a80414008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20=C5=9Al=C4=99zak?= <35666945+marcin-slezak@users.noreply.github.com> Date: Thu, 28 Sep 2023 15:56:15 +0200 Subject: [PATCH] Set of improvements to a script generating markdown tables (#476) * - render objects refered directly by $ref - add qualification schema as building block - fix rendering oneOf + ref - render ref to simple types (e.g. enum) - do not duplicate rendering tables when more than one refferences - add missing title to `23_obj_qualification_object_stacking_rules object * update api refference - objects * script to update tabes in markdown docs * script to update tabes in markdown docs * reorganize CLI scripts * - remove fake endpoint from object pages - remove outdated docs - remove beta from qualification * remove qualification beta label * contribution docs * add script to remove x-stoplight tags from OpenAPI file * update contributing file - openapi good practices * update the contribution process and use OpenAPI from stoplight * update docs * - markdown tables - add types --------- Co-authored-by: Marcin Slezak --- docs/script/.env.example => .env.example | 0 .gitignore | 7 +- CONTRIBUTING.md | 141 + Changelog.md | 14 + ...Docs-API-Reference.postman_collection.json | 9220 ----------------- ...herify-Docs-Guides.postman_collection.json | 2095 ---- .../ASYNC-ACTIONS-API-Async-Action-Object.md | 153 +- .../CAMPAIGNS-API-Campaign-Object.md | 225 +- .../CATEGORIES-API-Category-Object.md | 19 +- .../CONSENTS-API-Consents-Object.md | 11 +- .../CUSTOMERS-API-Customer-Activity-Object.md | 16 +- .../CUSTOMERS-API-Customer-Object.md | 43 +- .../EXPORTS-API-Export-Object.md | 189 +- .../LOYALTIES-API-Loyalty-Campaign-Object.md | 111 +- .../LOYALTIES-API-Loyalty-Card-Object.md | 68 +- .../LOYALTIES-API-Loyalty-Tier-Object.md | 39 +- ...DATA-SCHEMAS-API-Metadata-Schema-Object.md | 21 +- .../reference-docs/ORDERS-API-Order-Object.md | 51 +- .../PRODUCTS-API-Product-Object.md | 51 +- .../reference-docs/PRODUCTS-API-SKU-Object.md | 31 +- .../PROMOTIONS-API-Promotion-Tier-Object.md | 117 +- .../PUBLICATIONS-API-Publication-Object.md | 100 +- ...TIONS-API-Check-Eligibility-Client-Side.md | 4 +- .../QUALIFICATIONS-API-Check-Eligibility.md | 4 +- ...QUALIFICATIONS-API-Qualification-Object.md | 47 +- .../REWARDS-API-Reward-Assignment-Object.md | 23 +- .../REWARDS-API-Reward-Object.md | 58 +- .../SEGMENTS-API-Customer-Segment-Object.md | 22 +- ...COUNTS-API-Stackable-Redemptions-Object.md | 41 +- ...S-API-Validation-Rule-Assignment-Object.md | 19 +- ...DATION-RULES-API-Validation-Rule-Object.md | 27 +- .../VOUCHERS-API-Voucher-Object.md | 158 +- docs/script/package-lock.json | 11 - docs/script/package.json | 6 - package-lock.json | 262 +- package.json | 13 +- reference/OpenAPI.json | 104 +- scripts/build-md-tables-from-openapi.ts | 23 + .../globals.t.ts | 0 scripts/md-tables.ts | 33 + .../output/.gitkeep | 0 .../readme-fix-docs-order.ts | 132 +- scripts/remove-stoplight-tags-from-openapi.ts | 31 + scripts/src/schema-to-md-table.ts | 335 + scripts/update-md-tables-in-doc.ts | 52 + tableWithNestedSchemaGenerator/.gitignore | 2 - tableWithNestedSchemaGenerator/README.md | 5 - tableWithNestedSchemaGenerator/index.ts | 51 - .../package-lock.json | 6838 ------------ tableWithNestedSchemaGenerator/package.json | 23 - .../schemaToMarkdownTable.ts | 380 - .../tsconfig.json => tsconfig.json | 1 + 52 files changed, 2265 insertions(+), 19162 deletions(-) rename docs/script/.env.example => .env.example (100%) create mode 100644 CONTRIBUTING.md delete mode 100644 automation/Readme-Voucherify-Docs-API-Reference.postman_collection.json delete mode 100644 automation/Readme-Voucherify-Docs-Guides.postman_collection.json delete mode 100644 docs/script/package-lock.json delete mode 100644 docs/script/package.json create mode 100644 scripts/build-md-tables-from-openapi.ts rename {tableWithNestedSchemaGenerator => scripts}/globals.t.ts (100%) create mode 100644 scripts/md-tables.ts rename {tableWithNestedSchemaGenerator => scripts}/output/.gitkeep (100%) rename docs/script/index.js => scripts/readme-fix-docs-order.ts (50%) create mode 100644 scripts/remove-stoplight-tags-from-openapi.ts create mode 100644 scripts/src/schema-to-md-table.ts create mode 100644 scripts/update-md-tables-in-doc.ts delete mode 100644 tableWithNestedSchemaGenerator/.gitignore delete mode 100644 tableWithNestedSchemaGenerator/README.md delete mode 100644 tableWithNestedSchemaGenerator/index.ts delete mode 100644 tableWithNestedSchemaGenerator/package-lock.json delete mode 100644 tableWithNestedSchemaGenerator/package.json delete mode 100644 tableWithNestedSchemaGenerator/schemaToMarkdownTable.ts rename tableWithNestedSchemaGenerator/tsconfig.json => tsconfig.json (68%) diff --git a/docs/script/.env.example b/.env.example similarity index 100% rename from docs/script/.env.example rename to .env.example diff --git a/.gitignore b/.gitignore index 481db3c5d..e54052eab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -.idea/* -docs/script/.env -node_modules/* +node_modules +scripts/output/*.md +.env +.DS_Store \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..f8bce17f3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,141 @@ +# Voucherify's documentation and OpenAPI contribution + +## Introduction + +Voucherify builds and maintains REST API documentation and SDKs to make it easier for software developers to understand and integrate Voucherify into their e-commerce platforms. + +This document describes all deliverables and their development process. + +## Deliverables + +Voucherify's dev experience is built based on three main items: +- **Guides** documentation that describes key concepts, integration with Voucherify development and common recipes. This documentation is available on the page: https://docs.voucherify.io/docs. +- **API Reference** documentation describing REST API endpoints, including available parameters and responses. This documentation is available on the page: https://docs.voucherify.io/reference/introduction-1 +- **SDKs** - clients for all major programming languages, e.g., JavaScript, Java, Ruby, Python, .NET, PHP. SDK's source codes are hosted on the GitHub platform and available for the developers in language-specific package repositories like https://npmjs.com/, https://rubygems.org/ or https://maven.apache.org/ + + +## Guides and API Reference + +Guides and API Reference pages are hosted on readme.io, the platform for creating and hosting developer documentation. Still, the source of documentation content is stored in the GitHub repository: https://github.com/voucherifyio/voucherify-openapi. Guides are stored purely as markdown files in the https://github.com/voucherifyio/voucherify-openapi/tree/master/docs/guides folder and can be easily uploaded to the readme.io platform via readme CLI. API Reference pages are built by readme.io, which combines the OpenAPI file that describes Voucherify API endpoints, parameters and responses with markdown files from https://github.com/voucherifyio/voucherify-openapi/tree/master/docs/reference-docs folder. + +## API Reference - Endpoint Pages + +API Endpoint Pages like https://docs.voucherify.io/reference/get-voucher describe REST API endpoint, including details like path, HTTP method, path params, body params, response schema and response statuses. On the right side of those pages, we have a `Playground Widget` that allows developers to make test API calls. Readme.io builds those pages using information about the REST API from the uploaded OpenAPI file and displays a UI that allows the exploration of all details. For each endpoint page, we have a corresponding dummy markdown file like https://github.com/voucherifyio/voucherify-openapi/blob/master/docs/reference-docs/VOUCHERS-API-Get-Voucher.md that allows us to control visual aspect of the page displayed in the readme, in particular: +- The markdown attributes section at the beginning of the file wrapped by `---` describes the page title, type, slug, order, and visibility. +- `[block:html]` section that adds custom styles to the page that hides unnecessary UI elements like Playground language selector or expandable readme object exploration widget. It also can be used to display the "Beta" tag next to the title. + +Reamde.io platform compares the `operationId` endpoint details attribute from the OpenAPI file with the `slug` from the markdown attributes to combine it and display the final version of the API Endpoint Page. + +As you can notice, all API Endpoint pages are grouped by sections like `Vouchers API`, `Campaigns API` or `Promotions API`. Those sections are built by reamde.io based on the `tags` endpoint details attribute from the OpenAPI file and must be repeated in the `parentDocSlug` attribute of the dummy markdown file. + + +## API Reference - Data Model Pages + + +Data model pages like: https://docs.voucherify.io/reference/voucher-object describe the schema of the main building blocks used in specific sections. There are two types of Data Model Pages: +1. using readme.io expandable object exploration widget, like on the page: https://docs.voucherify.io/reference/validation-object +2. displaying schema of the object wit all attributes in a table like on the page: https://docs.voucherify.io/reference/voucher-object + +We believe that displaying object details in a table is more intuitive for developers. Unfortunately, readme.io does not have the feature to display building block objects defined in OpenAPI in a table format, so we have built custom JS scripts (`build-md-tables-from-openapi` and `update-md-tables-in-doc`) that generate markdown tables automatically using an OpenAPI file and put them inside the markdown inside the `reference-docs` folder, e.g.: https://github.com/voucherifyio/voucherify-openapi/blob/master/docs/reference-docs/VOUCHERS-API-Voucher-Object.md. Once we generate the markdown files we can upload them to readme.io using the readme.io CLI. + +## API Reference - Introduction pages + +Pages from the introduction section, like https://docs.voucherify.io/reference/introduction-1, are just markdown pages uploaded to readme.io using CLI. Content can be found along with other markdown files inside the `docs/reference-docs` folder, e.g. https://github.com/voucherifyio/voucherify-openapi/blob/master/docs/reference-docs/Introduction.md. + +## Beta endpoints + +To label the API endpoint as a beta in readme.io, you should make the following changes in the corresponding markdown file: +- add `[Beta]` postfix in page title (`title` markdown attribute) +- add to `[block:html]` section following style: + +```css +h1::after {\n content: \"BETA\";\n background-color: rgb(237, 117, 71);\n color: rgb(255, 255, 255);\n border-radius: 2rem;padding: 8px 13px 8px;\n white-space: nowrap;font-size:12px;\n} +``` + +## OpenAPI + +OpenAPI syntax documentation can be found here: https://swagger.io/specification/. +Voucherify OpenAPI is located here: https://github.com/voucherifyio/voucherify-openapi/blob/master/reference/OpenAPI.json. +We use stoplight to edit the OpenAPI file as it gives a nice UI that helps to edit this 80k+ line of code json file. Everyone can create a free account on the Stoplight platform. + +How to edit OpenAPI file: +1. upload OpenAPI to the Stoplight platform +2. make changes in OpenAPI using Stoplight UI +3. export modified OpenAPI content and update the OpenAPI file in the repository +4. run `npm run remove-stoplight-tags-from-openapi` command to remove from OpenAPI unwanted Stoplight tags `x-stoplight` (that makes it hard to review changes) +5. ensure that OpenAPI has only expected modifications + +> [!WARNING] Each OpenAPI change should be tested by reviewing documentation on readme.io after the full documentation update process. + + Building new models, we should follow the following name convention: +- Use snake case casing. +- If a model is used as a specific API endpoint description (0-level model), then we follow the pattern: `{resource}_{action}_{request|response}_{body|param|query}`, where: + - `resource`: plural name taken from API path, e.g. `vouchers`, `customers`, `products` + - `action` : `get`(single record), `list`, `update`, `delete`, `create` (etc.) +- If a 0-level model has dedicated sub-models, then those model's names should follow the pattern: + `{resource}_{action}_{differentiator}_{request|response}_{body|param|query}` + where the `differentiator` describes the child model, e.g., `publication`. +- If a model is used by more than one API endpoint (general model), we use simple domain language, e.g. `voucher`, `customer`, `product`, `discount`, `discount_unit` + +For example: +- The general voucher model, used in many different API endpoints, should have the name `voucher` (currently, it has a name: `1_obj_voucher_object`) +- for path `GET /v1/vouchers` (list vouchers), we have a `1_res_vouchers_GET` 0-level model, that should be named: `vouchers_list_response_body`. +- for path `GET /v1/vouchers` (list vouchers), we have a `1_res_vouchers_GET` 0-level model which has sub-model `1_obj_voucher_object_list_vouchers` that should be named: `vouchers_list_item_response_body` +- General model `1_obj_voucher_object` is used in many paths (`GET /v1/vouchers/{code}`, `POST /v1/vouchers/qualification`, `GET /v1/publications/create`); therefore, we should rename the model to `voucher`. + +> [!NOTE] Try to avoid building complex type structures. 0-level models, sub-modules and general modules should be enough to describe the API. Do not be afraid to repeat models for different API endpoints if there are differences. + + + +Good practices: +- for literal unions use `enum` +- for types unions, use `anyOf`, +- for attributes that may contain `null`, add `"nullable": true` +- for dates use `"type": "string", "format": "date-time"` +- for the object, add the "required" attribute which should contain a list of required attributes in the object + +## Contribution to documentation + +### Prerequisites + +- Instal `git`, `nodejs`, and `npm`. +- Clone repository locally: `git clone https://github.com/voucherifyio/voucherify-openapi`. +- Ensure you have the readme.io account with access to the `Voucherify` project (ask your line manager for help). +- Instal `rdme` tool (readme.io CLI): follow the installation instructions from https://github.com/readmeio/rdme#readme website. +- Authenticate `rdme` tool by running: `rdme login` command; you can check if it works using the command `rdme whoami`; what should result: `You are currently logged in as xxx@voucherify.io to the voucherify project.` +- Copy `.env.example` to `.env` and add to this file your personal API Key created in readme.io: `dashboard` > `configuration` > `API Keys` + +### Development process +- For each change / pull request, create your copy of the current documentation, where you will test changes. + - Create your own branch from `master`, + - Create a draft pull request, + - Go to `Manage Versions` page in readme.io + - Click `Add New Version` from top right corner. + - Select the current public version in `Fork from` field, most likely `2018-08-01` + - Type your version name in `Create version` field following the pattern: + `2018-08-01-{your name}-{pull request number}` +- Make changes in the repository following patterns and good practices. +- Deploy changes to test your documentation: + - Update tables in markdown tables: + - `npm run build-md-tables-from-openapi` + - `npm run update-md-tables-in-doc` + - If before created, remove from API Reference the existing OpenAPI file and all specification files. + - Deploy OpenAPI file by command `rdme openapi ./reference/OpenAPI.json --version=2018-08-01-{your name}-{pull request number}`, choose `Create a new spec` option. Command most likely will fail with the message: `We're sorry, your upload request timed out. Please try again or split your file up into smaller chunks`, but so far, we see that this operation still works correctly. + - Deploy guides pages: `rdme docs ./docs/guides --version=2018-08-01-{your name}-{pull request number}` + - Deploy api reference pages: `rdme docs ./docs/reference-docs --version=2018-08-01-{your name}-{pull request number}` + - Fix docs order: `npm run readme-fix-docs-order -- --version=v2018-08-01-{your name}-{pull request number}` +- test changes using preview on readme.io +- if changes are fine, then: + - Add a note in the changelog. + - `git commit` + - `git push` + - publish PR + + +## How to merge PR and update public documentation + +- Test changes on readme (you can use the version prepared by the contributor). +- Ensure the changelog was updated. +- Merge PR to `master` branch +- In reamde.io, change the current documentation version from `v2018-08-01` to `v2018-08-01-deprecated-mm-dd-yyyy` +- Change the name of your new release version from `2018-08-01-{your name}-{pull request number}` to `v2018-08-01` diff --git a/Changelog.md b/Changelog.md index 5aa488163..4daf624ac 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,19 @@ # Changelog +## 20230928 - Order references/guides script + +- Removed `beta` label from qualification API endpoints. +- Described contribution process. +- Added the script to clean up OpenAPI from Stoplight tags. +- Reorganised maintenance scripts. +- Automated the process of updating the data model documents based on the OpenAPI file. +- Improve script which generates markdown tables based on the OpenAPI file. + - Render objects referred directly by $ref. + - fix rendering oneOf + ref. + - Render ref to simple types (e.g. enum) + - Do not duplicate rendering tables when there is more than one reference. + - add the missing title to `23_obj_qualification_object_stacking_rules object. + ## 20230925 - Order references/guides script Added script, located in `docs/script/` directory to quickly update order of references and guides based on `.md` files. For more information please check [Update-Order-Standard-Work.md](automation%2FUpdate-Order-Standard-Work.md) under `Update Order of Docs - AUTOMATIC` section. diff --git a/automation/Readme-Voucherify-Docs-API-Reference.postman_collection.json b/automation/Readme-Voucherify-Docs-API-Reference.postman_collection.json deleted file mode 100644 index 461e61e2b..000000000 --- a/automation/Readme-Voucherify-Docs-API-Reference.postman_collection.json +++ /dev/null @@ -1,9220 +0,0 @@ -{ - "info": { - "_postman_id": "bb5e210d-b31f-40b6-a456-abe59ee15c94", - "name": "Readme - Voucherify Docs - API - With Object Schemas", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "18603863", - "_collection_link": "https://crimson-zodiac-829239.postman.co/workspace/Voucherify-Testing~59bed91e-93d8-4799-9838-b01ffcc9f6f8/collection/18603863-bb5e210d-b31f-40b6-a456-abe59ee15c94?action=share&source=collection_link&creator=18603863" - }, - "item": [ - { - "name": "Introduction", - "item": [ - { - "name": "Introduction", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Introduction\",\n \"category\": \"639ba44d204cb60020b4b7ec\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "introduction-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Errors", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Errors\",\n \"category\": \"639ba44d204cb60020b4b7ec\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "errors" - } - ] - } - }, - "response": [] - }, - { - "name": "Versioning", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Versioning\",\n \"category\": \"639ba44d204cb60020b4b7ec\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "versioning" - } - ] - } - }, - "response": [] - }, - { - "name": "Fetching Data", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Fetching Data\",\n \"category\": \"639ba44d204cb60020b4b7ec\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "listing" - } - ] - } - }, - "response": [] - }, - { - "name": "Object Schemas", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Object Schemas\",\n \"category\": \"639ba44d204cb60020b4b7ec\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "object-schemas" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Vouchers API", - "item": [ - { - "name": "Voucher Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Voucher Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "voucher-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Vouchers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Vouchers\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-vouchers" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Voucher", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Voucher\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Voucher", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Voucher\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Generate Random Code", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Generate Random Code\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "generate-random-code" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Voucher", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Voucher\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Voucher", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Voucher\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Enable Voucher", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Enable Voucher\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "enable-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Disable Voucher", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Disable Voucher\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "disable-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Add or Remove Gift Card Balance", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Add or Remove Gift Card Balance\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "add-remove-gift-voucher-balance" - } - ] - } - }, - "response": [] - }, - { - "name": "List Gift Card Transactions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Gift Card Transactions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-gift-card-transactions" - } - ] - } - }, - "response": [] - }, - { - "name": "Export Gift Card Transactions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Export Gift Card Transactions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "export-gift-card-transactions" - } - ] - } - }, - "response": [] - }, - { - "name": "Import Vouchers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import Vouchers\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 13\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-vouchers" - } - ] - } - }, - "response": [] - }, - { - "name": "Import Vouchers using CSV", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import Vouchers using CSV\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 14\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-vouchers-using-csv" - } - ] - } - }, - "response": [] - }, - { - "name": "Examine Qualification [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Examine Qualification [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 15\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "examine-vouchers-qualification" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Vouchers in Bulk", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Vouchers in bulk\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 16\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-vouchers-in-bulk" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Vouchers` metadata in bulk", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Vouchers' metadata in bulk\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 17\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-vouchers-metadata-in-bulk" - } - ] - } - }, - "response": [] - }, - { - "name": "Release Validation Session", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Release Validation Session\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faae\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 18\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "release-validation-session" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Campaigns API", - "item": [ - { - "name": "Campaign Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Campaign Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "campaign-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Campaigns", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Campaigns\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-campaigns" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Add Vouchers to Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Add Vouchers to Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "add-vouchers-to-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Add Vouchers with Specific Code to Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Add Voucher with Specific Code to Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "add-voucher-with-specific-code-to-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Import Vouchers to Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import Vouchers to Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-vouchers-to-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Import Vouchers to Campaign by CSV", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import Vouchers to Campaign by CSV\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-vouchers-to-campaign-using-csv" - } - ] - } - }, - "response": [] - }, - { - "name": "Examine Qualification [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Examine Qualification [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "examine-campaigns-qualification" - } - ] - } - }, - "response": [] - }, - { - "name": "Enable Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Enable Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "enable-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Disable Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Disable Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faaf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 13\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "disable-campaign" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Promotions API", - "item": [ - { - "name": "Promotion Tier Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Promotion Tier Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "promotion-tier-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Promotion Tiers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Promotion Tiers\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-promotion-tiers" - } - ] - } - }, - "response": [] - }, - { - "name": "List Promotion Tiers (client-side)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Promotion Tiers (client-side)\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-promotion-tiers-client-side" - } - ] - } - }, - "response": [] - }, - { - "name": "List Promotion Tiers from Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Promotion Tiers from Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-promotion-tiers-from-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Add Promotion Tier to Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Add Promotion Tier to Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "add-promotion-tier-to-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Promotion Tier", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Promotion Tier\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-promotion-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Promotion Tier", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Promotion Tier\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-promotion-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Promotion Tier", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Promotion Tier\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-promotion-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "Enable Promotion Tier", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Enable Promotion Tier\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "enable-promotion-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "Disable Promotion Tier", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Disable Promotion Tier\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "disable-promotion-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "List Promotion Stacks", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Promotion Stacks\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-all-promotion-stacks" - } - ] - } - }, - "response": [] - }, - { - "name": "List Promotion Stacks in Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Promotion Stacks in Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-promotion-stacks-in-campaign" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Promotion Stack", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Promotion Stack\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 13\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-promotion-stack" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Promotion Stack", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Promotion Stack\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 14\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-promotion-stack" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Promotion Stack", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Promotion Stack\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 15\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-promotion-stack" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Promotion Stack", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Promotion Stack\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 16\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-promotion-stack" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Rewards API", - "item": [ - { - "name": "Reward Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Reward Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "reward-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Reward Assignment Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Reward Assignment Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "reward-assignment-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Rewards", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Rewards\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-rewards" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Reward", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Reward\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-reward" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Reward", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Reward\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-reward" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Reward", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Reward\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-reward" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Reward", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Reward\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-reward" - } - ] - } - }, - "response": [] - }, - { - "name": "List Reward Assignments", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Reward Assignments\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-reward-assignments" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-reward-assignment" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-reward-assignment" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-reward-assignment" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-reward-assignment" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Publications API", - "item": [ - { - "name": "Publication Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Publication Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"63b58495b5ee6800ab6535dc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "publication-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Publications", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Publications\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"63b58495b5ee6800ab6535dc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-publications" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Publication", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Publication\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"63b58495b5ee6800ab6535dc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-publication-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Publication", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Publication\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"63b58495b5ee6800ab6535dc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-publication" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Validations API", - "item": [ - { - "name": "Establish Validation Session", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Establish Validation Session\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab3\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validation-session" - } - ] - } - }, - "response": [] - }, - { - "name": "Validation Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validation Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab3\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validation-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Validate Voucher [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validate Voucher [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab3\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validate-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Validate Voucher (client-side) [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validate Voucher (client-side) [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab3\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validate-voucher-client-side" - } - ] - } - }, - "response": [] - }, - { - "name": "Validate Promotions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validate Promotions [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab3\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validate-promotions" - } - ] - } - }, - "response": [] - }, - { - "name": "Validate Promotion Tier [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validate Promotion Tier [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab3\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validate-promotion-tier" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Redemptions API", - "item": [ - { - "name": "Redemption Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redemption Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redemption-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Rollback Redemption Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Rollback Redemption Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "rollback-redemption-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Redemptions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Redemptions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-redemptions" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Redemption", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Redemption\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-redemption" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Voucher Redemptions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Voucher's Redemptions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-voucher-redemptions" - } - ] - } - }, - "response": [] - }, - { - "name": "Redeem Voucher [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redeem Voucher [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redeem-voucher" - } - ] - } - }, - "response": [] - }, - { - "name": "Redeem Voucher (client-side) [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redeem Voucher (client-side) [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redeem-voucher-client-side" - } - ] - } - }, - "response": [] - }, - { - "name": "Rollback Redemption", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Rollback Redemption\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "rollback-redemption" - } - ] - } - }, - "response": [] - }, - { - "name": "Redeem Promotion [Deprecated]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redeem Promotion [Deprecated]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab4\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redeem-promotion" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Stackable Discounts API", - "item": [ - { - "name": "Stacking API Overview", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Stacking API Overview\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "stacking-api-overview" - } - ] - } - }, - "response": [] - }, - { - "name": "Establish Validation Session", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Establish Validation Session\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "establish-validation-session" - } - ] - } - }, - "response": [] - }, - { - "name": "Stackable Redemptions Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Stackable Redemptions Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "stackable-redemptions-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Validate Stacked Discounts", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validate Stackable Discounts\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validate-stacked-discounts" - } - ] - } - }, - "response": [] - }, - { - "name": "Validate Stacked Discounts (client-side)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validate Stackable Discounts (client-side)\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validate-stacked-discounts-client-side" - } - ] - } - }, - "response": [] - }, - { - "name": "Redeem Stacked Discounts", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redeem Stackable Discounts\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redeem-stacked-discounts" - } - ] - } - }, - "response": [] - }, - { - "name": "Redeem Stacked Discounts (client-side)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redeem Stackable Discounts (client-side)\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redeem-stacked-discounts-client-side" - } - ] - } - }, - "response": [] - }, - { - "name": "Rollback Stackable Redemptions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Rollback Stackable Redemptions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab5\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "rollback-stacked-redemptions" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Loyalties API", - "item": [ - { - "name": "Loyalty Campaign Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Loyalty Campaign Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "loyalty-campaign-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Loyalty Card Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Loyalty Card Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "loyalty-card-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Loyalty Tier Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Loyalty Tier Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "loyalty-tier-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Earning Rule Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Earning Rule Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "earning-rule-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Loyalty Programs", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Loyalty Campaigns\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-loyalty-programs" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Loyalty Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Loyalty Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-loyalty-program" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Loyalty Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Loyalty Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-loyalty-program" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Loyalty Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Loyalty Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-loyalty-program" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Loyalty Campaign", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Loyalty Campaign\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-loyalty-program" - } - ] - } - }, - "response": [] - }, - { - "name": "List Members", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Members\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-members" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Member", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Member\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-member" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Member", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Member\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-member-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Add Member", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Add Member\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 13\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "add-member" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Member Activities", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Member Activities\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 14\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-member-activities" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Member Activities", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Member Activities\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 15\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-member-activities-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Add or Remove Loyalty Card Balance", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Add or Remove Loyalty Card Balance\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 16\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "add-remove-loyalty-card-balance" - } - ] - } - }, - "response": [] - }, - { - "name": "Add or Remove Loyalty Card Balance", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Add or Remove Loyalty Card Balance\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 17\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "add-remove-loyalty-card-balance-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Transfer Loyalty Points", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Transfer Points\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 18\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "transfer-points" - } - ] - } - }, - "response": [] - }, - { - "name": "List Loyalty Card Transactions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Loyalty Card Transactions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 19\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-loyalty-card-transactions-1" - } - ] - } - }, - "response": [] - }, - { - "name": "List Loyalty Card Transactions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Loyalty Card Transactions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 20\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-loyalty-card-transactions" - } - ] - } - }, - "response": [] - }, - { - "name": "Export Loyalty Card Transactions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Export Loyalty Card Transactions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 21\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "export-loyalty-card-transactions-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Export Loyalty Card Transactions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Export Loyalty Card Transactions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 22\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "export-loyalty-card-transactions" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Points Expiration", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Points Expiration\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 23\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-points-expiration" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Points Expiration Export", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Points Expiration Export\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 24\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-points-expiration-export" - } - ] - } - }, - "response": [] - }, - { - "name": "List Earning Rules", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Earning Rules\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 25\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-earning-rules" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Earning Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Earning Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 26\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-earning-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Earning Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Earning Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 27\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-earning-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Earning Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Earning Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 28\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-earning-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Earning Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Earning Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 29\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-earning-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "Enable Earning Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Enable Earning Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 30\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "enable-earning-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "Disable Earning Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Disable Earning Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 31\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "disable-earning-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "List Member Rewards", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Member Rewards\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 32\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-member-rewards" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Reward Details", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Reward Details\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 33\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-reward-details" - } - ] - } - }, - "response": [] - }, - { - "name": "Redeem Reward", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redeem Reward\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 34\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redeem-reward" - } - ] - } - }, - "response": [] - }, - { - "name": "Redeem Reward", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redeem Reward\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 35\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redeem-reward-1" - } - ] - } - }, - "response": [] - }, - { - "name": "List Reward Assignments", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Reward Assignments\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 36\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-reward-assignments-1" - } - ] - } - }, - "response": [] - }, - { - "name": "List Reward Assignments", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Reward Assignments\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 37\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-reward-assignments-2" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 38\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-reward-assignment-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 39\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-reward-assignment-2" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 40\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-reward-assignment-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 41\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-reward-assignment-1" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Reward Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Reward Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 42\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-reward-assignment-1" - } - ] - } - }, - "response": [] - }, - { - "name": "List Loyalty Tiers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Loyalty Tiers\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 43\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-loyalty-tiers" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Loyalty Tier", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Loyalty Tier\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 44\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-loyalty-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "List Member's Loyalty Tiers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Member's Loyalty Tiers\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 45\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-member-loyalty-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "List Loyalty Tier Earning Rules", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Loyalty Tier Earning Rules\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 46\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-loyalty-tier-earning-rules" - } - ] - } - }, - "response": [] - }, - { - "name": "List Loyalty Tier Rewards", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Loyalty Tier Rewards\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab6\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 47\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-loyalty-tier-rewards" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Customers API", - "item": [ - { - "name": "Customer Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Customer Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "customer-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Customer Activity Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Customer Activity Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "customer-activity-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Customers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Customers\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-customers" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Customer", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Customer\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-customer" - } - ] - } - }, - "response": [] - }, - { - "name": "List Customer Activities", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Customer Activities\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-customer-activities" - } - ] - } - }, - "response": [] - }, - { - "name": "List Customer Segments", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Customer's Segments\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-customer-segments" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Customer", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Customer\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-customer" - } - ] - } - }, - "response": [] - }, - { - "name": "Import and Update Customers using CSV", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import and Update Customers using CSV\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-customers-using-csv" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Customer", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Customer\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-customer" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Customer's Consents", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Customer's Consents\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-customers-consents" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Customer's Consents (client-side)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Customer's Consents (client-side)\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-customers-consents-client-side" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Customers in bulk", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Customers in bulk\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-customers-in-bulk" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Customers Metadata in bulk", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Customers' Metadata in bulk\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 13\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-customers-metadata-in-bulk" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Customer", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Customer\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 14\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-customer" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Customer Permanently", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Customer Permanently\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 15\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-customer-permanently" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Orders API", - "item": [ - { - "name": "Order Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Order Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "order-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Orders", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Orders\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-orders" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Order", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Order\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-order" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Order", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Order\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-order" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Order", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Order\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-order" - } - ] - } - }, - "response": [] - }, - { - "name": "Import Orders", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import Orders\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-orders" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Orders Export", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Orders Export\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-order-export" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Products API", - "item": [ - { - "name": "Product Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Product Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "product-object" - } - ] - } - }, - "response": [] - }, - { - "name": "SKU Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"SKU Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "sku-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Products", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Products\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-products" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Product", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Product\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-product" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Product", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Product\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-product" - } - ] - } - }, - "response": [] - }, - { - "name": "Import Products using CSV", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import Products using CSV\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-products-using-csv" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Product", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Product\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-product" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Products in bulk", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Products in bulk\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-products-in-bulk" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Products' Metadata in bulk", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Products' Metadata in bulk\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-products-metadata-in-bulk" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Product", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Product\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-product" - } - ] - } - }, - "response": [] - }, - { - "name": "List SKUs in Product", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List SKUs in Product\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-skus-in-product" - } - ] - } - }, - "response": [] - }, - { - "name": "Get SKU", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get SKU\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-sku" - } - ] - } - }, - "response": [] - }, - { - "name": "Create SKU", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create SKU\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 13\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-sku" - } - ] - } - }, - "response": [] - }, - { - "name": "Import SKUs using CSV", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import SKUs using CSV\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 14\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-skus-using-csv" - } - ] - } - }, - "response": [] - }, - { - "name": "Update SKU", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update SKU\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 15\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-sku" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete SKU", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete SKU\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fab9\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 16\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-sku" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Product Collections API", - "item": [ - { - "name": "Product Collection Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Product Collection Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faba\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "product-collection-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Product Collections", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Product Collections\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faba\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-product-collections" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Product Collection", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Product Collection\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faba\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-product-collection" - } - ] - } - }, - "response": [] - }, - { - "name": "List Products in Collection", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Products Collection\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faba\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-products-in-collection" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Product Collection", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Product Collection\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5faba\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-product-collection" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Validation Rules API", - "item": [ - { - "name": "Validation Rule Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validation Rule Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validation-rule-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Validation Rule Assignment Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validation Rule Assignment Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validation-rule-assignment-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Validation Rules", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Validation Rules\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-validation-rules" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Validation Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Validation Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-validation-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Validation Rules", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Validation Rules\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-validation-rules" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Validation Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Validation Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-validation-rule" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Validation Rule", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Validation Rule\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-validation-rules" - } - ] - } - }, - "response": [] - }, - { - "name": "List Validation Rules' Assignments(s)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Validation Rules' Assignment(s)\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-validation-rules-assignments" - } - ] - } - }, - "response": [] - }, - { - "name": "List Validation Rule Assignments", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Validation Rule Assignments\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-validation-rule-assignments" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Validation Rules Assignments", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Validation Rules Assignments\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-validation-rule-assignment" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Validation Rule Assignment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Validation Rule Assignment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabb\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-validation-rule-assignment" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Segments API", - "item": [ - { - "name": "Customer Segment Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Customer Segment Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "customer-segment-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Segment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Segment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-segment" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Segment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Segment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-segment" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Segment", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Segment\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabc\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-segment" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Events API", - "item": [ - { - "name": "Custom Event Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Custom Event Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabd\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "custom-event-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Track Custom Event", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Track Custom Event\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabd\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "track-custom-event" - } - ] - } - }, - "response": [] - }, - { - "name": "Track Custom Event (client-side)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Track Custom Event (client-side)\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabd\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "track-custom-event-client-side" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Consents API", - "item": [ - { - "name": "Consents Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Consents Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabe\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "consents-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Consents", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Consents\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabe\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-consents" - } - ] - } - }, - "response": [] - }, - { - "name": "List Consents (client-side)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Consents (client-side)\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabe\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-consents-client-side" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Async Actions API", - "item": [ - { - "name": "Async Action Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Async Action Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "async-action-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Async Actions", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Async Actions\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-async-actions" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Async Action", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Async Action\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fabf\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-async-action" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Exports API", - "item": [ - { - "name": "Export Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Export Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "export-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Exports", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Exports\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-exports" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Export", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Export\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-export" - } - ] - } - }, - "response": [] - }, - { - "name": "Download Export", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Download Export\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "download-export" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Export", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Export\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-export" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Export", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Export\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac0\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-export" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Categories API", - "item": [ - { - "name": "Category Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Category Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "category-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Categories", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Categories\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-categories" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Category", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Category\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-category" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Category", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Create Category\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "create-category" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Category", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Update Category\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "update-category" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Category", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Delete Category\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac1\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "delete-category" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Metadata Schemas API", - "item": [ - { - "name": "Metadata Schema Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Metadata Schema Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac2\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "metadata-schema-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Metadata Schemas", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Metadata Schemas\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac2\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-metadata-schemas" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Metadata Schema", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Metadata Schema\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"639ba2658407100061f5fac2\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-metadata-schema" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Locations API", - "item": [ - { - "name": "Location Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Location Object\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"64d0e09b5a917a1254315da7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "location-object" - } - ] - } - }, - "response": [] - }, - { - "name": "List Locations", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"List Locations\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"64d0e09b5a917a1254315da7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "list-locations" - } - ] - } - }, - "response": [] - }, - { - "name": "Get Location", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Get Location\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"64d0e09b5a917a1254315da7\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "get-location" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Qualifications API", - "item": [ - { - "name": "Qualification Object", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Qualification Object [Beta]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"64d0e09b5a917a1254315da8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "qualification-object" - } - ] - } - }, - "response": [] - }, - { - "name": "Examine Qualification [Beta]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Check Eligibility [Beta]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"64d0e09b5a917a1254315da8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "check-eligibility" - } - ] - } - }, - "response": [] - }, - { - "name": "Examine Qualification (client-side) [Beta]", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Check Eligibility (client-side) [Beta]\",\n \"category\": \"639ba2628407100061f5faac\",\n \"parentDoc\": \"64d0e09b5a917a1254315da8\",\n \"type\": \"endpoint\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "check-eligibility-client-side" - } - ] - } - }, - "response": [] - } - ] - } - ], - "auth": { - "type": "basic", - "basic": [ - { - "key": "username", - "value": "{{u}}", - "type": "string" - } - ] - }, - "event": [ - { - "listen": "prerequest", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "key": "username", - "value": "", - "type": "string", - "disabled": true - }, - { - "key": "password", - "value": "", - "type": "string", - "disabled": true - }, - { - "key": "u", - "value": "", - "type": "string" - } - ] -} \ No newline at end of file diff --git a/automation/Readme-Voucherify-Docs-Guides.postman_collection.json b/automation/Readme-Voucherify-Docs-Guides.postman_collection.json deleted file mode 100644 index 456771a6d..000000000 --- a/automation/Readme-Voucherify-Docs-Guides.postman_collection.json +++ /dev/null @@ -1,2095 +0,0 @@ -{ - "info": { - "_postman_id": "6d68eb46-6ebf-427d-8937-60176d4b0354", - "name": "Readme - Voucherify Docs - Guides", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "18603863", - "_collection_link": "https://crimson-zodiac-829239.postman.co/workspace/Voucherify-Testing~59bed91e-93d8-4799-9838-b01ffcc9f6f8/collection/18603863-6d68eb46-6ebf-427d-8937-60176d4b0354?action=share&source=collection_link&creator=18603863" - }, - "item": [ - { - "name": "Getting Started", - "item": [ - { - "name": "Introduction", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Home\",\n \"category\": \"639ba16d677235008f80043f\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "introduction" - } - ] - } - }, - "response": [] - }, - { - "name": "Quickstart", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Quickstart\",\n \"category\": \"639ba16d677235008f80043f\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "quickstart" - } - ] - } - }, - "response": [] - }, - { - "name": "Integration checklist", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Integration checklist\",\n \"category\": \"639ba16d677235008f80043f\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "welcome" - } - ] - } - }, - "response": [] - }, - { - "name": "Key concepts", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Key concepts\",\n \"category\": \"639ba16d677235008f80043f\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "key-concepts" - } - ] - } - }, - "response": [] - }, - { - "name": "Authentication", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Authentication\",\n \"category\": \"639ba16d677235008f80043f\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "authentication" - } - ] - } - }, - "response": [] - }, - { - "name": "API Endpoints", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"API Endpoints\",\n \"category\": \"639ba16d677235008f80043f\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "api-endpoints" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Development", - "item": [ - { - "name": "Security", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Security\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "security" - } - ] - } - }, - "response": [] - }, - { - "name": "Examples", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Examples\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "examples" - } - ] - } - }, - "response": [] - }, - { - "name": "API Reference", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"API Reference\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "api-reference" - } - ] - } - }, - "response": [] - }, - { - "name": "Error Codes", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Error Codes\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "error-codes" - } - ] - } - }, - "response": [] - }, - { - "name": "SDKs", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"SDKs\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "sdks" - } - ] - } - }, - "response": [] - }, - { - "name": "Test mode (Sandbox)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Test mode (Sandbox)\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "testing" - } - ] - } - }, - "response": [] - }, - { - "name": "Client-side API", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Client-side API\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "client-side-api" - } - ] - } - }, - "response": [] - }, - { - "name": "Limits", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Limits\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "limits" - } - ] - } - }, - "response": [] - }, - { - "name": "Performance", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Performance\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "performance" - } - ] - } - }, - "response": [] - }, - { - "name": "API Version Upgrades", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"API Version Upgrades\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "api-version-upgrades" - } - ] - } - }, - "response": [] - }, - { - "name": "Troubleshooting", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Troubleshooting\",\n \"category\": \"639ba16d677235008f800447\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "troubleshooting" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Building Blocks", - "item": [ - { - "name": "Redemption", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Redemption\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "redemption" - } - ] - } - }, - "response": [] - }, - { - "name": "Customers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Customers\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "customers" - } - ] - } - }, - "response": [] - }, - { - "name": "Products", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Products\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "products" - } - ] - } - }, - "response": [] - }, - { - "name": "Orders", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Orders\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "orders" - } - ] - } - }, - "response": [] - }, - { - "name": "Validation Rules", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Validation Rules\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "validation-rules" - } - ] - } - }, - "response": [] - }, - { - "name": "Campaigns", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Campaigns\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "campaigns" - } - ] - } - }, - "response": [] - }, - { - "name": "Vouchers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Vouchers\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "vouchers" - } - ] - } - }, - "response": [] - }, - { - "name": "Promotion Tier", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Promotion Tier\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 8\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "promotion-tier" - } - ] - } - }, - "response": [] - }, - { - "name": "Distribution", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Distribution\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 9\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "distribution" - } - ] - } - }, - "response": [] - }, - { - "name": "Earning Rules", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Earning Rules\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 10\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "earning-rules" - } - ] - } - }, - "response": [] - }, - { - "name": "Rewards", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Rewards\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 11\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "rewards" - } - ] - } - }, - "response": [] - }, - { - "name": "Webhooks", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Webhooks\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 12\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "webhooks" - } - ] - } - }, - "response": [] - }, - { - "name": "Metadata (custom fields)", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Metadata (custom fields)\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 13\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "metadata-custom-fields" - } - ] - } - }, - "response": [] - }, - { - "name": "Formula Builder", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Formula Builder\",\n \"category\": \"639ba16d677235008f800454\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 14\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "formula-builder" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Campaigns Recipes", - "item": [ - { - "name": "Qualification - Checking eligibility", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Qualification - Checking eligibility\",\n \"category\": \"639ba16d677235008f80045c\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "checking-eligibility" - } - ] - } - }, - "response": [] - }, - { - "name": "Locking Validation Session", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Locking Validation Session\",\n \"category\": \"639ba16d677235008f80045c\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "locking-validation-session" - } - ] - } - }, - "response": [] - }, - { - "name": "Referral Program", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Referral Program\",\n \"category\": \"639ba16d677235008f80045c\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "referral-program" - } - ] - } - }, - "response": [] - }, - { - "name": "Prepaid Gift Cards", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Prepaid Gift Cards\",\n \"category\": \"639ba16d677235008f80045c\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "prepaid-gift-cards" - } - ] - } - }, - "response": [] - }, - { - "name": "Loyalty Program", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Loyalty Program\",\n \"category\": \"639ba16d677235008f80045c\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "loyalty-program" - } - ] - } - }, - "response": [] - }, - { - "name": "Transfer Loyalty Points", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Transfer Loyalty Points\",\n \"category\": \"639ba16d677235008f80045c\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 6\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "transfer-loyalty-points" - } - ] - } - }, - "response": [] - }, - { - "name": "Stacking Promotion Tiers", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Stacking Promotion Tiers\",\n \"category\": \"639ba16d677235008f80045c\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 7\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "stacking-promotion-tiers" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Discounts Recipes", - "item": [ - { - "name": "Stackable discounts API", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Stackable discounts API\",\n \"category\": \"639ba16d677235008f80045e\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "manage-stackable-discounts" - } - ] - } - }, - "response": [] - }, - { - "name": "Discount Effects", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Discount Effects\",\n \"category\": \"639ba16d677235008f80045e\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "discount-effects" - } - ] - } - }, - "response": [] - }, - { - "name": "Product-specific discounts", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Product-specific discounts\",\n \"category\": \"639ba16d677235008f80045e\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "discount-for-particular-product" - } - ] - } - }, - "response": [] - }, - { - "name": "Free shipping discount", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Free shipping discount\",\n \"category\": \"639ba16d677235008f80045e\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "free-shipping-discount" - } - ] - } - }, - "response": [] - }, - { - "name": "Give item(s) for free - unit discount", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Give item(s) for free - unit discount\",\n \"category\": \"639ba16d677235008f80045e\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 5\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "give-item-for-free-unit-discount" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Distributions Recipes", - "item": [ - { - "name": "Geofencing", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Geofencing\",\n \"category\": \"639ba16d677235008f80045d\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "geofencing" - } - ] - } - }, - "response": [] - }, - { - "name": "CSV export with API", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"CSV export with API\",\n \"category\": \"639ba16d677235008f80045d\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "csv-export" - } - ] - } - }, - "response": [] - }, - { - "name": "Import legacy codes", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Import legacy codes\",\n \"category\": \"639ba16d677235008f80045d\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "import-codes" - } - ] - } - }, - "response": [] - }, - { - "name": "Messaging automation", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Messaging automation\",\n \"category\": \"639ba16d677235008f80045d\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 4\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "automatic-delivery" - } - ] - } - }, - "response": [] - } - ] - }, - { - "name": "More", - "item": [ - { - "name": "Support", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Support\",\n \"category\": \"639ba16d677235008f800441\",\n \"type\": \"basic\",\n \"hidden\": false,\n \"order\": 1\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "support" - } - ] - } - }, - "response": [] - }, - { - "name": "Roadmap", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Roadmap\",\n \"category\": \"639ba16d677235008f800441\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 2\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "roadmap" - } - ] - } - }, - "response": [] - }, - { - "name": "Status", - "request": { - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json", - "type": "text" - }, - { - "key": "x-readme-version", - "value": "{{x-readme-version}}", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"title\": \"Status\",\n \"category\": \"639ba16d677235008f800441\",\n \"type\": \"link\",\n \"hidden\": false,\n \"order\": 3\n}" - }, - "url": { - "raw": "{{baseUrl}}/v1/docs/:slug", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "docs", - ":slug" - ], - "variable": [ - { - "key": "slug", - "value": "status" - } - ] - } - }, - "response": [] - } - ] - } - ], - "auth": { - "type": "basic", - "basic": [ - { - "key": "username", - "value": "{{u}}", - "type": "string" - } - ] - }, - "event": [ - { - "listen": "prerequest", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "key": "username", - "value": "", - "type": "string", - "disabled": true - }, - { - "key": "password", - "value": "", - "type": "string", - "disabled": true - }, - { - "key": "u", - "value": "", - "type": "string" - } - ] -} \ No newline at end of file diff --git a/docs/reference-docs/ASYNC-ACTIONS-API-Async-Action-Object.md b/docs/reference-docs/ASYNC-ACTIONS-API-Async-Action-Object.md index 6966970ea..e1d5b6e68 100644 --- a/docs/reference-docs/ASYNC-ACTIONS-API-Async-Action-Object.md +++ b/docs/reference-docs/ASYNC-ACTIONS-API-Async-Action-Object.md @@ -1,6 +1,6 @@ --- title: Async Action Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: async-actions-api slug: async-action-object @@ -8,18 +8,145 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Async action unique ID.

|

aa_0adad13d6f057f088e

| -| type |

Type of async action.

Available values: `CAMPAIGN.VOUCHERS_IMPORT`, `CAMPAIGN.VOUCHERS_IMPORT_CSV`, `CAMPAIGN.VOUCHERS_UPDATE`, `CAMPAIGN.VOUCHERS_DELETE`, `CAMPAIGN.VOUCHERS_GENERATE`, `CAMPAIGNS.METADATA_KEY_PURGE`, `CUSTOMERS.IMPORT_CSV`, `CUSTOMERS.BULK_UPDATE`, `CUSTOMERS.METADATA_UPDATE`, `CUSTOMERS.METADATA_KEY_PURGE`, `PRODUCTS.BULK_UPDATE`, `PRODUCTS.METADATA_UPDATE`, `PRODUCTS.METADATA_KEY_PURGE`, `PRODUCTS.IMPORT_CSV`, `SKUS.IMPORT_CSV`, `VOUCHERS.IMPORT`, `VOUCHERS.IMPORT_CSV`, `VOUCHERS.BULK_UPDATE`, `VOUCHERS.METADATA_UPDATE`, `VOUCHERS.METADATA_KEY_PURGE`, `ORDERS.IMPORT`, `ORDERS.METADATA_KEY_PURGE` | | -| status |

Status of async action. Informs you whether the async action has already been completed.

Available values: `ENQUEUED`, `IN_PROGRESS`, `DONE`, `FAILED` | | -| result | Any of:

CAMPAIGN.VOUCHERS_IMPORT

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

failed

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescriptionExample
code

Unique voucher code.

reason

Detailed failure cause for the voucher code import.

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

CAMPAIGN.VOUCHERS_IMPORT_CSV

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

failed

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescriptionExample
code

Unique voucher code.

row

The CSV file row number where the code definition is recorded. The row counter excludes the file headers row.

reason

Detailed failure cause for the voucher code import.

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

CAMPAIGN.VOUCHERS_UPDATE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources processed successfully.

CAMPAIGN.VOUCHERS_DELETE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources processed successfully.

CAMPAIGN.VOUCHERS_GENERATE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources processed successfully.

CAMPAIGNS.METADATA_KEY_PURGE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources processed successfully.

CUSTOMERS.IMPORT_CSV

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

failed

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescriptionExample
source_id

Unique customer ID from your inventory system as indicated in the CSV file.

row

The CSV file row number where the customer is recorded. The row counter excludes the file headers row.

reason

Detailed failure cause for the customer import.

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

CUSTOMERS.BULK_UPDATE

AttributesDescriptionExample
results

An array of statuses for each record.

Array of:
AttributesDescriptionExample
source_id

Unique customer source_id.

updated

Indicates whether the record was updated.

found

Indicates whether the record was found.

done_count

Number or resources processed successfully.

CUSTOMERS.METADATA_UPDATE

AttributesDescriptionExample
results

An array of statuses for each record.

Array of:
AttributesDescriptionExample
source_id

Unique customer source_id.

updated

Indicates whether the record was updated.

found

Indicates whether the record was found.

done_count

Number of resources processed successfully.

CUSTOMERS.METADATA_KEY_PURGE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources processed successfully.

PRODUCTS.BULK_UPDATE

AttributesDescriptionExample
results

An array of statuses for each record.

Array of:
AttributesDescriptionExample
source_id

Unique product source_id.

updated

Indicates whether the record was updated.

found

Indicates whether the record was found.

done_count

Number of resources processed successfully.

PRODUCTS.METADATA_UPDATE

AttributesDescriptionExample
results

An array of statuses for each record.

Array of:
AttributesDescriptionExample
source_id

Unique product source_id.

updated

Indicates whether the record was updated.

found

Indicates whether the record was found.

done_count

Number of resources processed successfully.

PRODUCTS.IMPORT_CSV

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

failed

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescriptionExample
row

The CSV file row number where the product definition is recorded. The row counter excludes the file headers row.

reason

Detailed failure cause for the product import.

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

SKUS.IMPORT_CSV

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

2 sku(s) imported successfully, 6 failed.

failed

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescriptionExample
row

The CSV file row number where the SKU definition is recorded. The row counter excludes the file headers row.

2

reason

Detailed failure cause for the SKU import.

Resource sku with id size-small is in use by products with ids [prod_0b0e3441c2462eff2c]

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

PRODUCTS.METADATA_KEY_PURGE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources updated successfully.

VOUCHERS.IMPORT

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

failed

If any records failed during the process, this array shows the failure details.

AttributesDescriptionExample
code

Unique voucher code.

reason

Detailed failure cause for the voucher code import.

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

VOUCHERS.IMPORT_CSV

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

failed

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescriptionExample
code

Unique voucher code.

row

The CSV file row number where the code definition is recorded. The row counter excludes the file headers row.

reason

Detailed failure cause for the voucher code import.

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

VOUCHERS.BULK_UPDATE

AttributesDescriptionExample
results

An array of statuses for each record.

Array of:
AttributesDescriptionExample
code

Unique voucher code.

updated

Indicates whether the record was updated.

found

Indicates whether the record was found.

done_count

Number of resources processed successfully.

VOUCHERS.METADATA_UPDATE

AttributesDescriptionExample
results

An array of statuses for each record.

Array of:
AttributesDescriptionExample
code

Unique voucher code.

updated

Indicates whether the record was updated.

found

Indicates whether the record was found.

done_count

Number of resources processed successfully.

VOUCHERS.METADATA_KEY_PURGE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources processed successfully.

ORDERS.IMPORT

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

failed

If any records failed during the process, this array shows the failure details.

AttributesDescriptionExample
source_id

Unique order source ID.

reason

Detailed failure cause for the voucher code import.

done_count

Number of resources processed successfully.

failed_count

Number of resources failed to process.

ORDERS.METADATA_KEY_PURGE

AttributesDescriptionExample
message

A human-readable message providing a short description about the result.

done_count

Number of resources processed successfully.

| | -| created_at |

Timestamp representing the date and time when the async action was scheduled in ISO 8601 format.

|

2022-06-23T11:21:45.578Z

| -| updated_at |

Timestamp representing the date and time when the async action was updated in ISO 8601 format.

|

2022-06-23T11:21:46.795Z

| -| request_id |

Unique request ID.

|

v-0b45cee140c3c9b5ca

| -| processing_time |

The length of time it took to process the request in milliseconds.

|

1217

| -| progress |

% progress to completion of the asynchronous action.

| | -| object |

The type of object represented by JSON. This object stores information about the async_action.

| | +## Async Action Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Async action unique ID.

**Example:**

aa_0adad13d6f057f088e

| +| type
`string` |

Type of async action.

Available values: `CAMPAIGN.VOUCHERS_IMPORT`, `CAMPAIGN.VOUCHERS_IMPORT_CSV`, `CAMPAIGN.VOUCHERS_UPDATE`, `CAMPAIGN.VOUCHERS_DELETE`, `CAMPAIGN.VOUCHERS_GENERATE`, `CAMPAIGNS.METADATA_KEY_PURGE`, `CUSTOMERS.IMPORT_CSV`, `CUSTOMERS.BULK_UPDATE`, `CUSTOMERS.METADATA_UPDATE`, `CUSTOMERS.METADATA_KEY_PURGE`, `PRODUCTS.BULK_UPDATE`, `PRODUCTS.METADATA_UPDATE`, `PRODUCTS.METADATA_KEY_PURGE`, `PRODUCTS.IMPORT_CSV`, `SKUS.IMPORT_CSV`, `VOUCHERS.IMPORT`, `VOUCHERS.IMPORT_CSV`, `VOUCHERS.BULK_UPDATE`, `VOUCHERS.METADATA_UPDATE`, `VOUCHERS.METADATA_KEY_PURGE`, `ORDERS.IMPORT`, `ORDERS.METADATA_KEY_PURGE` | +| status
`string` |

Status of async action. Informs you whether the async action has already been completed.

Available values: `ENQUEUED`, `IN_PROGRESS`, `DONE`, `FAILED` | +| result | Any of: [CAMPAIGN.VOUCHERS_IMPORT](#campaign.vouchers_import), [CAMPAIGN.VOUCHERS_IMPORT_CSV](#campaign.vouchers_import_csv), [CAMPAIGN.VOUCHERS_UPDATE](#campaign.vouchers_update), [CAMPAIGN.VOUCHERS_DELETE](#campaign.vouchers_delete), [CAMPAIGN.VOUCHERS_GENERATE](#campaign.vouchers_generate), [CAMPAIGNS.METADATA_KEY_PURGE](#campaigns.metadata_key_purge), [CUSTOMERS.IMPORT_CSV](#customers.import_csv), [CUSTOMERS.BULK_UPDATE](#customers.bulk_update), [CUSTOMERS.METADATA_UPDATE](#customers.metadata_update), [CUSTOMERS.METADATA_KEY_PURGE](#customers.metadata_key_purge), [PRODUCTS.BULK_UPDATE](#products.bulk_update), [PRODUCTS.METADATA_UPDATE](#products.metadata_update), [PRODUCTS.IMPORT_CSV](#products.import_csv), [SKUS.IMPORT_CSV](#skus.import_csv), [PRODUCTS.METADATA_KEY_PURGE](#products.metadata_key_purge), [VOUCHERS.IMPORT](#vouchers.import), [VOUCHERS.IMPORT_CSV](#vouchers.import_csv), [VOUCHERS.BULK_UPDATE](#vouchers.bulk_update), [VOUCHERS.METADATA_UPDATE](#vouchers.metadata_update), [VOUCHERS.METADATA_KEY_PURGE](#vouchers.metadata_key_purge), [ORDERS.IMPORT](#orders.import), [ORDERS.METADATA_KEY_PURGE](#orders.metadata_key_purge) | +| created_at
`string` |

Timestamp representing the date and time when the async action was scheduled in ISO 8601 format.

**Example:**

2022-06-23T11:21:45.578Z

| +| updated_at
`string` |

Timestamp representing the date and time when the async action was updated in ISO 8601 format.

**Example:**

2022-06-23T11:21:46.795Z

| +| request_id
`string` |

Unique request ID.

**Example:**

v-0b45cee140c3c9b5ca

| +| processing_time
`integer` |

The length of time it took to process the request in milliseconds.

**Example:**

1217

| +| progress
`integer` |

% progress to completion of the asynchronous action.

| +| object
`string` |

The type of object represented by JSON. This object stores information about the async_action.

| +## CAMPAIGN.VOUCHERS_IMPORT +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| failed
`array` |

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescription
code
string

Unique voucher code.

reason
string

Detailed failure cause for the voucher code import.

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## CAMPAIGN.VOUCHERS_IMPORT_CSV +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| failed
`array` |

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescription
code
string

Unique voucher code.

row
integer

The CSV file row number where the code definition is recorded. The row counter excludes the file headers row.

reason
string

Detailed failure cause for the voucher code import.

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## CAMPAIGN.VOUCHERS_UPDATE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## CAMPAIGN.VOUCHERS_DELETE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## CAMPAIGN.VOUCHERS_GENERATE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## CAMPAIGNS.METADATA_KEY_PURGE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## CUSTOMERS.IMPORT_CSV +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| failed
`array` |

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescription
source_id
string

Unique customer ID from your inventory system as indicated in the CSV file.

row
integer

The CSV file row number where the customer is recorded. The row counter excludes the file headers row.

reason
string

Detailed failure cause for the customer import.

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## CUSTOMERS.BULK_UPDATE +| Attributes | Description | +|:-----|:--------| +| results
`array` |

An array of statuses for each record.

Array of:
AttributesDescription
source_id
string

Unique customer source_id.

updated
boolean

Indicates whether the record was updated.

found
boolean

Indicates whether the record was found.

| +| done_count
`integer` |

Number or resources processed successfully.

| +## CUSTOMERS.METADATA_UPDATE +| Attributes | Description | +|:-----|:--------| +| results
`array` |

An array of statuses for each record.

Array of:
AttributesDescription
source_id
string

Unique customer source_id.

updated
boolean

Indicates whether the record was updated.

found
boolean

Indicates whether the record was found.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## CUSTOMERS.METADATA_KEY_PURGE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## PRODUCTS.BULK_UPDATE +| Attributes | Description | +|:-----|:--------| +| results
`array` |

An array of statuses for each record.

Array of:
AttributesDescription
source_id
string

Unique product source_id.

updated
boolean

Indicates whether the record was updated.

found
boolean

Indicates whether the record was found.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## PRODUCTS.METADATA_UPDATE +| Attributes | Description | +|:-----|:--------| +| results
`array` |

An array of statuses for each record.

Array of:
AttributesDescription
source_id
string

Unique product source_id.

updated
boolean

Indicates whether the record was updated.

found
boolean

Indicates whether the record was found.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## PRODUCTS.IMPORT_CSV +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| failed
`array` |

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescription
row
integer

The CSV file row number where the product definition is recorded. The row counter excludes the file headers row.

reason
string

Detailed failure cause for the product import.

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## SKUS.IMPORT_CSV +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

**Example:**

2 sku(s) imported successfully, 6 failed.

| +| failed
`array` |

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescription
row
integer

The CSV file row number where the SKU definition is recorded. The row counter excludes the file headers row.

Example:

2

reason
string

Detailed failure cause for the SKU import.

Example:

Resource sku with id size-small is in use by products with ids [prod_0b0e3441c2462eff2c]

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## PRODUCTS.METADATA_KEY_PURGE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources updated successfully.

| +## VOUCHERS.IMPORT +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| failed
`object` |

If any records failed during the process, this array shows the failure details.

AttributesDescription
code
string

Unique voucher code.

reason
string

Detailed failure cause for the voucher code import.

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## VOUCHERS.IMPORT_CSV +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| failed
`array` |

If any records failed during the process, this array shows the failure details.

Array of:
AttributesDescription
code
string

Unique voucher code.

row
integer

The CSV file row number where the code definition is recorded. The row counter excludes the file headers row.

reason
string

Detailed failure cause for the voucher code import.

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## VOUCHERS.BULK_UPDATE +| Attributes | Description | +|:-----|:--------| +| results
`array` |

An array of statuses for each record.

Array of:
AttributesDescription
code
string

Unique voucher code.

updated
boolean

Indicates whether the record was updated.

found
boolean

Indicates whether the record was found.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## VOUCHERS.METADATA_UPDATE +| Attributes | Description | +|:-----|:--------| +| results
`array` |

An array of statuses for each record.

Array of:
AttributesDescription
code
string

Unique voucher code.

updated
boolean

Indicates whether the record was updated.

found
boolean

Indicates whether the record was found.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## VOUCHERS.METADATA_KEY_PURGE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources processed successfully.

| +## ORDERS.IMPORT +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| failed
`object` |

If any records failed during the process, this array shows the failure details.

AttributesDescription
source_id
string

Unique order source ID.

reason
string

Detailed failure cause for the voucher code import.

| +| done_count
`integer` |

Number of resources processed successfully.

| +| failed_count
`integer` |

Number of resources failed to process.

| +## ORDERS.METADATA_KEY_PURGE +| Attributes | Description | +|:-----|:--------| +| message
`string` |

A human-readable message providing a short description about the result.

| +| done_count
`integer` |

Number of resources processed successfully.

| [block:html] { diff --git a/docs/reference-docs/CAMPAIGNS-API-Campaign-Object.md b/docs/reference-docs/CAMPAIGNS-API-Campaign-Object.md index ab8faa8ba..665f31e60 100644 --- a/docs/reference-docs/CAMPAIGNS-API-Campaign-Object.md +++ b/docs/reference-docs/CAMPAIGNS-API-Campaign-Object.md @@ -1,6 +1,6 @@ --- title: Campaign Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: campaigns-api slug: campaign-object @@ -8,37 +8,198 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique campaign ID, assigned by Voucherify.

|

camp_f7fBbQxUuTN7dI7tGOo5XMDA

| -| name |

Campaign name.

| | -| description |

An optional field to keep any extra textual information about the campaign such as a campaign description and details.

| | -| campaign_type |

Type of campaign.

Available values: `LOYALTY_PROGRAM`, `GIFT_VOUCHERS`, `DISCOUNT_COUPONS`, `PROMOTION`, `REFERRAL_PROGRAM`, `LUCKY_DRAW` | | -| type |

Defines whether the campaign can be updated with new vouchers after campaign creation.

Available values: `AUTO_UPDATE`, `STATIC` | | -| voucher | Any of:

Discount Voucher

AttributesDescriptionExample
type

Type of voucher.

discount

Defines the voucher discount type and details.

One of:

Amount

AttributesDescriptionExample
type

Applies an amount discount.

amount_off

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

100

amount_off_formula

Formula used to calculate the discount.

effect

Defines how the discount is applied to the customer's order

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS, APPLY_TO_ITEMS_PROPORTIONALLY, APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY, APPLY_TO_ITEMS_BY_QUANTITY

Percentage

AttributesDescriptionExample
type

Applies a percentage discount.

amount_limit

Upper limit allowed to be applied as a discount. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

percent_off

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

percent_off_formula

Formula used to calculate the discount.

effect

Defines how the discount is applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS

Fixed

AttributesDescriptionExample
type

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

fixed_amount

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

1000

fixed_amount_formula

Formula used to calculate the discounted price of an item or a new order total.

effect
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS

Unit, single item

AttributesDescriptionExample
type

Applies a full value discount to item(s).

unit_off

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

1

unit_off_formula

Formula used to calculate the number of units.

unit_type

The product deemed as free, chosen from the product inventory (e.g. time, items).

prod_f1r5Tpr0DuC7

effect

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS

Unit, multiple items

AttributesDescriptionExample
type

Applies a full value discount to item(s).

effect

Defines the effect for adding multiple item types.

units

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescriptionExample
unit_off

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

1

unit_off_formula

Formula used to calculate the number of units.

unit_type

The product deemed as free, chosen from the product inventory (e.g. time, items).

prod_f1r5Tpr0DuC7

effect

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS

Shipping

AttributesDescriptionExample
type

Applies a full value discount to item(s).

unit_off

Subtracts 1 shipping item from the subtotal.

unit_type

The shipping product deemed as free.

effect

Defines how the unit is added to the customer's order.

redemption

Defines the redemption limits on vouchers.

AttributesDescriptionExample
quantity

How many times a voucher can be redeemed. A null value means unlimited.

code_config

Defines code's pattern (prefix, suffix, length, charset, etc).

AttributesDescriptionExample
length

Number of characters in a generated code (excluding prefix and postfix).

charset

Characters that can appear in the code.

Examples:

  • Alphanumeric: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic Lowercase: abcdefghijklmnopqrstuvwxyz
  • Alphabetic Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Numbers: 0123456789
  • Custom: a custom character set
prefix

A text appended before the code.

postfix

A text appended after the code.

pattern

A pattern for codes where hashes (#) will be replaced with random characters. Overrides length.

is_referral_code

Indicates whether the voucher is a referral code; this is true for campaign type REFERRAL_PROGRAM.

Gift Card

AttributesDescriptionExample
type

Type of voucher.

gift

Defines the gift card details.

AttributesDescriptionExample
amount

Initial gift card income to be applied to the gift card at voucher generation. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

effect

Defines how the credits are applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS
redemption

Defines the redemption limits on vouchers.

AttributesDescriptionExample
quantity

How many times a voucher can be redeemed. A null value means unlimited.

code_config

Defines code's pattern (prefix, suffix, length, charset, etc).

AttributesDescriptionExample
length

Number of characters in a generated code (excluding prefix and postfix).

charset

Characters that can appear in the code.

Examples:

  • Alphanumeric: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic Lowercase: abcdefghijklmnopqrstuvwxyz
  • Alphabetic Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Numbers: 0123456789
  • Custom: a custom character set
prefix

A text appended before the code.

postfix

A text appended after the code.

pattern

A pattern for codes where hashes (#) will be replaced with random characters. Overrides length.

is_referral_code

Indicates whether the voucher is a referral code; this is true for campaign type REFERRAL_PROGRAM.

Loyalty Card

AttributesDescriptionExample
type

Type of voucher.

loyalty_card

Defines the loyalty card details.

AttributesDescriptionExample
points

Initial loyalty card income in points to be applied to the loyalty card at voucher generation.

expiration_rules

Defines point expiration rules.

AttributesDescriptionExample
period_type

The expiration period.

Available values: MONTH
period_value

How many periods should pass before the expiration occurs.

rounding_type

Round up expiration till the end of the given period type.

Available values: END_OF_MONTH, END_OF_QUARTER, END_OF_HALF_YEAR, END_OF_YEAR, PARTICULAR_MONTH
redemption

Defines the redemption limits on vouchers.

AttributesDescriptionExample
quantity

How many times a voucher can be redeemed. A null value means unlimited.

code_config

Defines code's pattern (prefix, suffix, length, charset, etc).

AttributesDescriptionExample
length

Number of characters in a generated code (excluding prefix and postfix).

charset

Characters that can appear in the code.

Examples:

  • Alphanumeric: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic Lowercase: abcdefghijklmnopqrstuvwxyz
  • Alphabetic Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Numbers: 0123456789
  • Custom: a custom character set
prefix

A text appended before the code.

postfix

A text appended after the code.

pattern

A pattern for codes where hashes (#) will be replaced with random characters. Overrides length.

is_referral_code

Indicates whether the voucher is a referral code; this is true for campaign type REFERRAL_PROGRAM.

| | -| auto_join |

Indicates whether customers will be able to auto-join a loyalty campaign if any earning rule is fulfilled.

| | -| join_once |

If this value is set to true, customers will be able to join the campaign only once.

| | -| use_voucher_metadata_schema |

Flag indicating whether the campaign is to use the voucher's metadata schema instead of the campaign metadata schema.

| | -| validity_timeframe |

Set recurrent time periods when the campaign is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescriptionExample
interval

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a campaign with an interval of P2D will be active every other day.

duration

Defines the amount of time the campaign will be active in ISO 8601 format. For example, a campaign with a duration of P1D will be valid for a duration of one day.

| | -| validity_day_of_week |

Integer array corresponding to the particular days of the week in which the campaign is valid.

| | -| activity_duration_after_publishing |

Defines the amount of time the campaign will be active in ISO 8601 format after publishing. For example, a campaign with a duration of P24D will be valid for a duration of 24 days.

| | -| vouchers_count |

Total number of unique vouchers in campaign.

| | -| start_date |

Activation timestamp defines when the campaign starts to be active in ISO 8601 format. Campaign is inactive before this date.

|

2022-09-20T00:00:00.000Z

| -| expiration_date |

Expiration timestamp defines when the campaign expires in ISO 8601 format. Campaign is inactive after this date.

|

2022-09-30T00:00:00.000Z

| -| active |

A flag to toggle the campaign on or off. You can disable a campaign even though it's within the active period defined by the start_date and expiration_date.

| | -| metadata |

The metadata object stores all custom attributes assigned to the campaign. A set of key/value pairs that you can attach to a campaign object. It can be useful for storing additional information about the campaign in a structured format.

| | -| created_at |

Timestamp representing the date and time when the campaign was created in ISO 8601 format.

|

2021-12-01T08:00:50.038Z

| -| updated_at |

Timestamp representing the date and time when the voucher was updated in ISO 8601 format.

|

2022-09-20T09:18:19.623Z

| -| category |

Unique category name.

| | -| creation_status |

Indicates the status of the campaign creation.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT`, `MODIFYING` | | -| vouchers_generation_status |

Indicates the status of the campaign's vouchers.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT` | | -| protected |

Indicates whether the resource can be deleted.

| | -| category_id |

Unique category ID that this campaign belongs to.

|

cat_0b688929a2476386a7

| -| categories | | | -| object |

The type of object represented by JSON. This object stores information about the campaign.

| | -| referral_program |

Defines the referee reward and the way a referral is triggered. Context: REFERRAL_PROGRAM.

AttributesDescriptionExample
conversion_event_type

How a referral is triggered.

Available values: redemption, custom_event
custom_event

Contains details about the custom event.

AttributesDescriptionExample
id

Unique custom event ID.

ms_fi47Dcu5T0m3v3nT5ch3ma

name

Custom event name.

referee_reward

Defines the referee reward.

AttributesDescriptionExample
related_object_parent

Details of the resource from which the reward originates.

AttributesDescriptionExample
id

Unique ID of the reward source.

name

Name of the reward source.

object

Type of resource represented by the source of the reward.

type

Type of reward.

Available values: LOYALTY_CARD, GIFT_VOUCHER
amount

The number of points to add to a loyalty card or credits to the balance on a gift card. In case of the gift card, the value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

| | -| promotion | | | -| loyalty_tiers_expiration |

Defines the expiration mechanism for loyalty tiers.

Any of:

Balance

AttributesDescriptionExample
qualification_type

Tier qualification.

BALANCE: Points balance is based on the customer's current points balance. Customers qualify for the tier if their points balance is in the points range of the tier.

Available values: BALANCE
start_date

Defines the conditions for the start date of the tier.

AttributesDescriptionExample
type

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.

Available values: IMMEDIATE
expiration_date

Defines the conditions for the expiration date of a tier.

Any of:

Balance Drop

AttributesDescriptionExample
type

What triggers the tier to expire for a customer.
BALANCE_DROP: Tier expires when the points balance drops below the required range of the tier.

Available values: BALANCE_DROP

Custom

AttributesDescriptionExample
type

What triggers the tier to expire for a customer.
CUSTOM: Tier expires after a certain time period passes following the instance the points balance drops below the required range of the tier.

Available values: CUSTOM
extend

Defines the amount of time the tier will remain active in ISO 8601 format. The expiration date counter starts at the moment when the customer reaches the minimum required points that are required to be in the tier. For example, a tier with a duration of P3M will be valid for a duration of 3 months.

rounding

Defines the rounding mechanism for tier expiration.

Any of:

Calendar Periods

AttributesDescriptionExample
type

Period to which the expiration will be rounded to.

  • MONTH: The expiration date will be rounded to the end of the month.
  • QUARTER: The expiration date will be rounded to the end of the quarter.
  • HALF_YEAR: The expiration date will be rounded to the half year.
  • YEAR: The expiration date will be rounded to the end of the year.
Available values: MONTH, QUARTER, HALF_YEAR, YEAR
strategy

Which portion of the given period should the rounding be applied to.

Available values: END

Specific Month

AttributesDescriptionExample
type

This mechanism describes a custom rounding for the expiration date.

Available values: CUSTOM
strategy

Which portion of the given period should the rounding be applied to.

Available values: END
unit

Defines the type of unit of time in which the rounding period is counted.

Available values: MONTH
value

Value for the unit of time that the rounding applies to. Units for this parameter are defined by the rounding.unit parameter.

  • 0: January
  • 1: February
  • 2: March
  • 3: April
  • 4: May
  • 5: June
  • 6: July
  • 7: August
  • 8: September
  • 9: October
  • 10: November
  • 11: December

Points in Period

AttributesDescriptionExample
qualification_type

Tier qualification.

POINTS_IN_PERIOD: A customer qualifies for the tier only if the sum of the accumulated points in a defined time interval reaches the tier threshold.

Available values: POINTS_IN_PERIOD
qualification_period

Customers can qualify for the tier if they collected enough points in a given time period. So, in addition to the customer having to reach a points range, they also need to have collected the points within a set time period.

PeriodDefinition
Calendar MonthPoints collected in one calendar month
January, February, March, etc.
Calendar QuarterPoints collected in the quarter
- January - March
- April - June
- July - September
- October - December
Calendar Half-yearPoints collected in the half-year
- January - June
- July - December
Calendar YearPoints collected in one calendar year
January - December
Available values: MONTH, QUARTER, HALF_YEAR, YEAR
start_date

Defines the conditions for the start date of the tier.

AttributesDescriptionExample
type

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.
NEXT_PERIOD: When the next qualification period starts.

Available values: IMMEDIATE, NEXT_PERIOD
expiration_date

Defines the conditions for the expiration date of a tier.

AttributesDescriptionExample
type

What triggers the tier to expire for a customer.
END_OF_PERIOD: Expire tier at the end of the period.
END_OF_NEXT_PERIOD: Expire tier at the end of the next period.

Available values: END_OF_PERIOD, END_OF_NEXT_PERIOD
extend

Extend the expiration by adding extra months or days in ISO 8601 format. The tier will remain active even though it reaches its expiration time period. For example, a tier with a duration of P3M will be valid for an additional duration of 3 months and a tier with a duration of P1D will be valid for an additional duration of 1 day.

| | +## Campaign Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique campaign ID, assigned by Voucherify.

**Example:**

camp_f7fBbQxUuTN7dI7tGOo5XMDA

| +| name
`string` |

Campaign name.

| +| description
`string` |

An optional field to keep any extra textual information about the campaign such as a campaign description and details.

| +| campaign_type
`string` |

Type of campaign.

Available values: `LOYALTY_PROGRAM`, `GIFT_VOUCHERS`, `DISCOUNT_COUPONS`, `PROMOTION`, `REFERRAL_PROGRAM`, `LUCKY_DRAW` | +| type
`string` |

Defines whether the campaign can be updated with new vouchers after campaign creation.

Available values: `AUTO_UPDATE`, `STATIC` | +| voucher | Any of: [Discount Voucher](#discount-voucher), [Gift Card](#gift-card), [Loyalty Card](#loyalty-card) | +| auto_join
`boolean` |

Indicates whether customers will be able to auto-join a loyalty campaign if any earning rule is fulfilled.

| +| join_once
`boolean` |

If this value is set to true, customers will be able to join the campaign only once.

| +| use_voucher_metadata_schema
`boolean` |

Flag indicating whether the campaign is to use the voucher's metadata schema instead of the campaign metadata schema.

| +| validity_timeframe
`object` |

Set recurrent time periods when the campaign is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescription
interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a campaign with an interval of P2D will be active every other day.

duration
string

Defines the amount of time the campaign will be active in ISO 8601 format. For example, a campaign with a duration of P1D will be valid for a duration of one day.

| +| validity_day_of_week
`array` |

Integer array corresponding to the particular days of the week in which the campaign is valid.

| +| activity_duration_after_publishing
`string` |

Defines the amount of time the campaign will be active in ISO 8601 format after publishing. For example, a campaign with a duration of P24D will be valid for a duration of 24 days.

| +| vouchers_count
`integer` |

Total number of unique vouchers in campaign.

| +| start_date
`string` |

Activation timestamp defines when the campaign starts to be active in ISO 8601 format. Campaign is inactive before this date.

**Example:**

2022-09-20T00:00:00.000Z

| +| expiration_date
`string` |

Expiration timestamp defines when the campaign expires in ISO 8601 format. Campaign is inactive after this date.

**Example:**

2022-09-30T00:00:00.000Z

| +| active
`boolean` |

A flag to toggle the campaign on or off. You can disable a campaign even though it's within the active period defined by the start_date and expiration_date.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the campaign. A set of key/value pairs that you can attach to a campaign object. It can be useful for storing additional information about the campaign in a structured format.

| +| created_at
`string` |

Timestamp representing the date and time when the campaign was created in ISO 8601 format.

**Example:**

2021-12-01T08:00:50.038Z

| +| updated_at
`string` |

Timestamp representing the date and time when the voucher was updated in ISO 8601 format.

**Example:**

2022-09-20T09:18:19.623Z

| +| category
`string` |

Unique category name.

| +| creation_status
`string` |

Indicates the status of the campaign creation.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT`, `MODIFYING` | +| vouchers_generation_status
`string` |

Indicates the status of the campaign's vouchers.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT` | +| protected
`boolean` |

Indicates whether the resource can be deleted.

| +| category_id
`string` |

Unique category ID that this campaign belongs to.

**Example:**

cat_0b688929a2476386a7

| +| categories | See: [Category Object](#category-object) | +| object
`string` |

The type of object represented by JSON. This object stores information about the campaign.

| +| referral_program
`object` |

Defines the referee reward and the way a referral is triggered. Context: REFERRAL_PROGRAM.

AttributesDescription
conversion_event_type
string

How a referral is triggered.

Available values: redemption, custom_event
custom_event
object

Contains details about the custom event.

AttributesDescription
id
string

Unique custom event ID.

Example:

ms_fi47Dcu5T0m3v3nT5ch3ma

name
string

Custom event name.

referee_reward
object

Defines the referee reward.

AttributesDescription
related_object_parent
object

Details of the resource from which the reward originates.

AttributesDescription
id
string

Unique ID of the reward source.

name
string

Name of the reward source.

object
string

Type of resource represented by the source of the reward.

type
string

Type of reward.

Available values: LOYALTY_CARD, GIFT_VOUCHER
amount
string

The number of points to add to a loyalty card or credits to the balance on a gift card. In case of the gift card, the value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

| +| promotion | See: [Promotion Tiers](#promotion-tiers) | +| loyalty_tiers_expiration
`object` |

Defines the expiration mechanism for loyalty tiers.

Any of: [Balance](#balance), [Points in Period](#points-in-period) | +## Discount Voucher +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Type of voucher.

| +| discount |

Defines the voucher discount type and details.

One of: [Amount](#amount), [Percentage](#percentage), [Fixed](#fixed), [Unit, single item](#unit-single-item), [Unit, multiple items](#unit-multiple-items), [Shipping](#shipping) | +| redemption
`object` |

Defines the redemption limits on vouchers.

AttributesDescription
quantity
integer

How many times a voucher can be redeemed. A null value means unlimited.

| +| code_config
`object` |

Defines code's pattern (prefix, suffix, length, charset, etc).

AttributesDescription
length
string

Number of characters in a generated code (excluding prefix and postfix).

charset
string

Characters that can appear in the code.

Examples:

  • Alphanumeric: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic Lowercase: abcdefghijklmnopqrstuvwxyz
  • Alphabetic Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Numbers: 0123456789
  • Custom: a custom character set
prefix
string

A text appended before the code.

postfix
string

A text appended after the code.

pattern
string

A pattern for codes where hashes (#) will be replaced with random characters. Overrides length.

| +| is_referral_code
`boolean` |

Indicates whether the voucher is a referral code; this is true for campaign type REFERRAL_PROGRAM.

| +## Gift Card +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Type of voucher.

| +| gift
`object` |

Defines the gift card details.

AttributesDescription
amount
integer

Initial gift card income to be applied to the gift card at voucher generation. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

effect
string

Defines how the credits are applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS
| +| redemption
`object` |

Defines the redemption limits on vouchers.

AttributesDescription
quantity
integer

How many times a voucher can be redeemed. A null value means unlimited.

| +| code_config
`object` |

Defines code's pattern (prefix, suffix, length, charset, etc).

AttributesDescription
length
string

Number of characters in a generated code (excluding prefix and postfix).

charset
string

Characters that can appear in the code.

Examples:

  • Alphanumeric: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic Lowercase: abcdefghijklmnopqrstuvwxyz
  • Alphabetic Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Numbers: 0123456789
  • Custom: a custom character set
prefix
string

A text appended before the code.

postfix
string

A text appended after the code.

pattern
string

A pattern for codes where hashes (#) will be replaced with random characters. Overrides length.

| +| is_referral_code
`boolean` |

Indicates whether the voucher is a referral code; this is true for campaign type REFERRAL_PROGRAM.

| +## Loyalty Card +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Type of voucher.

| +| loyalty_card
`object` |

Defines the loyalty card details.

AttributesDescription
points
integer

Initial loyalty card income in points to be applied to the loyalty card at voucher generation.

expiration_rules
object

Defines point expiration rules.

AttributesDescription
period_type
string

The expiration period.

Available values: MONTH
period_value
integer

How many periods should pass before the expiration occurs.

rounding_type
string

Round up expiration till the end of the given period type.

Available values: END_OF_MONTH, END_OF_QUARTER, END_OF_HALF_YEAR, END_OF_YEAR, PARTICULAR_MONTH
| +| redemption
`object` |

Defines the redemption limits on vouchers.

AttributesDescription
quantity
integer

How many times a voucher can be redeemed. A null value means unlimited.

| +| code_config
`object` |

Defines code's pattern (prefix, suffix, length, charset, etc).

AttributesDescription
length
string

Number of characters in a generated code (excluding prefix and postfix).

charset
string

Characters that can appear in the code.

Examples:

  • Alphanumeric: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic Lowercase: abcdefghijklmnopqrstuvwxyz
  • Alphabetic Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Numbers: 0123456789
  • Custom: a custom character set
prefix
string

A text appended before the code.

postfix
string

A text appended after the code.

pattern
string

A pattern for codes where hashes (#) will be replaced with random characters. Overrides length.

| +| is_referral_code
`boolean` |

Indicates whether the voucher is a referral code; this is true for campaign type REFERRAL_PROGRAM.

| +## Category Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique category ID assigned by Voucherify.

| +| name
`string` |

Category name.

| +| hierarchy
`integer` |

Category hierarchy.

| +| created_at
`string` |

Timestamp representing the date and time when the category was created in ISO 8601 format.

**Example:**

2022-07-14T10:45:13.156Z

| +| updated_at
`string` |

Timestamp representing the date and time when the category was updated in ISO 8601 format.

**Example:**

2022-08-16T10:52:08.094Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the category.

| +## Promotion Tiers +| Attributes | Description | +|:-----|:--------| +| object
`string` |

The type of object represented by JSON. This object stores information about promotion tiers in a dictionary.

| +| data_ref
`string` |

Identifies the name of the attribute that contains the array of promotion tier objects.

| +| tiers
`array` |

Contains array of promotion tier objects.

Array of [Promotion Tier Object](#promotion-tier-object) | +| total
`integer` |

Total number of promotion tiers.

| +| has_more
`boolean` |

As query results are always limited (by the limit parameter), the has_more flag indicates whether there are more records for given filter parameters. This let's you know if you are able to run another request (with a different page or a different start date filter) to get more records returned in the results.

| +## Balance +| Attributes | Description | +|:-----|:--------| +| qualification_type
`string` |

Tier qualification.

BALANCE: Points balance is based on the customer's current points balance. Customers qualify for the tier if their points balance is in the points range of the tier.

Available values: `BALANCE` | +| start_date
`object` |

Defines the conditions for the start date of the tier.

AttributesDescription
type
string

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.

Available values: IMMEDIATE
| +| expiration_date |

Defines the conditions for the expiration date of a tier.

Any of: [Balance Drop](#balance-drop), [Custom](#custom) | +## Points in Period +| Attributes | Description | +|:-----|:--------| +| qualification_type
`string` |

Tier qualification.

POINTS_IN_PERIOD: A customer qualifies for the tier only if the sum of the accumulated points in a defined time interval reaches the tier threshold.

Available values: `POINTS_IN_PERIOD` | +| qualification_period
`string` |

Customers can qualify for the tier if they collected enough points in a given time period. So, in addition to the customer having to reach a points range, they also need to have collected the points within a set time period.

PeriodDefinition
Calendar MonthPoints collected in one calendar month
January, February, March, etc.
Calendar QuarterPoints collected in the quarter
- January - March
- April - June
- July - September
- October - December
Calendar Half-yearPoints collected in the half-year
- January - June
- July - December
Calendar YearPoints collected in one calendar year
January - December
Available values: `MONTH`, `QUARTER`, `HALF_YEAR`, `YEAR` | +| start_date
`object` |

Defines the conditions for the start date of the tier.

AttributesDescription
type
string

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.
NEXT_PERIOD: When the next qualification period starts.

Available values: IMMEDIATE, NEXT_PERIOD
| +| expiration_date
`object` |

Defines the conditions for the expiration date of a tier.

AttributesDescription
type
string

What triggers the tier to expire for a customer.
END_OF_PERIOD: Expire tier at the end of the period.
END_OF_NEXT_PERIOD: Expire tier at the end of the next period.

Available values: END_OF_PERIOD, END_OF_NEXT_PERIOD
extend
string

Extend the expiration by adding extra months or days in ISO 8601 format. The tier will remain active even though it reaches its expiration time period. For example, a tier with a duration of P3M will be valid for an additional duration of 3 months and a tier with a duration of P1D will be valid for an additional duration of 1 day.

| +## Amount +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies an amount discount.

| +| amount_off
`integer` |

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

**Example:**

100

| +| amount_off_formula
`string` |

Formula used to calculate the discount.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600. This value is definable for the following discount effects:

| +| effect
`string` |

Defines how the discount is applied to the customer's order. The discount effects are defined as follows:

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS`, `APPLY_TO_ITEMS_PROPORTIONALLY`, `APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY`, `APPLY_TO_ITEMS_BY_QUANTITY` | +## Percentage +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a percentage discount.

| +| amount_limit
`string` |

Upper limit allowed to be applied as a discount per order line item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. This value is definable for the APPLY_TO_ITEMS discount effect. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600.

| +| percent_off
`integer` |

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

| +| percent_off_formula
`string` |

Formula used to calculate the discount.

| +| effect
`string` |

Defines how the discount is applied to the customer's order.

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Fixed +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

| +| fixed_amount
`integer` |

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

**Example:**

1000

| +| fixed_amount_formula
`string` |

Formula used to calculate the discounted price of an item or a new order total.

| +| effect
`string` |
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Unit, single item +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

**Example:**

1

| +| unit_off_formula
`string` |

Formula used to calculate the number of units.

| +| unit_type
`string` |

The product deemed as free, chosen from the product inventory (e.g. time, items).

**Example:**

prod_f1r5Tpr0DuC7

| +| effect
`string` |

Defines how the unit is added to the customer's order.

Available values: `ADD_NEW_ITEMS`, `ADD_MISSING_ITEMS` | +## Unit, multiple items +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| effect
`string` |

Defines the effect for adding multiple item types.

| +| units
`array` |

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescription
unit_off
integer

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

Example:

1

unit_off_formula
string

Formula used to calculate the number of units.

unit_type
string

The product deemed as free, chosen from the product inventory (e.g. time, items).

Example:

prod_f1r5Tpr0DuC7

effect
string

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS
| +## Shipping +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Subtracts 1 shipping item from the subtotal.

| +| unit_type
`string` |

The shipping product deemed as free.

| +| effect
`string` |

Defines how the unit is added to the customer's order.

| +## Promotion Tier Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique promotion tier ID.

**Example:**

promo_63fYCt81Aw0h7lzyRkrGZh9p

| +| created_at
`string` |

Timestamp representing the date and time when the promotion tier was created in ISO 8601 format.

**Example:**

2021-12-15T11:34:01.333Z

| +| updated_at
`string` |

Timestamp representing the date and time when the promotion tier was updated in ISO 8601 format.

**Example:**

2022-02-09T09:20:05.603Z

| +| name
`string` |

Name of the promotion tier.

| +| banner
`string` |

Text to be displayed to your customers on your website.

| +| action
`object` |

Contains details about the discount applied by the promotion tier.

AttributesDescription
discount

The type of discount that will be applied to a customer's order.

Any of: Amount, Percentage, Fixed, Unit, single item, Unit, multiple items, Shipping
| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the promotion tier. A set of key/value pairs that you can attach to a promotion tier object. It can be useful for storing additional information about the promotion tier in a structured format.

| +| hierarchy
`integer` |

The promotions hierarchy defines the order in which the discounts from different tiers will be applied to a customer's order. If a customer qualifies for discounts from more than one tier, discounts will be applied in the order defined in the hierarchy.

| +| campaign
`object` |

Contains details about promotion tier's parent campaign.

AttributesDescription
id
string

Unique campaign ID.

start_date
string

Activation timestamp defines when the campaign starts to be active in ISO 8601 format. Campaign is inactive before this date.

Example:

2022-09-22T00:00:00.000Z

expiration_date
string

Expiration timestamp defines when the campaign expires in ISO 8601 format. Campaign is inactive after this date.

Example:

2022-09-30T00:00:00.000Z

validity_timeframe
object

Recurrent time periods when the campaign is valid. For example, valid for 1 hour every other day.

AttributesDescription
interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a campaign with an interval of P2D will be active every other day.

duration
string

Defines the amount of time the campaign will be active in ISO 8601 format. For example, a campaign with a duration of P1D will be valid for a duration of one day.

validity_day_of_week
array

Integer array corresponding to the particular days of the week in which the campaign is valid.

  • 0 Sunday
  • 1 Monday
  • 2 Tuesday
  • 3 Wednesday
  • 4 Thursday
  • 5 Friday
  • 6 Saturday
active
boolean

A flag indicating whether the campaign is active or not active. A campaign can be disabled even though it's within the active period defined by the start_date and expiration_date using the Disable Campaign endpoint.

  • true indicates an active campaign
  • false indicates an inactive campaign
category_id
string

Unique category ID that this campaign belongs to.

Example:

cat_0b688929a2476386a6

object
string

The type of object represented by the campaign object. This object stores information about the campaign.

| +| campaign_id
`string` |

Promotion tier's parent campaign's unique ID.

| +| active
`boolean` |

A flag to toggle the promotion tier on or off. You can disable a promotion tier even though it's within the active period defined by the start_date and expiration_date.

| +| start_date
`string` |

Activation timestamp defines when the promotion tier starts to be active in ISO 8601 format. Promotion tier is inactive before this date.

**Example:**

2022-09-23T00:00:00.000Z

| +| expiration_date
`string` |

Activation timestamp defines when the promotion tier expires in ISO 8601 format. Promotion tier is inactive after this date.

**Example:**

2022-09-26T00:00:00.000Z

| +| validity_timeframe
`object` |

Set recurrent time periods when the promotion tier is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescription
interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a promotion tier with an interval of P2D will be active every other day.

duration
string

Defines the amount of time the promotion tier will be active in ISO 8601 format. For example, a promotion tier with a duration of P1D will be valid for a duration of one day.

| +| validity_day_of_week
`array` |

Integer array corresponding to the particular days of the week in which the promotion tier is valid.

| +| summary
`object` |

Contains statistics about promotion tier redemptions and orders.

AttributesDescription
redemptions
object

Contains statistics about promotion tier redemptions.

AttributesDescription
total_redeemed
integer

Number of times the promotion tier was redeemed.

orders
object

Contains statistics about orders related to the promotion tier.

AttributesDescription
total_amount
integer

Sum of order totals.

total_discount_amount
integer

Sum of total discount applied using the promotion tier.

| +| object
`string` |

The type of object represented by JSON. This object stores information about the promotion tier.

| +| validation_rule_assignments | See: [Validation Rule Assignments](#validation-rule-assignments) | +| category_id
`string` |

Promotion tier category ID.

**Example:**

cat_0c9da30e7116ba6bba

| +| categories |

Details about the category assigned to the promotion tier.

See: [Category Object](#category-object) | +## Balance Drop +| Attributes | Description | +|:-----|:--------| +| type
`string` |

What triggers the tier to expire for a customer.
BALANCE_DROP: Tier expires when the points balance drops below the required range of the tier.

Available values: `BALANCE_DROP` | +## Custom +| Attributes | Description | +|:-----|:--------| +| type
`string` |

What triggers the tier to expire for a customer.
CUSTOM: Tier expires after a certain time period passes following the instance the points balance drops below the required range of the tier.

Available values: `CUSTOM` | +| extend
`string` |

Defines the amount of time the tier will remain active in ISO 8601 format. The expiration date counter starts at the moment when the customer reaches the minimum required points that are required to be in the tier. For example, a tier with a duration of P3M will be valid for a duration of 3 months.

| +| rounding |

Defines the rounding mechanism for tier expiration.

Any of: [Calendar Periods](#calendar-periods), [Specific Month](#specific-month) | +## Validation Rule Assignments +| Attributes | Description | +|:-----|:--------| +| object
`string` |

The type of object represented by JSON. This object stores information about validation rule assignments.

| +| data_ref
`string` |

Identifies the name of the JSON property that contains the array of validation rule assignments.

| +| data
`array` |

A dictionary that contains an array of validation rule assignments.

Array of [Validation Rule Assignment Object](#validation-rule-assignment-object) | +| total
`integer` |

Total number of validation rule assignments.

| +## Calendar Periods +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Period to which the expiration will be rounded to.

Available values: `MONTH`, `QUARTER`, `HALF_YEAR`, `YEAR` | +| strategy
`string` |

Which portion of the given period should the rounding be applied to.

Available values: `END` | +## Specific Month +| Attributes | Description | +|:-----|:--------| +| type
`string` |

This mechanism describes a custom rounding for the expiration date.

Available values: `CUSTOM` | +| strategy
`string` |

Which portion of the given period should the rounding be applied to.

Available values: `END` | +| unit
`string` |

Defines the type of unit of time in which the rounding period is counted.

Available values: `MONTH` | +| value
`integer` |

Value for the unit of time that the rounding applies to. Units for this parameter are defined by the rounding.unit parameter.

| +## Validation Rule Assignment Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Validation rule assignment ID.

**Example:**

asgm_74F7QZoYbUoljwQO

| +| rule_id
`string` |

Validation rule ID.

**Example:**

val_4j7DCRm2IS59

| +| related_object_id
`string` |

The resource ID to which the validation rule was assigned.

**Example:**

v_JtWunK6jUo7X2qOFj0SyRHq4p9tgENlT

| +| related_object_type
`string` |

The type of resource to which the validation rule was assigned.

Available values: `voucher`, `campaign`, `earning_rule`, `reward_assignment`, `promotion_tier`, `distribution` | +| created_at
`string` |

Timestamp representing the date and time when the validation rule assignment was created in ISO 8601 format.

**Example:**

2022-02-17T08:18:15.085Z

| +| object
`string` |

The type of object represented by the ID.

| [block:html] { diff --git a/docs/reference-docs/CATEGORIES-API-Category-Object.md b/docs/reference-docs/CATEGORIES-API-Category-Object.md index 86b87a53a..963b8f563 100644 --- a/docs/reference-docs/CATEGORIES-API-Category-Object.md +++ b/docs/reference-docs/CATEGORIES-API-Category-Object.md @@ -1,6 +1,6 @@ --- title: Category Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: categories-api slug: category-object @@ -8,14 +8,15 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique category ID assigned by Voucherify.

| | -| name |

Category name.

| | -| hierarchy |

Category hierarchy.

| | -| created_at |

Timestamp representing the date and time when the category was created in ISO 8601 format.

|

2022-07-14T10:45:13.156Z

| -| updated_at |

Timestamp representing the date and time when the category was updated in ISO 8601 format.

|

2022-08-16T10:52:08.094Z

| -| object |

The type of object represented by the JSON. This object stores information about the category.

| | +## Category Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique category ID assigned by Voucherify.

| +| name
`string` |

Category name.

| +| hierarchy
`integer` |

Category hierarchy.

| +| created_at
`string` |

Timestamp representing the date and time when the category was created in ISO 8601 format.

**Example:**

2022-07-14T10:45:13.156Z

| +| updated_at
`string` |

Timestamp representing the date and time when the category was updated in ISO 8601 format.

**Example:**

2022-08-16T10:52:08.094Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the category.

| [block:html] { diff --git a/docs/reference-docs/CONSENTS-API-Consents-Object.md b/docs/reference-docs/CONSENTS-API-Consents-Object.md index fa6417fe2..84f55ab00 100644 --- a/docs/reference-docs/CONSENTS-API-Consents-Object.md +++ b/docs/reference-docs/CONSENTS-API-Consents-Object.md @@ -1,6 +1,6 @@ --- title: Consents Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: consents-api slug: consents-object @@ -8,10 +8,11 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| groups |

Contains marketing permission groups' definitions.

AttributesDescriptionExample
object

Stores information about marketing permission groups.

data_ref

Identifies the name of the attribute that contains the array of marketing permission groups.

data

An array of marketing permission groups.

Array of:
AttributesDescriptionExample
id

Unique group ID.

cnstgr_3c7Z3rcOLv51bsXlRtTZPYj8

name

Marketing permission group name.

description

Marketing permission group category.

consents

List of consents that are assigned to the group.

created_at

Timestamp representing the date and time when the group was created in ISO 8601 format.

2022-04-13T09:12:47.743Z

updated_at

Timestamp representing the date and time when the group was updated in ISO 8601 format.

2022-05-14T09:11:27.037Z

object

Stores information about a marketing permission group.

total

Total number of groups.

| | -| consents |

Contains opt-in consents' definitions.

AttributesDescriptionExample
object

Stores information about opt-in consents.

data_ref

Identifies the name of the attribute that contains the array of opt-in consents.

data

An array of consents.

Array of:
AttributesDescriptionExample
id

Unique consent ID.

cnst_6jQ5XcUOLnj5L7ImQAdBsJ1I

name

Consent name.

description

Consent description.

category

Consent category.

created_at

Timestamp representing the date and time when the consent was created in ISO 8601 format.

2022-04-13T09:11:27.037Z

updated_at

Timestamp representing the date and time when the consent was updated in ISO 8601 format.

2022-05-14T09:11:27.037Z

object

Stores information about an opt-in consent.

total

Total number of consents.

| | +## List Consents Response Body +| Attributes | Description | +|:-----|:--------| +| groups
`object` |

Contains marketing permission groups' definitions.

AttributesDescription
object
string

Stores information about marketing permission groups.

data_ref
string

Identifies the name of the attribute that contains the array of marketing permission groups.

data
array

An array of marketing permission groups.

Array of:
AttributesDescription
id
string

Unique group ID.

Example:

cnstgr_3c7Z3rcOLv51bsXlRtTZPYj8

name
string

Marketing permission group name.

description
string

Marketing permission group category.

consents
array

List of consents that are assigned to the group.

created_at
string

Timestamp representing the date and time when the group was created in ISO 8601 format.

Example:

2022-04-13T09:12:47.743Z

updated_at
string

Timestamp representing the date and time when the group was updated in ISO 8601 format.

Example:

2022-05-14T09:11:27.037Z

object
string

Stores information about a marketing permission group.

total
integer

Total number of groups.

| +| consents
`object` |

Contains opt-in consents' definitions.

AttributesDescription
object
string

Stores information about opt-in consents.

data_ref
string

Identifies the name of the attribute that contains the array of opt-in consents.

data
array

An array of consents.

Array of:
AttributesDescription
id
string

Unique consent ID.

Example:

cnst_6jQ5XcUOLnj5L7ImQAdBsJ1I

name
string

Consent name.

description
string

Consent description.

category
string

Consent category.

created_at
string

Timestamp representing the date and time when the consent was created in ISO 8601 format.

Example:

2022-04-13T09:11:27.037Z

updated_at
string

Timestamp representing the date and time when the consent was updated in ISO 8601 format.

Example:

2022-05-14T09:11:27.037Z

object
string

Stores information about an opt-in consent.

total
integer

Total number of consents.

| [block:html] { diff --git a/docs/reference-docs/CUSTOMERS-API-Customer-Activity-Object.md b/docs/reference-docs/CUSTOMERS-API-Customer-Activity-Object.md index da43e3fd0..b7f79c073 100644 --- a/docs/reference-docs/CUSTOMERS-API-Customer-Activity-Object.md +++ b/docs/reference-docs/CUSTOMERS-API-Customer-Activity-Object.md @@ -1,6 +1,6 @@ --- title: Customer Activity Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: customers-api slug: customer-activity-object @@ -8,12 +8,14 @@ hidden: false order: 2 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique event ID, assigned by Voucherify.

|

evcus_0c150c51730c6b60b1

| -| type |

Event type.

Available values: `customer.confirmed`, `customer.created`, `customer.updated`, `customer.deleted`, `customer.referred`, `customer.custom_event`, `customer.segment_entered`, `customer.segment.left`, `customer.sms.sent`, `customer.sms.failed`, `customer.email.sent`, `customer.email.failed`, `customer.activecampaign.sent`, `customer.braze.sent`, `customer.mailchimp.sent`, `customer.intercom.sent`, `customer.intercom.failed`, `customer.rewarded`, `customer.rewarded.loyalty_points`, `customer.voucher.gift.balance_added`, `customer.voucher.loyalty_card.points_added`, `customer.voucher.loyalty_card.points_transferred`, `customer.publication.succeeded`, `customer.publication.failed`, `customer.redemption.succeeded`, `customer.redemption.failed`, `customer.redemption.rollback.succeeded`, `customer.redemption.rollback.failed`, `customer.consents.given`, `customer.consents.revoked` | | -| data |

Contains details about the event. The objects that are returned in the data attribute differ based on the context of the event type.

Customer Activity Data Object

| | -| created_at |

Timestamp representing the date and time when the customer activity occurred in ISO 8601 format.

|

2022-08-30T09:14:07.660Z

| +## Customer Activity Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique event ID, assigned by Voucherify.

**Example:**

evcus_0c150c51730c6b60b1

| +| type
`string` |

Event type.

Available values: `customer.confirmed`, `customer.created`, `customer.updated`, `customer.deleted`, `customer.referred`, `customer.custom_event`, `customer.segment_entered`, `customer.segment.left`, `customer.sms.sent`, `customer.sms.failed`, `customer.email.sent`, `customer.email.failed`, `customer.activecampaign.sent`, `customer.braze.sent`, `customer.mailchimp.sent`, `customer.intercom.sent`, `customer.intercom.failed`, `customer.rewarded`, `customer.rewarded.loyalty_points`, `customer.voucher.gift.balance_added`, `customer.voucher.loyalty_card.points_added`, `customer.voucher.loyalty_card.points_transferred`, `customer.publication.succeeded`, `customer.publication.failed`, `customer.redemption.succeeded`, `customer.redemption.failed`, `customer.redemption.rollback.succeeded`, `customer.redemption.rollback.failed`, `customer.consents.given`, `customer.consents.revoked` | +| data
`array` |

Contains details about the event. The objects that are returned in the data attribute differ based on the context of the event type.

Array of [Customer Activity Data Object](#customer-activity-data-object) | +| created_at
`string` |

Timestamp representing the date and time when the customer activity occurred in ISO 8601 format.

**Example:**

2022-08-30T09:14:07.660Z

| +## Customer Activity Data Object [block:html] { diff --git a/docs/reference-docs/CUSTOMERS-API-Customer-Object.md b/docs/reference-docs/CUSTOMERS-API-Customer-Object.md index 8d5ba4c79..98498ed94 100644 --- a/docs/reference-docs/CUSTOMERS-API-Customer-Object.md +++ b/docs/reference-docs/CUSTOMERS-API-Customer-Object.md @@ -1,6 +1,6 @@ --- title: Customer Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: customers-api slug: customer-object @@ -8,26 +8,27 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

The unique ID of a customer that is assigned by Voucherify.

|

cust_CSnYd37MXmrbS19XCrghjBsv

| -| source_id |

The merchant’s customer ID if it is different from the Voucherify customer ID. It is really useful in case of an integration between multiple systems. It is externally defined. It can be a customer ID from a CRM system, database or 3rd-party service.

| | -| name |

Customer's first and last name.

| | -| description |

An arbitrary string that you can attach to a customer object.

| | -| email |

Customer's email address.

| | -| phone |

Customer's phone number.

| | -| birthdate |

Customer's birthdate.

| | -| birthday |

Customer's birthday.

| | -| address |

Customer's address.

AttributesDescriptionExample
city

City

state

State

line_1

First line of address.

line_2

Second line of address.

country

Country.

postal_code

Postal code.

| | -| summary |

Contains a summary of customer's redemption and order statistics.

AttributesDescriptionExample
redemptions

Customer's redemptions statistics.

AttributesDescriptionExample
total_redeemed

Total number of redemptions made by the customer.

total_failed

Total number of redemptions that failed.

total_succeeded

Total number of redemptions that succeeded.

total_rolled_back

Total number of redemptions that were rolled back for the customer.

total_rollback_failed

Total number of redemption rollbacks that failed.

total_rollback_succeeded

Total number of redemption rollbacks that succeeded.

gift

Summary of gift card credits.

AttributesDescriptionExample
redeemed_amount

Total amount of gift card credits redeemed by customer. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

amount_to_go

Remaining gift card balance across all gift cards. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

loyalty_card

Summary of loyalty points.

AttributesDescriptionExample
redeemed_points

Total number of loyalty points redeemed by the customer.

points_to_go

Sum of remaining available point balance across all loyalty cards.

orders

Customer's order statistics.

AttributesDescriptionExample
total_amount

The total amount spent by the customer. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

total_count

Total number of orders made by the customer.

average_amount

Average amount spent on orders. total_amount ÷ total_count. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

last_order_amount

Amount spent on last order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

last_order_date

Timestamp representing the date and time of the customer's last order in ISO 8601 format.

2022-08-30T11:51:08.029Z

| | -| loyalty |

Summary of customer's loyalty information.

AttributesDescriptionExample
points

Sum of remaining available point balance across all loyalty cards.

referred_customers

Total number of customers referred by the customer.

campaigns

Contains campaigns with details about point balances and how many customers were referred by the customer.

AttributesDescriptionExample
campaign_name

Contains details about the point balances left on loyalty cards and the number of referred customers in each campaign.

AttributesDescriptionExample
points

Remaining point balance in campaign.

loyalty_tier

Customer's loyalty tier within the campaign.

ltr_UJ5Q54Q0OvEhua87Qfv2Ki5x

referred_customers

Number of customers referred by the customer in campaign.

| | -| referrals |

Summary of customer's referrals, in this case, the customer being the referee, i.e. information about the source of referrals and number of times the customer was referred by other customers.

AttributesDescriptionExample
total

Total number of times this customer received a referral, i.e. was referred by another customer.

campaigns

Contains an array of campaigns that served as the source of a referral for the customer.

Array of:
AttributesDescriptionExample
campaign_id

Unique campaign ID, assigned by Voucherify.

camp_rRsfatlwN7unSeUIJDCYedal

referrer_id

Unique referrer ID, assigned by Voucherify. This is the customer ID of a customer that is referring this customer.

cust_sehkNIi8Uq2qQuRqSr7xn4Zi

related_object_id

Related object ID, i.e. r_0b9d4cc4aa164dd073.

related_object_type

Related object type, i.e. redemption.

date

Timestamp representing the date and time when the customer was referred in ISO 8601 format.

2022-08-30T10:19:39.196Z

| | -| metadata |

A set of custom key/value pairs that you can attach to a customer. The metadata object stores all custom attributes assigned to the customer. It can be useful for storing additional information about the customer in a structured format. This metadata can be used for validating whether the customer qualifies for a discount or it can be used in building customer segments.

| | -| system_metadata |

Object used to store system metadata information.

AttributesDescriptionExample
consents

Stores a list of consent ID's along with the timestamp and decision on accepting or rejecting a marketing permission.

AttributesDescriptionExample
consentId

Unique ID of a consent, i.e. cnst_lbgOBhHTuDrB7sjIhFjvIALj.

AttributesDescriptionExample
date

Timestamp representing the date and time when a consent was accepted or rejected in ISO 8601 format.

2022-05-10T08:50:10.338Z

value

Accepted: true, Rejected: false

source

Takes on the name of the source of the integration if the customer was created through an integration, i.e. Bigcommerce or Shopify.

| | -| created_at |

Timestamp representing the date and time when the customer was created in ISO 8601 format.

|

2022-08-30T06:32:07.380Z

| -| updated_at |

Timestamp representing the date and time when the customer was updated in ISO 8601 format.

|

2022-08-31T06:32:07.380Z

| -| assets |

Contains information about the customer's cockpit.

AttributesDescriptionExample
cockpit_url

Customer's cockpit URL address.

| | -| object |

The type of object represented by the JSON. This object stores information about the customer.

| | +## Customer Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

The unique ID of a customer that is assigned by Voucherify.

**Example:**

cust_CSnYd37MXmrbS19XCrghjBsv

| +| source_id
`string` |

The merchant’s customer ID if it is different from the Voucherify customer ID. It is really useful in case of an integration between multiple systems. It is externally defined. It can be a customer ID from a CRM system, database or 3rd-party service.

| +| name
`string` |

Customer's first and last name.

| +| description
`string` |

An arbitrary string that you can attach to a customer object.

| +| email
`string` |

Customer's email address.

| +| phone
`string` |

Customer's phone number.

| +| birthdate
`string` |

Customer's birthdate.

| +| birthday
`string` |

Customer's birthday.

| +| address
`object` |

Customer's address.

AttributesDescription
city
string

City

state
string

State

line_1
string

First line of address.

line_2
string

Second line of address.

country
string

Country.

postal_code
string

Postal code.

| +| summary
`object` |

Contains a summary of customer's redemption and order statistics.

AttributesDescription
redemptions
object

Customer's redemptions statistics.

AttributesDescription
total_redeemed
integer

Total number of redemptions made by the customer.

total_failed
integer

Total number of redemptions that failed.

total_succeeded
integer

Total number of redemptions that succeeded.

total_rolled_back
integer

Total number of redemptions that were rolled back for the customer.

total_rollback_failed
integer

Total number of redemption rollbacks that failed.

total_rollback_succeeded
integer

Total number of redemption rollbacks that succeeded.

gift
object

Summary of gift card credits.

AttributesDescription
redeemed_amount
integer

Total amount of gift card credits redeemed by customer. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

amount_to_go
integer

Remaining gift card balance across all gift cards. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

loyalty_card
object

Summary of loyalty points.

AttributesDescription
redeemed_points
integer

Total number of loyalty points redeemed by the customer.

points_to_go
integer

Sum of remaining available point balance across all loyalty cards.

orders
object

Customer's order statistics.

AttributesDescription
total_amount
integer

The total amount spent by the customer. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

total_count
integer

Total number of orders made by the customer.

average_amount
integer

Average amount spent on orders. total_amount ÷ total_count. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

last_order_amount
integer

Amount spent on last order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

last_order_date
string

Timestamp representing the date and time of the customer's last order in ISO 8601 format.

Example:

2022-08-30T11:51:08.029Z

| +| loyalty
`object` |

Summary of customer's loyalty information.

AttributesDescription
points
integer

Sum of remaining available point balance across all loyalty cards.

referred_customers
integer

Total number of customers referred by the customer.

campaigns
object

Contains campaigns with details about point balances and how many customers were referred by the customer.

AttributesDescription
campaign_name
object

Contains details about the point balances left on loyalty cards and the number of referred customers in each campaign.

AttributesDescription
points
integer

Remaining point balance in campaign.

loyalty_tier
string

Customer's loyalty tier within the campaign.

Example:

ltr_UJ5Q54Q0OvEhua87Qfv2Ki5x

referred_customers
integer

Number of customers referred by the customer in campaign.

| +| referrals
`object` |

Summary of customer's referrals, in this case, the customer being the referee, i.e. information about the source of referrals and number of times the customer was referred by other customers.

AttributesDescription
total
integer

Total number of times this customer received a referral, i.e. was referred by another customer.

campaigns
array

Contains an array of campaigns that served as the source of a referral for the customer.

Array of:
AttributesDescription
campaign_id
string

Unique campaign ID, assigned by Voucherify.

Example:

camp_rRsfatlwN7unSeUIJDCYedal

referrer_id
string

Unique referrer ID, assigned by Voucherify. This is the customer ID of a customer that is referring this customer.

Example:

cust_sehkNIi8Uq2qQuRqSr7xn4Zi

related_object_id
string

Related object ID, i.e. r_0b9d4cc4aa164dd073.

related_object_type
string

Related object type, i.e. redemption.

date
string

Timestamp representing the date and time when the customer was referred in ISO 8601 format.

Example:

2022-08-30T10:19:39.196Z

| +| metadata
`object` |

A set of custom key/value pairs that you can attach to a customer. The metadata object stores all custom attributes assigned to the customer. It can be useful for storing additional information about the customer in a structured format. This metadata can be used for validating whether the customer qualifies for a discount or it can be used in building customer segments.

| +| system_metadata
`object` |

Object used to store system metadata information.

AttributesDescription
consents
object

Stores a list of consent ID's along with the timestamp and decision on accepting or rejecting a marketing permission.

AttributesDescription
consentId
object

Unique ID of a consent, i.e. cnst_lbgOBhHTuDrB7sjIhFjvIALj.

AttributesDescription
date
string

Timestamp representing the date and time when a consent was accepted or rejected in ISO 8601 format.

Example:

2022-05-10T08:50:10.338Z

value
boolean

Accepted: true, Rejected: false

source
string

Takes on the name of the source of the integration if the customer was created through an integration, i.e. Bigcommerce or Shopify.

| +| created_at
`string` |

Timestamp representing the date and time when the customer was created in ISO 8601 format.

**Example:**

2022-08-30T06:32:07.380Z

| +| updated_at
`string` |

Timestamp representing the date and time when the customer was updated in ISO 8601 format.

**Example:**

2022-08-31T06:32:07.380Z

| +| assets
`object` |

Contains information about the customer's cockpit.

AttributesDescription
cockpit_url
string

Customer's cockpit URL address.

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the customer.

| [block:html] { diff --git a/docs/reference-docs/EXPORTS-API-Export-Object.md b/docs/reference-docs/EXPORTS-API-Export-Object.md index 141979252..d47228bf2 100644 --- a/docs/reference-docs/EXPORTS-API-Export-Object.md +++ b/docs/reference-docs/EXPORTS-API-Export-Object.md @@ -1,6 +1,6 @@ --- title: Export Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: exports-api slug: export-object @@ -8,17 +8,182 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique export ID.

|

exp_FFfp9o7daWuJqJCKp5xqqli4

| -| object |

The type of object being represented. This object stores information about the export.

| | -| created_at |

Timestamp representing the date and time when the export was scheduled in ISO 8601 format.

|

2022-04-28T11:23:20.922Z

| -| status |

Status of the export. Informs you whether the export has already been completed, i.e. indicates whether the file containing the exported data has been generated.

Available values: `SCHEDULED`, `IN_PROGRESS`, `DONE`, `ERROR` | | -| channel |

The channel through which the export was triggered.

Available values: `API`, `WEBSITE` | | -| exported_object |

The type of exported object.

Available values: `order`, `voucher`, `publication`, `redemption`, `customer`, `points_expiration`, `voucher_transactions` | | -| parameters | Any of:

order

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: -created_at, created_at, updated_at, -updated_at, status, -status
fields

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combination of any of the following available fields:

FieldDefinitionExample Export
idUnique order ID.ord_A69RIxEdRsPuC6i8gFGVHUft
source_idUnique order source ID.8638
created_atTimestamp in ISO 8601 format representing the date and time when the order was created.2022-03-09T09:16:32.521Z
updated_atTimestamp in ISO 8601 format representing the date and time when the order was last updated.2022-03-09T09:16:33.331Z
statusOrder status.PAID, CREATED, FULFILLED, CANCELED
amountTotal amount of order items.7700
discount_amountRepresents total amount of the discount applied to whole cart.500
items_discount_amountRepresents total amount of the discount applied to order line items.100
total_discount_amountAll discounts applied to the order including discounts applied to particular order line items and discounts applied to the whole cart.600
total_amountTotal order amount after applying all discounts.7100
customer_idCustomer unique ID.cust_2G4fUQdCXUqp35nXNleav7bO
referrer_idReferrer unique ID.cust_IkrTR674vvQvr9a4rDMiqglY
metadataReturns all order metadata.Response will include all order metadata.
metadata.XWhere X is the name of a particular order metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Order. Read more here.
Available values: id,source_id,created_at,updated_at,status,amount,discount_amount,items_discount_amount,total_discount_amount,total_amount,customer_id,referrer_id,metadata
filtersAny of:

Filter by status

AttributesDescriptionExample
status
junction

Filter by order source ID

AttributesDescriptionExample
source_id
junction

Filter by order amount

AttributesDescriptionExample
amount
junction

Filter by order total amount

AttributesDescriptionExample
total_amount
junction

Filter by order discount amount

AttributesDescriptionExample
discount_amount
junction

Filter by order total discount amount

AttributesDescriptionExample
total_discount_amount
junction

Filter by order items discount amount

AttributesDescriptionExample
items_discount_amount
junction

voucher

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: created_at, -created_at, updated_at, -updated_at, code, -code
fields

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
idUnique voucher ID.v_HSnGD2vNIHYighTQxwcB4dtVAv8VOmZD
codeUnique voucher code.WELCOME100
voucher_typeType of voucher.DISCOUNT_VOUCHER, GIFT_VOUCHER, LOYALTY_CARD
valueValue of voucher.DISCOUNT_VOUCHER : amount, percent, unit
GIFT_VOUCHER: amount left to spend
LOYALTY_CARD: available usable points
discount_typeThe type of discount for a DISCOUNT_VOUCHER.AMOUNT, PERCENT, UNIT, FIXED
campaignUnique campaign name.Summer Discounts 20% off
categoryTag defining the category that this voucher belongs to.
start_dateStart date defines when the code starts to be active. Activation timestamp in ISO 8601 format. Voucher is inactive before this date.2020-12-10T23:00:00.000Z
expiration_dateExpiration date defines when the code expires. Expiration timestamp in ISO 8601 format. Voucher is inactive after this date.2023-12-31T23:00:00.000Z
gift_balanceAmount left to spend.1000
loyalty_balanceAvailable usable points.2000
redemption_quantityMaximum number of times a voucher can be redeemed.2
redemption_countTotal redemptions.59
activeBoolean indicating whether the voucher is available for use.true, false
qr_codeURL to QR representation of encrypted code.
bar_codeURL to barcode representation of encrypted code.
is_referral_codeBoolean indicating whether the voucher is a referral code.true, false
created_atTimestamp in ISO 8601 format representing the date and time when the voucher was created.2022-04-14T09:55:46.814Z
updated_atTimestamp in ISO 8601 format representing the date and time when the voucher was last updated.2022-04-14T10:02:18.036Z
validity_timeframe_intervalDefines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a voucher with an interval of P2D will be active every other day.P2D
validity_timeframe_durationDefines the amount of time the voucher will be active in ISO 8601 format. For example, a voucher with a duration of PT1H will be valid for a duration of one hour.PT1H
validity_day_of_weekArray corresponding to the particular days of the week in which the voucher is valid."1,2,3,4,5"
discount_amount_limitFor PERCENT discount type, this is the maximum threshold allowed to be deducted.50
campaign_idParent campaign ID.camp_7s3uXI44aKfIk5IhmeOPr6ic
additional_infoAn optional field to keep any extra textual information about the code such as a code description and details.
customer_idUnique customer ID of the assigned owner to whom the voucher was published.cust_7iUa6ICKyU6gH40dBU25kQU1
discount_unit_typeFor UNIT discount type, either a shipping or product ID for a UNIT discount with one product.prod_5h1pp1ng, prod_0a9f9aeddb019a42db
discount_unit_effectUNIT discount effect.ADD_MANY_ITEMS, ADD_MISSING_ITEMS,ADD_NEW_ITEMS
customer_source_idUnique customer source id of the assigned owner to whom the voucher was published.name.lastname@email.com
metadataReturns all voucher metadata.Response will include all voucher metadata.
metadata.XWhere X is the name of a particular voucher metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Voucher. Read more here.
Available values: code,voucher_type,value,discount_type,campaign,category,start_date,expiration_date,gift_balance,loyalty_balance,redemption_quantity,redemption_count,active,qr_code,bar_code,id,is_referral_code,created_at,updated_at,validity_timeframe_interval,validity_timeframe_duration,validity_day_of_week,discount_amount_limit,campaign_id,additional_info,customer_id,discount_unit_type,discount_unit_effect,customer_source_id,metadata
filters

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

  • categories

  • vouchers

  • type

  • holder_id

  • is_referral_code

  • published_for_customer_id

  • validity_timeframe

  • category_ids

publication

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: id, -id, voucher_code, -voucher_code, tracking_id, -tracking_id, customer_id, -customer_id, created_at, -created_at, channel, -channel
fields

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
voucher_codeUnique voucher code.WELCOME100
customer_idCustomer unique ID.cust_7iUa6ICKyU6gH40dBU25kQU1
customer_source_idUnique customer source id of the assigned owner to whom the voucher was published.name.lastname@email.com
dateTimestamp in ISO 8601 format representing the date and time when the voucher was published.2022-04-28T10:19:30.792Z
channelPublication channel.voucherify-website
campaignUnique campaign name.Summer Discounts 20% off
is_winner
metadataReturns all publication metadata.Response will include all publication metadata.
metadata.XWhere X is the name of a particular publication metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Publication. Read more here
Available values: voucher_code,customer_id,customer_source_id,date,channel,campaign,is_winner,metadata
filters

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

  • failure_code

  • result

  • customer_id

  • campaign_name

  • voucher_type

  • is_referral_code

  • parent_object_id

  • related_object_id

  • source_id

Any of:

Filter by failure code

AttributesDescriptionExample
failure_code
junction

Filter by result

AttributesDescriptionExample
result
junction

Filter by customer ID

AttributesDescriptionExample
customer_id
junction

Filter by campaign name

AttributesDescriptionExample
campaign_name
junction

Filter by voucher type

AttributesDescriptionExample
voucher_type
junction

Filter if the code is a referral code

AttributesDescriptionExample
is_referral_code
junction

Filter by parent object ID

AttributesDescriptionExample
parent_object_id
junction

Filter by related object ID

AttributesDescriptionExample
related_object_id
junction

Filter by publication source ID

AttributesDescriptionExample
source_id
junction

redemption

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: id, -id, voucher_code, -voucher_code, tracking_id, -tracking_id, customer_id, -customer_id, created_at, -created_at
fields

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
idUnique redemption ID.r_0acf3a6dae00e679c8, rf_0acf3a495740e679b8
objectObject being exported; by default redemption.redemption
dateTimestamp in ISO 8601 format representing the date and time when the voucher was redeemed.2022-03-23T08:52:24.867Z
voucher_codeUnique voucher code redeemed.WELCOME100
campaignParent campaign name of voucher if applicable.Summer Discounts 20% off
promotion_tier_idpromo_Mwy9XpA0TLctSGriM5kum0qp
customer_idUnique customer ID of redeeming customer.cust_nk0N1uNQ1YnupAoJGOgvsODC
customer_source_idUnique source ID of redeeming customer.name.lastname@email.com
customer_nameCustomer name.John Smith
tracking_idtrack_Pw6r3ejnml43kIwNS4Zj09KZ67xOfLUy
order_amountTotal order amount before applying all discounts.1000
gift_amountGift credits used for redemption.10
loyalty_points12
resultTells you whether the redemption succeeded.SUCCESS, FAILURE
failure_codeInternal Voucherify code for reason why redemption failed.invalid_customer
failure_messageA human-readable message providing a short description explaining why the redemption failed.Customer must be a holder of a loyalty card.
metadataReturns all redemption metadata.Response will include all redemption metadata.
metadata.XWhere X is the name of a particular redemption metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Redemption. Read more here
Available values: id,object,date,voucher_code,campaign,promotion_tier_id,customer_id,customer_source_id,customer_name,tracking_id,order_amount,gift_amount,loyalty_points,result,failure_code,failure_message,metadata
filters

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

  • voucher_code

  • related_object_id

  • related_object_parent_id

  • parent_redemption_id

  • failure_code

  • result

  • object

  • customer_id

  • campaign_name

  • user_login

customer

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: name, -name, id, -id, email, -email, source_id, -source_id, created_at, -created_at, updated_at, -updated_at
fields

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
nameCustomer name.John Smith
idUnique customer ID.cust_J1CDUdbqn5Exva8ASWk1Fq0j
descriptionAn arbitrary string that you can attach to a customer object.Customer requesting to be added to VIP tier.
emailCustomer's email.name.lastname@email.com
source_idUnique custom customer identifier.name.lastname@email.com
created_atTimestamp in ISO 8601 format representing the date and time when the customer was created.2022-02-03T13:10:11.928Z
address_cityCityHouston
address_stateStateTX
address_line_1First line of customer's address.72738 Main St
address_line_2Second line of customer's address.Bld 2, Apt 4
address_countryCountryUnited States of America
address_postal_codePostal code (ZIP code)77042-4143
redemptions_total_redeemedTotal customer redemptions.5
redemptions_total_failedTotal customer failed redemptions.2
redemptions_total_succeededTotal customer succeeded redemptions.3
redemptions_total_rolled_backTotal customer redemptions that were rolled back.3
redemptions_total_rollback_failedTotal customer redemptions that were unsuccessfully rolled back.2
redemptions_total_rollback_succeededTotal customer redemptions that were successfully rolled back.1
orders_total_amountTotal sum of order amounts over customer lifetime. Value is multiplied by 100 to precisely represent 2 decimal places.10000 (represents $100)
orders_total_countTotal number of customer orders. Value is multiplied by 100 to precisely represent 2 decimal places.2
orders_average_amountAverage amount spent on orders. Value is multiplied by 100 to precisely represent 2 decimal places.50
orders_last_order_amountHow much did the customer spend on their last order. Value is multiplied by 100 to precisely represent 2 decimal places.50
orders_last_order_dateWhen was the last customer order; timestamp in ISO 8601 format representing the date and time.2022-02-03T13:17:30.630Z
loyalty_pointsSum of customer's loyalty points to go across all loyalty cards.
loyalty_referred_customersHow many customers were referred by this customer.
updated_atTimestamp in ISO 8601 format representing the date and time when the customer was updated.2022-02-14T14:10:14.305Z
phoneCustomer's phone number.+1 (294) 752-1846
birthdayCustomer's birthday.2022-01-01
birthdateCustomer's birthdate.2022-04-29
metadataReturns all customer metadata.Response will include all customer metadata.
metadata.XWhere X is the name of a particular customer metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Customer. Read more here
Available values: name,id,description,email,source_id,created_at,address_city,address_state,address_line_1,address_line_2,address_country,address_postal_code,redemptions_total_redeemed,redemptions_total_failed,redemptions_total_succeeded,redemptions_total_rolled_back,redemptions_total_rollback_failed,redemptions_total_rollback_succeeded,orders_total_amount,orders_total_count,orders_average_amount,orders_last_order_amount,orders_last_order_date,loyalty_points,loyalty_referred_customers,updated_at,phone,birthday,metadata,birthdate
filters

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

  • name (string)

  • email (string)

  • phone (string)

  • metadata (json)

  • metadata.X (?)

  • address (json)

  • address.state (string)

  • address.country (string)

  • address.postal_code (string)

  • birthday (string - date-time)

  • birthdate (string date-time)

  • created_at (date)

  • source_id (string)

  • system.metadata (json)

  • system.metadata.source (string)

  • system.metadata.consents.unsubscribed (boolean)

  • loyalty_points (json)

  • loyalty (json)

  • summary.orders.total_amount (json)

  • summary.orders.last_order_date (date)

  • summary.orders.last_order_amount (json)

  • summary.redemptions.gift.redeemed_amount (integer)

  • summary.redemptions.total_succeeded (integer)

  • events.cart_abandoned.last_occurred (integer)

  • events.newsletter_subscribed.count (integer)

  • events.sign_up.last_occurred (integer)

points expiration

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: expires_at, -expires_at
fields

Array of strings containing the data that was exported. These fields define the headers in the CSV file.

The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
idLoyalty points bucket ID.lopb_Wl1o3EjJIHSNjvO5BDLy4z1n
campaign_idCampaign ID of the parent loyalty campaign.camp_7s3uXI44aKfIk5IhmeOPr6ic
voucher_idVoucher ID of the parent loyalty card.v_YLn0WVWXSXbUfDvxgrgUbtfJ3SQIY655
statusStatus of the loyalty points bucket.ACTIVE or INACTIVE
expires_atTimestamp in ISO 8601 format representing the date when the points expire.2022-06-30
pointsNumber of points.1000
Available values: id,campaign_id,voucher_id,status,expires_at,points
filters

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

  • campaign_id

  • voucher_id

Any of:

Filter by campaign ID

AttributesDescriptionExample
campaign_id
junction

Filter by voucher ID

AttributesDescriptionExample
voucher_id
junction

gift card transactions

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: -created_at, created_at
fields

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combination of any of the following available fields:

FieldDefinitionExample Export
idUnique transaction ID.vtx_0cb7811f1c07765800
typeTransaction type.- CREDITS_REMOVAL
- CREDITS_ADDITION
- CREDITS_REFUND
- CREDITS_REDEMPTION
source_idUnique transaction source ID.8638
reasonContains the reason for the transaction if one was included originally.
balanceThe gift card balance after the transaction.
amountThe amount of gift card credits being allocated during the transaction. This value can either be negative or positive depending on the nature of the transaction.
created_atTimestamp in ISO 8601 format representing the date and time when the transaction was created.2022-03-09T09:16:32.521Z
voucher_idUnique Voucher ID.v_dky7ksKfPX50Wb2Bxvcoeb1xT20b6tcp
campaign_idParent campaign ID.camp_FNYR4jhqZBM9xTptxDGgeNBV
sourceChannel through which the transaction was initiated.API
detailsMore detailed information stored in the form of a JSON.Provides more details related to the transaction in the form of an object.
Available values: id,type,source_id,reason,balance,amount,created_at,voucher_id,campaign_id,source,details
filters

loyalty card transactions

AttributesDescriptionExample
order

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: -created_at, created_at
fields

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combination of any of the following available fields:

FieldDefinitionExample Export
idUnique transaction ID assigned by Voucherify.vtx_0cb7811f1c07765800
typeTransaction type.- POINTS_EXPIRATION
- POINTS_ADDITION
- POINTS_REMOVAL
- POINTS_TRANSFER_OUT
- POINTS_ACCRUAL
- POINTS_REFUND
- POINTS_REDEMPTION
source_idCustom source ID of the transaction if one was included originally.source_id_custom
reasonContains the reason for the transaction if one was included originally.
balanceThe loyalty card balance after the transaction.
amountThe amount of loyalty points being allocated during the transaction. This value can either be negative or positive depending on the nature of the transaction.
created_atTimestamp in ISO 8601 format representing the date and time when the transaction was created.2022-03-09T09:16:32.521Z
voucher_idUnique Voucher ID.v_dky7ksKfPX50Wb2Bxvcoeb1xT20b6tcp
campaign_idParent campaign ID.camp_FNYR4jhqZBM9xTptxDGgeNBV
sourceChannel through which the transaction was initiated.- API
- voucherify-web-ui
- Automation
detailsMore detailed information stored in the form of a JSON.Provides more details related to the transaction in the form of an object.
related_transaction_idUnique transaction ID related to a receiver/donor card in the case of a points transfer from/to another card.vtx_0c9afe802593b34b80
Available values: id,type,source_id,reason,balance,amount,created_at,voucher_id,campaign_id,details,related_transaction_id
filters
| | -| result |

Contains the URL of the CSV file.

AttributesDescriptionExample
url

URL of the CSV file location. It contains the token used for authorization in the Download export method.

| | -| user_id |

Identifies the specific user who initiated the export through the Voucherify Dashboard; returned when the channel value is WEBSITE.

|

user_g24UoRO3Caxu7FCT4n5tpYEa3zUG0FrH

| +## Export Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique export ID.

**Example:**

exp_FFfp9o7daWuJqJCKp5xqqli4

| +| object
`string` |

The type of object being represented. This object stores information about the export.

| +| created_at
`string` |

Timestamp representing the date and time when the export was scheduled in ISO 8601 format.

**Example:**

2022-04-28T11:23:20.922Z

| +| status
`string` |

Status of the export. Informs you whether the export has already been completed, i.e. indicates whether the file containing the exported data has been generated.

Available values: `SCHEDULED`, `IN_PROGRESS`, `DONE`, `ERROR` | +| channel
`string` |

The channel through which the export was triggered.

Available values: `API`, `WEBSITE` | +| exported_object
`string` |

The type of exported object.

Available values: `order`, `voucher`, `publication`, `redemption`, `customer`, `points_expiration`, `voucher_transactions` | +| parameters | Any of: [order](#order), [voucher](#voucher), [publication](#publication), [redemption](#redemption), [customer](#customer), [points expiration](#points-expiration), [gift card transactions](#gift-card-transactions), [loyalty card transactions](#loyalty-card-transactions) | +| result
`object` |

Contains the URL of the CSV file.

AttributesDescription
url
string

URL of the CSV file location. It contains the token used for authorization in the Download export method.

| +| user_id
`string` |

Identifies the specific user who initiated the export through the Voucherify Dashboard; returned when the channel value is WEBSITE.

**Example:**

user_g24UoRO3Caxu7FCT4n5tpYEa3zUG0FrH

| +## order +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `-created_at`, `created_at`, `updated_at`, `-updated_at`, `status`, `-status` | +| fields
`array` |

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combination of any of the following available fields:

FieldDefinitionExample Export
idUnique order ID.ord_A69RIxEdRsPuC6i8gFGVHUft
source_idUnique order source ID.8638
created_atTimestamp in ISO 8601 format representing the date and time when the order was created.2022-03-09T09:16:32.521Z
updated_atTimestamp in ISO 8601 format representing the date and time when the order was last updated.2022-03-09T09:16:33.331Z
statusOrder status.PAID, CREATED, FULFILLED, CANCELED
amountTotal amount of order items.7700
discount_amountRepresents total amount of the discount applied to whole cart.500
items_discount_amountRepresents total amount of the discount applied to order line items.100
total_discount_amountAll discounts applied to the order including discounts applied to particular order line items and discounts applied to the whole cart.600
total_amountTotal order amount after applying all discounts.7100
customer_idCustomer unique ID.cust_2G4fUQdCXUqp35nXNleav7bO
referrer_idReferrer unique ID.cust_IkrTR674vvQvr9a4rDMiqglY
metadataReturns all order metadata.Response will include all order metadata.
metadata.XWhere X is the name of a particular order metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Order. Read more here.
Available values: `id,source_id,created_at,updated_at,status,amount,discount_amount,items_discount_amount,total_discount_amount,total_amount,customer_id,referrer_id,metadata` | +| filters | Any of: [Filter by status](#filter-by-status), [Filter by order source ID](#filter-by-order-source-id), [Filter by order amount](#filter-by-order-amount), [Filter by order total amount](#filter-by-order-total-amount), [Filter by order discount amount](#filter-by-order-discount-amount), [Filter by order total discount amount](#filter-by-order-total-discount-amount), [Filter by order items discount amount](#filter-by-order-items-discount-amount) | +## voucher +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `created_at`, `-created_at`, `updated_at`, `-updated_at`, `code`, `-code` | +| fields
`array` |

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
idUnique voucher ID.v_HSnGD2vNIHYighTQxwcB4dtVAv8VOmZD
codeUnique voucher code.WELCOME100
voucher_typeType of voucher.DISCOUNT_VOUCHER, GIFT_VOUCHER, LOYALTY_CARD
valueValue of voucher.DISCOUNT_VOUCHER : amount, percent, unit
GIFT_VOUCHER: amount left to spend
LOYALTY_CARD: available usable points
discount_typeThe type of discount for a DISCOUNT_VOUCHER.AMOUNT, PERCENT, UNIT, FIXED
campaignUnique campaign name.Summer Discounts 20% off
categoryTag defining the category that this voucher belongs to.
start_dateStart date defines when the code starts to be active. Activation timestamp in ISO 8601 format. Voucher is inactive before this date.2020-12-10T23:00:00.000Z
expiration_dateExpiration date defines when the code expires. Expiration timestamp in ISO 8601 format. Voucher is inactive after this date.2023-12-31T23:00:00.000Z
gift_balanceAmount left to spend.1000
loyalty_balanceAvailable usable points.2000
redemption_quantityMaximum number of times a voucher can be redeemed.2
redemption_countTotal redemptions.59
activeBoolean indicating whether the voucher is available for use.true, false
qr_codeURL to QR representation of encrypted code.
bar_codeURL to barcode representation of encrypted code.
is_referral_codeBoolean indicating whether the voucher is a referral code.true, false
created_atTimestamp in ISO 8601 format representing the date and time when the voucher was created.2022-04-14T09:55:46.814Z
updated_atTimestamp in ISO 8601 format representing the date and time when the voucher was last updated.2022-04-14T10:02:18.036Z
validity_timeframe_intervalDefines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a voucher with an interval of P2D will be active every other day.P2D
validity_timeframe_durationDefines the amount of time the voucher will be active in ISO 8601 format. For example, a voucher with a duration of PT1H will be valid for a duration of one hour.PT1H
validity_day_of_weekArray corresponding to the particular days of the week in which the voucher is valid."1,2,3,4,5"
discount_amount_limitFor PERCENT discount type, this is the maximum threshold allowed to be deducted.50
campaign_idParent campaign ID.camp_7s3uXI44aKfIk5IhmeOPr6ic
additional_infoAn optional field to keep any extra textual information about the code such as a code description and details.
customer_idUnique customer ID of the assigned owner to whom the voucher was published.cust_7iUa6ICKyU6gH40dBU25kQU1
discount_unit_typeFor UNIT discount type, either a shipping or product ID for a UNIT discount with one product.prod_5h1pp1ng, prod_0a9f9aeddb019a42db
discount_unit_effectUNIT discount effect.ADD_MANY_ITEMS, ADD_MISSING_ITEMS,ADD_NEW_ITEMS
customer_source_idUnique customer source id of the assigned owner to whom the voucher was published.name.lastname@email.com
metadataReturns all voucher metadata.Response will include all voucher metadata.
metadata.XWhere X is the name of a particular voucher metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Voucher. Read more here.
Available values: `code,voucher_type,value,discount_type,campaign,category,start_date,expiration_date,gift_balance,loyalty_balance,redemption_quantity,redemption_count,active,qr_code,bar_code,id,is_referral_code,created_at,updated_at,validity_timeframe_interval,validity_timeframe_duration,validity_day_of_week,discount_amount_limit,campaign_id,additional_info,customer_id,discount_unit_type,discount_unit_effect,customer_source_id,metadata` | +| filters
`object` |

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

| +## publication +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `id`, `-id`, `voucher_code`, `-voucher_code`, `tracking_id`, `-tracking_id`, `customer_id`, `-customer_id`, `created_at`, `-created_at`, `channel`, `-channel` | +| fields
`array` |

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
voucher_codeUnique voucher code.WELCOME100
customer_idCustomer unique ID.cust_7iUa6ICKyU6gH40dBU25kQU1
customer_source_idUnique customer source id of the assigned owner to whom the voucher was published.name.lastname@email.com
dateTimestamp in ISO 8601 format representing the date and time when the voucher was published.2022-04-28T10:19:30.792Z
channelPublication channel.voucherify-website
campaignUnique campaign name.Summer Discounts 20% off
is_winner
metadataReturns all publication metadata.Response will include all publication metadata.
metadata.XWhere X is the name of a particular publication metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Publication. Read more here
Available values: `voucher_code,customer_id,customer_source_id,date,channel,campaign,is_winner,metadata` | +| filters |

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

Any of: [Filter by failure code](#filter-by-failure-code), [Filter by result](#filter-by-result), [Filter by customer ID](#filter-by-customer-id), [Filter by campaign name](#filter-by-campaign-name), [Filter by voucher type](#filter-by-voucher-type), [Filter if the code is a referral code](#filter-if-the-code-is-a-referral-code), [Filter by parent object ID](#filter-by-parent-object-id), [Filter by related object ID](#filter-by-related-object-id), [Filter by publication source ID](#filter-by-publication-source-id) | +## redemption +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `id`, `-id`, `voucher_code`, `-voucher_code`, `tracking_id`, `-tracking_id`, `customer_id`, `-customer_id`, `created_at`, `-created_at` | +| fields
`array` |

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
idUnique redemption ID.r_0acf3a6dae00e679c8, rf_0acf3a495740e679b8
objectObject being exported; by default redemption.redemption
dateTimestamp in ISO 8601 format representing the date and time when the voucher was redeemed.2022-03-23T08:52:24.867Z
voucher_codeUnique voucher code redeemed.WELCOME100
campaignParent campaign name of voucher if applicable.Summer Discounts 20% off
promotion_tier_idpromo_Mwy9XpA0TLctSGriM5kum0qp
customer_idUnique customer ID of redeeming customer.cust_nk0N1uNQ1YnupAoJGOgvsODC
customer_source_idUnique source ID of redeeming customer.name.lastname@email.com
customer_nameCustomer name.John Smith
tracking_idtrack_Pw6r3ejnml43kIwNS4Zj09KZ67xOfLUy
order_amountTotal order amount before applying all discounts.1000
gift_amountGift credits used for redemption.10
loyalty_points12
resultTells you whether the redemption succeeded.SUCCESS, FAILURE
failure_codeInternal Voucherify code for reason why redemption failed.invalid_customer
failure_messageA human-readable message providing a short description explaining why the redemption failed.Customer must be a holder of a loyalty card.
metadataReturns all redemption metadata.Response will include all redemption metadata.
metadata.XWhere X is the name of a particular redemption metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Redemption. Read more here
Available values: `id,object,date,voucher_code,campaign,promotion_tier_id,customer_id,customer_source_id,customer_name,tracking_id,order_amount,gift_amount,loyalty_points,result,failure_code,failure_message,metadata` | +| filters
`object` |

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

| +## customer +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `name`, `-name`, `id`, `-id`, `email`, `-email`, `source_id`, `-source_id`, `created_at`, `-created_at`, `updated_at`, `-updated_at` | +| fields
`array` |

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
nameCustomer name.John Smith
idUnique customer ID.cust_J1CDUdbqn5Exva8ASWk1Fq0j
descriptionAn arbitrary string that you can attach to a customer object.Customer requesting to be added to VIP tier.
emailCustomer's email.name.lastname@email.com
source_idUnique custom customer identifier.name.lastname@email.com
created_atTimestamp in ISO 8601 format representing the date and time when the customer was created.2022-02-03T13:10:11.928Z
address_cityCityHouston
address_stateStateTX
address_line_1First line of customer's address.72738 Main St
address_line_2Second line of customer's address.Bld 2, Apt 4
address_countryCountryUnited States of America
address_postal_codePostal code (ZIP code)77042-4143
redemptions_total_redeemedTotal customer redemptions.5
redemptions_total_failedTotal customer failed redemptions.2
redemptions_total_succeededTotal customer succeeded redemptions.3
redemptions_total_rolled_backTotal customer redemptions that were rolled back.3
redemptions_total_rollback_failedTotal customer redemptions that were unsuccessfully rolled back.2
redemptions_total_rollback_succeededTotal customer redemptions that were successfully rolled back.1
orders_total_amountTotal sum of order amounts over customer lifetime. Value is multiplied by 100 to precisely represent 2 decimal places.10000 (represents $100)
orders_total_countTotal number of customer orders. Value is multiplied by 100 to precisely represent 2 decimal places.2
orders_average_amountAverage amount spent on orders. Value is multiplied by 100 to precisely represent 2 decimal places.50
orders_last_order_amountHow much did the customer spend on their last order. Value is multiplied by 100 to precisely represent 2 decimal places.50
orders_last_order_dateWhen was the last customer order; timestamp in ISO 8601 format representing the date and time.2022-02-03T13:17:30.630Z
loyalty_pointsSum of customer's loyalty points to go across all loyalty cards.
loyalty_referred_customersHow many customers were referred by this customer.
updated_atTimestamp in ISO 8601 format representing the date and time when the customer was updated.2022-02-14T14:10:14.305Z
phoneCustomer's phone number.+1 (294) 752-1846
birthdayCustomer's birthday.2022-01-01
birthdateCustomer's birthdate.2022-04-29
metadataReturns all customer metadata.Response will include all customer metadata.
metadata.XWhere X is the name of a particular customer metadata property.The returned value will depend on the type of data defined in the Dashboard > Project Settings > Metdata Schemas > Customer. Read more here
Available values: `name,id,description,email,source_id,created_at,address_city,address_state,address_line_1,address_line_2,address_country,address_postal_code,redemptions_total_redeemed,redemptions_total_failed,redemptions_total_succeeded,redemptions_total_rolled_back,redemptions_total_rollback_failed,redemptions_total_rollback_succeeded,orders_total_amount,orders_total_count,orders_average_amount,orders_last_order_amount,orders_last_order_date,loyalty_points,loyalty_referred_customers,updated_at,phone,birthday,metadata,birthdate` | +| filters
`object` |

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

| +## points expiration +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `expires_at`, `-expires_at` | +| fields
`array` |

Array of strings containing the data that was exported. These fields define the headers in the CSV file.

The array can be a combintation of any of the following available fields:

FieldDefinitionExample Export
idLoyalty points bucket ID.lopb_Wl1o3EjJIHSNjvO5BDLy4z1n
campaign_idCampaign ID of the parent loyalty campaign.camp_7s3uXI44aKfIk5IhmeOPr6ic
voucher_idVoucher ID of the parent loyalty card.v_YLn0WVWXSXbUfDvxgrgUbtfJ3SQIY655
statusStatus of the loyalty points bucket.ACTIVE or INACTIVE
expires_atTimestamp in ISO 8601 format representing the date when the points expire.2022-06-30
pointsNumber of points.1000
Available values: `id,campaign_id,voucher_id,status,expires_at,points` | +| filters |

Data filters used to narrow the data records to be returned in the export. You can filter the following parameters:

Any of: [Filter by campaign ID](#filter-by-campaign-id), [Filter by voucher ID](#filter-by-voucher-id) | +## gift card transactions +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `-created_at`, `created_at` | +| fields
`array` |

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combination of any of the following available fields:

FieldDefinitionExample Export
idUnique transaction ID.vtx_0cb7811f1c07765800
typeTransaction type.- CREDITS_REMOVAL
- CREDITS_ADDITION
- CREDITS_REFUND
- CREDITS_REDEMPTION
source_idUnique transaction source ID.8638
reasonContains the reason for the transaction if one was included originally.
balanceThe gift card balance after the transaction.
amountThe amount of gift card credits being allocated during the transaction. This value can either be negative or positive depending on the nature of the transaction.
created_atTimestamp in ISO 8601 format representing the date and time when the transaction was created.2022-03-09T09:16:32.521Z
voucher_idUnique Voucher ID.v_dky7ksKfPX50Wb2Bxvcoeb1xT20b6tcp
campaign_idParent campaign ID.camp_FNYR4jhqZBM9xTptxDGgeNBV
sourceChannel through which the transaction was initiated.API
detailsMore detailed information stored in the form of a JSON.Provides more details related to the transaction in the form of an object.
Available values: `id,type,source_id,reason,balance,amount,created_at,voucher_id,campaign_id,source,details` | +| filters | See: [Filter by voucher ID](#filter-by-voucher-id) | +## loyalty card transactions +| Attributes | Description | +|:-----|:--------| +| order
`string` |

How the export is filtered, where the dash - preceding a sorting option means sorting in a descending order.

Available values: `-created_at`, `created_at` | +| fields
`array` |

Array of strings containing the data in the export. These fields define the headers in the CSV file. The array can be a combination of any of the following available fields:

FieldDefinitionExample Export
idUnique transaction ID assigned by Voucherify.vtx_0cb7811f1c07765800
typeTransaction type.- POINTS_EXPIRATION
- POINTS_ADDITION
- POINTS_REMOVAL
- POINTS_TRANSFER_OUT
- POINTS_ACCRUAL
- POINTS_REFUND
- POINTS_REDEMPTION
source_idCustom source ID of the transaction if one was included originally.source_id_custom
reasonContains the reason for the transaction if one was included originally.
balanceThe loyalty card balance after the transaction.
amountThe amount of loyalty points being allocated during the transaction. This value can either be negative or positive depending on the nature of the transaction.
created_atTimestamp in ISO 8601 format representing the date and time when the transaction was created.2022-03-09T09:16:32.521Z
voucher_idUnique Voucher ID.v_dky7ksKfPX50Wb2Bxvcoeb1xT20b6tcp
campaign_idParent campaign ID.camp_FNYR4jhqZBM9xTptxDGgeNBV
sourceChannel through which the transaction was initiated.- API
- voucherify-web-ui
- Automation
detailsMore detailed information stored in the form of a JSON.Provides more details related to the transaction in the form of an object.
related_transaction_idUnique transaction ID related to a receiver/donor card in the case of a points transfer from/to another card.vtx_0c9afe802593b34b80
Available values: `id,type,source_id,reason,balance,amount,created_at,voucher_id,campaign_id,details,related_transaction_id` | +| filters | See: [Filter by voucher ID](#filter-by-voucher-id) | +## Filter by status +| Attributes | Description | +|:-----|:--------| +| status | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by order source ID +| Attributes | Description | +|:-----|:--------| +| source_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by order amount +| Attributes | Description | +|:-----|:--------| +| amount | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by order total amount +| Attributes | Description | +|:-----|:--------| +| total_amount | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by order discount amount +| Attributes | Description | +|:-----|:--------| +| discount_amount | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by order total discount amount +| Attributes | Description | +|:-----|:--------| +| total_discount_amount | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by order items discount amount +| Attributes | Description | +|:-----|:--------| +| items_discount_amount | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by failure code +| Attributes | Description | +|:-----|:--------| +| failure_code | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by result +| Attributes | Description | +|:-----|:--------| +| result | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by customer ID +| Attributes | Description | +|:-----|:--------| +| customer_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by campaign name +| Attributes | Description | +|:-----|:--------| +| campaign_name | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by voucher type +| Attributes | Description | +|:-----|:--------| +| voucher_type | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter if the code is a referral code +| Attributes | Description | +|:-----|:--------| +| is_referral_code | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by parent object ID +| Attributes | Description | +|:-----|:--------| +| parent_object_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by related object ID +| Attributes | Description | +|:-----|:--------| +| related_object_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by publication source ID +| Attributes | Description | +|:-----|:--------| +| source_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by campaign ID +| Attributes | Description | +|:-----|:--------| +| campaign_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by voucher ID +| Attributes | Description | +|:-----|:--------| +| voucher_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by voucher ID +| Attributes | Description | +|:-----|:--------| +| voucher_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by voucher ID +| Attributes | Description | +|:-----|:--------| +| voucher_id | See: [Filter by conditions](#filter-by-conditions) | +| junction | See: [Logical Operator Between Filters](#logical-operator-between-filters) | +## Filter by conditions +| Attributes | Description | +|:-----|:--------| +| conditions
`object` |

Data filters used to narrow the data records to be returned in the result.

AttributesDescription
$in
array

Array of resource values that should be included in the results. (multiple values)

$not_in
array

Array of resource values that should be included in the results. (multiple values)

$is
string

Value is exactly this value. (single value)

$is_not
string

Results omit this value. (single value)

$has_value
string

Value is NOT null. The value for this parameter is an empty string.

$is_unknown
string

Value is null. The value for this parameter is an empty string.

$starts_with
string

Value starts with the specified string.

$ends_with
string

Value ends with the specified string.

| +## Logical Operator Between Filters +

Filter by conditions set on the junction parameter indicating how the conditions should be accounted for in the query. An AND is an all-inclusive logical operator, meaning the AND operator displays a record if ALL the conditions separated by AND are TRUE, while an OR operator displays a record if ANY of the conditions separated by OR is TRUE.

+ +Available values: `AND`, `OR` +## Filter by conditions +| Attributes | Description | +|:-----|:--------| +| conditions
`object` |

Data filters used to narrow the data records to be returned in the result.

AttributesDescription
$in
array

Array of resource values that should be included in the results. (multiple values)

$not_in
array

Array of resource values that should be included in the results. (multiple values)

$is
integer

Value is exactly this value. (single value)

$is_not
integer

Results omit this value. (single value)

$has_value
string

Value is NOT null. The value for this parameter is an empty string.

$is_unknown
string

Value is null. The value for this parameter is an empty string.

$more_than
integer

Value is more than the specified number.

$more_than_equal
integer

Value is more than or equal to the specified number.

$less_than
integer

Value is less than the specified number.

$less_than_equal
integer

Value is less than or equal to the specified number.

| +## Filter by conditions +| Attributes | Description | +|:-----|:--------| +| conditions
`object` |

Data filters used to narrow the data records to be returned in the result.

AttributesDescription
$is
string

Value is exactly this value. (single value)

$is_not
string

Results omit this value. (single value)

$has_value
string

Value is NOT null. The value for this parameter is an empty string.

$is_unknown
string

Value is null. The value for this parameter is an empty string.

| [block:html] { diff --git a/docs/reference-docs/LOYALTIES-API-Loyalty-Campaign-Object.md b/docs/reference-docs/LOYALTIES-API-Loyalty-Campaign-Object.md index 1a41cf633..c8e42538d 100644 --- a/docs/reference-docs/LOYALTIES-API-Loyalty-Campaign-Object.md +++ b/docs/reference-docs/LOYALTIES-API-Loyalty-Campaign-Object.md @@ -1,6 +1,6 @@ --- title: Loyalty Campaign Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: loyalties-api slug: loyalty-campaign-object @@ -8,34 +8,87 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique campaign ID, assigned by Voucherify.

|

camp_f7fBbQxUuTN7dI7tGOo5XMDA

| -| name |

Loyalty campaign name.

| | -| campaign_type |

Type of campaign.

Available values: `LOYALTY_PROGRAM` | | -| type |

Defines whether the campaign can be updated with new vouchers after campaign creation.

Available values: `AUTO_UPDATE`, `STATIC` | | -| voucher | | | -| auto_join |

Indicates whether customers will be able to auto-join a loyalty campaign if any earning rule is fulfilled.

| | -| join_once |

If this value is set to true, customers will be able to join the campaign only once.

| | -| use_voucher_metadata_schema |

Flag indicating whether the campaign is to use the voucher's metadata schema instead of the campaign metadata schema.

| | -| start_date |

Activation timestamp defines when the campaign starts to be active in ISO 8601 format. Campaign is inactive before this date.

|

2022-09-20T00:00:00.000Z

| -| expiration_date |

Expiration timestamp defines when the campaign expires in ISO 8601 format. Campaign is inactive after this date.

|

2022-09-30T00:00:00.000Z

| -| validity_timeframe |

Set recurrent time periods when the campaign is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescriptionExample
interval

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a campaign with an interval of P2D will be active every other day.

duration

Defines the amount of time the campaign will be active in ISO 8601 format. For example, a campaign with a duration of P1D will be valid for a duration of one day.

| | -| validity_day_of_week |

Integer array corresponding to the particular days of the week in which the campaign is valid.

| | -| activity_duration_after_publishing |

Defines the amount of time the campaign will be active in ISO 8601 format after publishing. For example, a campaign with a duration of P24D will be valid for a duration of 24 days.

| | -| description |

An optional field to keep any extra textual information about the campaign such as a campaign description and details.

| | -| vouchers_count |

Total number of unique vouchers in campaign.

| | -| active |

A flag to toggle the campaign on or off. You can disable a campaign even though it's within the active period defined by the start_date and expiration_date.

| | -| metadata |

The metadata object stores all custom attributes assigned to the campaign. A set of key/value pairs that you can attach to a campaign object. It can be useful for storing additional information about the campaign in a structured format.

| | -| created_at |

Timestamp representing the date and time when the campaign was created in ISO 8601 format.

|

2021-12-01T08:00:50.038Z

| -| updated_at |

Timestamp representing the date and time when the voucher was updated in ISO 8601 format.

|

2022-09-20T09:18:19.623Z

| -| creation_status |

Indicates the status of the campaign creation.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT`, `MODIFYING` | | -| vouchers_generation_status |

Indicates the status of the campaign's vouchers.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT` | | -| protected |

Indicates whether the resource can be deleted.

| | -| category_id |

Unique category ID that this campaign belongs to.

|

cat_0b688929a2476386a7

| -| categories | | | -| loyalty_tiers_expiration |

Defines the expiration mechanism for loyalty tiers.

Any of:

Balance

AttributesDescriptionExample
qualification_type

Tier qualification.

BALANCE: Points balance is based on the customer's current points balance. Customers qualify for the tier if their points balance is in the points range of the tier.

Available values: BALANCE
start_date

Defines the conditions for the start date of the tier.

AttributesDescriptionExample
type

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.

Available values: IMMEDIATE
expiration_date

Defines the conditions for the expiration date of a tier.

Any of:

Balance Drop

AttributesDescriptionExample
type

What triggers the tier to expire for a customer.
BALANCE_DROP: Tier expires when the points balance drops below the required range of the tier.

Available values: BALANCE_DROP

Custom

AttributesDescriptionExample
type

What triggers the tier to expire for a customer.
CUSTOM: Tier expires after a certain time period passes following the instance the points balance drops below the required range of the tier.

Available values: CUSTOM
extend

Defines the amount of time the tier will remain active in ISO 8601 format. The expiration date counter starts at the moment when the customer reaches the minimum required points that are required to be in the tier. For example, a tier with a duration of P3M will be valid for a duration of 3 months.

rounding

Defines the rounding mechanism for tier expiration.

Any of:

Calendar Periods

AttributesDescriptionExample
type

Period to which the expiration will be rounded to.

  • MONTH: The expiration date will be rounded to the end of the month.
  • QUARTER: The expiration date will be rounded to the end of the quarter.
  • HALF_YEAR: The expiration date will be rounded to the half year.
  • YEAR: The expiration date will be rounded to the end of the year.
Available values: MONTH, QUARTER, HALF_YEAR, YEAR
strategy

Which portion of the given period should the rounding be applied to.

Available values: END

Specific Month

AttributesDescriptionExample
type

This mechanism describes a custom rounding for the expiration date.

Available values: CUSTOM
strategy

Which portion of the given period should the rounding be applied to.

Available values: END
unit

Defines the type of unit of time in which the rounding period is counted.

Available values: MONTH
value

Value for the unit of time that the rounding applies to. Units for this parameter are defined by the rounding.unit parameter.

  • 0: January
  • 1: February
  • 2: March
  • 3: April
  • 4: May
  • 5: June
  • 6: July
  • 7: August
  • 8: September
  • 9: October
  • 10: November
  • 11: December

Points in Period

AttributesDescriptionExample
qualification_type

Tier qualification.

POINTS_IN_PERIOD: A customer qualifies for the tier only if the sum of the accumulated points in a defined time interval reaches the tier threshold.

Available values: POINTS_IN_PERIOD
qualification_period

Customers can qualify for the tier if they collected enough points in a given time period. So, in addition to the customer having to reach a points range, they also need to have collected the points within a set time period.

PeriodDefinition
Calendar MonthPoints collected in one calendar month
January, February, March, etc.
Calendar QuarterPoints collected in the quarter
- January - March
- April - June
- July - September
- October - December
Calendar Half-yearPoints collected in the half-year
- January - June
- July - December
Calendar YearPoints collected in one calendar year
January - December
Available values: MONTH, QUARTER, HALF_YEAR, YEAR
start_date

Defines the conditions for the start date of the tier.

AttributesDescriptionExample
type

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.
NEXT_PERIOD: When the next qualification period starts.

Available values: IMMEDIATE, NEXT_PERIOD
expiration_date

Defines the conditions for the expiration date of a tier.

AttributesDescriptionExample
type

What triggers the tier to expire for a customer.
END_OF_PERIOD: Expire tier at the end of the period.
END_OF_NEXT_PERIOD: Expire tier at the end of the next period.

Available values: END_OF_PERIOD, END_OF_NEXT_PERIOD
extend

Extend the expiration by adding extra months or days in ISO 8601 format. The tier will remain active even though it reaches its expiration time period. For example, a tier with a duration of P3M will be valid for an additional duration of 3 months and a tier with a duration of P1D will be valid for an additional duration of 1 day.

| | -| object |

The type of object represented by JSON. This object stores information about the campaign.

| | +## Loyalty Campaign Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique campaign ID, assigned by Voucherify.

**Example:**

camp_f7fBbQxUuTN7dI7tGOo5XMDA

| +| name
`string` |

Loyalty campaign name.

| +| campaign_type
`string` |

Type of campaign.

Available values: `LOYALTY_PROGRAM` | +| type
`string` |

Defines whether the campaign can be updated with new vouchers after campaign creation.

Available values: `AUTO_UPDATE`, `STATIC` | +| voucher | See: [Loyalty Card](#loyalty-card) | +| auto_join
`boolean` |

Indicates whether customers will be able to auto-join a loyalty campaign if any earning rule is fulfilled.

| +| join_once
`boolean` |

If this value is set to true, customers will be able to join the campaign only once.

| +| use_voucher_metadata_schema
`boolean` |

Flag indicating whether the campaign is to use the voucher's metadata schema instead of the campaign metadata schema.

| +| start_date
`string` |

Activation timestamp defines when the campaign starts to be active in ISO 8601 format. Campaign is inactive before this date.

**Example:**

2022-09-20T00:00:00.000Z

| +| expiration_date
`string` |

Expiration timestamp defines when the campaign expires in ISO 8601 format. Campaign is inactive after this date.

**Example:**

2022-09-30T00:00:00.000Z

| +| validity_timeframe
`object` |

Set recurrent time periods when the campaign is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescription
interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a campaign with an interval of P2D will be active every other day.

duration
string

Defines the amount of time the campaign will be active in ISO 8601 format. For example, a campaign with a duration of P1D will be valid for a duration of one day.

| +| validity_day_of_week
`array` |

Integer array corresponding to the particular days of the week in which the campaign is valid.

| +| activity_duration_after_publishing
`string` |

Defines the amount of time the campaign will be active in ISO 8601 format after publishing. For example, a campaign with a duration of P24D will be valid for a duration of 24 days.

| +| description
`string` |

An optional field to keep any extra textual information about the campaign such as a campaign description and details.

| +| vouchers_count
`integer` |

Total number of unique vouchers in campaign.

| +| active
`boolean` |

A flag to toggle the campaign on or off. You can disable a campaign even though it's within the active period defined by the start_date and expiration_date.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the campaign. A set of key/value pairs that you can attach to a campaign object. It can be useful for storing additional information about the campaign in a structured format.

| +| created_at
`string` |

Timestamp representing the date and time when the campaign was created in ISO 8601 format.

**Example:**

2021-12-01T08:00:50.038Z

| +| updated_at
`string` |

Timestamp representing the date and time when the voucher was updated in ISO 8601 format.

**Example:**

2022-09-20T09:18:19.623Z

| +| creation_status
`string` |

Indicates the status of the campaign creation.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT`, `MODIFYING` | +| vouchers_generation_status
`string` |

Indicates the status of the campaign's vouchers.

Available values: `DONE`, `IN_PROGRESS`, `FAILED`, `DRAFT` | +| protected
`boolean` |

Indicates whether the resource can be deleted.

| +| category_id
`string` |

Unique category ID that this campaign belongs to.

**Example:**

cat_0b688929a2476386a7

| +| categories | See: [Category Object](#category-object) | +| loyalty_tiers_expiration
`object` |

Defines the expiration mechanism for loyalty tiers.

Any of: [Balance](#balance), [Points in Period](#points-in-period) | +| object
`string` |

The type of object represented by JSON. This object stores information about the campaign.

| +## Loyalty Card +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Type of voucher.

| +| loyalty_card
`object` |

Defines the loyalty card details.

AttributesDescription
points
integer

Initial loyalty card income in points to be applied to the loyalty card at voucher generation.

expiration_rules
object

Defines point expiration rules.

AttributesDescription
period_type
string

The expiration period.

Available values: MONTH
period_value
integer

How many periods should pass before the expiration occurs.

rounding_type
string

Round up expiration till the end of the given period type.

Available values: END_OF_MONTH, END_OF_QUARTER, END_OF_HALF_YEAR, END_OF_YEAR, PARTICULAR_MONTH
| +| redemption
`object` |

Defines the redemption limits on vouchers.

AttributesDescription
quantity
integer

How many times a voucher can be redeemed. A null value means unlimited.

| +| code_config
`object` |

Defines code's pattern (prefix, suffix, length, charset, etc).

AttributesDescription
length
string

Number of characters in a generated code (excluding prefix and postfix).

charset
string

Characters that can appear in the code.

Examples:

  • Alphanumeric: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Alphabetic Lowercase: abcdefghijklmnopqrstuvwxyz
  • Alphabetic Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Numbers: 0123456789
  • Custom: a custom character set
prefix
string

A text appended before the code.

postfix
string

A text appended after the code.

pattern
string

A pattern for codes where hashes (#) will be replaced with random characters. Overrides length.

| +| is_referral_code
`boolean` |

Indicates whether the voucher is a referral code; this is true for campaign type REFERRAL_PROGRAM.

| +## Category Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique category ID assigned by Voucherify.

| +| name
`string` |

Category name.

| +| hierarchy
`integer` |

Category hierarchy.

| +| created_at
`string` |

Timestamp representing the date and time when the category was created in ISO 8601 format.

**Example:**

2022-07-14T10:45:13.156Z

| +| updated_at
`string` |

Timestamp representing the date and time when the category was updated in ISO 8601 format.

**Example:**

2022-08-16T10:52:08.094Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the category.

| +## Balance +| Attributes | Description | +|:-----|:--------| +| qualification_type
`string` |

Tier qualification.

BALANCE: Points balance is based on the customer's current points balance. Customers qualify for the tier if their points balance is in the points range of the tier.

Available values: `BALANCE` | +| start_date
`object` |

Defines the conditions for the start date of the tier.

AttributesDescription
type
string

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.

Available values: IMMEDIATE
| +| expiration_date |

Defines the conditions for the expiration date of a tier.

Any of: [Balance Drop](#balance-drop), [Custom](#custom) | +## Points in Period +| Attributes | Description | +|:-----|:--------| +| qualification_type
`string` |

Tier qualification.

POINTS_IN_PERIOD: A customer qualifies for the tier only if the sum of the accumulated points in a defined time interval reaches the tier threshold.

Available values: `POINTS_IN_PERIOD` | +| qualification_period
`string` |

Customers can qualify for the tier if they collected enough points in a given time period. So, in addition to the customer having to reach a points range, they also need to have collected the points within a set time period.

PeriodDefinition
Calendar MonthPoints collected in one calendar month
January, February, March, etc.
Calendar QuarterPoints collected in the quarter
- January - March
- April - June
- July - September
- October - December
Calendar Half-yearPoints collected in the half-year
- January - June
- July - December
Calendar YearPoints collected in one calendar year
January - December
Available values: `MONTH`, `QUARTER`, `HALF_YEAR`, `YEAR` | +| start_date
`object` |

Defines the conditions for the start date of the tier.

AttributesDescription
type
string

What triggers the tier to be valid for a customer.
IMMEDIATE: After reaching the minimum required points.
NEXT_PERIOD: When the next qualification period starts.

Available values: IMMEDIATE, NEXT_PERIOD
| +| expiration_date
`object` |

Defines the conditions for the expiration date of a tier.

AttributesDescription
type
string

What triggers the tier to expire for a customer.
END_OF_PERIOD: Expire tier at the end of the period.
END_OF_NEXT_PERIOD: Expire tier at the end of the next period.

Available values: END_OF_PERIOD, END_OF_NEXT_PERIOD
extend
string

Extend the expiration by adding extra months or days in ISO 8601 format. The tier will remain active even though it reaches its expiration time period. For example, a tier with a duration of P3M will be valid for an additional duration of 3 months and a tier with a duration of P1D will be valid for an additional duration of 1 day.

| +## Balance Drop +| Attributes | Description | +|:-----|:--------| +| type
`string` |

What triggers the tier to expire for a customer.
BALANCE_DROP: Tier expires when the points balance drops below the required range of the tier.

Available values: `BALANCE_DROP` | +## Custom +| Attributes | Description | +|:-----|:--------| +| type
`string` |

What triggers the tier to expire for a customer.
CUSTOM: Tier expires after a certain time period passes following the instance the points balance drops below the required range of the tier.

Available values: `CUSTOM` | +| extend
`string` |

Defines the amount of time the tier will remain active in ISO 8601 format. The expiration date counter starts at the moment when the customer reaches the minimum required points that are required to be in the tier. For example, a tier with a duration of P3M will be valid for a duration of 3 months.

| +| rounding |

Defines the rounding mechanism for tier expiration.

Any of: [Calendar Periods](#calendar-periods), [Specific Month](#specific-month) | +## Calendar Periods +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Period to which the expiration will be rounded to.

Available values: `MONTH`, `QUARTER`, `HALF_YEAR`, `YEAR` | +| strategy
`string` |

Which portion of the given period should the rounding be applied to.

Available values: `END` | +## Specific Month +| Attributes | Description | +|:-----|:--------| +| type
`string` |

This mechanism describes a custom rounding for the expiration date.

Available values: `CUSTOM` | +| strategy
`string` |

Which portion of the given period should the rounding be applied to.

Available values: `END` | +| unit
`string` |

Defines the type of unit of time in which the rounding period is counted.

Available values: `MONTH` | +| value
`integer` |

Value for the unit of time that the rounding applies to. Units for this parameter are defined by the rounding.unit parameter.

| [block:html] { diff --git a/docs/reference-docs/LOYALTIES-API-Loyalty-Card-Object.md b/docs/reference-docs/LOYALTIES-API-Loyalty-Card-Object.md index aa532a397..46bdc87bd 100644 --- a/docs/reference-docs/LOYALTIES-API-Loyalty-Card-Object.md +++ b/docs/reference-docs/LOYALTIES-API-Loyalty-Card-Object.md @@ -1,6 +1,6 @@ --- title: Loyalty Card Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: loyalties-api slug: loyalty-card-object @@ -8,34 +8,44 @@ hidden: false order: 2 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Assigned by the Voucherify API, identifies the voucher.

|

v_mkZN9v7vjYUadXnHrMza8W5c34fE5KiV

| -| code |

A code that identifies a voucher. Pattern can use all letters of the English alphabet, Arabic numerals, and special characters.

|

WVPblOYX

| -| campaign |

A unique campaign name, identifies the voucher's parent campaign.

|

Loyalty Card Campaign

| -| campaign_id |

Assigned by the Voucherify API, identifies the voucher's parent campaign.

|

camp_FNYR4jhqZBM9xTptxDGgeNBV

| -| category |

Tag defining the category that this voucher belongs to. Useful when listing vouchers using the List Vouchers endpoint.

| | -| category_id |

Unique category ID assigned by Voucherify.

|

cat_0bb343dee3cdb5ec0c

| -| categories |

Empty array.

| | -| type |

Defines the type of voucher.

Available values: `LOYALTY_CARD` | | -| discount |

Object representing discount parameters. Child attributes are present only if type is DISCOUNT_VOUCHER. Defaults to null.

| | -| gift |

Object representing gift parameters. Child attributes are present only if type is GIFT_VOUCHER. Defaults to null.

| | -| loyalty_card |

Object representing loyalty card parameters. Child attributes are present only if type is LOYALTY_CARD.

AttributesDescriptionExample
points

Total points incurred over lifespan of loyalty card.

7000

balance

Points available for reward redemption.

6970

next_expiration_date

The next closest date when the next set of points are due to expire.

2023-05-30

next_expiration_points

The amount of points that are set to expire next.

| | -| start_date |

Activation timestamp defines when the code starts to be active in ISO 8601 format. Voucher is inactive before this date.

|

2021-12-01T00:00:00.000Z

| -| expiration_date |

Expiration timestamp defines when the code expires in ISO 8601 format. Voucher is inactive after this date.

|

2021-12-31T00:00:00.000Z

| -| validity_timeframe |

Set recurrent time periods when the voucher is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescriptionExample
duration

Defines the amount of time the voucher will be active in ISO 8601 format. For example, a voucher with a duration of PT1H will be valid for a duration of one hour.

PT1H

interval

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a voucher with an interval of P2D will be active every other day.

P2D

| | -| validity_day_of_week |

Integer array corresponding to the particular days of the week in which the voucher is valid.

Available values: `0`, `1`, `2`, `3`, `4`, `5`, `6` | | -| active |

A flag to toggle the voucher on or off. You can disable a voucher even though it's within the active period defined by the start_date and expiration_date.

| | -| additional_info |

An optional field to keep any extra textual information about the code such as a code description and details.

| | -| metadata |

The metadata object stores all custom attributes assigned to the code. A set of key/value pairs that you can attach to a voucher object. It can be useful for storing additional information about the voucher in a structured format.

| | -| assets |

Stores links to images of QR and barcode that correspond to an encrypted voucher code.

AttributesDescriptionExample
qr

Stores Quick Response (QR) representation of encrypted code.

AttributesDescriptionExample
id

Encrypted voucher code ID.

U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK+t4pp7U7oFzjGJzj9q/bmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg+BaZk5QwXMf8k/OzSlOEVybpwSq+AiqPoNtjeuqtIgkDyvT6Q==

url

URL to QR code

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg

https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK%2Bt4pp7U7oFzjGJzj9q%2FbmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg%2BBaZk5QwXMf8k%2FOzSlOEVybpwSq%2BAiqPoNtjeuqtIgkDyvT6Q%3D%3D

barcode

Stores barcode representation of encrypted code.

AttributesDescriptionExample
id

Encrypted voucher code ID.

U2FsdGVkX19eJhGfWwUrH9+tulBkON+AnMktic+N6CVWzZ9+fHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ+kJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6/pFs61apEn9SJx32ttCF6d3oxKISQQ==

url

URL to barcode

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg

https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19eJhGfWwUrH9%2BtulBkON%2BAnMktic%2BN6CVWzZ9%2BfHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ%2BkJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6%2FpFs61apEn9SJx32ttCF6d3oxKISQQ%3D%3D

| | -| is_referral_code |

Flag indicating whether this voucher is a referral code.

| | -| created_at |

Timestamp representing the date and time when the voucher was created in ISO 8601 format.

|

2021-12-22T10:13:06.487Z

| -| updated_at |

Timestamp representing the date and time when the voucher was last updated in ISO 8601 format.

|

2021-12-22T10:14:45.316Z

| -| holder_id |

Unique customer ID of voucher owner.

|

cust_eWgXlBBiY6THFRJwX45Iakv4

| -| redemption |

Stores a summary of redemptions that have been applied to the voucher.

AttributesDescriptionExample
quantity

How many times a voucher can be redeemed. A null value means unlimited.

redeemed_quantity

How many times a voucher has already been redeemed.

1

redeemed_points

Total loyalty points redeemed.

100000

object

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

url

The endpoint where this list of redemptions can be accessed using a GET method. /v1/vouchers/{voucher_code}/redemptions

/v1/vouchers/WVPblOYX/redemptions?page=1&limit=10

| | -| publish |

This object stores a summary of publish events: an events counter and an endpoint which can be called to return details of each event. A publication is required for loyalty cards and referral codes. This object gets updated whenever a voucher has been published. Publication means assigning a code to a particular customer. Typically, a publication is made by distributing your codes to your customers, e.g. through Export to MailChimp or publish voucher API method.

RequiredOptional
type:LOYALTY_CARDtype:DISCOUNT_VOUCHER
is_referral_code:truetype:GIFT_VOUCHER
AttributesDescriptionExample
object

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

count

Publication events counter.

0

url

The endpoint where this list of publications can be accessed using a GET method. /v1/vouchers/{voucher_code}/publications

/v1/vouchers/WVPblOYX/publications?page=1&limit=10

| | -| object |

The type of object represented by JSON. Default is voucher.

| | +## Loyalty Card Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Assigned by the Voucherify API, identifies the voucher.

**Example:**

v_mkZN9v7vjYUadXnHrMza8W5c34fE5KiV

| +| code
`string` |

A code that identifies a voucher. Pattern can use all letters of the English alphabet, Arabic numerals, and special characters.

**Example:**

WVPblOYX

| +| campaign
`string` |

A unique campaign name, identifies the voucher's parent campaign.

**Example:**

Loyalty Card Campaign

| +| campaign_id
`string` |

Assigned by the Voucherify API, identifies the voucher's parent campaign.

**Example:**

camp_FNYR4jhqZBM9xTptxDGgeNBV

| +| category
`string` |

Tag defining the category that this voucher belongs to. Useful when listing vouchers using the List Vouchers endpoint.

| +| category_id
`string` |

Unique category ID assigned by Voucherify.

**Example:**

cat_0bb343dee3cdb5ec0c

| +| categories
`array` |

Contains details about the category.

Array of [Category Object](#category-object) | +| type
`string` |

Defines the type of voucher.

Available values: `LOYALTY_CARD` | +| discount
`null` |

Object representing discount parameters. Child attributes are present only if type is DISCOUNT_VOUCHER. Defaults to null.

| +| gift
`null` |

Object representing gift parameters. Child attributes are present only if type is GIFT_VOUCHER. Defaults to null.

| +| loyalty_card
`object` |

Object representing loyalty card parameters. Child attributes are present only if type is LOYALTY_CARD.

AttributesDescription
points
integer

Total points incurred over lifespan of loyalty card.

Example:

7000

balance
integer

Points available for reward redemption.

Example:

6970

next_expiration_date
string

The next closest date when the next set of points are due to expire.

Example:

2023-05-30

next_expiration_points
integer

The amount of points that are set to expire next.

| +| start_date
`string` |

Activation timestamp defines when the code starts to be active in ISO 8601 format. Voucher is inactive before this date.

**Example:**

2021-12-01T00:00:00.000Z

| +| expiration_date
`string` |

Expiration timestamp defines when the code expires in ISO 8601 format. Voucher is inactive after this date.

**Example:**

2021-12-31T00:00:00.000Z

| +| validity_timeframe
`object` |

Set recurrent time periods when the voucher is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescription
duration
string

Defines the amount of time the voucher will be active in ISO 8601 format. For example, a voucher with a duration of PT1H will be valid for a duration of one hour.

Example:

PT1H

interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a voucher with an interval of P2D will be active every other day.

Example:

P2D

| +| validity_day_of_week
`array` |

Integer array corresponding to the particular days of the week in which the voucher is valid.

Available values: `0`, `1`, `2`, `3`, `4`, `5`, `6` | +| active
`boolean` |

A flag to toggle the voucher on or off. You can disable a voucher even though it's within the active period defined by the start_date and expiration_date.

| +| additional_info
`string` |

An optional field to keep any extra textual information about the code such as a code description and details.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the code. A set of key/value pairs that you can attach to a voucher object. It can be useful for storing additional information about the voucher in a structured format.

| +| assets
`object` |

Stores links to images of QR and barcode that correspond to an encrypted voucher code.

AttributesDescription
qr
object

Stores Quick Response (QR) representation of encrypted code.

AttributesDescription
id
string

Encrypted voucher code ID.

Example:

U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK+t4pp7U7oFzjGJzj9q/bmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg+BaZk5QwXMf8k/OzSlOEVybpwSq+AiqPoNtjeuqtIgkDyvT6Q==

url
string

URL to QR code

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg
Example:

https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK%2Bt4pp7U7oFzjGJzj9q%2FbmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg%2BBaZk5QwXMf8k%2FOzSlOEVybpwSq%2BAiqPoNtjeuqtIgkDyvT6Q%3D%3D

barcode
object

Stores barcode representation of encrypted code.

AttributesDescription
id
string

Encrypted voucher code ID.

Example:

U2FsdGVkX19eJhGfWwUrH9+tulBkON+AnMktic+N6CVWzZ9+fHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ+kJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6/pFs61apEn9SJx32ttCF6d3oxKISQQ==

url
string

URL to barcode

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg
Example:

https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19eJhGfWwUrH9%2BtulBkON%2BAnMktic%2BN6CVWzZ9%2BfHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ%2BkJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6%2FpFs61apEn9SJx32ttCF6d3oxKISQQ%3D%3D

| +| is_referral_code
`boolean` |

Flag indicating whether this voucher is a referral code.

| +| created_at
`string` |

Timestamp representing the date and time when the voucher was created in ISO 8601 format.

**Example:**

2021-12-22T10:13:06.487Z

| +| updated_at
`string` |

Timestamp representing the date and time when the voucher was last updated in ISO 8601 format.

**Example:**

2021-12-22T10:14:45.316Z

| +| holder_id
`string` |

Unique customer ID of voucher owner.

**Example:**

cust_eWgXlBBiY6THFRJwX45Iakv4

| +| redemption
`object` |

Stores a summary of redemptions that have been applied to the voucher.

AttributesDescription
quantity
integer

How many times a voucher can be redeemed. A null value means unlimited.

redeemed_quantity
integer

How many times a voucher has already been redeemed.

Example:

1

redeemed_points
integer

Total loyalty points redeemed.

Example:

100000

object
string

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

url
string

The endpoint where this list of redemptions can be accessed using a GET method. /v1/vouchers/{voucher_code}/redemptions

Example:

/v1/vouchers/WVPblOYX/redemptions?page=1&limit=10

| +| publish
`object` |

This object stores a summary of publish events: an events counter and an endpoint which can be called to return details of each event. A publication is required for loyalty cards and referral codes. This object gets updated whenever a voucher has been published. Publication means assigning a code to a particular customer. Typically, a publication is made by distributing your codes to your customers, e.g. through Export to MailChimp or publish voucher API method.

RequiredOptional
type:LOYALTY_CARDtype:DISCOUNT_VOUCHER
is_referral_code:truetype:GIFT_VOUCHER
AttributesDescription
object
string

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

count
integer

Publication events counter.

Example:

0

url
string

The endpoint where this list of publications can be accessed using a GET method. /v1/vouchers/{voucher_code}/publications

Example:

/v1/vouchers/WVPblOYX/publications?page=1&limit=10

| +| object
`string` |

The type of object represented by JSON. Default is voucher.

| +## Category Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique category ID assigned by Voucherify.

| +| name
`string` |

Category name.

| +| hierarchy
`integer` |

Category hierarchy.

| +| created_at
`string` |

Timestamp representing the date and time when the category was created in ISO 8601 format.

**Example:**

2022-07-14T10:45:13.156Z

| +| updated_at
`string` |

Timestamp representing the date and time when the category was updated in ISO 8601 format.

**Example:**

2022-08-16T10:52:08.094Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the category.

| [block:html] { diff --git a/docs/reference-docs/LOYALTIES-API-Loyalty-Tier-Object.md b/docs/reference-docs/LOYALTIES-API-Loyalty-Tier-Object.md index cac33a389..3d1d65827 100644 --- a/docs/reference-docs/LOYALTIES-API-Loyalty-Tier-Object.md +++ b/docs/reference-docs/LOYALTIES-API-Loyalty-Tier-Object.md @@ -1,6 +1,6 @@ --- title: Loyalty Tier Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: loyalties-api slug: loyalty-tier-object @@ -8,19 +8,30 @@ hidden: false order: 3 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique loyalty tier ID.

|

ltr_30KHciA0UG8B71Fo51GZqwgN

| -| name |

Loyalty Tier name.

| | -| campaign_id |

Unique parent campaign ID.

|

camp_fkZ28pe7DUAEmmabofkxHI8N

| -| metadata |

The metadata object stores all custom attributes assigned to the loyalty tier. A set of key/value pairs that you can attach to a loyalty tier object. It can be useful for storing additional information about the loyalty tier in a structured format.

| | -| created_at |

Timestamp representing the date and time when the loyalty tier was created in ISO 8601 format.

|

2022-11-10T12:20:52.755Z

| -| updated_at |

Timestamp representing the date and time when the loyalty tier was updated in ISO 8601 format.

|

2022-11-25T10:59:43.231Z

| -| earning_rules |

Contains a list of earning rule IDs and their points mapping for the given earning rule.

AttributesDescriptionExample
unique_earning_rule_ID

ern_95aq3JaE5A8xzHjoJPYNRqXZ

Any of:

Multiply Points

AttributesDescriptionExample
type

Type of calculation.

Available values: MULTIPLY
multiplier

Multiplication factor used to multiply the points to obtain the mapped points.

Fixed Points

AttributesDescriptionExample
type

Type of calculation.

Available values: CUSTOM
points

Fixed number of points to be applied.

| | -| rewards |

Contains a list of reward IDs and their points mapping for the given reward.

AttributesDescriptionExample
unique_reward_ID

rewa_t88DnSdNnE0IzQX6gqH3jHGQ

Any of:

Multiply Points

AttributesDescriptionExample
type

Type of calculation.

Available values: MULTIPLY
multiplier

Multiplication factor used to multiply the points to obtain the mapped points.

Fixed Points

AttributesDescriptionExample
type

Type of calculation.

Available values: CUSTOM
points

Fixed number of points to be applied.

| | -| config |

Defines loyalty tier range in points.

AttributesDescriptionExample
points

Defines range of loyalty tier in points.

AttributesDescriptionExample
from

Bottom points threshold value.

to

Top points threshold value.

| | -| points |

Defines range of loyalty tier in points.

AttributesDescriptionExample
from

Bottom points threshold value.

to

Top points threshold value.

| | -| object |

The type of object represented by JSON. This object stores information about the loyalty.

| | +## Loyalty Tier Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique loyalty tier ID.

**Example:**

ltr_30KHciA0UG8B71Fo51GZqwgN

| +| name
`string` |

Loyalty Tier name.

| +| campaign_id
`string` |

Unique parent campaign ID.

**Example:**

camp_fkZ28pe7DUAEmmabofkxHI8N

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the loyalty tier. A set of key/value pairs that you can attach to a loyalty tier object. It can be useful for storing additional information about the loyalty tier in a structured format.

| +| created_at
`string` |

Timestamp representing the date and time when the loyalty tier was created in ISO 8601 format.

**Example:**

2022-11-10T12:20:52.755Z

| +| updated_at
`string` |

Timestamp representing the date and time when the loyalty tier was updated in ISO 8601 format.

**Example:**

2022-11-25T10:59:43.231Z

| +| earning_rules
`object` |

Contains a list of earning rule IDs and their points mapping for the given earning rule.

AttributesDescription
unique_earning_rule_ID

ern_95aq3JaE5A8xzHjoJPYNRqXZ

Any of: Multiply Points, Fixed Points
| +| rewards
`object` |

Contains a list of reward IDs and their points mapping for the given reward.

AttributesDescription
unique_reward_ID

rewa_t88DnSdNnE0IzQX6gqH3jHGQ

Any of: Multiply Points, Fixed Points
| +| config
`object` |

Defines loyalty tier range in points.

AttributesDescription
points
object

Defines range of loyalty tier in points.

AttributesDescription
from
integer

Bottom points threshold value.

to
integer

Top points threshold value.

| +| points
`object` |

Defines range of loyalty tier in points.

AttributesDescription
from
integer

Bottom points threshold value.

to
integer

Top points threshold value.

| +| object
`string` |

The type of object represented by JSON. This object stores information about the loyalty.

| +## Multiply Points +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Type of calculation.

Available values: `MULTIPLY` | +| multiplier
`integer` |

Multiplication factor used to multiply the points to obtain the mapped points.

| +## Fixed Points +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Type of calculation.

Available values: `CUSTOM` | +| points
`integer` |

Fixed number of points to be applied.

| [block:html] { diff --git a/docs/reference-docs/METADATA-SCHEMAS-API-Metadata-Schema-Object.md b/docs/reference-docs/METADATA-SCHEMAS-API-Metadata-Schema-Object.md index 5612cda31..491cb029a 100644 --- a/docs/reference-docs/METADATA-SCHEMAS-API-Metadata-Schema-Object.md +++ b/docs/reference-docs/METADATA-SCHEMAS-API-Metadata-Schema-Object.md @@ -1,6 +1,6 @@ --- title: Metadata Schema Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: metadata-schemas-api slug: metadata-schema-object @@ -8,15 +8,16 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique metadata schema ID.

|

ms_OF36L2rk4EqhdxvZs56IW9iE

| -| related_object |

The resource type. There is an infinite number of possibilities for the resource type because you can define custom metadata schemas. Some examples are included here to show you the standard metadata schema resource types.

Available values: `campaign`, `customer`, `earning_rule`, `loyalty_tier`, `order`, `order_item`, `product`, `promotion_tier`, `publication`, `redemption`, `reward`, `voucher` | | -| properties |

Contains the metadata definitions. There can be many properties within this object.

Any of:
AttributesDescriptionExample
custom_property_name

Custom property name. This is defined in Project Settings > Metadata Schema in the Dashboard.

AttributesDescriptionExample
typeAvailable values: string, number, object, date, datetime, geopoint, boolean, image_url
array

Indicates whether the definition is an array.

optional

Indicates whether this definition is optional or not optional for the resource.

objectType

Returns the name of the custom resource if the resource was previously defined in the Dashboard as a custom (non-standard) Nested object.

eq

Array of possible values when the setting for is equal to any of in the Dashboard is defined explicitly.

ne

Array of values that are not allowed when the setting for is not equal to any of in the Dashboard is defined explicitly.

lt

A property of number type must have less than this value.

lte

A property of number type must be less than or equal to this value.

gt

A property of number type must be greater than this value.

gte

A property of number type must be greater than or equal to this value.

deleted

Indicates whether the definition was deleted from the schema.

maxLength

Value for maximum length when the setting for has maximum length of in the Dashboard is defined explicitly.

minLength

Value indicating minimum length when the setting for has minimum length of in the Dashboard is defined explicitly.

exactLength

Value indicating exact length when the setting for has exact length of in the Dashboard is defined explicitly.

| | -| allow_defined_only |

Restricts the creation of metadata fields when set to true. In other words, it indicates whether or not you are allowed to create new metadata definitions; for example, in the campaign manager or publication manager. If it is set to true, then only the defined fields will be available for assigning values.

| | -| created_at |

Timestamp representing the date and time when the metadata schema was created in ISO 8601 format.

|

2021-12-03T13:33:44.556Z

| -| updated_at |

Timestamp representing the date and time when the metadata schema was updated in ISO 8601 format.

|

2022-08-11T08:05:30.695Z

| -| object |

The type of object represented by the JSON. This object stores information about the metadata schema.

| | +## Metadata Schema Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique metadata schema ID.

**Example:**

ms_OF36L2rk4EqhdxvZs56IW9iE

| +| related_object
`string` |

The resource type. There is an infinite number of possibilities for the resource type because you can define custom metadata schemas. Some examples are included here to show you the standard metadata schema resource types.

Available values: `campaign`, `customer`, `earning_rule`, `loyalty_tier`, `order`, `order_item`, `product`, `promotion_tier`, `publication`, `redemption`, `reward`, `voucher` | +| properties
`object` |

Contains the metadata definitions. There can be many properties within this object.

Any of:
AttributesDescription
custom_property_name
object

Custom property name. This is defined in Project Settings > Metadata Schema in the Dashboard.

AttributesDescription
type
string
Available values: string, number, object, date, datetime, geopoint, boolean, image_url
array
boolean

Indicates whether the definition is an array.

optional
boolean

Indicates whether this definition is optional or not optional for the resource.

objectType
string,null

Returns the name of the custom resource if the resource was previously defined in the Dashboard as a custom (non-standard) Nested object.

eq
array

Array of possible values when the setting for is equal to any of in the Dashboard is defined explicitly.

ne
array

Array of values that are not allowed when the setting for is not equal to any of in the Dashboard is defined explicitly.

lt
integer

A property of number type must have less than this value.

lte
integer

A property of number type must be less than or equal to this value.

gt
integer

A property of number type must be greater than this value.

gte
integer

A property of number type must be greater than or equal to this value.

deleted
boolean

Indicates whether the definition was deleted from the schema.

maxLength
integer

Value for maximum length when the setting for has maximum length of in the Dashboard is defined explicitly.

minLength
integer

Value indicating minimum length when the setting for has minimum length of in the Dashboard is defined explicitly.

exactLength
integer

Value indicating exact length when the setting for has exact length of in the Dashboard is defined explicitly.

| +| allow_defined_only
`boolean` |

Restricts the creation of metadata fields when set to true. In other words, it indicates whether or not you are allowed to create new metadata definitions; for example, in the campaign manager or publication manager. If it is set to true, then only the defined fields will be available for assigning values.

| +| created_at
`string` |

Timestamp representing the date and time when the metadata schema was created in ISO 8601 format.

**Example:**

2021-12-03T13:33:44.556Z

| +| updated_at
`string` |

Timestamp representing the date and time when the metadata schema was updated in ISO 8601 format.

**Example:**

2022-08-11T08:05:30.695Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the metadata schema.

| [block:html] { diff --git a/docs/reference-docs/ORDERS-API-Order-Object.md b/docs/reference-docs/ORDERS-API-Order-Object.md index 9bec16d73..dfefedfab 100644 --- a/docs/reference-docs/ORDERS-API-Order-Object.md +++ b/docs/reference-docs/ORDERS-API-Order-Object.md @@ -1,6 +1,6 @@ --- title: Order Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: orders-api slug: order-object @@ -8,26 +8,35 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique order ID, assigned by Voucherify.

|

ord_GFDbbv2I0wnO0sFUBOOOXPj2

| -| source_id |

The merchant’s order ID if it is different from the Voucherify order ID. It is really useful in case of integration between multiple systems. It can be an order ID from CRM, database or 3rd party service.

| | -| created_at |

Timestamp representing the date and time when the order was created in ISO 8601 format.

|

2022-03-09T11:19:04.819Z

| -| updated_at |

Timestamp representing the date and time when the order was updated in ISO 8601 format.

|

2022-08-12T13:34:10.681Z

| -| status |

Order status.

Available values: `CREATED`, `PAID`, `CANCELED`, `FULFILLED` | | -| amount |

Order amount before applying any discount.

| | -| discount_amount |

Sum of all order-level discounts applied to the order.

| | -| items_discount_amount |

Sum of all product-specific discounts applied to the order.
sum(items, i => i.discount_amount)

| | -| total_discount_amount |

Sum of all order-level AND all product-specific discounts applied to the order.
total_discount_amount = discount_amount + items_discount_amount

| | -| total_amount |

Order amount after applying all the discounts.
total_amount = amount - total_discount_amount

| | -| items |

Array of order items that have been applied to the order. Each order item can show the effects of particular discounts on the item-level.

Array of:
AttributesDescriptionExample
object

The type of object represented by JSON. This object stores information about the order_item.

product_id

A unique identifier that represents the product and is assigned by Voucherify.

prod_5h0wc453_1

sku_id

A unique identifier that represents the SKU and is assigned by Voucherify.

sku_prod_5h0wc453_1_1

quantity

Quantity of the item in the cart.

amount

Represents a total pre-discount amount of order item (price * quantity).

discount_amount

The item-level discount applied to the item.

price

Unit price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

subtotal_amount

Final order item amount after the applied item-level discount. If there are no item-level discounts applied, this item is equal to the amount.
subtotal_amount=amount-discount_amount

product

This object stores more information about the related product.

AttributesDescriptionExample
id

A unique identifier that represents the product and is assigned by Voucherify.

prod_5h0wc453_1

source_id

A unique product identifier from your inventory system.

illy-arabica

name

Product name.

Brewing System

price

Unit price of a product. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

sku

This object stores more information about the related SKU.

AttributesDescriptionExample
id

A unique identifier that represents the SKU and is assigned by Voucherify.

sku_prod_5h0wc453_1_1

source_id

A unique SKU identifier from your inventory system.

illy-arabica-250g

sku

SKU name.

price

Unit price of a SKU. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| | -| metadata |

The metadata object stores all custom attributes assigned to the order. A set of key/value pairs that are attached to an order object. Stores additional information about the order in a structured format.

| | -| customer |

Object containing information about the customer that is making the purchase.

AttributesDescriptionExample
id

Unique customer ID of the customer making the purchase.

cust_7iUa6ICKyU6gH40dBU25kQU1

object

Type of object represented by the customer object.

| | -| referrer |

Object containing information about the referrer.

AttributesDescriptionExample
id

Unique referrer ID, who referred the customer making the purchase.

cust_7iUa6ICKyU6gH40dBU25kQU1

object

Type of object represented by the referrer object.

| | -| customer_id |

Unique customer ID of the customer making the purchase.

|

cust_7iUa6ICKyU6gH40dBU25kQU1

| -| referrer_id |

Unique referrer ID.

|

cust_nM4jqPiaXUvQdVSA6vTRUnix

| -| object |

The type of object represented by JSON. This object stores information about the order.

| | -| redemptions | One of:

Unstacked Redemption

AttributesDescriptionExample
redemption_ID

The property name is the unique redemption ID; i.e. r_0ba186c4824e4881e1. This object contains information about the redemption of an incentive.

AttributesDescriptionExample
date

Timestamp representing the date and time when the redemption was created in ISO 8601 format.

2022-09-02T17:06:56.649Z

related_object_type

The source of the incentive.

Available values: voucher, promotion_tier
related_object_id

Unique ID of the related object that defines the incentive.

related_object_parent_id

Represent's the campaign ID of the voucher if the redemption was based on a voucher that was part of bulk codes generated within a campaign. In case of a promotion tier, this represents the campaign ID of the promotion tier's parent campaign.

Stacked Redemption

AttributesDescriptionExample
redemption_ID

The property name is the unique parent redemption ID; i.e. r_0ba186c4824e4881e1. This object contains information about the redemption of multiple incentives.

AttributesDescriptionExample
date

Timestamp representing the date and time when the redemption was created in ISO 8601 format.

2022-09-02T17:06:56.649Z

related_object_type

The source of the incentive.

related_object_id

Unique ID of the parent redemption.

r_0ba186c4824e4881e1

stacked

Contains a list of unique IDs of child redemptions, which belong to the stacked incentives.

| | +## Order object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique order ID, assigned by Voucherify.

**Example:**

ord_GFDbbv2I0wnO0sFUBOOOXPj2

| +| source_id
`string` |

The merchant’s order ID if it is different from the Voucherify order ID. It is really useful in case of integration between multiple systems. It can be an order ID from CRM, database or 3rd party service.

| +| created_at
`string` |

Timestamp representing the date and time when the order was created in ISO 8601 format.

**Example:**

2022-03-09T11:19:04.819Z

| +| updated_at
`string` |

Timestamp representing the date and time when the order was updated in ISO 8601 format.

**Example:**

2022-08-12T13:34:10.681Z

| +| status
`string` |

Order status.

Available values: `CREATED`, `PAID`, `CANCELED`, `FULFILLED` | +| amount
`integer` |

Order amount before applying any discount.

| +| discount_amount
`integer` |

Sum of all order-level discounts applied to the order.

| +| items_discount_amount
`integer` |

Sum of all product-specific discounts applied to the order.
sum(items, i => i.discount_amount)

| +| total_discount_amount
`integer` |

Sum of all order-level AND all product-specific discounts applied to the order.
total_discount_amount = discount_amount + items_discount_amount

| +| total_amount
`integer` |

Order amount after applying all the discounts.
total_amount = amount - total_discount_amount

| +| items
`array` |

Array of order items that have been applied to the order. Each order item can show the effects of particular discounts on the item-level.

Array of:
AttributesDescription
object
string

The type of object represented by JSON. This object stores information about the order_item.

product_id
string

A unique identifier that represents the product and is assigned by Voucherify.

Example:

prod_5h0wc453_1

sku_id
string

A unique identifier that represents the SKU and is assigned by Voucherify.

Example:

sku_prod_5h0wc453_1_1

quantity
integer

Quantity of the item in the cart.

amount
integer

Represents a total pre-discount amount of order item (price * quantity).

discount_amount
integer

The item-level discount applied to the item.

price
integer

Unit price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

subtotal_amount
integer

Final order item amount after the applied item-level discount. If there are no item-level discounts applied, this item is equal to the amount.
subtotal_amount=amount-discount_amount

product
object

This object stores more information about the related product.

AttributesDescription
id
string

A unique identifier that represents the product and is assigned by Voucherify.

Example:

prod_5h0wc453_1

source_id
string

A unique product identifier from your inventory system.

Example:

illy-arabica

name
string

Product name.

Example:

Brewing System

price
integer

Unit price of a product. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

sku
object

This object stores more information about the related SKU.

AttributesDescription
id
string

A unique identifier that represents the SKU and is assigned by Voucherify.

Example:

sku_prod_5h0wc453_1_1

source_id
string

A unique SKU identifier from your inventory system.

Example:

illy-arabica-250g

sku
string

SKU name.

price
integer

Unit price of a SKU. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the order. A set of key/value pairs that are attached to an order object. Stores additional information about the order in a structured format.

| +| customer
`object` |

Object containing information about the customer that is making the purchase.

AttributesDescription
id
string

Unique customer ID of the customer making the purchase.

Example:

cust_7iUa6ICKyU6gH40dBU25kQU1

object
string

Type of object represented by the customer object.

| +| referrer
`object` |

Object containing information about the referrer.

AttributesDescription
id
string

Unique referrer ID, who referred the customer making the purchase.

Example:

cust_7iUa6ICKyU6gH40dBU25kQU1

object
string

Type of object represented by the referrer object.

| +| customer_id
`string` |

Unique customer ID of the customer making the purchase.

**Example:**

cust_7iUa6ICKyU6gH40dBU25kQU1

| +| referrer_id
`string` |

Unique referrer ID.

**Example:**

cust_nM4jqPiaXUvQdVSA6vTRUnix

| +| object
`string` |

The type of object represented by JSON. This object stores information about the order.

| +| redemptions | One of: [Unstacked Redemption](#unstacked-redemption), [Stacked Redemption](#stacked-redemption) | +## Unstacked Redemption +| Attributes | Description | +|:-----|:--------| +| redemption_ID
`object` |

The property name is the unique redemption ID; i.e. r_0ba186c4824e4881e1. This object contains information about the redemption of an incentive.

AttributesDescription
date
string

Timestamp representing the date and time when the redemption was created in ISO 8601 format.

Example:

2022-09-02T17:06:56.649Z

related_object_type
string

The source of the incentive.

Available values: voucher, promotion_tier
related_object_id
string

Unique ID of the related object that defines the incentive.

related_object_parent_id
string

Represent's the campaign ID of the voucher if the redemption was based on a voucher that was part of bulk codes generated within a campaign. In case of a promotion tier, this represents the campaign ID of the promotion tier's parent campaign.

| +## Stacked Redemption +| Attributes | Description | +|:-----|:--------| +| redemption_ID
`object` |

The property name is the unique parent redemption ID; i.e. r_0ba186c4824e4881e1. This object contains information about the redemption of multiple incentives.

AttributesDescription
date
string

Timestamp representing the date and time when the redemption was created in ISO 8601 format.

Example:

2022-09-02T17:06:56.649Z

related_object_type
string

The source of the incentive.

related_object_id
string

Unique ID of the parent redemption.

Example:

r_0ba186c4824e4881e1

stacked
array

Contains a list of unique IDs of child redemptions, which belong to the stacked incentives.

| [block:html] { diff --git a/docs/reference-docs/PRODUCTS-API-Product-Object.md b/docs/reference-docs/PRODUCTS-API-Product-Object.md index b598bb02e..9edd37d11 100644 --- a/docs/reference-docs/PRODUCTS-API-Product-Object.md +++ b/docs/reference-docs/PRODUCTS-API-Product-Object.md @@ -1,6 +1,6 @@ --- title: Product Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: products-api slug: product-object @@ -8,19 +8,42 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique product ID assigned by Voucherify.

|

prod_0b1da8105693710357

| -| source_id |

Unique product source ID from your inventory system.

|

productSourceID16

| -| name |

Unique user-defined product name.

|

T-shirt

| -| price |

Product unit price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| | -| attributes |

A list of product attributes whose values you can customize for given SKUs: ["color","size","ranking"]. Each child SKU can have a unique value for a given attribute.

| | -| metadata |

The metadata object stores all custom attributes assigned to the product. A set of key/value pairs that you can attach to a product object. It can be useful for storing additional information about the product in a structured format.

| | -| image_url |

The HTTPS URL pointing to the .png or .jpg file that will be used to render the product image.

|

https://images.com/original.jpg

| -| created_at |

Timestamp representing the date and time when the product was created in ISO 8601 format.

|

2022-05-23T06:52:55.008Z

| -| updated_at |

Timestamp representing the date and time when the product was updated in ISO 8601 format.

|

2022-05-23T09:24:07.405Z

| -| object |

The type of object represented by JSON. This object stores information about the product.

| | -| skus | | | +## Product Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique product ID assigned by Voucherify.

**Example:**

prod_0b1da8105693710357

| +| source_id
`string` |

Unique product source ID from your inventory system.

**Example:**

productSourceID16

| +| name
`string` |

Unique user-defined product name.

**Example:**

T-shirt

| +| price
`integer` |

Product unit price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| +| attributes
`array` |

A list of product attributes whose values you can customize for given SKUs: ["color","size","ranking"]. Each child SKU can have a unique value for a given attribute.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the product. A set of key/value pairs that you can attach to a product object. It can be useful for storing additional information about the product in a structured format.

| +| image_url
`string` |

The HTTPS URL pointing to the .png or .jpg file that will be used to render the product image.

**Example:**

https://images.com/original.jpg

| +| created_at
`string` |

Timestamp representing the date and time when the product was created in ISO 8601 format.

**Example:**

2022-05-23T06:52:55.008Z

| +| updated_at
`string` |

Timestamp representing the date and time when the product was updated in ISO 8601 format.

**Example:**

2022-05-23T09:24:07.405Z

| +| object
`string` |

The type of object represented by JSON. This object stores information about the product.

| +| skus | See: [SKUs object](#skus-object) | +## SKUs object +| Attributes | Description | +|:-----|:--------| +| object
`string` |

The type of object represented by JSON. This object stores information about SKUs.

| +| data_ref
`string` |

Identifies the name of the JSON property that contains the array of SKUs.

| +| data
`array` |

A dictionary that contains an array of SKUs.

Array of [SKU Object](#sku-object) | +| total
`integer` |

Total number of SKUs in the product.

| +## SKU Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

A unique identifier that represents the SKU and is assigned by Voucherify.

**Example:**

sku_0b1621b319d248b79f

| +| source_id
`string` |

A unique SKU identifier from your inventory system.

**Example:**

sku_source_id_4

| +| product_id
`string` |

The parent product's unique ID.

**Example:**

prod_0b15f6b9f650c16990

| +| sku
`string` |

Unique user-defined SKU name.

**Example:**

Large Pink Shirt

| +| price
`integer` |

SKU unit price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| +| currency
`string` |

SKU price currency.

**Example:**

USD

| +| attributes
`object` |

The attributes object stores values for all custom attributes inherited by the SKU from the parent product. A set of key/value pairs that are attached to a SKU object and are unique to each SKU within a product family.

| +| image_url
`string` |

The HTTPS URL pointing to the .png or .jpg file that will be used to render the SKU image.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the SKU. A set of key/value pairs that you can attach to a SKU object. It can be useful for storing additional information about the SKU in a structured format.

| +| created_at
`string` |

Timestamp representing the date and time when the SKU was created in ISO 8601 format.

**Example:**

2022-05-17T10:36:30.187Z

| +| updated_at
`string` |

Timestamp representing the date and time when the SKU was updated in ISO 8601 format.

**Example:**

2022-05-17T10:55:09.137Z

| +| object
`string` |

The type of object represented by JSON. This object stores information about the SKU.

| [block:html] { diff --git a/docs/reference-docs/PRODUCTS-API-SKU-Object.md b/docs/reference-docs/PRODUCTS-API-SKU-Object.md index f809759be..b01f02a47 100644 --- a/docs/reference-docs/PRODUCTS-API-SKU-Object.md +++ b/docs/reference-docs/PRODUCTS-API-SKU-Object.md @@ -1,6 +1,6 @@ --- title: SKU Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: products-api slug: sku-object @@ -8,20 +8,21 @@ hidden: false order: 2 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

A unique identifier that represents the SKU and is assigned by Voucherify.

|

sku_0b1621b319d248b79f

| -| source_id |

A unique SKU identifier from your inventory system.

|

sku_source_id_4

| -| product_id |

The parent product's unique ID.

|

prod_0b15f6b9f650c16990

| -| sku |

Unique user-defined SKU name.

|

Large Pink Shirt

| -| price |

SKU unit price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| | -| currency |

SKU price currency.

|

USD

| -| attributes |

The attributes object stores values for all custom attributes inherited by the SKU from the parent product. A set of key/value pairs that are attached to a SKU object and are unique to each SKU within a product family.

| | -| image_url |

The HTTPS URL pointing to the .png or .jpg file that will be used to render the SKU image.

| | -| metadata |

The metadata object stores all custom attributes assigned to the SKU. A set of key/value pairs that you can attach to a SKU object. It can be useful for storing additional information about the SKU in a structured format.

| | -| created_at |

Timestamp representing the date and time when the SKU was created in ISO 8601 format.

|

2022-05-17T10:36:30.187Z

| -| updated_at |

Timestamp representing the date and time when the SKU was updated in ISO 8601 format.

|

2022-05-17T10:55:09.137Z

| -| object |

The type of object represented by JSON. This object stores information about the SKU.

| | +## SKU Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

A unique identifier that represents the SKU and is assigned by Voucherify.

**Example:**

sku_0b1621b319d248b79f

| +| source_id
`string` |

A unique SKU identifier from your inventory system.

**Example:**

sku_source_id_4

| +| product_id
`string` |

The parent product's unique ID.

**Example:**

prod_0b15f6b9f650c16990

| +| sku
`string` |

Unique user-defined SKU name.

**Example:**

Large Pink Shirt

| +| price
`integer` |

SKU unit price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| +| currency
`string` |

SKU price currency.

**Example:**

USD

| +| attributes
`object` |

The attributes object stores values for all custom attributes inherited by the SKU from the parent product. A set of key/value pairs that are attached to a SKU object and are unique to each SKU within a product family.

| +| image_url
`string` |

The HTTPS URL pointing to the .png or .jpg file that will be used to render the SKU image.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the SKU. A set of key/value pairs that you can attach to a SKU object. It can be useful for storing additional information about the SKU in a structured format.

| +| created_at
`string` |

Timestamp representing the date and time when the SKU was created in ISO 8601 format.

**Example:**

2022-05-17T10:36:30.187Z

| +| updated_at
`string` |

Timestamp representing the date and time when the SKU was updated in ISO 8601 format.

**Example:**

2022-05-17T10:55:09.137Z

| +| object
`string` |

The type of object represented by JSON. This object stores information about the SKU.

| [block:html] { diff --git a/docs/reference-docs/PROMOTIONS-API-Promotion-Tier-Object.md b/docs/reference-docs/PROMOTIONS-API-Promotion-Tier-Object.md index 55bfb7641..9add6c0ad 100644 --- a/docs/reference-docs/PROMOTIONS-API-Promotion-Tier-Object.md +++ b/docs/reference-docs/PROMOTIONS-API-Promotion-Tier-Object.md @@ -1,6 +1,6 @@ --- title: Promotion Tier Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: promotions-api slug: promotion-tier-object @@ -8,28 +8,99 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique promotion tier ID.

|

promo_63fYCt81Aw0h7lzyRkrGZh9p

| -| created_at |

Timestamp representing the date and time when the promotion tier was created in ISO 8601 format.

|

2021-12-15T11:34:01.333Z

| -| updated_at |

Timestamp representing the date and time when the promotion tier was updated in ISO 8601 format.

|

2022-02-09T09:20:05.603Z

| -| name |

Name of the promotion tier.

| | -| banner |

Text to be displayed to your customers on your website.

| | -| action |

Contains details about the discount applied by the promotion tier.

AttributesDescriptionExample
discount

The type of discount that will be applied to a customer's order.

Any of:

Amount

AttributesDescriptionExample
type

Applies an amount discount.

amount_off

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

100

amount_off_formula

Formula used to calculate the discount.

effect

Defines how the discount is applied to the customer's order

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS, APPLY_TO_ITEMS_PROPORTIONALLY, APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY, APPLY_TO_ITEMS_BY_QUANTITY

Percentage

AttributesDescriptionExample
type

Applies a percentage discount.

amount_limit

Upper limit allowed to be applied as a discount. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

percent_off

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

percent_off_formula

Formula used to calculate the discount.

effect

Defines how the discount is applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS

Fixed

AttributesDescriptionExample
type

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

fixed_amount

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

1000

fixed_amount_formula

Formula used to calculate the discounted price of an item or a new order total.

effect
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS

Unit, single item

AttributesDescriptionExample
type

Applies a full value discount to item(s).

unit_off

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

1

unit_off_formula

Formula used to calculate the number of units.

unit_type

The product deemed as free, chosen from the product inventory (e.g. time, items).

prod_f1r5Tpr0DuC7

effect

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS

Unit, multiple items

AttributesDescriptionExample
type

Applies a full value discount to item(s).

effect

Defines the effect for adding multiple item types.

units

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescriptionExample
unit_off

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

1

unit_off_formula

Formula used to calculate the number of units.

unit_type

The product deemed as free, chosen from the product inventory (e.g. time, items).

prod_f1r5Tpr0DuC7

effect

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS

Shipping

AttributesDescriptionExample
type

Applies a full value discount to item(s).

unit_off

Subtracts 1 shipping item from the subtotal.

unit_type

The shipping product deemed as free.

effect

Defines how the unit is added to the customer's order.

| | -| metadata |

The metadata object stores all custom attributes assigned to the promotion tier. A set of key/value pairs that you can attach to a promotion tier object. It can be useful for storing additional information about the promotion tier in a structured format.

| | -| hierarchy |

The promotions hierarchy defines the order in which the discounts from different tiers will be applied to a customer's order. If a customer qualifies for discounts from more than one tier, discounts will be applied in the order defined in the hierarchy.

| | -| campaign |

Contains details about promotion tier's parent campaign.

AttributesDescriptionExample
id

Unique campaign ID.

start_date

Activation timestamp defines when the campaign starts to be active in ISO 8601 format. Campaign is inactive before this date.

2022-09-22T00:00:00.000Z

expiration_date

Expiration timestamp defines when the campaign expires in ISO 8601 format. Campaign is inactive after this date.

2022-09-30T00:00:00.000Z

validity_timeframe

Recurrent time periods when the campaign is valid. For example, valid for 1 hour every other day.

AttributesDescriptionExample
interval

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a campaign with an interval of P2D will be active every other day.

duration

Defines the amount of time the campaign will be active in ISO 8601 format. For example, a campaign with a duration of P1D will be valid for a duration of one day.

validity_day_of_week

Integer array corresponding to the particular days of the week in which the campaign is valid.

  • 0 Sunday
  • 1 Monday
  • 2 Tuesday
  • 3 Wednesday
  • 4 Thursday
  • 5 Friday
  • 6 Saturday
active

A flag indicating whether the campaign is active or not active. A campaign can be disabled even though it's within the active period defined by the start_date and expiration_date using the Disable Campaign endpoint.

  • true indicates an active campaign
  • false indicates an inactive campaign
category_id

Unique category ID that this campaign belongs to.

cat_0b688929a2476386a6

object

The type of object represented by the campaign object. This object stores information about the campaign.

| | -| campaign_id |

Promotion tier's parent campaign's unique ID.

| | -| active |

A flag to toggle the promotion tier on or off. You can disable a promotion tier even though it's within the active period defined by the start_date and expiration_date.

| | -| start_date |

Activation timestamp defines when the promotion tier starts to be active in ISO 8601 format. Promotion tier is inactive before this date.

|

2022-09-23T00:00:00.000Z

| -| expiration_date |

Activation timestamp defines when the promotion tier expires in ISO 8601 format. Promotion tier is inactive after this date.

|

2022-09-26T00:00:00.000Z

| -| validity_timeframe |

Set recurrent time periods when the promotion tier is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescriptionExample
interval

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a promotion tier with an interval of P2D will be active every other day.

duration

Defines the amount of time the promotion tier will be active in ISO 8601 format. For example, a promotion tier with a duration of P1D will be valid for a duration of one day.

| | -| validity_day_of_week |

Integer array corresponding to the particular days of the week in which the promotion tier is valid.

| | -| summary |

Contains statistics about promotion tier redemptions and orders.

AttributesDescriptionExample
redemptions

Contains statistics about promotion tier redemptions.

AttributesDescriptionExample
total_redeemed

Number of times the promotion tier was redeemed.

orders

Contains statistics about orders related to the promotion tier.

AttributesDescriptionExample
total_amount

Sum of order totals.

total_discount_amount

Sum of total discount applied using the promotion tier.

| | -| object |

The type of object represented by JSON. This object stores information about the promotion tier.

| | -| validation_rule_assignments | | | -| category_id |

Promotion tier category ID.

|

cat_0c9da30e7116ba6bba

| -| categories |

Details about the category assigned to the promotion tier.

| | +## Promotion Tier Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique promotion tier ID.

**Example:**

promo_63fYCt81Aw0h7lzyRkrGZh9p

| +| created_at
`string` |

Timestamp representing the date and time when the promotion tier was created in ISO 8601 format.

**Example:**

2021-12-15T11:34:01.333Z

| +| updated_at
`string` |

Timestamp representing the date and time when the promotion tier was updated in ISO 8601 format.

**Example:**

2022-02-09T09:20:05.603Z

| +| name
`string` |

Name of the promotion tier.

| +| banner
`string` |

Text to be displayed to your customers on your website.

| +| action
`object` |

Contains details about the discount applied by the promotion tier.

AttributesDescription
discount

The type of discount that will be applied to a customer's order.

Any of: Amount, Percentage, Fixed, Unit, single item, Unit, multiple items, Shipping
| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the promotion tier. A set of key/value pairs that you can attach to a promotion tier object. It can be useful for storing additional information about the promotion tier in a structured format.

| +| hierarchy
`integer` |

The promotions hierarchy defines the order in which the discounts from different tiers will be applied to a customer's order. If a customer qualifies for discounts from more than one tier, discounts will be applied in the order defined in the hierarchy.

| +| campaign
`object` |

Contains details about promotion tier's parent campaign.

AttributesDescription
id
string

Unique campaign ID.

start_date
string

Activation timestamp defines when the campaign starts to be active in ISO 8601 format. Campaign is inactive before this date.

Example:

2022-09-22T00:00:00.000Z

expiration_date
string

Expiration timestamp defines when the campaign expires in ISO 8601 format. Campaign is inactive after this date.

Example:

2022-09-30T00:00:00.000Z

validity_timeframe
object

Recurrent time periods when the campaign is valid. For example, valid for 1 hour every other day.

AttributesDescription
interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a campaign with an interval of P2D will be active every other day.

duration
string

Defines the amount of time the campaign will be active in ISO 8601 format. For example, a campaign with a duration of P1D will be valid for a duration of one day.

validity_day_of_week
array

Integer array corresponding to the particular days of the week in which the campaign is valid.

  • 0 Sunday
  • 1 Monday
  • 2 Tuesday
  • 3 Wednesday
  • 4 Thursday
  • 5 Friday
  • 6 Saturday
active
boolean

A flag indicating whether the campaign is active or not active. A campaign can be disabled even though it's within the active period defined by the start_date and expiration_date using the Disable Campaign endpoint.

  • true indicates an active campaign
  • false indicates an inactive campaign
category_id
string

Unique category ID that this campaign belongs to.

Example:

cat_0b688929a2476386a6

object
string

The type of object represented by the campaign object. This object stores information about the campaign.

| +| campaign_id
`string` |

Promotion tier's parent campaign's unique ID.

| +| active
`boolean` |

A flag to toggle the promotion tier on or off. You can disable a promotion tier even though it's within the active period defined by the start_date and expiration_date.

| +| start_date
`string` |

Activation timestamp defines when the promotion tier starts to be active in ISO 8601 format. Promotion tier is inactive before this date.

**Example:**

2022-09-23T00:00:00.000Z

| +| expiration_date
`string` |

Activation timestamp defines when the promotion tier expires in ISO 8601 format. Promotion tier is inactive after this date.

**Example:**

2022-09-26T00:00:00.000Z

| +| validity_timeframe
`object` |

Set recurrent time periods when the promotion tier is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescription
interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a promotion tier with an interval of P2D will be active every other day.

duration
string

Defines the amount of time the promotion tier will be active in ISO 8601 format. For example, a promotion tier with a duration of P1D will be valid for a duration of one day.

| +| validity_day_of_week
`array` |

Integer array corresponding to the particular days of the week in which the promotion tier is valid.

| +| summary
`object` |

Contains statistics about promotion tier redemptions and orders.

AttributesDescription
redemptions
object

Contains statistics about promotion tier redemptions.

AttributesDescription
total_redeemed
integer

Number of times the promotion tier was redeemed.

orders
object

Contains statistics about orders related to the promotion tier.

AttributesDescription
total_amount
integer

Sum of order totals.

total_discount_amount
integer

Sum of total discount applied using the promotion tier.

| +| object
`string` |

The type of object represented by JSON. This object stores information about the promotion tier.

| +| validation_rule_assignments | See: [Validation Rule Assignments](#validation-rule-assignments) | +| category_id
`string` |

Promotion tier category ID.

**Example:**

cat_0c9da30e7116ba6bba

| +| categories |

Details about the category assigned to the promotion tier.

See: [Category Object](#category-object) | +## Amount +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies an amount discount.

| +| amount_off
`integer` |

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

**Example:**

100

| +| amount_off_formula
`string` |

Formula used to calculate the discount.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600. This value is definable for the following discount effects:

| +| effect
`string` |

Defines how the discount is applied to the customer's order. The discount effects are defined as follows:

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS`, `APPLY_TO_ITEMS_PROPORTIONALLY`, `APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY`, `APPLY_TO_ITEMS_BY_QUANTITY` | +## Percentage +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a percentage discount.

| +| amount_limit
`string` |

Upper limit allowed to be applied as a discount per order line item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. This value is definable for the APPLY_TO_ITEMS discount effect. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600.

| +| percent_off
`integer` |

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

| +| percent_off_formula
`string` |

Formula used to calculate the discount.

| +| effect
`string` |

Defines how the discount is applied to the customer's order.

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Fixed +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

| +| fixed_amount
`integer` |

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

**Example:**

1000

| +| fixed_amount_formula
`string` |

Formula used to calculate the discounted price of an item or a new order total.

| +| effect
`string` |
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Unit, single item +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

**Example:**

1

| +| unit_off_formula
`string` |

Formula used to calculate the number of units.

| +| unit_type
`string` |

The product deemed as free, chosen from the product inventory (e.g. time, items).

**Example:**

prod_f1r5Tpr0DuC7

| +| effect
`string` |

Defines how the unit is added to the customer's order.

Available values: `ADD_NEW_ITEMS`, `ADD_MISSING_ITEMS` | +## Unit, multiple items +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| effect
`string` |

Defines the effect for adding multiple item types.

| +| units
`array` |

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescription
unit_off
integer

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

Example:

1

unit_off_formula
string

Formula used to calculate the number of units.

unit_type
string

The product deemed as free, chosen from the product inventory (e.g. time, items).

Example:

prod_f1r5Tpr0DuC7

effect
string

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS
| +## Shipping +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Subtracts 1 shipping item from the subtotal.

| +| unit_type
`string` |

The shipping product deemed as free.

| +| effect
`string` |

Defines how the unit is added to the customer's order.

| +## Validation Rule Assignments +| Attributes | Description | +|:-----|:--------| +| object
`string` |

The type of object represented by JSON. This object stores information about validation rule assignments.

| +| data_ref
`string` |

Identifies the name of the JSON property that contains the array of validation rule assignments.

| +| data
`array` |

A dictionary that contains an array of validation rule assignments.

Array of [Validation Rule Assignment Object](#validation-rule-assignment-object) | +| total
`integer` |

Total number of validation rule assignments.

| +## Category Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique category ID assigned by Voucherify.

| +| name
`string` |

Category name.

| +| hierarchy
`integer` |

Category hierarchy.

| +| created_at
`string` |

Timestamp representing the date and time when the category was created in ISO 8601 format.

**Example:**

2022-07-14T10:45:13.156Z

| +| updated_at
`string` |

Timestamp representing the date and time when the category was updated in ISO 8601 format.

**Example:**

2022-08-16T10:52:08.094Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the category.

| +## Validation Rule Assignment Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Validation rule assignment ID.

**Example:**

asgm_74F7QZoYbUoljwQO

| +| rule_id
`string` |

Validation rule ID.

**Example:**

val_4j7DCRm2IS59

| +| related_object_id
`string` |

The resource ID to which the validation rule was assigned.

**Example:**

v_JtWunK6jUo7X2qOFj0SyRHq4p9tgENlT

| +| related_object_type
`string` |

The type of resource to which the validation rule was assigned.

Available values: `voucher`, `campaign`, `earning_rule`, `reward_assignment`, `promotion_tier`, `distribution` | +| created_at
`string` |

Timestamp representing the date and time when the validation rule assignment was created in ISO 8601 format.

**Example:**

2022-02-17T08:18:15.085Z

| +| object
`string` |

The type of object represented by the ID.

| [block:html] { diff --git a/docs/reference-docs/PUBLICATIONS-API-Publication-Object.md b/docs/reference-docs/PUBLICATIONS-API-Publication-Object.md index 95a3872c8..61326f329 100644 --- a/docs/reference-docs/PUBLICATIONS-API-Publication-Object.md +++ b/docs/reference-docs/PUBLICATIONS-API-Publication-Object.md @@ -1,6 +1,6 @@ --- title: Publication Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: publications-api slug: publication-object @@ -8,20 +8,90 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique publication ID, assigned by Voucherify.

|

pub_BbjAXnmm8e0SIm3zG8qvvFCP0KuLywtp

| -| object |

The type of object represented by the JSON. This object stores information about the publication.

| | -| created_at |

Timestamp representing the date and time when the publication was created in ISO 8601 format.

|

2022-09-23T09:57:00.434Z

| -| customer_id |

Unique customer ID of the customer receiving the publication.

|

cust_eWgXlBBiY6THFRJwX45Iakv4

| -| tracking_id |

Customer's source_id.

| | -| metadata |

The metadata object stores all custom attributes assigned to the publication. A set of key/value pairs that you can attach to a publication object. It can be useful for storing additional information about the publication in a structured format.

| | -| channel |

How the publication was originated. It can be your own custom channel or an example value provided here.

Available values: `voucherify-website`, `Dashboard`, `Automation`, `API`, `Braze`, `Reward`, `SMS`, `Email`, `Activecampaign`, `Webhook`, `Intercom`, `Mailchimp`, `Shopify` | | -| source_id |

The merchant’s publication ID if it is different from the Voucherify publication ID. It's an optional tracking identifier of a publication. It is really useful in case of an integration between multiple systems. It can be a publication ID from a CRM system, database or 3rd-party service.

| | -| result |

Status of the publication attempt.

Available values: `SUCCESS`, `FAILURE` | | -| customer |

Contains information about the customer to whom the publication was directed.

AttributesDescriptionExample
id

Unique customer ID, assigned by Voucherify.

cust_eWgXlBBiY6THFRJwX45Iakv4

name

Customer's name.

email

Customer's email.

source_id

The merchant’s customer ID if it is different from the Voucherify customer ID. It is really useful in case of an integration between multiple systems. It can be a customer ID from a CRM system, database or 3rd-party service.

metadata

A set of custom key/value pairs attached to a customer. The metadata object stores all custom attributes assigned to the customer. It can be useful for storing additional information about the customer in a structured format. This metadata can be used for validating whether the customer qualifies for a discount or it can be used in building customer segments.

object

The type of object represented by the JSON. This object stores information about the customer.

| | -| voucher |

Contains information about the voucher being published.

Any of:

Discount Voucher

AttributesDescriptionExample
code

Voucher code.

object

The type of object represented by the JSON. This object stores information about the voucher.

campaign

Name of voucher's parent campaign.

discountAny of:

Amount

AttributesDescriptionExample
type

Applies an amount discount.

amount_off

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

100

amount_off_formula

Formula used to calculate the discount.

effect

Defines how the discount is applied to the customer's order

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS, APPLY_TO_ITEMS_PROPORTIONALLY, APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY, APPLY_TO_ITEMS_BY_QUANTITY

Percentage

AttributesDescriptionExample
type

Applies a percentage discount.

amount_limit

Upper limit allowed to be applied as a discount. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

percent_off

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

percent_off_formula

Formula used to calculate the discount.

effect

Defines how the discount is applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS

Fixed

AttributesDescriptionExample
type

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

fixed_amount

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

1000

fixed_amount_formula

Formula used to calculate the discounted price of an item or a new order total.

effect
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS

Unit, single item

AttributesDescriptionExample
type

Applies a full value discount to item(s).

unit_off

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

1

unit_off_formula

Formula used to calculate the number of units.

unit_type

The product deemed as free, chosen from the product inventory (e.g. time, items).

prod_f1r5Tpr0DuC7

effect

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS

Unit, multiple items

AttributesDescriptionExample
type

Applies a full value discount to item(s).

effect

Defines the effect for adding multiple item types.

units

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescriptionExample
unit_off

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

1

unit_off_formula

Formula used to calculate the number of units.

unit_type

The product deemed as free, chosen from the product inventory (e.g. time, items).

prod_f1r5Tpr0DuC7

effect

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS

Shipping

AttributesDescriptionExample
type

Applies a full value discount to item(s).

unit_off

Subtracts 1 shipping item from the subtotal.

unit_type

The shipping product deemed as free.

effect

Defines how the unit is added to the customer's order.

is_referral_code

Whether this voucher is a referral code.

Loyalty Card

AttributesDescriptionExample
code

Voucher code.

object

The type of object represented by the JSON. This object stores information about the voucher.

campaign

Name of voucher's parent campaign.

loyalty_card

Contains information about the loyalty card being published.

AttributesDescriptionExample
points

The incremental points to be added to the loyalty card as the initial balance on the card.

balance

The points balance after the incremental points are added to the loyalty card.

is_referral_code

Whether this voucher is a referral code.

Gift Card

AttributesDescriptionExample
code

Voucher code.

object

The type of object represented by the JSON. This object stores information about the voucher.

campaign

Name of voucher's parent campaign.

gift

Contains information about the gift card being published.

AttributesDescriptionExample
amount

The incremental amount to be added as the initial balance on the gift card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

balance

The credit balance on the gift card after the initial incremental amount is added to the gift card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

effect

How the credits are applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS
is_referral_code

Whether this voucher is a referral code.

| | -| vouchers_id |

Contains the unique internal voucher ID that was assigned by Voucherify.

| | +## Publication Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique publication ID, assigned by Voucherify.

**Example:**

pub_BbjAXnmm8e0SIm3zG8qvvFCP0KuLywtp

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the publication.

| +| created_at
`string` |

Timestamp representing the date and time when the publication was created in ISO 8601 format.

**Example:**

2022-09-23T09:57:00.434Z

| +| customer_id
`string` |

Unique customer ID of the customer receiving the publication.

**Example:**

cust_eWgXlBBiY6THFRJwX45Iakv4

| +| tracking_id
`string` |

Customer's source_id.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the publication. A set of key/value pairs that you can attach to a publication object. It can be useful for storing additional information about the publication in a structured format.

| +| channel
`string` |

How the publication was originated. It can be your own custom channel or an example value provided here.

Available values: `voucherify-website`, `Dashboard`, `Automation`, `API`, `Braze`, `Reward`, `SMS`, `Email`, `Activecampaign`, `Webhook`, `Intercom`, `Mailchimp`, `Shopify` | +| source_id
`string` |

The merchant’s publication ID if it is different from the Voucherify publication ID. It's an optional tracking identifier of a publication. It is really useful in case of an integration between multiple systems. It can be a publication ID from a CRM system, database or 3rd-party service.

| +| result
`string` |

Status of the publication attempt.

Available values: `SUCCESS`, `FAILURE` | +| customer
`object` |

Contains information about the customer to whom the publication was directed.

AttributesDescription
id
string

Unique customer ID, assigned by Voucherify.

Example:

cust_eWgXlBBiY6THFRJwX45Iakv4

name
string

Customer's name.

email
string

Customer's email.

source_id
string

The merchant’s customer ID if it is different from the Voucherify customer ID. It is really useful in case of an integration between multiple systems. It can be a customer ID from a CRM system, database or 3rd-party service.

metadata
object

A set of custom key/value pairs attached to a customer. The metadata object stores all custom attributes assigned to the customer. It can be useful for storing additional information about the customer in a structured format. This metadata can be used for validating whether the customer qualifies for a discount or it can be used in building customer segments.

object
string

The type of object represented by the JSON. This object stores information about the customer.

| +| voucher |

Contains information about the voucher being published.

Any of: [Discount Voucher](#discount-voucher), [Loyalty Card](#loyalty-card), [Gift Card](#gift-card) | +| vouchers_id
`array` |

Contains the unique internal voucher ID that was assigned by Voucherify.

| +## Discount Voucher +| Attributes | Description | +|:-----|:--------| +| code
`string` |

Voucher code.

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the voucher.

| +| campaign
`string` |

Name of voucher's parent campaign.

| +| discount | Any of: [Amount](#amount), [Percentage](#percentage), [Fixed](#fixed), [Unit, single item](#unit-single-item), [Unit, multiple items](#unit-multiple-items), [Shipping](#shipping) | +| is_referral_code
`boolean` |

Whether this voucher is a referral code.

| +## Loyalty Card +| Attributes | Description | +|:-----|:--------| +| code
`string` |

Voucher code.

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the voucher.

| +| campaign
`string` |

Name of voucher's parent campaign.

| +| loyalty_card
`object` |

Contains information about the loyalty card being published.

AttributesDescription
points
integer

The incremental points to be added to the loyalty card as the initial balance on the card.

balance
integer

The points balance after the incremental points are added to the loyalty card.

| +| is_referral_code
`boolean` |

Whether this voucher is a referral code.

| +## Gift Card +| Attributes | Description | +|:-----|:--------| +| code
`string` |

Voucher code.

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the voucher.

| +| campaign
`string` |

Name of voucher's parent campaign.

| +| gift
`object` |

Contains information about the gift card being published.

AttributesDescription
amount
integer

The incremental amount to be added as the initial balance on the gift card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

balance
integer

The credit balance on the gift card after the initial incremental amount is added to the gift card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

effect
string

How the credits are applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS
| +| is_referral_code
`boolean` |

Whether this voucher is a referral code.

| +## Amount +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies an amount discount.

| +| amount_off
`integer` |

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

**Example:**

100

| +| amount_off_formula
`string` |

Formula used to calculate the discount.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600. This value is definable for the following discount effects:

| +| effect
`string` |

Defines how the discount is applied to the customer's order. The discount effects are defined as follows:

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS`, `APPLY_TO_ITEMS_PROPORTIONALLY`, `APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY`, `APPLY_TO_ITEMS_BY_QUANTITY` | +## Percentage +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a percentage discount.

| +| amount_limit
`string` |

Upper limit allowed to be applied as a discount per order line item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. This value is definable for the APPLY_TO_ITEMS discount effect. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600.

| +| percent_off
`integer` |

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

| +| percent_off_formula
`string` |

Formula used to calculate the discount.

| +| effect
`string` |

Defines how the discount is applied to the customer's order.

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Fixed +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

| +| fixed_amount
`integer` |

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

**Example:**

1000

| +| fixed_amount_formula
`string` |

Formula used to calculate the discounted price of an item or a new order total.

| +| effect
`string` |
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Unit, single item +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

**Example:**

1

| +| unit_off_formula
`string` |

Formula used to calculate the number of units.

| +| unit_type
`string` |

The product deemed as free, chosen from the product inventory (e.g. time, items).

**Example:**

prod_f1r5Tpr0DuC7

| +| effect
`string` |

Defines how the unit is added to the customer's order.

Available values: `ADD_NEW_ITEMS`, `ADD_MISSING_ITEMS` | +## Unit, multiple items +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| effect
`string` |

Defines the effect for adding multiple item types.

| +| units
`array` |

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescription
unit_off
integer

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

Example:

1

unit_off_formula
string

Formula used to calculate the number of units.

unit_type
string

The product deemed as free, chosen from the product inventory (e.g. time, items).

Example:

prod_f1r5Tpr0DuC7

effect
string

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS
| +## Shipping +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Subtracts 1 shipping item from the subtotal.

| +| unit_type
`string` |

The shipping product deemed as free.

| +| effect
`string` |

Defines how the unit is added to the customer's order.

| [block:html] { diff --git a/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility-Client-Side.md b/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility-Client-Side.md index 97eac4b21..8e25b6d3c 100644 --- a/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility-Client-Side.md +++ b/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility-Client-Side.md @@ -1,5 +1,5 @@ --- -title: Check Eligibility (client-side) [Beta] +title: Check Eligibility (client-side) type: endpoint categorySlug: voucherify-api parentDocSlug: qualifications-api @@ -10,6 +10,6 @@ order: 3 [block:html] { - "html": "" + "html": "" } [/block] diff --git a/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility.md b/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility.md index 28b8fbb94..5d37bca38 100644 --- a/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility.md +++ b/docs/reference-docs/QUALIFICATIONS-API-Check-Eligibility.md @@ -1,5 +1,5 @@ --- -title: Check Eligibility [Beta] +title: Check Eligibility type: endpoint categorySlug: voucherify-api parentDocSlug: qualifications-api @@ -10,6 +10,6 @@ order: 2 [block:html] { - "html": "" + "html": "" } [/block] diff --git a/docs/reference-docs/QUALIFICATIONS-API-Qualification-Object.md b/docs/reference-docs/QUALIFICATIONS-API-Qualification-Object.md index 1e40adadb..429a710a0 100644 --- a/docs/reference-docs/QUALIFICATIONS-API-Qualification-Object.md +++ b/docs/reference-docs/QUALIFICATIONS-API-Qualification-Object.md @@ -1,6 +1,6 @@ --- -title: Qualification Object [Beta] -type: endpoint +title: Qualification Object +type: basic categorySlug: voucherify-api parentDocSlug: qualifications-api slug: qualification-object @@ -8,8 +8,49 @@ hidden: false order: 1 --- +## Qualification object +| Attributes | Description | +|:-----|:--------| +| redeemables | See: [Redeemables](#redeemables) | +| tracking_id
`string` |

This identifier is generated during voucher qualification based on your internal id (e.g., email, database ID). This is a hashed customer source ID.

| +| order
`object` |

The order object sent in the request.

See: [Order object](#order-object) | +| stacking_rules | See: [Examine Qualification Stacking Rules](#examine-qualification-stacking-rules) | +## Redeemables +| Attributes | Description | +|:-----|:--------| +| object
`string` |

The type of object represented by JSON. Default is list.

| +| data_ref
`string` |

Identifies the name of the attribute that contains the array of qualified redeemables.

| +| data
`array` |

Array of qualified redeemables.

| +| total
`integer` |

The number of redeemables returned in the API request.

**Example:**

5

| +| has_more
`boolean` |

As results are always limited, the has_more flag indicates whether there are more records for given parameters. This let's you know if you are able to run another request (with different options) to get more records returned in the results.

| +## Order object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique order ID, assigned by Voucherify.

**Example:**

ord_GFDbbv2I0wnO0sFUBOOOXPj2

| +| source_id
`string` |

The merchant’s order ID if it is different from the Voucherify order ID. It is really useful in case of integration between multiple systems. It can be an order ID from CRM, database or 3rd party service.

| +| created_at
`string` |

Timestamp representing the date and time when the order was created in ISO 8601 format.

**Example:**

2022-03-09T11:19:04.819Z

| +| updated_at
`string` |

Timestamp representing the date and time when the order was updated in ISO 8601 format.

**Example:**

2022-08-12T13:34:10.681Z

| +| status
`string` |

Order status.

Available values: `CREATED`, `PAID`, `CANCELED`, `FULFILLED` | +| amount
`integer` |

Order amount before applying any discount.

| +| discount_amount
`integer` |

Sum of all order-level discounts applied to the order.

| +| items_discount_amount
`integer` |

Sum of all product-specific discounts applied to the order.
sum(items, i => i.discount_amount)

| +| total_discount_amount
`integer` |

Sum of all order-level AND all product-specific discounts applied to the order.
total_discount_amount = discount_amount + items_discount_amount

| +| total_amount
`integer` |

Order amount after applying all the discounts.
total_amount = amount - total_discount_amount

| +| items
`array` |

Array of order items that have been applied to the order. Each order item can show the effects of particular discounts on the item-level.

Array of:
AttributesDescription
object
string

The type of object represented by JSON. This object stores information about the order_item.

product_id
string

A unique identifier that represents the product and is assigned by Voucherify.

Example:

prod_5h0wc453_1

sku_id
string

A unique identifier that represents the SKU and is assigned by Voucherify.

Example:

sku_prod_5h0wc453_1_1

quantity
integer

Quantity of the item in the cart.

amount
integer

Represents a total pre-discount amount of order item (price * quantity).

discount_amount
integer

The item-level discount applied to the item.

price
integer

Unit price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

subtotal_amount
integer

Final order item amount after the applied item-level discount. If there are no item-level discounts applied, this item is equal to the amount.
subtotal_amount=amount-discount_amount

product
object

This object stores more information about the related product.

AttributesDescription
id
string

A unique identifier that represents the product and is assigned by Voucherify.

Example:

prod_5h0wc453_1

source_id
string

A unique product identifier from your inventory system.

Example:

illy-arabica

name
string

Product name.

Example:

Brewing System

price
integer

Unit price of a product. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

sku
object

This object stores more information about the related SKU.

AttributesDescription
id
string

A unique identifier that represents the SKU and is assigned by Voucherify.

Example:

sku_prod_5h0wc453_1_1

source_id
string

A unique SKU identifier from your inventory system.

Example:

illy-arabica-250g

sku
string

SKU name.

price
integer

Unit price of a SKU. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the order. A set of key/value pairs that are attached to an order object. Stores additional information about the order in a structured format.

| +| customer
`object` |

Object containing information about the customer that is making the purchase.

AttributesDescription
id
string

Unique customer ID of the customer making the purchase.

Example:

cust_7iUa6ICKyU6gH40dBU25kQU1

object
string

Type of object represented by the customer object.

| +| referrer
`object` |

Object containing information about the referrer.

AttributesDescription
id
string

Unique referrer ID, who referred the customer making the purchase.

Example:

cust_7iUa6ICKyU6gH40dBU25kQU1

object
string

Type of object represented by the referrer object.

| +| customer_id
`string` |

Unique customer ID of the customer making the purchase.

**Example:**

cust_7iUa6ICKyU6gH40dBU25kQU1

| +| referrer_id
`string` |

Unique referrer ID.

**Example:**

cust_nM4jqPiaXUvQdVSA6vTRUnix

| +| object
`string` |

The type of object represented by JSON. This object stores information about the order.

| +## Examine Qualification Stacking Rules +| Attributes | Description | +|:-----|:--------| +| redeemables_limit
`integer` |

Defines how many redeemables can be sent with one stacking request. We have extended the maximum value from 5 to 30 (comment: but more redeemables means more processing time!). Default limit is 30.

| +| applicable_redeemables_limit
`integer` |

Defines how many of sent redeemables will be actually applied to the order (e.g. user can select 30 discounts but only 5 will be applied to the order, the remaining will be marked as SKIPPED). Default limit is 5.

| + [block:html] { - "html": "" + "html": "" } [/block] diff --git a/docs/reference-docs/REWARDS-API-Reward-Assignment-Object.md b/docs/reference-docs/REWARDS-API-Reward-Assignment-Object.md index 9cbe82fd0..50df95391 100644 --- a/docs/reference-docs/REWARDS-API-Reward-Assignment-Object.md +++ b/docs/reference-docs/REWARDS-API-Reward-Assignment-Object.md @@ -1,6 +1,6 @@ --- title: Reward Assignment Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: rewards-api slug: reward-assignment-object @@ -8,16 +8,17 @@ hidden: false order: 2 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique reward assignment ID, assigned by Voucherify.

|

rewa_PbIRoMXpwe5QhobW4JKu0VjH

| -| reward_id |

Associated reward ID.

|

rew_C7wS9eHFDN4CIbXI5PpLSkGY

| -| related_object_id |

Related object ID to which the reward was assigned.

|

camp_wciTvaOfYmAa3EmIIW3QpXXZ

| -| related_object_type |

Related object type to which the reward was assigned.

|

campaign

| -| parameters |

Defines the cost of the reward.

AttributesDescriptionExample
loyalty

Defines the equivalent points value of the reward.

AttributesDescriptionExample
points

The number of points required to redeem the reward.

| | -| created_at |

Timestamp representing the date and time when the reward assignment was created in ISO 8601 format.

|

2022-08-11T14:49:22.586Z

| -| updated_at |

Timestamp representing the date and time when the reward assignment was updated in ISO 8601 format.

|

2022-08-11T16:01:34.885Z

| -| object |

The type of object represented by the JSON. This object stores information about the reward assignment.

| | +## Reward Assignment Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique reward assignment ID, assigned by Voucherify.

**Example:**

rewa_PbIRoMXpwe5QhobW4JKu0VjH

| +| reward_id
`string` |

Associated reward ID.

**Example:**

rew_C7wS9eHFDN4CIbXI5PpLSkGY

| +| related_object_id
`string` |

Related object ID to which the reward was assigned.

**Example:**

camp_wciTvaOfYmAa3EmIIW3QpXXZ

| +| related_object_type
`string` |

Related object type to which the reward was assigned.

**Example:**

campaign

| +| parameters
`object` |

Defines the cost of the reward.

AttributesDescription
loyalty
object

Defines the equivalent points value of the reward.

AttributesDescription
points
integer

The number of points required to redeem the reward.

| +| created_at
`string` |

Timestamp representing the date and time when the reward assignment was created in ISO 8601 format.

**Example:**

2022-08-11T14:49:22.586Z

| +| updated_at
`string` |

Timestamp representing the date and time when the reward assignment was updated in ISO 8601 format.

**Example:**

2022-08-11T16:01:34.885Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the reward assignment.

| [block:html] { diff --git a/docs/reference-docs/REWARDS-API-Reward-Object.md b/docs/reference-docs/REWARDS-API-Reward-Object.md index d9adb7b30..6b618a738 100644 --- a/docs/reference-docs/REWARDS-API-Reward-Object.md +++ b/docs/reference-docs/REWARDS-API-Reward-Object.md @@ -1,6 +1,6 @@ --- title: Reward Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: rewards-api slug: reward-object @@ -8,19 +8,49 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique reward ID, assigned by Voucherify.

|

rew_nIy4gHpQHle2c3pNMwuj7G6j

| -| name |

Reward name.

| | -| type |

Reward type.

Available values: `CAMPAIGN`, `COIN`, `MATERIAL` | | -| parameters |

Defines how the reward is generated.

One of:

Digital

AttributesDescriptionExample
campaign

Objects stores information about the campaign related to the reward.

Any of:

Discount Coupons

AttributesDescriptionExample
id

Unique campaign ID, assigned by Voucherify.

camp_13BbZ0kQsNinhqsX3wUts2UP

type

Campaign type.

Gift Vouchers

AttributesDescriptionExample
id

Unique campaign ID, assigned by Voucherify.

camp_13BbZ0kQsNinhqsX3wUts2UP

balance

The incremental amout to be added to the current balance on the gift card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

type

Campaign type.

Points on loyalty card

AttributesDescriptionExample
id

Unique campaign ID, assigned by Voucherify.

camp_13BbZ0kQsNinhqsX3wUts2UP

balance

The incremental points to be added to the current balance on the loyalty card.

type

Campaign type.

Pay with Points

AttributesDescriptionExample
coin

Defines the ratio by mapping the number of loyalty points in points_ratio to a predefined cash amount in exchange_ratio.

AttributesDescriptionExample
exchange_ratio

The cash equivalent of the points defined in the points_ratio property.

points_ratio

The number of loyalty points that will map to the predefined cash amount defined by the exchange_ratio property.

Material

AttributesDescriptionExample
product

Contains information about the product given as a reward.

AttributesDescriptionExample
id

Unique product ID, assigned by Voucherify.

prod_0b7d7dfb05cbe5c616

sku_id

Unique SKU ID, assigned by Voucherify, of the SKU given as a reward.

sku_0b7d7dfb090be5c619

| | -| stock |

Configurable for material rewards. The number of units of the product that you want to share as reward.

| | -| redeemed |

Defines the number of already invoked (successful) reward redemptions.

| | -| attributes |

These properties are configurable for material rewards.

AttributesDescriptionExample
image_url

The HTTPS URL pointing to the .png or .jpg file.

description

An arbitrary string that you can attach to a material reward.

| | -| created_at |

Timestamp representing the date and time when the reward was created in ISO 8601 format.

|

2022-08-11T14:49:22.586Z

| -| updated_at |

Timestamp representing the date and time when the reward was updated in ISO 8601 format.

|

2022-08-11T16:01:34.885Z

| -| metadata |

The metadata object stores all custom attributes assigned to the reward. A set of key/value pairs that you can attach to a reward object. It can be useful for storing additional information about the reward in a structured format.

| | -| object |

The type of object represented by the JSON. This object stores information about the reward.

| | +## Reward Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique reward ID, assigned by Voucherify.

**Example:**

rew_nIy4gHpQHle2c3pNMwuj7G6j

| +| name
`string` |

Reward name.

| +| type
`string` |

Reward type.

Available values: `CAMPAIGN`, `COIN`, `MATERIAL` | +| parameters |

Defines how the reward is generated.

One of: [Digital](#digital), [Pay with Points](#pay-with-points), [Material](#material) | +| stock
`integer` |

Configurable for material rewards. The number of units of the product that you want to share as reward.

| +| redeemed
`integer` |

Defines the number of already invoked (successful) reward redemptions.

| +| attributes
`object` |

These properties are configurable for material rewards.

AttributesDescription
image_url
string

The HTTPS URL pointing to the .png or .jpg file.

description
string

An arbitrary string that you can attach to a material reward.

| +| created_at
`string` |

Timestamp representing the date and time when the reward was created in ISO 8601 format.

**Example:**

2022-08-11T14:49:22.586Z

| +| updated_at
`string,null` |

Timestamp representing the date and time when the reward was updated in ISO 8601 format.

**Example:**

2022-08-11T16:01:34.885Z

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the reward. A set of key/value pairs that you can attach to a reward object. It can be useful for storing additional information about the reward in a structured format.

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the reward.

| +## Digital +| Attributes | Description | +|:-----|:--------| +| campaign |

Objects stores information about the campaign related to the reward.

Any of: [Discount Coupons](#discount-coupons), [Gift Vouchers](#gift-vouchers), [Points on loyalty card](#points-on-loyalty-card) | +## Pay with Points +| Attributes | Description | +|:-----|:--------| +| coin
`object` |

Defines the ratio by mapping the number of loyalty points in points_ratio to a predefined cash amount in exchange_ratio.

AttributesDescription
exchange_ratio
integer

The cash equivalent of the points defined in the points_ratio property.

points_ratio
integer

The number of loyalty points that will map to the predefined cash amount defined by the exchange_ratio property.

| +## Material +| Attributes | Description | +|:-----|:--------| +| product
`object` |

Contains information about the product given as a reward.

AttributesDescription
id
string

Unique product ID, assigned by Voucherify.

Example:

prod_0b7d7dfb05cbe5c616

sku_id
string,null

Unique SKU ID, assigned by Voucherify, of the SKU given as a reward.

Example:

sku_0b7d7dfb090be5c619

| +## Discount Coupons +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique campaign ID, assigned by Voucherify.

**Example:**

camp_13BbZ0kQsNinhqsX3wUts2UP

| +| type
`string` |

Campaign type.

| +## Gift Vouchers +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique campaign ID, assigned by Voucherify.

**Example:**

camp_13BbZ0kQsNinhqsX3wUts2UP

| +| balance
`integer` |

The incremental amout to be added to the current balance on the gift card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

| +| type
`string` |

Campaign type.

| +## Points on loyalty card +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique campaign ID, assigned by Voucherify.

**Example:**

camp_13BbZ0kQsNinhqsX3wUts2UP

| +| balance
`integer` |

The incremental points to be added to the current balance on the loyalty card.

| +| type
`string` |

Campaign type.

| [block:html] { diff --git a/docs/reference-docs/SEGMENTS-API-Customer-Segment-Object.md b/docs/reference-docs/SEGMENTS-API-Customer-Segment-Object.md index b34373045..ff18ee0c0 100644 --- a/docs/reference-docs/SEGMENTS-API-Customer-Segment-Object.md +++ b/docs/reference-docs/SEGMENTS-API-Customer-Segment-Object.md @@ -1,6 +1,6 @@ --- title: Customer Segment Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: segments-api slug: customer-segment-object @@ -8,16 +8,16 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique segment ID.

|

seg_1wc52c5z6r1kQ81brO8j9Hk2

| -| name |

Segment name.

| | -| created_at |

Timestamp representing the date and time when the segment was created in ISO 8601 format.

|

2022-05-12T13:01:56.896Z

| -| type |

Describes whether the segment is dynamic (customers come in and leave based on set criteria) or static (manually selected customers).

Available values: `auto-update`, `static` | | -| filter |

Defines a set of criteria for an auto-update segment type.

| | -| initial_sync_status | Available values: `IN_PROGRESS`, `DONE` | | -| object |

The type of object represented by JSON. This object stores information about the customer segment.

| | - +## Customer Segment Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique segment ID.

**Example:**

seg_1wc52c5z6r1kQ81brO8j9Hk2

| +| name
`string` |

Segment name.

| +| created_at
`string` |

Timestamp representing the date and time when the segment was created in ISO 8601 format.

**Example:**

2022-05-12T13:01:56.896Z

| +| type
`string` |

Describes whether the segment is dynamic (customers come in and leave based on set criteria) or static (manually selected customers).

Available values: `auto-update`, `static` | +| filter
`object,null` |

Defines a set of criteria for an auto-update segment type.

| +| initial_sync_status
`string` | Available values: `IN_PROGRESS`, `DONE` | +| object
`string` |

The type of object represented by JSON. This object stores information about the customer segment.

| [block:html] { diff --git a/docs/reference-docs/STACKABLE-DISCOUNTS-API-Stackable-Redemptions-Object.md b/docs/reference-docs/STACKABLE-DISCOUNTS-API-Stackable-Redemptions-Object.md index 6d9f14863..bbd79fbee 100644 --- a/docs/reference-docs/STACKABLE-DISCOUNTS-API-Stackable-Redemptions-Object.md +++ b/docs/reference-docs/STACKABLE-DISCOUNTS-API-Stackable-Redemptions-Object.md @@ -1,6 +1,6 @@ --- title: Stackable Redemptions Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: stackable-discounts-api slug: stackable-redemptions-object @@ -8,11 +8,40 @@ hidden: false order: 3 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| redemptions | | | -| parent_redemption |

This is an object representing a stacked redemption.

Stacked Redemption

AttributesDescriptionExample
id

Unique redemption ID.

r_0bc92f81a6801f9bca

object

The type of object represented by the JSON. This object stores information about the redemption.

date

Timestamp in ISO 8601 format indicating when the redemption occured.

2022-10-03T12:24:58.008Z

customer_id

Unique customer ID of the redeeming customer.

cust_i8t5Tt6eiKG5K79KQlJ0Vs64

tracking_id

Hashed customer source ID.

track_fxEMFiLowFHg==

metadata

The metadata object stores all custom attributes in the form of key/value pairs assigned to the redemption.

result

Redemption result.

Available values: SUCCESS, FAILURE
order

Defines the details of the order that is related to the redemption.

customer

Defines the customer making the stacked redemption.

AttributesDescriptionExample
id

The unique ID of a customer that is assigned by Voucherify.

cust_eWgXlBBiY6THFRJwX45Iakv4

name

Customer's first and last name.

email

Customer's email address.

source_id

The merchant’s customer ID if it is different from the Voucherify customer ID. It is really useful in case of an integration between multiple systems. It can be a customer ID from a CRM system, database or 3rd-party service.

metadata

The metadata object stores all custom attributes assigned to the customer. A set of key/value pairs that you can attach to a customer object. It can be useful for storing additional information about the customer in a structured format.

object

Type of object represented is customer.

related_object_type

Defines the related object.

Available values: redemption
related_object_id

Unique related object ID assigned by Voucherify, i.e. r_0c5d07222e08a34ace for a redemption.

voucher
| | -| order |

Contains the order details associated with the redemption.

| | +## Stackable Redemptions Response Body +| Attributes | Description | +|:-----|:--------| +| redemptions
`array` | | +| parent_redemption
`object` |

This is an object representing a stacked redemption.

Stacked Redemption

AttributesDescription
id
string

Unique redemption ID.

Example:

r_0bc92f81a6801f9bca

object
string

The type of object represented by the JSON. This object stores information about the redemption.

date
string

Timestamp in ISO 8601 format indicating when the redemption occured.

Example:

2022-10-03T12:24:58.008Z

customer_id
string

Unique customer ID of the redeeming customer.

Example:

cust_i8t5Tt6eiKG5K79KQlJ0Vs64

tracking_id
string

Hashed customer source ID.

Example:

track_fxEMFiLowFHg==

metadata
object

The metadata object stores all custom attributes in the form of key/value pairs assigned to the redemption.

result
string

Redemption result.

Available values: SUCCESS, FAILURE
order

Defines the details of the order that is related to the redemption.

See: Order
customer
object

Defines the customer making the stacked redemption.

AttributesDescription
id
string

The unique ID of a customer that is assigned by Voucherify.

Example:

cust_eWgXlBBiY6THFRJwX45Iakv4

name
string

Customer's first and last name.

email
string

Customer's email address.

source_id
string

The merchant’s customer ID if it is different from the Voucherify customer ID. It is really useful in case of an integration between multiple systems. It can be a customer ID from a CRM system, database or 3rd-party service.

metadata
object

The metadata object stores all custom attributes assigned to the customer. A set of key/value pairs that you can attach to a customer object. It can be useful for storing additional information about the customer in a structured format.

object
string

Type of object represented is customer.

related_object_type
string

Defines the related object.

Available values: redemption
related_object_id
string

Unique related object ID assigned by Voucherify, i.e. r_0c5d07222e08a34ace for a redemption.

voucher
null
| +| order |

Contains the order details associated with the redemption.

See: [Order](#order) | +## Order +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique order ID, assigned by Voucherify.

**Example:**

ord_OLWs41pBk7VFn6ZTyX9U6keh

| +| source_id
`string` |

The merchant’s order ID if it is different from the Voucherify order ID. It is really useful in case of integration between multiple systems. It can be an order ID from CRM, database or 3rd party service.

| +| created_at
`string` |

Timestamp representing the date and time when the order was created in ISO 8601 format.

**Example:**

2022-10-06T11:40:48.705Z

| +| updated_at
`string` |

Timestamp representing the date and time when the order was updated in ISO 8601 format.

**Example:**

2022-10-06T11:47:20.760Z

| +| status
`string` |

Order status.

Available values: `CREATED`, `PAID`, `CANCELED`, `FULFILLED` | +| amount
`integer` |

Order amount before applying any discount.

| +| discount_amount
`integer` |

Sum of all order-level discounts applied to the order.

| +| items_discount_amount
`integer` |

Sum of all product-specific discounts applied to the order.
sum(items, i => i.discount_amount)

| +| total_discount_amount
`integer` |

Sum of all order-level AND all product-specific discounts applied to the order.
total_discount_amount = discount_amount + items_discount_amount

| +| total_amount
`integer` |

Order amount after applying all the discounts.
total_amount = amount - total_discount_amount

| +| applied_discount_amount
`integer` |

This field shows the sum of all order-level discounts applied.

| +| items_applied_discount_amount
`integer` |

Sum of all product-specific discounts applied.
sum(items, i => i.applied_discount_amount)

| +| total_applied_discount_amount
`integer` |

Sum of all order-level AND all product-specific discounts applied to the order.
total_applied_discount_amount = applied_discount_amount + items_applied_discount_amount

| +| items
`array` |

Array of order items that have been applied to the order. Each order item can show the effects of particular discounts on the item-level.

Array of:
AttributesDescription
object
string

The type of object represented by JSON. This object stores information about the order_item.

product_id
string

A unique identifier that represents the product and is assigned by Voucherify.

Example:

prod_5h0wc453_1

sku_id
string

A unique identifier that represents the SKU and is assigned by Voucherify.

Example:

sku_prod_5h0wc453_1_1

quantity
integer

Quantity of the item in the cart.

amount
integer

Represents a total pre-discount amount of order item (price * quantity).

discount_amount
integer

The item-level discount applied to the item.

applied_discount_amount
integer

The item-level discount applied to the item.

price
integer

Unit price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

subtotal_amount
integer

Final order item amount after the applied item-level discount. If there are no item-level discounts applied, this item is equal to the amount.
subtotal_amount=amount-discount_amount

product
object

This object stores more information about the related product.

AttributesDescription
id
string

A unique identifier that represents the product and is assigned by Voucherify.

Example:

prod_5h0wc453_1

source_id
string

A unique product identifier from your inventory system.

Example:

illy-arabica

name
string

Product name.

Example:

Brewing System

price
integer

Unit price of a product. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

sku
object

This object stores more information about the related SKU.

AttributesDescription
id
string

A unique identifier that represents the SKU and is assigned by Voucherify.

Example:

sku_prod_5h0wc453_1_1

source_id
string

A unique SKU identifier from your inventory system.

Example:

illy-arabica-250g

sku
string

SKU name.

price
integer

Unit price of a SKU. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 is written as 10000.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the order. A set of key/value pairs that are att to an order object. Stores additional information about the order in a structured format.

| +| customer
`object` |

Object containing information about the customer that is making the purchase.

AttributesDescription
id
string

Unique customer ID of the customer making the purchase.

Example:

cust_7iUa6ICKyU6gH40dBU25kQU1

object
string

Type of object represented by the customer object.

| +| referrer
`object` |

Object containing information about the referrer.

AttributesDescription
id
string

Unique referrer ID, who referred the customer making the purchase.

Example:

cust_7iUa6ICKyU6gH40dBU25kQU1

object
string

Type of object represented by the referrer object.

| +| customer_id
`string` |

Unique customer ID of the customer making the purchase.

**Example:**

cust_7iUa6ICKyU6gH40dBU25kQU1

| +| referrer_id
`string` |

Unique referrer ID.

**Example:**

cust_nM4jqPiaXUvQdVSA6vTRUnix

| +| object
`string` |

The type of object represented by JSON. This object stores information about the order.

| +| redemptions |

Lists details related to the redemption

See: [Stacked Redemption](#stacked-redemption) | +## Stacked Redemption +| Attributes | Description | +|:-----|:--------| +| redemption_ID
`object` |

The property name is the unique parent redemption ID; i.e. r_0ba186c4824e4881e1. This object contains information about the redemption of multiple incentives.

AttributesDescription
date
string

Timestamp representing the date and time when the redemption was created in ISO 8601 format.

Example:

2022-09-02T17:06:56.649Z

related_object_type
string

The source of the incentive.

related_object_id
string

Unique ID of the parent redemption.

Example:

r_0ba186c4824e4881e1

stacked
array

Contains a list of unique IDs of child redemptions, which belong to the stacked incentives.

| [block:html] { diff --git a/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Assignment-Object.md b/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Assignment-Object.md index 93ea0e151..64c763d7b 100644 --- a/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Assignment-Object.md +++ b/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Assignment-Object.md @@ -1,6 +1,6 @@ --- title: Validation Rule Assignment Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: validation-rules-api slug: validation-rule-assignment-object @@ -8,14 +8,15 @@ hidden: false order: 2 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Validation rule assignment ID.

|

asgm_74F7QZoYbUoljwQO

| -| rule_id |

Validation rule ID.

|

val_4j7DCRm2IS59

| -| related_object_id |

The resource ID to which the validation rule was assigned.

|

v_JtWunK6jUo7X2qOFj0SyRHq4p9tgENlT

| -| related_object_type |

The type of resource to which the validation rule was assigned.

Available values: `voucher`, `campaign`, `earning_rule`, `reward_assignment`, `promotion_tier`, `distribution` | | -| created_at |

Timestamp representing the date and time when the validation rule assignment was created in ISO 8601 format.

|

2022-02-17T08:18:15.085Z

| -| object |

The type of object represented by the ID.

| | +## Validation Rule Assignment Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Validation rule assignment ID.

**Example:**

asgm_74F7QZoYbUoljwQO

| +| rule_id
`string` |

Validation rule ID.

**Example:**

val_4j7DCRm2IS59

| +| related_object_id
`string` |

The resource ID to which the validation rule was assigned.

**Example:**

v_JtWunK6jUo7X2qOFj0SyRHq4p9tgENlT

| +| related_object_type
`string` |

The type of resource to which the validation rule was assigned.

Available values: `voucher`, `campaign`, `earning_rule`, `reward_assignment`, `promotion_tier`, `distribution` | +| created_at
`string` |

Timestamp representing the date and time when the validation rule assignment was created in ISO 8601 format.

**Example:**

2022-02-17T08:18:15.085Z

| +| object
`string` |

The type of object represented by the ID.

| [block:html] { diff --git a/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Object.md b/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Object.md index 931d6a277..703c3ad51 100644 --- a/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Object.md +++ b/docs/reference-docs/VALIDATION-RULES-API-Validation-Rule-Object.md @@ -1,6 +1,6 @@ --- title: Validation Rule Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: validation-rules-api slug: validation-rule-object @@ -8,18 +8,19 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Unique validation rule ID.

|

val_eR1c41hu0vUU

| -| name |

Custom, unique name for set of validation rules.

|

Business Validation Rule

| -| rules |

Contains all the rule definitions for the validation rule. It is a set of key value pairs representing the rules and logic between the rules. The keys are numbered consequtively beginning from 1. The values are objects containing the rule conditions.

AttributesDescriptionExample
1

Defines the rule.

AttributesDescriptionExample
name

Voucherify specific rule name. The list of available names is provided below.

Name
Customer
customer.segment
customer.metadata*
Order
order.amount
order.items.count
order.items.price_any
order.items.price_each
order.items.metadata_any
order.items.metadata_each
order.metadata*
Campaign
campaign.orders.amount_discounted
campaign.orders.amount
campaign.redemptions.count
campaign.redemptions.count.daily
campaign.redemptions.count.monthly
campaign.redemptions.customers_count
campaign.redemptions.customers_count.daily
campaign.redemptions.customers_count.monthly
Redemption
redemption.gift.amount
redemption.count.daily
redemption.count.monthly
redemption.count.per_customer
redemption.count.per_customer.daily
redemption.count.per_customer.monthly
redemption.api_key
redemption.count.per_api_key
redemption.user.login
redemption.count.per_user
redemption.metadata*
redemption.reward.pay_with_points.points_used
Product
product.id
product.price
product.quantity
product.discount_applicable
product.metadata*
product.metadata.aggregated_quantity
product.metadata.aggregated_amount
product.metadata.discount_applicable
product.metadata.match_all
SKU
sku.id
sku.price
sku.quantity
sku.discount_applicable
Publication
publication.redeemable_by_linked_customer
Custom Event
custom_event.metadata*
Order items
order.items.every
order.items.any
order.items.none
order.items.cheapest
order.items.most_expensive
order.items.quantity
order.items.aggregated_quantity
order.items.price
order.items.aggregated_amount
order.items.metadata*

*Requires the property field to be defined.

property

Custom name for a metadata property associated with the condition to be satisfied. Required if the property name is any of the following:

Name
customer_metadata
custom_event_metadata
order_items_metadata
order_metadata
product_metadata
redemption_metadata
conditions

A set of key value pairs representing the condition name and value. The list of available conditions is provided below:

Condition (key)DefinitionDoes not support Types
$isA property is a predefined value.
$is_notA property is not a predefined value.
$inA property either one value in a predefined list of values.
$less_thanA property is less than a predefined value.boolean
$less_than_or_equalA property is less than or equal to a predefined value.boolean
$more_thanA property is more than a predefined value.boolean
$more_than_or_equalA property is more than or equal to a predefined value.boolean
$starts_withA property starts with the predefined sequence of characters.boolean, number
$ends_withA property ends with the predefined sequence of characters.boolean, number
$containsA property contains the predefined sequence of characters.boolean, number
$timeframeboolean, number
$dowboolean, string
$countboolean, string
$count_moreboolean, string
$count_lessboolean, string
AttributesDescriptionExample
$one_of_voucherify_conditions

Contains a set of conditions for the rule.

rules

Contains all the nested rule definitions for the validation rule. It is a set of key value pairs representing the rules and logic between the rules. The keys are numbered consequtively beginning from 1. The values are objects containing the rule conditions.

AttributesDescriptionExample
1

Defines the nested rule.

AttributesDescriptionExample
name
property
conditions
rules
logic
error

Contains the error message returned from API when validation / redemption fails to meet requirements of defined rule.

AttributesDescriptionExample
message

The error message returned from API when validation / redemption fails to meet requirements of defined rule.

logic

Defines the logic between the rules.

(1 and 2) and (3)

| | -| error |

Contains the error message returned from API when validation / redemption fails to meet requirements of defined rules.

AttributesDescriptionExample
message

The error message returned from API when validation / redemption fails to meet requirements of defined rules.

| | -| applicable_to |
AttributesDescriptionExample
excluded

Defines which items are excluded from a discount.

Array of:
AttributesDescriptionExample
object

The type of object being excluded from the rule.

Available values: product, sku, products_collection
id

Unique product ID, SKU ID, product collection ID i.e. prod_0b72b00ffed198e344z, sku_0b7d7dfb090be5c619, pc_4ndRXAsTOzwSdHcQcxf489uU.

source_id
strict
effect

Discount effect for an excluded resource.

Available values: APPLY_TO_EVERY
included

Defines which items are included in a discount.

Array of:
AttributesDescriptionExample
object

The type of object being included in the rule.

Available values: product, sku, products_collection
id

Unique product ID, SKU ID, product collection ID i.e. prod_0b72b00ffed198e344z, sku_0b7d7dfb090be5c619, pc_4ndRXAsTOzwSdHcQcxf489uU.

source_id
strict
effect

Discount effect for an included resource.

Available values: APPLY_TO_EVERY, APPLY_TO_CHEAPEST, APPLY_TO_MOST_EXPENSIVE
quantity_limit

A limit on the number of units that at maximum can qualify for a discount. This property is present for an AMOUNT type discount when the effect is applied to ITEMS and each unit of matched products has the same discount value.

included_all

Indicates whether all items are included in the discount.

| | -| created_at |

Timestamp representing the date and time when the validation rule was created in ISO 8601 format.

|

2022-03-23T07:44:00.444Z

| -| updated_at |

Timestamp representing the date and time when the validation rule was updated in ISO 8601 format.

|

2022-04-26T08:35:54.960Z

| -| type |

Type of validation rule.

Available values: `basic`, `advanced`, `complex` | | -| context_type |

Validation rule context type.

Context TypeDefinition
earning_rule.order.paid
earning_rule.custom_event
earning_rule.customer.segment.entered
campaign.discount_coupons
campaign.discount_coupons.discount.apply_to_order
campaign.discount_coupons.discount.apply_to_items
campaign.discount_coupons.discount.apply_to_items_proportionally
campaign.discount_coupons.discount.apply_to_items_proportionally_by_quantity
campaign.discount_coupons.discount.fixed.apply_to_items
campaign.gift_vouchers
campaign.gift_vouchers.gift.apply_to_order
campaign.gift_vouchers.gift.apply_to_items
campaign.referral_program
campaign.referral_program.discount.apply_to_order
campaign.referral_program.discount.apply_to_items
campaign.referral_program.discount.apply_to_items_proportionally
campaign.referral_program.discount.apply_to_items_proportionally_by_quantity
campaign.referral_program.discount.fixed.apply_to_items
campaign.promotion
campaign.promotion.discount.apply_to_order
campaign.promotion.discount.apply_to_items
campaign.promotion.discount.apply_to_items_proportionally
campaign.promotion.discount.apply_to_items_proportionally_by_quantity
campaign.promotion.discount.fixed.apply_to_items
campaign.loyalty_program
campaign.lucky_draw
voucher.discount_voucher
voucher.discount_voucher.discount.apply_to_order
voucher.discount_voucher.discount.apply_to_items
voucher.discount_voucher.discount.apply_to_items_proportionally
voucher.discount_voucher.discount.apply_to_items_proportionally_by_quantity
voucher.discount_voucher.discount.fixed.apply_to_items
voucher.gift_voucher
voucher.gift_voucher.gift.apply_to_order
voucher.gift_voucher.gift.apply_to_items
voucher.loyalty_card
voucher.lucky_draw_code
distribution.custom_event
reward_assignment.pay_with_points
global
Available values: `earning_rule.order.paid`, `earning_rule.custom_event`, `earning_rule.customer.segment.entered`, `campaign.discount_coupons`, `campaign.discount_coupons.discount.apply_to_order`, `campaign.discount_coupons.discount.apply_to_items`, `campaign.discount_coupons.discount.apply_to_items_proportionally`, `campaign.discount_coupons.discount.apply_to_items_proportionally_by_quantity`, `campaign.discount_coupons.discount.fixed.apply_to_items`, `campaign.gift_vouchers`, `campaign.gift_vouchers.gift.apply_to_order`, `campaign.gift_vouchers.gift.apply_to_items`, `campaign.referral_program`, `campaign.referral_program.discount.apply_to_order`, `campaign.referral_program.discount.apply_to_items`, `campaign.referral_program.discount.apply_to_items_proportionally`, `campaign.referral_program.discount.apply_to_items_proportionally_by_quantity`, `campaign.referral_program.discount.fixed.apply_to_items`, `campaign.promotion`, `campaign.promotion.discount.apply_to_order`, `campaign.promotion.discount.apply_to_items`, `campaign.promotion.discount.apply_to_items_proportionally`, `campaign.promotion.discount.apply_to_items_proportionally_by_quantity`, `campaign.promotion.discount.fixed.apply_to_items`, `campaign.loyalty_program`, `campaign.lucky_draw`, `voucher.discount_voucher`, `voucher.discount_voucher.discount.apply_to_order`, `voucher.discount_voucher.discount.apply_to_items`, `voucher.discount_voucher.discount.apply_to_items_proportionally`, `voucher.discount_voucher.discount.apply_to_items_proportionally_by_quantity`, `voucher.discount_voucher.discount.fixed.apply_to_items`, `voucher.gift_voucher`, `voucher.gift_voucher.gift.apply_to_order`, `voucher.gift_voucher.gift.apply_to_items`, `voucher.loyalty_card`, `voucher.lucky_draw_code`, `distribution.custom_event`, `reward_assignment.pay_with_points`, `global` | | -| object |

The type of object represented by JSON. This object stores information about the validation rule.

| | +## Validation Rule Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique validation rule ID.

**Example:**

val_eR1c41hu0vUU

| +| name
`string` |

Custom, unique name for set of validation rules.

**Example:**

Business Validation Rule

| +| rules
`object` |

Contains all the rule definitions for the validation rule. It is a set of key value pairs representing the rules and logic between the rules. The keys are numbered consequtively beginning from 1. The values are objects containing the rule conditions.

AttributesDescription
1
object

Defines the rule.

AttributesDescription
name
string

Voucherify specific rule name. The list of available names is provided below.

Name

property
string,null

Custom name for a metadata property associated with the condition to be satisfied. Required if the property name is any of the following:
customer_metadata
custom_event_metadata
order_items_metadata
order_metadata
product_metadata
redemption_metadata

conditions
object

A set of key value pairs representing the condition name and value. The list of available conditions is provided below:

Condition (key)DefinitionDoes not support Types
$isA property is a predefined value.
$is_notA property is not a predefined value.
$inA property either one value in a predefined list of values.
$less_thanA property is less than a predefined value.boolean
$less_than_or_equalA property is less than or equal to a predefined value.boolean
$more_thanA property is more than a predefined value.boolean
$more_than_or_equalA property is more than or equal to a predefined value.boolean
$starts_withA property starts with the predefined sequence of characters.boolean, number
$ends_withA property ends with the predefined sequence of characters.boolean, number
$containsA property contains the predefined sequence of characters.boolean, number
$timeframeboolean, number
$dowboolean, string
$countboolean, string
$count_moreboolean, string
$count_lessboolean, string
AttributesDescription
$one_of_voucherify_conditions
array

Contains a set of conditions for the rule.

rules
object

Contains all the nested rule definitions for the validation rule. It is a set of key value pairs representing the rules and logic between the rules. The keys are numbered consequtively beginning from 1. The values are objects containing the rule conditions.

AttributesDescription
1
object

Defines the nested rule.

AttributesDescription
name
string
property
string
conditions
object
rules
object
logic
string
error
object

Contains the error message returned from API when validation / redemption fails to meet requirements of defined rule.

AttributesDescription
message
string

The error message returned from API when validation / redemption fails to meet requirements of defined rule.

logic
string

Defines the logic between the rules.

Example:

(1 and 2) and (3)

| +| error
`object` |

Contains the error message returned from API when validation / redemption fails to meet requirements of defined rules.

AttributesDescription
message
string

The error message returned from API when validation / redemption fails to meet requirements of defined rules.

| +| applicable_to
`object` |
AttributesDescription
excluded
array

Defines which items are excluded from a discount.

Array of:
AttributesDescription
object
string

The type of object being excluded from the rule.

Available values: product, sku, products_collection
id
string

Unique product ID, SKU ID, product collection ID i.e. prod_0b72b00ffed198e344z, sku_0b7d7dfb090be5c619, pc_4ndRXAsTOzwSdHcQcxf489uU.

source_id
string
strict
boolean
effect
string

Discount effect for an excluded resource.

Available values: APPLY_TO_EVERY
included
array

Defines which items are included in a discount.

Array of:
AttributesDescription
object
string

The type of object being included in the rule.

Available values: product, sku, products_collection
id
string

Unique product ID, SKU ID, product collection ID i.e. prod_0b72b00ffed198e344z, sku_0b7d7dfb090be5c619, pc_4ndRXAsTOzwSdHcQcxf489uU.

source_id
string
strict
boolean
effect
string

Discount effect for an included resource.

Available values: APPLY_TO_EVERY, APPLY_TO_CHEAPEST, APPLY_TO_MOST_EXPENSIVE
quantity_limit
integer

A limit on the number of units that at maximum can qualify for a discount. This property is present for an AMOUNT type discount when the effect is applied to ITEMS and each unit of matched products has the same discount value.

included_all
boolean

Indicates whether all items are included in the discount.

| +| created_at
`string` |

Timestamp representing the date and time when the validation rule was created in ISO 8601 format.

**Example:**

2022-03-23T07:44:00.444Z

| +| updated_at
`string` |

Timestamp representing the date and time when the validation rule was updated in ISO 8601 format.

**Example:**

2022-04-26T08:35:54.960Z

| +| type
`string` |

Type of validation rule.

Available values: `basic`, `advanced`, `complex` | +| context_type
`string` |

Validation rule context type.

Context TypeDefinition
earning_rule.order.paid
earning_rule.custom_event
earning_rule.customer.segment.entered
campaign.discount_coupons
campaign.discount_coupons.discount.apply_to_order
campaign.discount_coupons.discount.apply_to_items
campaign.discount_coupons.discount.apply_to_items_proportionally
campaign.discount_coupons.discount.apply_to_items_proportionally_by_quantity
campaign.discount_coupons.discount.fixed.apply_to_items
campaign.gift_vouchers
campaign.gift_vouchers.gift.apply_to_order
campaign.gift_vouchers.gift.apply_to_items
campaign.referral_program
campaign.referral_program.discount.apply_to_order
campaign.referral_program.discount.apply_to_items
campaign.referral_program.discount.apply_to_items_proportionally
campaign.referral_program.discount.apply_to_items_proportionally_by_quantity
campaign.referral_program.discount.fixed.apply_to_items
campaign.promotion
campaign.promotion.discount.apply_to_order
campaign.promotion.discount.apply_to_items
campaign.promotion.discount.apply_to_items_proportionally
campaign.promotion.discount.apply_to_items_proportionally_by_quantity
campaign.promotion.discount.fixed.apply_to_items
campaign.loyalty_program
campaign.lucky_draw
voucher.discount_voucher
voucher.discount_voucher.discount.apply_to_order
voucher.discount_voucher.discount.apply_to_items
voucher.discount_voucher.discount.apply_to_items_proportionally
voucher.discount_voucher.discount.apply_to_items_proportionally_by_quantity
voucher.discount_voucher.discount.fixed.apply_to_items
voucher.gift_voucher
voucher.gift_voucher.gift.apply_to_order
voucher.gift_voucher.gift.apply_to_items
voucher.loyalty_card
voucher.lucky_draw_code
distribution.custom_event
reward_assignment.pay_with_points
global
Available values: `earning_rule.order.paid`, `earning_rule.custom_event`, `earning_rule.customer.segment.entered`, `campaign.discount_coupons`, `campaign.discount_coupons.discount.apply_to_order`, `campaign.discount_coupons.discount.apply_to_items`, `campaign.discount_coupons.discount.apply_to_items_proportionally`, `campaign.discount_coupons.discount.apply_to_items_proportionally_by_quantity`, `campaign.discount_coupons.discount.fixed.apply_to_items`, `campaign.gift_vouchers`, `campaign.gift_vouchers.gift.apply_to_order`, `campaign.gift_vouchers.gift.apply_to_items`, `campaign.referral_program`, `campaign.referral_program.discount.apply_to_order`, `campaign.referral_program.discount.apply_to_items`, `campaign.referral_program.discount.apply_to_items_proportionally`, `campaign.referral_program.discount.apply_to_items_proportionally_by_quantity`, `campaign.referral_program.discount.fixed.apply_to_items`, `campaign.promotion`, `campaign.promotion.discount.apply_to_order`, `campaign.promotion.discount.apply_to_items`, `campaign.promotion.discount.apply_to_items_proportionally`, `campaign.promotion.discount.apply_to_items_proportionally_by_quantity`, `campaign.promotion.discount.fixed.apply_to_items`, `campaign.loyalty_program`, `campaign.lucky_draw`, `voucher.discount_voucher`, `voucher.discount_voucher.discount.apply_to_order`, `voucher.discount_voucher.discount.apply_to_items`, `voucher.discount_voucher.discount.apply_to_items_proportionally`, `voucher.discount_voucher.discount.apply_to_items_proportionally_by_quantity`, `voucher.discount_voucher.discount.fixed.apply_to_items`, `voucher.gift_voucher`, `voucher.gift_voucher.gift.apply_to_order`, `voucher.gift_voucher.gift.apply_to_items`, `voucher.loyalty_card`, `voucher.lucky_draw_code`, `distribution.custom_event`, `reward_assignment.pay_with_points`, `global` | +| object
`string` |

The type of object represented by JSON. This object stores information about the validation rule.

| [block:html] { diff --git a/docs/reference-docs/VOUCHERS-API-Voucher-Object.md b/docs/reference-docs/VOUCHERS-API-Voucher-Object.md index 7bf9ecaab..d6165b67d 100644 --- a/docs/reference-docs/VOUCHERS-API-Voucher-Object.md +++ b/docs/reference-docs/VOUCHERS-API-Voucher-Object.md @@ -1,6 +1,6 @@ --- title: Voucher Object -type: endpoint +type: basic categorySlug: voucherify-api parentDocSlug: vouchers-api slug: voucher-object @@ -8,78 +8,90 @@ hidden: false order: 1 --- -| Attributes | Description | Example | -|:-----|:--------|------:| -| id |

Assigned by the Voucherify API, identifies the voucher.

|

v_mkZN9v7vjYUadXnHrMza8W5c34fE5KiV

| -| code |

A code that identifies a voucher. Pattern can use all letters of the English alphabet, Arabic numerals, and special characters.

|

WVPblOYX

| -| campaign |

A unique campaign name, identifies the voucher's parent campaign.

|

Gift Card Campaign

| -| campaign_id |

Assigned by the Voucherify API, identifies the voucher's parent campaign.

|

camp_FNYR4jhqZBM9xTptxDGgeNBV

| -| category |

Tag defining the category that this voucher belongs to. Useful when listing vouchers using the List Vouchers endpoint.

| | -| category_id |

Unique category ID assigned by Voucherify.

|

cat_0bb343dee3cdb5ec0c

| -| categories |

Contains details about the category.

[object Object]

| | -| type |

Defines the type of voucher.

Available values: `GIFT_VOUCHER`, `DISCOUNT_VOUCHER`, `LOYALTY_CARD` | | -| discount | One of: Reference to [1_obj_voucher_object_discount_amount](#amount) Reference to [1_obj_voucher_object_discount_percentage](#percentage) Reference to [1_obj_voucher_object_discount_fixed](#fixed) Reference to [1_obj_voucher_object_discount_unit_one](#unit, single item) Reference to [1_obj_voucher_object_discount_unit_multiple](#unit, multiple items) Reference to [1_obj_voucher_object_discount_shipping](#shipping) | | -| gift |

Object representing gift parameters. Child attributes are present only if type is GIFT_VOUCHER. Defaults to null.

AttributesDescriptionExample
amount

Total gift card income over the lifetime of the card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

10000

balance

Available funds. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

500

effect

Defines how the credits are applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS
| | -| loyalty_card |

Object representing loyalty card parameters. Child attributes are present only if type is LOYALTY_CARD. Defaults to null.

AttributesDescriptionExample
points

Total points incurred over lifespan of loyalty card.

7000

balance

Points available for reward redemption.

6970

next_expiration_date

The next closest date when the next set of points are due to expire.

2023-05-30

next_expiration_points

The amount of points that are set to expire next.

| | -| start_date |

Activation timestamp defines when the code starts to be active in ISO 8601 format. Voucher is inactive before this date.

|

2021-12-01T00:00:00.000Z

| -| expiration_date |

Expiration timestamp defines when the code expires in ISO 8601 format. Voucher is inactive after this date.

|

2021-12-31T00:00:00.000Z

| -| validity_timeframe |

Set recurrent time periods when the voucher is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescriptionExample
duration

Defines the amount of time the voucher will be active in ISO 8601 format. For example, a voucher with a duration of PT1H will be valid for a duration of one hour.

PT1H

interval

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a voucher with an interval of P2D will be active every other day.

P2D

| | -| validity_day_of_week |

Integer array corresponding to the particular days of the week in which the voucher is valid.

Available values: `0`, `1`, `2`, `3`, `4`, `5`, `6` | | -| active |

A flag to toggle the voucher on or off. You can disable a voucher even though it's within the active period defined by the start_date and expiration_date.

| | -| additional_info |

An optional field to keep any extra textual information about the code such as a code description and details.

| | -| metadata |

The metadata object stores all custom attributes assigned to the code. A set of key/value pairs that you can attach to a voucher object. It can be useful for storing additional information about the voucher in a structured format.

| | -| assets |

Stores links to images of QR and barcode that correspond to an encrypted voucher code.

AttributesDescriptionExample
qr

Stores Quick Response (QR) representation of encrypted code.

AttributesDescriptionExample
id

Encrypted voucher code ID.

U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK+t4pp7U7oFzjGJzj9q/bmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg+BaZk5QwXMf8k/OzSlOEVybpwSq+AiqPoNtjeuqtIgkDyvT6Q==

url

URL to QR code

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg

https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK%2Bt4pp7U7oFzjGJzj9q%2FbmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg%2BBaZk5QwXMf8k%2FOzSlOEVybpwSq%2BAiqPoNtjeuqtIgkDyvT6Q%3D%3D

barcode

Stores barcode representation of encrypted code.

AttributesDescriptionExample
id

Encrypted voucher code ID.

U2FsdGVkX19eJhGfWwUrH9+tulBkON+AnMktic+N6CVWzZ9+fHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ+kJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6/pFs61apEn9SJx32ttCF6d3oxKISQQ==

url

URL to barcode

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg

https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19eJhGfWwUrH9%2BtulBkON%2BAnMktic%2BN6CVWzZ9%2BfHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ%2BkJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6%2FpFs61apEn9SJx32ttCF6d3oxKISQQ%3D%3D

| | -| is_referral_code |

Flag indicating whether this voucher is a referral code.

| | -| created_at |

Timestamp representing the date and time when the voucher was created in ISO 8601 format.

|

2021-12-22T10:13:06.487Z

| -| updated_at |

Timestamp representing the date and time when the voucher was last updated in ISO 8601 format.

|

2021-12-22T10:14:45.316Z

| -| holder_id |

Unique customer ID of voucher owner.

|

cust_eWgXlBBiY6THFRJwX45Iakv4

| -| validation_rules_assignments |

Stores information about validation rules assigned to the voucher.

AttributesDescriptionExample
object

The type of object represented is by default list.

data_ref

Identifies the name of the attribute that contains the array of validation rule assignments.

data

Array of validation rule assignment objects. Each validation rule assignment object contains details about the rule.

Array of:
AttributesDescriptionExample
id

Assigned by the Voucherify API, identifies the validation rule assignment.

asgm_N7t39epaQR2SkQcW

rule_id

Assigned by the Voucherify API, identifies the validation rule.

val_ssbxf1L9aKri

related_object_id

ID of the object from which the rule originates, can be the ID of the voucher itself or its parent campaign.

camp_AaP9MC1Y0GpBII84UTIuasvb

related_object_type

Which object does the rule originate from: the voucher itself or inherited from its parent campaign.

campaign

created_at

Timestamp representing the date and time when the validation rule was created in ISO 8601 format.

2022-02-14T15:12:06.817Z

object

The type of resource represented by the object. Default is validation_rules_assignment.

total

Total number of validation rules assigned to the voucher.

| | -| redemption |

Stores a summary of redemptions that have been applied to the voucher.

AttributesDescriptionExample
quantity

How many times a voucher can be redeemed. A null value means unlimited.

redeemed_quantity

How many times a voucher has already been redeemed.

1

redeemed_amount

Total amount redeemed. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 balance is written as 10000.

100000

redeemed_points

Total loyalty points redeemed.

100000

object

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

url

The endpoint where this list of redemptions can be accessed using a GET method. /v1/vouchers/{voucher_code}/redemptions

/v1/vouchers/WVPblOYX/redemptions?page=1&limit=10

| | -| publish |

This object stores a summary of publish events: an events counter and an endpoint which can be called to return details of each event. A publication is required for loyalty cards and referral codes. This object gets updated whenever a voucher has been published. Publication means assigning a code to a particular customer. Typically, a publication is made by distributing your codes to your customers, e.g. through Export to MailChimp or publish voucher API method.

RequiredOptional
type:LOYALTY_CARDtype:DISCOUNT_VOUCHER
is_referral_code:truetype:GIFT_VOUCHER
AttributesDescriptionExample
object

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

count

Publication events counter.

0

url

The endpoint where this list of publications can be accessed using a GET method. /v1/vouchers/{voucher_code}/publications

/v1/vouchers/WVPblOYX/publications?page=1&limit=10

| | -| object |

The type of object represented by JSON. Default is voucher.

| | -# Amount -| Attributes | Description | Example | -|:-----|:--------|------:| -| type |

Applies an amount discount.

| | -| amount_off |

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

|

100

| -| amount_off_formula |

Formula used to calculate the discount.

| | -| effect |

Defines how the discount is applied to the customer's order

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS`, `APPLY_TO_ITEMS_PROPORTIONALLY`, `APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY`, `APPLY_TO_ITEMS_BY_QUANTITY` | | -# Percentage -| Attributes | Description | Example | -|:-----|:--------|------:| -| type |

Applies a percentage discount.

| | -| amount_limit |

Upper limit allowed to be applied as a discount. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

| | -| percent_off |

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

| | -| percent_off_formula |

Formula used to calculate the discount.

| | -| effect |

Defines how the discount is applied to the customer's order.

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | | -# Fixed -| Attributes | Description | Example | -|:-----|:--------|------:| -| type |

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

| | -| fixed_amount |

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

|

1000

| -| fixed_amount_formula |

Formula used to calculate the discounted price of an item or a new order total.

| | -| effect |
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | | -# Unit, single item -| Attributes | Description | Example | -|:-----|:--------|------:| -| type |

Applies a full value discount to item(s).

| | -| unit_off |

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

|

1

| -| unit_off_formula |

Formula used to calculate the number of units.

| | -| unit_type |

The product deemed as free, chosen from the product inventory (e.g. time, items).

|

prod_f1r5Tpr0DuC7

| -| effect |

Defines how the unit is added to the customer's order.

Available values: `ADD_NEW_ITEMS`, `ADD_MISSING_ITEMS` | | -# Unit, multiple items -| Attributes | Description | Example | -|:-----|:--------|------:| -| type |

Applies a full value discount to item(s).

| | -| effect |

Defines the effect for adding multiple item types.

| | -| units |

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescriptionExample
unit_off

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

1

unit_off_formula

Formula used to calculate the number of units.

unit_type

The product deemed as free, chosen from the product inventory (e.g. time, items).

prod_f1r5Tpr0DuC7

effect

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS
| | -# Shipping -| Attributes | Description | Example | -|:-----|:--------|------:| -| type |

Applies a full value discount to item(s).

| | -| unit_off |

Subtracts 1 shipping item from the subtotal.

| | -| unit_type |

The shipping product deemed as free.

| | -| effect |

Defines how the unit is added to the customer's order.

| | +## Voucher Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Assigned by the Voucherify API, identifies the voucher.

**Example:**

v_mkZN9v7vjYUadXnHrMza8W5c34fE5KiV

| +| code
`string` |

A code that identifies a voucher. Pattern can use all letters of the English alphabet, Arabic numerals, and special characters.

**Example:**

WVPblOYX

| +| campaign
`string` |

A unique campaign name, identifies the voucher's parent campaign.

**Example:**

Gift Card Campaign

| +| campaign_id
`string` |

Assigned by the Voucherify API, identifies the voucher's parent campaign.

**Example:**

camp_FNYR4jhqZBM9xTptxDGgeNBV

| +| category
`string` |

Tag defining the category that this voucher belongs to. Useful when listing vouchers using the List Vouchers endpoint.

| +| category_id
`string` |

Unique category ID assigned by Voucherify.

**Example:**

cat_0bb343dee3cdb5ec0c

| +| categories
`array` |

Contains details about the category.

Array of [Category Object](#category-object) | +| type
`string` |

Defines the type of voucher.

Available values: `GIFT_VOUCHER`, `DISCOUNT_VOUCHER`, `LOYALTY_CARD` | +| discount | One of: [Amount](#amount), [Percentage](#percentage), [Fixed](#fixed), [Unit, single item](#unit-single-item), [Unit, multiple items](#unit-multiple-items), [Shipping](#shipping) | +| gift
`object` |

Object representing gift parameters. Child attributes are present only if type is GIFT_VOUCHER. Defaults to null.

AttributesDescription
amount
integer

Total gift card income over the lifetime of the card. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

Example:

10000

balance
integer

Available funds. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 amount is written as 10000.

Example:

500

effect
string

Defines how the credits are applied to the customer's order.

Available values: APPLY_TO_ORDER, APPLY_TO_ITEMS
| +| loyalty_card
`object` |

Object representing loyalty card parameters. Child attributes are present only if type is LOYALTY_CARD. Defaults to null.

AttributesDescription
points
integer

Total points incurred over lifespan of loyalty card.

Example:

7000

balance
integer

Points available for reward redemption.

Example:

6970

next_expiration_date
string

The next closest date when the next set of points are due to expire.

Example:

2023-05-30

next_expiration_points
integer

The amount of points that are set to expire next.

| +| start_date
`string` |

Activation timestamp defines when the code starts to be active in ISO 8601 format. Voucher is inactive before this date.

**Example:**

2021-12-01T00:00:00.000Z

| +| expiration_date
`string` |

Expiration timestamp defines when the code expires in ISO 8601 format. Voucher is inactive after this date.

**Example:**

2021-12-31T00:00:00.000Z

| +| validity_timeframe
`object` |

Set recurrent time periods when the voucher is valid. For example, valid for 1 hour every other day.start_date required when including the validity_timeframe.

AttributesDescription
duration
string

Defines the amount of time the voucher will be active in ISO 8601 format. For example, a voucher with a duration of PT1H will be valid for a duration of one hour.

Example:

PT1H

interval
string

Defines the intervening time between two time points in ISO 8601 format, expressed as a duration. For example, a voucher with an interval of P2D will be active every other day.

Example:

P2D

| +| validity_day_of_week
`array` |

Integer array corresponding to the particular days of the week in which the voucher is valid.

Available values: `0`, `1`, `2`, `3`, `4`, `5`, `6` | +| active
`boolean` |

A flag to toggle the voucher on or off. You can disable a voucher even though it's within the active period defined by the start_date and expiration_date.

| +| additional_info
`string` |

An optional field to keep any extra textual information about the code such as a code description and details.

| +| metadata
`object` |

The metadata object stores all custom attributes assigned to the code. A set of key/value pairs that you can attach to a voucher object. It can be useful for storing additional information about the voucher in a structured format.

| +| assets
`object` |

Stores links to images of QR and barcode that correspond to an encrypted voucher code.

AttributesDescription
qr
object

Stores Quick Response (QR) representation of encrypted code.

AttributesDescription
id
string

Encrypted voucher code ID.

Example:

U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK+t4pp7U7oFzjGJzj9q/bmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg+BaZk5QwXMf8k/OzSlOEVybpwSq+AiqPoNtjeuqtIgkDyvT6Q==

url
string

URL to QR code

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg
Example:

https://dev.dl.voucherify.io/api/v1/assets/qr/U2FsdGVkX19ucFhvVmBVpVYG5KoswTsjSIaqoKg5L9ie4BK%2Bt4pp7U7oFzjGJzj9q%2FbmuMOj9mEFiVKDMIkSaruKedMvHbKoPX5Sg%2BBaZk5QwXMf8k%2FOzSlOEVybpwSq%2BAiqPoNtjeuqtIgkDyvT6Q%3D%3D

barcode
object

Stores barcode representation of encrypted code.

AttributesDescription
id
string

Encrypted voucher code ID.

Example:

U2FsdGVkX19eJhGfWwUrH9+tulBkON+AnMktic+N6CVWzZ9+fHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ+kJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6/pFs61apEn9SJx32ttCF6d3oxKISQQ==

url
string

URL to barcode

Optional: Attach query parameters to base URL to customize the image of the encrypted voucher code.

  • size: integer value from 1 to 100
  • format: string, either png (default) or svg
Example:

https://dev.dl.voucherify.io/api/v1/assets/barcode/U2FsdGVkX19eJhGfWwUrH9%2BtulBkON%2BAnMktic%2BN6CVWzZ9%2BfHVxuVx22WakrzxiWXy0skuvvEHSeZIw9HlgyIJ%2BkJ1iPdUKpyENuNYJKzoZlO0mmTf6WQM6%2FpFs61apEn9SJx32ttCF6d3oxKISQQ%3D%3D

| +| is_referral_code
`boolean` |

Flag indicating whether this voucher is a referral code.

| +| created_at
`string` |

Timestamp representing the date and time when the voucher was created in ISO 8601 format.

**Example:**

2021-12-22T10:13:06.487Z

| +| updated_at
`string` |

Timestamp representing the date and time when the voucher was last updated in ISO 8601 format.

**Example:**

2021-12-22T10:14:45.316Z

| +| holder_id
`string` |

Unique customer ID of voucher owner.

**Example:**

cust_eWgXlBBiY6THFRJwX45Iakv4

| +| validation_rules_assignments
`object` |

Stores information about validation rules assigned to the voucher.

AttributesDescription
object
string

The type of object represented is by default list.

data_ref
string

Identifies the name of the attribute that contains the array of validation rule assignments.

data
array

Array of validation rule assignment objects. Each validation rule assignment object contains details about the rule.

Array of:
AttributesDescription
id
string

Assigned by the Voucherify API, identifies the validation rule assignment.

Example:

asgm_N7t39epaQR2SkQcW

rule_id
string

Assigned by the Voucherify API, identifies the validation rule.

Example:

val_ssbxf1L9aKri

related_object_id
string

ID of the object from which the rule originates, can be the ID of the voucher itself or its parent campaign.

Example:

camp_AaP9MC1Y0GpBII84UTIuasvb

related_object_type
string

Which object does the rule originate from: the voucher itself or inherited from its parent campaign.

Example:

campaign

created_at
string

Timestamp representing the date and time when the validation rule was created in ISO 8601 format.

Example:

2022-02-14T15:12:06.817Z

object
string

The type of resource represented by the object. Default is validation_rules_assignment.

total
integer

Total number of validation rules assigned to the voucher.

| +| redemption
`object` |

Stores a summary of redemptions that have been applied to the voucher.

AttributesDescription
quantity
integer

How many times a voucher can be redeemed. A null value means unlimited.

redeemed_quantity
integer

How many times a voucher has already been redeemed.

Example:

1

redeemed_amount
integer

Total amount redeemed. Value is multiplied by 100 to precisely represent 2 decimal places. For example, $100 balance is written as 10000.

Example:

100000

redeemed_points
integer

Total loyalty points redeemed.

Example:

100000

object
string

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

url
string

The endpoint where this list of redemptions can be accessed using a GET method. /v1/vouchers/{voucher_code}/redemptions

Example:

/v1/vouchers/WVPblOYX/redemptions?page=1&limit=10

| +| publish
`object` |

This object stores a summary of publish events: an events counter and an endpoint which can be called to return details of each event. A publication is required for loyalty cards and referral codes. This object gets updated whenever a voucher has been published. Publication means assigning a code to a particular customer. Typically, a publication is made by distributing your codes to your customers, e.g. through Export to MailChimp or publish voucher API method.

RequiredOptional
type:LOYALTY_CARDtype:DISCOUNT_VOUCHER
is_referral_code:truetype:GIFT_VOUCHER
AttributesDescription
object
string

The type of object represented is by default list. To get this list, you need to make a call to the endpoint returned in the url attribute.

count
integer

Publication events counter.

Example:

0

url
string

The endpoint where this list of publications can be accessed using a GET method. /v1/vouchers/{voucher_code}/publications

Example:

/v1/vouchers/WVPblOYX/publications?page=1&limit=10

| +| object
`string` |

The type of object represented by JSON. Default is voucher.

| +## Category Object +| Attributes | Description | +|:-----|:--------| +| id
`string` |

Unique category ID assigned by Voucherify.

| +| name
`string` |

Category name.

| +| hierarchy
`integer` |

Category hierarchy.

| +| created_at
`string` |

Timestamp representing the date and time when the category was created in ISO 8601 format.

**Example:**

2022-07-14T10:45:13.156Z

| +| updated_at
`string` |

Timestamp representing the date and time when the category was updated in ISO 8601 format.

**Example:**

2022-08-16T10:52:08.094Z

| +| object
`string` |

The type of object represented by the JSON. This object stores information about the category.

| +## Amount +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies an amount discount.

| +| amount_off
`integer` |

Amount taken off the subtotal of a price. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the amount being calculated by the formula, i.e. the amount_off_formula parameter is present in the amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the amount off.

**Example:**

100

| +| amount_off_formula
`string` |

Formula used to calculate the discount.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600. This value is definable for the following discount effects:

| +| effect
`string` |

Defines how the discount is applied to the customer's order. The discount effects are defined as follows:

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS`, `APPLY_TO_ITEMS_PROPORTIONALLY`, `APPLY_TO_ITEMS_PROPORTIONALLY_BY_QUANTITY`, `APPLY_TO_ITEMS_BY_QUANTITY` | +## Percentage +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a percentage discount.

| +| amount_limit
`string` |

Upper limit allowed to be applied as a discount per order line item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.

| +| aggregated_amount_limit
`integer` |

Maximum discount amount per order. This value is definable for the APPLY_TO_ITEMS discount effect. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600.

| +| percent_off
`integer` |

Percent taken off the subtotal amount. In case of the percent being calculated by the formula, i.e. the percent_off_formula parameter is present in the percent definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the percent off.

| +| percent_off_formula
`string` |

Formula used to calculate the discount.

| +| effect
`string` |

Defines how the discount is applied to the customer's order.

Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Fixed +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Sets a fixed total on cart or item(s) and then calculates the discount to apply.

| +| fixed_amount
`integer` |

Set a fixed valued for an order total or price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 discount is written as 1000. In case of the fixed amount being calculated by the formula, i.e. the fixed_amount_formula parameter is present in the fixed amount definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed value.

**Example:**

1000

| +| fixed_amount_formula
`string` |

Formula used to calculate the discounted price of an item or a new order total.

| +| effect
`string` |
EffectDefinition
APPLY_TO_ORDERSets the order total amount to the value of the fixed amount. The discount value is calculated dynamically during the redemption as it's a difference between the total amount of the customer's order and the fixed amount. For example, if the fixed amount is set to equal $10 and the order amount equals $25, then the calculated discount will be $15.
APPLY_TO_ITEMSSets a new price on items. The total discount amount is dynamically calculated during the redemption and it's a difference between the initial item price and the fixed amount. During the redemption, prices for items will change only if the new price is lower than the original price. If the new product price you set is different from the product price in a collection, then the new product price will be passed during the redemption. If a prodct is in more than one collection, the price is always changed to the lowest price. The new price for products with several SKUs will force the price change for SKUs if their original price is higher than the new price.
Available values: `APPLY_TO_ORDER`, `APPLY_TO_ITEMS` | +## Unit, single item +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

**Example:**

1

| +| unit_off_formula
`string` |

Formula used to calculate the number of units.

| +| unit_type
`string` |

The product deemed as free, chosen from the product inventory (e.g. time, items).

**Example:**

prod_f1r5Tpr0DuC7

| +| effect
`string` |

Defines how the unit is added to the customer's order.

Available values: `ADD_NEW_ITEMS`, `ADD_MISSING_ITEMS` | +## Unit, multiple items +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| effect
`string` |

Defines the effect for adding multiple item types.

| +| units
`array` |

Array of objects defining items to be offered for free. Each item type can have a different discount effect assigned.

Array of:
AttributesDescription
unit_off
integer

Number of units to be granted a full value discount. In case of the unit being calculated by the formula, i.e. the unit_off_formula parameter is present in the unit definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the unit value.

Example:

1

unit_off_formula
string

Formula used to calculate the number of units.

unit_type
string

The product deemed as free, chosen from the product inventory (e.g. time, items).

Example:

prod_f1r5Tpr0DuC7

effect
string

Defines how the unit is added to the customer's order.

Available values: ADD_NEW_ITEMS, ADD_MISSING_ITEMS
| +## Shipping +| Attributes | Description | +|:-----|:--------| +| type
`string` |

Applies a full value discount to item(s).

| +| unit_off
`number` |

Subtracts 1 shipping item from the subtotal.

| +| unit_type
`string` |

The shipping product deemed as free.

| +| effect
`string` |

Defines how the unit is added to the customer's order.

| [block:html] { diff --git a/docs/script/package-lock.json b/docs/script/package-lock.json deleted file mode 100644 index 05e70fa30..000000000 --- a/docs/script/package-lock.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "script", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "version": "1.0.0" - } - } -} diff --git a/docs/script/package.json b/docs/script/package.json deleted file mode 100644 index 48c48a1ab..000000000 --- a/docs/script/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "version": "1.0.0", - "scripts": { - "start": "node index.js" - } -} diff --git a/package-lock.json b/package-lock.json index fab15b32a..89e83ad65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,114 @@ "version": "1.0.0", "dependencies": { "dotenv": "^16.3.1", + "markdown-it": "^13.0.2", "minimist": "^1.2.8", - "node-fetch": "^2.7.0" + "node-fetch": "^2.7.0", + "ts-node": "^10.9.1", + "yup": "^1.1.1" + }, + "devDependencies": { + "@types/node": "^20.7.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/node": { + "version": "20.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.0.tgz", + "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==" + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" } }, "node_modules/dotenv": { @@ -23,6 +129,50 @@ "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -50,6 +200,97 @@ } } }, + "node_modules/property-expr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", + "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" + }, + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -68,6 +309,25 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yup": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.3.1.tgz", + "integrity": "sha512-2stNyEF96SnPUxzRL99kt1bEHWytnvC2stwmTTqjoFXZRf63JtYK2pQt2AJvWcQvkrAzr/pcXvc6c5vrqsBzDg==", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } } } } diff --git a/package.json b/package.json index fd1ed732c..665b78342 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,20 @@ { "version": "1.0.0", "scripts": { - "re-order": "npm run start --prefix docs/script" + "update-md-tables-in-doc": "ts-node ./scripts/update-md-tables-in-doc.ts", + "build-md-tables-from-openapi": "ts-node ./scripts/build-md-tables-from-openapi.ts", + "readme-fix-docs-order": "ts-node ./scripts/readme-fix-docs-order.ts", + "remove-stoplight-tags-from-openapi": "ts-node ./scripts/remove-stoplight-tags-from-openapi.ts" }, "dependencies": { "dotenv": "^16.3.1", + "markdown-it": "^13.0.2", "minimist": "^1.2.8", - "node-fetch": "^2.7.0" + "node-fetch": "^2.7.0", + "ts-node": "^10.9.1", + "yup": "^1.1.1" + }, + "devDependencies": { + "@types/node": "^20.7.0" } } diff --git a/reference/OpenAPI.json b/reference/OpenAPI.json index 5dc02037e..457763af0 100644 --- a/reference/OpenAPI.json +++ b/reference/OpenAPI.json @@ -366,8 +366,7 @@ "in": "query", "required": false, "schema": { - "anyOf": [ - ] + "anyOf": [] }, "description": "A filter.", "style": "deepObject", @@ -38706,43 +38705,43 @@ } }, "22_filter_updated_at": { - "type": "object", - "title": "Updated at", - "properties": { - "updated_at": { - "$ref": "#/components/schemas/16_filter_conditions_date_time" - } - }, + "type": "object", + "title": "Updated at", + "properties": { + "updated_at": { + "$ref": "#/components/schemas/16_filter_conditions_date_time" + } + }, "description": "A filter on the list based on the object `updated_at` field. The value is a dictionary with the following options: `before`, `after`. A date value must be presented in ISO 8601 format (`2016-11-16T14:14:31Z` or `2016-11-16`). An example: `[updated_at][before]=2017-09-08T13:52:18.227Z`" }, "22_filter_created_at": { - "type": "object", - "title": "Created at", - "properties": { - "created_at": { - "$ref": "#/components/schemas/16_filter_conditions_date_time" - } - }, + "type": "object", + "title": "Created at", + "properties": { + "created_at": { + "$ref": "#/components/schemas/16_filter_conditions_date_time" + } + }, "description": "A filter on the list based on the object `created_at` field. The value is a dictionary with the following options: `before`, `after`. A date value must be presented in ISO 8601 format (`2016-11-16T14:14:31Z` or `2016-11-16`). An example: `[created_at][before]=2017-09-08T13:52:18.227Z`" }, "22_filter_name": { - "type": "object", - "title": "Name", - "properties": { - "name": { - "$ref": "#/components/schemas/16_filter_conditions_string" - } - }, + "type": "object", + "title": "Name", + "properties": { + "name": { + "$ref": "#/components/schemas/16_filter_conditions_string" + } + }, "description": "A filter on the list based on the name field." }, "22_filter_id": { - "type": "object", - "title": "ID", - "properties": { - "id": { - "$ref": "#/components/schemas/16_filter_conditions_string" - } - }, + "type": "object", + "title": "ID", + "properties": { + "id": { + "$ref": "#/components/schemas/16_filter_conditions_string" + } + }, "description": "A filter on the list based on the id of the location." }, "23_obj_qualification_object": { @@ -38977,6 +38976,7 @@ }, "23_obj_qualification_object_stacking_rules": { "type": "object", + "title": "Examine Qualification Stacking Rules", "description": "Defines stacking rules for the redeemables.", "properties": { "redeemables_limit": { @@ -49928,42 +49928,42 @@ } } }, - "404": { - "description": "Returns an error if a resource is not found.", + "403": { + "description": "Returns an error if you don't have a specific credentials set up. Navigate to the **Dashboard** → **Project Settings** → **General** → **Integration Keys** to set up a pair of API keys and use them to send the request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/e_404_not_found" + "$ref": "#/components/schemas/e_integration_key" }, "examples": { - "Resource not found": { + "Example": { "value": { - "code": 404, - "key": "not_found", - "message": "Resource not found", - "details": "Cannot find customer with id cust_xqA7DGj5eYPHg6PHVKwYRWiA", - "request_id": "v-0c8b6b35294af6f192", - "resource_id": "cust_xqA7DGj5eYPHg6PHVKwYRWiA", - "resource_type": "customer" + "code": 403, + "message": "Forbidden", + "key": "integration_api_key_required" } } } } } }, - "403": { - "description": "Returns an error if you don't have a specific credentials set up. Navigate to the **Dashboard** → **Project Settings** → **General** → **Integration Keys** to set up a pair of API keys and use them to send the request.", + "404": { + "description": "Returns an error if a resource is not found.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/e_integration_key" + "$ref": "#/components/schemas/e_404_not_found" }, "examples": { - "Example": { + "Resource not found": { "value": { - "code": 403, - "message": "Forbidden", - "key": "integration_api_key_required" + "code": 404, + "key": "not_found", + "message": "Resource not found", + "details": "Cannot find customer with id cust_xqA7DGj5eYPHg6PHVKwYRWiA", + "request_id": "v-0c8b6b35294af6f192", + "resource_id": "cust_xqA7DGj5eYPHg6PHVKwYRWiA", + "resource_type": "customer" } } } @@ -80893,7 +80893,7 @@ "tags": [ "QUALIFICATIONS API" ], - "summary": "Qualification Object [Beta]", + "summary": "Qualification Object", "description": "Data model description", "responses": { "200": { @@ -80915,7 +80915,7 @@ "tags": [ "QUALIFICATIONS API" ], - "summary": "Check Eligibility [Beta]", + "summary": "Check Eligibility", "description": "Generate a list of redeemables that are applicable in the context of the customer and order.\n\nThe new qualifications method is an improved version of [Campaign Qualifications](ref:examine-campaigns-qualification), [Voucher Qualifications](ref:examine-vouchers-qualification), and [Promotions Validation](ref:validate-promotions) API requests. The new qualification method introduces the following improvements:\n\n- Qualification results are returned faster\n- No limit on the number of returned redeemables\n- Introduces new qualification scenarios, not available in the previous version\n\n## Paging \n\nThe Voucherify Qualifications API request will return to you all of the redeemables available for the customer in batches of up to 50 redeemables. To get the next batch of redeemables, you need to use the `starting_after` cursor.\n\nTo process of paging the redeemables works in the following manner:\n\n- You send the first API request for Qualifications without the `starting_after` parameter.\n- The response will contain a parameter named `has_more`. If the parameter's value is set to `true`, then more redeemables are available.\n- Get the value of the `created_at` parameter of the last returned redeemable. The value of this parameter will be used as a cursor to retrieve the next page of redeemables.\n- Send another API request for Qualification with the `starting_after` parameter set to the value taken from the `created_at` parameter from the last returned redeemable.\n- Voucherify will return the next page of redeemables.\n- If the `has_more` parameter is set to `true`, apply steps 3-5 to get the next page of redeemables.", "parameters": [], "security": [ @@ -80954,7 +80954,7 @@ "tags": [ "QUALIFICATIONS API" ], - "summary": "Check Eligibility (client-side) [Beta]", + "summary": "Check Eligibility (client-side)", "description": "Generate a list of redeemables that are applicable in the context of the customer and order.\n\nThe new qualifications method is an improved version of [Campaign Qualifications](ref:examine-campaigns-qualification), [Voucher Qualifications](ref:examine-vouchers-qualification), and [Promotions Validation](ref:validate-promotions) API requests. The new qualification method introduces the following improvements:\n\n- Qualification results are returned faster\n- No limit on the number of returned redeemables\n- Introduces new qualification scenarios, not available in the previous version\n\n## Paging \n\nThe Voucherify Qualifications API request will return to you all of the redeemables available for the customer in batches of up to 50 redeemables. To get the next batch of redeemables, you need to use the `starting_after` cursor.\n\nTo process of paging the redeemables works in the following manner:\n\n- You send the first API request for Qualifications without the `starting_after` parameter.\n- The response will contain a parameter named `has_more`. If the parameter's value is set to `true`, then more redeemables are available.\n- Get the value of the `created_at` parameter of the last returned redeemable. The value of this parameter will be used as a cursor to retrieve the next page of redeemables.\n- Send another API request for Qualification with the `starting_after` parameter set to the value taken from the `created_at` parameter from the last returned redeemable.\n- Voucherify will return the next page of redeemables.\n- If the `has_more` parameter is set to `true`, apply steps 3-5 to get the next page of redeemables.", "parameters": [], "security": [ @@ -80988,4 +80988,4 @@ } } } -} +} \ No newline at end of file diff --git a/scripts/build-md-tables-from-openapi.ts b/scripts/build-md-tables-from-openapi.ts new file mode 100644 index 000000000..20c29655e --- /dev/null +++ b/scripts/build-md-tables-from-openapi.ts @@ -0,0 +1,23 @@ +import * as fs from 'fs/promises' +import path from 'path'; +import './globals.t' +import * as openApi from '../reference/OpenAPI.json'; +import { mdTables } from './md-tables'; +import SchemaToMarkdownTable, {RenderMode, ExamplesRenderedAs} from './src/schema-to-md-table'; + +const PATH_TO_GERENATED_TABLES = [__dirname, './output']; + +(async () => { + const stm = new SchemaToMarkdownTable(openApi.components.schemas, RenderMode.List, ExamplesRenderedAs.PartOfDescription); + for(const [objectName] of mdTables){ + try{ + const fileName = `${objectName}.md`; + await fs.writeFile(path.join(...PATH_TO_GERENATED_TABLES, fileName), stm.render(objectName)) + console.log(`Generated markdown table in ${fileName}`) + }catch(e){ + console.log(`Error for ${objectName}`, e) + + } + } + console.log('done') +})() \ No newline at end of file diff --git a/tableWithNestedSchemaGenerator/globals.t.ts b/scripts/globals.t.ts similarity index 100% rename from tableWithNestedSchemaGenerator/globals.t.ts rename to scripts/globals.t.ts diff --git a/scripts/md-tables.ts b/scripts/md-tables.ts new file mode 100644 index 000000000..4ff8217f0 --- /dev/null +++ b/scripts/md-tables.ts @@ -0,0 +1,33 @@ +export const mdTables: [string, string?][] = [ + ['1_obj_voucher_object', 'VOUCHERS-API-Voucher-Object.md'], + ['2_obj_campaign_object', 'CAMPAIGNS-API-Campaign-Object.md'], + ['3_obj_promotion_tier_object', 'PROMOTIONS-API-Promotion-Tier-Object.md'], + ['4_obj_reward_object', 'REWARDS-API-Reward-Object.md'], + ['4_obj_reward_assignment_object', 'REWARDS-API-Reward-Assignment-Object.md'], + ['5_obj_publication_object', 'PUBLICATIONS-API-Publication-Object.md'], + ['6_res_validate_voucher'], // VALIDATIONS-API-Validation-Object.md // Does not generate + ['6_res_validate_voucher_false'], + ['7_obj_redemption_object'], // REDEMPTIONS-API-Redemption-Object.md // Does not generate + ['7_obj_rollback_redemption_object_extended'], // REDEMPTIONS-API-Rollback-Redemption-Object.md // Does not generate + ['19_res_redemptions_POST', 'STACKABLE-DISCOUNTS-API-Stackable-Redemptions-Object.md'], + ['8_obj_loyalty_campaign_object', 'LOYALTIES-API-Loyalty-Campaign-Object.md'], + ['8_obj_loyalty_card_object_non_expanded_categories', 'LOYALTIES-API-Loyalty-Card-Object.md'], + ['8_obj_earning_rule_object'], // LOYALTIES-API-Earning-Rule-Object.md // Does not generates + ['8_obj_loyalty_tier_object', 'LOYALTIES-API-Loyalty-Tier-Object.md'], + ['9_obj_customer_object', 'CUSTOMERS-API-Customer-Object.md'], + ['9_obj_customer_activity_object', 'CUSTOMERS-API-Customer-Activity-Object.md'], + ['10_obj_order_object', 'ORDERS-API-Order-Object.md'], + ['11_obj_product_object', 'PRODUCTS-API-Product-Object.md'], + ['11_obj_sku_object', 'PRODUCTS-API-SKU-Object.md'], + ['12_obj_product_collection_object'], // PRODUCT-COLLECTIONS-API-Product-Collection-Object.md // Does not generates + ['13_obj_validation_rule_object', 'VALIDATION-RULES-API-Validation-Rule-Object.md'], + ['13_obj_validation_rule_assignment_object', 'VALIDATION-RULES-API-Validation-Rule-Assignment-Object.md'], + ['14_obj_segment_object', 'SEGMENTS-API-Customer-Segment-Object.md'], + ['15_req_track_custom_event'], // EVENTS-API-Custom-Event-Object.md // Something does not feel right - + ['18_res_list_consents_GET', 'CONSENTS-API-Consents-Object.md'], + ['17_obj_async_action_object', 'ASYNC-ACTIONS-API-Async-Action-Object.md'], + ['16_obj_export_object', 'EXPORTS-API-Export-Object.md'], + ['20_obj_category_object', 'CATEGORIES-API-Category-Object.md'], + ['21_obj_metadata_schema_object', 'METADATA-SCHEMAS-API-Metadata-Schema-Object.md'], + ['23_obj_qualification_object', 'QUALIFICATIONS-API-Qualification-Object.md'] +]; \ No newline at end of file diff --git a/tableWithNestedSchemaGenerator/output/.gitkeep b/scripts/output/.gitkeep similarity index 100% rename from tableWithNestedSchemaGenerator/output/.gitkeep rename to scripts/output/.gitkeep diff --git a/docs/script/index.js b/scripts/readme-fix-docs-order.ts similarity index 50% rename from docs/script/index.js rename to scripts/readme-fix-docs-order.ts index 91c194d59..64e5926d3 100644 --- a/docs/script/index.js +++ b/scripts/readme-fix-docs-order.ts @@ -1,42 +1,13 @@ -const fetch = require("node-fetch"); -const fsPromises = require("fs/promises"); -const fs = require("fs"); -const path = require("path"); -require("dotenv").config(); -const { version } = require("minimist")(process.argv.slice(2)); +import * as fs from 'fs/promises' +import path from 'path'; +import dotenv from 'dotenv' +import minimist from 'minimist'; +import { ok } from 'assert'; -if (!version) { - console.log( - "`version` argument was not provided :/, next time try add `-- --version=************` at the end of file execution command" - ); - return; -} +dotenv.config(); +const { version } = minimist(process.argv.slice(2)); -if (process.env.README_IO_AUTH?.length < 10) { - console.log("`README_IO_AUTH` was not provided in `.env` file :/"); - return; -} -const main = async () => { - const basePath = path.join(__dirname, ".."); - const pathsToFiles = await getFiles(basePath); - const dataToProcess = []; - for (const pathToFile of pathsToFiles) { - const data = await fsPromises.readFile(pathToFile, { encoding: "utf8" }); - const slug = data.match(/slug: .*/)?.[0]?.split?.("slug: ")?.[1]; - const order = parseInt( - data.match(/order: .*/)?.[0]?.split?.("order: ")?.[1] - ); - if (!slug || isNaN(order)) { - throw new Error("Invalid slug or order in " + pathToFile); - } - dataToProcess.push({ slug, order, pathToFile }); - } - for (const chunk of chunkArray(dataToProcess, 6)) { - await asyncMap(chunk, updateDoc); - } - console.log("Done!"); -}; const updateDoc = async ({ slug, order, pathToFile }) => { const options = { method: "PUT", @@ -49,29 +20,40 @@ const updateDoc = async ({ slug, order, pathToFile }) => { body: JSON.stringify({ order }), }; - const response = await fetch( - `https://dash.readme.com/api/v1/docs/${slug}`, - options - ); - - const responseJSON = await response.json(); - if (responseJSON.error) { - console.log({ filePath: pathToFile, response }); - throw new Error(responseJSON.error); - } + try{ + const response = await fetch( + `https://dash.readme.com/api/v1/docs/${slug}`, + options + ); - if (order === responseJSON.order) { - console.log(`Updated successfully ${pathToFile}!`); - } else { - console.log(`Not updated ${pathToFile}!`); + const responseJSON = await response.json(); + + if (responseJSON.error) { + console.log(`Error in json response from readme for ${slug}`, { responseJSON }); + throw new Error(responseJSON.error); + } + + if (order === responseJSON.order) { + console.log(`Updated successfully ${pathToFile}!`); + } else { + console.log(`Not updated ${pathToFile}!`); + } + + return responseJSON; + }catch(error){ + console.log(`Error when reqesting readme for ${slug}`, error); + throw new Error(error) } - - return responseJSON; }; -const getFiles = async (path) => { - const pathsToFiles = []; - const items = await fsPromises.readdir(path, { +const chunkArray = (list, chunkSize) => + [...Array(Math.ceil(list.length / chunkSize))].map((_) => + list.splice(0, chunkSize) + ); + +const getFiles = async (path: string) => { + const pathsToFiles: string[] = []; + const items = await fs.readdir(path, { withFileTypes: true, }); for (const item of items) { @@ -93,9 +75,39 @@ const asyncMap = (arr, asyncFn) => { return Promise.all(arr.map(asyncFn)); }; -const chunkArray = (list, chunkSize) => - [...Array(Math.ceil(list.length / chunkSize))].map((_) => - list.splice(0, chunkSize) - ); -main(); +const readmeFixDocsOrder = async () => { + if (!version) { + console.log( + "`version` argument was not provided :/, next time try add `-- --version=************` at the end of file execution command" + ); + return; + } + if (process.env.README_IO_AUTH?.length < 10) { + console.log("`README_IO_AUTH` was not provided in `.env` file :/"); + return; + } + const basePath = path.join(__dirname, "../docs"); + const pathsToFiles = await getFiles(basePath); + + const dataToProcess = []; + for (const pathToFile of pathsToFiles) { + const data = await fs.readFile(pathToFile, { encoding: "utf8" }); + const slug = data.match(/slug: .*/)?.[0]?.split?.("slug: ")?.[1]; + const order = parseInt( + data.match(/order: .*/)?.[0]?.split?.("order: ")?.[1] + ); + if (!slug || isNaN(order)) { + throw new Error("Invalid slug or order in " + pathToFile); + } + dataToProcess.push({ slug, order, pathToFile }); + } + for (const chunk of chunkArray(dataToProcess, 6)) { + await asyncMap(chunk, updateDoc); + } + console.log("Done!"); +}; + + + +readmeFixDocsOrder() diff --git a/scripts/remove-stoplight-tags-from-openapi.ts b/scripts/remove-stoplight-tags-from-openapi.ts new file mode 100644 index 000000000..3f909efa8 --- /dev/null +++ b/scripts/remove-stoplight-tags-from-openapi.ts @@ -0,0 +1,31 @@ +import fs from 'fs/promises'; +import path from 'path'; + +function isObject(value) { + return ( + typeof value === 'object' && + value !== null && + !Array.isArray(value) + ); + } + +const removeStoplightTag = (node: object): object => { + delete node['x-stoplight']; + for(const attr in node){ + if(isObject(node[attr])){ + removeStoplightTag(node[attr]) + } + } + return node; +} + +const main = async() => { + const openApiPath = path.join(__dirname, '../reference/OpenAPI.json'); + const openAPIContent = JSON.parse((await fs.readFile(openApiPath)).toString()) + + removeStoplightTag(openAPIContent) + + await fs.writeFile(openApiPath, JSON.stringify(openAPIContent, null, 2) ) +} + +main() \ No newline at end of file diff --git a/scripts/src/schema-to-md-table.ts b/scripts/src/schema-to-md-table.ts new file mode 100644 index 000000000..59cc69e3f --- /dev/null +++ b/scripts/src/schema-to-md-table.ts @@ -0,0 +1,335 @@ +import { EOL } from 'os'; +import * as yup from 'yup'; +import MarkdownIt from 'markdown-it'; + +yup.addMethod(yup.MixedSchema, "oneOfSchemas", function (schemas: yup.AnySchema[]) { + return this.test( + "one-of-schemas", + "Not all items in '${path}' match one of the allowed schemas", + (item) => + schemas.some((schema) => schema.isValidSync(item, { strict: true })) + ); +}); + +const nodeWithTitleAndPropertiesSchema = yup.object({ + title: yup.string().optional(), + type: yup.string().oneOf(['object', 'string']), + properties: yup.object({}), +}); + +const oneOfSchema = yup.array().of(yup.object({ + '$ref': yup.string().required() +})).optional(); + +const itemsSchema = yup.mixed().oneOfSchemas([nodeWithTitleAndPropertiesSchema, yup.object({ '$ref': yup.string().optional() })]).optional(); + +const anyOfSchema = yup.array().of(yup.mixed().oneOfSchemas([ + nodeWithTitleAndPropertiesSchema, + yup.object({ '$ref': yup.string().required() }) +])).optional() + +const propertySchema = yup.object({ + type: yup.mixed().oneOfSchemas([ + yup.string(), + yup.array().of(yup.string()) + ]), + description: yup.string().optional(), + enum: yup.array().of(yup.mixed().oneOfSchemas([ + yup.string(), + yup.array().of(yup.number()), + yup.array().of(yup.string()) + ])).optional(), + oneOf: oneOfSchema, + anyOf: anyOfSchema, + items: itemsSchema, + '$ref': yup.string().optional() +}); + +interface Items extends yup.InferType { } +interface AnyOf extends yup.InferType { } +interface OneOf extends yup.InferType { } + +export type Properties = Record +type Property = { description?: string, example?: string, type?: string } + +const md = new MarkdownIt({ breaks: true, html: true }) +const renderMarkdown = markdown => md.render(`${markdown}`).replace(/\n|\r/g, "") + +export enum RenderMode { + Nested, + List +} +export enum ExamplesRenderedAs { + Column, + PartOfDescription +} + +export default class SchemaToMarkdownTable { + constructor(private schemas: object, private redenderMode: RenderMode = RenderMode.List, private examplesRenderedAs = ExamplesRenderedAs.Column) { + if (!schemas) { + throw new Error('Schemas must be provided') + } + if (typeof schemas !== 'object') { + throw new Error('Schemas must be the object from openAPI file components.schemas attribute') + } + } + + private getMarkdownTableHead() { + if (ExamplesRenderedAs.Column) { + return [ + '| Attributes | Description | Example |', + '|:-----|:--------|------:|' + ].join(EOL) + } + return [ + '| Attributes | Description |', + '|:-----|:--------|' + ].join(EOL) + } + + private getMarkdownTableRow(columns: string[]) { + return `| ${columns.join(' | ')} |`; + } + + private getMarkdownLinkToHeader(label: string) { + return `[${label}](#${label.toLocaleLowerCase().replace(/[\s]/g, "-").replace(/[,]/g, "")})` + } + + private renderOneOfDescription(oneOf: OneOf, level: number) { + const descriptionArr = []; + const relatedObjectsNames = []; + descriptionArr.push(`One of:`); + const nestedObjectsHtml = oneOf.map(item => { + const nestedObjectName = item['$ref'].replace('#/components/schemas/', ''); + if (typeof this.schemas[nestedObjectName] !== 'object') { + return false + } + + relatedObjectsNames.push(nestedObjectName) + const title = (this.schemas[nestedObjectName].title || nestedObjectName) as string + if (this.redenderMode === RenderMode.List) { + return this.getMarkdownLinkToHeader(title) + } else { + const { html } = this.renderSchema(nestedObjectName, level + 1) + return renderMarkdown(html) + } + + }).filter(i => !!i) + descriptionArr.push(nestedObjectsHtml.join(this.redenderMode === RenderMode.List ? ', ' : '')); + + return { descriptionArr, relatedObjectsNames } + } + + private renderAnyOfDescription(anyOf: AnyOf, level: number) { + const descriptionArr = []; + const relatedObjectsNames = []; + descriptionArr.push(`Any of:`) + const nestedObjectsHtml = anyOf.map(item => { + if ('$ref' in item && typeof item['$ref'] === 'string' && item['$ref'].startsWith('#/components/schemas/')) { + const nestedObjectName = item['$ref'].replace('#/components/schemas/', ''); + if (typeof this.schemas[nestedObjectName] !== 'object') { + return false + } + relatedObjectsNames.push(nestedObjectName) + const title = (this.schemas[nestedObjectName].title || nestedObjectName) as string + if (this.redenderMode === RenderMode.List) { + return this.getMarkdownLinkToHeader(title) + } else { + const { html } = this.renderSchema(nestedObjectName, level + 1) + return renderMarkdown(html) + } + } else if ('properties' in item) { + const { html, relatedObjects } = this.renderSchema(item, level + 1) + relatedObjectsNames.push(...relatedObjects) + return renderMarkdown(html) + } + }).filter(i => !!i) + descriptionArr.push(nestedObjectsHtml.join(this.redenderMode === RenderMode.List ? ', ' : '')) + return { descriptionArr, relatedObjectsNames } + } + + private renderItemsDescription(items: Items, level: number) { + const descriptionArr = []; + const relatedObjectsNames = []; + + if ('$ref' in items && typeof items['$ref'] === 'string' && items['$ref'].startsWith('#/components/schemas/')) { + const nestedObjectName = items['$ref'].replace('#/components/schemas/', ''); + relatedObjectsNames.push(nestedObjectName) + const title = (this.schemas[nestedObjectName].title || nestedObjectName) as string + if (this.redenderMode === RenderMode.List) { + descriptionArr.push(`Array of ${this.getMarkdownLinkToHeader(title)}`) + } else { + descriptionArr.push('Array of:') + const { html } = this.renderSchema(nestedObjectName, level + 1) + descriptionArr.push(renderMarkdown(html)) + } + } else if ('type' in items && items.type === 'object') { + descriptionArr.push('Array of:') + const { html, relatedObjects } = this.renderSchema(items, level + 1) + relatedObjectsNames.push(...relatedObjects) + descriptionArr.push(renderMarkdown(html)) + } + return { descriptionArr, relatedObjectsNames } + } + + private renderRef(ref: string, level: number) { + const descriptionArr = []; + const relatedObjectsNames = []; + if (ref.startsWith('#/components/schemas/')) { + const nestedObjectName = ref.replace('#/components/schemas/', ''); + relatedObjectsNames.push(nestedObjectName) + const title = (this.schemas[nestedObjectName].title || nestedObjectName) as string + if (this.redenderMode === RenderMode.List) { + descriptionArr.push(`See: ${this.getMarkdownLinkToHeader(title)}`) + } else { + const { html } = this.renderSchema(nestedObjectName, level + 1) + descriptionArr.push(renderMarkdown(html)) + } + } + return { descriptionArr, relatedObjectsNames } + } + + private renderProperty = (property: Property, level: number) => { + const descriptionArr = []; + const relatedObjectsNames = []; + const example = "example" in property ? renderMarkdown(property.example) : ''; + + const { description, enum: EnumProp, oneOf, anyOf, items, type, $ref } = propertySchema.validateSync(property) + + if (description) { + descriptionArr.push(renderMarkdown(description)) + } + + if (EnumProp) { + const availableValues = `Available values: ${EnumProp.map(value => `\`${value}\``).join(', ')}`; + descriptionArr.push(availableValues) + } + + if (oneOf) { + const { descriptionArr: descriptionArrOneOf, relatedObjectsNames: relatedObjectsNamesOneOff } = this.renderOneOfDescription(oneOf, level); + descriptionArr.push(...descriptionArrOneOf); + relatedObjectsNames.push(...relatedObjectsNamesOneOff) + } + + if (anyOf) { + const { descriptionArr: descriptionArrAnyOf, relatedObjectsNames: relatedObjectsNamesAnyOff } = this.renderAnyOfDescription(anyOf, level); + descriptionArr.push(...descriptionArrAnyOf); + relatedObjectsNames.push(...relatedObjectsNamesAnyOff) + } + + + if (items) { + const { descriptionArr: descriptionArrItems, relatedObjectsNames: relatedObjectsNamesItems } = this.renderItemsDescription(items, level); + descriptionArr.push(...descriptionArrItems); + relatedObjectsNames.push(...relatedObjectsNamesItems) + } + + if ($ref) { + const { descriptionArr: descriptionArrItems, relatedObjectsNames: relatedObjectsNamesItems } = this.renderRef($ref, level); + descriptionArr.push(...descriptionArrItems); + relatedObjectsNames.push(...relatedObjectsNamesItems) + } + + if (type === 'object') { + const { html, relatedObjects } = this.renderSchema(property, level + 1) + relatedObjectsNames.push(...relatedObjects) + descriptionArr.push(renderMarkdown(html)) + } + + + return { descriptionArr, relatedObjectsNames, example } + } + + private renderPropertiesAsTableRow = (properties: Properties, level: number = 0) => { + const relatedObjectsNames: string[] = []; + + const tableRows = Object.entries(properties).map(([propertyId, property]) => { + // console.log(`rendering propertyId: ${propertyId} for level ${level}`) + + const { descriptionArr, relatedObjectsNames: additionalRelatedObjectsNames, example } = this.renderProperty(property, level) + + relatedObjectsNames.push(...additionalRelatedObjectsNames); + + const propertyLabel = [ + propertyId, + property.type? `\`${property.type}\`` : false + ].filter(e => !!e) + .join('
'); + + if (this.examplesRenderedAs == ExamplesRenderedAs.Column) { + + return this.getMarkdownTableRow([propertyLabel, descriptionArr.join(' '), example]); + } else { + if (example) { + descriptionArr.push('**Example:**') + descriptionArr.push(example) + } + return this.getMarkdownTableRow([propertyLabel, descriptionArr.join(' '),]); + + } + }) + + return { + html: [this.getMarkdownTableHead(), ...tableRows].join(EOL), + relatedObjectsNames + }; + } + + private renderSchema(schemaNameOrSchemaObject: string | object, level: number = 0) { + + const schema = typeof schemaNameOrSchemaObject === 'object' ? schemaNameOrSchemaObject : this.schemas[schemaNameOrSchemaObject] + if (!schema) { + throw new Error(`Schema "${schema}" not found`); + } + const { properties, title, type } = nodeWithTitleAndPropertiesSchema.validateSync(schema); + const respopnseStrArr = []; + + if (title) { + respopnseStrArr.push(`${"#".repeat(level + 2)} ${title}`) + } else { + if (typeof schemaNameOrSchemaObject === 'string') { + throw new Error(`Missing title for ${schemaNameOrSchemaObject} object`) + } + } + const relatedObjects: string[] = []; + + if (properties) { + const { html, relatedObjectsNames } = this.renderPropertiesAsTableRow(properties, level) + relatedObjects.push(...relatedObjectsNames) + respopnseStrArr.push(html) + }else if(type === 'string'){ + propertySchema.validateSync(schema) + const { descriptionArr, relatedObjectsNames } = this.renderProperty(schema, level) + relatedObjects.push(...relatedObjectsNames) + respopnseStrArr.push(descriptionArr.join(`${EOL}${EOL}`)) + } + + return { html: respopnseStrArr.join(EOL), relatedObjects } + } + + public render(schemaName: string): string { + if (this.redenderMode === RenderMode.Nested) { + const { html } = this.renderSchema(schemaName) + return html; + } + + const schemasToRender = [schemaName]; + const renderedSchemas = []; + const response: string[] = [] + + while (schemasToRender.length) { + const nextSchemaToRender = schemasToRender.shift() + if (renderedSchemas.includes(nextSchemaToRender)) { + continue + } + const { html, relatedObjects } = this.renderSchema(nextSchemaToRender) + renderedSchemas.push(nextSchemaToRender) + response.push(html) + if (relatedObjects.length) { + schemasToRender.push(...relatedObjects) + } + } + return response.join(EOL); + } + +} \ No newline at end of file diff --git a/scripts/update-md-tables-in-doc.ts b/scripts/update-md-tables-in-doc.ts new file mode 100644 index 000000000..311c476e3 --- /dev/null +++ b/scripts/update-md-tables-in-doc.ts @@ -0,0 +1,52 @@ +import * as fs from 'fs/promises' +import path from 'path'; +import { EOL } from 'os'; +import { mdTables } from './md-tables'; + +const PATH_TO_DOCS_REFERENCE = [__dirname, '../docs/reference-docs']; +const PATH_TO_GERENATED_TABLES = [__dirname, './output']; + +const updateMdTablesInDoc = async () => { + for (const [objectName, docFile] of mdTables) { + if (!docFile) { + continue; + } + try { + const docPath = path.join(...PATH_TO_DOCS_REFERENCE, docFile); + const fileContent = await fs.readFile(docPath) + const fileContentBlocks = fileContent + .toString() + .split(/(^---$)|(^\[block\:html\]$)/m) // Split by `---` and [block:html] that surrounds the table + .filter(e => !!e); + + // Find block with table by part of the markdown table syntax + const contentBlockIndexWithTableToReplace = fileContentBlocks.findIndex(block => block.indexOf('|:-----') >= 0) + + if (contentBlockIndexWithTableToReplace < 0) { + throw new Error(`Could not find table to replace in file ${docFile} (object: ${objectName}) `) + } + + const contentBeforeTable = fileContentBlocks.slice(0, contentBlockIndexWithTableToReplace).join('') + const contentAfterTable = fileContentBlocks.slice(contentBlockIndexWithTableToReplace + 1).join('') + + const newTable = (await fs.readFile(path.join(...PATH_TO_GERENATED_TABLES, `${objectName}.md`))) + .toString(); + // .replace((/^\# .*$/m), ''); // Remove first header as in readme.io it already exists + + const newFileContent = [ + contentBeforeTable, + newTable, + contentAfterTable + ].join(`${EOL}${EOL}`) + + await fs.writeFile(docPath, newFileContent) + console.log(`Updated table in ${docFile} `) + } catch (e) { + console.log(`Error for ${objectName}`, e) + + } + } + console.log('done') +} + +updateMdTablesInDoc(); \ No newline at end of file diff --git a/tableWithNestedSchemaGenerator/.gitignore b/tableWithNestedSchemaGenerator/.gitignore deleted file mode 100644 index 90e8d3141..000000000 --- a/tableWithNestedSchemaGenerator/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -output/*.md \ No newline at end of file diff --git a/tableWithNestedSchemaGenerator/README.md b/tableWithNestedSchemaGenerator/README.md deleted file mode 100644 index c4cfc6bfd..000000000 --- a/tableWithNestedSchemaGenerator/README.md +++ /dev/null @@ -1,5 +0,0 @@ -Example script to generate markdown tables describing selected objects that use "$ref" from OpenAPI file. - -Cli : -- `npm i` - install required dependencies -- `npm run stat` - generate markdown files into `output` folder \ No newline at end of file diff --git a/tableWithNestedSchemaGenerator/index.ts b/tableWithNestedSchemaGenerator/index.ts deleted file mode 100644 index a334d26ac..000000000 --- a/tableWithNestedSchemaGenerator/index.ts +++ /dev/null @@ -1,51 +0,0 @@ -import * as fs from 'fs/promises' -import * as openApi from '../reference/OpenAPI.json'; -import './globals.t' -import SchemaToMarkdownTable, {RenderMode, ExamplesRenderedAs} from './schemaToMarkdownTable'; - -const objectsToDescribe = [ - `1_obj_voucher_object`, - `2_obj_campaign_object`, - `3_obj_promotion_tier_object`, - `4_obj_reward_object`, - `4_obj_reward_assignment_object`, - `5_obj_publication_object`, - `6_res_validate_voucher`, - `6_res_validate_voucher_false`, - `7_obj_redemption_object`, - `7_obj_rollback_redemption_object_extended`, - `19_res_redemptions_POST`, - `8_obj_loyalty_campaign_object`, - `8_obj_loyalty_card_object_non_expanded_categories`, - `8_obj_earning_rule_object`, - `8_obj_loyalty_tier_object`, - `9_obj_customer_object`, - `9_obj_customer_activity_object`, - `10_obj_order_object`, - `11_obj_product_object`, - `11_obj_sku_object`, - `12_obj_product_collection_object`, - `13_obj_validation_rule_object`, - `13_obj_validation_rule_assignment_object`, - `14_obj_segment_object`, - `15_res_track_custom_event`, - `18_res_list_consents_GET`, - `17_obj_async_action_object`, - `16_obj_export_object`, - `20_obj_category_object`, - `21_obj_metadata_schema_object`, -]; - - -(async () => { - const stm = new SchemaToMarkdownTable(openApi.components.schemas, RenderMode.List, ExamplesRenderedAs.PartOfDescription); - for(const objectName of objectsToDescribe){ - try{ - await fs.writeFile(`./output/${objectName}.md`, stm.render(objectName)) - }catch(e){ - console.log(`Error for ${objectName}`, e) - - } - } - console.log('done') -})() \ No newline at end of file diff --git a/tableWithNestedSchemaGenerator/package-lock.json b/tableWithNestedSchemaGenerator/package-lock.json deleted file mode 100644 index a2528c677..000000000 --- a/tableWithNestedSchemaGenerator/package-lock.json +++ /dev/null @@ -1,6838 +0,0 @@ -{ - "name": "openapi-nested-object-table", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "openapi-nested-object-table", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "markdown-it": "^13.0.1", - "ts-node": "^10.9.1", - "yup": "^1.1.1" - }, - "devDependencies": { - "@types/jest": "^29.5.1", - "jest": "^29.5.0", - "ts-jest": "^29.1.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.9.tgz", - "integrity": "sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", - "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", - "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", - "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", - "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/parser": "^7.21.9", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", - "dev": true, - "dependencies": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.4.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.25.16" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jest/transform/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.4.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", - "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" - }, - "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz", - "integrity": "sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/node": { - "version": "20.2.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.3.tgz", - "integrity": "sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==" - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.5.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001489", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz", - "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.404", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.404.tgz", - "integrity": "sha512-te57sWvQdpxmyd1GiswaodKdXdPgn9cN4ht8JlNa04QgtrfnUdWEo1261rY2vaC6TKaiHn0E7QerJWPKFCvMVw==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", - "dev": true, - "dependencies": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", - "import-local": "^3.0.2", - "jest-cli": "^29.5.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", - "dev": true, - "dependencies": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-util": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.5.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "leven": "^3.1.0", - "pretty-format": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.5.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.5.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js-yaml/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.11.tgz", - "integrity": "sha512-+M0PwXeU80kRohZ3aT4J/OnR+l9/KD2nVLNNoRgFtnf+umQVFdGBAO2N8+nCnEi0xlh/Wk3zOGC+vNNx+uM79Q==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" - }, - "node_modules/pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tiny-case": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, - "node_modules/ts-jest": { - "version": "29.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", - "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yup": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.1.1.tgz", - "integrity": "sha512-KfCGHdAErqFZWA5tZf7upSUnGKuTOnsI3hUsLr7fgVtx+DK04NPV01A68/FslI4t3s/ZWpvXJmgXhd7q6ICnag==", - "dependencies": { - "property-expr": "^2.0.5", - "tiny-case": "^1.0.3", - "toposort": "^2.0.2", - "type-fest": "^2.19.0" - } - }, - "node_modules/yup/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.9.tgz", - "integrity": "sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ==", - "dev": true - }, - "@babel/core": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", - "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", - "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helpers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", - "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/template": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", - "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/parser": "^7.21.9", - "@babel/types": "^7.21.5" - } - }, - "@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", - "dev": true, - "requires": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", - "dev": true, - "requires": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0" - } - }, - "@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", - "dev": true, - "requires": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" - } - }, - "@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", - "dev": true, - "requires": { - "jest-get-type": "^29.4.3" - } - }, - "@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" - } - }, - "@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" - } - }, - "@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - } - } - }, - "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.25.16" - } - }, - "@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.15", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "dependencies": { - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - } - } - }, - "@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", - "dev": true, - "requires": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", - "dev": true, - "requires": { - "@jest/test-result": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "dependencies": { - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - } - } - }, - "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true - }, - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", - "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" - }, - "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz", - "integrity": "sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", - "dev": true, - "requires": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "@types/node": { - "version": "20.2.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.3.tgz", - "integrity": "sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==" - }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", - "dev": true, - "requires": { - "@jest/transform": "^29.5.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001489", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz", - "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.404", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.404.tgz", - "integrity": "sha512-te57sWvQdpxmyd1GiswaodKdXdPgn9cN4ht8JlNa04QgtrfnUdWEo1261rY2vaC6TKaiHn0E7QerJWPKFCvMVw==", - "dev": true - }, - "emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", - "dev": true, - "requires": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", - "dev": true, - "requires": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", - "import-local": "^3.0.2", - "jest-cli": "^29.5.0" - } - }, - "jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", - "dev": true, - "requires": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - } - }, - "jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - }, - "jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - } - }, - "jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" - } - }, - "jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" - } - }, - "jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", - "dev": true - }, - "jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", - "dev": true, - "requires": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - } - }, - "jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - } - }, - "jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-util": "^29.5.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", - "dev": true - }, - "jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", - "dev": true, - "requires": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" - } - }, - "jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", - "dev": true, - "requires": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", - "dev": true, - "requires": { - "@jest/types": "^29.5.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "leven": "^3.1.0", - "pretty-format": "^29.5.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", - "dev": true, - "requires": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.5.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.5.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", - "requires": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.11.tgz", - "integrity": "sha512-+M0PwXeU80kRohZ3aT4J/OnR+l9/KD2nVLNNoRgFtnf+umQVFdGBAO2N8+nCnEi0xlh/Wk3zOGC+vNNx+uM79Q==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" - }, - "pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", - "dev": true - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "tiny-case": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, - "ts-jest": { - "version": "29.1.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", - "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "peer": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "dependencies": { - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - } - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "yup": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.1.1.tgz", - "integrity": "sha512-KfCGHdAErqFZWA5tZf7upSUnGKuTOnsI3hUsLr7fgVtx+DK04NPV01A68/FslI4t3s/ZWpvXJmgXhd7q6ICnag==", - "requires": { - "property-expr": "^2.0.5", - "tiny-case": "^1.0.3", - "toposort": "^2.0.2", - "type-fest": "^2.19.0" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" - } - } - } - } -} diff --git a/tableWithNestedSchemaGenerator/package.json b/tableWithNestedSchemaGenerator/package.json deleted file mode 100644 index 6225326b0..000000000 --- a/tableWithNestedSchemaGenerator/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "openapi-nested-object-table", - "version": "1.0.0", - "description": "", - "main": "index.ts", - "scripts": { - "start": "ts-node ./index.ts ", - "test": "jest", - "updateSnapshot": "jest --updateSnapshot" - }, - "author": "", - "license": "ISC", - "dependencies": { - "markdown-it": "^13.0.1", - "ts-node": "^10.9.1", - "yup": "^1.1.1" - }, - "devDependencies": { - "@types/jest": "^29.5.1", - "jest": "^29.5.0", - "ts-jest": "^29.1.0" - } -} diff --git a/tableWithNestedSchemaGenerator/schemaToMarkdownTable.ts b/tableWithNestedSchemaGenerator/schemaToMarkdownTable.ts deleted file mode 100644 index 94fd16258..000000000 --- a/tableWithNestedSchemaGenerator/schemaToMarkdownTable.ts +++ /dev/null @@ -1,380 +0,0 @@ -import { EOL } from "os"; -import * as yup from "yup"; -import * as MarkdownIt from "markdown-it"; - -yup.addMethod( - yup.MixedSchema, - "oneOfSchemas", - function (schemas: yup.AnySchema[]) { - return this.test( - "one-of-schemas", - "Not all items in '${path}' match one of the allowed schemas", - (item) => - schemas.some((schema) => schema.isValidSync(item, { strict: true })) - ); - } -); - -const nodeWithTitleAndPropertiesSchema = yup.object({ - title: yup.string().optional(), - type: yup.string().oneOf(["object"]), - properties: yup.object({}), -}); - -const oneOfSchema = yup - .array() - .of( - yup.object({ - $ref: yup.string().required(), - }) - ) - .optional(); - -const itemsSchema = yup - .mixed() - .oneOfSchemas([ - nodeWithTitleAndPropertiesSchema, - yup.object({ $ref: yup.string().optional() }), - ]) - .optional(); - -const anyOfSchema = yup - .array() - .of( - yup - .mixed() - .oneOfSchemas([ - nodeWithTitleAndPropertiesSchema, - yup.object({ $ref: yup.string().required() }), - ]) - ) - .optional(); - -const propertySchema = yup.object({ - type: yup.mixed().oneOfSchemas([yup.string(), yup.array().of(yup.string())]), - description: yup.string().optional(), - enum: yup - .array() - .of( - yup - .mixed() - .oneOfSchemas([ - yup.string(), - yup.array().of(yup.number()), - yup.array().of(yup.string()), - ]) - ) - .optional(), - oneOf: oneOfSchema, - anyOf: anyOfSchema, - items: itemsSchema, -}); - -interface Items extends yup.InferType {} -interface AnyOf extends yup.InferType {} -interface OneOf extends yup.InferType {} - -export type Properties = Record< - string, - { description?: string; example?: string; type?: string } ->; - -const md = new MarkdownIt({ breaks: true, html: true }); -const renderMarkdown = (markdown) => - md.render(`${markdown}`).replace(/\n|\r/g, ""); - -export enum RenderMode { - Nested, - List, -} -export enum ExamplesRenderedAs { - Column, - PartOfDescription, -} - -export default class SchemaToMarkdownTable { - constructor( - private schemas: object, - private redenderMode: RenderMode = RenderMode.List, - private examplesRenderedAs = ExamplesRenderedAs.Column - ) { - if (!schemas) { - throw new Error("Schemas must be provided"); - } - if (typeof schemas !== "object") { - throw new Error( - "Schemas must be the object from openAPI file components.schemas attribute" - ); - } - } - - private getMarkdownTableHead() { - if (ExamplesRenderedAs.Column) { - return [ - "| Attributes | Description | Example |", - "|:-----|:--------|------:|", - ].join(EOL); - } - return ["| Attributes | Description |", "|:-----|:--------|"].join(EOL); - } - - private getMarkdownTableRow(columns: string[]) { - return `| ${columns.join(" | ")} |`; - } - - private getMarkdownLinkToHeader(label: string) { - return `[${label}](#${label - .toLocaleLowerCase() - .replace(/[\s]/g, "-") - .replace(/[,]/g, "")})`; - } - - private renderOneOfDescription(oneOf: OneOf, level: number) { - const descriptionArr = []; - const relatedObjectsNames = []; - descriptionArr.push(`One of:`); - const nestedObjectsHtml = oneOf - .map((item) => { - const nestedObjectName = item["$ref"].replace( - "#/components/schemas/", - "" - ); - if (typeof this.schemas[nestedObjectName] !== "object") { - return false; - } - - relatedObjectsNames.push(nestedObjectName); - const title = (this.schemas[nestedObjectName].title || - nestedObjectName) as string; - if (this.redenderMode === RenderMode.List) { - return `Reference to ${this.getMarkdownLinkToHeader(title)}`; - } else { - const { html } = this.renderSchema(nestedObjectName, level + 1); - return renderMarkdown(html); - } - }) - .filter((i) => !!i); - descriptionArr.push(...nestedObjectsHtml); - - return { descriptionArr, relatedObjectsNames }; - } - - private renderAnyOfDescription(anyOf: AnyOf, level: number) { - const descriptionArr = []; - const relatedObjectsNames = []; - descriptionArr.push(`Any of:`); - const nestedObjectsHtml = anyOf - .map((item) => { - if ( - "$ref" in item && - typeof item["$ref"] === "string" && - item["$ref"].startsWith("#/components/schemas/") - ) { - const nestedObjectName = item["$ref"].replace( - "#/components/schemas/", - "" - ); - if (typeof this.schemas[nestedObjectName] !== "object") { - return false; - } - console.log(`rendering node ${nestedObjectName}`); - relatedObjectsNames.push(nestedObjectName); - const title = (this.schemas[nestedObjectName].title || - nestedObjectName) as string; - if (this.redenderMode === RenderMode.List) { - return `Reference to ${this.getMarkdownLinkToHeader(title)}`; - } else { - const { html } = this.renderSchema(nestedObjectName, level + 1); - return renderMarkdown(html); - } - } else if ("properties" in item) { - const { html, relatedObjects } = this.renderSchema(item, level + 1); - relatedObjectsNames.push(...relatedObjects); - return renderMarkdown(html); - } - }) - .filter((i) => !!i); - descriptionArr.push(...nestedObjectsHtml); - return { descriptionArr, relatedObjectsNames }; - } - - private renderItemsDescription(items: Items, level: number) { - const descriptionArr = []; - const relatedObjectsNames = []; - if ( - "$ref" in items && - typeof items["$ref"] === "string" && - items["$ref"].startsWith("#/components/schemas/") - ) { - const nestedObjectName = items["$ref"].replace( - "#/components/schemas/", - "" - ); - relatedObjectsNames.push(nestedObjectName); - const title = (this.schemas[nestedObjectName].title || - nestedObjectName) as string; - if (this.redenderMode === RenderMode.List) { - return `Reference to ${this.getMarkdownLinkToHeader(title)}`; - } else { - const { html } = this.renderSchema(nestedObjectName, level + 1); - return renderMarkdown(html); - } - //@ts-ignore - } else if ("type" in items && items.type === "object") { - descriptionArr.push("Array of:"); - const { html, relatedObjects } = this.renderSchema(items, level + 1); - relatedObjectsNames.push(...relatedObjects); - descriptionArr.push(renderMarkdown(html)); - } - return { descriptionArr, relatedObjectsNames }; - } - - private renderPropertiesAsTableRow = ( - properties: Properties, - level: number = 0 - ) => { - const relatedObjectsNames: string[] = []; - - const tableRows = Object.entries(properties).map( - ([propertyId, property]) => { - console.log(`rendering propertyId: ${propertyId} for level ${level}`); - - const { - description, - enum: EnumProp, - oneOf, - anyOf, - items, - type, - } = propertySchema.validateSync(property); - - const descriptionArr = []; - if (description) { - descriptionArr.push(renderMarkdown(description)); - } - - if (EnumProp) { - descriptionArr.push( - `Available values: ${EnumProp.map((value) => `\`${value}\``).join( - ", " - )}` - ); - } - - if (oneOf) { - const { - descriptionArr: descriptionArrOneOf, - relatedObjectsNames: relatedObjectsNamesOneOff, - } = this.renderOneOfDescription(oneOf, level); - descriptionArr.push(...descriptionArrOneOf); - relatedObjectsNames.push(...relatedObjectsNamesOneOff); - } - - if (anyOf) { - const { - descriptionArr: descriptionArrAnyOf, - relatedObjectsNames: relatedObjectsNamesAnyOff, - } = this.renderAnyOfDescription(anyOf, level); - descriptionArr.push(...descriptionArrAnyOf); - relatedObjectsNames.push(...relatedObjectsNamesAnyOff); - } - - if (items) { - const { - descriptionArr: descriptionArrItems, - relatedObjectsNames: relatedObjectsNamesItems, - } = this.renderItemsDescription(items, level); - descriptionArr.push(...descriptionArrItems); - relatedObjectsNames.push(...relatedObjectsNamesItems); - } - - if (type === "object") { - const { html, relatedObjects } = this.renderSchema( - property, - level + 1 - ); - relatedObjectsNames.push(...relatedObjects); - descriptionArr.push(renderMarkdown(html)); - } - - const example = - "example" in property ? renderMarkdown(property.example) : ""; - - if (this.examplesRenderedAs == ExamplesRenderedAs.Column) { - return this.getMarkdownTableRow([ - propertyId, - descriptionArr.join(" "), - example, - ]); - } else { - if (example) { - descriptionArr.push("**Example:**"); - descriptionArr.push(example); - } - return this.getMarkdownTableRow([ - propertyId, - descriptionArr.join(" "), - ]); - } - } - ); - - return { - html: [this.getMarkdownTableHead(), ...tableRows].join(EOL), - relatedObjectsNames, - }; - }; - - private renderSchema( - schemaNameOrSchemaObject: string | object, - level: number = 0 - ) { - const schema = - typeof schemaNameOrSchemaObject === "object" - ? schemaNameOrSchemaObject - : this.schemas[schemaNameOrSchemaObject]; - if (!schema) { - throw new Error(`Schema "${schema}" not found`); - } - const { properties, title } = - nodeWithTitleAndPropertiesSchema.validateSync(schema); - const respopnseStrArr = []; - - if (title) { - respopnseStrArr.push(`${"#".repeat(level + 1)} ${title}`); - } - const relatedObjects: string[] = []; - - if (properties) { - const { html, relatedObjectsNames } = this.renderPropertiesAsTableRow( - properties, - level - ); - relatedObjects.push(...relatedObjectsNames); - respopnseStrArr.push(html); - } - - return { html: respopnseStrArr.join(EOL), relatedObjects }; - } - - public render(schemaName: string): string { - if (this.redenderMode === RenderMode.Nested) { - const { html } = this.renderSchema(schemaName); - return html; - } - - const schemasToRender = [schemaName]; - const response: string[] = []; - - while (schemasToRender.length) { - const { html, relatedObjects } = this.renderSchema( - schemasToRender.shift() - ); - response.push(html); - if (relatedObjects.length) { - schemasToRender.push(...relatedObjects); - } - } - return response.join(EOL); - } -} diff --git a/tableWithNestedSchemaGenerator/tsconfig.json b/tsconfig.json similarity index 68% rename from tableWithNestedSchemaGenerator/tsconfig.json rename to tsconfig.json index 7eb8935b2..8f59f43be 100644 --- a/tableWithNestedSchemaGenerator/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { "resolveJsonModule": true, + "esModuleInterop": true } } \ No newline at end of file