From 233ce6fea49c95e1bea3653fda7c6d17c3f45281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A4ser?= Date: Mon, 23 Jan 2023 13:13:32 +0100 Subject: [PATCH 1/4] feat: Add mysql client --- apps/backend/.env.prod | 26 ++ apps/backend/.env.staging | 26 ++ apps/backend/config/database.ts | 5 +- apps/backend/config/plugins.ts | 7 +- apps/backend/mysql.yml | 20 ++ apps/backend/package-lock.json | 229 ++++++++++++++++++ apps/backend/package.json | 2 + .../src/admin/webpack.config.example.js | 3 + apps/backend/src/components/shared/seo.json | 2 +- apps/backend/tsconfig.json | 2 +- .../components/layout/layout.module.scss | 1 + apps/client/libs/api.ts | 2 +- apps/client/pages/home/index.tsx | 11 +- apps/client/pages/index.tsx | 11 +- .../pages/lost-password/index.module.scss | 7 + apps/client/pages/lost-password/index.tsx | 56 +++++ apps/client/pages/sign-in/index.tsx | 13 +- apps/client/pages/sign-up/index.module.scss | 2 +- apps/client/pages/sign-up/index.tsx | 33 ++- .../signup-confirmation/index.module.scss | 7 + .../pages/signup-confirmation/index.tsx | 42 ++++ docker-compose.yml | 14 +- package.json | 2 +- 23 files changed, 499 insertions(+), 24 deletions(-) create mode 100644 apps/backend/.env.prod create mode 100644 apps/backend/.env.staging create mode 100644 apps/backend/mysql.yml create mode 100644 apps/client/pages/lost-password/index.module.scss create mode 100644 apps/client/pages/lost-password/index.tsx create mode 100644 apps/client/pages/signup-confirmation/index.module.scss create mode 100644 apps/client/pages/signup-confirmation/index.tsx diff --git a/apps/backend/.env.prod b/apps/backend/.env.prod new file mode 100644 index 0000000..f2c9238 --- /dev/null +++ b/apps/backend/.env.prod @@ -0,0 +1,26 @@ +HOST=0.0.0.0 +PORT=1337 +APP_KEYS=chUnDYzQYwe0TBtXVv4sPg==,fVrGPGw5Xd4UdPisWHOHxQ==,Qre2n8wneae2BrXOotmagw==,B3suExWQFpyJS9mhqNcOLg== +API_TOKEN_SALT=tyYia7Nui8Y0lM0IRTDjmg== +ADMIN_JWT_SECRET=q1dnfyvh3K7yhTYbYNS7jw== +JWT_SECRET=nc8prafomnDTfDdS00OqTQ== + +PG_DATABASE_HOST=localhost +PG_DATABASE_PORT=5432 +PG_DATABASE_NAME=gs_database +PG_DATABASE_USERNAME=gs_username +PG_DATABASE_ROOT_PASSWORD=gs_root_username +PG_DATABASE_PASSWORD=gs_password +PG_DATABASE_SCHEMA=public + +MYSQL_DATABASE_HOST=localhost +MYSQL_DATABASE_PORT=3306 +MYSQL_DATABASE_NAME=dpxtrufj_gs_database +MYSQL_DATABASE_USERNAME=dpxtrufj_gs_username +MYSQL_DATABASE_ROOT_PASSWORD=gs_root_username +MYSQL_DATABASE_PASSWORD=q7=@oa*F*s4?8*Hq4H + +SMTP_HOST=node143-eu.n0c.com +SMTP_PORT=587 +SMTP_USERNAME=no-reply@nasercloud.fr +SMTP_PASSWORD=GuitarSchool123! diff --git a/apps/backend/.env.staging b/apps/backend/.env.staging new file mode 100644 index 0000000..f2c9238 --- /dev/null +++ b/apps/backend/.env.staging @@ -0,0 +1,26 @@ +HOST=0.0.0.0 +PORT=1337 +APP_KEYS=chUnDYzQYwe0TBtXVv4sPg==,fVrGPGw5Xd4UdPisWHOHxQ==,Qre2n8wneae2BrXOotmagw==,B3suExWQFpyJS9mhqNcOLg== +API_TOKEN_SALT=tyYia7Nui8Y0lM0IRTDjmg== +ADMIN_JWT_SECRET=q1dnfyvh3K7yhTYbYNS7jw== +JWT_SECRET=nc8prafomnDTfDdS00OqTQ== + +PG_DATABASE_HOST=localhost +PG_DATABASE_PORT=5432 +PG_DATABASE_NAME=gs_database +PG_DATABASE_USERNAME=gs_username +PG_DATABASE_ROOT_PASSWORD=gs_root_username +PG_DATABASE_PASSWORD=gs_password +PG_DATABASE_SCHEMA=public + +MYSQL_DATABASE_HOST=localhost +MYSQL_DATABASE_PORT=3306 +MYSQL_DATABASE_NAME=dpxtrufj_gs_database +MYSQL_DATABASE_USERNAME=dpxtrufj_gs_username +MYSQL_DATABASE_ROOT_PASSWORD=gs_root_username +MYSQL_DATABASE_PASSWORD=q7=@oa*F*s4?8*Hq4H + +SMTP_HOST=node143-eu.n0c.com +SMTP_PORT=587 +SMTP_USERNAME=no-reply@nasercloud.fr +SMTP_PASSWORD=GuitarSchool123! diff --git a/apps/backend/config/database.ts b/apps/backend/config/database.ts index e838feb..c9d5916 100644 --- a/apps/backend/config/database.ts +++ b/apps/backend/config/database.ts @@ -1,13 +1,12 @@ export default ({env}) => ({ connection: { - client: 'postgres', + client: 'mysql', connection: { host: env('DATABASE_HOST', 'localhost'), - port: env.int('DATABASE_PORT', 5432), + port: env.int('DATABASE_PORT', 3306), database: env('DATABASE_NAME', 'bank'), user: env('DATABASE_USERNAME', 'postgres'), password: env('DATABASE_PASSWORD', '0000'), - schema: env('DATABASE_SCHEMA', 'public'), // Not required ssl: false, }, debug: false, diff --git a/apps/backend/config/plugins.ts b/apps/backend/config/plugins.ts index b269e93..22a9096 100644 --- a/apps/backend/config/plugins.ts +++ b/apps/backend/config/plugins.ts @@ -13,10 +13,13 @@ module.exports = ({env}) => ({ // ... any custom nodemailer options }, settings: { - defaultFrom: 'no-reply@naser.fr', - defaultReplyTo: 'contact@naser.fr', + defaultFrom: 'no-reply@strapi.io', + defaultReplyTo: 'synology@naser.fr', }, }, }, + 'import-export-entries': { + enabled: true + } // ... }); diff --git a/apps/backend/mysql.yml b/apps/backend/mysql.yml new file mode 100644 index 0000000..1f98a98 --- /dev/null +++ b/apps/backend/mysql.yml @@ -0,0 +1,20 @@ +services: + gs_mysql: + image: 'mariadb:10.3' + environment: + MYSQL_DATABASE: ${DATABASE_NAME} + # So you don't have to use root, but you can if you like + MYSQL_USER: ${DATABASE_USERNAME} + # You can use whatever password you like + MYSQL_PASSWORD: ${DATABASE_PASSWORD} + # Password for root access + MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD} + ports: + # : < MySQL Port running inside container> + - '3307:3306' + expose: + # Opens port 3306 on the container + - '3307' + # Where our data will be persisted + volumes: + - gs_mariadb-master:/var/lib/mysql diff --git a/apps/backend/package-lock.json b/apps/backend/package-lock.json index 79f8598..7fcedc5 100644 --- a/apps/backend/package-lock.json +++ b/apps/backend/package-lock.json @@ -15,7 +15,9 @@ "@strapi/strapi": "4.5.4", "@strapi/utils": "^4.5.6", "better-sqlite3": "7.4.6", + "mysql": "^2.18.1", "pg": "^8.8.0", + "strapi-plugin-import-export-entries": "^1.18.0", "strapi-plugin-menus": "^1.2.1", "strapi-plugin-populate-deep": "^1.1.2" }, @@ -2457,6 +2459,19 @@ "react": ">=16.3" } }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, "node_modules/@internationalized/number": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.1.2.tgz", @@ -2560,6 +2575,31 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "node_modules/@monaco-editor/loader": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.2.tgz", + "integrity": "sha512-BTDbpHl3e47r3AAtpfVFTlAi7WXv4UQ/xZmz8atKl4q7epQV5e7+JbigFDViWF71VBi4IIBdcWP57Hj+OWuc9g==", + "dependencies": { + "state-local": "^1.0.6" + }, + "peerDependencies": { + "monaco-editor": ">= 0.21.0 < 1" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.4.5.tgz", + "integrity": "sha512-IImtzU7sRc66OOaQVCG+5PFHkSWnnhrUWGBuH6zNmH2h0YgmAhcjHZQc/6MY9JWEbUtVF1WPBMJ9u1XuFbRrVA==", + "dependencies": { + "@monaco-editor/loader": "^1.3.2", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@mswjs/cookies": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", @@ -2833,6 +2873,24 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, "node_modules/@simov/deep-extend": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@simov/deep-extend/-/deep-extend-1.0.0.tgz", @@ -5598,6 +5656,14 @@ "node": "*" } }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -5637,6 +5703,11 @@ "node": ">= 6" } }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, "node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", @@ -7070,6 +7141,22 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, + "node_modules/csvtojson": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/csvtojson/-/csvtojson-2.0.10.tgz", + "integrity": "sha512-lUWFxGKyhraKCW8Qghz6Z0f2l/PqB1W3AO0HKJzGIQ5JRSlR651ekJDiGJbBT4sRNNv5ddnSGVEnsxP9XRCVpQ==", + "dependencies": { + "bluebird": "^3.5.1", + "lodash": "^4.17.3", + "strip-bom": "^2.0.0" + }, + "bin": { + "csvtojson": "bin/csvtojson" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -10235,6 +10322,11 @@ "upper-case": "^1.1.0" } }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -10315,6 +10407,18 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, "node_modules/joycon": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", @@ -11497,6 +11601,23 @@ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, + "node_modules/monaco-editor": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.33.0.tgz", + "integrity": "sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==" + }, + "node_modules/monaco-editor-webpack-plugin": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-7.0.1.tgz", + "integrity": "sha512-M8qIqizltrPlIbrb73cZdTWfU9sIsUVFvAZkL3KGjAHmVWEJ0hZKa/uad14JuOckc0GwnCaoGHvMoYtJjVyCzw==", + "dependencies": { + "loader-utils": "^2.0.2" + }, + "peerDependencies": { + "monaco-editor": ">= 0.31.0", + "webpack": "^4.5.0 || 5.x" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -11626,6 +11747,52 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/mysql/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/mysql/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/mysql/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -13835,6 +14002,22 @@ "react": "^16.3.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-singleton-hook": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/react-singleton-hook/-/react-singleton-hook-3.3.0.tgz", + "integrity": "sha512-U0qLp7LkpqPAnSQkKNPQmMd0mhar8hAm4VL+3y/bJFoi9H817wl+gM0z7RAMfOE49E8tlCMroEavqwJa6wItlg==", + "peerDependencies": { + "react": "15 - 18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -15264,6 +15447,14 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/sshpk": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", @@ -15301,6 +15492,11 @@ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" + }, "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -15402,6 +15598,28 @@ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.1.tgz", "integrity": "sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==" }, + "node_modules/strapi-plugin-import-export-entries": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/strapi-plugin-import-export-entries/-/strapi-plugin-import-export-entries-1.18.0.tgz", + "integrity": "sha512-pAokLrqjd08JS7N/LUvsym3JTvja25J0xKw4zbPUDEt5Fdr/N9/N7wthKy6cv7TA7f6qJFq3q1RNtyjhJ5Cf/Q==", + "dependencies": { + "@monaco-editor/react": "4.4.5", + "csvtojson": "2.0.10", + "deepmerge": "^4.2.2", + "joi": "17.6.0", + "lodash": "4.17.21", + "monaco-editor": "0.33.0", + "monaco-editor-webpack-plugin": "7.0.1", + "react-singleton-hook": "3.3.0" + }, + "engines": { + "node": ">=12.x.x <=18.x.x", + "npm": ">=6.0.0" + }, + "peerDependencies": { + "@strapi/strapi": "^4.0.0" + } + }, "node_modules/strapi-plugin-menus": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/strapi-plugin-menus/-/strapi-plugin-menus-1.2.1.tgz", @@ -15619,6 +15837,17 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", diff --git a/apps/backend/package.json b/apps/backend/package.json index ef0b305..a7bbddc 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -20,7 +20,9 @@ "@strapi/strapi": "4.5.4", "@strapi/utils": "^4.5.6", "better-sqlite3": "7.4.6", + "mysql": "^2.18.1", "pg": "^8.8.0", + "strapi-plugin-import-export-entries": "^1.18.0", "strapi-plugin-menus": "^1.2.1", "strapi-plugin-populate-deep": "^1.1.2" }, diff --git a/apps/backend/src/admin/webpack.config.example.js b/apps/backend/src/admin/webpack.config.example.js index 1ca45c2..b42dfe6 100644 --- a/apps/backend/src/admin/webpack.config.example.js +++ b/apps/backend/src/admin/webpack.config.example.js @@ -1,9 +1,12 @@ 'use strict'; +const MonacoWebackPlugin = require('monaco-editor-webpack-plugin'); /* eslint-disable no-unused-vars */ module.exports = (config, webpack) => { // Note: we provide webpack above so you should not `require` it // Perform customizations to webpack config // Important: return the modified config + + config.plugins.push(new MonacoWebackPlugin()) return config; }; diff --git a/apps/backend/src/components/shared/seo.json b/apps/backend/src/components/shared/seo.json index c9f433e..a4a386a 100644 --- a/apps/backend/src/components/shared/seo.json +++ b/apps/backend/src/components/shared/seo.json @@ -11,7 +11,7 @@ "type": "string" }, "metaDescription": { - "type": "string" + "type": "text" }, "SharedImage": { "displayName": "SharedImage", diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json index b9532e3..76e3e00 100644 --- a/apps/backend/tsconfig.json +++ b/apps/backend/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "@strapi/typescript-utils/tsconfigs/server", "compilerOptions": { - "outDir": "dist", + "outDir": "../../dist/backend/dist", "rootDir": "." }, "include": [ diff --git a/apps/client/components/layout/layout.module.scss b/apps/client/components/layout/layout.module.scss index 3c10a36..76fd24c 100644 --- a/apps/client/components/layout/layout.module.scss +++ b/apps/client/components/layout/layout.module.scss @@ -64,6 +64,7 @@ @media (min-width: 1024px) { .app-container:not(.without-footer) { .app-content { + padding-top: 135px; min-height: calc(100vh - 181px); } } diff --git a/apps/client/libs/api.ts b/apps/client/libs/api.ts index 88f13d5..9103767 100644 --- a/apps/client/libs/api.ts +++ b/apps/client/libs/api.ts @@ -28,7 +28,7 @@ export const signUpRequest = async (inputs: Inputs) => { username: inputs.username, newsletter: inputs.newsletter }); - return registerResponse && !registerResponse.data.error; + return registerResponse.data; } catch (err) { return Promise.reject('Internal error'); } diff --git a/apps/client/pages/home/index.tsx b/apps/client/pages/home/index.tsx index 6b8e476..b130843 100644 --- a/apps/client/pages/home/index.tsx +++ b/apps/client/pages/home/index.tsx @@ -4,11 +4,20 @@ import delve from "dlv"; import SeoConfig from "../../components/seo-config/seo-config"; import Layout from "../../components/layout/layout"; +const getPageMetadata = async (path) => { + try { + return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + } catch (e) { + console.error(e); + return Promise.resolve({}) + } +} + export const getServerSideProps = async (context) => { const path = context.resolvedUrl; const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); - const page = await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + const page = await getPageMetadata(path); return { props: { menuHeader: delve(menuHeader, 'data.data.attributes.items.data', []), diff --git a/apps/client/pages/index.tsx b/apps/client/pages/index.tsx index 48cf67c..47093d8 100644 --- a/apps/client/pages/index.tsx +++ b/apps/client/pages/index.tsx @@ -5,11 +5,20 @@ import SeoConfig from "../components/seo-config/seo-config"; import Layout from "../components/layout/layout"; +const getPageMetadata = async (path) => { + try { + return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + } catch (e) { + console.error(e); + return Promise.resolve({}) + } +} + export const getServerSideProps = async (context) => { const path = context.resolvedUrl; const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); - const page = await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path}&populate=deep`); + const page = await getPageMetadata(path); return { props: { menuHeader: delve(menuHeader, 'data.data.attributes.items.data', []), diff --git a/apps/client/pages/lost-password/index.module.scss b/apps/client/pages/lost-password/index.module.scss new file mode 100644 index 0000000..45c2aa4 --- /dev/null +++ b/apps/client/pages/lost-password/index.module.scss @@ -0,0 +1,7 @@ +/* + * Replace this with your own classes + * + * e.g. + * .container { + * } +*/ diff --git a/apps/client/pages/lost-password/index.tsx b/apps/client/pages/lost-password/index.tsx new file mode 100644 index 0000000..dcbc6ca --- /dev/null +++ b/apps/client/pages/lost-password/index.tsx @@ -0,0 +1,56 @@ +import axios from "axios"; +import delve from "dlv"; +import SeoConfig from "../../components/seo-config/seo-config"; +import Layout from "../../components/layout/layout"; +import styles from "../sign-up/index.module.scss"; + +const getPageMetadata = async (path) => { + try { + return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + } catch (e) { + console.error(e); + return Promise.resolve({}) + } +} + +export const getServerSideProps = async (context) => { + const path = context.resolvedUrl; + const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); + const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + const page = await getPageMetadata(path); + return { + props: { + menuHeaders: delve(menuHeader, 'data.data.attributes.items.data', []), + menuFooter: delve(menuFooter, 'data.data.attributes.items.data', []), + page: delve(page, "data.data.0.attributes", {}), + seo: delve(page, "data.data.0.attributes.seo", {}) + } + } +} + +export function LostPassword({menuHeaders, menuFooter, page, seo}) { + return ( + <> + + +
+
+
+
+
+

Form here

+
+
+ Phone image +
+
+
+
+
+
+ + ); +} + +export default LostPassword; diff --git a/apps/client/pages/sign-in/index.tsx b/apps/client/pages/sign-in/index.tsx index 732487a..0cd70bb 100644 --- a/apps/client/pages/sign-in/index.tsx +++ b/apps/client/pages/sign-in/index.tsx @@ -8,10 +8,19 @@ import Layout from "../../components/layout/layout"; import styles from './index.module.scss'; import {createJwtToken} from "../../libs/auth"; +const getPageMetadata = async (path) => { + try { + return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + } catch (e) { + console.error(e); + return Promise.resolve({}) + } +} + export const getServerSideProps = async (context) => { const path = context.resolvedUrl; const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); - const page = await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + const page = await getPageMetadata(path); return { props: { @@ -95,7 +104,7 @@ export function SignIn({seo, menuFooter}) { Rester connecté ? - Mot de passe oublié ? diff --git a/apps/client/pages/sign-up/index.module.scss b/apps/client/pages/sign-up/index.module.scss index b20d148..1199be9 100644 --- a/apps/client/pages/sign-up/index.module.scss +++ b/apps/client/pages/sign-up/index.module.scss @@ -8,7 +8,7 @@ .page-sign-up { .section { - min-height: 70vh; + min-height: 63vh; justify-content: center; display: flex; align-items: center; diff --git a/apps/client/pages/sign-up/index.tsx b/apps/client/pages/sign-up/index.tsx index 9067176..7e2918e 100644 --- a/apps/client/pages/sign-up/index.tsx +++ b/apps/client/pages/sign-up/index.tsx @@ -9,13 +9,22 @@ import Layout from "../../components/layout/layout"; import {Inputs, signUpRequest} from "../../libs/api"; import {createJwtToken} from "../../libs/auth"; import {useEffect, useState} from "react"; -import {BehaviorSubject, debounceTime, distinctUntilChanged, filter, map, switchMap} from "rxjs"; +import {BehaviorSubject, catchError, debounceTime, distinctUntilChanged, filter, map, of, switchMap} from "rxjs"; + +const getPageMetadata = async (path) => { + try { + return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + } catch (e) { + console.error(e); + return Promise.resolve({}) + } +} export const getServerSideProps = async (context) => { const path = context.resolvedUrl; const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); - const page = await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + const page = await getPageMetadata(path); return { props: { @@ -61,17 +70,27 @@ export function SignUp({seo, menuHeaders, menuFooter}) { clearErrors('email'); } }), + catchError((err) => of(false)) ).subscribe(() => setSpinner(false)); } }, [subject]); const onSubmit: SubmitHandler = async (data: Inputs) => { try { - await signUpRequest(data); - const result = await createJwtToken(data.email, data.password); - if (result.ok) { - await router.replace('/'); - return; + const response = await signUpRequest(data); + if (response && response.user) { + if (response.user.confirmed) { + const result = await createJwtToken(data.email, data.password); + if (result.ok) { + await router.replace('/'); + return; + } + } else { + await router.push('/signup-confirmation') + return; + } + } else { + throw new Error('no registered'); } } catch (e) { console.error(e); diff --git a/apps/client/pages/signup-confirmation/index.module.scss b/apps/client/pages/signup-confirmation/index.module.scss new file mode 100644 index 0000000..45c2aa4 --- /dev/null +++ b/apps/client/pages/signup-confirmation/index.module.scss @@ -0,0 +1,7 @@ +/* + * Replace this with your own classes + * + * e.g. + * .container { + * } +*/ diff --git a/apps/client/pages/signup-confirmation/index.tsx b/apps/client/pages/signup-confirmation/index.tsx new file mode 100644 index 0000000..f3c7e00 --- /dev/null +++ b/apps/client/pages/signup-confirmation/index.tsx @@ -0,0 +1,42 @@ +import axios from "axios"; +import delve from 'dlv'; + +import SeoConfig from "../../components/seo-config/seo-config"; +import Layout from "../../components/layout/layout"; + +const getPageMetadata = async (path) => { + try { + return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + } catch (e) { + console.error(e); + return Promise.resolve({}) + } +} + +export const getServerSideProps = async (context) => { + const path = context.resolvedUrl; + const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); + const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + const page = await getPageMetadata(path); + return { + props: { + menuHeader: delve(menuHeader, 'data.data.attributes.items.data', []), + menuFooter: delve(menuFooter, 'data.data.attributes.items.data', []), + page: delve(page, "data.data.0.attributes", {}), + seo: delve(page, "data.data.0.attributes.seo", {}) + } + } +} + +export function SignupConfirmation({menuHeader, menuFooter, page, seo}) { + return ( + <> + + +

Page d'accueil

+
+ + ); +} + +export default SignupConfirmation; diff --git a/docker-compose.yml b/docker-compose.yml index 3948b2f..c0b23ac 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,16 @@ services: # PostgreSQL (Database) - gs_postgres: + #gs_postgres: + # extends: + # file: apps/backend/postgres.yml + # service: gs_postgres + + # MySQL (Database) + gs_mysql: extends: - file: apps/backend/postgres.yml - service: gs_postgres + file: apps/backend/mysql.yml + service: gs_mysql gs_redis: image: "redis:alpine" @@ -23,3 +29,5 @@ services: volumes: gs_postgres-master: driver: local + gs_mariadb-master: + driver: local diff --git a/package.json b/package.json index c603546..cfb5547 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "license": "MIT", "scripts": { - "start:docker": "env $(cat apps/backend/.env) docker-compose up -d", + "start:docker": "env $(cat apps/backend/.env) docker-compose up -d --force-recreate", "install:backend": "cd apps/backend && npm install", "generate:backend": "cd apps/backend && npm run generate", "build:backend": "cd apps/backend && npm run build", From 2266345b567453e4e86ae1c4abcb4256c3b8d794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A4ser?= Date: Wed, 25 Jan 2023 10:32:43 +0100 Subject: [PATCH 2/4] chore: move client to website folder --- apps/client-e2e/.eslintrc.json | 17 -- apps/client-e2e/cypress.config.ts | 6 - apps/client-e2e/project.json | 30 --- apps/client-e2e/src/e2e/app.cy.ts | 13 -- apps/client-e2e/src/fixtures/example.json | 4 - apps/client-e2e/src/support/app.po.ts | 1 - apps/client-e2e/src/support/commands.ts | 33 ---- apps/client-e2e/src/support/e2e.ts | 17 -- apps/client-e2e/tsconfig.json | 10 - apps/client/.eslintrc.json | 49 ----- apps/client/environments/environments.prod.ts | 7 - apps/client/environments/environments.ts | 7 - apps/client/postcss.config.js | 15 -- apps/client/tailwind.config.js | 17 -- .../{client/.env => website/.env.development} | 0 apps/website/.env.production | 4 + apps/website/.env.staging | 4 + apps/website/.eslintrc.json | 31 +++ .../components/carousel/carousel.module.scss | 0 .../components/carousel/carousel.spec.tsx | 0 .../components/carousel/carousel.tsx | 0 .../components/footer/footer.module.scss | 0 .../components/footer/footer.spec.tsx | 0 .../components/footer/footer.tsx | 0 .../header-auth/header-auth.module.scss | 0 .../header-auth/header-auth.spec.tsx | 0 .../components/header-auth/header-auth.tsx | 0 .../components/header/header.module.scss | 0 .../components/header/header.spec.tsx | 0 .../components/header/header.tsx | 0 .../components/layout/layout.module.scss | 0 .../components/layout/layout.spec.tsx | 0 .../components/layout/layout.tsx | 0 .../seo-config/seo-config.module.scss | 0 .../components/seo-config/seo-config.spec.tsx | 0 .../components/seo-config/seo-config.tsx | 0 apps/{client => website}/config.ts | 0 apps/{client => website}/index.d.ts | 0 apps/{client => website}/jest.config.ts | 4 +- apps/{client => website}/libs/api.ts | 6 +- apps/{client => website}/libs/auth.ts | 0 apps/{client => website}/next-env.d.ts | 0 apps/{client => website}/next.config.js | 2 +- apps/website/package.json | 14 ++ apps/{client => website}/pages/_app.tsx | 0 .../pages/api/auth/[...nextauth].ts | 0 .../pages/home/index.module.scss | 0 apps/{client => website}/pages/home/index.tsx | 0 .../pages/index.module.scss | 0 apps/{client => website}/pages/index.tsx | 0 .../pages/lost-password/index.module.scss | 0 .../pages/lost-password/index.tsx | 0 .../pages/sign-in/index.module.scss | 0 .../pages/sign-in/index.tsx | 0 .../pages/sign-up/index.module.scss | 0 .../pages/sign-up/index.tsx | 0 .../signup-confirmation/index.module.scss | 0 .../pages/signup-confirmation/index.tsx | 0 apps/{client => website}/pages/styles.css | 0 apps/{client => website}/project.json | 33 ++-- apps/website/public/.gitkeep | 0 apps/{client => website}/specs/index.spec.tsx | 0 apps/{client => website}/tsconfig.json | 0 apps/{client => website}/tsconfig.spec.json | 0 apps/website/with-nx.js | 176 ++++++++++++++++++ 65 files changed, 250 insertions(+), 250 deletions(-) delete mode 100644 apps/client-e2e/.eslintrc.json delete mode 100644 apps/client-e2e/cypress.config.ts delete mode 100644 apps/client-e2e/project.json delete mode 100644 apps/client-e2e/src/e2e/app.cy.ts delete mode 100644 apps/client-e2e/src/fixtures/example.json delete mode 100644 apps/client-e2e/src/support/app.po.ts delete mode 100644 apps/client-e2e/src/support/commands.ts delete mode 100644 apps/client-e2e/src/support/e2e.ts delete mode 100644 apps/client-e2e/tsconfig.json delete mode 100644 apps/client/.eslintrc.json delete mode 100644 apps/client/environments/environments.prod.ts delete mode 100644 apps/client/environments/environments.ts delete mode 100644 apps/client/postcss.config.js delete mode 100644 apps/client/tailwind.config.js rename apps/{client/.env => website/.env.development} (100%) create mode 100644 apps/website/.env.production create mode 100644 apps/website/.env.staging create mode 100644 apps/website/.eslintrc.json rename apps/{client => website}/components/carousel/carousel.module.scss (100%) rename apps/{client => website}/components/carousel/carousel.spec.tsx (100%) rename apps/{client => website}/components/carousel/carousel.tsx (100%) rename apps/{client => website}/components/footer/footer.module.scss (100%) rename apps/{client => website}/components/footer/footer.spec.tsx (100%) rename apps/{client => website}/components/footer/footer.tsx (100%) rename apps/{client => website}/components/header-auth/header-auth.module.scss (100%) rename apps/{client => website}/components/header-auth/header-auth.spec.tsx (100%) rename apps/{client => website}/components/header-auth/header-auth.tsx (100%) rename apps/{client => website}/components/header/header.module.scss (100%) rename apps/{client => website}/components/header/header.spec.tsx (100%) rename apps/{client => website}/components/header/header.tsx (100%) rename apps/{client => website}/components/layout/layout.module.scss (100%) rename apps/{client => website}/components/layout/layout.spec.tsx (100%) rename apps/{client => website}/components/layout/layout.tsx (100%) rename apps/{client => website}/components/seo-config/seo-config.module.scss (100%) rename apps/{client => website}/components/seo-config/seo-config.spec.tsx (100%) rename apps/{client => website}/components/seo-config/seo-config.tsx (100%) rename apps/{client => website}/config.ts (100%) rename apps/{client => website}/index.d.ts (100%) rename apps/{client => website}/jest.config.ts (78%) rename apps/{client => website}/libs/api.ts (75%) rename apps/{client => website}/libs/auth.ts (100%) rename apps/{client => website}/next-env.d.ts (100%) rename apps/{client => website}/next.config.js (85%) create mode 100644 apps/website/package.json rename apps/{client => website}/pages/_app.tsx (100%) rename apps/{client => website}/pages/api/auth/[...nextauth].ts (100%) rename apps/{client => website}/pages/home/index.module.scss (100%) rename apps/{client => website}/pages/home/index.tsx (100%) rename apps/{client => website}/pages/index.module.scss (100%) rename apps/{client => website}/pages/index.tsx (100%) rename apps/{client => website}/pages/lost-password/index.module.scss (100%) rename apps/{client => website}/pages/lost-password/index.tsx (100%) rename apps/{client => website}/pages/sign-in/index.module.scss (100%) rename apps/{client => website}/pages/sign-in/index.tsx (100%) rename apps/{client => website}/pages/sign-up/index.module.scss (100%) rename apps/{client => website}/pages/sign-up/index.tsx (100%) rename apps/{client => website}/pages/signup-confirmation/index.module.scss (100%) rename apps/{client => website}/pages/signup-confirmation/index.tsx (100%) rename apps/{client => website}/pages/styles.css (100%) rename apps/{client => website}/project.json (61%) create mode 100644 apps/website/public/.gitkeep rename apps/{client => website}/specs/index.spec.tsx (100%) rename apps/{client => website}/tsconfig.json (100%) rename apps/{client => website}/tsconfig.spec.json (100%) create mode 100644 apps/website/with-nx.js diff --git a/apps/client-e2e/.eslintrc.json b/apps/client-e2e/.eslintrc.json deleted file mode 100644 index 4c5989b..0000000 --- a/apps/client-e2e/.eslintrc.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["src/plugins/index.js"], - "rules": { - "@typescript-eslint/no-var-requires": "off", - "no-undef": "off" - } - } - ] -} diff --git a/apps/client-e2e/cypress.config.ts b/apps/client-e2e/cypress.config.ts deleted file mode 100644 index 22f7c84..0000000 --- a/apps/client-e2e/cypress.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from 'cypress'; -import { nxE2EPreset } from '@nrwl/cypress/plugins/cypress-preset'; - -export default defineConfig({ - e2e: nxE2EPreset(__dirname), -}); diff --git a/apps/client-e2e/project.json b/apps/client-e2e/project.json deleted file mode 100644 index 41236d8..0000000 --- a/apps/client-e2e/project.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "client-e2e", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/client-e2e/src", - "projectType": "application", - "targets": { - "e2e": { - "executor": "@nrwl/cypress:cypress", - "options": { - "cypressConfig": "apps/client-e2e/cypress.config.ts", - "devServerTarget": "client:serve:development", - "testingType": "e2e" - }, - "configurations": { - "production": { - "devServerTarget": "client:serve:production" - } - } - }, - "lint": { - "executor": "@nrwl/linter:eslint", - "outputs": ["{options.outputFile}"], - "options": { - "lintFilePatterns": ["apps/client-e2e/**/*.{js,ts}"] - } - } - }, - "tags": [], - "implicitDependencies": ["client"] -} diff --git a/apps/client-e2e/src/e2e/app.cy.ts b/apps/client-e2e/src/e2e/app.cy.ts deleted file mode 100644 index dee0e0b..0000000 --- a/apps/client-e2e/src/e2e/app.cy.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getGreeting } from '../support/app.po'; - -describe('client', () => { - beforeEach(() => cy.visit('/')); - - it('should display welcome message', () => { - // Custom command example, see `../support/commands.ts` file - cy.login('my-email@something.com', 'myPassword'); - - // Function helper example, see `../support/app.po.ts` file - getGreeting().contains('Welcome client'); - }); -}); diff --git a/apps/client-e2e/src/fixtures/example.json b/apps/client-e2e/src/fixtures/example.json deleted file mode 100644 index 294cbed..0000000 --- a/apps/client-e2e/src/fixtures/example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io" -} diff --git a/apps/client-e2e/src/support/app.po.ts b/apps/client-e2e/src/support/app.po.ts deleted file mode 100644 index 3293424..0000000 --- a/apps/client-e2e/src/support/app.po.ts +++ /dev/null @@ -1 +0,0 @@ -export const getGreeting = () => cy.get('h1'); diff --git a/apps/client-e2e/src/support/commands.ts b/apps/client-e2e/src/support/commands.ts deleted file mode 100644 index 310f1fa..0000000 --- a/apps/client-e2e/src/support/commands.ts +++ /dev/null @@ -1,33 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** - -// eslint-disable-next-line @typescript-eslint/no-namespace -declare namespace Cypress { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - interface Chainable { - login(email: string, password: string): void; - } -} -// -// -- This is a parent command -- -Cypress.Commands.add('login', (email, password) => { - console.log('Custom command example: Login', email, password); -}); -// -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/client-e2e/src/support/e2e.ts b/apps/client-e2e/src/support/e2e.ts deleted file mode 100644 index 3d469a6..0000000 --- a/apps/client-e2e/src/support/e2e.ts +++ /dev/null @@ -1,17 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; diff --git a/apps/client-e2e/tsconfig.json b/apps/client-e2e/tsconfig.json deleted file mode 100644 index cc509a7..0000000 --- a/apps/client-e2e/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "sourceMap": false, - "outDir": "../../dist/out-tsc", - "allowJs": true, - "types": ["cypress", "node"] - }, - "include": ["src/**/*.ts", "src/**/*.js", "cypress.config.ts"] -} diff --git a/apps/client/.eslintrc.json b/apps/client/.eslintrc.json deleted file mode 100644 index 445a04e..0000000 --- a/apps/client/.eslintrc.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "extends": [ - "plugin:@nrwl/nx/react-typescript", - "next", - "next/core-web-vitals", - "../../.eslintrc.json" - ], - "ignorePatterns": [ - "!**/*", - ".next/**/*" - ], - "overrides": [ - { - "files": [ - "*.ts", - "*.tsx", - "*.js", - "*.jsx" - ], - "rules": { - "@next/next/no-html-link-for-pages": [ - "error", - "apps/client/pages" - ] - } - }, - { - "files": [ - "*.ts", - "*.tsx" - ], - "rules": {} - }, - { - "files": [ - "*.js", - "*.jsx" - ], - "rules": {} - } - ], - "rules": { - "@next/next/no-html-link-for-pages": "off", - "@typescript-eslint/ban-ts-comment": "off" - }, - "env": { - "jest": true - } -} diff --git a/apps/client/environments/environments.prod.ts b/apps/client/environments/environments.prod.ts deleted file mode 100644 index 78cee80..0000000 --- a/apps/client/environments/environments.prod.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const environment = { - production: true, - strapi: { - apiUrl: 'http://localhost:1337/api', - url: 'http://localhost:1337' - } -}; diff --git a/apps/client/environments/environments.ts b/apps/client/environments/environments.ts deleted file mode 100644 index 657bb18..0000000 --- a/apps/client/environments/environments.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const environment = { - production: false, - strapi: { - apiUrl: 'http://localhost:1337/api', - url: 'http://localhost:1337' - } -}; diff --git a/apps/client/postcss.config.js b/apps/client/postcss.config.js deleted file mode 100644 index c72626d..0000000 --- a/apps/client/postcss.config.js +++ /dev/null @@ -1,15 +0,0 @@ -const { join } = require('path'); - -// Note: If you use library-specific PostCSS/Tailwind configuration then you should remove the `postcssConfig` build -// option from your application's configuration (i.e. project.json). -// -// See: https://nx.dev/guides/using-tailwind-css-in-react#step-4:-applying-configuration-to-libraries - -module.exports = { - plugins: { - tailwindcss: { - config: join(__dirname, 'tailwind.config.js'), - }, - autoprefixer: {}, - }, -}; diff --git a/apps/client/tailwind.config.js b/apps/client/tailwind.config.js deleted file mode 100644 index 05ff71f..0000000 --- a/apps/client/tailwind.config.js +++ /dev/null @@ -1,17 +0,0 @@ -const {createGlobPatternsForDependencies} = require('@nrwl/react/tailwind'); -const {join} = require('path'); - -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: [ - join( - __dirname, - '{src,pages,components}/**/*!(*.stories|*.spec).{ts,tsx,html}' - ), - ...createGlobPatternsForDependencies(__dirname), - ], - theme: { - extend: {}, - }, - plugins: [], -}; diff --git a/apps/client/.env b/apps/website/.env.development similarity index 100% rename from apps/client/.env rename to apps/website/.env.development diff --git a/apps/website/.env.production b/apps/website/.env.production new file mode 100644 index 0000000..d2ea0ef --- /dev/null +++ b/apps/website/.env.production @@ -0,0 +1,4 @@ +STRAPI_URL_API=http://127.0.0.1:1337/api +STRAPI_URL=http://127.0.0.1:1337/ +NEXTAUTH_SECRET= +NEXTAUTH_URL=http://localhost:4200 diff --git a/apps/website/.env.staging b/apps/website/.env.staging new file mode 100644 index 0000000..d2ea0ef --- /dev/null +++ b/apps/website/.env.staging @@ -0,0 +1,4 @@ +STRAPI_URL_API=http://127.0.0.1:1337/api +STRAPI_URL=http://127.0.0.1:1337/ +NEXTAUTH_SECRET= +NEXTAUTH_URL=http://localhost:4200 diff --git a/apps/website/.eslintrc.json b/apps/website/.eslintrc.json new file mode 100644 index 0000000..8d6d104 --- /dev/null +++ b/apps/website/.eslintrc.json @@ -0,0 +1,31 @@ +{ + "extends": [ + "plugin:@nrwl/nx/react-typescript", + "next", + "next/core-web-vitals", + "../../.eslintrc.json" + ], + "ignorePatterns": ["!**/*", ".next/**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": { + "@next/next/no-html-link-for-pages": ["error", "apps/website/pages"] + } + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ], + "rules": { + "@next/next/no-html-link-for-pages": "off" + }, + "env": { + "jest": true + } +} diff --git a/apps/client/components/carousel/carousel.module.scss b/apps/website/components/carousel/carousel.module.scss similarity index 100% rename from apps/client/components/carousel/carousel.module.scss rename to apps/website/components/carousel/carousel.module.scss diff --git a/apps/client/components/carousel/carousel.spec.tsx b/apps/website/components/carousel/carousel.spec.tsx similarity index 100% rename from apps/client/components/carousel/carousel.spec.tsx rename to apps/website/components/carousel/carousel.spec.tsx diff --git a/apps/client/components/carousel/carousel.tsx b/apps/website/components/carousel/carousel.tsx similarity index 100% rename from apps/client/components/carousel/carousel.tsx rename to apps/website/components/carousel/carousel.tsx diff --git a/apps/client/components/footer/footer.module.scss b/apps/website/components/footer/footer.module.scss similarity index 100% rename from apps/client/components/footer/footer.module.scss rename to apps/website/components/footer/footer.module.scss diff --git a/apps/client/components/footer/footer.spec.tsx b/apps/website/components/footer/footer.spec.tsx similarity index 100% rename from apps/client/components/footer/footer.spec.tsx rename to apps/website/components/footer/footer.spec.tsx diff --git a/apps/client/components/footer/footer.tsx b/apps/website/components/footer/footer.tsx similarity index 100% rename from apps/client/components/footer/footer.tsx rename to apps/website/components/footer/footer.tsx diff --git a/apps/client/components/header-auth/header-auth.module.scss b/apps/website/components/header-auth/header-auth.module.scss similarity index 100% rename from apps/client/components/header-auth/header-auth.module.scss rename to apps/website/components/header-auth/header-auth.module.scss diff --git a/apps/client/components/header-auth/header-auth.spec.tsx b/apps/website/components/header-auth/header-auth.spec.tsx similarity index 100% rename from apps/client/components/header-auth/header-auth.spec.tsx rename to apps/website/components/header-auth/header-auth.spec.tsx diff --git a/apps/client/components/header-auth/header-auth.tsx b/apps/website/components/header-auth/header-auth.tsx similarity index 100% rename from apps/client/components/header-auth/header-auth.tsx rename to apps/website/components/header-auth/header-auth.tsx diff --git a/apps/client/components/header/header.module.scss b/apps/website/components/header/header.module.scss similarity index 100% rename from apps/client/components/header/header.module.scss rename to apps/website/components/header/header.module.scss diff --git a/apps/client/components/header/header.spec.tsx b/apps/website/components/header/header.spec.tsx similarity index 100% rename from apps/client/components/header/header.spec.tsx rename to apps/website/components/header/header.spec.tsx diff --git a/apps/client/components/header/header.tsx b/apps/website/components/header/header.tsx similarity index 100% rename from apps/client/components/header/header.tsx rename to apps/website/components/header/header.tsx diff --git a/apps/client/components/layout/layout.module.scss b/apps/website/components/layout/layout.module.scss similarity index 100% rename from apps/client/components/layout/layout.module.scss rename to apps/website/components/layout/layout.module.scss diff --git a/apps/client/components/layout/layout.spec.tsx b/apps/website/components/layout/layout.spec.tsx similarity index 100% rename from apps/client/components/layout/layout.spec.tsx rename to apps/website/components/layout/layout.spec.tsx diff --git a/apps/client/components/layout/layout.tsx b/apps/website/components/layout/layout.tsx similarity index 100% rename from apps/client/components/layout/layout.tsx rename to apps/website/components/layout/layout.tsx diff --git a/apps/client/components/seo-config/seo-config.module.scss b/apps/website/components/seo-config/seo-config.module.scss similarity index 100% rename from apps/client/components/seo-config/seo-config.module.scss rename to apps/website/components/seo-config/seo-config.module.scss diff --git a/apps/client/components/seo-config/seo-config.spec.tsx b/apps/website/components/seo-config/seo-config.spec.tsx similarity index 100% rename from apps/client/components/seo-config/seo-config.spec.tsx rename to apps/website/components/seo-config/seo-config.spec.tsx diff --git a/apps/client/components/seo-config/seo-config.tsx b/apps/website/components/seo-config/seo-config.tsx similarity index 100% rename from apps/client/components/seo-config/seo-config.tsx rename to apps/website/components/seo-config/seo-config.tsx diff --git a/apps/client/config.ts b/apps/website/config.ts similarity index 100% rename from apps/client/config.ts rename to apps/website/config.ts diff --git a/apps/client/index.d.ts b/apps/website/index.d.ts similarity index 100% rename from apps/client/index.d.ts rename to apps/website/index.d.ts diff --git a/apps/client/jest.config.ts b/apps/website/jest.config.ts similarity index 78% rename from apps/client/jest.config.ts rename to apps/website/jest.config.ts index 9b46e82..b71b9c6 100644 --- a/apps/client/jest.config.ts +++ b/apps/website/jest.config.ts @@ -1,11 +1,11 @@ /* eslint-disable */ export default { - displayName: 'client', + displayName: 'website', preset: '../../jest.preset.js', transform: { '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nrwl/react/plugins/jest', '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nrwl/next/babel'] }], }, moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], - coverageDirectory: '../../coverage/apps/client', + coverageDirectory: '../../coverage/apps/website', }; diff --git a/apps/client/libs/api.ts b/apps/website/libs/api.ts similarity index 75% rename from apps/client/libs/api.ts rename to apps/website/libs/api.ts index 9103767..5ee05fc 100644 --- a/apps/client/libs/api.ts +++ b/apps/website/libs/api.ts @@ -1,8 +1,6 @@ import axios from "axios"; import * as _ from 'lodash'; -import {environment} from "../environments/environments"; - export type Inputs = { email: string, username: string, @@ -17,12 +15,12 @@ export const hasAvatar = (user) => { } export const getBackendImg = (imageUrl: string) => { - return `${environment.strapi.url}${imageUrl}`; + return `${process.env.STRAPI_URL}${imageUrl}`; } export const signUpRequest = async (inputs: Inputs) => { try { - const registerResponse = await axios.post(`${environment.strapi.apiUrl}/auth/local/register`, { + const registerResponse = await axios.post(`${process.env.STRAPI_URL_API}/auth/local/register`, { email: inputs.email, password: inputs.password, username: inputs.username, diff --git a/apps/client/libs/auth.ts b/apps/website/libs/auth.ts similarity index 100% rename from apps/client/libs/auth.ts rename to apps/website/libs/auth.ts diff --git a/apps/client/next-env.d.ts b/apps/website/next-env.d.ts similarity index 100% rename from apps/client/next-env.d.ts rename to apps/website/next-env.d.ts diff --git a/apps/client/next.config.js b/apps/website/next.config.js similarity index 85% rename from apps/client/next.config.js rename to apps/website/next.config.js index 84124f6..81bf708 100644 --- a/apps/client/next.config.js +++ b/apps/website/next.config.js @@ -1,7 +1,7 @@ //@ts-check // eslint-disable-next-line @typescript-eslint/no-var-requires -const { withNx } = require('@nrwl/next/plugins/with-nx'); +const { withNx } = require('./with-nx.js'); /** * @type {import('@nrwl/next/plugins/with-nx').WithNxOptions} diff --git a/apps/website/package.json b/apps/website/package.json new file mode 100644 index 0000000..03ddcb2 --- /dev/null +++ b/apps/website/package.json @@ -0,0 +1,14 @@ +{ + "name": "website", + "version": "0.0.1", + "dependencies": { + "@nrwl/next": "15.5.1", + "next": "13.1.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "typescript": "4.8.4" + }, + "scripts": { + "start": "next start" + } +} diff --git a/apps/client/pages/_app.tsx b/apps/website/pages/_app.tsx similarity index 100% rename from apps/client/pages/_app.tsx rename to apps/website/pages/_app.tsx diff --git a/apps/client/pages/api/auth/[...nextauth].ts b/apps/website/pages/api/auth/[...nextauth].ts similarity index 100% rename from apps/client/pages/api/auth/[...nextauth].ts rename to apps/website/pages/api/auth/[...nextauth].ts diff --git a/apps/client/pages/home/index.module.scss b/apps/website/pages/home/index.module.scss similarity index 100% rename from apps/client/pages/home/index.module.scss rename to apps/website/pages/home/index.module.scss diff --git a/apps/client/pages/home/index.tsx b/apps/website/pages/home/index.tsx similarity index 100% rename from apps/client/pages/home/index.tsx rename to apps/website/pages/home/index.tsx diff --git a/apps/client/pages/index.module.scss b/apps/website/pages/index.module.scss similarity index 100% rename from apps/client/pages/index.module.scss rename to apps/website/pages/index.module.scss diff --git a/apps/client/pages/index.tsx b/apps/website/pages/index.tsx similarity index 100% rename from apps/client/pages/index.tsx rename to apps/website/pages/index.tsx diff --git a/apps/client/pages/lost-password/index.module.scss b/apps/website/pages/lost-password/index.module.scss similarity index 100% rename from apps/client/pages/lost-password/index.module.scss rename to apps/website/pages/lost-password/index.module.scss diff --git a/apps/client/pages/lost-password/index.tsx b/apps/website/pages/lost-password/index.tsx similarity index 100% rename from apps/client/pages/lost-password/index.tsx rename to apps/website/pages/lost-password/index.tsx diff --git a/apps/client/pages/sign-in/index.module.scss b/apps/website/pages/sign-in/index.module.scss similarity index 100% rename from apps/client/pages/sign-in/index.module.scss rename to apps/website/pages/sign-in/index.module.scss diff --git a/apps/client/pages/sign-in/index.tsx b/apps/website/pages/sign-in/index.tsx similarity index 100% rename from apps/client/pages/sign-in/index.tsx rename to apps/website/pages/sign-in/index.tsx diff --git a/apps/client/pages/sign-up/index.module.scss b/apps/website/pages/sign-up/index.module.scss similarity index 100% rename from apps/client/pages/sign-up/index.module.scss rename to apps/website/pages/sign-up/index.module.scss diff --git a/apps/client/pages/sign-up/index.tsx b/apps/website/pages/sign-up/index.tsx similarity index 100% rename from apps/client/pages/sign-up/index.tsx rename to apps/website/pages/sign-up/index.tsx diff --git a/apps/client/pages/signup-confirmation/index.module.scss b/apps/website/pages/signup-confirmation/index.module.scss similarity index 100% rename from apps/client/pages/signup-confirmation/index.module.scss rename to apps/website/pages/signup-confirmation/index.module.scss diff --git a/apps/client/pages/signup-confirmation/index.tsx b/apps/website/pages/signup-confirmation/index.tsx similarity index 100% rename from apps/client/pages/signup-confirmation/index.tsx rename to apps/website/pages/signup-confirmation/index.tsx diff --git a/apps/client/pages/styles.css b/apps/website/pages/styles.css similarity index 100% rename from apps/client/pages/styles.css rename to apps/website/pages/styles.css diff --git a/apps/client/project.json b/apps/website/project.json similarity index 61% rename from apps/client/project.json rename to apps/website/project.json index 4ad51f0..254632d 100644 --- a/apps/client/project.json +++ b/apps/website/project.json @@ -1,7 +1,7 @@ { - "name": "client", + "name": "website", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/client", + "sourceRoot": "apps/website", "projectType": "application", "targets": { "build": { @@ -9,19 +9,14 @@ "outputs": ["{options.outputPath}"], "defaultConfiguration": "production", "options": { - "root": "apps/client", - "outputPath": "dist/apps/client" + "root": "apps/website", + "outputPath": "dist/apps/website" }, "configurations": { "development": { - "fileReplacements": [ - { - "replace": "apps/client/environments/environment.ts", - "with": "apps/client/environments/environment.prod.ts" - } - ], - "outputPath": "apps/client" + "outputPath": "apps/website" }, + "staging": {}, "production": {} } }, @@ -29,16 +24,20 @@ "executor": "@nrwl/next:server", "defaultConfiguration": "development", "options": { - "buildTarget": "client:build", + "buildTarget": "website:build", "dev": true }, "configurations": { "development": { - "buildTarget": "client:build:development", + "buildTarget": "website:build:development", "dev": true }, + "staging": { + "buildTarget": "website:build:staging", + "dev": false + }, "production": { - "buildTarget": "client:build:production", + "buildTarget": "website:build:production", "dev": false } } @@ -46,14 +45,14 @@ "export": { "executor": "@nrwl/next:export", "options": { - "buildTarget": "client:build:production" + "buildTarget": "website:build:production" } }, "test": { "executor": "@nrwl/jest:jest", "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], "options": { - "jestConfig": "apps/client/jest.config.ts", + "jestConfig": "apps/website/jest.config.ts", "passWithNoTests": true } }, @@ -61,7 +60,7 @@ "executor": "@nrwl/linter:eslint", "outputs": ["{options.outputFile}"], "options": { - "lintFilePatterns": ["apps/client/**/*.{ts,tsx,js,jsx}"] + "lintFilePatterns": ["apps/website/**/*.{ts,tsx,js,jsx}"] } } }, diff --git a/apps/website/public/.gitkeep b/apps/website/public/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/apps/client/specs/index.spec.tsx b/apps/website/specs/index.spec.tsx similarity index 100% rename from apps/client/specs/index.spec.tsx rename to apps/website/specs/index.spec.tsx diff --git a/apps/client/tsconfig.json b/apps/website/tsconfig.json similarity index 100% rename from apps/client/tsconfig.json rename to apps/website/tsconfig.json diff --git a/apps/client/tsconfig.spec.json b/apps/website/tsconfig.spec.json similarity index 100% rename from apps/client/tsconfig.spec.json rename to apps/website/tsconfig.spec.json diff --git a/apps/website/with-nx.js b/apps/website/with-nx.js new file mode 100644 index 0000000..2c0ed08 --- /dev/null +++ b/apps/website/with-nx.js @@ -0,0 +1,176 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.withNx = void 0; +const tslib_1 = require("tslib"); +function regexEqual(x, y) { + return (x instanceof RegExp && + y instanceof RegExp && + x.source === y.source && + x.global === y.global && + x.ignoreCase === y.ignoreCase && + x.multiline === y.multiline); +} +/** + * Do not remove or rename this function. Production builds inline `with-nx.js` file with a replacement + * To this function that hard-codes the libsDir. + */ +function getWithNxContext() { +return { +workspaceRoot: '/Users/snaser/Projets/nx-guitar-school', +libsDir: 'libs' +} +} +function withNx(nextConfig = {}, context = getWithNxContext()) { + var _a; + // If `next-compose-plugins` is used, the context argument is invalid. + if (!context.libsDir || !context.workspaceRoot) { + context = getWithNxContext(); + } + const userWebpack = nextConfig.webpack || ((x) => x); + const { nx } = nextConfig, validNextConfig = tslib_1.__rest(nextConfig, ["nx"]); + return Object.assign(Object.assign({ eslint: Object.assign({ ignoreDuringBuilds: true }, ((_a = validNextConfig.eslint) !== null && _a !== void 0 ? _a : {})) }, validNextConfig), { webpack: (config, options) => { + /* + * Update babel to support our monorepo setup. + * The 'upward' mode allows the root babel.config.json and per-project .babelrc files to be picked up. + */ + options.defaultLoaders.babel.options.babelrc = true; + options.defaultLoaders.babel.options.rootMode = 'upward'; + /* + * Modify the Next.js webpack config to allow workspace libs to use css modules. + * Note: This would be easier if Next.js exposes css-loader and sass-loader on `defaultLoaders`. + */ + // Include workspace libs in css/sass loaders + const includes = [ + require('path').join(context.workspaceRoot, context.libsDir), + ]; + const nextCssLoaders = config.module.rules.find((rule) => typeof rule.oneOf === 'object'); + // webpack config is not as expected + if (!nextCssLoaders) + return config; + /* + * 1. Modify css loader to enable module support for workspace libs + */ + const nextCssLoader = nextCssLoaders.oneOf.find((rule) => rule.sideEffects === false && regexEqual(rule.test, /\.module\.css$/)); + // Might not be found if Next.js webpack config changes in the future + if (nextCssLoader && nextCssLoader.issuer) { + nextCssLoader.issuer.or = nextCssLoader.issuer.and + ? nextCssLoader.issuer.and.concat(includes) + : includes; + delete nextCssLoader.issuer.and; + } + /* + * 2. Modify sass loader to enable module support for workspace libs + */ + const nextSassLoader = nextCssLoaders.oneOf.find((rule) => rule.sideEffects === false && + regexEqual(rule.test, /\.module\.(scss|sass)$/)); + // Might not be found if Next.js webpack config changes in the future + if (nextSassLoader && nextSassLoader.issuer) { + nextSassLoader.issuer.or = nextSassLoader.issuer.and + ? nextSassLoader.issuer.and.concat(includes) + : includes; + delete nextSassLoader.issuer.and; + } + /* + * 3. Modify error loader to ignore css modules used by workspace libs + */ + const nextErrorCssModuleLoader = nextCssLoaders.oneOf.find((rule) => rule.use && + rule.use.loader === 'error-loader' && + rule.use.options && + (rule.use.options.reason === + 'CSS Modules \u001b[1mcannot\u001b[22m be imported from within \u001b[1mnode_modules\u001b[22m.\n' + + 'Read more: https://err.sh/next.js/css-modules-npm' || + rule.use.options.reason === + 'CSS Modules cannot be imported from within node_modules.\nRead more: https://err.sh/next.js/css-modules-npm')); + // Might not be found if Next.js webpack config changes in the future + if (nextErrorCssModuleLoader) { + nextErrorCssModuleLoader.exclude = includes; + } + /** + * 4. Modify css loader to allow global css from node_modules to be imported from workspace libs + */ + const nextGlobalCssLoader = nextCssLoaders.oneOf.find((rule) => { + var _a, _b; + return (_b = (_a = rule.include) === null || _a === void 0 ? void 0 : _a.and) === null || _b === void 0 ? void 0 : _b.find((include) => regexEqual(include, /node_modules/)); + }); + // Might not be found if Next.js webpack config changes in the future + if (nextGlobalCssLoader && nextGlobalCssLoader.issuer) { + nextGlobalCssLoader.issuer.or = nextGlobalCssLoader.issuer.and + ? nextGlobalCssLoader.issuer.and.concat(includes) + : includes; + delete nextGlobalCssLoader.issuer.and; + } + /** + * 5. Add env variables prefixed with NX_ + */ + addNxEnvVariables(config); + /** + * 6. Add SVGR support if option is on. + */ + // Default SVGR support to be on for projects. + if ((nx === null || nx === void 0 ? void 0 : nx.svgr) !== false) { + config.module.rules.push({ + test: /\.svg$/, + oneOf: [ + // If coming from JS/TS file, then transform into React component using SVGR. + { + issuer: /\.[jt]sx?$/, + use: [ + { + loader: require.resolve('@svgr/webpack'), + options: { + svgo: false, + titleProp: true, + ref: true, + }, + }, + { + loader: require.resolve('url-loader'), + options: { + limit: 10000, + name: '[name].[hash:7].[ext]', + }, + }, + ], + }, + // Fallback to plain URL loader if someone just imports the SVG and references it on the tag + { + loader: require.resolve('url-loader'), + options: { + limit: 10000, + name: '[name].[hash:7].[ext]', + }, + }, + ], + }); + } + return userWebpack(config, options); + } }); +} +exports.withNx = withNx; +function getNxEnvironmentVariables() { + return Object.keys(process.env) + .filter((env) => /^NX_/i.test(env)) + .reduce((env, key) => { + env[key] = process.env[key]; + return env; + }, {}); +} +function addNxEnvVariables(config) { + var _a; + const maybeDefinePlugin = (_a = config.plugins) === null || _a === void 0 ? void 0 : _a.find((plugin) => { + var _a; + return (_a = plugin.definitions) === null || _a === void 0 ? void 0 : _a['process.env.NODE_ENV']; + }); + if (maybeDefinePlugin) { + const env = getNxEnvironmentVariables(); + Object.entries(env) + .map(([name, value]) => [`process.env.${name}`, `"${value}"`]) + .filter(([name]) => !maybeDefinePlugin.definitions[name]) + .forEach(([name, value]) => (maybeDefinePlugin.definitions[name] = value)); + } +} +// Support for older generated code: `const withNx = require('@nrwl/next/plugins/with-nx');` +module.exports = withNx; +// Support for newer generated code: `const { withNx } = require(...);` +module.exports.withNx = withNx; +//# sourceMappingURL=with-nx.js.map \ No newline at end of file From 2009608698c56d1087b847d34ead4a03d17221d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A4ser?= Date: Wed, 25 Jan 2023 10:33:45 +0100 Subject: [PATCH 3/4] chore: add build tools for strapi backend --- .gitignore | 2 +- README.md | 22 +- apps/backend/.env.example | 6 - apps/backend/.env.local | 28 + apps/backend/.env.prod | 2 + apps/backend/.env.staging | 4 +- apps/backend/config/database.ts | 11 +- apps/backend/config/plugins.ts | 4 +- apps/backend/mysql.yml | 12 +- apps/backend/package.json | 14 +- apps/backend/tsconfig.json | 2 +- apps/client/public/.gitkeep | 0 apps/website-e2e/.eslintrc.json | 10 + apps/website-e2e/cypress.config.ts | 6 + apps/website-e2e/project.json | 30 + apps/website-e2e/src/e2e/app.cy.ts | 13 + apps/website-e2e/src/fixtures/example.json | 4 + apps/website-e2e/src/support/app.po.ts | 1 + apps/website-e2e/src/support/commands.ts | 33 + apps/website-e2e/src/support/e2e.ts | 17 + apps/website-e2e/tsconfig.json | 10 + ...ase_localhost-2023_01_23_14_51_10-dump.sql | 1089 +++++++++++++++++ package-lock.json | 607 +++------ package.json | 11 +- scripts/server.js | 8 + scripts/strapi/build-staging.js | 9 + scripts/strapi/sources/.strapi-updater.json | 4 + scripts/strapi/sources/package.json | 31 + scripts/strapi/sources/server.js | 3 + 29 files changed, 1495 insertions(+), 498 deletions(-) delete mode 100644 apps/backend/.env.example create mode 100644 apps/backend/.env.local delete mode 100644 apps/client/public/.gitkeep create mode 100644 apps/website-e2e/.eslintrc.json create mode 100644 apps/website-e2e/cypress.config.ts create mode 100644 apps/website-e2e/project.json create mode 100644 apps/website-e2e/src/e2e/app.cy.ts create mode 100644 apps/website-e2e/src/fixtures/example.json create mode 100644 apps/website-e2e/src/support/app.po.ts create mode 100644 apps/website-e2e/src/support/commands.ts create mode 100644 apps/website-e2e/src/support/e2e.ts create mode 100644 apps/website-e2e/tsconfig.json create mode 100644 dumps/gs_database_localhost-2023_01_23_14_51_10-dump.sql create mode 100644 scripts/server.js create mode 100644 scripts/strapi/build-staging.js create mode 100644 scripts/strapi/sources/.strapi-updater.json create mode 100644 scripts/strapi/sources/package.json create mode 100644 scripts/strapi/sources/server.js diff --git a/.gitignore b/.gitignore index ac31baf..794fab1 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,4 @@ testem.log Thumbs.db # Next.js -.next +.next \ No newline at end of file diff --git a/README.md b/README.md index e567d1f..ea64042 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,15 @@ # NxGuitarSchool - +### Comptes -✨ **This workspace has been generated by [Nx, a Smart, fast and extensible build system.](https://nx.dev)** ✨ +#### FTP -## Development server +Username : superadmin@naserloud.fr +mot de passe : =H*S9g**=S$s*(.S5g +host : node143-eu.n0c.com -Run `nx serve client` for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files. +### SSH +command : ssh dpxtrufj@node143-eu.n0c.com -port 5502 +mdp : xVarAG3bsEJe8T -## Understand this workspace -Run `nx graph` to see a diagram of the dependencies of the projects. - -## Remote caching - -Run `npx nx connect-to-nx-cloud` to enable [remote caching](https://nx.app) and make CI faster. - -## Further help - -Visit the [Nx Documentation](https://nx.dev) to learn more. diff --git a/apps/backend/.env.example b/apps/backend/.env.example deleted file mode 100644 index f1f7330..0000000 --- a/apps/backend/.env.example +++ /dev/null @@ -1,6 +0,0 @@ -HOST=0.0.0.0 -PORT=1337 -APP_KEYS="toBeModified1,toBeModified2" -API_TOKEN_SALT=tobemodified -ADMIN_JWT_SECRET=tobemodified -JWT_SECRET=tobemodified diff --git a/apps/backend/.env.local b/apps/backend/.env.local new file mode 100644 index 0000000..f250707 --- /dev/null +++ b/apps/backend/.env.local @@ -0,0 +1,28 @@ +HOST=0.0.0.0 +PORT=1337 +APP_KEYS=chUnDYzQYwe0TBtXVv4sPg==,fVrGPGw5Xd4UdPisWHOHxQ==,Qre2n8wneae2BrXOotmagw==,B3suExWQFpyJS9mhqNcOLg== +API_TOKEN_SALT=tyYia7Nui8Y0lM0IRTDjmg== +ADMIN_JWT_SECRET=q1dnfyvh3K7yhTYbYNS7jw== +JWT_SECRET=nc8prafomnDTfDdS00OqTQ== + +PG_DATABASE_HOST=localhost +PG_DATABASE_PORT=5432 +PG_DATABASE_NAME=gs_database +PG_DATABASE_USERNAME=gs_username +PG_DATABASE_ROOT_PASSWORD=gs_root_username +PG_DATABASE_PASSWORD=gs_password +PG_DATABASE_SCHEMA=public + +MYSQL_DATABASE_HOST=localhost +MYSQL_DATABASE_PORT=3307 +MYSQL_DATABASE_NAME=gs_database +MYSQL_DATABASE_USERNAME=gs_username +MYSQL_DATABASE_ROOT_PASSWORD=gs_root_username +MYSQL_DATABASE_PASSWORD=gs_password + +SMTP_HOST=mail.infomaniak.com +SMTP_PORT=587 +SMTP_USERNAME=synology@naser.fr +SMTP_PASSWORD=Em18071988! +SMTP_DEFAULT_FROM=no-reply@strapi.io +SMTP_DEFAULT_REPLY=synology@naser.fr diff --git a/apps/backend/.env.prod b/apps/backend/.env.prod index f2c9238..e3da7e3 100644 --- a/apps/backend/.env.prod +++ b/apps/backend/.env.prod @@ -24,3 +24,5 @@ SMTP_HOST=node143-eu.n0c.com SMTP_PORT=587 SMTP_USERNAME=no-reply@nasercloud.fr SMTP_PASSWORD=GuitarSchool123! +SMTP_DEFAULT_FROM=no-reply@strapi.io +SMTP_DEFAULT_REPLY=synology@naser.fr diff --git a/apps/backend/.env.staging b/apps/backend/.env.staging index f2c9238..6f1c7fd 100644 --- a/apps/backend/.env.staging +++ b/apps/backend/.env.staging @@ -16,7 +16,7 @@ PG_DATABASE_SCHEMA=public MYSQL_DATABASE_HOST=localhost MYSQL_DATABASE_PORT=3306 MYSQL_DATABASE_NAME=dpxtrufj_gs_database -MYSQL_DATABASE_USERNAME=dpxtrufj_gs_username +MYSQL_DATABASE_USERNAME=dpxtrufj_gs_user MYSQL_DATABASE_ROOT_PASSWORD=gs_root_username MYSQL_DATABASE_PASSWORD=q7=@oa*F*s4?8*Hq4H @@ -24,3 +24,5 @@ SMTP_HOST=node143-eu.n0c.com SMTP_PORT=587 SMTP_USERNAME=no-reply@nasercloud.fr SMTP_PASSWORD=GuitarSchool123! +SMTP_DEFAULT_FROM=no-reply@nasercloud.fr +SMTP_DEFAULT_REPLY=contact@nasercloud.fr diff --git a/apps/backend/config/database.ts b/apps/backend/config/database.ts index c9d5916..373dcbc 100644 --- a/apps/backend/config/database.ts +++ b/apps/backend/config/database.ts @@ -2,12 +2,11 @@ export default ({env}) => ({ connection: { client: 'mysql', connection: { - host: env('DATABASE_HOST', 'localhost'), - port: env.int('DATABASE_PORT', 3306), - database: env('DATABASE_NAME', 'bank'), - user: env('DATABASE_USERNAME', 'postgres'), - password: env('DATABASE_PASSWORD', '0000'), - ssl: false, + host: env('MYSQL_DATABASE_HOST', 'localhost'), + port: env.int('MYSQL_DATABASE_PORT', 3306), + database: env('MYSQL_DATABASE_NAME', 'bank'), + user: env('MYSQL_DATABASE_USERNAME', 'postgres'), + password: env('MYSQL_DATABASE_PASSWORD', '0000'), }, debug: false, }, diff --git a/apps/backend/config/plugins.ts b/apps/backend/config/plugins.ts index 22a9096..b771d3a 100644 --- a/apps/backend/config/plugins.ts +++ b/apps/backend/config/plugins.ts @@ -13,8 +13,8 @@ module.exports = ({env}) => ({ // ... any custom nodemailer options }, settings: { - defaultFrom: 'no-reply@strapi.io', - defaultReplyTo: 'synology@naser.fr', + defaultFrom: env('SMTP_DEFAULT_FROM', 'no-reply@strapi.io'), + defaultReplyTo: env('SMTP_DEFAULT_REPLY', 'synology@naser.fr'), }, }, }, diff --git a/apps/backend/mysql.yml b/apps/backend/mysql.yml index 1f98a98..462ea3c 100644 --- a/apps/backend/mysql.yml +++ b/apps/backend/mysql.yml @@ -2,19 +2,19 @@ services: gs_mysql: image: 'mariadb:10.3' environment: - MYSQL_DATABASE: ${DATABASE_NAME} + MYSQL_DATABASE: ${MYSQL_DATABASE_NAME} # So you don't have to use root, but you can if you like - MYSQL_USER: ${DATABASE_USERNAME} + MYSQL_USER: ${MYSQL_DATABASE_USERNAME} # You can use whatever password you like - MYSQL_PASSWORD: ${DATABASE_PASSWORD} + MYSQL_PASSWORD: ${MYSQL_DATABASE_PASSWORD} # Password for root access - MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD} + MYSQL_ROOT_PASSWORD: ${MYSQL_DATABASE_ROOT_PASSWORD} ports: # : < MySQL Port running inside container> - - '3307:3306' + - '${MYSQL_DATABASE_PORT}:3306' expose: # Opens port 3306 on the container - - '3307' + - '${MYSQL_DATABASE_PORT}' # Where our data will be persisted volumes: - gs_mariadb-master:/var/lib/mysql diff --git a/apps/backend/package.json b/apps/backend/package.json index a7bbddc..a579df6 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -16,15 +16,15 @@ "dependencies": { "@strapi/plugin-i18n": "4.5.4", "@strapi/plugin-users-permissions": "4.5.4", - "@strapi/provider-email-nodemailer": "^4.5.6", + "@strapi/provider-email-nodemailer": "4.5.6", "@strapi/strapi": "4.5.4", - "@strapi/utils": "^4.5.6", + "@strapi/utils": "4.5.6", "better-sqlite3": "7.4.6", - "mysql": "^2.18.1", - "pg": "^8.8.0", - "strapi-plugin-import-export-entries": "^1.18.0", - "strapi-plugin-menus": "^1.2.1", - "strapi-plugin-populate-deep": "^1.1.2" + "mysql": "2.18.1", + "pg": "8.8.0", + "strapi-plugin-import-export-entries": "1.18.0", + "strapi-plugin-menus": "1.2.1", + "strapi-plugin-populate-deep": "1.1.2" }, "author": { "name": "A Strapi developer" diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json index 76e3e00..3f3ccfe 100644 --- a/apps/backend/tsconfig.json +++ b/apps/backend/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "@strapi/typescript-utils/tsconfigs/server", "compilerOptions": { - "outDir": "../../dist/backend/dist", + "outDir": "../../dist/apps/backend/dist", "rootDir": "." }, "include": [ diff --git a/apps/client/public/.gitkeep b/apps/client/public/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/apps/website-e2e/.eslintrc.json b/apps/website-e2e/.eslintrc.json new file mode 100644 index 0000000..696cb8b --- /dev/null +++ b/apps/website-e2e/.eslintrc.json @@ -0,0 +1,10 @@ +{ + "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/apps/website-e2e/cypress.config.ts b/apps/website-e2e/cypress.config.ts new file mode 100644 index 0000000..22f7c84 --- /dev/null +++ b/apps/website-e2e/cypress.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from 'cypress'; +import { nxE2EPreset } from '@nrwl/cypress/plugins/cypress-preset'; + +export default defineConfig({ + e2e: nxE2EPreset(__dirname), +}); diff --git a/apps/website-e2e/project.json b/apps/website-e2e/project.json new file mode 100644 index 0000000..0502cbd --- /dev/null +++ b/apps/website-e2e/project.json @@ -0,0 +1,30 @@ +{ + "name": "website-e2e", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "apps/website-e2e/src", + "projectType": "application", + "targets": { + "e2e": { + "executor": "@nrwl/cypress:cypress", + "options": { + "cypressConfig": "apps/website-e2e/cypress.config.ts", + "devServerTarget": "website:serve:development", + "testingType": "e2e" + }, + "configurations": { + "production": { + "devServerTarget": "website:serve:production" + } + } + }, + "lint": { + "executor": "@nrwl/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["apps/website-e2e/**/*.{js,ts}"] + } + } + }, + "tags": [], + "implicitDependencies": ["website"] +} diff --git a/apps/website-e2e/src/e2e/app.cy.ts b/apps/website-e2e/src/e2e/app.cy.ts new file mode 100644 index 0000000..a758d06 --- /dev/null +++ b/apps/website-e2e/src/e2e/app.cy.ts @@ -0,0 +1,13 @@ +import { getGreeting } from '../support/app.po'; + +describe('website', () => { + beforeEach(() => cy.visit('/')); + + it('should display welcome message', () => { + // Custom command example, see `../support/commands.ts` file + cy.login('my-email@something.com', 'myPassword'); + + // Function helper example, see `../support/app.po.ts` file + getGreeting().contains('Welcome website'); + }); +}); diff --git a/apps/website-e2e/src/fixtures/example.json b/apps/website-e2e/src/fixtures/example.json new file mode 100644 index 0000000..294cbed --- /dev/null +++ b/apps/website-e2e/src/fixtures/example.json @@ -0,0 +1,4 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io" +} diff --git a/apps/website-e2e/src/support/app.po.ts b/apps/website-e2e/src/support/app.po.ts new file mode 100644 index 0000000..3293424 --- /dev/null +++ b/apps/website-e2e/src/support/app.po.ts @@ -0,0 +1 @@ +export const getGreeting = () => cy.get('h1'); diff --git a/apps/website-e2e/src/support/commands.ts b/apps/website-e2e/src/support/commands.ts new file mode 100644 index 0000000..310f1fa --- /dev/null +++ b/apps/website-e2e/src/support/commands.ts @@ -0,0 +1,33 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** + +// eslint-disable-next-line @typescript-eslint/no-namespace +declare namespace Cypress { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + interface Chainable { + login(email: string, password: string): void; + } +} +// +// -- This is a parent command -- +Cypress.Commands.add('login', (email, password) => { + console.log('Custom command example: Login', email, password); +}); +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/apps/website-e2e/src/support/e2e.ts b/apps/website-e2e/src/support/e2e.ts new file mode 100644 index 0000000..3d469a6 --- /dev/null +++ b/apps/website-e2e/src/support/e2e.ts @@ -0,0 +1,17 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; diff --git a/apps/website-e2e/tsconfig.json b/apps/website-e2e/tsconfig.json new file mode 100644 index 0000000..cc509a7 --- /dev/null +++ b/apps/website-e2e/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "sourceMap": false, + "outDir": "../../dist/out-tsc", + "allowJs": true, + "types": ["cypress", "node"] + }, + "include": ["src/**/*.ts", "src/**/*.js", "cypress.config.ts"] +} diff --git a/dumps/gs_database_localhost-2023_01_23_14_51_10-dump.sql b/dumps/gs_database_localhost-2023_01_23_14_51_10-dump.sql new file mode 100644 index 0000000..7b3660b --- /dev/null +++ b/dumps/gs_database_localhost-2023_01_23_14_51_10-dump.sql @@ -0,0 +1,1089 @@ +-- MySQL dump 10.13 Distrib 8.0.32, for macos13 (x86_64) +-- +-- Host: 127.0.0.1 Database: gs_database +-- ------------------------------------------------------ +-- Server version 5.5.5-10.3.37-MariaDB-1:10.3.37+maria~ubu2004 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `admin_permissions` +-- + +DROP TABLE IF EXISTS `admin_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_permissions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `action` varchar(255) DEFAULT NULL, + `subject` varchar(255) DEFAULT NULL, + `properties` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `conditions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `admin_permissions_created_by_id_fk` (`created_by_id`), + KEY `admin_permissions_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `admin_permissions_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `admin_permissions_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_permissions` +-- + +LOCK TABLES `admin_permissions` WRITE; +/*!40000 ALTER TABLE `admin_permissions` DISABLE KEYS */; +INSERT INTO `admin_permissions` (`id`, `action`, `subject`, `properties`, `conditions`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'plugin::content-manager.explorer.create','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[]','2023-01-23 09:35:14.724000','2023-01-23 09:35:14.724000',NULL,NULL),(2,'plugin::content-manager.explorer.read','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[]','2023-01-23 09:35:14.737000','2023-01-23 09:35:14.737000',NULL,NULL),(3,'plugin::content-manager.explorer.update','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[]','2023-01-23 09:35:14.756000','2023-01-23 09:35:14.756000',NULL,NULL),(4,'plugin::content-manager.explorer.delete','api::page.page','{}','[]','2023-01-23 09:35:14.768000','2023-01-23 09:35:14.768000',NULL,NULL),(5,'plugin::content-manager.explorer.publish','api::page.page','{}','[]','2023-01-23 09:35:14.782000','2023-01-23 09:35:14.782000',NULL,NULL),(6,'plugin::upload.read',NULL,'{}','[]','2023-01-23 09:35:14.795000','2023-01-23 09:35:14.795000',NULL,NULL),(7,'plugin::upload.assets.create',NULL,'{}','[]','2023-01-23 09:35:14.810000','2023-01-23 09:35:14.810000',NULL,NULL),(8,'plugin::upload.assets.update',NULL,'{}','[]','2023-01-23 09:35:14.823000','2023-01-23 09:35:14.823000',NULL,NULL),(9,'plugin::upload.assets.download',NULL,'{}','[]','2023-01-23 09:35:14.838000','2023-01-23 09:35:14.838000',NULL,NULL),(10,'plugin::upload.assets.copy-link',NULL,'{}','[]','2023-01-23 09:35:14.853000','2023-01-23 09:35:14.853000',NULL,NULL),(11,'plugin::content-manager.explorer.create','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[\"admin::is-creator\"]','2023-01-23 09:35:14.872000','2023-01-23 09:35:14.872000',NULL,NULL),(12,'plugin::content-manager.explorer.read','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[\"admin::is-creator\"]','2023-01-23 09:35:14.895000','2023-01-23 09:35:14.895000',NULL,NULL),(13,'plugin::content-manager.explorer.update','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[\"admin::is-creator\"]','2023-01-23 09:35:14.914000','2023-01-23 09:35:14.914000',NULL,NULL),(14,'plugin::content-manager.explorer.delete','api::page.page','{}','[\"admin::is-creator\"]','2023-01-23 09:35:14.930000','2023-01-23 09:35:14.930000',NULL,NULL),(15,'plugin::upload.read',NULL,'{}','[\"admin::is-creator\"]','2023-01-23 09:35:14.956000','2023-01-23 09:35:14.956000',NULL,NULL),(16,'plugin::upload.assets.create',NULL,'{}','[]','2023-01-23 09:35:14.977000','2023-01-23 09:35:14.977000',NULL,NULL),(17,'plugin::upload.assets.update',NULL,'{}','[\"admin::is-creator\"]','2023-01-23 09:35:14.994000','2023-01-23 09:35:14.994000',NULL,NULL),(18,'plugin::upload.assets.download',NULL,'{}','[]','2023-01-23 09:35:15.012000','2023-01-23 09:35:15.012000',NULL,NULL),(19,'plugin::upload.assets.copy-link',NULL,'{}','[]','2023-01-23 09:35:15.028000','2023-01-23 09:35:15.028000',NULL,NULL),(20,'plugin::content-manager.explorer.create','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[]','2023-01-23 09:35:15.069000','2023-01-23 09:35:15.069000',NULL,NULL),(21,'plugin::content-manager.explorer.create','plugin::users-permissions.user','{\"fields\":[\"username\",\"email\",\"provider\",\"password\",\"resetPasswordToken\",\"confirmationToken\",\"confirmed\",\"blocked\",\"role\",\"avatar\",\"newsletter\"]}','[]','2023-01-23 09:35:15.089000','2023-01-23 09:35:15.089000',NULL,NULL),(22,'plugin::content-manager.explorer.read','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[]','2023-01-23 09:35:15.105000','2023-01-23 09:35:15.105000',NULL,NULL),(23,'plugin::content-manager.explorer.read','plugin::users-permissions.user','{\"fields\":[\"username\",\"email\",\"provider\",\"password\",\"resetPasswordToken\",\"confirmationToken\",\"confirmed\",\"blocked\",\"role\",\"avatar\",\"newsletter\"]}','[]','2023-01-23 09:35:15.122000','2023-01-23 09:35:15.122000',NULL,NULL),(24,'plugin::content-manager.explorer.update','api::page.page','{\"fields\":[\"label\",\"slug\",\"seo.metaTitle\",\"seo.metaDescription\",\"seo.SharedImage.alt\",\"seo.SharedImage.media\",\"seo.Meta.property\",\"seo.Meta.content\",\"seo.preventIndexing\",\"seo.structuredData\",\"Login\"]}','[]','2023-01-23 09:35:15.140000','2023-01-23 09:35:15.140000',NULL,NULL),(25,'plugin::content-manager.explorer.update','plugin::users-permissions.user','{\"fields\":[\"username\",\"email\",\"provider\",\"password\",\"resetPasswordToken\",\"confirmationToken\",\"confirmed\",\"blocked\",\"role\",\"avatar\",\"newsletter\"]}','[]','2023-01-23 09:35:15.156000','2023-01-23 09:35:15.156000',NULL,NULL),(26,'plugin::content-manager.explorer.delete','api::page.page','{}','[]','2023-01-23 09:35:15.171000','2023-01-23 09:35:15.171000',NULL,NULL),(27,'plugin::content-manager.explorer.delete','plugin::users-permissions.user','{}','[]','2023-01-23 09:35:15.190000','2023-01-23 09:35:15.190000',NULL,NULL),(28,'plugin::content-manager.explorer.publish','api::page.page','{}','[]','2023-01-23 09:35:15.204000','2023-01-23 09:35:15.204000',NULL,NULL),(29,'plugin::content-manager.single-types.configure-view',NULL,'{}','[]','2023-01-23 09:35:15.240000','2023-01-23 09:35:15.240000',NULL,NULL),(30,'plugin::content-manager.collection-types.configure-view',NULL,'{}','[]','2023-01-23 09:35:15.261000','2023-01-23 09:35:15.261000',NULL,NULL),(31,'plugin::content-manager.components.configure-layout',NULL,'{}','[]','2023-01-23 09:35:15.275000','2023-01-23 09:35:15.275000',NULL,NULL),(32,'plugin::content-type-builder.read',NULL,'{}','[]','2023-01-23 09:35:15.289000','2023-01-23 09:35:15.289000',NULL,NULL),(33,'plugin::email.settings.read',NULL,'{}','[]','2023-01-23 09:35:15.306000','2023-01-23 09:35:15.306000',NULL,NULL),(34,'plugin::upload.read',NULL,'{}','[]','2023-01-23 09:35:15.321000','2023-01-23 09:35:15.321000',NULL,NULL),(35,'plugin::upload.assets.create',NULL,'{}','[]','2023-01-23 09:35:15.336000','2023-01-23 09:35:15.336000',NULL,NULL),(36,'plugin::upload.assets.update',NULL,'{}','[]','2023-01-23 09:35:15.351000','2023-01-23 09:35:15.351000',NULL,NULL),(37,'plugin::upload.assets.download',NULL,'{}','[]','2023-01-23 09:35:15.365000','2023-01-23 09:35:15.365000',NULL,NULL),(38,'plugin::upload.assets.copy-link',NULL,'{}','[]','2023-01-23 09:35:15.380000','2023-01-23 09:35:15.380000',NULL,NULL),(39,'plugin::upload.settings.read',NULL,'{}','[]','2023-01-23 09:35:15.397000','2023-01-23 09:35:15.397000',NULL,NULL),(40,'plugin::i18n.locale.create',NULL,'{}','[]','2023-01-23 09:35:15.411000','2023-01-23 09:35:15.411000',NULL,NULL),(41,'plugin::i18n.locale.read',NULL,'{}','[]','2023-01-23 09:35:15.425000','2023-01-23 09:35:15.425000',NULL,NULL),(42,'plugin::i18n.locale.update',NULL,'{}','[]','2023-01-23 09:35:15.437000','2023-01-23 09:35:15.437000',NULL,NULL),(43,'plugin::i18n.locale.delete',NULL,'{}','[]','2023-01-23 09:35:15.450000','2023-01-23 09:35:15.450000',NULL,NULL),(44,'plugin::users-permissions.roles.create',NULL,'{}','[]','2023-01-23 09:35:15.462000','2023-01-23 09:35:15.462000',NULL,NULL),(45,'plugin::users-permissions.roles.read',NULL,'{}','[]','2023-01-23 09:35:15.476000','2023-01-23 09:35:15.476000',NULL,NULL),(46,'plugin::users-permissions.roles.update',NULL,'{}','[]','2023-01-23 09:35:15.490000','2023-01-23 09:35:15.490000',NULL,NULL),(47,'plugin::users-permissions.roles.delete',NULL,'{}','[]','2023-01-23 09:35:15.505000','2023-01-23 09:35:15.505000',NULL,NULL),(48,'plugin::users-permissions.providers.read',NULL,'{}','[]','2023-01-23 09:35:15.519000','2023-01-23 09:35:15.519000',NULL,NULL),(49,'plugin::users-permissions.providers.update',NULL,'{}','[]','2023-01-23 09:35:15.533000','2023-01-23 09:35:15.533000',NULL,NULL),(50,'plugin::users-permissions.email-templates.read',NULL,'{}','[]','2023-01-23 09:35:15.548000','2023-01-23 09:35:15.548000',NULL,NULL),(51,'plugin::users-permissions.email-templates.update',NULL,'{}','[]','2023-01-23 09:35:15.563000','2023-01-23 09:35:15.563000',NULL,NULL),(52,'plugin::users-permissions.advanced-settings.read',NULL,'{}','[]','2023-01-23 09:35:15.580000','2023-01-23 09:35:15.580000',NULL,NULL),(53,'plugin::users-permissions.advanced-settings.update',NULL,'{}','[]','2023-01-23 09:35:15.595000','2023-01-23 09:35:15.595000',NULL,NULL),(54,'admin::marketplace.read',NULL,'{}','[]','2023-01-23 09:35:15.609000','2023-01-23 09:35:15.609000',NULL,NULL),(55,'admin::marketplace.plugins.install',NULL,'{}','[]','2023-01-23 09:35:15.623000','2023-01-23 09:35:15.623000',NULL,NULL),(56,'admin::marketplace.plugins.uninstall',NULL,'{}','[]','2023-01-23 09:35:15.636000','2023-01-23 09:35:15.636000',NULL,NULL),(57,'admin::webhooks.create',NULL,'{}','[]','2023-01-23 09:35:15.650000','2023-01-23 09:35:15.650000',NULL,NULL),(58,'admin::webhooks.read',NULL,'{}','[]','2023-01-23 09:35:15.663000','2023-01-23 09:35:15.663000',NULL,NULL),(59,'admin::webhooks.update',NULL,'{}','[]','2023-01-23 09:35:15.675000','2023-01-23 09:35:15.675000',NULL,NULL),(60,'admin::webhooks.delete',NULL,'{}','[]','2023-01-23 09:35:15.689000','2023-01-23 09:35:15.689000',NULL,NULL),(61,'admin::users.create',NULL,'{}','[]','2023-01-23 09:35:15.702000','2023-01-23 09:35:15.702000',NULL,NULL),(62,'admin::users.read',NULL,'{}','[]','2023-01-23 09:35:15.716000','2023-01-23 09:35:15.716000',NULL,NULL),(63,'admin::users.update',NULL,'{}','[]','2023-01-23 09:35:15.728000','2023-01-23 09:35:15.728000',NULL,NULL),(64,'admin::users.delete',NULL,'{}','[]','2023-01-23 09:35:15.742000','2023-01-23 09:35:15.742000',NULL,NULL),(65,'admin::roles.create',NULL,'{}','[]','2023-01-23 09:35:15.757000','2023-01-23 09:35:15.757000',NULL,NULL),(66,'admin::roles.read',NULL,'{}','[]','2023-01-23 09:35:15.771000','2023-01-23 09:35:15.771000',NULL,NULL),(67,'admin::roles.update',NULL,'{}','[]','2023-01-23 09:35:15.786000','2023-01-23 09:35:15.786000',NULL,NULL),(68,'admin::roles.delete',NULL,'{}','[]','2023-01-23 09:35:15.799000','2023-01-23 09:35:15.799000',NULL,NULL),(69,'admin::api-tokens.access',NULL,'{}','[]','2023-01-23 09:35:15.814000','2023-01-23 09:35:15.814000',NULL,NULL),(70,'admin::api-tokens.create',NULL,'{}','[]','2023-01-23 09:35:15.827000','2023-01-23 09:35:15.827000',NULL,NULL),(71,'admin::api-tokens.read',NULL,'{}','[]','2023-01-23 09:35:15.839000','2023-01-23 09:35:15.839000',NULL,NULL),(72,'admin::api-tokens.update',NULL,'{}','[]','2023-01-23 09:35:15.853000','2023-01-23 09:35:15.853000',NULL,NULL),(73,'admin::api-tokens.regenerate',NULL,'{}','[]','2023-01-23 09:35:15.867000','2023-01-23 09:35:15.867000',NULL,NULL),(74,'admin::api-tokens.delete',NULL,'{}','[]','2023-01-23 09:35:15.880000','2023-01-23 09:35:15.880000',NULL,NULL),(75,'admin::project-settings.update',NULL,'{}','[]','2023-01-23 09:35:15.894000','2023-01-23 09:35:15.894000',NULL,NULL),(76,'admin::project-settings.read',NULL,'{}','[]','2023-01-23 09:35:15.908000','2023-01-23 09:35:15.908000',NULL,NULL); +/*!40000 ALTER TABLE `admin_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_permissions_role_links` +-- + +DROP TABLE IF EXISTS `admin_permissions_role_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_permissions_role_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `permission_id` int(10) unsigned DEFAULT NULL, + `role_id` int(10) unsigned DEFAULT NULL, + `permission_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `admin_permissions_role_links_unique` (`permission_id`,`role_id`), + KEY `admin_permissions_role_links_fk` (`permission_id`), + KEY `admin_permissions_role_links_inv_fk` (`role_id`), + KEY `admin_permissions_role_links_order_inv_fk` (`permission_order`), + CONSTRAINT `admin_permissions_role_links_fk` FOREIGN KEY (`permission_id`) REFERENCES `admin_permissions` (`id`) ON DELETE CASCADE, + CONSTRAINT `admin_permissions_role_links_inv_fk` FOREIGN KEY (`role_id`) REFERENCES `admin_roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_permissions_role_links` +-- + +LOCK TABLES `admin_permissions_role_links` WRITE; +/*!40000 ALTER TABLE `admin_permissions_role_links` DISABLE KEYS */; +INSERT INTO `admin_permissions_role_links` (`id`, `permission_id`, `role_id`, `permission_order`) VALUES (1,1,2,1),(2,2,2,2),(3,3,2,3),(4,4,2,4),(5,5,2,5),(6,6,2,6),(7,7,2,7),(8,8,2,8),(9,9,2,9),(10,10,2,10),(11,11,3,1),(12,12,3,2),(13,13,3,3),(14,14,3,4),(15,15,3,5),(16,16,3,6),(17,17,3,7),(18,18,3,8),(19,19,3,9),(20,20,1,1),(21,21,1,2),(22,22,1,3),(23,23,1,4),(24,24,1,5),(25,25,1,6),(26,26,1,7),(27,27,1,8),(28,28,1,9),(29,29,1,10),(30,30,1,11),(31,31,1,12),(32,32,1,13),(33,33,1,14),(34,34,1,15),(35,35,1,16),(36,36,1,17),(37,37,1,18),(38,38,1,19),(39,39,1,20),(40,40,1,21),(41,41,1,22),(42,42,1,23),(43,43,1,24),(44,44,1,25),(45,45,1,26),(46,46,1,27),(47,47,1,28),(48,48,1,29),(49,49,1,30),(50,50,1,31),(51,51,1,32),(52,52,1,33),(53,53,1,34),(54,54,1,35),(55,55,1,36),(56,56,1,37),(57,57,1,38),(58,58,1,39),(59,59,1,40),(60,60,1,41),(61,61,1,42),(62,62,1,43),(63,63,1,44),(64,64,1,45),(65,65,1,46),(66,66,1,47),(67,67,1,48),(68,68,1,49),(69,69,1,50),(70,70,1,51),(71,71,1,52),(72,72,1,53),(73,73,1,54),(74,74,1,55),(75,75,1,56),(76,76,1,57); +/*!40000 ALTER TABLE `admin_permissions_role_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_roles` +-- + +DROP TABLE IF EXISTS `admin_roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_roles` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `code` varchar(255) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `admin_roles_created_by_id_fk` (`created_by_id`), + KEY `admin_roles_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `admin_roles_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `admin_roles_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_roles` +-- + +LOCK TABLES `admin_roles` WRITE; +/*!40000 ALTER TABLE `admin_roles` DISABLE KEYS */; +INSERT INTO `admin_roles` (`id`, `name`, `code`, `description`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'Super Admin','strapi-super-admin','Super Admins can access and manage all features and settings.','2023-01-23 09:35:14.688000','2023-01-23 09:35:14.688000',NULL,NULL),(2,'Editor','strapi-editor','Editors can manage and publish contents including those of other users.','2023-01-23 09:35:14.702000','2023-01-23 09:35:14.702000',NULL,NULL),(3,'Author','strapi-author','Authors can manage the content they have created.','2023-01-23 09:35:14.713000','2023-01-23 09:35:14.713000',NULL,NULL); +/*!40000 ALTER TABLE `admin_roles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_users` +-- + +DROP TABLE IF EXISTS `admin_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `firstname` varchar(255) DEFAULT NULL, + `lastname` varchar(255) DEFAULT NULL, + `username` varchar(255) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `reset_password_token` varchar(255) DEFAULT NULL, + `registration_token` varchar(255) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT NULL, + `blocked` tinyint(1) DEFAULT NULL, + `prefered_language` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `admin_users_created_by_id_fk` (`created_by_id`), + KEY `admin_users_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `admin_users_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `admin_users_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_users` +-- + +LOCK TABLES `admin_users` WRITE; +/*!40000 ALTER TABLE `admin_users` DISABLE KEYS */; +INSERT INTO `admin_users` (`id`, `firstname`, `lastname`, `username`, `email`, `password`, `reset_password_token`, `registration_token`, `is_active`, `blocked`, `prefered_language`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'Sébastien','Näser',NULL,'sebastien.naser@gmail.com','$2a$10$uc69TMTR2mGr2/JlMQKB6ORFfD8kodDXB3MNbLQ0N2Pd1gHD0aIma',NULL,NULL,1,0,NULL,'2023-01-23 09:38:28.959000','2023-01-23 09:38:28.959000',NULL,NULL); +/*!40000 ALTER TABLE `admin_users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_users_roles_links` +-- + +DROP TABLE IF EXISTS `admin_users_roles_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_users_roles_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `user_id` int(10) unsigned DEFAULT NULL, + `role_id` int(10) unsigned DEFAULT NULL, + `role_order` int(10) unsigned DEFAULT NULL, + `user_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `admin_users_roles_links_unique` (`user_id`,`role_id`), + KEY `admin_users_roles_links_fk` (`user_id`), + KEY `admin_users_roles_links_inv_fk` (`role_id`), + KEY `admin_users_roles_links_order_fk` (`role_order`), + KEY `admin_users_roles_links_order_inv_fk` (`user_order`), + CONSTRAINT `admin_users_roles_links_fk` FOREIGN KEY (`user_id`) REFERENCES `admin_users` (`id`) ON DELETE CASCADE, + CONSTRAINT `admin_users_roles_links_inv_fk` FOREIGN KEY (`role_id`) REFERENCES `admin_roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_users_roles_links` +-- + +LOCK TABLES `admin_users_roles_links` WRITE; +/*!40000 ALTER TABLE `admin_users_roles_links` DISABLE KEYS */; +INSERT INTO `admin_users_roles_links` (`id`, `user_id`, `role_id`, `role_order`, `user_order`) VALUES (1,1,1,1,1); +/*!40000 ALTER TABLE `admin_users_roles_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `components_meta_metas` +-- + +DROP TABLE IF EXISTS `components_meta_metas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `components_meta_metas` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `property` varchar(255) DEFAULT NULL, + `content` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `components_meta_metas` +-- + +LOCK TABLES `components_meta_metas` WRITE; +/*!40000 ALTER TABLE `components_meta_metas` DISABLE KEYS */; +/*!40000 ALTER TABLE `components_meta_metas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `components_shared_seos` +-- + +DROP TABLE IF EXISTS `components_shared_seos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `components_shared_seos` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `meta_title` varchar(255) DEFAULT NULL, + `meta_description` longtext DEFAULT NULL, + `prevent_indexing` tinyint(1) DEFAULT NULL, + `structured_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `components_shared_seos` +-- + +LOCK TABLES `components_shared_seos` WRITE; +/*!40000 ALTER TABLE `components_shared_seos` DISABLE KEYS */; +INSERT INTO `components_shared_seos` (`id`, `meta_title`, `meta_description`, `prevent_indexing`, `structured_data`) VALUES (1,'Accueil','L\'école de guitare MCeP permet d\'apprendre aux étudiants à jouer de la guitare en suivant des cours avec des professeurs expérimentés selon une méthode révolutionnaire. Les cours incluent des leçons vidéoludique sur la technique de jeu, et autres compétences liées à la guitare.',0,NULL),(2,'Qui sommes-nous ?','Découvrez qui nous sommes et ce que nous faisons. Nous sommes une école offrant des services de qualité supérieure pour répondre aux besoin de nos étudiant(e)s. Avec une équipe expérimentée et passionnée, nous nous engageons à fournir un enseignement exceptionnel et à dépasser les attentes de nos étudiant(e)s. Rejoignez-nous dans notre mission et devenez partie intégrante de notre communauté. ',0,NULL),(3,'L\'équipe','Rencontrez l\'équipe qui fait tourner les rouages de notre école de guitare. Nous sommes fiers de notre personnel expérimenté et dévoué, qui travaille ensemble pour atteindre notre mission d\'enseigner la guitare. Chacun de nos membres de l\'équipe apporte des compétences uniques et une passion pour ce qu\'ils font, garantissant un service de qualité supérieure pour nos étudiant(e)s. ',0,NULL),(4,'Le programme','Explorez notre programme scolaire de MCeP. Nous offrons une variété de cours pour répondre aux besoins de nos étudiants, couvrant des sujets tels que . Avec des professeurs expérimentés et une méthodologie d\'enseignement moderne et révolutionnaire, nous nous engageons à fournir une formation de qualité supérieure pour nos étudiant(e)s. Que vous soyez débutant ou avancé, nous avons un programme qui conviendra à vos besoins éducatifs. Découvrez comment notre programme peut vous aider à atteindre vos objectifs. ',0,NULL),(5,'Tarifs ','Découvrez nos tarifs et nos options de paiement. Nous sommes fiers de proposer des prix compétitifs pour nos cours catégorisés par niveaux, tout en garantissant une qualité supérieure. Nous sommes également heureux de fournir des informations sur les bourses et les aides financières disponibles pour les étudiants éligibles. Contactez-nous pour obtenir plus d\'informations sur nos tarifs et pour discuter de la meilleure option pour vous.',0,NULL),(6,'Blog','Bienvenue sur notre blog, votre source d\'informations sur notre académie de Guitare. Nous partageons des articles rédigés par notre équipe d\'experts et des contributeurs invités sur des sujets divers et variés. Que vous soyez à la recherche de conseils pratiques, d\'idées d\'inspiration ou d\'informations sur l\'actualité de l\'école, notre blog est la pour vous tenir informé. Nous mettons régulièrement à jour notre contenu pour vous offrir les dernières tendances et les meilleurs pratiques. ',0,NULL),(7,'La boutique','Bienvenue dans notre boutique en ligne. Nous sommes spécialisés dans la vente de guitares de qualité supérieure pour tout les niveaux de joueurs. Nous avons une grande sélection d\'instrument de musique. Nous proposons également un large éventail d\'accessoires pour guitare. Nous vendons également les cours en version papiers et numériques ainsi que des partitions.',0,NULL),(8,'Contactez-nous','N\'hésitez pas à nous contacter pour toute question ou demande de renseignement. Nous sommes là pour vous aider. Vous pouvez nous joindre par téléphone, par email ou en remplissant notre formulaire de contact sur notre site web. Nous ferons de notre mieux pour répondre à vos demandes dans les plus brefs délais. Nous apprécions vos commentaires et suggestions pour améliorer notre service. N\'hésitez pas à nous faire savoir comment nous pouvons vous aider.',0,NULL),(9,'Connexion','Connectez-vous à votre compte pour accéder à vos informations personnelles et à vos commandes. Si vous n\'avez pas de compte, vous pouvez créer un compte en quelques minutes en fournissant vos informations de base. ',0,NULL),(10,'Inscription','Inscrivez-vous pour créer votre compte personnel et profiter de tous les avantages de notre site. L\'inscription est facile et rapide, il vous suffit de fournir vos informations de base. ',0,NULL); +/*!40000 ALTER TABLE `components_shared_seos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `components_shared_seos_components` +-- + +DROP TABLE IF EXISTS `components_shared_seos_components`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `components_shared_seos_components` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `entity_id` int(10) unsigned DEFAULT NULL, + `component_id` int(10) unsigned DEFAULT NULL, + `component_type` varchar(255) DEFAULT NULL, + `field` varchar(255) DEFAULT NULL, + `order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `components_shared_seos_unique` (`entity_id`,`component_id`,`field`,`component_type`), + KEY `components_shared_seos_field_index` (`field`), + KEY `components_shared_seos_component_type_index` (`component_type`), + KEY `components_shared_seos_entity_fk` (`entity_id`), + CONSTRAINT `components_shared_seos_entity_fk` FOREIGN KEY (`entity_id`) REFERENCES `components_shared_seos` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `components_shared_seos_components` +-- + +LOCK TABLES `components_shared_seos_components` WRITE; +/*!40000 ALTER TABLE `components_shared_seos_components` DISABLE KEYS */; +INSERT INTO `components_shared_seos_components` (`id`, `entity_id`, `component_id`, `component_type`, `field`, `order`) VALUES (1,1,2,'shared.shared-image','SharedImage',0); +/*!40000 ALTER TABLE `components_shared_seos_components` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `components_shared_shared_images` +-- + +DROP TABLE IF EXISTS `components_shared_shared_images`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `components_shared_shared_images` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `alt` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `components_shared_shared_images` +-- + +LOCK TABLES `components_shared_shared_images` WRITE; +/*!40000 ALTER TABLE `components_shared_shared_images` DISABLE KEYS */; +INSERT INTO `components_shared_shared_images` (`id`, `alt`) VALUES (1,NULL),(2,NULL); +/*!40000 ALTER TABLE `components_shared_shared_images` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `files` +-- + +DROP TABLE IF EXISTS `files`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `files` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `alternative_text` varchar(255) DEFAULT NULL, + `caption` varchar(255) DEFAULT NULL, + `width` int(11) DEFAULT NULL, + `height` int(11) DEFAULT NULL, + `formats` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `hash` varchar(255) DEFAULT NULL, + `ext` varchar(255) DEFAULT NULL, + `mime` varchar(255) DEFAULT NULL, + `size` decimal(10,2) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `preview_url` varchar(255) DEFAULT NULL, + `provider` varchar(255) DEFAULT NULL, + `provider_metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `folder_path` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `upload_files_folder_path_index` (`folder_path`), + KEY `files_created_by_id_fk` (`created_by_id`), + KEY `files_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `files_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `files_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `files` +-- + +LOCK TABLES `files` WRITE; +/*!40000 ALTER TABLE `files` DISABLE KEYS */; +/*!40000 ALTER TABLE `files` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `files_folder_links` +-- + +DROP TABLE IF EXISTS `files_folder_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `files_folder_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `file_id` int(10) unsigned DEFAULT NULL, + `folder_id` int(10) unsigned DEFAULT NULL, + `file_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `files_folder_links_unique` (`file_id`,`folder_id`), + KEY `files_folder_links_fk` (`file_id`), + KEY `files_folder_links_inv_fk` (`folder_id`), + KEY `files_folder_links_order_inv_fk` (`file_order`), + CONSTRAINT `files_folder_links_fk` FOREIGN KEY (`file_id`) REFERENCES `files` (`id`) ON DELETE CASCADE, + CONSTRAINT `files_folder_links_inv_fk` FOREIGN KEY (`folder_id`) REFERENCES `upload_folders` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `files_folder_links` +-- + +LOCK TABLES `files_folder_links` WRITE; +/*!40000 ALTER TABLE `files_folder_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `files_folder_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `files_related_morphs` +-- + +DROP TABLE IF EXISTS `files_related_morphs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `files_related_morphs` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `file_id` int(10) unsigned DEFAULT NULL, + `related_id` int(10) unsigned DEFAULT NULL, + `related_type` varchar(255) DEFAULT NULL, + `field` varchar(255) DEFAULT NULL, + `order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `files_related_morphs_fk` (`file_id`), + CONSTRAINT `files_related_morphs_fk` FOREIGN KEY (`file_id`) REFERENCES `files` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `files_related_morphs` +-- + +LOCK TABLES `files_related_morphs` WRITE; +/*!40000 ALTER TABLE `files_related_morphs` DISABLE KEYS */; +/*!40000 ALTER TABLE `files_related_morphs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `i18n_locale` +-- + +DROP TABLE IF EXISTS `i18n_locale`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `i18n_locale` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `code` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `i18n_locale_created_by_id_fk` (`created_by_id`), + KEY `i18n_locale_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `i18n_locale_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `i18n_locale_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `i18n_locale` +-- + +LOCK TABLES `i18n_locale` WRITE; +/*!40000 ALTER TABLE `i18n_locale` DISABLE KEYS */; +INSERT INTO `i18n_locale` (`id`, `name`, `code`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'English (en)','en','2023-01-23 09:35:14.453000','2023-01-23 09:35:14.453000',NULL,NULL); +/*!40000 ALTER TABLE `i18n_locale` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `menu_items` +-- + +DROP TABLE IF EXISTS `menu_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `menu_items` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `order` int(11) DEFAULT NULL, + `title` varchar(255) DEFAULT NULL, + `url` varchar(255) DEFAULT NULL, + `target` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `menu_items_created_by_id_fk` (`created_by_id`), + KEY `menu_items_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `menu_items_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `menu_items_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `menu_items` +-- + +LOCK TABLES `menu_items` WRITE; +/*!40000 ALTER TABLE `menu_items` DISABLE KEYS */; +INSERT INTO `menu_items` (`id`, `order`, `title`, `url`, `target`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,0,'Accueil','/home','_self','2023-01-23 11:29:46.531000','2023-01-23 11:31:47.296000',NULL,NULL),(2,1,'L\'école','/school','_self','2023-01-23 11:30:01.130000','2023-01-23 11:31:47.298000',NULL,NULL),(3,0,'Qui sommes-nous ?','/about-us','_self','2023-01-23 11:30:14.908000','2023-01-23 11:31:47.320000',NULL,NULL),(4,1,'L\'équipe','/teachers','_self','2023-01-23 11:30:24.274000','2023-01-23 11:31:47.322000',NULL,NULL),(5,2,'Le programme','/school-programm','_self','2023-01-23 11:30:43.878000','2023-01-23 11:31:47.331000',NULL,NULL),(7,3,'Les tarifs','/pricing','_self','2023-01-23 11:31:32.432000','2023-01-23 11:31:47.327000',NULL,NULL),(8,2,'Blog','/blog','_self','2023-01-23 11:31:32.435000','2023-01-23 11:31:47.326000',NULL,NULL),(9,3,'Contactez-nous','/contact-us','_self','2023-01-23 11:31:47.221000','2023-01-23 11:31:47.221000',NULL,NULL),(10,0,'Qui sommes-nous ?','/about-us','_self','2023-01-23 11:32:51.508000','2023-01-23 11:32:51.508000',NULL,NULL),(11,2,'Contactez-nous','/contact-us','_self','2023-01-23 11:32:51.532000','2023-01-23 11:32:51.532000',NULL,NULL),(12,1,'Condition d\'utilisation','/terms-of-use','_self','2023-01-23 11:32:51.516000','2023-01-23 11:32:51.516000',NULL,NULL); +/*!40000 ALTER TABLE `menu_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `menu_items_parent_links` +-- + +DROP TABLE IF EXISTS `menu_items_parent_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `menu_items_parent_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `menu_item_id` int(10) unsigned DEFAULT NULL, + `inv_menu_item_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `menu_items_parent_links_unique` (`menu_item_id`,`inv_menu_item_id`), + KEY `menu_items_parent_links_fk` (`menu_item_id`), + KEY `menu_items_parent_links_inv_fk` (`inv_menu_item_id`), + CONSTRAINT `menu_items_parent_links_fk` FOREIGN KEY (`menu_item_id`) REFERENCES `menu_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `menu_items_parent_links_inv_fk` FOREIGN KEY (`inv_menu_item_id`) REFERENCES `menu_items` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `menu_items_parent_links` +-- + +LOCK TABLES `menu_items_parent_links` WRITE; +/*!40000 ALTER TABLE `menu_items_parent_links` DISABLE KEYS */; +INSERT INTO `menu_items_parent_links` (`id`, `menu_item_id`, `inv_menu_item_id`) VALUES (1,3,2),(2,4,2),(4,5,2),(11,7,2); +/*!40000 ALTER TABLE `menu_items_parent_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `menu_items_root_menu_links` +-- + +DROP TABLE IF EXISTS `menu_items_root_menu_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `menu_items_root_menu_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `menu_item_id` int(10) unsigned DEFAULT NULL, + `menu_id` int(10) unsigned DEFAULT NULL, + `menu_item_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `menu_items_root_menu_links_unique` (`menu_item_id`,`menu_id`), + KEY `menu_items_root_menu_links_fk` (`menu_item_id`), + KEY `menu_items_root_menu_links_inv_fk` (`menu_id`), + KEY `menu_items_root_menu_links_order_inv_fk` (`menu_item_order`), + CONSTRAINT `menu_items_root_menu_links_fk` FOREIGN KEY (`menu_item_id`) REFERENCES `menu_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `menu_items_root_menu_links_inv_fk` FOREIGN KEY (`menu_id`) REFERENCES `menus` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `menu_items_root_menu_links` +-- + +LOCK TABLES `menu_items_root_menu_links` WRITE; +/*!40000 ALTER TABLE `menu_items_root_menu_links` DISABLE KEYS */; +INSERT INTO `menu_items_root_menu_links` (`id`, `menu_item_id`, `menu_id`, `menu_item_order`) VALUES (1,1,1,1),(2,2,1,2),(3,3,1,3),(4,4,1,4),(5,5,1,5),(7,7,1,6),(8,8,1,6),(9,9,1,7),(10,10,2,1),(11,11,2,2),(12,12,2,2); +/*!40000 ALTER TABLE `menu_items_root_menu_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `menus` +-- + +DROP TABLE IF EXISTS `menus`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `menus` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) DEFAULT NULL, + `slug` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `menus_slug_unique` (`slug`), + KEY `menus_created_by_id_fk` (`created_by_id`), + KEY `menus_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `menus_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `menus_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `menus` +-- + +LOCK TABLES `menus` WRITE; +/*!40000 ALTER TABLE `menus` DISABLE KEYS */; +INSERT INTO `menus` (`id`, `title`, `slug`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'Main menu','main-menu','2023-01-23 11:29:16.776000','2023-01-23 11:31:47.379000',NULL,NULL),(2,'footer-menu','footer-menu','2023-01-23 11:32:51.418000','2023-01-23 11:32:51.418000',NULL,NULL); +/*!40000 ALTER TABLE `menus` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pages` +-- + +DROP TABLE IF EXISTS `pages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `pages` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `label` varchar(255) DEFAULT NULL, + `slug` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `published_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `pages_slug_unique` (`slug`), + KEY `pages_created_by_id_fk` (`created_by_id`), + KEY `pages_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `pages_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `pages_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pages` +-- + +LOCK TABLES `pages` WRITE; +/*!40000 ALTER TABLE `pages` DISABLE KEYS */; +INSERT INTO `pages` (`id`, `label`, `slug`, `created_at`, `updated_at`, `published_at`, `created_by_id`, `updated_by_id`) VALUES (1,'Accueil','home','2023-01-23 09:49:30.160000','2023-01-23 11:37:38.473000','2023-01-23 11:37:38.462000',1,1),(2,'Qui sommes-nous ?','about-us','2023-01-23 10:17:33.277000','2023-01-23 11:37:55.095000','2023-01-23 11:37:55.089000',1,1),(3,'L\'équipe','teachers','2023-01-23 10:19:38.174000','2023-01-23 11:37:47.542000','2023-01-23 11:37:47.537000',1,1),(4,'Le programme','school-program','2023-01-23 11:15:49.709000','2023-01-23 11:37:52.737000','2023-01-23 11:37:52.731000',1,1),(5,'Tarifs','pricing','2023-01-23 11:18:09.984000','2023-01-23 11:37:57.796000','2023-01-23 11:37:57.790000',1,1),(6,'Blog','blog','2023-01-23 11:20:46.898000','2023-01-23 11:37:42.047000','2023-01-23 11:37:42.041000',1,1),(7,'La boutique','shop','2023-01-23 11:23:22.087000','2023-01-23 11:37:50.610000','2023-01-23 11:37:50.604000',1,1),(8,'Contactez-nous','contact-us','2023-01-23 11:28:43.470000','2023-01-23 11:37:44.610000','2023-01-23 11:37:44.603000',1,1),(9,'Connexion','sign-in','2023-01-23 11:39:29.869000','2023-01-23 11:39:31.588000','2023-01-23 11:39:31.582000',1,1),(10,'Inscription','sign-up','2023-01-23 11:41:57.883000','2023-01-23 11:41:58.656000','2023-01-23 11:41:58.649000',1,1); +/*!40000 ALTER TABLE `pages` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pages_components` +-- + +DROP TABLE IF EXISTS `pages_components`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `pages_components` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `entity_id` int(10) unsigned DEFAULT NULL, + `component_id` int(10) unsigned DEFAULT NULL, + `component_type` varchar(255) DEFAULT NULL, + `field` varchar(255) DEFAULT NULL, + `order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `pages_unique` (`entity_id`,`component_id`,`field`,`component_type`), + KEY `pages_field_index` (`field`), + KEY `pages_component_type_index` (`component_type`), + KEY `pages_entity_fk` (`entity_id`), + CONSTRAINT `pages_entity_fk` FOREIGN KEY (`entity_id`) REFERENCES `pages` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pages_components` +-- + +LOCK TABLES `pages_components` WRITE; +/*!40000 ALTER TABLE `pages_components` DISABLE KEYS */; +INSERT INTO `pages_components` (`id`, `entity_id`, `component_id`, `component_type`, `field`, `order`) VALUES (1,1,1,'shared.seo','seo',NULL),(4,2,2,'shared.seo','seo',NULL),(5,3,3,'shared.seo','seo',NULL),(6,4,4,'shared.seo','seo',NULL),(7,5,5,'shared.seo','seo',NULL),(8,6,6,'shared.seo','seo',NULL),(9,7,7,'shared.seo','seo',NULL),(10,8,8,'shared.seo','seo',NULL),(12,9,9,'shared.seo','seo',NULL),(13,10,10,'shared.seo','seo',NULL); +/*!40000 ALTER TABLE `pages_components` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `strapi_api_token_permissions` +-- + +DROP TABLE IF EXISTS `strapi_api_token_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `strapi_api_token_permissions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `action` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `strapi_api_token_permissions_created_by_id_fk` (`created_by_id`), + KEY `strapi_api_token_permissions_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `strapi_api_token_permissions_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `strapi_api_token_permissions_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `strapi_api_token_permissions` +-- + +LOCK TABLES `strapi_api_token_permissions` WRITE; +/*!40000 ALTER TABLE `strapi_api_token_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `strapi_api_token_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `strapi_api_token_permissions_token_links` +-- + +DROP TABLE IF EXISTS `strapi_api_token_permissions_token_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `strapi_api_token_permissions_token_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `api_token_permission_id` int(10) unsigned DEFAULT NULL, + `api_token_id` int(10) unsigned DEFAULT NULL, + `api_token_permission_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `strapi_api_token_permissions_token_links_unique` (`api_token_permission_id`,`api_token_id`), + KEY `strapi_api_token_permissions_token_links_fk` (`api_token_permission_id`), + KEY `strapi_api_token_permissions_token_links_inv_fk` (`api_token_id`), + KEY `strapi_api_token_permissions_token_links_order_inv_fk` (`api_token_permission_order`), + CONSTRAINT `strapi_api_token_permissions_token_links_fk` FOREIGN KEY (`api_token_permission_id`) REFERENCES `strapi_api_token_permissions` (`id`) ON DELETE CASCADE, + CONSTRAINT `strapi_api_token_permissions_token_links_inv_fk` FOREIGN KEY (`api_token_id`) REFERENCES `strapi_api_tokens` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `strapi_api_token_permissions_token_links` +-- + +LOCK TABLES `strapi_api_token_permissions_token_links` WRITE; +/*!40000 ALTER TABLE `strapi_api_token_permissions_token_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `strapi_api_token_permissions_token_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `strapi_api_tokens` +-- + +DROP TABLE IF EXISTS `strapi_api_tokens`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `strapi_api_tokens` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `access_key` varchar(255) DEFAULT NULL, + `last_used_at` datetime(6) DEFAULT NULL, + `expires_at` datetime(6) DEFAULT NULL, + `lifespan` bigint(20) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `strapi_api_tokens_created_by_id_fk` (`created_by_id`), + KEY `strapi_api_tokens_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `strapi_api_tokens_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `strapi_api_tokens_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `strapi_api_tokens` +-- + +LOCK TABLES `strapi_api_tokens` WRITE; +/*!40000 ALTER TABLE `strapi_api_tokens` DISABLE KEYS */; +/*!40000 ALTER TABLE `strapi_api_tokens` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `strapi_core_store_settings` +-- + +DROP TABLE IF EXISTS `strapi_core_store_settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `strapi_core_store_settings` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `key` varchar(255) DEFAULT NULL, + `value` longtext DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `environment` varchar(255) DEFAULT NULL, + `tag` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `strapi_core_store_settings` +-- + +LOCK TABLES `strapi_core_store_settings` WRITE; +/*!40000 ALTER TABLE `strapi_core_store_settings` DISABLE KEYS */; +INSERT INTO `strapi_core_store_settings` (`id`, `key`, `value`, `type`, `environment`, `tag`) VALUES (1,'strapi_content_types_schema','{\"admin::permission\":{\"collectionName\":\"admin_permissions\",\"info\":{\"name\":\"Permission\",\"description\":\"\",\"singularName\":\"permission\",\"pluralName\":\"permissions\",\"displayName\":\"Permission\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"action\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true},\"subject\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":false},\"properties\":{\"type\":\"json\",\"configurable\":false,\"required\":false,\"default\":{}},\"conditions\":{\"type\":\"json\",\"configurable\":false,\"required\":false,\"default\":[]},\"role\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"manyToOne\",\"inversedBy\":\"permissions\",\"target\":\"admin::role\"},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"admin_permissions\",\"info\":{\"name\":\"Permission\",\"description\":\"\",\"singularName\":\"permission\",\"pluralName\":\"permissions\",\"displayName\":\"Permission\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"action\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true},\"subject\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":false},\"properties\":{\"type\":\"json\",\"configurable\":false,\"required\":false,\"default\":{}},\"conditions\":{\"type\":\"json\",\"configurable\":false,\"required\":false,\"default\":[]},\"role\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"manyToOne\",\"inversedBy\":\"permissions\",\"target\":\"admin::role\"}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"permission\",\"connection\":\"default\",\"uid\":\"admin::permission\",\"plugin\":\"admin\",\"globalId\":\"AdminPermission\"},\"admin::user\":{\"collectionName\":\"admin_users\",\"info\":{\"name\":\"User\",\"description\":\"\",\"singularName\":\"user\",\"pluralName\":\"users\",\"displayName\":\"User\"},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"firstname\":{\"type\":\"string\",\"unique\":false,\"minLength\":1,\"configurable\":false,\"required\":false},\"lastname\":{\"type\":\"string\",\"unique\":false,\"minLength\":1,\"configurable\":false,\"required\":false},\"username\":{\"type\":\"string\",\"unique\":false,\"configurable\":false,\"required\":false},\"email\":{\"type\":\"email\",\"minLength\":6,\"configurable\":false,\"required\":true,\"unique\":true,\"private\":true},\"password\":{\"type\":\"password\",\"minLength\":6,\"configurable\":false,\"required\":false,\"private\":true},\"resetPasswordToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"registrationToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"isActive\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false,\"private\":true},\"roles\":{\"configurable\":false,\"private\":true,\"type\":\"relation\",\"relation\":\"manyToMany\",\"inversedBy\":\"users\",\"target\":\"admin::role\",\"collectionName\":\"strapi_users_roles\"},\"blocked\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false,\"private\":true},\"preferedLanguage\":{\"type\":\"string\",\"configurable\":false,\"required\":false},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"admin_users\",\"info\":{\"name\":\"User\",\"description\":\"\",\"singularName\":\"user\",\"pluralName\":\"users\",\"displayName\":\"User\"},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"firstname\":{\"type\":\"string\",\"unique\":false,\"minLength\":1,\"configurable\":false,\"required\":false},\"lastname\":{\"type\":\"string\",\"unique\":false,\"minLength\":1,\"configurable\":false,\"required\":false},\"username\":{\"type\":\"string\",\"unique\":false,\"configurable\":false,\"required\":false},\"email\":{\"type\":\"email\",\"minLength\":6,\"configurable\":false,\"required\":true,\"unique\":true,\"private\":true},\"password\":{\"type\":\"password\",\"minLength\":6,\"configurable\":false,\"required\":false,\"private\":true},\"resetPasswordToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"registrationToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"isActive\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false,\"private\":true},\"roles\":{\"configurable\":false,\"private\":true,\"type\":\"relation\",\"relation\":\"manyToMany\",\"inversedBy\":\"users\",\"target\":\"admin::role\",\"collectionName\":\"strapi_users_roles\"},\"blocked\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false,\"private\":true},\"preferedLanguage\":{\"type\":\"string\",\"configurable\":false,\"required\":false}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"user\",\"connection\":\"default\",\"uid\":\"admin::user\",\"plugin\":\"admin\",\"globalId\":\"AdminUser\"},\"admin::role\":{\"collectionName\":\"admin_roles\",\"info\":{\"name\":\"Role\",\"description\":\"\",\"singularName\":\"role\",\"pluralName\":\"roles\",\"displayName\":\"Role\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"unique\":true,\"configurable\":false,\"required\":true},\"code\":{\"type\":\"string\",\"minLength\":1,\"unique\":true,\"configurable\":false,\"required\":true},\"description\":{\"type\":\"string\",\"configurable\":false},\"users\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"manyToMany\",\"mappedBy\":\"roles\",\"target\":\"admin::user\"},\"permissions\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"oneToMany\",\"mappedBy\":\"role\",\"target\":\"admin::permission\"},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"admin_roles\",\"info\":{\"name\":\"Role\",\"description\":\"\",\"singularName\":\"role\",\"pluralName\":\"roles\",\"displayName\":\"Role\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"unique\":true,\"configurable\":false,\"required\":true},\"code\":{\"type\":\"string\",\"minLength\":1,\"unique\":true,\"configurable\":false,\"required\":true},\"description\":{\"type\":\"string\",\"configurable\":false},\"users\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"manyToMany\",\"mappedBy\":\"roles\",\"target\":\"admin::user\"},\"permissions\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"oneToMany\",\"mappedBy\":\"role\",\"target\":\"admin::permission\"}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"role\",\"connection\":\"default\",\"uid\":\"admin::role\",\"plugin\":\"admin\",\"globalId\":\"AdminRole\"},\"admin::api-token\":{\"collectionName\":\"strapi_api_tokens\",\"info\":{\"name\":\"Api Token\",\"singularName\":\"api-token\",\"pluralName\":\"api-tokens\",\"displayName\":\"Api Token\",\"description\":\"\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true,\"unique\":true},\"description\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":false,\"default\":\"\"},\"type\":{\"type\":\"enumeration\",\"enum\":[\"read-only\",\"full-access\",\"custom\"],\"configurable\":false,\"required\":true,\"default\":\"read-only\"},\"accessKey\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true},\"lastUsedAt\":{\"type\":\"datetime\",\"configurable\":false,\"required\":false},\"permissions\":{\"type\":\"relation\",\"target\":\"admin::api-token-permission\",\"relation\":\"oneToMany\",\"mappedBy\":\"token\",\"configurable\":false,\"required\":false},\"expiresAt\":{\"type\":\"datetime\",\"configurable\":false,\"required\":false},\"lifespan\":{\"type\":\"biginteger\",\"configurable\":false,\"required\":false},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"strapi_api_tokens\",\"info\":{\"name\":\"Api Token\",\"singularName\":\"api-token\",\"pluralName\":\"api-tokens\",\"displayName\":\"Api Token\",\"description\":\"\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true,\"unique\":true},\"description\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":false,\"default\":\"\"},\"type\":{\"type\":\"enumeration\",\"enum\":[\"read-only\",\"full-access\",\"custom\"],\"configurable\":false,\"required\":true,\"default\":\"read-only\"},\"accessKey\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true},\"lastUsedAt\":{\"type\":\"datetime\",\"configurable\":false,\"required\":false},\"permissions\":{\"type\":\"relation\",\"target\":\"admin::api-token-permission\",\"relation\":\"oneToMany\",\"mappedBy\":\"token\",\"configurable\":false,\"required\":false},\"expiresAt\":{\"type\":\"datetime\",\"configurable\":false,\"required\":false},\"lifespan\":{\"type\":\"biginteger\",\"configurable\":false,\"required\":false}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"api-token\",\"connection\":\"default\",\"uid\":\"admin::api-token\",\"plugin\":\"admin\",\"globalId\":\"AdminApiToken\"},\"admin::api-token-permission\":{\"collectionName\":\"strapi_api_token_permissions\",\"info\":{\"name\":\"API Token Permission\",\"description\":\"\",\"singularName\":\"api-token-permission\",\"pluralName\":\"api-token-permissions\",\"displayName\":\"API Token Permission\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"action\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true},\"token\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"manyToOne\",\"inversedBy\":\"permissions\",\"target\":\"admin::api-token\"},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"strapi_api_token_permissions\",\"info\":{\"name\":\"API Token Permission\",\"description\":\"\",\"singularName\":\"api-token-permission\",\"pluralName\":\"api-token-permissions\",\"displayName\":\"API Token Permission\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"action\":{\"type\":\"string\",\"minLength\":1,\"configurable\":false,\"required\":true},\"token\":{\"configurable\":false,\"type\":\"relation\",\"relation\":\"manyToOne\",\"inversedBy\":\"permissions\",\"target\":\"admin::api-token\"}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"api-token-permission\",\"connection\":\"default\",\"uid\":\"admin::api-token-permission\",\"plugin\":\"admin\",\"globalId\":\"AdminApiTokenPermission\"},\"api::page.page\":{\"kind\":\"collectionType\",\"collectionName\":\"pages\",\"info\":{\"singularName\":\"page\",\"pluralName\":\"pages\",\"displayName\":\"Pages\",\"description\":\"\"},\"options\":{\"draftAndPublish\":true},\"pluginOptions\":{},\"attributes\":{\"label\":{\"type\":\"string\"},\"slug\":{\"type\":\"uid\",\"targetField\":\"label\"},\"seo\":{\"type\":\"component\",\"repeatable\":false,\"component\":\"shared.seo\"},\"Login\":{\"type\":\"dynamiczone\",\"components\":[]},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"publishedAt\":{\"type\":\"datetime\",\"configurable\":false,\"writable\":true,\"visible\":false},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"__schema__\":{\"collectionName\":\"pages\",\"info\":{\"singularName\":\"page\",\"pluralName\":\"pages\",\"displayName\":\"Pages\",\"description\":\"\"},\"options\":{\"draftAndPublish\":true},\"pluginOptions\":{},\"attributes\":{\"label\":{\"type\":\"string\"},\"slug\":{\"type\":\"uid\",\"targetField\":\"label\"},\"seo\":{\"type\":\"component\",\"repeatable\":false,\"component\":\"shared.seo\"},\"Login\":{\"type\":\"dynamiczone\",\"components\":[]}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"page\",\"connection\":\"default\",\"uid\":\"api::page.page\",\"apiName\":\"page\",\"globalId\":\"Page\",\"actions\":{},\"lifecycles\":{}},\"plugin::upload.file\":{\"collectionName\":\"files\",\"info\":{\"singularName\":\"file\",\"pluralName\":\"files\",\"displayName\":\"File\",\"description\":\"\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"alternativeText\":{\"type\":\"string\",\"configurable\":false},\"caption\":{\"type\":\"string\",\"configurable\":false},\"width\":{\"type\":\"integer\",\"configurable\":false},\"height\":{\"type\":\"integer\",\"configurable\":false},\"formats\":{\"type\":\"json\",\"configurable\":false},\"hash\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"ext\":{\"type\":\"string\",\"configurable\":false},\"mime\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"size\":{\"type\":\"decimal\",\"configurable\":false,\"required\":true},\"url\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"previewUrl\":{\"type\":\"string\",\"configurable\":false},\"provider\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"provider_metadata\":{\"type\":\"json\",\"configurable\":false},\"related\":{\"type\":\"relation\",\"relation\":\"morphToMany\",\"configurable\":false},\"folder\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::upload.folder\",\"inversedBy\":\"files\",\"private\":true},\"folderPath\":{\"type\":\"string\",\"min\":1,\"required\":true,\"private\":true},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"indexes\":[{\"name\":\"upload_files_folder_path_index\",\"columns\":[\"folder_path\"],\"type\":null}],\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"files\",\"info\":{\"singularName\":\"file\",\"pluralName\":\"files\",\"displayName\":\"File\",\"description\":\"\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"alternativeText\":{\"type\":\"string\",\"configurable\":false},\"caption\":{\"type\":\"string\",\"configurable\":false},\"width\":{\"type\":\"integer\",\"configurable\":false},\"height\":{\"type\":\"integer\",\"configurable\":false},\"formats\":{\"type\":\"json\",\"configurable\":false},\"hash\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"ext\":{\"type\":\"string\",\"configurable\":false},\"mime\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"size\":{\"type\":\"decimal\",\"configurable\":false,\"required\":true},\"url\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"previewUrl\":{\"type\":\"string\",\"configurable\":false},\"provider\":{\"type\":\"string\",\"configurable\":false,\"required\":true},\"provider_metadata\":{\"type\":\"json\",\"configurable\":false},\"related\":{\"type\":\"relation\",\"relation\":\"morphToMany\",\"configurable\":false},\"folder\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::upload.folder\",\"inversedBy\":\"files\",\"private\":true},\"folderPath\":{\"type\":\"string\",\"min\":1,\"required\":true,\"private\":true}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"file\",\"connection\":\"default\",\"uid\":\"plugin::upload.file\",\"plugin\":\"upload\",\"globalId\":\"UploadFile\"},\"plugin::upload.folder\":{\"collectionName\":\"upload_folders\",\"info\":{\"singularName\":\"folder\",\"pluralName\":\"folders\",\"displayName\":\"Folder\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"min\":1,\"required\":true},\"pathId\":{\"type\":\"integer\",\"unique\":true,\"required\":true},\"parent\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::upload.folder\",\"inversedBy\":\"children\"},\"children\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::upload.folder\",\"mappedBy\":\"parent\"},\"files\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::upload.file\",\"mappedBy\":\"folder\"},\"path\":{\"type\":\"string\",\"min\":1,\"required\":true},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"indexes\":[{\"name\":\"upload_folders_path_id_index\",\"columns\":[\"path_id\"],\"type\":\"unique\"},{\"name\":\"upload_folders_path_index\",\"columns\":[\"path\"],\"type\":\"unique\"}],\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"upload_folders\",\"info\":{\"singularName\":\"folder\",\"pluralName\":\"folders\",\"displayName\":\"Folder\"},\"options\":{},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"min\":1,\"required\":true},\"pathId\":{\"type\":\"integer\",\"unique\":true,\"required\":true},\"parent\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::upload.folder\",\"inversedBy\":\"children\"},\"children\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::upload.folder\",\"mappedBy\":\"parent\"},\"files\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::upload.file\",\"mappedBy\":\"folder\"},\"path\":{\"type\":\"string\",\"min\":1,\"required\":true}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"folder\",\"connection\":\"default\",\"uid\":\"plugin::upload.folder\",\"plugin\":\"upload\",\"globalId\":\"UploadFolder\"},\"plugin::i18n.locale\":{\"info\":{\"singularName\":\"locale\",\"pluralName\":\"locales\",\"collectionName\":\"locales\",\"displayName\":\"Locale\",\"description\":\"\"},\"options\":{\"draftAndPublish\":false},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"min\":1,\"max\":50,\"configurable\":false},\"code\":{\"type\":\"string\",\"unique\":true,\"configurable\":false},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"info\":{\"singularName\":\"locale\",\"pluralName\":\"locales\",\"collectionName\":\"locales\",\"displayName\":\"Locale\",\"description\":\"\"},\"options\":{\"draftAndPublish\":false},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"min\":1,\"max\":50,\"configurable\":false},\"code\":{\"type\":\"string\",\"unique\":true,\"configurable\":false}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"locale\",\"connection\":\"default\",\"uid\":\"plugin::i18n.locale\",\"plugin\":\"i18n\",\"collectionName\":\"i18n_locale\",\"globalId\":\"I18NLocale\"},\"plugin::users-permissions.permission\":{\"collectionName\":\"up_permissions\",\"info\":{\"name\":\"permission\",\"description\":\"\",\"singularName\":\"permission\",\"pluralName\":\"permissions\",\"displayName\":\"Permission\"},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"action\":{\"type\":\"string\",\"required\":true,\"configurable\":false},\"role\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::users-permissions.role\",\"inversedBy\":\"permissions\",\"configurable\":false},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"up_permissions\",\"info\":{\"name\":\"permission\",\"description\":\"\",\"singularName\":\"permission\",\"pluralName\":\"permissions\",\"displayName\":\"Permission\"},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"action\":{\"type\":\"string\",\"required\":true,\"configurable\":false},\"role\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::users-permissions.role\",\"inversedBy\":\"permissions\",\"configurable\":false}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"permission\",\"connection\":\"default\",\"uid\":\"plugin::users-permissions.permission\",\"plugin\":\"users-permissions\",\"globalId\":\"UsersPermissionsPermission\"},\"plugin::users-permissions.role\":{\"collectionName\":\"up_roles\",\"info\":{\"name\":\"role\",\"description\":\"\",\"singularName\":\"role\",\"pluralName\":\"roles\",\"displayName\":\"Role\"},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"minLength\":3,\"required\":true,\"configurable\":false},\"description\":{\"type\":\"string\",\"configurable\":false},\"type\":{\"type\":\"string\",\"unique\":true,\"configurable\":false},\"permissions\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::users-permissions.permission\",\"mappedBy\":\"role\",\"configurable\":false},\"users\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::users-permissions.user\",\"mappedBy\":\"role\",\"configurable\":false},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"kind\":\"collectionType\",\"__schema__\":{\"collectionName\":\"up_roles\",\"info\":{\"name\":\"role\",\"description\":\"\",\"singularName\":\"role\",\"pluralName\":\"roles\",\"displayName\":\"Role\"},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"name\":{\"type\":\"string\",\"minLength\":3,\"required\":true,\"configurable\":false},\"description\":{\"type\":\"string\",\"configurable\":false},\"type\":{\"type\":\"string\",\"unique\":true,\"configurable\":false},\"permissions\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::users-permissions.permission\",\"mappedBy\":\"role\",\"configurable\":false},\"users\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::users-permissions.user\",\"mappedBy\":\"role\",\"configurable\":false}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"role\",\"connection\":\"default\",\"uid\":\"plugin::users-permissions.role\",\"plugin\":\"users-permissions\",\"globalId\":\"UsersPermissionsRole\"},\"plugin::users-permissions.user\":{\"collectionName\":\"up_users\",\"info\":{\"name\":\"user\",\"description\":\"\",\"singularName\":\"user\",\"pluralName\":\"users\",\"displayName\":\"User\"},\"options\":{\"draftAndPublish\":false,\"timestamps\":true},\"attributes\":{\"username\":{\"type\":\"string\",\"minLength\":3,\"unique\":true,\"configurable\":false,\"required\":true},\"email\":{\"type\":\"email\",\"minLength\":6,\"configurable\":false,\"required\":true},\"provider\":{\"type\":\"string\",\"configurable\":false},\"password\":{\"type\":\"password\",\"minLength\":6,\"configurable\":false,\"private\":true},\"resetPasswordToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"confirmationToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"confirmed\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false},\"blocked\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false},\"role\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::users-permissions.role\",\"inversedBy\":\"users\",\"configurable\":false},\"avatar\":{\"allowedTypes\":[\"images\"],\"type\":\"media\",\"configurable\":false,\"multiple\":false},\"newsletter\":{\"type\":\"boolean\",\"default\":false},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"config\":{\"attributes\":{\"resetPasswordToken\":{\"hidden\":true},\"confirmationToken\":{\"hidden\":true},\"provider\":{\"hidden\":true}}},\"kind\":\"collectionType\",\"__filename__\":\"schema.json\",\"__schema__\":{\"collectionName\":\"up_users\",\"info\":{\"name\":\"user\",\"description\":\"\",\"singularName\":\"user\",\"pluralName\":\"users\",\"displayName\":\"User\"},\"options\":{\"draftAndPublish\":false,\"timestamps\":true},\"attributes\":{\"username\":{\"type\":\"string\",\"minLength\":3,\"unique\":true,\"configurable\":false,\"required\":true},\"email\":{\"type\":\"email\",\"minLength\":6,\"configurable\":false,\"required\":true},\"provider\":{\"type\":\"string\",\"configurable\":false},\"password\":{\"type\":\"password\",\"minLength\":6,\"configurable\":false,\"private\":true},\"resetPasswordToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"confirmationToken\":{\"type\":\"string\",\"configurable\":false,\"private\":true},\"confirmed\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false},\"blocked\":{\"type\":\"boolean\",\"default\":false,\"configurable\":false},\"role\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::users-permissions.role\",\"inversedBy\":\"users\",\"configurable\":false},\"avatar\":{\"allowedTypes\":[\"images\"],\"type\":\"media\",\"configurable\":false,\"multiple\":false},\"newsletter\":{\"type\":\"boolean\",\"default\":false}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"user\",\"connection\":\"default\",\"uid\":\"plugin::users-permissions.user\",\"plugin\":\"users-permissions\",\"globalId\":\"UsersPermissionsUser\"},\"plugin::menus.menu\":{\"kind\":\"collectionType\",\"collectionName\":\"menus\",\"info\":{\"displayName\":\"Menu\",\"singularName\":\"menu\",\"pluralName\":\"menus\",\"tableName\":\"menus\"},\"options\":{\"draftAndPublish\":false},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"title\":{\"type\":\"string\",\"required\":true},\"slug\":{\"type\":\"uid\",\"targetField\":\"title\",\"required\":true},\"items\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::menus.menu-item\",\"mappedBy\":\"root_menu\"},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"__schema__\":{\"collectionName\":\"menus\",\"info\":{\"displayName\":\"Menu\",\"singularName\":\"menu\",\"pluralName\":\"menus\",\"tableName\":\"menus\"},\"options\":{\"draftAndPublish\":false},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"title\":{\"type\":\"string\",\"required\":true},\"slug\":{\"type\":\"uid\",\"targetField\":\"title\",\"required\":true},\"items\":{\"type\":\"relation\",\"relation\":\"oneToMany\",\"target\":\"plugin::menus.menu-item\",\"mappedBy\":\"root_menu\"}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"menu\",\"connection\":\"default\",\"uid\":\"plugin::menus.menu\",\"plugin\":\"menus\",\"globalId\":\"MenusMenu\"},\"plugin::menus.menu-item\":{\"kind\":\"collectionType\",\"collectionName\":\"menu_items\",\"info\":{\"displayName\":\"Menu Item\",\"singularName\":\"menu-item\",\"pluralName\":\"menu-items\",\"tableName\":\"menu_items\"},\"options\":{\"draftAndPublish\":false},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"order\":{\"type\":\"integer\"},\"title\":{\"type\":\"string\",\"required\":true},\"url\":{\"type\":\"string\"},\"target\":{\"type\":\"enumeration\",\"enum\":[\"_blank\",\"_parent\",\"_self\",\"_top\"]},\"root_menu\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::menus.menu\",\"inversedBy\":\"items\",\"required\":true},\"parent\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"plugin::menus.menu-item\"},\"createdAt\":{\"type\":\"datetime\"},\"updatedAt\":{\"type\":\"datetime\"},\"createdBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true},\"updatedBy\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"admin::user\",\"configurable\":false,\"writable\":false,\"visible\":false,\"useJoinTable\":false,\"private\":true}},\"__schema__\":{\"collectionName\":\"menu_items\",\"info\":{\"displayName\":\"Menu Item\",\"singularName\":\"menu-item\",\"pluralName\":\"menu-items\",\"tableName\":\"menu_items\"},\"options\":{\"draftAndPublish\":false},\"pluginOptions\":{\"content-manager\":{\"visible\":false},\"content-type-builder\":{\"visible\":false}},\"attributes\":{\"order\":{\"type\":\"integer\"},\"title\":{\"type\":\"string\",\"required\":true},\"url\":{\"type\":\"string\"},\"target\":{\"type\":\"enumeration\",\"enum\":[\"_blank\",\"_parent\",\"_self\",\"_top\"]},\"root_menu\":{\"type\":\"relation\",\"relation\":\"manyToOne\",\"target\":\"plugin::menus.menu\",\"inversedBy\":\"items\",\"required\":true},\"parent\":{\"type\":\"relation\",\"relation\":\"oneToOne\",\"target\":\"plugin::menus.menu-item\"}},\"kind\":\"collectionType\"},\"modelType\":\"contentType\",\"modelName\":\"menu-item\",\"connection\":\"default\",\"uid\":\"plugin::menus.menu-item\",\"plugin\":\"menus\",\"globalId\":\"MenusMenuItem\"}}','object',NULL,NULL),(2,'plugin_content_manager_configuration_components::meta.meta','{\"uid\":\"meta.meta\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"property\",\"defaultSortBy\":\"property\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":false,\"sortable\":false}},\"property\":{\"edit\":{\"label\":\"property\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"property\",\"searchable\":true,\"sortable\":true}},\"content\":{\"edit\":{\"label\":\"content\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"content\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"property\",\"content\"],\"edit\":[[{\"name\":\"property\",\"size\":6},{\"name\":\"content\",\"size\":6}]]},\"isComponent\":true}','object',NULL,NULL),(3,'plugin_content_manager_configuration_components::shared.seo','{\"uid\":\"shared.seo\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"metaTitle\",\"defaultSortBy\":\"metaTitle\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":false,\"sortable\":false}},\"metaTitle\":{\"edit\":{\"label\":\"metaTitle\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"metaTitle\",\"searchable\":true,\"sortable\":true}},\"metaDescription\":{\"edit\":{\"label\":\"metaDescription\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"metaDescription\",\"searchable\":true,\"sortable\":true}},\"SharedImage\":{\"edit\":{\"label\":\"SharedImage\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"SharedImage\",\"searchable\":false,\"sortable\":false}},\"Meta\":{\"edit\":{\"label\":\"Meta\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"Meta\",\"searchable\":false,\"sortable\":false}},\"preventIndexing\":{\"edit\":{\"label\":\"preventIndexing\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"preventIndexing\",\"searchable\":true,\"sortable\":true}},\"structuredData\":{\"edit\":{\"label\":\"structuredData\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"structuredData\",\"searchable\":false,\"sortable\":false}}},\"layouts\":{\"list\":[\"id\",\"metaTitle\",\"metaDescription\",\"SharedImage\"],\"edit\":[[{\"name\":\"metaTitle\",\"size\":6},{\"name\":\"metaDescription\",\"size\":6}],[{\"name\":\"SharedImage\",\"size\":12}],[{\"name\":\"Meta\",\"size\":12}],[{\"name\":\"preventIndexing\",\"size\":4}],[{\"name\":\"structuredData\",\"size\":12}]]},\"isComponent\":true}','object',NULL,NULL),(4,'plugin_content_manager_configuration_components::shared.shared-image','{\"uid\":\"shared.shared-image\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"alt\",\"defaultSortBy\":\"alt\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":false,\"sortable\":false}},\"alt\":{\"edit\":{\"label\":\"alt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"alt\",\"searchable\":true,\"sortable\":true}},\"media\":{\"edit\":{\"label\":\"media\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"media\",\"searchable\":false,\"sortable\":false}}},\"layouts\":{\"list\":[\"id\",\"alt\",\"media\"],\"edit\":[[{\"name\":\"alt\",\"size\":6},{\"name\":\"media\",\"size\":6}]]},\"isComponent\":true}','object',NULL,NULL),(5,'plugin_content_manager_configuration_content_types::admin::permission','{\"uid\":\"admin::permission\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"action\",\"defaultSortBy\":\"action\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"action\":{\"edit\":{\"label\":\"action\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"action\",\"searchable\":true,\"sortable\":true}},\"subject\":{\"edit\":{\"label\":\"subject\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"subject\",\"searchable\":true,\"sortable\":true}},\"properties\":{\"edit\":{\"label\":\"properties\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"properties\",\"searchable\":false,\"sortable\":false}},\"conditions\":{\"edit\":{\"label\":\"conditions\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"conditions\",\"searchable\":false,\"sortable\":false}},\"role\":{\"edit\":{\"label\":\"role\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"role\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"action\",\"subject\",\"role\"],\"edit\":[[{\"name\":\"action\",\"size\":6},{\"name\":\"subject\",\"size\":6}],[{\"name\":\"properties\",\"size\":12}],[{\"name\":\"conditions\",\"size\":12}],[{\"name\":\"role\",\"size\":6}]]}}','object',NULL,NULL),(6,'plugin_content_manager_configuration_content_types::admin::role','{\"uid\":\"admin::role\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"name\",\"defaultSortBy\":\"name\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"name\":{\"edit\":{\"label\":\"name\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"name\",\"searchable\":true,\"sortable\":true}},\"code\":{\"edit\":{\"label\":\"code\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"code\",\"searchable\":true,\"sortable\":true}},\"description\":{\"edit\":{\"label\":\"description\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"description\",\"searchable\":true,\"sortable\":true}},\"users\":{\"edit\":{\"label\":\"users\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"firstname\"},\"list\":{\"label\":\"users\",\"searchable\":false,\"sortable\":false}},\"permissions\":{\"edit\":{\"label\":\"permissions\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"action\"},\"list\":{\"label\":\"permissions\",\"searchable\":false,\"sortable\":false}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"name\",\"code\",\"description\"],\"edit\":[[{\"name\":\"name\",\"size\":6},{\"name\":\"code\",\"size\":6}],[{\"name\":\"description\",\"size\":6},{\"name\":\"users\",\"size\":6}],[{\"name\":\"permissions\",\"size\":6}]]}}','object',NULL,NULL),(7,'plugin_content_manager_configuration_content_types::admin::user','{\"uid\":\"admin::user\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"firstname\",\"defaultSortBy\":\"firstname\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"firstname\":{\"edit\":{\"label\":\"firstname\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"firstname\",\"searchable\":true,\"sortable\":true}},\"lastname\":{\"edit\":{\"label\":\"lastname\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"lastname\",\"searchable\":true,\"sortable\":true}},\"username\":{\"edit\":{\"label\":\"username\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"username\",\"searchable\":true,\"sortable\":true}},\"email\":{\"edit\":{\"label\":\"email\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"email\",\"searchable\":true,\"sortable\":true}},\"password\":{\"edit\":{\"label\":\"password\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"password\",\"searchable\":true,\"sortable\":true}},\"resetPasswordToken\":{\"edit\":{\"label\":\"resetPasswordToken\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"resetPasswordToken\",\"searchable\":true,\"sortable\":true}},\"registrationToken\":{\"edit\":{\"label\":\"registrationToken\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"registrationToken\",\"searchable\":true,\"sortable\":true}},\"isActive\":{\"edit\":{\"label\":\"isActive\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"isActive\",\"searchable\":true,\"sortable\":true}},\"roles\":{\"edit\":{\"label\":\"roles\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"roles\",\"searchable\":false,\"sortable\":false}},\"blocked\":{\"edit\":{\"label\":\"blocked\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"blocked\",\"searchable\":true,\"sortable\":true}},\"preferedLanguage\":{\"edit\":{\"label\":\"preferedLanguage\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"preferedLanguage\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"firstname\",\"lastname\",\"username\"],\"edit\":[[{\"name\":\"firstname\",\"size\":6},{\"name\":\"lastname\",\"size\":6}],[{\"name\":\"username\",\"size\":6},{\"name\":\"email\",\"size\":6}],[{\"name\":\"password\",\"size\":6},{\"name\":\"resetPasswordToken\",\"size\":6}],[{\"name\":\"registrationToken\",\"size\":6},{\"name\":\"isActive\",\"size\":4}],[{\"name\":\"roles\",\"size\":6},{\"name\":\"blocked\",\"size\":4}],[{\"name\":\"preferedLanguage\",\"size\":6}]]}}','object',NULL,NULL),(8,'plugin_content_manager_configuration_content_types::plugin::users-permissions.permission','{\"uid\":\"plugin::users-permissions.permission\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"action\",\"defaultSortBy\":\"action\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"action\":{\"edit\":{\"label\":\"action\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"action\",\"searchable\":true,\"sortable\":true}},\"role\":{\"edit\":{\"label\":\"role\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"role\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"action\",\"role\",\"createdAt\"],\"edit\":[[{\"name\":\"action\",\"size\":6},{\"name\":\"role\",\"size\":6}]]}}','object',NULL,NULL),(9,'plugin_content_manager_configuration_content_types::admin::api-token','{\"uid\":\"admin::api-token\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"name\",\"defaultSortBy\":\"name\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"name\":{\"edit\":{\"label\":\"name\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"name\",\"searchable\":true,\"sortable\":true}},\"description\":{\"edit\":{\"label\":\"description\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"description\",\"searchable\":true,\"sortable\":true}},\"type\":{\"edit\":{\"label\":\"type\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"type\",\"searchable\":true,\"sortable\":true}},\"accessKey\":{\"edit\":{\"label\":\"accessKey\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"accessKey\",\"searchable\":true,\"sortable\":true}},\"lastUsedAt\":{\"edit\":{\"label\":\"lastUsedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"lastUsedAt\",\"searchable\":true,\"sortable\":true}},\"permissions\":{\"edit\":{\"label\":\"permissions\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"action\"},\"list\":{\"label\":\"permissions\",\"searchable\":false,\"sortable\":false}},\"expiresAt\":{\"edit\":{\"label\":\"expiresAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"expiresAt\",\"searchable\":true,\"sortable\":true}},\"lifespan\":{\"edit\":{\"label\":\"lifespan\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"lifespan\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"name\",\"description\",\"type\"],\"edit\":[[{\"name\":\"name\",\"size\":6},{\"name\":\"description\",\"size\":6}],[{\"name\":\"type\",\"size\":6},{\"name\":\"accessKey\",\"size\":6}],[{\"name\":\"lastUsedAt\",\"size\":6},{\"name\":\"permissions\",\"size\":6}],[{\"name\":\"expiresAt\",\"size\":6},{\"name\":\"lifespan\",\"size\":4}]]}}','object',NULL,NULL),(10,'plugin_content_manager_configuration_content_types::plugin::users-permissions.user','{\"uid\":\"plugin::users-permissions.user\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"username\",\"defaultSortBy\":\"username\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"username\":{\"edit\":{\"label\":\"username\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"username\",\"searchable\":true,\"sortable\":true}},\"email\":{\"edit\":{\"label\":\"email\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"email\",\"searchable\":true,\"sortable\":true}},\"provider\":{\"edit\":{\"label\":\"provider\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"provider\",\"searchable\":true,\"sortable\":true}},\"password\":{\"edit\":{\"label\":\"password\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"password\",\"searchable\":true,\"sortable\":true}},\"resetPasswordToken\":{\"edit\":{\"label\":\"resetPasswordToken\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"resetPasswordToken\",\"searchable\":true,\"sortable\":true}},\"confirmationToken\":{\"edit\":{\"label\":\"confirmationToken\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"confirmationToken\",\"searchable\":true,\"sortable\":true}},\"confirmed\":{\"edit\":{\"label\":\"confirmed\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"confirmed\",\"searchable\":true,\"sortable\":true}},\"blocked\":{\"edit\":{\"label\":\"blocked\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"blocked\",\"searchable\":true,\"sortable\":true}},\"role\":{\"edit\":{\"label\":\"role\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"role\",\"searchable\":true,\"sortable\":true}},\"avatar\":{\"edit\":{\"label\":\"avatar\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"avatar\",\"searchable\":false,\"sortable\":false}},\"newsletter\":{\"edit\":{\"label\":\"newsletter\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"newsletter\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"username\",\"email\",\"confirmed\"],\"edit\":[[{\"name\":\"username\",\"size\":6},{\"name\":\"email\",\"size\":6}],[{\"name\":\"password\",\"size\":6},{\"name\":\"confirmed\",\"size\":4}],[{\"name\":\"blocked\",\"size\":4},{\"name\":\"role\",\"size\":6}],[{\"name\":\"avatar\",\"size\":6},{\"name\":\"newsletter\",\"size\":4}]]}}','object',NULL,NULL),(11,'plugin_content_manager_configuration_content_types::plugin::upload.folder','{\"uid\":\"plugin::upload.folder\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"name\",\"defaultSortBy\":\"name\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"name\":{\"edit\":{\"label\":\"name\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"name\",\"searchable\":true,\"sortable\":true}},\"pathId\":{\"edit\":{\"label\":\"pathId\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"pathId\",\"searchable\":true,\"sortable\":true}},\"parent\":{\"edit\":{\"label\":\"parent\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"parent\",\"searchable\":true,\"sortable\":true}},\"children\":{\"edit\":{\"label\":\"children\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"children\",\"searchable\":false,\"sortable\":false}},\"files\":{\"edit\":{\"label\":\"files\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"files\",\"searchable\":false,\"sortable\":false}},\"path\":{\"edit\":{\"label\":\"path\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"path\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"name\",\"pathId\",\"parent\"],\"edit\":[[{\"name\":\"name\",\"size\":6},{\"name\":\"pathId\",\"size\":4}],[{\"name\":\"parent\",\"size\":6},{\"name\":\"children\",\"size\":6}],[{\"name\":\"files\",\"size\":6},{\"name\":\"path\",\"size\":6}]]}}','object',NULL,NULL),(12,'plugin_content_manager_configuration_content_types::admin::api-token-permission','{\"uid\":\"admin::api-token-permission\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"action\",\"defaultSortBy\":\"action\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"action\":{\"edit\":{\"label\":\"action\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"action\",\"searchable\":true,\"sortable\":true}},\"token\":{\"edit\":{\"label\":\"token\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"token\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"action\",\"token\",\"createdAt\"],\"edit\":[[{\"name\":\"action\",\"size\":6},{\"name\":\"token\",\"size\":6}]]}}','object',NULL,NULL),(13,'plugin_content_manager_configuration_content_types::api::page.page','{\"uid\":\"api::page.page\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"label\",\"defaultSortBy\":\"label\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"label\":{\"edit\":{\"label\":\"label\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"label\",\"searchable\":true,\"sortable\":true}},\"slug\":{\"edit\":{\"label\":\"slug\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"slug\",\"searchable\":true,\"sortable\":true}},\"seo\":{\"edit\":{\"label\":\"seo\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"seo\",\"searchable\":false,\"sortable\":false}},\"Login\":{\"edit\":{\"label\":\"Login\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"Login\",\"searchable\":false,\"sortable\":false}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"label\",\"slug\",\"seo\"],\"edit\":[[{\"name\":\"label\",\"size\":6},{\"name\":\"slug\",\"size\":6}],[{\"name\":\"seo\",\"size\":12}],[{\"name\":\"Login\",\"size\":12}]]}}','object',NULL,NULL),(14,'plugin_content_manager_configuration_content_types::plugin::menus.menu','{\"uid\":\"plugin::menus.menu\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"title\",\"defaultSortBy\":\"title\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"title\":{\"edit\":{\"label\":\"title\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"title\",\"searchable\":true,\"sortable\":true}},\"slug\":{\"edit\":{\"label\":\"slug\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"slug\",\"searchable\":true,\"sortable\":true}},\"items\":{\"edit\":{\"label\":\"items\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"title\"},\"list\":{\"label\":\"items\",\"searchable\":false,\"sortable\":false}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"title\",\"slug\",\"items\"],\"edit\":[[{\"name\":\"title\",\"size\":6},{\"name\":\"slug\",\"size\":6}],[{\"name\":\"items\",\"size\":6}]]}}','object',NULL,NULL),(15,'plugin_content_manager_configuration_content_types::plugin::users-permissions.role','{\"uid\":\"plugin::users-permissions.role\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"name\",\"defaultSortBy\":\"name\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"name\":{\"edit\":{\"label\":\"name\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"name\",\"searchable\":true,\"sortable\":true}},\"description\":{\"edit\":{\"label\":\"description\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"description\",\"searchable\":true,\"sortable\":true}},\"type\":{\"edit\":{\"label\":\"type\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"type\",\"searchable\":true,\"sortable\":true}},\"permissions\":{\"edit\":{\"label\":\"permissions\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"action\"},\"list\":{\"label\":\"permissions\",\"searchable\":false,\"sortable\":false}},\"users\":{\"edit\":{\"label\":\"users\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"username\"},\"list\":{\"label\":\"users\",\"searchable\":false,\"sortable\":false}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"name\",\"description\",\"type\"],\"edit\":[[{\"name\":\"name\",\"size\":6},{\"name\":\"description\",\"size\":6}],[{\"name\":\"type\",\"size\":6},{\"name\":\"permissions\",\"size\":6}],[{\"name\":\"users\",\"size\":6}]]}}','object',NULL,NULL),(16,'plugin_content_manager_configuration_content_types::plugin::upload.file','{\"uid\":\"plugin::upload.file\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"name\",\"defaultSortBy\":\"name\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"name\":{\"edit\":{\"label\":\"name\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"name\",\"searchable\":true,\"sortable\":true}},\"alternativeText\":{\"edit\":{\"label\":\"alternativeText\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"alternativeText\",\"searchable\":true,\"sortable\":true}},\"caption\":{\"edit\":{\"label\":\"caption\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"caption\",\"searchable\":true,\"sortable\":true}},\"width\":{\"edit\":{\"label\":\"width\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"width\",\"searchable\":true,\"sortable\":true}},\"height\":{\"edit\":{\"label\":\"height\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"height\",\"searchable\":true,\"sortable\":true}},\"formats\":{\"edit\":{\"label\":\"formats\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"formats\",\"searchable\":false,\"sortable\":false}},\"hash\":{\"edit\":{\"label\":\"hash\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"hash\",\"searchable\":true,\"sortable\":true}},\"ext\":{\"edit\":{\"label\":\"ext\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"ext\",\"searchable\":true,\"sortable\":true}},\"mime\":{\"edit\":{\"label\":\"mime\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"mime\",\"searchable\":true,\"sortable\":true}},\"size\":{\"edit\":{\"label\":\"size\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"size\",\"searchable\":true,\"sortable\":true}},\"url\":{\"edit\":{\"label\":\"url\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"url\",\"searchable\":true,\"sortable\":true}},\"previewUrl\":{\"edit\":{\"label\":\"previewUrl\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"previewUrl\",\"searchable\":true,\"sortable\":true}},\"provider\":{\"edit\":{\"label\":\"provider\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"provider\",\"searchable\":true,\"sortable\":true}},\"provider_metadata\":{\"edit\":{\"label\":\"provider_metadata\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"provider_metadata\",\"searchable\":false,\"sortable\":false}},\"folder\":{\"edit\":{\"label\":\"folder\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"name\"},\"list\":{\"label\":\"folder\",\"searchable\":true,\"sortable\":true}},\"folderPath\":{\"edit\":{\"label\":\"folderPath\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"folderPath\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"name\",\"alternativeText\",\"caption\"],\"edit\":[[{\"name\":\"name\",\"size\":6},{\"name\":\"alternativeText\",\"size\":6}],[{\"name\":\"caption\",\"size\":6},{\"name\":\"width\",\"size\":4}],[{\"name\":\"height\",\"size\":4}],[{\"name\":\"formats\",\"size\":12}],[{\"name\":\"hash\",\"size\":6},{\"name\":\"ext\",\"size\":6}],[{\"name\":\"mime\",\"size\":6},{\"name\":\"size\",\"size\":4}],[{\"name\":\"url\",\"size\":6},{\"name\":\"previewUrl\",\"size\":6}],[{\"name\":\"provider\",\"size\":6}],[{\"name\":\"provider_metadata\",\"size\":12}],[{\"name\":\"folder\",\"size\":6},{\"name\":\"folderPath\",\"size\":6}]]}}','object',NULL,NULL),(17,'plugin_content_manager_configuration_content_types::plugin::i18n.locale','{\"uid\":\"plugin::i18n.locale\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"name\",\"defaultSortBy\":\"name\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"name\":{\"edit\":{\"label\":\"name\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"name\",\"searchable\":true,\"sortable\":true}},\"code\":{\"edit\":{\"label\":\"code\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"code\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"name\",\"code\",\"createdAt\"],\"edit\":[[{\"name\":\"name\",\"size\":6},{\"name\":\"code\",\"size\":6}]]}}','object',NULL,NULL),(18,'plugin_content_manager_configuration_content_types::plugin::menus.menu-item','{\"uid\":\"plugin::menus.menu-item\",\"settings\":{\"bulkable\":true,\"filterable\":true,\"searchable\":true,\"pageSize\":10,\"mainField\":\"title\",\"defaultSortBy\":\"title\",\"defaultSortOrder\":\"ASC\"},\"metadatas\":{\"id\":{\"edit\":{},\"list\":{\"label\":\"id\",\"searchable\":true,\"sortable\":true}},\"order\":{\"edit\":{\"label\":\"order\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"order\",\"searchable\":true,\"sortable\":true}},\"title\":{\"edit\":{\"label\":\"title\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"title\",\"searchable\":true,\"sortable\":true}},\"url\":{\"edit\":{\"label\":\"url\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"url\",\"searchable\":true,\"sortable\":true}},\"target\":{\"edit\":{\"label\":\"target\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true},\"list\":{\"label\":\"target\",\"searchable\":true,\"sortable\":true}},\"root_menu\":{\"edit\":{\"label\":\"root_menu\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"title\"},\"list\":{\"label\":\"root_menu\",\"searchable\":true,\"sortable\":true}},\"parent\":{\"edit\":{\"label\":\"parent\",\"description\":\"\",\"placeholder\":\"\",\"visible\":true,\"editable\":true,\"mainField\":\"title\"},\"list\":{\"label\":\"parent\",\"searchable\":true,\"sortable\":true}},\"createdAt\":{\"edit\":{\"label\":\"createdAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"createdAt\",\"searchable\":true,\"sortable\":true}},\"updatedAt\":{\"edit\":{\"label\":\"updatedAt\",\"description\":\"\",\"placeholder\":\"\",\"visible\":false,\"editable\":true},\"list\":{\"label\":\"updatedAt\",\"searchable\":true,\"sortable\":true}}},\"layouts\":{\"list\":[\"id\",\"order\",\"title\",\"url\"],\"edit\":[[{\"name\":\"order\",\"size\":4},{\"name\":\"title\",\"size\":6}],[{\"name\":\"url\",\"size\":6},{\"name\":\"target\",\"size\":6}],[{\"name\":\"root_menu\",\"size\":6},{\"name\":\"parent\",\"size\":6}]]}}','object',NULL,NULL),(19,'plugin_upload_settings','{\"sizeOptimization\":true,\"responsiveDimensions\":true,\"autoOrientation\":false}','object',NULL,NULL),(20,'plugin_upload_metrics','{\"weeklySchedule\":\"14 40 9 * * 1\",\"lastWeeklyUpdate\":1674463214058}','object',NULL,NULL),(21,'plugin_i18n_default_locale','\"en\"','string',NULL,NULL),(22,'plugin_users-permissions_grant','{\"email\":{\"enabled\":true,\"icon\":\"envelope\"},\"discord\":{\"enabled\":false,\"icon\":\"discord\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/discord/callback\",\"scope\":[\"identify\",\"email\"]},\"facebook\":{\"enabled\":false,\"icon\":\"facebook-square\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/facebook/callback\",\"scope\":[\"email\"]},\"google\":{\"enabled\":false,\"icon\":\"google\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/google/callback\",\"scope\":[\"email\"]},\"github\":{\"enabled\":false,\"icon\":\"github\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/github/callback\",\"scope\":[\"user\",\"user:email\"]},\"microsoft\":{\"enabled\":false,\"icon\":\"windows\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/microsoft/callback\",\"scope\":[\"user.read\"]},\"twitter\":{\"enabled\":false,\"icon\":\"twitter\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/twitter/callback\"},\"instagram\":{\"enabled\":false,\"icon\":\"instagram\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/instagram/callback\",\"scope\":[\"user_profile\"]},\"vk\":{\"enabled\":false,\"icon\":\"vk\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/vk/callback\",\"scope\":[\"email\"]},\"twitch\":{\"enabled\":false,\"icon\":\"twitch\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/twitch/callback\",\"scope\":[\"user:read:email\"]},\"linkedin\":{\"enabled\":false,\"icon\":\"linkedin\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/linkedin/callback\",\"scope\":[\"r_liteprofile\",\"r_emailaddress\"]},\"cognito\":{\"enabled\":false,\"icon\":\"aws\",\"key\":\"\",\"secret\":\"\",\"subdomain\":\"my.subdomain.com\",\"callback\":\"api/auth/cognito/callback\",\"scope\":[\"email\",\"openid\",\"profile\"]},\"reddit\":{\"enabled\":false,\"icon\":\"reddit\",\"key\":\"\",\"secret\":\"\",\"state\":true,\"callback\":\"api/auth/reddit/callback\",\"scope\":[\"identity\"]},\"auth0\":{\"enabled\":false,\"icon\":\"\",\"key\":\"\",\"secret\":\"\",\"subdomain\":\"my-tenant.eu\",\"callback\":\"api/auth/auth0/callback\",\"scope\":[\"openid\",\"email\",\"profile\"]},\"cas\":{\"enabled\":false,\"icon\":\"book\",\"key\":\"\",\"secret\":\"\",\"callback\":\"api/auth/cas/callback\",\"scope\":[\"openid email\"],\"subdomain\":\"my.subdomain.com/cas\"}}','object',NULL,NULL),(23,'plugin_users-permissions_email','{\"reset_password\":{\"display\":\"Email.template.reset_password\",\"icon\":\"sync\",\"options\":{\"from\":{\"name\":\"Administration Panel\",\"email\":\"no-reply@strapi.io\"},\"response_email\":\"\",\"object\":\"Reset password\",\"message\":\"

We heard that you lost your password. Sorry about that!

\\n\\n

But don’t worry! You can use the following link to reset your password:

\\n

<%= URL %>?code=<%= TOKEN %>

\\n\\n

Thanks.

\"}},\"email_confirmation\":{\"display\":\"Email.template.email_confirmation\",\"icon\":\"check-square\",\"options\":{\"from\":{\"name\":\"Administration Panel\",\"email\":\"no-reply@strapi.io\"},\"response_email\":\"\",\"object\":\"Account confirmation\",\"message\":\"

Thank you for registering!

\\n\\n

You have to confirm your email address. Please click on the link below.

\\n\\n

<%= URL %>?confirmation=<%= CODE %>

\\n\\n

Thanks.

\"}}}','object',NULL,NULL),(24,'plugin_users-permissions_advanced','{\"unique_email\":true,\"allow_register\":true,\"email_confirmation\":false,\"email_reset_password\":null,\"email_confirmation_redirection\":null,\"default_role\":\"authenticated\"}','object',NULL,NULL),(25,'core_admin_auth','{\"providers\":{\"autoRegister\":false,\"defaultRole\":null}}','object',NULL,NULL); +/*!40000 ALTER TABLE `strapi_core_store_settings` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `strapi_database_schema` +-- + +DROP TABLE IF EXISTS `strapi_database_schema`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `strapi_database_schema` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `schema` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `time` datetime DEFAULT NULL, + `hash` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `strapi_database_schema` +-- + +LOCK TABLES `strapi_database_schema` WRITE; +/*!40000 ALTER TABLE `strapi_database_schema` DISABLE KEYS */; +INSERT INTO `strapi_database_schema` (`id`, `schema`, `time`, `hash`) VALUES (2,'{\"tables\":[{\"name\":\"strapi_core_store_settings\",\"indexes\":[],\"foreignKeys\":[],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"key\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"value\",\"type\":\"text\",\"args\":[\"longtext\"],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"type\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"environment\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"tag\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false}]},{\"name\":\"strapi_webhooks\",\"indexes\":[],\"foreignKeys\":[],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"name\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"url\",\"type\":\"text\",\"args\":[\"longtext\"],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"headers\",\"type\":\"jsonb\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"events\",\"type\":\"jsonb\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"enabled\",\"type\":\"boolean\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false}]},{\"name\":\"admin_permissions\",\"indexes\":[{\"name\":\"admin_permissions_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"admin_permissions_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"admin_permissions_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"admin_permissions_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"action\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"subject\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"properties\",\"type\":\"jsonb\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"conditions\",\"type\":\"jsonb\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"admin_users\",\"indexes\":[{\"name\":\"admin_users_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"admin_users_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"admin_users_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"admin_users_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"firstname\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"lastname\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"username\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"email\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"password\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"reset_password_token\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"registration_token\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"is_active\",\"type\":\"boolean\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"blocked\",\"type\":\"boolean\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"prefered_language\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"admin_roles\",\"indexes\":[{\"name\":\"admin_roles_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"admin_roles_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"admin_roles_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"admin_roles_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"name\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"code\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"description\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"strapi_api_tokens\",\"indexes\":[{\"name\":\"strapi_api_tokens_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"strapi_api_tokens_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"strapi_api_tokens_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"strapi_api_tokens_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"name\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"description\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"type\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"access_key\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"last_used_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"expires_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"lifespan\",\"type\":\"bigInteger\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"strapi_api_token_permissions\",\"indexes\":[{\"name\":\"strapi_api_token_permissions_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"strapi_api_token_permissions_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"strapi_api_token_permissions_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"strapi_api_token_permissions_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"action\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"pages\",\"indexes\":[{\"type\":\"unique\",\"name\":\"pages_slug_unique\",\"columns\":[\"slug\"]},{\"name\":\"pages_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"pages_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"pages_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"pages_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"label\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"slug\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false,\"unique\":true},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"published_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"files\",\"indexes\":[{\"name\":\"upload_files_folder_path_index\",\"columns\":[\"folder_path\"],\"type\":null},{\"name\":\"files_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"files_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"files_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"files_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"name\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"alternative_text\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"caption\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"width\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"height\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"formats\",\"type\":\"jsonb\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"hash\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"ext\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"mime\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"size\",\"type\":\"decimal\",\"args\":[10,2],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"url\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"preview_url\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"provider\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"provider_metadata\",\"type\":\"jsonb\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"folder_path\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"upload_folders\",\"indexes\":[{\"name\":\"upload_folders_path_id_index\",\"columns\":[\"path_id\"],\"type\":\"unique\"},{\"name\":\"upload_folders_path_index\",\"columns\":[\"path\"],\"type\":\"unique\"},{\"name\":\"upload_folders_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"upload_folders_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"upload_folders_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"upload_folders_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"name\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"path_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"path\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"i18n_locale\",\"indexes\":[{\"name\":\"i18n_locale_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"i18n_locale_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"i18n_locale_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"i18n_locale_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"name\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"code\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"up_permissions\",\"indexes\":[{\"name\":\"up_permissions_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"up_permissions_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"up_permissions_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"up_permissions_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"action\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"up_roles\",\"indexes\":[{\"name\":\"up_roles_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"up_roles_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"up_roles_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"up_roles_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"name\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"description\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"type\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"up_users\",\"indexes\":[{\"name\":\"up_users_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"up_users_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"up_users_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"up_users_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"username\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"email\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"provider\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"password\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"reset_password_token\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"confirmation_token\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"confirmed\",\"type\":\"boolean\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"blocked\",\"type\":\"boolean\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"newsletter\",\"type\":\"boolean\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"menus\",\"indexes\":[{\"type\":\"unique\",\"name\":\"menus_slug_unique\",\"columns\":[\"slug\"]},{\"name\":\"menus_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"menus_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"menus_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"menus_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"title\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"slug\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false,\"unique\":true},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"menu_items\",\"indexes\":[{\"name\":\"menu_items_created_by_id_fk\",\"columns\":[\"created_by_id\"]},{\"name\":\"menu_items_updated_by_id_fk\",\"columns\":[\"updated_by_id\"]}],\"foreignKeys\":[{\"name\":\"menu_items_created_by_id_fk\",\"columns\":[\"created_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"},{\"name\":\"menu_items_updated_by_id_fk\",\"columns\":[\"updated_by_id\"],\"referencedTable\":\"admin_users\",\"referencedColumns\":[\"id\"],\"onDelete\":\"SET NULL\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"title\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"url\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"target\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"updated_at\",\"type\":\"datetime\",\"args\":[{\"useTz\":false,\"precision\":6}],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"created_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"updated_by_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"components_meta_metas\",\"indexes\":[],\"foreignKeys\":[],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"property\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"content\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false}]},{\"name\":\"components_shared_seos\",\"indexes\":[],\"foreignKeys\":[],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"meta_title\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"meta_description\",\"type\":\"text\",\"args\":[\"longtext\"],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"prevent_indexing\",\"type\":\"boolean\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"structured_data\",\"type\":\"jsonb\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false}]},{\"name\":\"components_shared_shared_images\",\"indexes\":[],\"foreignKeys\":[],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"alt\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false}]},{\"name\":\"admin_permissions_role_links\",\"indexes\":[{\"name\":\"admin_permissions_role_links_fk\",\"columns\":[\"permission_id\"]},{\"name\":\"admin_permissions_role_links_inv_fk\",\"columns\":[\"role_id\"]},{\"name\":\"admin_permissions_role_links_unique\",\"columns\":[\"permission_id\",\"role_id\"],\"type\":\"unique\"},{\"name\":\"admin_permissions_role_links_order_inv_fk\",\"columns\":[\"permission_order\"]}],\"foreignKeys\":[{\"name\":\"admin_permissions_role_links_fk\",\"columns\":[\"permission_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"admin_permissions\",\"onDelete\":\"CASCADE\"},{\"name\":\"admin_permissions_role_links_inv_fk\",\"columns\":[\"role_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"admin_roles\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"permission_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"role_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"permission_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"admin_users_roles_links\",\"indexes\":[{\"name\":\"admin_users_roles_links_fk\",\"columns\":[\"user_id\"]},{\"name\":\"admin_users_roles_links_inv_fk\",\"columns\":[\"role_id\"]},{\"name\":\"admin_users_roles_links_unique\",\"columns\":[\"user_id\",\"role_id\"],\"type\":\"unique\"},{\"name\":\"admin_users_roles_links_order_fk\",\"columns\":[\"role_order\"]},{\"name\":\"admin_users_roles_links_order_inv_fk\",\"columns\":[\"user_order\"]}],\"foreignKeys\":[{\"name\":\"admin_users_roles_links_fk\",\"columns\":[\"user_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"admin_users\",\"onDelete\":\"CASCADE\"},{\"name\":\"admin_users_roles_links_inv_fk\",\"columns\":[\"role_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"admin_roles\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"user_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"role_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"role_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"user_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"strapi_api_token_permissions_token_links\",\"indexes\":[{\"name\":\"strapi_api_token_permissions_token_links_fk\",\"columns\":[\"api_token_permission_id\"]},{\"name\":\"strapi_api_token_permissions_token_links_inv_fk\",\"columns\":[\"api_token_id\"]},{\"name\":\"strapi_api_token_permissions_token_links_unique\",\"columns\":[\"api_token_permission_id\",\"api_token_id\"],\"type\":\"unique\"},{\"name\":\"strapi_api_token_permissions_token_links_order_inv_fk\",\"columns\":[\"api_token_permission_order\"]}],\"foreignKeys\":[{\"name\":\"strapi_api_token_permissions_token_links_fk\",\"columns\":[\"api_token_permission_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"strapi_api_token_permissions\",\"onDelete\":\"CASCADE\"},{\"name\":\"strapi_api_token_permissions_token_links_inv_fk\",\"columns\":[\"api_token_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"strapi_api_tokens\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"api_token_permission_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"api_token_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"api_token_permission_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"pages_components\",\"indexes\":[{\"name\":\"pages_field_index\",\"columns\":[\"field\"],\"type\":null},{\"name\":\"pages_component_type_index\",\"columns\":[\"component_type\"],\"type\":null},{\"name\":\"pages_entity_fk\",\"columns\":[\"entity_id\"]},{\"name\":\"pages_unique\",\"columns\":[\"entity_id\",\"component_id\",\"field\",\"component_type\"],\"type\":\"unique\"}],\"foreignKeys\":[{\"name\":\"pages_entity_fk\",\"columns\":[\"entity_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"pages\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"entity_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"component_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"component_type\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"field\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"files_related_morphs\",\"indexes\":[{\"name\":\"files_related_morphs_fk\",\"columns\":[\"file_id\"]}],\"foreignKeys\":[{\"name\":\"files_related_morphs_fk\",\"columns\":[\"file_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"files\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"file_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"related_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"related_type\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"field\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"files_folder_links\",\"indexes\":[{\"name\":\"files_folder_links_fk\",\"columns\":[\"file_id\"]},{\"name\":\"files_folder_links_inv_fk\",\"columns\":[\"folder_id\"]},{\"name\":\"files_folder_links_unique\",\"columns\":[\"file_id\",\"folder_id\"],\"type\":\"unique\"},{\"name\":\"files_folder_links_order_inv_fk\",\"columns\":[\"file_order\"]}],\"foreignKeys\":[{\"name\":\"files_folder_links_fk\",\"columns\":[\"file_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"files\",\"onDelete\":\"CASCADE\"},{\"name\":\"files_folder_links_inv_fk\",\"columns\":[\"folder_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"upload_folders\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"file_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"folder_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"file_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"upload_folders_parent_links\",\"indexes\":[{\"name\":\"upload_folders_parent_links_fk\",\"columns\":[\"folder_id\"]},{\"name\":\"upload_folders_parent_links_inv_fk\",\"columns\":[\"inv_folder_id\"]},{\"name\":\"upload_folders_parent_links_unique\",\"columns\":[\"folder_id\",\"inv_folder_id\"],\"type\":\"unique\"},{\"name\":\"upload_folders_parent_links_order_inv_fk\",\"columns\":[\"folder_order\"]}],\"foreignKeys\":[{\"name\":\"upload_folders_parent_links_fk\",\"columns\":[\"folder_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"upload_folders\",\"onDelete\":\"CASCADE\"},{\"name\":\"upload_folders_parent_links_inv_fk\",\"columns\":[\"inv_folder_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"upload_folders\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"folder_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"inv_folder_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"folder_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"up_permissions_role_links\",\"indexes\":[{\"name\":\"up_permissions_role_links_fk\",\"columns\":[\"permission_id\"]},{\"name\":\"up_permissions_role_links_inv_fk\",\"columns\":[\"role_id\"]},{\"name\":\"up_permissions_role_links_unique\",\"columns\":[\"permission_id\",\"role_id\"],\"type\":\"unique\"},{\"name\":\"up_permissions_role_links_order_inv_fk\",\"columns\":[\"permission_order\"]}],\"foreignKeys\":[{\"name\":\"up_permissions_role_links_fk\",\"columns\":[\"permission_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"up_permissions\",\"onDelete\":\"CASCADE\"},{\"name\":\"up_permissions_role_links_inv_fk\",\"columns\":[\"role_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"up_roles\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"permission_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"role_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"permission_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"up_users_role_links\",\"indexes\":[{\"name\":\"up_users_role_links_fk\",\"columns\":[\"user_id\"]},{\"name\":\"up_users_role_links_inv_fk\",\"columns\":[\"role_id\"]},{\"name\":\"up_users_role_links_unique\",\"columns\":[\"user_id\",\"role_id\"],\"type\":\"unique\"},{\"name\":\"up_users_role_links_order_inv_fk\",\"columns\":[\"user_order\"]}],\"foreignKeys\":[{\"name\":\"up_users_role_links_fk\",\"columns\":[\"user_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"up_users\",\"onDelete\":\"CASCADE\"},{\"name\":\"up_users_role_links_inv_fk\",\"columns\":[\"role_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"up_roles\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"user_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"role_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"user_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"menu_items_root_menu_links\",\"indexes\":[{\"name\":\"menu_items_root_menu_links_fk\",\"columns\":[\"menu_item_id\"]},{\"name\":\"menu_items_root_menu_links_inv_fk\",\"columns\":[\"menu_id\"]},{\"name\":\"menu_items_root_menu_links_unique\",\"columns\":[\"menu_item_id\",\"menu_id\"],\"type\":\"unique\"},{\"name\":\"menu_items_root_menu_links_order_inv_fk\",\"columns\":[\"menu_item_order\"]}],\"foreignKeys\":[{\"name\":\"menu_items_root_menu_links_fk\",\"columns\":[\"menu_item_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"menu_items\",\"onDelete\":\"CASCADE\"},{\"name\":\"menu_items_root_menu_links_inv_fk\",\"columns\":[\"menu_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"menus\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"menu_item_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"menu_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"menu_item_order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"menu_items_parent_links\",\"indexes\":[{\"name\":\"menu_items_parent_links_fk\",\"columns\":[\"menu_item_id\"]},{\"name\":\"menu_items_parent_links_inv_fk\",\"columns\":[\"inv_menu_item_id\"]},{\"name\":\"menu_items_parent_links_unique\",\"columns\":[\"menu_item_id\",\"inv_menu_item_id\"],\"type\":\"unique\"}],\"foreignKeys\":[{\"name\":\"menu_items_parent_links_fk\",\"columns\":[\"menu_item_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"menu_items\",\"onDelete\":\"CASCADE\"},{\"name\":\"menu_items_parent_links_inv_fk\",\"columns\":[\"inv_menu_item_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"menu_items\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"menu_item_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"inv_menu_item_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]},{\"name\":\"components_shared_seos_components\",\"indexes\":[{\"name\":\"components_shared_seos_field_index\",\"columns\":[\"field\"],\"type\":null},{\"name\":\"components_shared_seos_component_type_index\",\"columns\":[\"component_type\"],\"type\":null},{\"name\":\"components_shared_seos_entity_fk\",\"columns\":[\"entity_id\"]},{\"name\":\"components_shared_seos_unique\",\"columns\":[\"entity_id\",\"component_id\",\"field\",\"component_type\"],\"type\":\"unique\"}],\"foreignKeys\":[{\"name\":\"components_shared_seos_entity_fk\",\"columns\":[\"entity_id\"],\"referencedColumns\":[\"id\"],\"referencedTable\":\"components_shared_seos\",\"onDelete\":\"CASCADE\"}],\"columns\":[{\"name\":\"id\",\"type\":\"increments\",\"args\":[{\"primary\":true,\"primaryKey\":true}],\"defaultTo\":null,\"notNullable\":true,\"unsigned\":false},{\"name\":\"entity_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"component_id\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true},{\"name\":\"component_type\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"field\",\"type\":\"string\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":false},{\"name\":\"order\",\"type\":\"integer\",\"args\":[],\"defaultTo\":null,\"notNullable\":false,\"unsigned\":true}]}]}','2023-01-23 09:50:07','050544d42b176712dd669ba727c11706'); +/*!40000 ALTER TABLE `strapi_database_schema` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `strapi_migrations` +-- + +DROP TABLE IF EXISTS `strapi_migrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `strapi_migrations` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `time` datetime DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `strapi_migrations` +-- + +LOCK TABLES `strapi_migrations` WRITE; +/*!40000 ALTER TABLE `strapi_migrations` DISABLE KEYS */; +/*!40000 ALTER TABLE `strapi_migrations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `strapi_webhooks` +-- + +DROP TABLE IF EXISTS `strapi_webhooks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `strapi_webhooks` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `url` longtext DEFAULT NULL, + `headers` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `events` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `enabled` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `strapi_webhooks` +-- + +LOCK TABLES `strapi_webhooks` WRITE; +/*!40000 ALTER TABLE `strapi_webhooks` DISABLE KEYS */; +/*!40000 ALTER TABLE `strapi_webhooks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `up_permissions` +-- + +DROP TABLE IF EXISTS `up_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `up_permissions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `action` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `up_permissions_created_by_id_fk` (`created_by_id`), + KEY `up_permissions_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `up_permissions_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `up_permissions_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `up_permissions` +-- + +LOCK TABLES `up_permissions` WRITE; +/*!40000 ALTER TABLE `up_permissions` DISABLE KEYS */; +INSERT INTO `up_permissions` (`id`, `action`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'plugin::users-permissions.auth.changePassword','2023-01-23 09:35:14.628000','2023-01-23 09:35:14.628000',NULL,NULL),(2,'plugin::users-permissions.user.me','2023-01-23 09:35:14.628000','2023-01-23 09:35:14.628000',NULL,NULL),(3,'plugin::users-permissions.auth.callback','2023-01-23 09:35:14.648000','2023-01-23 09:35:14.648000',NULL,NULL),(4,'plugin::users-permissions.auth.forgotPassword','2023-01-23 09:35:14.648000','2023-01-23 09:35:14.648000',NULL,NULL),(5,'plugin::users-permissions.auth.connect','2023-01-23 09:35:14.648000','2023-01-23 09:35:14.648000',NULL,NULL),(6,'plugin::users-permissions.auth.register','2023-01-23 09:35:14.648000','2023-01-23 09:35:14.648000',NULL,NULL),(7,'plugin::users-permissions.auth.emailConfirmation','2023-01-23 09:35:14.648000','2023-01-23 09:35:14.648000',NULL,NULL),(8,'plugin::users-permissions.auth.sendEmailConfirmation','2023-01-23 09:35:14.648000','2023-01-23 09:35:14.648000',NULL,NULL),(9,'plugin::users-permissions.auth.resetPassword','2023-01-23 09:35:14.648000','2023-01-23 09:35:14.648000',NULL,NULL),(10,'api::page.page.findOne','2023-01-23 11:36:18.080000','2023-01-23 11:36:18.080000',NULL,NULL),(11,'api::page.page.find','2023-01-23 11:36:18.080000','2023-01-23 11:36:18.080000',NULL,NULL),(12,'api::username.username.findOne','2023-01-23 11:36:22.033000','2023-01-23 11:36:22.033000',NULL,NULL),(13,'plugin::menus.menu.find','2023-01-23 11:36:35.962000','2023-01-23 11:36:35.962000',NULL,NULL),(14,'plugin::menus.menu.findOne','2023-01-23 11:36:35.962000','2023-01-23 11:36:35.962000',NULL,NULL),(15,'plugin::menus.menu-item.find','2023-01-23 11:36:35.962000','2023-01-23 11:36:35.962000',NULL,NULL),(16,'plugin::menus.menu-item.findOne','2023-01-23 11:36:35.962000','2023-01-23 11:36:35.962000',NULL,NULL),(17,'plugin::users-permissions.user.find','2023-01-23 11:36:55.660000','2023-01-23 11:36:55.660000',NULL,NULL),(18,'plugin::users-permissions.user.me','2023-01-23 11:36:55.660000','2023-01-23 11:36:55.660000',NULL,NULL),(19,'plugin::users-permissions.user.findOne','2023-01-23 11:36:55.660000','2023-01-23 11:36:55.660000',NULL,NULL),(20,'plugin::users-permissions.auth.changePassword','2023-01-23 11:36:55.660000','2023-01-23 11:36:55.660000',NULL,NULL); +/*!40000 ALTER TABLE `up_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `up_permissions_role_links` +-- + +DROP TABLE IF EXISTS `up_permissions_role_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `up_permissions_role_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `permission_id` int(10) unsigned DEFAULT NULL, + `role_id` int(10) unsigned DEFAULT NULL, + `permission_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `up_permissions_role_links_unique` (`permission_id`,`role_id`), + KEY `up_permissions_role_links_fk` (`permission_id`), + KEY `up_permissions_role_links_inv_fk` (`role_id`), + KEY `up_permissions_role_links_order_inv_fk` (`permission_order`), + CONSTRAINT `up_permissions_role_links_fk` FOREIGN KEY (`permission_id`) REFERENCES `up_permissions` (`id`) ON DELETE CASCADE, + CONSTRAINT `up_permissions_role_links_inv_fk` FOREIGN KEY (`role_id`) REFERENCES `up_roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `up_permissions_role_links` +-- + +LOCK TABLES `up_permissions_role_links` WRITE; +/*!40000 ALTER TABLE `up_permissions_role_links` DISABLE KEYS */; +INSERT INTO `up_permissions_role_links` (`id`, `permission_id`, `role_id`, `permission_order`) VALUES (1,1,1,1),(2,2,1,1),(3,3,2,1),(4,7,2,1),(5,8,2,1),(6,6,2,1),(7,9,2,1),(8,5,2,1),(9,4,2,1),(10,11,2,2),(11,10,2,2),(12,12,2,3),(13,13,2,4),(14,14,2,4),(15,15,2,4),(16,16,2,5),(17,19,2,6),(18,18,2,6),(19,20,2,6),(20,17,2,6); +/*!40000 ALTER TABLE `up_permissions_role_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `up_roles` +-- + +DROP TABLE IF EXISTS `up_roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `up_roles` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `up_roles_created_by_id_fk` (`created_by_id`), + KEY `up_roles_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `up_roles_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `up_roles_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `up_roles` +-- + +LOCK TABLES `up_roles` WRITE; +/*!40000 ALTER TABLE `up_roles` DISABLE KEYS */; +INSERT INTO `up_roles` (`id`, `name`, `description`, `type`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'Authenticated','Default role given to authenticated user.','authenticated','2023-01-23 09:35:14.567000','2023-01-23 09:35:14.567000',NULL,NULL),(2,'Public','Default role given to unauthenticated user.','public','2023-01-23 09:35:14.578000','2023-01-23 11:36:55.640000',NULL,NULL); +/*!40000 ALTER TABLE `up_roles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `up_users` +-- + +DROP TABLE IF EXISTS `up_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `up_users` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(255) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `provider` varchar(255) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `reset_password_token` varchar(255) DEFAULT NULL, + `confirmation_token` varchar(255) DEFAULT NULL, + `confirmed` tinyint(1) DEFAULT NULL, + `blocked` tinyint(1) DEFAULT NULL, + `newsletter` tinyint(1) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `up_users_created_by_id_fk` (`created_by_id`), + KEY `up_users_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `up_users_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `up_users_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `up_users` +-- + +LOCK TABLES `up_users` WRITE; +/*!40000 ALTER TABLE `up_users` DISABLE KEYS */; +INSERT INTO `up_users` (`id`, `username`, `email`, `provider`, `password`, `reset_password_token`, `confirmation_token`, `confirmed`, `blocked`, `newsletter`, `created_at`, `updated_at`, `created_by_id`, `updated_by_id`) VALUES (1,'demo','sebastien.naser@gmail.com','local','$2a$10$wwRKeb4C84afZD.JUwRzGuc7R1Bayf3KuVo/T8P6Ej0MP6KZiA09a','b3a84b6fe6f0a567ef73eb9879c95aa5c8cd9fe2035dad44fb841a778a9993e196ca3da7e5347d2cd9f98879ad8dcec7b49a390276d88a1cb1337cd888f4536a',NULL,1,0,0,'2023-01-23 11:49:04.638000','2023-01-23 11:50:02.490000',NULL,NULL); +/*!40000 ALTER TABLE `up_users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `up_users_role_links` +-- + +DROP TABLE IF EXISTS `up_users_role_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `up_users_role_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `user_id` int(10) unsigned DEFAULT NULL, + `role_id` int(10) unsigned DEFAULT NULL, + `user_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `up_users_role_links_unique` (`user_id`,`role_id`), + KEY `up_users_role_links_fk` (`user_id`), + KEY `up_users_role_links_inv_fk` (`role_id`), + KEY `up_users_role_links_order_inv_fk` (`user_order`), + CONSTRAINT `up_users_role_links_fk` FOREIGN KEY (`user_id`) REFERENCES `up_users` (`id`) ON DELETE CASCADE, + CONSTRAINT `up_users_role_links_inv_fk` FOREIGN KEY (`role_id`) REFERENCES `up_roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `up_users_role_links` +-- + +LOCK TABLES `up_users_role_links` WRITE; +/*!40000 ALTER TABLE `up_users_role_links` DISABLE KEYS */; +INSERT INTO `up_users_role_links` (`id`, `user_id`, `role_id`, `user_order`) VALUES (1,1,1,1); +/*!40000 ALTER TABLE `up_users_role_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `upload_folders` +-- + +DROP TABLE IF EXISTS `upload_folders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `upload_folders` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `path_id` int(11) DEFAULT NULL, + `path` varchar(255) DEFAULT NULL, + `created_at` datetime(6) DEFAULT NULL, + `updated_at` datetime(6) DEFAULT NULL, + `created_by_id` int(10) unsigned DEFAULT NULL, + `updated_by_id` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `upload_folders_path_id_index` (`path_id`), + UNIQUE KEY `upload_folders_path_index` (`path`), + KEY `upload_folders_created_by_id_fk` (`created_by_id`), + KEY `upload_folders_updated_by_id_fk` (`updated_by_id`), + CONSTRAINT `upload_folders_created_by_id_fk` FOREIGN KEY (`created_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, + CONSTRAINT `upload_folders_updated_by_id_fk` FOREIGN KEY (`updated_by_id`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `upload_folders` +-- + +LOCK TABLES `upload_folders` WRITE; +/*!40000 ALTER TABLE `upload_folders` DISABLE KEYS */; +/*!40000 ALTER TABLE `upload_folders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `upload_folders_parent_links` +-- + +DROP TABLE IF EXISTS `upload_folders_parent_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `upload_folders_parent_links` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `folder_id` int(10) unsigned DEFAULT NULL, + `inv_folder_id` int(10) unsigned DEFAULT NULL, + `folder_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `upload_folders_parent_links_unique` (`folder_id`,`inv_folder_id`), + KEY `upload_folders_parent_links_fk` (`folder_id`), + KEY `upload_folders_parent_links_inv_fk` (`inv_folder_id`), + KEY `upload_folders_parent_links_order_inv_fk` (`folder_order`), + CONSTRAINT `upload_folders_parent_links_fk` FOREIGN KEY (`folder_id`) REFERENCES `upload_folders` (`id`) ON DELETE CASCADE, + CONSTRAINT `upload_folders_parent_links_inv_fk` FOREIGN KEY (`inv_folder_id`) REFERENCES `upload_folders` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `upload_folders_parent_links` +-- + +LOCK TABLES `upload_folders_parent_links` WRITE; +/*!40000 ALTER TABLE `upload_folders_parent_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `upload_folders_parent_links` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2023-01-23 14:51:11 diff --git a/package-lock.json b/package-lock.json index 820642c..2b26e1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "@nx-extend/strapi": "^3.2.0", "@testing-library/react": "13.4.0", "@types/jest": "28.1.1", - "@types/node": "16.11.7", + "@types/node": "18.11.9", "@types/react": "18.0.25", "@types/react-dom": "18.0.9", "@typescript-eslint/eslint-plugin": "^5.36.1", @@ -1950,7 +1950,7 @@ "version": "2.88.11", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.11.tgz", "integrity": "sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==", - "devOptional": true, + "dev": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -1979,7 +1979,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "devOptional": true, + "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -1993,7 +1993,7 @@ "version": "6.10.4", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", - "devOptional": true, + "dev": true, "dependencies": { "side-channel": "^1.0.4" }, @@ -2008,7 +2008,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "devOptional": true, + "dev": true, "dependencies": { "debug": "^3.1.0", "lodash.once": "^4.1.1" @@ -2018,7 +2018,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "devOptional": true, + "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -2578,7 +2578,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", - "devOptional": true, + "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2601,13 +2601,13 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "devOptional": true + "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.19.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", - "devOptional": true, + "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -2622,7 +2622,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "devOptional": true, + "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -2634,7 +2634,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2646,7 +2646,7 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" }, @@ -2867,7 +2867,7 @@ "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "devOptional": true, + "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -2881,7 +2881,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "devOptional": true + "dev": true }, "node_modules/@internationalized/number": { "version": "3.1.2", @@ -7413,23 +7413,6 @@ "@types/responselike": "^1.0.0" } }, - "node_modules/@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", - "dev": true, - "peer": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/chai": "*" - } - }, "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -7562,7 +7545,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "devOptional": true + "dev": true }, "node_modules/@types/http-cache-semantics": { "version": "4.0.1", @@ -7798,9 +7781,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==" + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -7940,13 +7923,13 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "devOptional": true + "dev": true }, "node_modules/@types/sizzle": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", - "devOptional": true + "dev": true }, "node_modules/@types/sockjs": { "version": "0.3.33", @@ -8682,7 +8665,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "devOptional": true, + "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -8749,7 +8732,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "devOptional": true, + "dev": true, "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -8903,7 +8886,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -9083,7 +9066,7 @@ "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "devOptional": true, + "dev": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -9122,19 +9105,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "devOptional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "peer": true, "engines": { - "node": "*" + "node": ">=0.8" } }, "node_modules/assign-symbols": { @@ -9156,7 +9129,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -9175,7 +9148,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "devOptional": true, + "dev": true, "engines": { "node": ">= 4.0.0" } @@ -9239,7 +9212,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "devOptional": true, + "dev": true, "engines": { "node": "*" } @@ -9248,7 +9221,7 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "devOptional": true + "dev": true }, "node_modules/axe-core": { "version": "4.6.2", @@ -9581,7 +9554,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "devOptional": true, + "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } @@ -9631,13 +9604,13 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "devOptional": true + "dev": true }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "devOptional": true + "dev": true }, "node_modules/bn.js": { "version": "5.2.1", @@ -9945,7 +9918,7 @@ "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "devOptional": true, + "dev": true, "engines": { "node": "*" } @@ -10116,7 +10089,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6" } @@ -10145,7 +10118,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "devOptional": true, + "dev": true, "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -10210,26 +10183,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "devOptional": true - }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "peer": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } + "dev": true }, "node_modules/chalk": { "version": "4.1.0", @@ -10315,21 +10269,11 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "devOptional": true, + "dev": true, "engines": { "node": ">= 0.8.0" } @@ -10508,7 +10452,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", - "devOptional": true, + "dev": true, "dependencies": { "source-map": "~0.6.0" }, @@ -10520,7 +10464,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6" } @@ -10563,7 +10507,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "devOptional": true, + "dev": true, "dependencies": { "string-width": "^4.2.0" }, @@ -10578,7 +10522,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "devOptional": true, + "dev": true, "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -10815,7 +10759,7 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=4.0.0" } @@ -11685,7 +11629,7 @@ "version": "12.3.0", "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.3.0.tgz", "integrity": "sha512-ZQNebibi6NBt51TRxRMYKeFvIiQZ01t50HSy7z/JMgRVqBUey3cdjog5MYEbzG6Ktti5ckDt1tfcC47lmFwXkw==", - "devOptional": true, + "dev": true, "hasInstallScript": true, "dependencies": { "@cypress/request": "^2.88.10", @@ -11742,13 +11686,13 @@ "version": "14.18.36", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", - "devOptional": true + "dev": true }, "node_modules/cypress/node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "devOptional": true, + "dev": true, "engines": { "node": ">= 6" } @@ -11757,7 +11701,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "devOptional": true, + "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -11780,7 +11724,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "devOptional": true, + "dev": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -11795,7 +11739,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "devOptional": true, + "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -11810,7 +11754,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8.12.0" } @@ -11819,13 +11763,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", - "devOptional": true + "dev": true }, "node_modules/cypress/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "devOptional": true, + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11846,7 +11790,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -11898,7 +11842,7 @@ "version": "1.11.7", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", - "devOptional": true + "dev": true }, "node_modules/debug": { "version": "4.3.4", @@ -11962,19 +11906,6 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "peer": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/deep-equal": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", @@ -12022,7 +11953,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "devOptional": true + "dev": true }, "node_modules/deepmerge": { "version": "4.2.2", @@ -12353,7 +12284,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "devOptional": true, + "dev": true, "dependencies": { "esutils": "^2.0.2" }, @@ -12371,7 +12302,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "devOptional": true, + "dev": true, "dependencies": { "utila": "~0.4" } @@ -12507,7 +12438,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "devOptional": true, + "dev": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -12977,7 +12908,7 @@ "version": "8.15.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", - "devOptional": true, + "dev": true, "dependencies": { "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", @@ -13474,7 +13405,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "devOptional": true, + "dev": true, "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -13492,7 +13423,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" } @@ -13501,7 +13432,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "devOptional": true, + "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -13510,13 +13441,13 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "devOptional": true + "dev": true }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" }, @@ -13528,7 +13459,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "devOptional": true, + "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -13541,7 +13472,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "devOptional": true, + "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -13553,7 +13484,7 @@ "version": "13.19.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", - "devOptional": true, + "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -13568,7 +13499,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "devOptional": true, + "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -13580,7 +13511,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13592,7 +13523,7 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" }, @@ -13613,7 +13544,7 @@ "version": "9.4.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "devOptional": true, + "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", @@ -13703,7 +13634,7 @@ "version": "6.4.7", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", - "devOptional": true + "dev": true }, "node_modules/eventemitter3": { "version": "4.0.7", @@ -13754,7 +13685,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "devOptional": true, + "dev": true, "dependencies": { "pify": "^2.2.0" }, @@ -14022,7 +13953,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "devOptional": true + "dev": true }, "node_modules/extend-shallow": { "version": "3.0.2", @@ -14131,7 +14062,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "devOptional": true, + "dev": true, "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -14151,7 +14082,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "devOptional": true, + "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -14166,7 +14097,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ] @@ -14200,7 +14131,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "devOptional": true + "dev": true }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -14242,7 +14173,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "devOptional": true, + "dev": true, "dependencies": { "pend": "~1.2.0" } @@ -14271,7 +14202,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "devOptional": true, + "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -14620,7 +14551,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "devOptional": true, + "dev": true, "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -14633,7 +14564,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "devOptional": true + "dev": true }, "node_modules/flowbite": { "version": "1.6.2", @@ -14712,7 +14643,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "devOptional": true, + "dev": true, "engines": { "node": "*" } @@ -15035,7 +14966,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "devOptional": true + "dev": true }, "node_modules/functions-have-names": { "version": "1.2.3", @@ -15080,16 +15011,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", @@ -15166,7 +15087,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", - "devOptional": true, + "dev": true, "dependencies": { "async": "^3.2.0" } @@ -15175,7 +15096,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0" } @@ -15236,7 +15157,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "devOptional": true, + "dev": true, "dependencies": { "ini": "2.0.0" }, @@ -15632,7 +15553,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "devOptional": true, + "dev": true, "bin": { "he": "bin/he" } @@ -15813,7 +15734,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "devOptional": true, + "dev": true, "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -15834,7 +15755,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "devOptional": true, + "dev": true, "engines": { "node": ">= 12" } @@ -15843,7 +15764,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "devOptional": true, + "dev": true, "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -15866,7 +15787,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "devOptional": true, + "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -15885,7 +15806,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "devOptional": true, + "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -16071,7 +15992,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", @@ -16292,7 +16213,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -16324,7 +16245,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" } @@ -16565,7 +16486,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "devOptional": true, + "dev": true, "dependencies": { "ci-info": "^3.2.0" }, @@ -16711,7 +16632,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "devOptional": true, + "dev": true, "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -16835,7 +16756,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -17001,7 +16922,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "devOptional": true + "dev": true }, "node_modules/is-unc-path": { "version": "1.0.0", @@ -17019,7 +16940,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=10" }, @@ -17124,7 +17045,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "devOptional": true + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -18189,7 +18110,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "devOptional": true + "dev": true }, "node_modules/jsdom": { "version": "19.0.0", @@ -18293,7 +18214,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "devOptional": true + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -18304,13 +18225,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "devOptional": true + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "devOptional": true + "dev": true }, "node_modules/json5": { "version": "2.2.3", @@ -18374,7 +18295,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ], @@ -18870,7 +18791,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "devOptional": true, + "dev": true, "engines": { "node": "> 0.8" } @@ -18965,7 +18886,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "devOptional": true, + "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -19082,7 +19003,7 @@ "version": "3.14.0", "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", - "devOptional": true, + "dev": true, "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.16", @@ -19126,19 +19047,6 @@ "node": ">=8.9.0" } }, - "node_modules/local-pkg": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz", - "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -19154,7 +19062,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "devOptional": true + "dev": true }, "node_modules/lodash-es": { "version": "4.17.21", @@ -19230,13 +19138,13 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "devOptional": true + "dev": true }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "devOptional": true + "dev": true }, "node_modules/lodash.uniq": { "version": "4.5.0", @@ -19247,7 +19155,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "devOptional": true, + "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -19263,7 +19171,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "devOptional": true, + "dev": true, "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -19281,7 +19189,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "devOptional": true, + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -19298,7 +19206,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "devOptional": true, + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19338,16 +19246,6 @@ "loose-envify": "cli.js" } }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "peer": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, "node_modules/lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -21174,7 +21072,7 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "devOptional": true, + "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -21229,7 +21127,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "devOptional": true + "dev": true }, "node_modules/outvariant": { "version": "1.3.0", @@ -21298,7 +21196,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "devOptional": true, + "dev": true, "dependencies": { "aggregate-error": "^3.0.0" }, @@ -21418,7 +21316,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "devOptional": true, + "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -21428,7 +21326,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "devOptional": true, + "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -21438,7 +21336,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "devOptional": true, + "dev": true, "dependencies": { "tslib": "^2.0.3" } @@ -21447,7 +21345,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "devOptional": true, + "dev": true, "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -21572,7 +21470,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "devOptional": true, + "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -21582,7 +21480,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "devOptional": true, + "dev": true, "dependencies": { "tslib": "^2.0.3" } @@ -21591,7 +21489,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "devOptional": true, + "dev": true, "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -21723,16 +21621,6 @@ "node": ">=8" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/pause": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", @@ -21759,13 +21647,13 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "devOptional": true + "dev": true }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "devOptional": true + "dev": true }, "node_modules/pg-connection-string": { "version": "2.5.0", @@ -22850,7 +22738,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "devOptional": true, + "dev": true, "engines": { "node": ">= 0.8.0" } @@ -22859,7 +22747,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", - "devOptional": true, + "dev": true, "bin": { "prettier": "bin-prettier.js" }, @@ -22874,7 +22762,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6" }, @@ -22886,7 +22774,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "devOptional": true, + "dev": true, "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -23018,7 +22906,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "devOptional": true + "dev": true }, "node_modules/public-encrypt": { "version": "4.0.3", @@ -23044,7 +22932,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "devOptional": true, + "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -23747,7 +23635,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" }, @@ -23823,7 +23711,7 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "devOptional": true, + "dev": true, "engines": { "node": ">= 0.10" } @@ -23838,7 +23726,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "devOptional": true, + "dev": true, "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -23878,7 +23766,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", - "devOptional": true, + "dev": true, "dependencies": { "throttleit": "^1.0.0" } @@ -24098,7 +23986,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "devOptional": true + "dev": true }, "node_modules/rimraf": { "version": "3.0.2", @@ -25113,7 +25001,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "devOptional": true, + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -25483,7 +25371,7 @@ "version": "1.17.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "devOptional": true, + "dev": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -25845,19 +25733,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.0.tgz", - "integrity": "sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==", - "dev": true, - "peer": true, - "dependencies": { - "acorn": "^8.8.1" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", @@ -26478,7 +26353,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "devOptional": true + "dev": true }, "node_modules/thenify": { "version": "3.3.1", @@ -26505,7 +26380,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==", - "devOptional": true + "dev": true }, "node_modules/through": { "version": "2.3.8", @@ -26560,33 +26435,6 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "dev": true }, - "node_modules/tinybench": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz", - "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==", - "dev": true, - "peer": true - }, - "node_modules/tinypool": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz", - "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz", - "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", @@ -26695,7 +26543,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, + "dev": true, "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -26908,7 +26756,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "devOptional": true, + "dev": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -26920,13 +26768,13 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "devOptional": true + "dev": true }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "devOptional": true, + "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -26997,6 +26845,7 @@ "version": "4.8.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -27239,7 +27088,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -27431,7 +27280,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "devOptional": true + "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", @@ -27502,7 +27351,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ], @@ -27516,155 +27365,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "devOptional": true - }, - "node_modules/vite": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", - "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", - "dev": true, - "peer": true, - "dependencies": { - "esbuild": "^0.16.3", - "postcss": "^8.4.20", - "resolve": "^1.22.1", - "rollup": "^3.7.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "peer": true, - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/vite/node_modules/rollup": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.10.0.tgz", - "integrity": "sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA==", - "dev": true, - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/vitest": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.25.8.tgz", - "integrity": "sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/chai": "^4.3.4", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "acorn": "^8.8.1", - "acorn-walk": "^8.2.0", - "chai": "^4.3.7", - "debug": "^4.3.4", - "local-pkg": "^0.4.2", - "source-map": "^0.6.1", - "strip-literal": "^1.0.0", - "tinybench": "^2.3.1", - "tinypool": "^0.3.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0 || ^4.0.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": ">=v14.16.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } + "dev": true }, "node_modules/vm-browserify": { "version": "1.1.2", @@ -28295,7 +27996,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -28455,7 +28156,7 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "devOptional": true, + "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/package.json b/package.json index cfb5547..71fcec6 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,18 @@ "install:backend": "cd apps/backend && npm install", "generate:backend": "cd apps/backend && npm run generate", "build:backend": "cd apps/backend && npm run build", + "build:backend:staging": "cd apps/backend && npm run build", + "postbuild:backend:staging": "node scripts/strapi/build-staging.js", "predevelop:backend": "npm run start:docker && npm run build:backend", "develop:backend": "cd apps/backend && npm run develop", "start:client": "nx serve client", + "build:client:development": "npm run build client -- --configuration development --verbose", + "build:client:staging": "npm run build client -- --configuration staging", + "build:client:production": "npm run build client -- --configuration production", + "start:website": "nx serve website", + "build:website:development": "npm run build website -- --configuration development --verbose", + "build:website:staging": "npm run build website -- --configuration staging", + "build:website:production": "npm run build website -- --configuration production", "start": "nx serve", "build": "nx build", "test": "nx test" @@ -44,7 +53,7 @@ "@nx-extend/strapi": "^3.2.0", "@testing-library/react": "13.4.0", "@types/jest": "28.1.1", - "@types/node": "16.11.7", + "@types/node": "18.11.9", "@types/react": "18.0.25", "@types/react-dom": "18.0.9", "@typescript-eslint/eslint-plugin": "^5.36.1", diff --git a/scripts/server.js b/scripts/server.js new file mode 100644 index 0000000..5a26880 --- /dev/null +++ b/scripts/server.js @@ -0,0 +1,8 @@ +const path = require('path'); + +const nextPath = path.join(__dirname, 'node_modules', '.bin', 'next'); + +process.argv.length = 1; +process.argv.push(nextPath, 'start'); + +require(nextPath); diff --git a/scripts/strapi/build-staging.js b/scripts/strapi/build-staging.js new file mode 100644 index 0000000..c9b04e8 --- /dev/null +++ b/scripts/strapi/build-staging.js @@ -0,0 +1,9 @@ +const fs = require('fs'); +const fse = require('fs-extra'); +const path = require('path'); + +fse.copySync(path.join(__dirname, '..', '..', 'apps/backend/public'), path.join(__dirname, '..', '..', 'dist/backend/public')); +fs.copyFileSync(path.join(__dirname, '..', '..', 'apps/backend/.env.staging'), path.join(__dirname, '..', '..', 'dist/backend/.env')); +fs.copyFileSync(path.join(__dirname, 'sources/server.js'), path.join(__dirname, '..', '..', 'dist/backend/server.js')); +fs.copyFileSync(path.join(__dirname, 'sources/package.json'), path.join(__dirname, '..', '..', 'dist/backend/package.json')); +fs.copyFileSync(path.join(__dirname, 'sources/.strapi-updater.json'), path.join(__dirname, '..', '..', 'dist/backend/.strapi-updater.json')); diff --git a/scripts/strapi/sources/.strapi-updater.json b/scripts/strapi/sources/.strapi-updater.json new file mode 100644 index 0000000..19696e0 --- /dev/null +++ b/scripts/strapi/sources/.strapi-updater.json @@ -0,0 +1,4 @@ +{ + "latest": "4.5.6", + "lastUpdateCheck": 1674315789881 +} \ No newline at end of file diff --git a/scripts/strapi/sources/package.json b/scripts/strapi/sources/package.json new file mode 100644 index 0000000..b44ac8d --- /dev/null +++ b/scripts/strapi/sources/package.json @@ -0,0 +1,31 @@ +{ + "name": "nx-guitar-school", + "version": "0.0.0", + "overrides": { + "@strapi/strapi": "4.5.4" + }, + "dependencies": { + "@strapi/plugin-i18n": "4.5.4", + "@strapi/plugin-users-permissions": "4.5.4", + "@strapi/provider-email-nodemailer": "4.5.6", + "@strapi/strapi": "4.5.4", + "@strapi/utils": "4.5.6", + "better-sqlite3": "7.4.6", + "mysql": "2.18.1", + "pg": "8.8.0", + "strapi-plugin-import-export-entries": "1.18.0", + "strapi-plugin-menus": "1.2.1", + "strapi-plugin-populate-deep": "1.1.2" + }, + "author": { + "name": "A Strapi developer" + }, + "strapi": { + "uuid": "d1de7a93-c68b-4597-80ee-b5b56ea4eb10" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + }, + "license": "MIT" +} diff --git a/scripts/strapi/sources/server.js b/scripts/strapi/sources/server.js new file mode 100644 index 0000000..63dd6c2 --- /dev/null +++ b/scripts/strapi/sources/server.js @@ -0,0 +1,3 @@ +const strapi = require('@strapi/strapi'); +const app = strapi({distDir: './dist'}); +app.start(); From c8ba3ff73304e48ead3935045a030137045bf45a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A4ser?= Date: Wed, 25 Jan 2023 14:15:14 +0100 Subject: [PATCH 4/4] chore: add build tools for website --- apps/website/.env.development | 4 -- apps/website/.env.production | 4 -- apps/website/.env.staging | 4 -- apps/website/config.ts | 9 +++- .../environments/environment.development.ts | 5 +++ apps/website/environments/environment.prod.ts | 5 +++ .../environments/environment.staging.ts | 5 +++ apps/website/environments/environment.ts | 5 +++ apps/website/libs/api.ts | 6 ++- apps/website/libs/auth.ts | 7 ++-- apps/website/next.config.js | 7 +++- apps/website/pages/_document.tsx | 13 ++++++ apps/website/pages/api/auth/[...nextauth].ts | 3 ++ apps/website/pages/home/index.tsx | 8 ++-- apps/website/pages/index.module.scss | 4 ++ apps/website/pages/index.tsx | 10 +++-- apps/website/pages/lost-password/index.tsx | 8 ++-- apps/website/pages/sign-in/index.tsx | 6 ++- apps/website/pages/sign-up/index.tsx | 12 +++--- .../pages/signup-confirmation/index.tsx | 8 ++-- apps/website/pages/styles.css | 7 ++-- apps/website/postcss.config.js | 17 ++++++++ apps/website/project.json | 42 +++++++++++++++---- apps/website/tailwind.config.js | 18 ++++++++ package.json | 6 +-- scripts/strapi/build-staging.js | 10 ++--- scripts/website/build-staging.js | 5 +++ scripts/{ => website/sources}/server.js | 0 28 files changed, 178 insertions(+), 60 deletions(-) delete mode 100644 apps/website/.env.development delete mode 100644 apps/website/.env.production delete mode 100644 apps/website/.env.staging create mode 100644 apps/website/environments/environment.development.ts create mode 100644 apps/website/environments/environment.prod.ts create mode 100644 apps/website/environments/environment.staging.ts create mode 100644 apps/website/environments/environment.ts create mode 100644 apps/website/pages/_document.tsx create mode 100644 apps/website/postcss.config.js create mode 100644 apps/website/tailwind.config.js create mode 100644 scripts/website/build-staging.js rename scripts/{ => website/sources}/server.js (100%) diff --git a/apps/website/.env.development b/apps/website/.env.development deleted file mode 100644 index d2ea0ef..0000000 --- a/apps/website/.env.development +++ /dev/null @@ -1,4 +0,0 @@ -STRAPI_URL_API=http://127.0.0.1:1337/api -STRAPI_URL=http://127.0.0.1:1337/ -NEXTAUTH_SECRET= -NEXTAUTH_URL=http://localhost:4200 diff --git a/apps/website/.env.production b/apps/website/.env.production deleted file mode 100644 index d2ea0ef..0000000 --- a/apps/website/.env.production +++ /dev/null @@ -1,4 +0,0 @@ -STRAPI_URL_API=http://127.0.0.1:1337/api -STRAPI_URL=http://127.0.0.1:1337/ -NEXTAUTH_SECRET= -NEXTAUTH_URL=http://localhost:4200 diff --git a/apps/website/.env.staging b/apps/website/.env.staging deleted file mode 100644 index d2ea0ef..0000000 --- a/apps/website/.env.staging +++ /dev/null @@ -1,4 +0,0 @@ -STRAPI_URL_API=http://127.0.0.1:1337/api -STRAPI_URL=http://127.0.0.1:1337/ -NEXTAUTH_SECRET= -NEXTAUTH_URL=http://localhost:4200 diff --git a/apps/website/config.ts b/apps/website/config.ts index cb6f914..2d6eede 100644 --- a/apps/website/config.ts +++ b/apps/website/config.ts @@ -1,5 +1,10 @@ -export default { - env: process.env.NODE_ENV, +export const config = { + env: { + STRAPI_URL_API: process.env.NX_STRAPI_URL_API, + STRAPI_URL: process.env.NX_STRAPI_URL, + NEXTAUTH_SECRET: process.env.NX_NEXTAUTH_SECRET, + NEXTAUTH_URL: process.env.NX_NEXTAUTH_URL, + }, mainApiEndpoint: 'https://conduit.productionready.io/api' } diff --git a/apps/website/environments/environment.development.ts b/apps/website/environments/environment.development.ts new file mode 100644 index 0000000..2c27583 --- /dev/null +++ b/apps/website/environments/environment.development.ts @@ -0,0 +1,5 @@ +export const environment = { + strapiUrl: 'http://127.0.0.1:1337/', + strapiApiUrl: 'http://127.0.0.1:1337/api', + nextAuthSecret: "yBNW1wrb9CgOvEfbX6EQCvCDqiMkRBZP" +} diff --git a/apps/website/environments/environment.prod.ts b/apps/website/environments/environment.prod.ts new file mode 100644 index 0000000..1e72c46 --- /dev/null +++ b/apps/website/environments/environment.prod.ts @@ -0,0 +1,5 @@ +export const environment = { + strapiUrl: 'http://admin.mecp.nasercloud.fr/', + strapiApiUrl: 'http://admin.mecp.nasercloud.fr/api', + nextAuthSecret: "yBNW1wrb9CgOvEfbX6EQCvCDqiMkRBZP" +} diff --git a/apps/website/environments/environment.staging.ts b/apps/website/environments/environment.staging.ts new file mode 100644 index 0000000..1e72c46 --- /dev/null +++ b/apps/website/environments/environment.staging.ts @@ -0,0 +1,5 @@ +export const environment = { + strapiUrl: 'http://admin.mecp.nasercloud.fr/', + strapiApiUrl: 'http://admin.mecp.nasercloud.fr/api', + nextAuthSecret: "yBNW1wrb9CgOvEfbX6EQCvCDqiMkRBZP" +} diff --git a/apps/website/environments/environment.ts b/apps/website/environments/environment.ts new file mode 100644 index 0000000..2c27583 --- /dev/null +++ b/apps/website/environments/environment.ts @@ -0,0 +1,5 @@ +export const environment = { + strapiUrl: 'http://127.0.0.1:1337/', + strapiApiUrl: 'http://127.0.0.1:1337/api', + nextAuthSecret: "yBNW1wrb9CgOvEfbX6EQCvCDqiMkRBZP" +} diff --git a/apps/website/libs/api.ts b/apps/website/libs/api.ts index 5ee05fc..62bd745 100644 --- a/apps/website/libs/api.ts +++ b/apps/website/libs/api.ts @@ -1,6 +1,8 @@ import axios from "axios"; import * as _ from 'lodash'; +import {environment} from "../environments/environment"; + export type Inputs = { email: string, username: string, @@ -15,12 +17,12 @@ export const hasAvatar = (user) => { } export const getBackendImg = (imageUrl: string) => { - return `${process.env.STRAPI_URL}${imageUrl}`; + return `${environment.strapiUrl}${imageUrl}`; } export const signUpRequest = async (inputs: Inputs) => { try { - const registerResponse = await axios.post(`${process.env.STRAPI_URL_API}/auth/local/register`, { + const registerResponse = await axios.post(`${environment.strapiApiUrl}/auth/local/register`, { email: inputs.email, password: inputs.password, username: inputs.username, diff --git a/apps/website/libs/auth.ts b/apps/website/libs/auth.ts index f73ced3..7669b6a 100644 --- a/apps/website/libs/auth.ts +++ b/apps/website/libs/auth.ts @@ -1,7 +1,6 @@ import axios from 'axios'; import {signIn} from "next-auth/react"; - -const strapiUrl = process.env.STRAPI_URL_API; +import {config} from "../config"; export async function createJwtToken(email, password) { return await signIn('credentials', { @@ -12,12 +11,12 @@ export async function createJwtToken(email, password) { } export async function signInStrapi({email, password}) { - const res = await axios.post(`${strapiUrl}/auth/local`, { + const res = await axios.post(`${(config.env as any).STRAPI_URL_API}/auth/local`, { identifier: email, password, }); if (res && res.data) { - const user = await axios.get(`${strapiUrl}/users/${res.data.user.id}?populate=deep`); + const user = await axios.get(`${(config.env as any).STRAPI_URL_API}/users/${res.data.user.id}?populate=deep`); if (user && user.data) { res.data.user = {...res.data.user, ...user.data}; } diff --git a/apps/website/next.config.js b/apps/website/next.config.js index 81bf708..32562c3 100644 --- a/apps/website/next.config.js +++ b/apps/website/next.config.js @@ -1,16 +1,19 @@ //@ts-check // eslint-disable-next-line @typescript-eslint/no-var-requires -const { withNx } = require('./with-nx.js'); +const {withNx} = require('./with-nx.js'); /** * @type {import('@nrwl/next/plugins/with-nx').WithNxOptions} **/ const nextConfig = { + reactStrictMode: true, + poweredByHeader: false, + output: 'standalone', nx: { // Set this to true if you would like to to use SVGR // See: https://github.com/gregberge/svgr - svgr: false, + svgr: false }, }; diff --git a/apps/website/pages/_document.tsx b/apps/website/pages/_document.tsx new file mode 100644 index 0000000..8175832 --- /dev/null +++ b/apps/website/pages/_document.tsx @@ -0,0 +1,13 @@ +import {Head, Html, Main, NextScript} from 'next/document'; + +export default function Document() { + return ( + + + +
+ + + + ) +}; diff --git a/apps/website/pages/api/auth/[...nextauth].ts b/apps/website/pages/api/auth/[...nextauth].ts index 5e1311b..f12e9f2 100644 --- a/apps/website/pages/api/auth/[...nextauth].ts +++ b/apps/website/pages/api/auth/[...nextauth].ts @@ -4,8 +4,10 @@ import {JWT} from "next-auth/jwt"; import {AdapterUser} from "next-auth/adapters"; import {signInStrapi} from '../../../libs/auth'; +import {environment} from "../../../environments/environment"; export default NextAuth({ + // Configure one or more authentication providers providers: [ CredentialsProvider({ @@ -59,4 +61,5 @@ export default NextAuth({ return Promise.resolve(token); }, }, + secret: environment.nextAuthSecret }); diff --git a/apps/website/pages/home/index.tsx b/apps/website/pages/home/index.tsx index b130843..2ea756d 100644 --- a/apps/website/pages/home/index.tsx +++ b/apps/website/pages/home/index.tsx @@ -3,10 +3,12 @@ import delve from "dlv"; import SeoConfig from "../../components/seo-config/seo-config"; import Layout from "../../components/layout/layout"; +import {config} from "../../config"; +import {environment} from "../../environments/environment"; const getPageMetadata = async (path) => { try { - return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + return await axios.get(`${environment.strapiApiUrl}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); } catch (e) { console.error(e); return Promise.resolve({}) @@ -15,8 +17,8 @@ const getPageMetadata = async (path) => { export const getServerSideProps = async (context) => { const path = context.resolvedUrl; - const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); - const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + const menuHeader = await axios.get(`${environment.strapiApiUrl}/menus/1?nested&populate=deep`); + const menuFooter = await axios.get(`${environment.strapiApiUrl}/menus/2?nested&populate=deep`); const page = await getPageMetadata(path); return { props: { diff --git a/apps/website/pages/index.module.scss b/apps/website/pages/index.module.scss index 8a13e21..054a7b3 100644 --- a/apps/website/pages/index.module.scss +++ b/apps/website/pages/index.module.scss @@ -1,2 +1,6 @@ +@import 'tailwindcss/base.css'; +@import 'tailwindcss/components.css'; +@import 'tailwindcss/utilities.css'; + .page { } diff --git a/apps/website/pages/index.tsx b/apps/website/pages/index.tsx index 47093d8..917e888 100644 --- a/apps/website/pages/index.tsx +++ b/apps/website/pages/index.tsx @@ -4,10 +4,13 @@ import delve from "dlv"; import SeoConfig from "../components/seo-config/seo-config"; import Layout from "../components/layout/layout"; +import {config} from "../config"; +import {environment} from "../environments/environment"; const getPageMetadata = async (path) => { try { - return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + console.log((config.env as any)); + return await axios.get(`${environment.strapiApiUrl}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); } catch (e) { console.error(e); return Promise.resolve({}) @@ -16,8 +19,9 @@ const getPageMetadata = async (path) => { export const getServerSideProps = async (context) => { const path = context.resolvedUrl; - const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); - const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + console.log((config.env as any)); + const menuHeader = await axios.get(`${environment.strapiApiUrl}/menus/1?nested&populate=deep`); + const menuFooter = await axios.get(`${environment.strapiApiUrl}/menus/2?nested&populate=deep`); const page = await getPageMetadata(path); return { props: { diff --git a/apps/website/pages/lost-password/index.tsx b/apps/website/pages/lost-password/index.tsx index dcbc6ca..e5928a9 100644 --- a/apps/website/pages/lost-password/index.tsx +++ b/apps/website/pages/lost-password/index.tsx @@ -3,10 +3,12 @@ import delve from "dlv"; import SeoConfig from "../../components/seo-config/seo-config"; import Layout from "../../components/layout/layout"; import styles from "../sign-up/index.module.scss"; +import {config} from "../../config"; +import {environment} from "../../environments/environment"; const getPageMetadata = async (path) => { try { - return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + return await axios.get(`${environment.strapiApiUrl}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); } catch (e) { console.error(e); return Promise.resolve({}) @@ -15,8 +17,8 @@ const getPageMetadata = async (path) => { export const getServerSideProps = async (context) => { const path = context.resolvedUrl; - const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); - const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + const menuHeader = await axios.get(`${environment.strapiApiUrl}/menus/1?nested&populate=deep`); + const menuFooter = await axios.get(`${environment.strapiApiUrl}/menus/2?nested&populate=deep`); const page = await getPageMetadata(path); return { props: { diff --git a/apps/website/pages/sign-in/index.tsx b/apps/website/pages/sign-in/index.tsx index 0cd70bb..2cb38d9 100644 --- a/apps/website/pages/sign-in/index.tsx +++ b/apps/website/pages/sign-in/index.tsx @@ -7,10 +7,12 @@ import Layout from "../../components/layout/layout"; import styles from './index.module.scss'; import {createJwtToken} from "../../libs/auth"; +import {config} from "../../config"; +import {environment} from "../../environments/environment"; const getPageMetadata = async (path) => { try { - return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + return await axios.get(`${environment.strapiApiUrl}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); } catch (e) { console.error(e); return Promise.resolve({}) @@ -19,7 +21,7 @@ const getPageMetadata = async (path) => { export const getServerSideProps = async (context) => { const path = context.resolvedUrl; - const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + const menuFooter = await axios.get(`${environment.strapiApiUrl}/menus/2?nested&populate=deep`); const page = await getPageMetadata(path); return { diff --git a/apps/website/pages/sign-up/index.tsx b/apps/website/pages/sign-up/index.tsx index 7e2918e..5733d98 100644 --- a/apps/website/pages/sign-up/index.tsx +++ b/apps/website/pages/sign-up/index.tsx @@ -3,17 +3,19 @@ import axios from "axios"; import delve from 'dlv'; import {useRouter} from "next/router"; import {SubmitHandler, useForm} from 'react-hook-form'; +import {BehaviorSubject, catchError, debounceTime, distinctUntilChanged, filter, map, of, switchMap} from "rxjs"; +import {useEffect, useState} from "react"; import SeoConfig from "../../components/seo-config/seo-config"; import Layout from "../../components/layout/layout"; import {Inputs, signUpRequest} from "../../libs/api"; import {createJwtToken} from "../../libs/auth"; -import {useEffect, useState} from "react"; -import {BehaviorSubject, catchError, debounceTime, distinctUntilChanged, filter, map, of, switchMap} from "rxjs"; +import {config} from "../../config"; +import {environment} from "../../environments/environment"; const getPageMetadata = async (path) => { try { - return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + return await axios.get(`${environment.strapiApiUrl}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); } catch (e) { console.error(e); return Promise.resolve({}) @@ -22,8 +24,8 @@ const getPageMetadata = async (path) => { export const getServerSideProps = async (context) => { const path = context.resolvedUrl; - const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); - const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + const menuHeader = await axios.get(`${environment.strapiApiUrl}/menus/1?nested&populate=deep`); + const menuFooter = await axios.get(`${environment.strapiApiUrl}/menus/2?nested&populate=deep`); const page = await getPageMetadata(path); return { diff --git a/apps/website/pages/signup-confirmation/index.tsx b/apps/website/pages/signup-confirmation/index.tsx index f3c7e00..3a495f0 100644 --- a/apps/website/pages/signup-confirmation/index.tsx +++ b/apps/website/pages/signup-confirmation/index.tsx @@ -3,10 +3,12 @@ import delve from 'dlv'; import SeoConfig from "../../components/seo-config/seo-config"; import Layout from "../../components/layout/layout"; +import {config} from "../../config"; +import {environment} from "../../environments/environment"; const getPageMetadata = async (path) => { try { - return await axios.get(`${process.env.STRAPI_URL_API}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); + return await axios.get(`${environment.strapiApiUrl}/pages?filters[slug]=${path === '/' ? 'home' : path.slice(1, path.length)}&populate=deep`); } catch (e) { console.error(e); return Promise.resolve({}) @@ -15,8 +17,8 @@ const getPageMetadata = async (path) => { export const getServerSideProps = async (context) => { const path = context.resolvedUrl; - const menuHeader = await axios.get(`${process.env.STRAPI_URL_API}/menus/1?nested&populate=deep`); - const menuFooter = await axios.get(`${process.env.STRAPI_URL_API}/menus/2?nested&populate=deep`); + const menuHeader = await axios.get(`${environment.strapiApiUrl}/menus/1?nested&populate=deep`); + const menuFooter = await axios.get(`${environment.strapiApiUrl}/menus/2?nested&populate=deep`); const page = await getPageMetadata(path); return { props: { diff --git a/apps/website/pages/styles.css b/apps/website/pages/styles.css index c3d1772..2703cd6 100644 --- a/apps/website/pages/styles.css +++ b/apps/website/pages/styles.css @@ -1,7 +1,6 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - +@import 'tailwindcss/base.css'; +@import 'tailwindcss/components.css'; +@import 'tailwindcss/utilities.css'; html, body { position: relative; diff --git a/apps/website/postcss.config.js b/apps/website/postcss.config.js new file mode 100644 index 0000000..e20402e --- /dev/null +++ b/apps/website/postcss.config.js @@ -0,0 +1,17 @@ +const {join} = require('path'); + +// Note: If you use library-specific PostCSS/Tailwind configuration then you should remove the `postcssConfig` build +// option from your application's configuration (i.e. project.json). +// +// See: https://nx.dev/guides/using-tailwind-css-in-react#step-4:-applying-configuration-to-libraries + +module.exports = { + plugins: { + 'postcss-import': {}, + 'tailwindcss/nesting': {}, + tailwindcss: { + config: join(__dirname, 'tailwind.config.js'), + }, + autoprefixer: {}, + }, +}; diff --git a/apps/website/project.json b/apps/website/project.json index 254632d..59fd0f5 100644 --- a/apps/website/project.json +++ b/apps/website/project.json @@ -6,18 +6,40 @@ "targets": { "build": { "executor": "@nrwl/next:build", - "outputs": ["{options.outputPath}"], - "defaultConfiguration": "production", + "outputs": [ + "{options.outputPath}" + ], + "defaultConfiguration": "development", "options": { "root": "apps/website", "outputPath": "dist/apps/website" }, "configurations": { "development": { + "fileReplacements": [ + { + "replace": "apps/website/environments/environment.ts", + "with": "apps/website/environments/environment.development.ts" + } + ], "outputPath": "apps/website" }, - "staging": {}, - "production": {} + "staging": { + "fileReplacements": [ + { + "replace": "apps/website/environments/environment.ts", + "with": "apps/website/environments/environment.staging.ts" + } + ] + }, + "production": { + "fileReplacements": [ + { + "replace": "apps/website/environments/environment.ts", + "with": "apps/website/environments/environment.prod.ts" + } + ] + } } }, "serve": { @@ -50,7 +72,9 @@ }, "test": { "executor": "@nrwl/jest:jest", - "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "outputs": [ + "{workspaceRoot}/coverage/{projectRoot}" + ], "options": { "jestConfig": "apps/website/jest.config.ts", "passWithNoTests": true @@ -58,9 +82,13 @@ }, "lint": { "executor": "@nrwl/linter:eslint", - "outputs": ["{options.outputFile}"], + "outputs": [ + "{options.outputFile}" + ], "options": { - "lintFilePatterns": ["apps/website/**/*.{ts,tsx,js,jsx}"] + "lintFilePatterns": [ + "apps/website/**/*.{ts,tsx,js,jsx}" + ] } } }, diff --git a/apps/website/tailwind.config.js b/apps/website/tailwind.config.js new file mode 100644 index 0000000..364d5db --- /dev/null +++ b/apps/website/tailwind.config.js @@ -0,0 +1,18 @@ +const {createGlobPatternsForDependencies} = require('@nrwl/react/tailwind'); +const {join} = require('path'); + +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + join( + __dirname, + '{src,pages,components}/**/*!(*.stories|*.spec).{ts,tsx,html}' + ), + ...createGlobPatternsForDependencies(__dirname), + ], + theme: { + extend: {}, + }, + plugins: [], + darkMode: 'class' +}; diff --git a/package.json b/package.json index 71fcec6..5f08ee2 100644 --- a/package.json +++ b/package.json @@ -16,9 +16,9 @@ "build:client:staging": "npm run build client -- --configuration staging", "build:client:production": "npm run build client -- --configuration production", "start:website": "nx serve website", - "build:website:development": "npm run build website -- --configuration development --verbose", - "build:website:staging": "npm run build website -- --configuration staging", - "build:website:production": "npm run build website -- --configuration production", + "build:website:development": "nx build website --configuration development --verbose", + "build:website:staging": "nx build website --configuration staging", + "build:website:production": "nx build website --configuration production", "start": "nx serve", "build": "nx build", "test": "nx test" diff --git a/scripts/strapi/build-staging.js b/scripts/strapi/build-staging.js index c9b04e8..d6ae3cd 100644 --- a/scripts/strapi/build-staging.js +++ b/scripts/strapi/build-staging.js @@ -2,8 +2,8 @@ const fs = require('fs'); const fse = require('fs-extra'); const path = require('path'); -fse.copySync(path.join(__dirname, '..', '..', 'apps/backend/public'), path.join(__dirname, '..', '..', 'dist/backend/public')); -fs.copyFileSync(path.join(__dirname, '..', '..', 'apps/backend/.env.staging'), path.join(__dirname, '..', '..', 'dist/backend/.env')); -fs.copyFileSync(path.join(__dirname, 'sources/server.js'), path.join(__dirname, '..', '..', 'dist/backend/server.js')); -fs.copyFileSync(path.join(__dirname, 'sources/package.json'), path.join(__dirname, '..', '..', 'dist/backend/package.json')); -fs.copyFileSync(path.join(__dirname, 'sources/.strapi-updater.json'), path.join(__dirname, '..', '..', 'dist/backend/.strapi-updater.json')); +fse.copySync(path.join(__dirname, '..', '..', 'apps/backend/public'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/public')); +fs.copyFileSync(path.join(__dirname, '..', '..', 'apps/backend/.env.staging'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/.env')); +fs.copyFileSync(path.join(__dirname, 'sources/server.js'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/server.js')); +fs.copyFileSync(path.join(__dirname, 'sources/package.json'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/package.json')); +fs.copyFileSync(path.join(__dirname, 'sources/.strapi-updater.json'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/.strapi-updater.json')); diff --git a/scripts/website/build-staging.js b/scripts/website/build-staging.js new file mode 100644 index 0000000..b25a098 --- /dev/null +++ b/scripts/website/build-staging.js @@ -0,0 +1,5 @@ +const fs = require('fs'); +const fse = require('fs-extra'); +const path = require('path'); + +fs.copyFileSync(path.join(__dirname, 'sources/server.js'), path.join(__dirname, '..', '..', 'dist/apps/website/server.js')); diff --git a/scripts/server.js b/scripts/website/sources/server.js similarity index 100% rename from scripts/server.js rename to scripts/website/sources/server.js