From 76340c0f585a33649fd43c887d33416834e4c122 Mon Sep 17 00:00:00 2001 From: shoom3301 Date: Wed, 29 May 2024 14:43:31 +0500 Subject: [PATCH] feat: upload notifications csv --- config/plugins.ts | 6 + package.json | 1 + .../1.0.0/full_documentation.json | 2 +- src/gen/types.ts | 7425 +++++++++++++---- src/plugins/import-notifications/README.md | 3 + .../src/components/Initializer/index.tsx | 24 + .../admin/src/components/PluginIcon/index.tsx | 12 + .../import-notifications/admin/src/index.tsx | 67 + .../admin/src/pages/App/index.tsx | 28 + .../admin/src/pages/HomePage/index.tsx | 114 + .../admin/src/pluginId.ts | 5 + .../admin/src/translations/en.json | 1 + .../admin/src/translations/fr.json | 1 + .../admin/src/utils/getTrad.ts | 5 + src/plugins/import-notifications/custom.d.ts | 5 + src/plugins/import-notifications/package.json | 52 + .../import-notifications/server/bootstrap.ts | 5 + .../server/config/index.ts | 4 + .../server/content-types/index.ts | 1 + .../server/controllers/index.ts | 5 + .../server/controllers/my-controller.ts | 73 + .../server/controllers/parseNotification.ts | 35 + .../controllers/parseNotificationsFile.ts | 19 + .../controllers/validateNotifications.ts | 17 + .../import-notifications/server/destroy.ts | 5 + .../import-notifications/server/index.ts | 23 + .../server/middlewares/index.ts | 1 + .../server/policies/index.ts | 1 + .../import-notifications/server/register.ts | 5 + .../server/routes/index.ts | 18 + .../server/services/index.ts | 5 + .../server/services/my-service.ts | 7 + .../import-notifications/strapi-admin.js | 3 + .../import-notifications/strapi-server.js | 3 + .../import-notifications/tsconfig.json | 20 + .../import-notifications/tsconfig.server.json | 25 + src/plugins/import-notifications/yarn.lock | 2155 +++++ 37 files changed, 8641 insertions(+), 1540 deletions(-) create mode 100644 config/plugins.ts create mode 100644 src/plugins/import-notifications/README.md create mode 100644 src/plugins/import-notifications/admin/src/components/Initializer/index.tsx create mode 100644 src/plugins/import-notifications/admin/src/components/PluginIcon/index.tsx create mode 100644 src/plugins/import-notifications/admin/src/index.tsx create mode 100644 src/plugins/import-notifications/admin/src/pages/App/index.tsx create mode 100644 src/plugins/import-notifications/admin/src/pages/HomePage/index.tsx create mode 100644 src/plugins/import-notifications/admin/src/pluginId.ts create mode 100644 src/plugins/import-notifications/admin/src/translations/en.json create mode 100644 src/plugins/import-notifications/admin/src/translations/fr.json create mode 100644 src/plugins/import-notifications/admin/src/utils/getTrad.ts create mode 100644 src/plugins/import-notifications/custom.d.ts create mode 100644 src/plugins/import-notifications/package.json create mode 100644 src/plugins/import-notifications/server/bootstrap.ts create mode 100644 src/plugins/import-notifications/server/config/index.ts create mode 100644 src/plugins/import-notifications/server/content-types/index.ts create mode 100644 src/plugins/import-notifications/server/controllers/index.ts create mode 100644 src/plugins/import-notifications/server/controllers/my-controller.ts create mode 100644 src/plugins/import-notifications/server/controllers/parseNotification.ts create mode 100644 src/plugins/import-notifications/server/controllers/parseNotificationsFile.ts create mode 100644 src/plugins/import-notifications/server/controllers/validateNotifications.ts create mode 100644 src/plugins/import-notifications/server/destroy.ts create mode 100644 src/plugins/import-notifications/server/index.ts create mode 100644 src/plugins/import-notifications/server/middlewares/index.ts create mode 100644 src/plugins/import-notifications/server/policies/index.ts create mode 100644 src/plugins/import-notifications/server/register.ts create mode 100644 src/plugins/import-notifications/server/routes/index.ts create mode 100644 src/plugins/import-notifications/server/services/index.ts create mode 100644 src/plugins/import-notifications/server/services/my-service.ts create mode 100644 src/plugins/import-notifications/strapi-admin.js create mode 100644 src/plugins/import-notifications/strapi-server.js create mode 100644 src/plugins/import-notifications/tsconfig.json create mode 100644 src/plugins/import-notifications/tsconfig.server.json create mode 100644 src/plugins/import-notifications/yarn.lock diff --git a/config/plugins.ts b/config/plugins.ts new file mode 100644 index 0000000..a3d8c97 --- /dev/null +++ b/config/plugins.ts @@ -0,0 +1,6 @@ +module.exports = () => ({ + 'import-notifications': { + enabled: true, + resolve: './src/plugins/import-notifications', + }, +}); diff --git a/package.json b/package.json index a1a558a..8a12808 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "dev": "strapi develop", "start": "strapi start", "build": "npm run build:strapi && npm run build:lib", + "prebuild:strapi": "cd src/plugins/import-notifications && yarn install && yarn run build && cd ../../..", "build:strapi": "strapi build", "build:lib": "npm run clean:clean && npm run gen:types && npm run compile:lib", "clean:clean": "rimraf lib/dist", diff --git a/src/extensions/documentation/documentation/1.0.0/full_documentation.json b/src/extensions/documentation/documentation/1.0.0/full_documentation.json index 7291a5c..4204bea 100644 --- a/src/extensions/documentation/documentation/1.0.0/full_documentation.json +++ b/src/extensions/documentation/documentation/1.0.0/full_documentation.json @@ -14,7 +14,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, - "x-generation-date": "2024-05-15T10:34:01.347Z" + "x-generation-date": "2024-05-29T09:43:12.037Z" }, "x-strapi-config": { "path": "/documentation", diff --git a/src/gen/types.ts b/src/gen/types.ts index 7a8f133..646d23b 100644 --- a/src/gen/types.ts +++ b/src/gen/types.ts @@ -32,6 +32,24 @@ export interface paths { put: operations["put/categories/{id}"]; delete: operations["delete/categories/{id}"]; }; + "/faq-categories": { + get: operations["get/faq-categories"]; + post: operations["post/faq-categories"]; + }; + "/faq-categories/{id}": { + get: operations["get/faq-categories/{id}"]; + put: operations["put/faq-categories/{id}"]; + delete: operations["delete/faq-categories/{id}"]; + }; + "/faq-questions": { + get: operations["get/faq-questions"]; + post: operations["post/faq-questions"]; + }; + "/faq-questions/{id}": { + get: operations["get/faq-questions/{id}"]; + put: operations["put/faq-questions/{id}"]; + delete: operations["delete/faq-questions/{id}"]; + }; "/global": { get: operations["get/global"]; put: operations["put/global"]; @@ -49,6 +67,35 @@ export interface paths { put: operations["put/lead-form-submissions/{id}"]; delete: operations["delete/lead-form-submissions/{id}"]; }; + "/notifications": { + get: operations["get/notifications"]; + post: operations["post/notifications"]; + }; + "/notifications/{id}": { + get: operations["get/notifications/{id}"]; + put: operations["put/notifications/{id}"]; + delete: operations["delete/notifications/{id}"]; + }; + "/notification-list/{account}": { + get: operations["get/notification-list/{account}"]; + }; + "/push-notifications": { + get: operations["get/push-notifications"]; + }; + "/notification-templates": { + get: operations["get/notification-templates"]; + post: operations["post/notification-templates"]; + }; + "/notification-templates/{id}": { + get: operations["get/notification-templates/{id}"]; + put: operations["put/notification-templates/{id}"]; + delete: operations["delete/notification-templates/{id}"]; + }; + "/notifications-consumer": { + get: operations["get/notifications-consumer"]; + put: operations["put/notifications-consumer"]; + delete: operations["delete/notifications-consumer"]; + }; "/pages": { get: operations["get/pages"]; post: operations["post/pages"]; @@ -70,6 +117,24 @@ export interface paths { put: operations["put/product-features/{id}"]; delete: operations["delete/product-features/{id}"]; }; + "/tags": { + get: operations["get/tags"]; + post: operations["post/tags"]; + }; + "/tags/{id}": { + get: operations["get/tags/{id}"]; + put: operations["put/tags/{id}"]; + delete: operations["delete/tags/{id}"]; + }; + "/telegram-subscriptions": { + get: operations["get/telegram-subscriptions"]; + post: operations["post/telegram-subscriptions"]; + }; + "/telegram-subscriptions/{id}": { + get: operations["get/telegram-subscriptions/{id}"]; + put: operations["put/telegram-subscriptions/{id}"]; + delete: operations["delete/telegram-subscriptions/{id}"]; + }; "/upload": { /** @description Upload files */ post: { @@ -806,6 +871,7 @@ export interface components { /** @example string or id */ authorsBio?: number | string; seo?: components["schemas"]["SharedSeoComponent"]; + tags?: (number | string)[]; }; }; ArticleListResponseDataItem: { @@ -1385,6 +1451,36 @@ export interface components { }; }; }; + tags?: { + data?: { + id?: number; + attributes?: { + name?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -1406,6 +1502,59 @@ export interface components { }; })[]; }; + backgroundColor?: string; + image?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + textColor?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -1433,6 +1582,12 @@ export interface components { }; }; seo?: components["schemas"]["SharedSeoComponent"]; + tags?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -1967,6 +2122,59 @@ export interface components { attributes?: Record; }[]; }; + backgroundColor?: string; + image?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + textColor?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -2247,6 +2455,36 @@ export interface components { }; }; }; + tags?: { + data?: { + id?: number; + attributes?: { + name?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -2295,10 +2533,14 @@ export interface components { }; CategoryRequest: { data: { - name?: string; - slug?: string; - description?: string; + name: string; + slug: string; + description: string; articles?: (number | string)[]; + backgroundColor?: string; + /** @example string or id */ + image?: number | string; + textColor?: string; }; }; CategoryListResponseDataItem: { @@ -2317,9 +2559,9 @@ export interface components { }; }; Category: { - name?: string; - slug?: string; - description?: string; + name: string; + slug: string; + description: string; articles?: { data?: ({ id?: number; @@ -2566,6 +2808,59 @@ export interface components { attributes?: Record; }[]; }; + backgroundColor?: string; + image?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + textColor?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -2846,27 +3141,110 @@ export interface components { }; }; }; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - /** Format: date-time */ - publishedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { + tags?: { data?: { - id?: number; - attributes?: Record; - }; - }; - }; - })[]; + id?: number; + attributes?: { + name?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + })[]; + }; + backgroundColor?: string; + image?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; }; + textColor?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -2892,55 +3270,20 @@ export interface components { data?: components["schemas"]["CategoryResponseDataObject"]; meta?: Record; }; - GlobalLocalizationRequest: { - metadata?: components["schemas"]["MetaMetadataComponent"]; - /** @example string or id */ - favicon: number | string; - notificationBanner?: components["schemas"]["ElementsNotificationBannerComponent"]; - navbar?: components["schemas"]["LayoutNavbarComponent"]; - footer?: components["schemas"]["LayoutFooterComponent"]; - locale: string; - }; - GlobalRequest: { + FaqCategoryRequest: { data: { - metadata?: components["schemas"]["MetaMetadataComponent"]; + name: string; + description: string; /** @example string or id */ - favicon: number | string; - notificationBanner?: components["schemas"]["ElementsNotificationBannerComponent"]; - navbar?: components["schemas"]["LayoutNavbarComponent"]; - footer?: components["schemas"]["LayoutFooterComponent"]; - locale?: string; - }; - }; - GlobalResponseDataObjectLocalized: { - id?: number; - attributes?: components["schemas"]["Global"]; - }; - GlobalLocalizationResponse: { - data?: components["schemas"]["GlobalResponseDataObjectLocalized"]; - meta?: Record; - }; - GlobalListResponseDataItemLocalized: { - id?: number; - attributes?: components["schemas"]["Global"]; - }; - GlobalLocalizationListResponse: { - data?: components["schemas"]["GlobalListResponseDataItemLocalized"][]; - meta?: { - pagination?: { - page?: number; - pageSize?: number; - pageCount?: number; - total?: number; - }; + image?: number | string; }; }; - GlobalListResponseDataItem: { + FaqCategoryListResponseDataItem: { id?: number; - attributes?: components["schemas"]["Global"]; + attributes?: components["schemas"]["FaqCategory"]; }; - GlobalListResponse: { - data?: components["schemas"]["GlobalListResponseDataItem"][]; + FaqCategoryListResponse: { + data?: components["schemas"]["FaqCategoryListResponseDataItem"][]; meta?: { pagination?: { page?: number; @@ -2950,9 +3293,10 @@ export interface components { }; }; }; - Global: { - metadata?: components["schemas"]["MetaMetadataComponent"]; - favicon: { + FaqCategory: { + name: string; + description: string; + image?: { data?: { id?: number; attributes?: { @@ -3178,13 +3522,12 @@ export interface components { }; }; }; - notificationBanner?: components["schemas"]["ElementsNotificationBannerComponent"]; - navbar?: components["schemas"]["LayoutNavbarComponent"]; - footer?: components["schemas"]["LayoutFooterComponent"]; /** Format: date-time */ createdAt?: string; /** Format: date-time */ updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; createdBy?: { data?: { id?: number; @@ -3197,263 +3540,94 @@ export interface components { attributes?: Record; }; }; - localizations?: { - data?: components["schemas"]["Global"][]; - }; - locale?: string; }; - GlobalResponseDataObject: { + FaqCategoryResponseDataObject: { id?: number; - attributes?: components["schemas"]["Global"]; + attributes?: components["schemas"]["FaqCategory"]; }; - GlobalResponse: { - data?: components["schemas"]["GlobalResponseDataObject"]; + FaqCategoryResponse: { + data?: components["schemas"]["FaqCategoryResponseDataObject"]; meta?: Record; }; - MetaMetadataComponent: { - id?: number; - metaTitle?: string; - metaDescription?: string; - }; - ElementsNotificationBannerComponent: { - id?: number; - /** @enum {string} */ - type?: "alert" | "info" | "warning"; - heading?: string; - text?: string; - show?: boolean; - link?: { - id?: number; - url?: string; - newTab?: boolean; - text?: string; + FaqQuestionRequest: { + data: { + slug?: string; + Question?: string; + Answer?: string; + /** @example string or id */ + faq_category?: number | string; }; }; - LayoutNavbarComponent: { + FaqQuestionListResponseDataItem: { id?: number; - links?: { - id?: number; - url?: string; - newTab?: boolean; - text?: string; - }[]; - button?: { - id?: number; - url?: string; - newTab?: boolean; - text?: string; - /** @enum {string} */ - type?: "primary" | "secondary"; - }; - navbarLogo?: { - id?: number; - logoImg?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }; + attributes?: components["schemas"]["FaqQuestion"]; + }; + FaqQuestionListResponse: { + data?: components["schemas"]["FaqQuestionListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; }; - logoText?: string; }; }; - LayoutFooterComponent: { - id?: number; - footerLogo?: { - id?: number; - logoImg?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }; - }; - logoText?: string; - }; - menuLinks?: { - id?: number; - url?: string; - newTab?: boolean; - text?: string; - }[]; - legalLinks?: { - id?: number; - url?: string; - newTab?: boolean; - text?: string; - }[]; - socialLinks?: ({ + FaqQuestion: { + slug?: string; + Question?: string; + Answer?: string; + faq_category?: { + data?: { id?: number; - url?: string; - newTab?: boolean; - text?: string; - /** @enum {string} */ - social?: "YOUTUBE" | "TWITTER" | "DISCORD" | "WEBSITE"; - })[]; - categories?: { - data?: ({ - id?: number; - attributes?: { - name?: string; - slug?: string; - description?: string; - articles?: { - data?: ({ - id?: number; - attributes?: { - title?: string; - description?: string; - slug?: string; - cover?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }; - }; - categories?: { - data?: { + attributes?: { + name?: string; + description?: string; + image?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: { + name?: string; + pathId?: number; + parent?: { + data?: { id?: number; attributes?: Record; - }[]; - }; - blocks?: ({ - id?: number; - __component?: string; - file?: { - data?: { + }; + }; + children?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + files?: { + data?: { id?: number; attributes?: { name?: string; @@ -3491,7 +3665,99 @@ export interface components { createdBy?: { data?: { id?: number; - attributes?: Record; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; }; }; updatedBy?: { @@ -3501,382 +3767,79 @@ export interface components { }; }; }; - }; - }; - } | { - id?: number; - __component?: string; - title?: string; - body?: string; - author?: string; - } | { - id?: number; - __component?: string; - body?: string; - } | { - id?: number; - __component?: string; - files?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }[]; - }; - } | { - id?: number; - __component?: string; - url?: string; - })[]; - authorsBio?: { - data?: { - id?: number; - attributes?: { - name?: string; - avatar?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }; - }; - email?: string; - articles?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; + }[]; + }; + path?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; }; }; - }; - seo?: { - id?: number; - metaTitle?: string; - metaDescription?: string; - shareImage?: { + updatedBy?: { data?: { id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; + attributes?: Record; }; }; }; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - /** Format: date-time */ - publishedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; }; - })[]; - }; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; }; }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; }; }; - })[]; - }; - }; - LeadFormSubmissionRequest: { - data: { - email?: string; - /** @enum {string} */ - status?: "seen" | "contacted" | "ignored"; - }; - }; - LeadFormSubmissionListResponseDataItem: { - id?: number; - attributes?: components["schemas"]["LeadFormSubmission"]; - }; - LeadFormSubmissionListResponse: { - data?: components["schemas"]["LeadFormSubmissionListResponseDataItem"][]; - meta?: { - pagination?: { - page?: number; - pageSize?: number; - pageCount?: number; - total?: number; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; }; }; - }; - LeadFormSubmission: { - email?: string; - /** @enum {string} */ - status?: "seen" | "contacted" | "ignored"; /** Format: date-time */ createdAt?: string; /** Format: date-time */ updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; createdBy?: { data?: { id?: number; - attributes?: { - firstname?: string; - lastname?: string; - username?: string; - /** Format: email */ - email?: string; - resetPasswordToken?: string; - registrationToken?: string; - isActive?: boolean; - roles?: { - data?: { - id?: number; - attributes?: { - name?: string; - code?: string; - description?: string; - users?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - permissions?: { - data?: { - id?: number; - attributes?: { - action?: string; - subject?: string; - properties?: unknown; - conditions?: unknown; - role?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }[]; - }; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }[]; - }; - blocked?: boolean; - preferedLanguage?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; + attributes?: Record; }; }; updatedBy?: { @@ -3886,48 +3849,48 @@ export interface components { }; }; }; - LeadFormSubmissionResponseDataObject: { + FaqQuestionResponseDataObject: { id?: number; - attributes?: components["schemas"]["LeadFormSubmission"]; + attributes?: components["schemas"]["FaqQuestion"]; }; - LeadFormSubmissionResponse: { - data?: components["schemas"]["LeadFormSubmissionResponseDataObject"]; + FaqQuestionResponse: { + data?: components["schemas"]["FaqQuestionResponseDataObject"]; meta?: Record; }; - PageLocalizationRequest: { - shortName?: string; - metadata: components["schemas"]["MetaMetadataComponent"]; - contentSections?: (components["schemas"]["SectionsHeroComponent"] | components["schemas"]["SectionsBottomActionsComponent"] | components["schemas"]["SectionsFeatureColumnsGroupComponent"] | components["schemas"]["SectionsFeatureRowsGroupComponent"] | components["schemas"]["SectionsTestimonialsGroupComponent"] | components["schemas"]["SectionsLargeVideoComponent"] | components["schemas"]["SectionsRichTextComponent"] | components["schemas"]["SectionsPricingComponent"] | components["schemas"]["SectionsLeadFormComponent"] | components["schemas"]["SectionsFeaturesComponent"] | components["schemas"]["SectionsHeadingComponent"])[]; - slug?: string; - heading?: string; - description?: string; + GlobalLocalizationRequest: { + metadata?: components["schemas"]["MetaMetadataComponent"]; + /** @example string or id */ + favicon: number | string; + notificationBanner?: components["schemas"]["ElementsNotificationBannerComponent"]; + navbar?: components["schemas"]["LayoutNavbarComponent"]; + footer?: components["schemas"]["LayoutFooterComponent"]; locale: string; }; - PageRequest: { + GlobalRequest: { data: { - shortName?: string; - metadata: components["schemas"]["MetaMetadataComponent"]; - contentSections?: (components["schemas"]["SectionsHeroComponent"] | components["schemas"]["SectionsBottomActionsComponent"] | components["schemas"]["SectionsFeatureColumnsGroupComponent"] | components["schemas"]["SectionsFeatureRowsGroupComponent"] | components["schemas"]["SectionsTestimonialsGroupComponent"] | components["schemas"]["SectionsLargeVideoComponent"] | components["schemas"]["SectionsRichTextComponent"] | components["schemas"]["SectionsPricingComponent"] | components["schemas"]["SectionsLeadFormComponent"] | components["schemas"]["SectionsFeaturesComponent"] | components["schemas"]["SectionsHeadingComponent"])[]; - slug?: string; - heading?: string; - description?: string; + metadata?: components["schemas"]["MetaMetadataComponent"]; + /** @example string or id */ + favicon: number | string; + notificationBanner?: components["schemas"]["ElementsNotificationBannerComponent"]; + navbar?: components["schemas"]["LayoutNavbarComponent"]; + footer?: components["schemas"]["LayoutFooterComponent"]; locale?: string; }; }; - PageResponseDataObjectLocalized: { + GlobalResponseDataObjectLocalized: { id?: number; - attributes?: components["schemas"]["Page"]; + attributes?: components["schemas"]["Global"]; }; - PageLocalizationResponse: { - data?: components["schemas"]["PageResponseDataObjectLocalized"]; + GlobalLocalizationResponse: { + data?: components["schemas"]["GlobalResponseDataObjectLocalized"]; meta?: Record; }; - PageListResponseDataItemLocalized: { + GlobalListResponseDataItemLocalized: { id?: number; - attributes?: components["schemas"]["Page"]; + attributes?: components["schemas"]["Global"]; }; - PageLocalizationListResponse: { - data?: components["schemas"]["PageListResponseDataItemLocalized"][]; + GlobalLocalizationListResponse: { + data?: components["schemas"]["GlobalListResponseDataItemLocalized"][]; meta?: { pagination?: { page?: number; @@ -3937,12 +3900,12 @@ export interface components { }; }; }; - PageListResponseDataItem: { + GlobalListResponseDataItem: { id?: number; - attributes?: components["schemas"]["Page"]; + attributes?: components["schemas"]["Global"]; }; - PageListResponse: { - data?: components["schemas"]["PageListResponseDataItem"][]; + GlobalListResponse: { + data?: components["schemas"]["GlobalListResponseDataItem"][]; meta?: { pagination?: { page?: number; @@ -3952,58 +3915,9 @@ export interface components { }; }; }; - Page: { - shortName?: string; - metadata: components["schemas"]["MetaMetadataComponent"]; - contentSections?: (components["schemas"]["SectionsHeroComponent"] | components["schemas"]["SectionsBottomActionsComponent"] | components["schemas"]["SectionsFeatureColumnsGroupComponent"] | components["schemas"]["SectionsFeatureRowsGroupComponent"] | components["schemas"]["SectionsTestimonialsGroupComponent"] | components["schemas"]["SectionsLargeVideoComponent"] | components["schemas"]["SectionsRichTextComponent"] | components["schemas"]["SectionsPricingComponent"] | components["schemas"]["SectionsLeadFormComponent"] | components["schemas"]["SectionsFeaturesComponent"] | components["schemas"]["SectionsHeadingComponent"])[]; - slug?: string; - heading?: string; - description?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - /** Format: date-time */ - publishedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - localizations?: { - data?: components["schemas"]["Page"][]; - }; - locale?: string; - }; - PageResponseDataObject: { - id?: number; - attributes?: components["schemas"]["Page"]; - }; - PageResponse: { - data?: components["schemas"]["PageResponseDataObject"]; - meta?: Record; - }; - LinksButtonLinkComponent: { - id?: number; - url?: string; - newTab?: boolean; - text?: string; - /** @enum {string} */ - type?: "primary" | "secondary"; - }; - SectionsHeroComponent: { - id?: number; - __component?: string; - title?: string; - description?: string; - picture?: { + Global: { + metadata?: components["schemas"]["MetaMetadataComponent"]; + favicon: { data?: { id?: number; attributes?: { @@ -4229,131 +4143,50 @@ export interface components { }; }; }; - buttons?: components["schemas"]["LinksButtonLinkComponent"][]; + notificationBanner?: components["schemas"]["ElementsNotificationBannerComponent"]; + navbar?: components["schemas"]["LayoutNavbarComponent"]; + footer?: components["schemas"]["LayoutFooterComponent"]; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + localizations?: { + data?: components["schemas"]["Global"][]; + }; + locale?: string; }; - SectionsBottomActionsComponent: { + GlobalResponseDataObject: { id?: number; - __component?: string; - title?: string; - buttons?: components["schemas"]["LinksButtonLinkComponent"][]; - description?: string; + attributes?: components["schemas"]["Global"]; }; - ElementsFeatureColumnComponent: { + GlobalResponse: { + data?: components["schemas"]["GlobalResponseDataObject"]; + meta?: Record; + }; + MetaMetadataComponent: { id?: number; - title?: string; - description?: string; - icon?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }; - }; - }; - SectionsFeatureColumnsGroupComponent: { - id?: number; - __component?: string; - features?: components["schemas"]["ElementsFeatureColumnComponent"][]; + metaTitle?: string; + metaDescription?: string; }; - ElementsFeatureRowComponent: { + ElementsNotificationBannerComponent: { id?: number; - title?: string; - description?: string; - media?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; - }; - }; + /** @enum {string} */ + type?: "alert" | "info" | "warning"; + heading?: string; + text?: string; + show?: boolean; link?: { id?: number; url?: string; @@ -4361,206 +4194,118 @@ export interface components { text?: string; }; }; - SectionsFeatureRowsGroupComponent: { - id?: number; - __component?: string; - features?: components["schemas"]["ElementsFeatureRowComponent"][]; - }; - ElementsTestimonialComponent: { + LayoutNavbarComponent: { id?: number; - picture?: { - data?: { + links?: { id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { + url?: string; + newTab?: boolean; + text?: string; + }[]; + button?: { + id?: number; + url?: string; + newTab?: boolean; + text?: string; + /** @enum {string} */ + type?: "primary" | "secondary"; + }; + navbarLogo?: { + id?: number; + logoImg?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { id?: number; attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; + }; }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; }; }; }; }; + logoText?: string; }; - text?: string; - authorName?: string; - }; - SectionsTestimonialsGroupComponent: { - id?: number; - __component?: string; - title?: string; - description?: string; - testimonials?: components["schemas"]["ElementsTestimonialComponent"][]; }; - SectionsLargeVideoComponent: { + LayoutFooterComponent: { id?: number; - __component?: string; - title?: string; - description?: string; - video?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; + footerLogo?: { + id?: number; + logoImg?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; }; - }; - }; - }; - }; - poster?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { + folder?: { + data?: { id?: number; attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; + }; }; - }; - }; - }; - }; - }; - SectionsRichTextComponent: { - id?: number; - __component?: string; - content?: string; - }; - ElementsPlanComponent: { - id?: number; - name?: string; - description?: string; - isRecommended?: boolean; - /** Format: float */ - price?: number; - pricePeriod?: string; - product_features?: { - data?: { - id?: number; - attributes?: { - name?: string; + folderPath?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ updatedAt?: string; - /** Format: date-time */ - publishedAt?: string; createdBy?: { data?: { id?: number; @@ -4574,170 +4319,76 @@ export interface components { }; }; }; - }[]; - }; - }; - SectionsPricingComponent: { - id?: number; - __component?: string; - title?: string; - plans?: components["schemas"]["ElementsPlanComponent"][]; - }; - LinksButtonComponent: { - id?: number; - text?: string; - /** @enum {string} */ - type?: "primary" | "secondary"; - }; - SectionsLeadFormComponent: { - id?: number; - __component?: string; - title?: string; - emailPlaceholder?: string; - submitButton?: components["schemas"]["LinksButtonComponent"]; - location?: string; - description?: string; - }; - ElementsFeatureComponent: { - id?: number; - title?: string; - description?: string; - media?: { - data?: { - id?: number; - attributes?: { - name?: string; - alternativeText?: string; - caption?: string; - width?: number; - height?: number; - formats?: unknown; - hash?: string; - ext?: string; - mime?: string; - /** Format: float */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: unknown; - related?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - folder?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - folderPath?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; }; }; + logoText?: string; }; - showLink?: boolean; - newTab?: boolean; - url?: string; - text?: string; - }; - SectionsFeaturesComponent: { - id?: number; - __component?: string; - heading?: string; - description?: string; - feature?: components["schemas"]["ElementsFeatureComponent"][]; - }; - SectionsHeadingComponent: { - id?: number; - __component?: string; - heading?: string; - description?: string; - }; - ProductFeatureRequest: { - data: { - name: string; - }; - }; - ProductFeatureListResponseDataItem: { - id?: number; - attributes?: components["schemas"]["ProductFeature"]; - }; - ProductFeatureListResponse: { - data?: components["schemas"]["ProductFeatureListResponseDataItem"][]; - meta?: { - pagination?: { - page?: number; - pageSize?: number; - pageCount?: number; - total?: number; - }; - }; - }; - ProductFeature: { - name: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - /** Format: date-time */ - publishedAt?: string; - createdBy?: { - data?: { + menuLinks?: { id?: number; - attributes?: { - firstname?: string; - lastname?: string; - username?: string; - /** Format: email */ - email?: string; - resetPasswordToken?: string; - registrationToken?: string; - isActive?: boolean; - roles?: { - data?: { - id?: number; - attributes?: { - name?: string; - code?: string; - description?: string; - users?: { - data?: { - id?: number; - attributes?: Record; - }[]; - }; - permissions?: { - data?: { + url?: string; + newTab?: boolean; + text?: string; + }[]; + legalLinks?: { + id?: number; + url?: string; + newTab?: boolean; + text?: string; + }[]; + socialLinks?: ({ + id?: number; + url?: string; + newTab?: boolean; + text?: string; + /** @enum {string} */ + social?: "YOUTUBE" | "TWITTER" | "DISCORD" | "WEBSITE"; + })[]; + categories?: { + data?: ({ + id?: number; + attributes?: { + name?: string; + slug?: string; + description?: string; + articles?: { + data?: ({ + id?: number; + attributes?: { + title?: string; + description?: string; + slug?: string; + cover?: { + data?: { id?: number; attributes?: { - action?: string; - subject?: string; - properties?: unknown; - conditions?: unknown; - role?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { data?: { id?: number; attributes?: Record; }; }; + folderPath?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ @@ -4755,182 +4406,4838 @@ export interface components { }; }; }; - }[]; - }; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; + }; }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; + categories?: { + data?: { + id?: number; + attributes?: Record; + }[]; }; - }; - }; - }[]; - }; - blocked?: boolean; - preferedLanguage?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - createdBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; - }; - }; - }; + blocks?: ({ + id?: number; + __component?: string; + file?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + } | { + id?: number; + __component?: string; + title?: string; + body?: string; + author?: string; + } | { + id?: number; + __component?: string; + body?: string; + } | { + id?: number; + __component?: string; + files?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + } | { + id?: number; + __component?: string; + url?: string; + })[]; + authorsBio?: { + data?: { + id?: number; + attributes?: { + name?: string; + avatar?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + email?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + seo?: { + id?: number; + metaTitle?: string; + metaDescription?: string; + shareImage?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + }; + tags?: { + data?: { + id?: number; + attributes?: { + name?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + })[]; + }; + backgroundColor?: string; + image?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + textColor?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + })[]; + }; + }; + LeadFormSubmissionRequest: { + data: { + email?: string; + /** @enum {string} */ + status?: "seen" | "contacted" | "ignored"; + }; + }; + LeadFormSubmissionListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["LeadFormSubmission"]; + }; + LeadFormSubmissionListResponse: { + data?: components["schemas"]["LeadFormSubmissionListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + LeadFormSubmission: { + email?: string; + /** @enum {string} */ + status?: "seen" | "contacted" | "ignored"; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + LeadFormSubmissionResponseDataObject: { + id?: number; + attributes?: components["schemas"]["LeadFormSubmission"]; + }; + LeadFormSubmissionResponse: { + data?: components["schemas"]["LeadFormSubmissionResponseDataObject"]; + meta?: Record; + }; + NotificationRequest: { + data: { + account?: string; + data?: unknown; + /** @example string or id */ + notification_template?: number | string; + }; + }; + NotificationListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["Notification"]; + }; + NotificationListResponse: { + data?: components["schemas"]["NotificationListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + Notification: { + account?: string; + data?: unknown; + notification_template?: { + data?: { + id?: number; + attributes?: { + title?: string; + description?: string; + url?: string; + push?: boolean; + /** Format: date-time */ + dueDate?: string; + thumbnail?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: { + name?: string; + pathId?: number; + parent?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + children?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + files?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + path?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + NotificationResponseDataObject: { + id?: number; + attributes?: components["schemas"]["Notification"]; + }; + NotificationResponse: { + data?: components["schemas"]["NotificationResponseDataObject"]; + meta?: Record; + }; + NotificationTemplateRequest: { + data: { + title?: string; + description?: string; + url?: string; + push?: boolean; + /** Format: date-time */ + dueDate?: string; + /** @example string or id */ + thumbnail?: number | string; + }; + }; + NotificationTemplateListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["NotificationTemplate"]; + }; + NotificationTemplateListResponse: { + data?: components["schemas"]["NotificationTemplateListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + NotificationTemplate: { + title?: string; + description?: string; + url?: string; + push?: boolean; + /** Format: date-time */ + dueDate?: string; + thumbnail?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: { + name?: string; + pathId?: number; + parent?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + children?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + files?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + path?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + NotificationTemplateResponseDataObject: { + id?: number; + attributes?: components["schemas"]["NotificationTemplate"]; + }; + NotificationTemplateResponse: { + data?: components["schemas"]["NotificationTemplateResponseDataObject"]; + meta?: Record; + }; + NotificationsConsumerRequest: { + data: { + /** Format: date-time */ + lastConsumedNotificationDate?: string; + }; + }; + NotificationsConsumerListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["NotificationsConsumer"]; + }; + NotificationsConsumerListResponse: { + data?: components["schemas"]["NotificationsConsumerListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + NotificationsConsumer: { + /** Format: date-time */ + lastConsumedNotificationDate?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + NotificationsConsumerResponseDataObject: { + id?: number; + attributes?: components["schemas"]["NotificationsConsumer"]; + }; + NotificationsConsumerResponse: { + data?: components["schemas"]["NotificationsConsumerResponseDataObject"]; + meta?: Record; + }; + PageLocalizationRequest: { + shortName?: string; + metadata: components["schemas"]["MetaMetadataComponent"]; + contentSections?: (components["schemas"]["SectionsHeroComponent"] | components["schemas"]["SectionsBottomActionsComponent"] | components["schemas"]["SectionsFeatureColumnsGroupComponent"] | components["schemas"]["SectionsFeatureRowsGroupComponent"] | components["schemas"]["SectionsTestimonialsGroupComponent"] | components["schemas"]["SectionsLargeVideoComponent"] | components["schemas"]["SectionsRichTextComponent"] | components["schemas"]["SectionsPricingComponent"] | components["schemas"]["SectionsLeadFormComponent"] | components["schemas"]["SectionsFeaturesComponent"] | components["schemas"]["SectionsHeadingComponent"])[]; + slug?: string; + heading?: string; + description?: string; + locale: string; + }; + PageRequest: { + data: { + shortName?: string; + metadata: components["schemas"]["MetaMetadataComponent"]; + contentSections?: (components["schemas"]["SectionsHeroComponent"] | components["schemas"]["SectionsBottomActionsComponent"] | components["schemas"]["SectionsFeatureColumnsGroupComponent"] | components["schemas"]["SectionsFeatureRowsGroupComponent"] | components["schemas"]["SectionsTestimonialsGroupComponent"] | components["schemas"]["SectionsLargeVideoComponent"] | components["schemas"]["SectionsRichTextComponent"] | components["schemas"]["SectionsPricingComponent"] | components["schemas"]["SectionsLeadFormComponent"] | components["schemas"]["SectionsFeaturesComponent"] | components["schemas"]["SectionsHeadingComponent"])[]; + slug?: string; + heading?: string; + description?: string; + locale?: string; + }; + }; + PageResponseDataObjectLocalized: { + id?: number; + attributes?: components["schemas"]["Page"]; + }; + PageLocalizationResponse: { + data?: components["schemas"]["PageResponseDataObjectLocalized"]; + meta?: Record; + }; + PageListResponseDataItemLocalized: { + id?: number; + attributes?: components["schemas"]["Page"]; + }; + PageLocalizationListResponse: { + data?: components["schemas"]["PageListResponseDataItemLocalized"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + PageListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["Page"]; + }; + PageListResponse: { + data?: components["schemas"]["PageListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + Page: { + shortName?: string; + metadata: components["schemas"]["MetaMetadataComponent"]; + contentSections?: (components["schemas"]["SectionsHeroComponent"] | components["schemas"]["SectionsBottomActionsComponent"] | components["schemas"]["SectionsFeatureColumnsGroupComponent"] | components["schemas"]["SectionsFeatureRowsGroupComponent"] | components["schemas"]["SectionsTestimonialsGroupComponent"] | components["schemas"]["SectionsLargeVideoComponent"] | components["schemas"]["SectionsRichTextComponent"] | components["schemas"]["SectionsPricingComponent"] | components["schemas"]["SectionsLeadFormComponent"] | components["schemas"]["SectionsFeaturesComponent"] | components["schemas"]["SectionsHeadingComponent"])[]; + slug?: string; + heading?: string; + description?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + localizations?: { + data?: components["schemas"]["Page"][]; + }; + locale?: string; + }; + PageResponseDataObject: { + id?: number; + attributes?: components["schemas"]["Page"]; + }; + PageResponse: { + data?: components["schemas"]["PageResponseDataObject"]; + meta?: Record; + }; + LinksButtonLinkComponent: { + id?: number; + url?: string; + newTab?: boolean; + text?: string; + /** @enum {string} */ + type?: "primary" | "secondary"; + }; + SectionsHeroComponent: { + id?: number; + __component?: string; + title?: string; + description?: string; + picture?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: { + name?: string; + pathId?: number; + parent?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + children?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + files?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + path?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + buttons?: components["schemas"]["LinksButtonLinkComponent"][]; + }; + SectionsBottomActionsComponent: { + id?: number; + __component?: string; + title?: string; + buttons?: components["schemas"]["LinksButtonLinkComponent"][]; + description?: string; + }; + ElementsFeatureColumnComponent: { + id?: number; + title?: string; + description?: string; + icon?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + }; + SectionsFeatureColumnsGroupComponent: { + id?: number; + __component?: string; + features?: components["schemas"]["ElementsFeatureColumnComponent"][]; + }; + ElementsFeatureRowComponent: { + id?: number; + title?: string; + description?: string; + media?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + link?: { + id?: number; + url?: string; + newTab?: boolean; + text?: string; + }; + }; + SectionsFeatureRowsGroupComponent: { + id?: number; + __component?: string; + features?: components["schemas"]["ElementsFeatureRowComponent"][]; + }; + ElementsTestimonialComponent: { + id?: number; + picture?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + text?: string; + authorName?: string; + }; + SectionsTestimonialsGroupComponent: { + id?: number; + __component?: string; + title?: string; + description?: string; + testimonials?: components["schemas"]["ElementsTestimonialComponent"][]; + }; + SectionsLargeVideoComponent: { + id?: number; + __component?: string; + title?: string; + description?: string; + video?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + poster?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + }; + SectionsRichTextComponent: { + id?: number; + __component?: string; + content?: string; + }; + ElementsPlanComponent: { + id?: number; + name?: string; + description?: string; + isRecommended?: boolean; + /** Format: float */ + price?: number; + pricePeriod?: string; + product_features?: { + data?: { + id?: number; + attributes?: { + name?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + }; + SectionsPricingComponent: { + id?: number; + __component?: string; + title?: string; + plans?: components["schemas"]["ElementsPlanComponent"][]; + }; + LinksButtonComponent: { + id?: number; + text?: string; + /** @enum {string} */ + type?: "primary" | "secondary"; + }; + SectionsLeadFormComponent: { + id?: number; + __component?: string; + title?: string; + emailPlaceholder?: string; + submitButton?: components["schemas"]["LinksButtonComponent"]; + location?: string; + description?: string; + }; + ElementsFeatureComponent: { + id?: number; + title?: string; + description?: string; + media?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + showLink?: boolean; + newTab?: boolean; + url?: string; + text?: string; + }; + SectionsFeaturesComponent: { + id?: number; + __component?: string; + heading?: string; + description?: string; + feature?: components["schemas"]["ElementsFeatureComponent"][]; + }; + SectionsHeadingComponent: { + id?: number; + __component?: string; + heading?: string; + description?: string; + }; + ProductFeatureRequest: { + data: { + name: string; + }; + }; + ProductFeatureListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["ProductFeature"]; + }; + ProductFeatureListResponse: { + data?: components["schemas"]["ProductFeatureListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + ProductFeature: { + name: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + ProductFeatureResponseDataObject: { + id?: number; + attributes?: components["schemas"]["ProductFeature"]; + }; + ProductFeatureResponse: { + data?: components["schemas"]["ProductFeatureResponseDataObject"]; + meta?: Record; + }; + TagRequest: { + data: { + name: string; + articles?: (number | string)[]; + }; + }; + TagListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["Tag"]; + }; + TagListResponse: { + data?: components["schemas"]["TagListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + Tag: { + name: string; + articles?: { + data?: ({ + id?: number; + attributes?: { + title?: string; + description?: string; + slug?: string; + cover?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: { + name?: string; + pathId?: number; + parent?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + children?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + files?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + path?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + categories?: { + data?: { + id?: number; + attributes?: { + name?: string; + slug?: string; + description?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + backgroundColor?: string; + image?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + textColor?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocks?: ({ + id?: number; + __component?: string; + file?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + } | { + id?: number; + __component?: string; + title?: string; + body?: string; + author?: string; + } | { + id?: number; + __component?: string; + body?: string; + } | { + id?: number; + __component?: string; + files?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + } | { + id?: number; + __component?: string; + url?: string; + })[]; + authorsBio?: { + data?: { + id?: number; + attributes?: { + name?: string; + avatar?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + email?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + seo?: { + id?: number; + metaTitle?: string; + metaDescription?: string; + shareImage?: { + data?: { + id?: number; + attributes?: { + name?: string; + alternativeText?: string; + caption?: string; + width?: number; + height?: number; + formats?: unknown; + hash?: string; + ext?: string; + mime?: string; + /** Format: float */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: unknown; + related?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + folder?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + folderPath?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + }; + tags?: { + data?: { + id?: number; + attributes?: { + name?: string; + articles?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + })[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + TagResponseDataObject: { + id?: number; + attributes?: components["schemas"]["Tag"]; + }; + TagResponse: { + data?: components["schemas"]["TagResponseDataObject"]; + meta?: Record; + }; + TelegramSubscriptionRequest: { + data: { + account: string; + /** @example 123456789 */ + auth_date?: string; + first_name?: string; + hash?: string; + /** @example 123456789 */ + chat_id?: string; + photo_url?: string; + username?: string; + }; + }; + TelegramSubscriptionListResponseDataItem: { + id?: number; + attributes?: components["schemas"]["TelegramSubscription"]; + }; + TelegramSubscriptionListResponse: { + data?: components["schemas"]["TelegramSubscriptionListResponseDataItem"][]; + meta?: { + pagination?: { + page?: number; + pageSize?: number; + pageCount?: number; + total?: number; + }; + }; + }; + TelegramSubscription: { + account: string; + /** @example 123456789 */ + auth_date?: string; + first_name?: string; + hash?: string; + /** @example 123456789 */ + chat_id?: string; + photo_url?: string; + username?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + /** Format: date-time */ + publishedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: { + firstname?: string; + lastname?: string; + username?: string; + /** Format: email */ + email?: string; + resetPasswordToken?: string; + registrationToken?: string; + isActive?: boolean; + roles?: { + data?: { + id?: number; + attributes?: { + name?: string; + code?: string; + description?: string; + users?: { + data?: { + id?: number; + attributes?: Record; + }[]; + }; + permissions?: { + data?: { + id?: number; + attributes?: { + action?: string; + subject?: string; + properties?: unknown; + conditions?: unknown; + role?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }[]; + }; + blocked?: boolean; + preferedLanguage?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + createdBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + }; + }; + updatedBy?: { + data?: { + id?: number; + attributes?: Record; + }; + }; + }; + TelegramSubscriptionResponseDataObject: { + id?: number; + attributes?: components["schemas"]["TelegramSubscription"]; + }; + TelegramSubscriptionResponse: { + data?: components["schemas"]["TelegramSubscriptionResponseDataObject"]; + meta?: Record; + }; + UploadFile: { + id?: number; + name?: string; + alternativeText?: string; + caption?: string; + /** Format: integer */ + width?: number; + /** Format: integer */ + height?: number; + formats?: number; + hash?: string; + ext?: string; + mime?: string; + /** Format: double */ + size?: number; + url?: string; + previewUrl?: string; + provider?: string; + provider_metadata?: Record; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + "Users-Permissions-Role": { + id?: number; + name?: string; + description?: string; + type?: string; + /** Format: date-time */ + createdAt?: string; + /** Format: date-time */ + updatedAt?: string; + }; + "Users-Permissions-User": { + /** @example 1 */ + id?: number; + /** @example foo.bar */ + username?: string; + /** @example foo.bar@strapi.io */ + email?: string; + /** @example local */ + provider?: string; + /** @example true */ + confirmed?: boolean; + /** @example false */ + blocked?: boolean; + /** + * Format: date-time + * @example 2022-06-02T08:32:06.258Z + */ + createdAt?: string; + /** + * Format: date-time + * @example 2022-06-02T08:32:06.267Z + */ + updatedAt?: string; + }; + "Users-Permissions-UserRegistration": { + /** @example eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c */ + jwt?: string; + user?: components["schemas"]["Users-Permissions-User"]; + }; + "Users-Permissions-PermissionsTree": { + [key: string]: { + /** @description every controller of the api */ + controllers?: { + [key: string]: { + [key: string]: { + enabled?: boolean; + policy?: string; + }; + }; + }; + }; + }; + }; + responses: never; + parameters: never; + requestBodies: { + "Users-Permissions-RoleRequest": { + content: { + /** + * @example { + * "name": "foo", + * "description": "role foo", + * "permissions": { + * "api::content-type.content-type": { + * "controllers": { + * "controllerA": { + * "find": { + * "enabled": true + * } + * } + * } + * } + * } + * } + */ + "application/json": { + name?: string; + description?: string; + type?: string; + permissions?: components["schemas"]["Users-Permissions-PermissionsTree"]; + }; + }; + }; + }; + headers: never; + pathItems: never; +} + +export type $defs = Record; + +export type external = Record; + +export interface operations { + + "get/articles": { + parameters: { + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["ArticleListResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/articles": { + requestBody: { + content: { + "application/json": components["schemas"]["ArticleRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["ArticleResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/articles/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["ArticleResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "put/articles/{id}": { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ArticleRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["ArticleResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "delete/articles/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": number; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/authors": { + parameters: { + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["AuthorListResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/authors": { + requestBody: { + content: { + "application/json": components["schemas"]["AuthorRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["AuthorResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/authors/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["AuthorResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "put/authors/{id}": { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["AuthorRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["AuthorResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "delete/authors/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": number; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/categories": { + parameters: { + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["CategoryListResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/categories": { + requestBody: { + content: { + "application/json": components["schemas"]["CategoryRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["CategoryResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/categories/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["CategoryResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "put/categories/{id}": { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CategoryRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["CategoryResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "delete/categories/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": number; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/faq-categories": { + parameters: { + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqCategoryListResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/faq-categories": { + requestBody: { + content: { + "application/json": components["schemas"]["FaqCategoryRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqCategoryResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/faq-categories/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqCategoryResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "put/faq-categories/{id}": { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FaqCategoryRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqCategoryResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "delete/faq-categories/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": number; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/faq-questions": { + parameters: { + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqQuestionListResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/faq-questions": { + requestBody: { + content: { + "application/json": components["schemas"]["FaqQuestionRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqQuestionResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/faq-questions/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqQuestionResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "put/faq-questions/{id}": { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FaqQuestionRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["FaqQuestionResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "delete/faq-questions/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": number; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/global": { + parameters: { + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["GlobalResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "put/global": { + requestBody: { + content: { + "application/json": components["schemas"]["GlobalRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["GlobalResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "delete/global": { + responses: { + /** @description OK */ + 200: { + content: { + "application/json": number; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/global/localizations": { + requestBody: { + content: { + "application/json": components["schemas"]["GlobalLocalizationRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["GlobalLocalizationResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/lead-form-submissions": { + parameters: { + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["LeadFormSubmissionListResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/lead-form-submissions": { + requestBody: { + content: { + "application/json": components["schemas"]["LeadFormSubmissionRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["LeadFormSubmissionResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/lead-form-submissions/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["LeadFormSubmissionResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "put/lead-form-submissions/{id}": { + parameters: { + path: { + id: number; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["LeadFormSubmissionRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["LeadFormSubmissionResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; }; }; - updatedBy?: { - data?: { - id?: number; - attributes?: Record; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; }; }; - }; - ProductFeatureResponseDataObject: { - id?: number; - attributes?: components["schemas"]["ProductFeature"]; - }; - ProductFeatureResponse: { - data?: components["schemas"]["ProductFeatureResponseDataObject"]; - meta?: Record; - }; - UploadFile: { - id?: number; - name?: string; - alternativeText?: string; - caption?: string; - /** Format: integer */ - width?: number; - /** Format: integer */ - height?: number; - formats?: number; - hash?: string; - ext?: string; - mime?: string; - /** Format: double */ - size?: number; - url?: string; - previewUrl?: string; - provider?: string; - provider_metadata?: Record; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - }; - "Users-Permissions-Role": { - id?: number; - name?: string; - description?: string; - type?: string; - /** Format: date-time */ - createdAt?: string; - /** Format: date-time */ - updatedAt?: string; - }; - "Users-Permissions-User": { - /** @example 1 */ - id?: number; - /** @example foo.bar */ - username?: string; - /** @example foo.bar@strapi.io */ - email?: string; - /** @example local */ - provider?: string; - /** @example true */ - confirmed?: boolean; - /** @example false */ - blocked?: boolean; - /** - * Format: date-time - * @example 2022-06-02T08:32:06.258Z - */ - createdAt?: string; - /** - * Format: date-time - * @example 2022-06-02T08:32:06.267Z - */ - updatedAt?: string; - }; - "Users-Permissions-UserRegistration": { - /** @example eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c */ - jwt?: string; - user?: components["schemas"]["Users-Permissions-User"]; - }; - "Users-Permissions-PermissionsTree": { - [key: string]: { - /** @description every controller of the api */ - controllers?: { - [key: string]: { - [key: string]: { - enabled?: boolean; - policy?: string; - }; - }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; }; }; }; }; - responses: never; - parameters: never; - requestBodies: { - "Users-Permissions-RoleRequest": { - content: { - /** - * @example { - * "name": "foo", - * "description": "role foo", - * "permissions": { - * "api::content-type.content-type": { - * "controllers": { - * "controllerA": { - * "find": { - * "enabled": true - * } - * } - * } - * } - * } - * } - */ - "application/json": { - name?: string; - description?: string; - type?: string; - permissions?: components["schemas"]["Users-Permissions-PermissionsTree"]; + "delete/lead-form-submissions/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": number; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; }; }; }; }; - headers: never; - pathItems: never; -} - -export type $defs = Record; - -export type external = Record; - -export interface operations { - - "get/articles": { + "get/notifications": { parameters: { query?: { /** @description Sort by attributes ascending (asc) or descending (desc) */ @@ -4959,7 +9266,97 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ArticleListResponse"]; + "application/json": components["schemas"]["NotificationListResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "post/notifications": { + requestBody: { + content: { + "application/json": components["schemas"]["NotificationRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["NotificationResponse"]; + }; + }; + /** @description Bad Request */ + 400: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Unauthorized */ + 401: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Forbidden */ + 403: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Not Found */ + 404: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + /** @description Internal Server Error */ + 500: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; + }; + "get/notifications/{id}": { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json": components["schemas"]["NotificationResponse"]; }; }; /** @description Bad Request */ @@ -4994,17 +9391,22 @@ export interface operations { }; }; }; - "post/articles": { + "put/notifications/{id}": { + parameters: { + path: { + id: number; + }; + }; requestBody: { content: { - "application/json": components["schemas"]["ArticleRequest"]; + "application/json": components["schemas"]["NotificationRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ArticleResponse"]; + "application/json": components["schemas"]["NotificationResponse"]; }; }; /** @description Bad Request */ @@ -5039,7 +9441,7 @@ export interface operations { }; }; }; - "get/articles/{id}": { + "delete/notifications/{id}": { parameters: { path: { id: number; @@ -5049,7 +9451,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ArticleResponse"]; + "application/json": number; }; }; /** @description Bad Request */ @@ -5084,22 +9486,17 @@ export interface operations { }; }; }; - "put/articles/{id}": { + "get/notification-list/{account}": { parameters: { path: { - id: number; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["ArticleRequest"]; + account: number; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ArticleResponse"]; + "application/json": components["schemas"]["NotificationResponse"]; }; }; /** @description Bad Request */ @@ -5134,17 +9531,12 @@ export interface operations { }; }; }; - "delete/articles/{id}": { - parameters: { - path: { - id: number; - }; - }; + "get/push-notifications": { responses: { /** @description OK */ 200: { content: { - "application/json": number; + "application/json": components["schemas"]["NotificationResponse"]; }; }; /** @description Bad Request */ @@ -5179,7 +9571,7 @@ export interface operations { }; }; }; - "get/authors": { + "get/notification-templates": { parameters: { query?: { /** @description Sort by attributes ascending (asc) or descending (desc) */ @@ -5208,7 +9600,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["AuthorListResponse"]; + "application/json": components["schemas"]["NotificationTemplateListResponse"]; }; }; /** @description Bad Request */ @@ -5243,17 +9635,17 @@ export interface operations { }; }; }; - "post/authors": { + "post/notification-templates": { requestBody: { content: { - "application/json": components["schemas"]["AuthorRequest"]; + "application/json": components["schemas"]["NotificationTemplateRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["AuthorResponse"]; + "application/json": components["schemas"]["NotificationTemplateResponse"]; }; }; /** @description Bad Request */ @@ -5288,7 +9680,7 @@ export interface operations { }; }; }; - "get/authors/{id}": { + "get/notification-templates/{id}": { parameters: { path: { id: number; @@ -5298,7 +9690,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["AuthorResponse"]; + "application/json": components["schemas"]["NotificationTemplateResponse"]; }; }; /** @description Bad Request */ @@ -5333,7 +9725,7 @@ export interface operations { }; }; }; - "put/authors/{id}": { + "put/notification-templates/{id}": { parameters: { path: { id: number; @@ -5341,14 +9733,14 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["AuthorRequest"]; + "application/json": components["schemas"]["NotificationTemplateRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["AuthorResponse"]; + "application/json": components["schemas"]["NotificationTemplateResponse"]; }; }; /** @description Bad Request */ @@ -5383,7 +9775,7 @@ export interface operations { }; }; }; - "delete/authors/{id}": { + "delete/notification-templates/{id}": { parameters: { path: { id: number; @@ -5428,7 +9820,7 @@ export interface operations { }; }; }; - "get/categories": { + "get/notifications-consumer": { parameters: { query?: { /** @description Sort by attributes ascending (asc) or descending (desc) */ @@ -5457,7 +9849,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["CategoryListResponse"]; + "application/json": components["schemas"]["NotificationsConsumerResponse"]; }; }; /** @description Bad Request */ @@ -5492,17 +9884,17 @@ export interface operations { }; }; }; - "post/categories": { + "put/notifications-consumer": { requestBody: { content: { - "application/json": components["schemas"]["CategoryRequest"]; + "application/json": components["schemas"]["NotificationsConsumerRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["CategoryResponse"]; + "application/json": components["schemas"]["NotificationsConsumerResponse"]; }; }; /** @description Bad Request */ @@ -5537,17 +9929,12 @@ export interface operations { }; }; }; - "get/categories/{id}": { - parameters: { - path: { - id: number; - }; - }; + "delete/notifications-consumer": { responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["CategoryResponse"]; + "application/json": number; }; }; /** @description Bad Request */ @@ -5582,22 +9969,36 @@ export interface operations { }; }; }; - "put/categories/{id}": { + "get/pages": { parameters: { - path: { - id: number; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["CategoryRequest"]; + query?: { + /** @description Sort by attributes ascending (asc) or descending (desc) */ + sort?: string; + /** @description Return page/pageSize (default: true) */ + "pagination[withCount]"?: boolean; + /** @description Page number (default: 0) */ + "pagination[page]"?: number; + /** @description Page size (default: 25) */ + "pagination[pageSize]"?: number; + /** @description Offset value (default: 0) */ + "pagination[start]"?: number; + /** @description Number of entities to return (default: 25) */ + "pagination[limit]"?: number; + /** @description Fields to return (ex: title,author) */ + fields?: string; + /** @description Relations to return */ + populate?: string; + /** @description Filters to apply */ + filters?: Record; + /** @description Locale to apply */ + locale?: string; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["CategoryResponse"]; + "application/json": components["schemas"]["PageListResponse"]; }; }; /** @description Bad Request */ @@ -5632,17 +10033,17 @@ export interface operations { }; }; }; - "delete/categories/{id}": { - parameters: { - path: { - id: number; + "post/pages": { + requestBody: { + content: { + "application/json": components["schemas"]["PageRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": number; + "application/json": components["schemas"]["PageResponse"]; }; }; /** @description Bad Request */ @@ -5677,36 +10078,17 @@ export interface operations { }; }; }; - "get/global": { + "get/pages/{id}": { parameters: { - query?: { - /** @description Sort by attributes ascending (asc) or descending (desc) */ - sort?: string; - /** @description Return page/pageSize (default: true) */ - "pagination[withCount]"?: boolean; - /** @description Page number (default: 0) */ - "pagination[page]"?: number; - /** @description Page size (default: 25) */ - "pagination[pageSize]"?: number; - /** @description Offset value (default: 0) */ - "pagination[start]"?: number; - /** @description Number of entities to return (default: 25) */ - "pagination[limit]"?: number; - /** @description Fields to return (ex: title,author) */ - fields?: string; - /** @description Relations to return */ - populate?: string; - /** @description Filters to apply */ - filters?: Record; - /** @description Locale to apply */ - locale?: string; + path: { + id: number; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["GlobalResponse"]; + "application/json": components["schemas"]["PageResponse"]; }; }; /** @description Bad Request */ @@ -5741,17 +10123,22 @@ export interface operations { }; }; }; - "put/global": { + "put/pages/{id}": { + parameters: { + path: { + id: number; + }; + }; requestBody: { content: { - "application/json": components["schemas"]["GlobalRequest"]; + "application/json": components["schemas"]["PageRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["GlobalResponse"]; + "application/json": components["schemas"]["PageResponse"]; }; }; /** @description Bad Request */ @@ -5786,7 +10173,12 @@ export interface operations { }; }; }; - "delete/global": { + "delete/pages/{id}": { + parameters: { + path: { + id: number; + }; + }; responses: { /** @description OK */ 200: { @@ -5826,17 +10218,22 @@ export interface operations { }; }; }; - "post/global/localizations": { + "post/pages/{id}/localizations": { + parameters: { + path: { + id: number; + }; + }; requestBody: { content: { - "application/json": components["schemas"]["GlobalLocalizationRequest"]; + "application/json": components["schemas"]["PageLocalizationRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["GlobalLocalizationResponse"]; + "application/json": components["schemas"]["PageLocalizationResponse"]; }; }; /** @description Bad Request */ @@ -5871,7 +10268,7 @@ export interface operations { }; }; }; - "get/lead-form-submissions": { + "get/product-features": { parameters: { query?: { /** @description Sort by attributes ascending (asc) or descending (desc) */ @@ -5900,7 +10297,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["LeadFormSubmissionListResponse"]; + "application/json": components["schemas"]["ProductFeatureListResponse"]; }; }; /** @description Bad Request */ @@ -5935,17 +10332,17 @@ export interface operations { }; }; }; - "post/lead-form-submissions": { + "post/product-features": { requestBody: { content: { - "application/json": components["schemas"]["LeadFormSubmissionRequest"]; + "application/json": components["schemas"]["ProductFeatureRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["LeadFormSubmissionResponse"]; + "application/json": components["schemas"]["ProductFeatureResponse"]; }; }; /** @description Bad Request */ @@ -5980,7 +10377,7 @@ export interface operations { }; }; }; - "get/lead-form-submissions/{id}": { + "get/product-features/{id}": { parameters: { path: { id: number; @@ -5990,7 +10387,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["LeadFormSubmissionResponse"]; + "application/json": components["schemas"]["ProductFeatureResponse"]; }; }; /** @description Bad Request */ @@ -6025,7 +10422,7 @@ export interface operations { }; }; }; - "put/lead-form-submissions/{id}": { + "put/product-features/{id}": { parameters: { path: { id: number; @@ -6033,14 +10430,14 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["LeadFormSubmissionRequest"]; + "application/json": components["schemas"]["ProductFeatureRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["LeadFormSubmissionResponse"]; + "application/json": components["schemas"]["ProductFeatureResponse"]; }; }; /** @description Bad Request */ @@ -6075,7 +10472,7 @@ export interface operations { }; }; }; - "delete/lead-form-submissions/{id}": { + "delete/product-features/{id}": { parameters: { path: { id: number; @@ -6120,7 +10517,7 @@ export interface operations { }; }; }; - "get/pages": { + "get/tags": { parameters: { query?: { /** @description Sort by attributes ascending (asc) or descending (desc) */ @@ -6149,7 +10546,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["PageListResponse"]; + "application/json": components["schemas"]["TagListResponse"]; }; }; /** @description Bad Request */ @@ -6184,17 +10581,17 @@ export interface operations { }; }; }; - "post/pages": { + "post/tags": { requestBody: { content: { - "application/json": components["schemas"]["PageRequest"]; + "application/json": components["schemas"]["TagRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["PageResponse"]; + "application/json": components["schemas"]["TagResponse"]; }; }; /** @description Bad Request */ @@ -6229,7 +10626,7 @@ export interface operations { }; }; }; - "get/pages/{id}": { + "get/tags/{id}": { parameters: { path: { id: number; @@ -6239,7 +10636,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["PageResponse"]; + "application/json": components["schemas"]["TagResponse"]; }; }; /** @description Bad Request */ @@ -6274,7 +10671,7 @@ export interface operations { }; }; }; - "put/pages/{id}": { + "put/tags/{id}": { parameters: { path: { id: number; @@ -6282,14 +10679,14 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["PageRequest"]; + "application/json": components["schemas"]["TagRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["PageResponse"]; + "application/json": components["schemas"]["TagResponse"]; }; }; /** @description Bad Request */ @@ -6324,7 +10721,7 @@ export interface operations { }; }; }; - "delete/pages/{id}": { + "delete/tags/{id}": { parameters: { path: { id: number; @@ -6369,57 +10766,7 @@ export interface operations { }; }; }; - "post/pages/{id}/localizations": { - parameters: { - path: { - id: number; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["PageLocalizationRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - content: { - "application/json": components["schemas"]["PageLocalizationResponse"]; - }; - }; - /** @description Bad Request */ - 400: { - content: { - "application/json": components["schemas"]["Error"]; - }; - }; - /** @description Unauthorized */ - 401: { - content: { - "application/json": components["schemas"]["Error"]; - }; - }; - /** @description Forbidden */ - 403: { - content: { - "application/json": components["schemas"]["Error"]; - }; - }; - /** @description Not Found */ - 404: { - content: { - "application/json": components["schemas"]["Error"]; - }; - }; - /** @description Internal Server Error */ - 500: { - content: { - "application/json": components["schemas"]["Error"]; - }; - }; - }; - }; - "get/product-features": { + "get/telegram-subscriptions": { parameters: { query?: { /** @description Sort by attributes ascending (asc) or descending (desc) */ @@ -6448,7 +10795,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ProductFeatureListResponse"]; + "application/json": components["schemas"]["TelegramSubscriptionListResponse"]; }; }; /** @description Bad Request */ @@ -6483,17 +10830,17 @@ export interface operations { }; }; }; - "post/product-features": { + "post/telegram-subscriptions": { requestBody: { content: { - "application/json": components["schemas"]["ProductFeatureRequest"]; + "application/json": components["schemas"]["TelegramSubscriptionRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ProductFeatureResponse"]; + "application/json": components["schemas"]["TelegramSubscriptionResponse"]; }; }; /** @description Bad Request */ @@ -6528,7 +10875,7 @@ export interface operations { }; }; }; - "get/product-features/{id}": { + "get/telegram-subscriptions/{id}": { parameters: { path: { id: number; @@ -6538,7 +10885,7 @@ export interface operations { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ProductFeatureResponse"]; + "application/json": components["schemas"]["TelegramSubscriptionResponse"]; }; }; /** @description Bad Request */ @@ -6573,7 +10920,7 @@ export interface operations { }; }; }; - "put/product-features/{id}": { + "put/telegram-subscriptions/{id}": { parameters: { path: { id: number; @@ -6581,14 +10928,14 @@ export interface operations { }; requestBody: { content: { - "application/json": components["schemas"]["ProductFeatureRequest"]; + "application/json": components["schemas"]["TelegramSubscriptionRequest"]; }; }; responses: { /** @description OK */ 200: { content: { - "application/json": components["schemas"]["ProductFeatureResponse"]; + "application/json": components["schemas"]["TelegramSubscriptionResponse"]; }; }; /** @description Bad Request */ @@ -6623,7 +10970,7 @@ export interface operations { }; }; }; - "delete/product-features/{id}": { + "delete/telegram-subscriptions/{id}": { parameters: { path: { id: number; diff --git a/src/plugins/import-notifications/README.md b/src/plugins/import-notifications/README.md new file mode 100644 index 0000000..439329a --- /dev/null +++ b/src/plugins/import-notifications/README.md @@ -0,0 +1,3 @@ +# Strapi plugin import-notifications + +A quick description of import-notifications. diff --git a/src/plugins/import-notifications/admin/src/components/Initializer/index.tsx b/src/plugins/import-notifications/admin/src/components/Initializer/index.tsx new file mode 100644 index 0000000..efa7752 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/components/Initializer/index.tsx @@ -0,0 +1,24 @@ +/** + * + * Initializer + * + */ + +import { useEffect, useRef } from 'react'; +import pluginId from '../../pluginId'; + +type InitializerProps = { + setPlugin: (id: string) => void; +}; + +const Initializer = ({ setPlugin }: InitializerProps) => { + const ref = useRef(setPlugin); + + useEffect(() => { + ref.current(pluginId); + }, []); + + return null; +}; + +export default Initializer; diff --git a/src/plugins/import-notifications/admin/src/components/PluginIcon/index.tsx b/src/plugins/import-notifications/admin/src/components/PluginIcon/index.tsx new file mode 100644 index 0000000..e2bb2d5 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/components/PluginIcon/index.tsx @@ -0,0 +1,12 @@ +/** + * + * PluginIcon + * + */ + +import React from 'react'; +import { Puzzle } from '@strapi/icons'; + +const PluginIcon = () => ; + +export default PluginIcon; diff --git a/src/plugins/import-notifications/admin/src/index.tsx b/src/plugins/import-notifications/admin/src/index.tsx new file mode 100644 index 0000000..720c4c5 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/index.tsx @@ -0,0 +1,67 @@ +import { prefixPluginTranslations } from '@strapi/helper-plugin'; + +import pluginPkg from '../../package.json'; +import pluginId from './pluginId'; +import Initializer from './components/Initializer'; +import PluginIcon from './components/PluginIcon'; + +const name = pluginPkg.strapi.name; + +export default { + register(app: any) { + app.addMenuLink({ + to: `/plugins/${pluginId}`, + icon: PluginIcon, + intlLabel: { + id: `${pluginId}.plugin.name`, + defaultMessage: 'Import notifications CSV', + }, + Component: async () => { + const component = await import('./pages/App'); + + return component; + }, + permissions: [ + // Uncomment to set the permissions of the plugin here + // { + // action: '', // the action name should be plugin::plugin-name.actionType + // subject: null, + // }, + ], + }); + const plugin = { + id: pluginId, + initializer: Initializer, + isReady: false, + name, + }; + + app.registerPlugin(plugin); + }, + + bootstrap(app: any) {}, + + async registerTrads(app: any) { + const { locales } = app; + + const importedTrads = await Promise.all( + (locales as any[]).map((locale) => { + return import(`./translations/${locale}.json`) + .then(({ default: data }) => { + return { + data: prefixPluginTranslations(data, pluginId), + locale, + }; + }) + .catch(() => { + return { + data: {}, + locale, + }; + }); + }) + ); + + return Promise.resolve(importedTrads); + }, +}; diff --git a/src/plugins/import-notifications/admin/src/pages/App/index.tsx b/src/plugins/import-notifications/admin/src/pages/App/index.tsx new file mode 100644 index 0000000..82c93b5 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/pages/App/index.tsx @@ -0,0 +1,28 @@ +/** + * + * This component is the skeleton around the actual pages, and should only + * contain code that should be seen on all pages. (e.g. navigation bar) + * + */ + +import React from 'react'; +import { Switch, Route } from 'react-router-dom'; +import { AnErrorOccurred } from '@strapi/helper-plugin'; +import pluginId from '../../pluginId'; +import HomePage from '../HomePage'; + +const App = () => { + return ( +
+ {/*@ts-ignore*/} + + {/*@ts-ignore*/} + + {/*@ts-ignore*/} + + +
+ ); +}; + +export default App; diff --git a/src/plugins/import-notifications/admin/src/pages/HomePage/index.tsx b/src/plugins/import-notifications/admin/src/pages/HomePage/index.tsx new file mode 100644 index 0000000..9688888 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/pages/HomePage/index.tsx @@ -0,0 +1,114 @@ +/* + * + * HomePage + * + */ + +import React, { useCallback, useRef, useState } from 'react'; +import { useFetchClient } from '@strapi/helper-plugin'; +import styled from 'styled-components'; + +const Wrapper = styled.div` + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + margin-top: 100px; +` + +const Title = styled.h1` + font-size: 24px; + font-weight: 600; + margin-bottom: 10px; +` + +const Form = styled.div` + background: #fff; + padding: 20px; + width: 100%; + text-align: center; +` + +const Button = styled.button` + background: #3a5f93; + color: #fff; + border-radius: 4px; + padding: 10px 15px; + cursor: pointer; +` + +const Error = styled.div` + background: #ffcece; + color: #000000; + text-align: center; + width: 100%; + padding: 20px 0; + + h3 { + font-size: 18px; + font-weight: 600; + margin-bottom: 10px; + } +` + +const HomePage = () => { + const [error, setError] = useState(null) + const [isLoading, setIsLoading] = useState(false) + const ref = useRef(null) + + const {post} = useFetchClient(); + + const uploadFile = useCallback(() => { + const file = ref.current?.files?.[0] + const formData = new FormData(); + + if (!file) return + + formData.append('file', file); + + setIsLoading(true) + setError(null) + + post('/import-notifications/csv', formData, { + headers: { + 'Content-Type': 'multipart/form-data' + } + }).then((response: {data: {error?: string, status?: string}}) => { + const data = response.data + if (data.error) { + setError(data.error) + return + } + + if (data.status === 'ok') { + setError(null) + alert('File is successfully uploaded') + } + if (ref.current) ref.current.value = '' + }).catch((error: Error) => { + console.error(error) + setError(error.message || setError.toString()) + }).finally(() => { + setIsLoading(false) + }) + }, [post]) + + return ( + + Upload CSV file with notifications +
+ {error && ( + +

Error

+
{error}
+
+ )} +
+ + +
+
+ ); +}; + +export default HomePage; diff --git a/src/plugins/import-notifications/admin/src/pluginId.ts b/src/plugins/import-notifications/admin/src/pluginId.ts new file mode 100644 index 0000000..695317c --- /dev/null +++ b/src/plugins/import-notifications/admin/src/pluginId.ts @@ -0,0 +1,5 @@ +import pluginPkg from '../../package.json'; + +const pluginId = pluginPkg.name.replace(/^(@[^-,.][\w,-]+\/|strapi-)plugin-/i, ''); + +export default pluginId; diff --git a/src/plugins/import-notifications/admin/src/translations/en.json b/src/plugins/import-notifications/admin/src/translations/en.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/translations/en.json @@ -0,0 +1 @@ +{} diff --git a/src/plugins/import-notifications/admin/src/translations/fr.json b/src/plugins/import-notifications/admin/src/translations/fr.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/translations/fr.json @@ -0,0 +1 @@ +{} diff --git a/src/plugins/import-notifications/admin/src/utils/getTrad.ts b/src/plugins/import-notifications/admin/src/utils/getTrad.ts new file mode 100644 index 0000000..a539a50 --- /dev/null +++ b/src/plugins/import-notifications/admin/src/utils/getTrad.ts @@ -0,0 +1,5 @@ +import pluginId from '../pluginId'; + +const getTrad = (id: string) => `${pluginId}.${id}`; + +export default getTrad; diff --git a/src/plugins/import-notifications/custom.d.ts b/src/plugins/import-notifications/custom.d.ts new file mode 100644 index 0000000..321f3c0 --- /dev/null +++ b/src/plugins/import-notifications/custom.d.ts @@ -0,0 +1,5 @@ +declare module '@strapi/design-system/*'; +declare module '@strapi/design-system'; +declare module '@strapi/icons'; +declare module '@strapi/icons/*'; +declare module '@strapi/helper-plugin'; diff --git a/src/plugins/import-notifications/package.json b/src/plugins/import-notifications/package.json new file mode 100644 index 0000000..bbf84f2 --- /dev/null +++ b/src/plugins/import-notifications/package.json @@ -0,0 +1,52 @@ +{ + "name": "import-notifications", + "version": "0.0.0", + "description": "This is the description of the plugin.", + "strapi": { + "name": "import-notifications", + "description": "Description of import-notifications plugin", + "kind": "plugin" + }, + "dependencies": { + "@strapi/design-system": "^1.6.3", + "@strapi/helper-plugin": "^4.6.0", + "@strapi/icons": "^1.6.3", + "fast-csv": "^5.0.1", + "prop-types": "^15.7.2" + }, + "devDependencies": { + "@strapi/typescript-utils": "^4.6.0", + "@types/react": "^17.0.53", + "@types/react-dom": "^18.0.28", + "@types/react-router-dom": "^5.3.3", + "@types/styled-components": "^5.1.26", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^5.3.4", + "styled-components": "^5.3.6", + "typescript": "5.0.4" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0", + "react-router-dom": "^5.2.0", + "styled-components": "^5.2.1" + }, + "author": { + "name": "A Strapi developer" + }, + "maintainers": [ + { + "name": "A Strapi developer" + } + ], + "engines": { + "node": ">=18.0.0 <=20.x.x", + "npm": ">=6.0.0" + }, + "scripts": { + "develop": "tsc -p tsconfig.server.json -w", + "build": "tsc -p tsconfig.server.json" + }, + "license": "MIT" +} diff --git a/src/plugins/import-notifications/server/bootstrap.ts b/src/plugins/import-notifications/server/bootstrap.ts new file mode 100644 index 0000000..aaee9b2 --- /dev/null +++ b/src/plugins/import-notifications/server/bootstrap.ts @@ -0,0 +1,5 @@ +import { Strapi } from '@strapi/strapi'; + +export default ({ strapi }: { strapi: Strapi }) => { + // bootstrap phase +}; diff --git a/src/plugins/import-notifications/server/config/index.ts b/src/plugins/import-notifications/server/config/index.ts new file mode 100644 index 0000000..d518507 --- /dev/null +++ b/src/plugins/import-notifications/server/config/index.ts @@ -0,0 +1,4 @@ +export default { + default: {}, + validator() {}, +}; diff --git a/src/plugins/import-notifications/server/content-types/index.ts b/src/plugins/import-notifications/server/content-types/index.ts new file mode 100644 index 0000000..ff8b4c5 --- /dev/null +++ b/src/plugins/import-notifications/server/content-types/index.ts @@ -0,0 +1 @@ +export default {}; diff --git a/src/plugins/import-notifications/server/controllers/index.ts b/src/plugins/import-notifications/server/controllers/index.ts new file mode 100644 index 0000000..ec0ad85 --- /dev/null +++ b/src/plugins/import-notifications/server/controllers/index.ts @@ -0,0 +1,5 @@ +import myController from './my-controller'; + +export default { + myController, +}; diff --git a/src/plugins/import-notifications/server/controllers/my-controller.ts b/src/plugins/import-notifications/server/controllers/my-controller.ts new file mode 100644 index 0000000..47ee800 --- /dev/null +++ b/src/plugins/import-notifications/server/controllers/my-controller.ts @@ -0,0 +1,73 @@ +import { Strapi } from '@strapi/strapi'; +import { parseNotificationsFile } from './parseNotificationsFile'; +import { parseNotification, NotificationRaw } from './parseNotification'; +import { validateNotifications } from './validateNotifications'; + +const NOTIFICATIONS_MODULE_ID = 'api::notification.notification' +const NOTIFICATION_TEMPLATES_MODULE_ID = 'api::notification-template.notification-template' + +export default ({ strapi }: { strapi: Strapi }) => ({ + index(ctx) { + ctx.body = strapi + .plugin('import-notifications') + .service('myService') + .getWelcomeMessage(); + }, + async csv(ctx) { + const file = ctx.request.files?.['file'] + + if (!file) return {error: 'File is required'} + + const rows: string[][] = await parseNotificationsFile(file.path) + + let templatesMap = null; + let notifications: NotificationRaw[] = []; + + try { + notifications = parseNotification(rows) + + const templates = await strapi.entityService.findMany( + NOTIFICATION_TEMPLATES_MODULE_ID, + { + fields: ['id'] + } + ); + + templatesMap = templates.reduce((acc, template) => { + acc[template.id] = template.id + return acc + }, {}) + + validateNotifications(notifications, templatesMap) + } catch (e) { + console.error('CSV parsing error', e) + return {error: e.message} + } + + if (!templatesMap || !notifications.length) return + + try { + await Promise.all( + notifications.map(notification => { + const {templateId, account, data} = notification + + return strapi.entityService.create( + NOTIFICATIONS_MODULE_ID, + { + data: { + account, + data, + notification_template: {connect: [{id: templateId}]} + }, + } + ); + }) + ) + } catch (e) { + console.error('CSV creating error', e) + return {error: 'Cannot create notifications'} + } + + return { status: 'ok' } + }, +}); diff --git a/src/plugins/import-notifications/server/controllers/parseNotification.ts b/src/plugins/import-notifications/server/controllers/parseNotification.ts new file mode 100644 index 0000000..1d75514 --- /dev/null +++ b/src/plugins/import-notifications/server/controllers/parseNotification.ts @@ -0,0 +1,35 @@ +export interface NotificationRaw { + templateId: number + data: any + account: string +} + +export function parseNotification(rows: string[][]): NotificationRaw[] { + return rows.slice(1).reduce((acc, row, index) => { + if (typeof row[0] !== 'string') throw new Error('CSV file is invalid!') + + const templateId = +row[0].trim() + const account = row[1].trim() + const data = parseData(row[2].trim()) + + if (templateId && account && data) { + const notification: Partial = {templateId, account, data} + + acc.push(notification as NotificationRaw) + } else { + throw new Error(`Notification is invalid, templateId: ${templateId}, account: ${account}, data: ${data}`) + } + + return acc + }, []) +} + +function parseData(input: string): any { + try { + return JSON.parse(input) + } catch (e) { + console.error(e) + return null + } + +} diff --git a/src/plugins/import-notifications/server/controllers/parseNotificationsFile.ts b/src/plugins/import-notifications/server/controllers/parseNotificationsFile.ts new file mode 100644 index 0000000..a99568d --- /dev/null +++ b/src/plugins/import-notifications/server/controllers/parseNotificationsFile.ts @@ -0,0 +1,19 @@ +import * as csv from 'fast-csv'; + +export async function parseNotificationsFile(path: string): Promise { + return new Promise((resolve, reject) => { + const data: string[][] = [] + + csv.parseFile(path, {delimiter: ';'}) + .on('data', row => { + data.push(row) + }) + .on('error', error => { + console.error(error) + reject(error) + }) + .on('end', () => { + resolve(data) + }); + }) +} diff --git a/src/plugins/import-notifications/server/controllers/validateNotifications.ts b/src/plugins/import-notifications/server/controllers/validateNotifications.ts new file mode 100644 index 0000000..d8d1851 --- /dev/null +++ b/src/plugins/import-notifications/server/controllers/validateNotifications.ts @@ -0,0 +1,17 @@ +import { NotificationRaw } from './parseNotification'; + +const NOTIFICATIONS_KEYS: (keyof NotificationRaw)[] = ['templateId', 'account', 'data'] + +export function validateNotifications(notifications: NotificationRaw[], notificationMap: Record) { + notifications.forEach((notification, index) => { + if (NOTIFICATIONS_KEYS.some(key => !notification[key])) { + console.error('Invalid notification', notification) + + throw new Error('Invalid notification, index: ' + index) + } + + if (!notificationMap[notification.templateId]) { + throw new Error('Invalid notification template: ' + notification.templateId) + } + }) +} diff --git a/src/plugins/import-notifications/server/destroy.ts b/src/plugins/import-notifications/server/destroy.ts new file mode 100644 index 0000000..e6d8d5e --- /dev/null +++ b/src/plugins/import-notifications/server/destroy.ts @@ -0,0 +1,5 @@ +import { Strapi } from '@strapi/strapi'; + +export default ({ strapi }: { strapi: Strapi }) => { + // destroy phase +}; diff --git a/src/plugins/import-notifications/server/index.ts b/src/plugins/import-notifications/server/index.ts new file mode 100644 index 0000000..76e8951 --- /dev/null +++ b/src/plugins/import-notifications/server/index.ts @@ -0,0 +1,23 @@ +import register from './register'; +import bootstrap from './bootstrap'; +import destroy from './destroy'; +import config from './config'; +import contentTypes from './content-types'; +import controllers from './controllers'; +import routes from './routes'; +import middlewares from './middlewares'; +import policies from './policies'; +import services from './services'; + +export default { + register, + bootstrap, + destroy, + config, + controllers, + routes, + services, + contentTypes, + policies, + middlewares, +}; diff --git a/src/plugins/import-notifications/server/middlewares/index.ts b/src/plugins/import-notifications/server/middlewares/index.ts new file mode 100644 index 0000000..ff8b4c5 --- /dev/null +++ b/src/plugins/import-notifications/server/middlewares/index.ts @@ -0,0 +1 @@ +export default {}; diff --git a/src/plugins/import-notifications/server/policies/index.ts b/src/plugins/import-notifications/server/policies/index.ts new file mode 100644 index 0000000..ff8b4c5 --- /dev/null +++ b/src/plugins/import-notifications/server/policies/index.ts @@ -0,0 +1 @@ +export default {}; diff --git a/src/plugins/import-notifications/server/register.ts b/src/plugins/import-notifications/server/register.ts new file mode 100644 index 0000000..fbe8991 --- /dev/null +++ b/src/plugins/import-notifications/server/register.ts @@ -0,0 +1,5 @@ +import { Strapi } from '@strapi/strapi'; + +export default ({ strapi }: { strapi: Strapi }) => { + // register phase +}; diff --git a/src/plugins/import-notifications/server/routes/index.ts b/src/plugins/import-notifications/server/routes/index.ts new file mode 100644 index 0000000..1f05562 --- /dev/null +++ b/src/plugins/import-notifications/server/routes/index.ts @@ -0,0 +1,18 @@ +export default [ + { + method: 'GET', + path: '/', + handler: 'myController.index', + config: { + policies: [], + }, + }, + { + method: 'POST', + path: '/csv', + handler: 'myController.csv', + config: { + policies: [], + }, + }, +]; diff --git a/src/plugins/import-notifications/server/services/index.ts b/src/plugins/import-notifications/server/services/index.ts new file mode 100644 index 0000000..dcbdfe1 --- /dev/null +++ b/src/plugins/import-notifications/server/services/index.ts @@ -0,0 +1,5 @@ +import myService from './my-service'; + +export default { + myService, +}; diff --git a/src/plugins/import-notifications/server/services/my-service.ts b/src/plugins/import-notifications/server/services/my-service.ts new file mode 100644 index 0000000..af306e6 --- /dev/null +++ b/src/plugins/import-notifications/server/services/my-service.ts @@ -0,0 +1,7 @@ +import { Strapi } from '@strapi/strapi'; + +export default ({ strapi }: { strapi: Strapi }) => ({ + getWelcomeMessage() { + return 'Welcome to Strapi 🚀'; + }, +}); diff --git a/src/plugins/import-notifications/strapi-admin.js b/src/plugins/import-notifications/strapi-admin.js new file mode 100644 index 0000000..2d1a3d9 --- /dev/null +++ b/src/plugins/import-notifications/strapi-admin.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./admin/src').default; diff --git a/src/plugins/import-notifications/strapi-server.js b/src/plugins/import-notifications/strapi-server.js new file mode 100644 index 0000000..bf55958 --- /dev/null +++ b/src/plugins/import-notifications/strapi-server.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./dist/server'); diff --git a/src/plugins/import-notifications/tsconfig.json b/src/plugins/import-notifications/tsconfig.json new file mode 100644 index 0000000..633f62e --- /dev/null +++ b/src/plugins/import-notifications/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@strapi/typescript-utils/tsconfigs/admin", + + "compilerOptions": { + "target": "ESNext", + "strict": true + }, + + "include": ["admin", "custom.d.ts"], + + "exclude": [ + "node_modules/", + "dist/", + + // Do not include server files in the server compilation + "server/", + // Do not include test files + "**/*.test.ts" + ] +} diff --git a/src/plugins/import-notifications/tsconfig.server.json b/src/plugins/import-notifications/tsconfig.server.json new file mode 100644 index 0000000..c4e8457 --- /dev/null +++ b/src/plugins/import-notifications/tsconfig.server.json @@ -0,0 +1,25 @@ +{ + "extends": "@strapi/typescript-utils/tsconfigs/server", + + "compilerOptions": { + "outDir": "dist", + "rootDir": "." + }, + + "include": [ + // Include the root directory + "server", + // Force the JSON files in the src folder to be included + "server/**/*.json" + ], + + "exclude": [ + "node_modules/", + "dist/", + + // Do not include admin files in the server compilation + "admin/", + // Do not include test files + "**/*.test.ts" + ] +} diff --git a/src/plugins/import-notifications/yarn.lock b/src/plugins/import-notifications/yarn.lock new file mode 100644 index 0000000..7838f6d --- /dev/null +++ b/src/plugins/import-notifications/yarn.lock @@ -0,0 +1,2155 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1": + version "7.24.2" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + dependencies: + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + +"@babel/generator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz" + integrity sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A== + dependencies: + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.5": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" + +"@babel/helper-plugin-utils@^7.24.0": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.24.0", "@babel/parser@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz" + integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg== + +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.8", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz" + integrity sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.4.5": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== + dependencies: + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.24.1" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@codemirror/autocomplete@^6.0.0": + version "6.15.0" + resolved "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.15.0.tgz" + integrity sha512-G2Zm0mXznxz97JhaaOdoEG2cVupn4JjPaS4AcNvZzhOsnnG9YVN68VzfoUw6dYTsIxT6a/cmoFEN47KAWhXaOg== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + +"@codemirror/commands@^6.0.0", "@codemirror/commands@^6.1.0": + version "6.3.3" + resolved "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.3.tgz" + integrity sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.4.0" + "@codemirror/view" "^6.0.0" + "@lezer/common" "^1.1.0" + +"@codemirror/lang-json@^6.0.1": + version "6.0.1" + resolved "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz" + integrity sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/json" "^1.0.0" + +"@codemirror/language@^6.0.0": + version "6.10.1" + resolved "https://registry.npmjs.org/@codemirror/language/-/language-6.10.1.tgz" + integrity sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.1.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/lint@^6.0.0": + version "6.5.0" + resolved "https://registry.npmjs.org/@codemirror/lint/-/lint-6.5.0.tgz" + integrity sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + crelt "^1.0.5" + +"@codemirror/search@^6.0.0": + version "6.5.6" + resolved "https://registry.npmjs.org/@codemirror/search/-/search-6.5.6.tgz" + integrity sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + crelt "^1.0.5" + +"@codemirror/state@^6.0.0", "@codemirror/state@^6.1.1", "@codemirror/state@^6.4.0": + version "6.4.1" + resolved "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz" + integrity sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A== + +"@codemirror/theme-one-dark@^6.0.0": + version "6.1.2" + resolved "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz" + integrity sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + "@lezer/highlight" "^1.0.0" + +"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0": + version "6.26.0" + resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.26.0.tgz" + integrity sha512-nSSmzONpqsNzshPOxiKhK203R6BvABepugAe34QfQDbNDslyjkqBuKgrK5ZBvqNXpfxz5iLrlGTmEfhbQyH46A== + dependencies: + "@codemirror/state" "^6.4.0" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": + version "11.11.0" + resolved "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/is-prop-valid@^1.1.0": + version "1.2.2" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz" + integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== + dependencies: + "@emotion/memoize" "^0.8.1" + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.8.1": + version "11.11.4" + resolved "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz" + integrity sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.3" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3": + version "1.1.3" + resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz" + integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4": + version "0.7.5" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@fast-csv/format@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@fast-csv/format/-/format-5.0.0.tgz" + integrity sha512-IyMpHwYIOGa2f0BJi6Wk55UF0oBA5urdIydoEDYxPo88LFbeb3Yr4rgpu98OAO1glUWheSnNtUgS80LE+/dqmw== + dependencies: + lodash.escaperegexp "^4.1.2" + lodash.isboolean "^3.0.3" + lodash.isequal "^4.5.0" + lodash.isfunction "^3.0.9" + lodash.isnil "^4.0.0" + +"@fast-csv/parse@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@fast-csv/parse/-/parse-5.0.0.tgz" + integrity sha512-ecF8tCm3jVxeRjEB6VPzmA+1wGaJ5JgaUX2uesOXdXD6qQp0B3EdshOIed4yT1Xlj/F2f8v4zHSo0Oi31L697g== + dependencies: + lodash.escaperegexp "^4.1.2" + lodash.groupby "^4.6.0" + lodash.isfunction "^3.0.9" + lodash.isnil "^4.0.0" + lodash.isundefined "^3.0.1" + lodash.uniq "^4.5.0" + +"@floating-ui/core@^1.0.0": + version "1.6.0" + resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz" + integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g== + dependencies: + "@floating-ui/utils" "^0.2.1" + +"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.6.1": + version "1.6.3" + resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz" + integrity sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw== + dependencies: + "@floating-ui/core" "^1.0.0" + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/react-dom@^2.0.0", "@floating-ui/react-dom@^2.0.8": + version "2.0.8" + resolved "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz" + integrity sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw== + dependencies: + "@floating-ui/dom" "^1.6.1" + +"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1": + version "0.2.1" + resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz" + integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== + +"@formatjs/ecma402-abstract@1.14.3": + version "1.14.3" + resolved "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz" + integrity sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg== + dependencies: + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" + +"@formatjs/fast-memoize@2.0.1": + version "2.0.1" + resolved "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.0.1.tgz" + integrity sha512-M2GgV+qJn5WJQAYewz7q2Cdl6fobQa69S1AzSM2y0P68ZDbK5cWrJIcPCO395Of1ksftGZoOt4LYCO/j9BKBSA== + dependencies: + tslib "^2.4.0" + +"@formatjs/icu-messageformat-parser@2.3.1": + version "2.3.1" + resolved "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.3.1.tgz" + integrity sha512-knF2AkAKN4Upv4oIiKY4Wd/dLH68TNMPgV/tJMu/T6FP9aQwbv8fpj7U3lkyniPaNVxvia56Gxax8MKOjtxLSQ== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/icu-skeleton-parser" "1.3.18" + tslib "^2.4.0" + +"@formatjs/icu-skeleton-parser@1.3.18": + version "1.3.18" + resolved "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz" + integrity sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + tslib "^2.4.0" + +"@formatjs/intl-displaynames@6.3.1": + version "6.3.1" + resolved "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.3.1.tgz" + integrity sha512-TlxguMDUbnFrJ4NA8fSyqXC62M7czvlRJ5mrJgtB91JVA+QPjjNdcRm1qPIC/DcU/pGUDcEzThn/x5A+jp15gg== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" + +"@formatjs/intl-listformat@7.2.1": + version "7.2.1" + resolved "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.2.1.tgz" + integrity sha512-fRJFWLrGa7d25I4JSxNjKX29oXGcIXx8fJjgURnvs2C3ijS4gurUgFrUwLbv/2KfPfyJ5g567pz2INelNJZBdw== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" + +"@formatjs/intl-localematcher@0.2.32": + version "0.2.32" + resolved "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz" + integrity sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ== + dependencies: + tslib "^2.4.0" + +"@formatjs/intl@2.7.1": + version "2.7.1" + resolved "https://registry.npmjs.org/@formatjs/intl/-/intl-2.7.1.tgz" + integrity sha512-se6vxidsN3PCmzqTsDd3YDT4IX9ZySPy39LYhF7x2ssNvlGMOuW3umkrIhKkXB7ZskqsJGY53LVCdiHsSwhGng== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/fast-memoize" "2.0.1" + "@formatjs/icu-messageformat-parser" "2.3.1" + "@formatjs/intl-displaynames" "6.3.1" + "@formatjs/intl-listformat" "7.2.1" + intl-messageformat "10.3.4" + tslib "^2.4.0" + +"@internationalized/date@^3.5.2": + version "3.5.2" + resolved "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz" + integrity sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ== + dependencies: + "@swc/helpers" "^0.5.0" + +"@internationalized/number@^3.5.1": + version "3.5.1" + resolved "https://registry.npmjs.org/@internationalized/number/-/number-3.5.1.tgz" + integrity sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg== + dependencies: + "@swc/helpers" "^0.5.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + 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@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lezer/common@^1.0.0", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0": + version "1.2.1" + resolved "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz" + integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ== + +"@lezer/highlight@^1.0.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz" + integrity sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA== + dependencies: + "@lezer/common" "^1.0.0" + +"@lezer/json@^1.0.0": + version "1.0.2" + resolved "https://registry.npmjs.org/@lezer/json/-/json-1.0.2.tgz" + integrity sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/lr@^1.0.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz" + integrity sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg== + dependencies: + "@lezer/common" "^1.0.0" + +"@radix-ui/number@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz" + integrity sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/primitive@1.0.1", "@radix-ui/primitive@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz" + integrity sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-arrow@1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz" + integrity sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + +"@radix-ui/react-collection@1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz" + integrity sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-slot" "1.0.2" + +"@radix-ui/react-compose-refs@1.0.1", "@radix-ui/react-compose-refs@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz" + integrity sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-context@1.0.1", "@radix-ui/react-context@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz" + integrity sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-direction@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz" + integrity sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-dismissable-layer@1.0.5", "@radix-ui/react-dismissable-layer@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz" + integrity sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-escape-keydown" "1.0.3" + +"@radix-ui/react-dropdown-menu@^2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz" + integrity sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-id" "1.0.1" + "@radix-ui/react-menu" "2.0.6" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-controllable-state" "1.0.1" + +"@radix-ui/react-focus-guards@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz" + integrity sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-focus-scope@1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz" + integrity sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + +"@radix-ui/react-id@1.0.1", "@radix-ui/react-id@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz" + integrity sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-layout-effect" "1.0.1" + +"@radix-ui/react-menu@2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz" + integrity sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-collection" "1.0.3" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-direction" "1.0.1" + "@radix-ui/react-dismissable-layer" "1.0.5" + "@radix-ui/react-focus-guards" "1.0.1" + "@radix-ui/react-focus-scope" "1.0.4" + "@radix-ui/react-id" "1.0.1" + "@radix-ui/react-popper" "1.1.3" + "@radix-ui/react-portal" "1.0.4" + "@radix-ui/react-presence" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-roving-focus" "1.0.4" + "@radix-ui/react-slot" "1.0.2" + "@radix-ui/react-use-callback-ref" "1.0.1" + aria-hidden "^1.1.1" + react-remove-scroll "2.5.5" + +"@radix-ui/react-popper@1.1.3", "@radix-ui/react-popper@^1.1.3": + version "1.1.3" + resolved "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz" + integrity sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w== + dependencies: + "@babel/runtime" "^7.13.10" + "@floating-ui/react-dom" "^2.0.0" + "@radix-ui/react-arrow" "1.0.3" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-use-rect" "1.0.1" + "@radix-ui/react-use-size" "1.0.1" + "@radix-ui/rect" "1.0.1" + +"@radix-ui/react-portal@1.0.4", "@radix-ui/react-portal@^1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz" + integrity sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + +"@radix-ui/react-presence@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz" + integrity sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-use-layout-effect" "1.0.1" + +"@radix-ui/react-primitive@1.0.3", "@radix-ui/react-primitive@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz" + integrity sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-slot" "1.0.2" + +"@radix-ui/react-roving-focus@1.0.4": + version "1.0.4" + resolved "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz" + integrity sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.1" + "@radix-ui/react-collection" "1.0.3" + "@radix-ui/react-compose-refs" "1.0.1" + "@radix-ui/react-context" "1.0.1" + "@radix-ui/react-direction" "1.0.1" + "@radix-ui/react-id" "1.0.1" + "@radix-ui/react-primitive" "1.0.3" + "@radix-ui/react-use-callback-ref" "1.0.1" + "@radix-ui/react-use-controllable-state" "1.0.1" + +"@radix-ui/react-slot@1.0.2", "@radix-ui/react-slot@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz" + integrity sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.1" + +"@radix-ui/react-use-callback-ref@1.0.1", "@radix-ui/react-use-callback-ref@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz" + integrity sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-controllable-state@1.0.1", "@radix-ui/react-use-controllable-state@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz" + integrity sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-callback-ref" "1.0.1" + +"@radix-ui/react-use-escape-keydown@1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz" + integrity sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-callback-ref" "1.0.1" + +"@radix-ui/react-use-layout-effect@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz" + integrity sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-previous@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz" + integrity sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-rect@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz" + integrity sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/rect" "1.0.1" + +"@radix-ui/react-use-size@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz" + integrity sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-layout-effect" "1.0.1" + +"@radix-ui/react-visually-hidden@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz" + integrity sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.3" + +"@radix-ui/rect@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz" + integrity sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@strapi/design-system@^1.6.3": + version "1.16.0" + resolved "https://registry.npmjs.org/@strapi/design-system/-/design-system-1.16.0.tgz" + integrity sha512-HUt46z0LStQtNsmTh/3btzW+UQtYPtSS2hk+leQlcwCoczjf/K53OYeTjEIkUYfAc/R/W4CYVZfXJXYw3Fy6Sw== + dependencies: + "@codemirror/lang-json" "^6.0.1" + "@floating-ui/react-dom" "^2.0.8" + "@internationalized/date" "^3.5.2" + "@internationalized/number" "^3.5.1" + "@radix-ui/react-dismissable-layer" "^1.0.5" + "@radix-ui/react-dropdown-menu" "^2.0.6" + "@radix-ui/react-focus-scope" "1.0.4" + "@strapi/ui-primitives" "^1.16.0" + "@uiw/react-codemirror" "^4.21.24" + aria-hidden "^1.2.3" + compute-scroll-into-view "^3.1.0" + prop-types "^15.8.1" + react-remove-scroll "^2.5.7" + +"@strapi/helper-plugin@^4.6.0": + version "4.21.0" + resolved "https://registry.npmjs.org/@strapi/helper-plugin/-/helper-plugin-4.21.0.tgz" + integrity sha512-z3NquhJqm4+4wDICKn3QZKZE3qR7yEc7ZiaNfiu4nSt5j31cFumA89Bo8zZrvNuPSGYdVy/CwN58ora+OWObUQ== + dependencies: + axios "1.6.0" + date-fns "2.30.0" + formik "2.4.0" + immer "9.0.19" + lodash "4.17.21" + qs "6.11.1" + react-helmet "6.1.0" + react-intl "6.4.1" + react-query "3.39.3" + react-select "5.7.0" + +"@strapi/icons@^1.6.3": + version "1.16.0" + resolved "https://registry.npmjs.org/@strapi/icons/-/icons-1.16.0.tgz" + integrity sha512-sa7MTlhHpbpFCS5ZIlgLQQtG4s5W7ojGFr6CsjwtFdezrvBLbY5ZGmVByghK7b3XoZ1bNYk1AiGdcxMQvCu+vw== + +"@strapi/typescript-utils@^4.6.0": + version "4.21.0" + resolved "https://registry.npmjs.org/@strapi/typescript-utils/-/typescript-utils-4.21.0.tgz" + integrity sha512-JsjWjVrp9N8ztSHiMlM5jVJGfTZsoY2X7ogq38a7m+8nPBlkvMvNfEzPS4wgSKnvxnMs6o88Y87sReS4ddbZdg== + dependencies: + chalk "4.1.2" + cli-table3 "0.6.2" + fs-extra "10.0.0" + lodash "4.17.21" + prettier "2.8.4" + typescript "5.2.2" + +"@strapi/ui-primitives@^1.16.0": + version "1.16.0" + resolved "https://registry.npmjs.org/@strapi/ui-primitives/-/ui-primitives-1.16.0.tgz" + integrity sha512-ATJPrLI9K/Cq9gGlLa93KAXBdc4rkWRg7GOogOeukohy4a8CzcQTK0l7Lp3EeXSZKwcOU5ohDcC43BXB0eSlyg== + dependencies: + "@radix-ui/number" "^1.0.1" + "@radix-ui/primitive" "^1.0.1" + "@radix-ui/react-collection" "1.0.3" + "@radix-ui/react-compose-refs" "^1.0.1" + "@radix-ui/react-context" "^1.0.1" + "@radix-ui/react-direction" "1.0.1" + "@radix-ui/react-dismissable-layer" "^1.0.5" + "@radix-ui/react-focus-guards" "1.0.1" + "@radix-ui/react-focus-scope" "1.0.4" + "@radix-ui/react-id" "^1.0.1" + "@radix-ui/react-popper" "^1.1.3" + "@radix-ui/react-portal" "^1.0.4" + "@radix-ui/react-primitive" "^1.0.3" + "@radix-ui/react-slot" "^1.0.2" + "@radix-ui/react-use-callback-ref" "^1.0.1" + "@radix-ui/react-use-controllable-state" "^1.0.1" + "@radix-ui/react-use-layout-effect" "1.0.1" + "@radix-ui/react-use-previous" "^1.0.1" + "@radix-ui/react-visually-hidden" "^1.0.3" + aria-hidden "^1.2.3" + react-remove-scroll "^2.5.7" + +"@swc/helpers@^0.5.0": + version "0.5.7" + resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.7.tgz" + integrity sha512-BVvNZhx362+l2tSwSuyEUV4h7+jk9raNdoTSdLfwTshXJSaGmYKluGRJznziCI3KX02Z19DdsQrdfrpXAU3Hfg== + dependencies: + tslib "^2.4.0" + +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + +"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.1": + version "3.3.5" + resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/react-dom@^18.0.28": + version "18.2.22" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz" + integrity sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ== + dependencies: + "@types/react" "*" + +"@types/react-router-dom@^5.3.3": + version "5.3.3" + resolved "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.20" + resolved "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz" + integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react-transition-group@^4.4.0": + version "4.4.10" + resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^17.0.53": + version "17.0.79" + resolved "https://registry.npmjs.org/@types/react/-/react-17.0.79.tgz" + integrity sha512-gavKA8AwJAML9zWHuiQRASjrrPJHbT/zrUDHiUGUf+l5a3pkEd6atvjjq+8y2vfRHBJLQJjFpxSa9I8qe9zHAw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@16 || 17 || 18": + version "18.2.69" + resolved "https://registry.npmjs.org/@types/react/-/react-18.2.69.tgz" + integrity sha512-W1HOMUWY/1Yyw0ba5TkCV+oqynRjG7BnteBB+B7JmAK7iw3l2SW+VGOxL+akPweix6jk2NNJtyJKpn4TkpfK3Q== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.8" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + +"@types/styled-components@^5.1.26": + version "5.1.34" + resolved "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz" + integrity sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA== + dependencies: + "@types/hoist-non-react-statics" "*" + "@types/react" "*" + csstype "^3.0.2" + +"@uiw/codemirror-extensions-basic-setup@4.21.24": + version "4.21.24" + resolved "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.21.24.tgz" + integrity sha512-TJYKlPxNAVJNclW1EGumhC7I02jpdMgBon4jZvb5Aju9+tUzS44IwORxUx8BD8ZtH2UHmYS+04rE3kLk/BtnCQ== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/commands" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/search" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + +"@uiw/react-codemirror@^4.21.24": + version "4.21.24" + resolved "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.21.24.tgz" + integrity sha512-8zs5OuxbhikHocHBsVBMuW1vqlv4ccZAkt4rFwr7ebLP2Q6RwHsjpsR9GeGyAigAqonKRoeHugqF78UMrkaTgg== + dependencies: + "@babel/runtime" "^7.18.6" + "@codemirror/commands" "^6.1.0" + "@codemirror/state" "^6.1.1" + "@codemirror/theme-one-dark" "^6.0.0" + "@uiw/codemirror-extensions-basic-setup" "4.21.24" + codemirror "^6.0.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + 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== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +aria-hidden@^1.1.1, aria-hidden@^1.2.3: + version "1.2.4" + resolved "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz" + integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A== + dependencies: + tslib "^2.0.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz" + integrity sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +"babel-plugin-styled-components@>= 1.12.0": + version "2.1.4" + resolved "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz" + integrity sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + lodash "^4.17.21" + picomatch "^2.3.1" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +big-integer@^1.6.16: + version "1.6.52" + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +broadcast-channel@^3.4.1: + version "3.7.0" + resolved "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz" + integrity sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg== + dependencies: + "@babel/runtime" "^7.7.2" + detect-node "^2.1.0" + js-sha3 "0.8.0" + microseconds "0.2.0" + nano-time "1.0.0" + oblivious-set "1.0.0" + rimraf "3.0.2" + unload "2.2.0" + +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + +chalk@4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +cli-table3@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz" + integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +codemirror@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz" + integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/commands" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/search" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +compute-scroll-into-view@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz" + integrity sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^1.5.0: + 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== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crelt@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz" + integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-to-react-native@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +date-fns@2.30.0: + version "2.30.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +debug@^4.3.1: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deepmerge@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +detect-node-es@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== + +detect-node@^2.0.4, detect-node@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +fast-csv@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/fast-csv/-/fast-csv-5.0.1.tgz" + integrity sha512-Q43zC4NdQD5MAWOVQOF8KA+D6ddvTJjX2ib8zqysm74jZhtk6+dc8C75/OqRV6Y9CLc4kgvbC3PLG8YL4YZfgw== + dependencies: + "@fast-csv/format" "5.0.0" + "@fast-csv/parse" "5.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +follow-redirects@^1.15.0: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formik@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/formik/-/formik-2.4.0.tgz" + integrity sha512-QZiWztt9fD84EYcF7Bmr431ZhIm1xUVgBACbTuJ6azPrUpVp7o6q+t9HJaIQsFZrMfcBPNBotYtDgyDpzQ3z0Q== + dependencies: + deepmerge "^2.1.1" + hoist-non-react-statics "^3.3.0" + lodash "^4.17.21" + lodash-es "^4.17.21" + react-fast-compare "^2.0.1" + tiny-warning "^1.0.2" + tslib "^1.10.0" + +fs-extra@10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + 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== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +immer@9.0.19: + version "9.0.19" + resolved "https://registry.npmjs.org/immer/-/immer-9.0.19.tgz" + integrity sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +intl-messageformat@10.3.4: + version "10.3.4" + resolved "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.3.4.tgz" + integrity sha512-/FxUIrlbPtuykSNX85CB5sp2FjLVeTmdD7TfRkVFPft2n4FgcSlAcilFytYiFAEmPHc+0PvpLCIPXeaGFzIvOg== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/fast-memoize" "2.0.1" + "@formatjs/icu-messageformat-parser" "2.3.1" + tslib "^2.4.0" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-fullwidth-code-point@^3.0.0: + 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== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +js-sha3@0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + 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== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz" + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== + +lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz" + integrity sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isnil@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz" + integrity sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng== + +lodash.isundefined@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz" + integrity sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@4.17.21, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +match-sorter@^6.0.2: + version "6.3.4" + resolved "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz" + integrity sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg== + dependencies: + "@babel/runtime" "^7.23.8" + remove-accents "0.5.0" + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +microseconds@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz" + integrity sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nano-time@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz" + integrity sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA== + dependencies: + big-integer "^1.6.16" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +oblivious-set@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz" + integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +postcss-value-parser@^4.0.2: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +prettier@2.8.4: + version "2.8.4" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== + +prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +qs@6.11.1: + version "6.11.1" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz" + integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== + dependencies: + side-channel "^1.0.4" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-fast-compare@^2.0.1: + version "2.0.4" + resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + +react-fast-compare@^3.1.1: + version "3.2.2" + resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet@6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + +react-intl@6.4.1: + version "6.4.1" + resolved "https://registry.npmjs.org/react-intl/-/react-intl-6.4.1.tgz" + integrity sha512-/aT5595AEMZ+Pjmt8W2R5/ZkYJmyyd6jTzHzqhJ1LnfeG36+N5huBtykxYhHqLc1BrIRQ1fTX1orYC0Ej5ojtg== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/icu-messageformat-parser" "2.3.1" + "@formatjs/intl" "2.7.1" + "@formatjs/intl-displaynames" "6.3.1" + "@formatjs/intl-listformat" "7.2.1" + "@types/hoist-non-react-statics" "^3.3.1" + "@types/react" "16 || 17 || 18" + hoist-non-react-statics "^3.3.2" + intl-messageformat "10.3.4" + tslib "^2.4.0" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-query@3.39.3: + version "3.39.3" + resolved "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz" + integrity sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g== + dependencies: + "@babel/runtime" "^7.5.5" + broadcast-channel "^3.4.1" + match-sorter "^6.0.2" + +react-remove-scroll-bar@^2.3.3, react-remove-scroll-bar@^2.3.6: + version "2.3.6" + resolved "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz" + integrity sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + +react-remove-scroll@2.5.5: + version "2.5.5" + resolved "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz" + integrity sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw== + dependencies: + react-remove-scroll-bar "^2.3.3" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-remove-scroll@^2.5.7: + version "2.5.9" + resolved "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.9.tgz" + integrity sha512-bvHCLBrFfM2OgcrpPY2YW84sPdS2o2HKWJUf1xGyGLnSoEnOTOBpahIarjRuYtN0ryahCeP242yf+5TrBX/pZA== + dependencies: + react-remove-scroll-bar "^2.3.6" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.3.4: + version "5.3.4" + resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-select@5.7.0: + version "5.7.0" + resolved "https://registry.npmjs.org/react-select/-/react-select-5.7.0.tgz" + integrity sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ== + dependencies: + "@babel/runtime" "^7.12.0" + "@emotion/cache" "^11.4.0" + "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" + "@types/react-transition-group" "^4.4.0" + memoize-one "^6.0.0" + prop-types "^15.6.0" + react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" + +react-side-effect@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz" + integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== + +react-style-singleton@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz" + integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^2.0.0" + +react-transition-group@^4.3.0: + version "4.4.5" + resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +remove-accents@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz" + integrity sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve@^1.19.0: + version "1.22.8" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rimraf@3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +style-mod@^4.0.0, style-mod@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz" + integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw== + +styled-components@^5.3.6: + version "5.3.11" + resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz" + integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^1.1.0" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1.12.0" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + 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== + +tiny-invariant@^1.0.2: + version "1.3.3" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.0, tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + 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== + +tslib@^1.10.0: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +typescript@5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== + +typescript@5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unload@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz" + integrity sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA== + dependencies: + "@babel/runtime" "^7.6.2" + detect-node "^2.0.4" + +use-callback-ref@^1.3.0: + version "1.3.2" + resolved "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz" + integrity sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA== + dependencies: + tslib "^2.0.0" + +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-sidecar@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz" + integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== + dependencies: + detect-node-es "^1.1.0" + tslib "^2.0.0" + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +w3c-keyname@^2.2.4: + version "2.2.8" + resolved "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==