diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..473e451 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[{package.json,*.yml}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..f1f7330 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +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/.env.local b/.env.local new file mode 100644 index 0000000..f250707 --- /dev/null +++ b/.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/.env.prod b/.env.prod new file mode 100644 index 0000000..e3da7e3 --- /dev/null +++ b/.env.prod @@ -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=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! +SMTP_DEFAULT_FROM=no-reply@strapi.io +SMTP_DEFAULT_REPLY=synology@naser.fr diff --git a/.env.staging b/.env.staging new file mode 100644 index 0000000..6f1c7fd --- /dev/null +++ b/.env.staging @@ -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=3306 +MYSQL_DATABASE_NAME=dpxtrufj_gs_database +MYSQL_DATABASE_USERNAME=dpxtrufj_gs_user +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! +SMTP_DEFAULT_FROM=no-reply@nasercloud.fr +SMTP_DEFAULT_REPLY=contact@nasercloud.fr diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..90759a5 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +.cache +build +**/node_modules/** diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..b2ca93b --- /dev/null +++ b/.eslintrc @@ -0,0 +1,27 @@ +{ + "parser": "babel-eslint", + "extends": "eslint:recommended", + "env": { + "commonjs": true, + "es6": true, + "node": true, + "browser": false + }, + "parserOptions": { + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "jsx": false + }, + "sourceType": "module" + }, + "globals": { + "strapi": true + }, + "rules": { + "indent": ["error", 2, { "SwitchCase": 1 }], + "linebreak-style": ["error", "unix"], + "no-console": 0, + "quotes": ["error", "single"], + "semi": ["error", "always"] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2ed5eaf --- /dev/null +++ b/.gitignore @@ -0,0 +1,115 @@ +############################ +# OS X +############################ + +.DS_Store +.AppleDouble +.LSOverride +Icon +.Spotlight-V100 +.Trashes +._* + + +############################ +# Linux +############################ + +*~ + + +############################ +# Windows +############################ + +Thumbs.db +ehthumbs.db +Desktop.ini +$RECYCLE.BIN/ +*.cab +*.msi +*.msm +*.msp + + +############################ +# Packages +############################ + +*.7z +*.csv +*.dat +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip +*.com +*.class +*.dll +*.exe +*.o +*.seed +*.so +*.swo +*.swp +*.swn +*.swm +*.out +*.pid + + +############################ +# Logs and databases +############################ + +.tmp +*.log +*.sql +*.sqlite +*.sqlite3 + + +############################ +# Misc. +############################ + +*# +ssl +.idea +nbproject +public/uploads/* +!public/uploads/.gitkeep + +############################ +# Node.js +############################ + +lib-cov +lcov.info +pids +logs +results +node_modules +.node_history + +############################ +# Tests +############################ + +testApp +coverage + +############################ +# Strapi +############################ + +.env +license.txt +exports +*.cache +dist +build +.strapi-updater.json diff --git a/config/admin.ts b/config/admin.ts new file mode 100644 index 0000000..f26fdae --- /dev/null +++ b/config/admin.ts @@ -0,0 +1,8 @@ +export default ({ env }) => ({ + auth: { + secret: env('ADMIN_JWT_SECRET'), + }, + apiToken: { + salt: env('API_TOKEN_SALT'), + }, +}); diff --git a/config/api.ts b/config/api.ts new file mode 100644 index 0000000..cebc9f3 --- /dev/null +++ b/config/api.ts @@ -0,0 +1,10 @@ +export default { + responses: { + privateAttributes: ['_v', 'id', 'created_at'], + }, + rest: { + defaultLimit: 100, + maxLimit: 250, + withCount: true, + }, +}; diff --git a/config/database.ts b/config/database.ts new file mode 100644 index 0000000..373dcbc --- /dev/null +++ b/config/database.ts @@ -0,0 +1,20 @@ +export default ({env}) => ({ + connection: { + client: 'mysql', + connection: { + 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, + }, + // connection: { + // client: 'sqlite', + // connection: { + // filename: path.join(__dirname, '..', '..', env('DATABASE_FILENAME', '.tmp/data.db')), + // }, + // useNullAsDefault: true, + // }, +}); diff --git a/config/middlewares.ts b/config/middlewares.ts new file mode 100644 index 0000000..3ab20d9 --- /dev/null +++ b/config/middlewares.ts @@ -0,0 +1,12 @@ +export default [ + 'strapi::errors', + 'strapi::security', + 'strapi::cors', + 'strapi::poweredBy', + 'strapi::logger', + 'strapi::query', + 'strapi::body', + 'strapi::session', + 'strapi::favicon', + 'strapi::public', +]; diff --git a/config/plugins.ts b/config/plugins.ts new file mode 100644 index 0000000..b771d3a --- /dev/null +++ b/config/plugins.ts @@ -0,0 +1,25 @@ +module.exports = ({env}) => ({ + // ... + email: { + config: { + provider: 'nodemailer', + providerOptions: { + host: env('SMTP_HOST', 'smtp.example.com'), + port: env('SMTP_PORT', 587), + auth: { + user: env('SMTP_USERNAME'), + pass: env('SMTP_PASSWORD'), + }, + // ... any custom nodemailer options + }, + settings: { + defaultFrom: env('SMTP_DEFAULT_FROM', 'no-reply@strapi.io'), + defaultReplyTo: env('SMTP_DEFAULT_REPLY', 'synology@naser.fr'), + }, + }, + }, + 'import-export-entries': { + enabled: true + } + // ... +}); diff --git a/config/server.ts b/config/server.ts new file mode 100644 index 0000000..31c8997 --- /dev/null +++ b/config/server.ts @@ -0,0 +1,7 @@ +export default ({ env }) => ({ + host: env('HOST', '0.0.0.0'), + port: env.int('PORT', 1337), + app: { + keys: env.array('APP_KEYS'), + }, +}); diff --git a/mysql.yml b/mysql.yml new file mode 100644 index 0000000..462ea3c --- /dev/null +++ b/mysql.yml @@ -0,0 +1,20 @@ +services: + gs_mysql: + image: 'mariadb:10.3' + environment: + MYSQL_DATABASE: ${MYSQL_DATABASE_NAME} + # So you don't have to use root, but you can if you like + MYSQL_USER: ${MYSQL_DATABASE_USERNAME} + # You can use whatever password you like + MYSQL_PASSWORD: ${MYSQL_DATABASE_PASSWORD} + # Password for root access + MYSQL_ROOT_PASSWORD: ${MYSQL_DATABASE_ROOT_PASSWORD} + ports: + # : < MySQL Port running inside container> + - '${MYSQL_DATABASE_PORT}:3306' + expose: + # Opens port 3306 on the container + - '${MYSQL_DATABASE_PORT}' + # Where our data will be persisted + volumes: + - gs_mariadb-master:/var/lib/mysql diff --git a/package-lock.json b/package-lock.json index a6fbd3c..2fe6689 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,15 @@ "dependencies": { "@strapi/plugin-i18n": "4.6.0", "@strapi/plugin-users-permissions": "4.6.0", + "@strapi/provider-email-nodemailer": "4.5.6", "@strapi/strapi": "4.6.0", - "better-sqlite3": "7.4.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" }, "devDependencies": {}, "engines": { @@ -2465,6 +2472,19 @@ "tslib": "^2.1.0" } }, + "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", @@ -2598,6 +2618,31 @@ "@lezer/common": "^1.0.0" } }, + "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", @@ -2740,6 +2785,14 @@ "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-3.0.1.tgz", "integrity": "sha512-XjDVbs3ZU16CO1h5Q3Ew2RPJqmZBDE/EVf1LYp6ePEffs3V/MX9ZbL5bJr8qiK5SbGmUMuDoaFgyKacYz8prRA==" }, + "node_modules/@remix-run/router": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.3.1.tgz", + "integrity": "sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw==", + "engines": { + "node": ">=14" + } + }, "node_modules/@rushstack/ts-command-line": { "version": "4.13.1", "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.13.1.tgz", @@ -2863,6 +2916,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", @@ -3033,6 +3104,22 @@ "@strapi/strapi": "^4.3.4" } }, + "node_modules/@strapi/admin/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, "node_modules/@strapi/admin/node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -3196,6 +3283,23 @@ "which": "bin/which" } }, + "node_modules/@strapi/admin/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/babel-plugin-switch-ee-ce": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/babel-plugin-switch-ee-ce/-/babel-plugin-switch-ee-ce-4.6.0.tgz", @@ -3477,6 +3581,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/generators/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/generators/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/helper-plugin": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/helper-plugin/-/helper-plugin-4.6.0.tgz", @@ -3545,6 +3682,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/permissions/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/permissions/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/plugin-content-manager": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/plugin-content-manager/-/plugin-content-manager-4.6.0.tgz", @@ -3559,6 +3729,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/plugin-content-manager/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/plugin-content-manager/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/plugin-content-type-builder": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/plugin-content-type-builder/-/plugin-content-type-builder-4.6.0.tgz", @@ -3586,6 +3789,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/plugin-content-type-builder/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/plugin-content-type-builder/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/plugin-email": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/plugin-email/-/plugin-email-4.6.0.tgz", @@ -3600,6 +3836,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/plugin-email/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/plugin-email/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/plugin-i18n": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/plugin-i18n/-/plugin-i18n-4.6.0.tgz", @@ -3613,6 +3882,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/plugin-i18n/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/plugin-i18n/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/plugin-upload": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/plugin-upload/-/plugin-upload-4.6.0.tgz", @@ -3644,6 +3946,22 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/plugin-upload/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, "node_modules/@strapi/plugin-upload/node_modules/immer": { "version": "9.0.15", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", @@ -3653,6 +3971,23 @@ "url": "https://opencollective.com/immer" } }, + "node_modules/@strapi/plugin-upload/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/plugin-users-permissions": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/plugin-users-permissions/-/plugin-users-permissions-4.6.0.tgz", @@ -3682,6 +4017,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/plugin-users-permissions/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/plugin-users-permissions/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/provider-audit-logs-local": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/provider-audit-logs-local/-/provider-audit-logs-local-4.6.0.tgz", @@ -3691,6 +4059,19 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/provider-email-nodemailer": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/@strapi/provider-email-nodemailer/-/provider-email-nodemailer-4.5.6.tgz", + "integrity": "sha512-Tpv0WL4BTYyXXY5eMt6pwnMdwVb3RrDPjRH9BA7LHYAfAQCk4wy/7uWoHJYPoQG3qvwkNihWkMjdcb3cL52n6A==", + "dependencies": { + "lodash": "4.17.21", + "nodemailer": "6.8.0" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, "node_modules/@strapi/provider-email-sendmail": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/provider-email-sendmail/-/provider-email-sendmail-4.6.0.tgz", @@ -3704,6 +4085,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/provider-email-sendmail/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/provider-email-sendmail/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/provider-upload-local": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/provider-upload-local/-/provider-upload-local-4.6.0.tgz", @@ -3717,6 +4131,39 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/provider-upload-local/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, + "node_modules/@strapi/provider-upload-local/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@strapi/strapi": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@strapi/strapi/-/strapi-4.6.0.tgz", @@ -3786,6 +4233,22 @@ "npm": ">=6.0.0" } }, + "node_modules/@strapi/strapi/node_modules/@strapi/utils": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", + "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "dependencies": { + "@sindresorhus/slugify": "1.1.0", + "date-fns": "2.29.3", + "http-errors": "1.8.1", + "lodash": "4.17.21", + "yup": "0.32.9" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + } + }, "node_modules/@strapi/strapi/node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -3832,7 +4295,24 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "engines": { - "node": ">= 0.6" + "node": ">= 0.6" + } + }, + "node_modules/@strapi/strapi/node_modules/yup": { + "version": "0.32.9", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", + "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", + "dependencies": { + "@babel/runtime": "^7.10.5", + "@types/lodash": "^4.14.165", + "lodash": "^4.17.20", + "lodash-es": "^4.17.15", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/@strapi/typescript-utils": { @@ -3866,9 +4346,9 @@ } }, "node_modules/@strapi/utils": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.6.0.tgz", - "integrity": "sha512-zJfcGVlGLVGTs4Lc5OH+g4vO/+MD5UA6DzMzlSvJ1gsObYpA/a+IMRIMG90nfEKZ9R52LLdaYyGU8ALzxulEmQ==", + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/@strapi/utils/-/utils-4.5.6.tgz", + "integrity": "sha512-kSu7AIoJm0q6uQxiS94FA8huQ0VIvd4B38hDRZLv/BKEOORgfDTflxyxCOW1YIrvuCzJunWC2oZGCphOjMH8jQ==", "dependencies": { "@sindresorhus/slugify": "1.1.0", "date-fns": "2.29.3", @@ -5111,6 +5591,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", @@ -5150,6 +5638,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", @@ -5452,6 +5945,14 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "engines": { + "node": ">=4" + } + }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -6577,6 +7078,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", @@ -9698,6 +10215,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", @@ -9778,6 +10300,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", @@ -10915,6 +11449,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", @@ -11044,6 +11595,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", @@ -11328,6 +11925,14 @@ "node": ">=6" } }, + "node_modules/nodemailer": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.8.0.tgz", + "integrity": "sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/nodemailer-fetch": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", @@ -11770,6 +12375,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -12058,11 +12668,80 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, + "node_modules/pg": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", + "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.2", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, "node_modules/pg-connection-string": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.2.tgz", + "integrity": "sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "^4.1.0" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -12523,6 +13202,41 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/prebuild-install": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", @@ -12938,6 +13652,15 @@ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, + "node_modules/react-flip-move": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/react-flip-move/-/react-flip-move-3.0.5.tgz", + "integrity": "sha512-Mf4XpbkUNZy9eu80iXXFIjToDvw+bnHxmKHVoositbMpV87O/EQswnXUqVovRHoTx/F+4dE+p//PyJnAT7OtPA==", + "peerDependencies": { + "react": ">=16.3.x", + "react-dom": ">=16.3.x" + } + }, "node_modules/react-helmet": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", @@ -13132,6 +13855,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", @@ -14548,11 +15287,27 @@ "node": ">=0.10.0" } }, + "node_modules/split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "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", @@ -14590,6 +15345,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", @@ -14691,6 +15451,141 @@ "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", + "integrity": "sha512-r/vHYAZ/efZ4TyhsTTydX7d9w30ZoX5TdU6ojj8ze4CpkJw9yiyVlML5UKe+VVqADkOCgxAfcpUau+/vZpVQsg==", + "dependencies": { + "axios": "^0.27.2", + "lodash": "4.17.21", + "prop-types": "^15.8.1", + "qs": "^6.10.3", + "react": "^17.0.2", + "react-flip-move": "^3.0.4", + "react-intl": "^5.24.6", + "react-query": "^3.34.15", + "react-redux": "^7.2.6", + "react-router-dom": "^6.2.1", + "react-select": "^5.2.2", + "styled-components": "^5.3.3" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + }, + "peerDependencies": { + "@strapi/design-system": "^1.4.0", + "@strapi/helper-plugin": "^4.5.6", + "@strapi/icons": "^1.4.0", + "@strapi/strapi": "^4.5.6", + "@strapi/utils": "^4.5.6", + "formik": "^2.2.9" + } + }, + "node_modules/strapi-plugin-menus/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/strapi-plugin-menus/node_modules/match-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", + "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "remove-accents": "0.4.2" + } + }, + "node_modules/strapi-plugin-menus/node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/strapi-plugin-menus/node_modules/react-router-dom": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.8.0.tgz", + "integrity": "sha512-hQouduSTywGJndE86CXJ2h7YEy4HYC6C/uh19etM+79FfQ6cFFFHnHyDlzO4Pq0eBUI96E4qVE5yUjA00yJZGQ==", + "dependencies": { + "@remix-run/router": "1.3.1", + "react-router": "6.8.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/strapi-plugin-menus/node_modules/react-router-dom/node_modules/react-router": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.8.0.tgz", + "integrity": "sha512-760bk7y3QwabduExtudhWbd88IBbuD1YfwzpuDUAlJUJ7laIIcqhMvdhSVh1Fur1PE8cGl84L0dxhR3/gvHF7A==", + "dependencies": { + "@remix-run/router": "1.3.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/strapi-plugin-populate-deep": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strapi-plugin-populate-deep/-/strapi-plugin-populate-deep-1.1.2.tgz", + "integrity": "sha512-fKw1BMRpdWbi1D+E0Yq08lZFxrTHgdPQ2P5jKEuXEE5YHvHiepSHVQtymDJGQ3WRWierem8ZBpnz2nl6iRx8Gw==", + "engines": { + "node": ">=12.x.x <=16.x.x", + "npm": ">=6.0.0" + } + }, "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", @@ -14803,6 +15698,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", @@ -16403,23 +17309,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/yup": { - "version": "0.32.11", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", - "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/lodash": "^4.14.175", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - }, - "engines": { - "node": ">=10" - } } } } diff --git a/package.json b/package.json index 5ec49a3..d235a24 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,14 @@ "@strapi/strapi": "4.6.0", "@strapi/plugin-users-permissions": "4.6.0", "@strapi/plugin-i18n": "4.6.0", - "better-sqlite3": "7.4.6" + "better-sqlite3": "7.4.6", + "@strapi/provider-email-nodemailer": "4.5.6", + "@strapi/utils": "4.5.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" diff --git a/postgres.yml b/postgres.yml new file mode 100644 index 0000000..432ed1b --- /dev/null +++ b/postgres.yml @@ -0,0 +1,20 @@ +services: + gs_postgres: + image: postgres:14-alpine + container_name: gs_postgres + shm_size: '4gb' + environment: + POSTGRES_USER: ${DATABASE_USERNAME} + POSTGRES_PASSWORD: ${DATABASE_PASSWORD} + POSTGRES_DB: ${DATABASE_NAME} + TZ: Europe/Paris + healthcheck: + test: 'PGPASSWORD="${DATABASE_PASSWORD}" psql --host ${DATABASE_HOST} --username ${DATABASE_USERNAME} --dbname ${DATABASE_NAME} -c "select 1" ; [ "0" -eq "$$?" ]; echo $$?' + interval: 30s + timeout: 10s + retries: 3 + volumes: + - gs_postgres-master:/var/lib/postgresql/data:z + - ./.db/init:/docker-entrypoint-initdb.d + ports: + - ${DATABASE_PORT}:5432 # DB diff --git a/src/admin/app.example.tsx b/src/admin/app.example.tsx new file mode 100644 index 0000000..7316221 --- /dev/null +++ b/src/admin/app.example.tsx @@ -0,0 +1,35 @@ +export default { + config: { + locales: [ + // 'ar', + // 'fr', + // 'cs', + // 'de', + // 'dk', + // 'es', + // 'he', + // 'id', + // 'it', + // 'ja', + // 'ko', + // 'ms', + // 'nl', + // 'no', + // 'pl', + // 'pt-BR', + // 'pt', + // 'ru', + // 'sk', + // 'sv', + // 'th', + // 'tr', + // 'uk', + // 'vi', + // 'zh-Hans', + // 'zh', + ], + }, + bootstrap(app) { + console.log(app); + }, +}; diff --git a/src/admin/tsconfig.json b/src/admin/tsconfig.json new file mode 100644 index 0000000..9be5078 --- /dev/null +++ b/src/admin/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@strapi/typescript-utils/tsconfigs/admin", + "include": [ + "../plugins/**/admin/src/**/*", + "./" + ], + "exclude": [ + "node_modules/", + "build/", + "dist/", + "**/*.test.ts" + ] +} diff --git a/src/admin/webpack.config.example.js b/src/admin/webpack.config.example.js index 1ca45c2..b42dfe6 100644 --- a/src/admin/webpack.config.example.js +++ b/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/src/api/page/content-types/page/schema.json b/src/api/page/content-types/page/schema.json new file mode 100644 index 0000000..04076af --- /dev/null +++ b/src/api/page/content-types/page/schema.json @@ -0,0 +1,32 @@ +{ + "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": [] + } + } +} diff --git a/src/api/page/controllers/page.ts b/src/api/page/controllers/page.ts new file mode 100644 index 0000000..f513618 --- /dev/null +++ b/src/api/page/controllers/page.ts @@ -0,0 +1,7 @@ +/** + * page controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::page.page'); diff --git a/src/api/page/routes/page.ts b/src/api/page/routes/page.ts new file mode 100644 index 0000000..8e5ddfc --- /dev/null +++ b/src/api/page/routes/page.ts @@ -0,0 +1,7 @@ +/** + * page router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::page.page'); diff --git a/src/api/page/services/page.ts b/src/api/page/services/page.ts new file mode 100644 index 0000000..eaf07ff --- /dev/null +++ b/src/api/page/services/page.ts @@ -0,0 +1,7 @@ +/** + * page service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::page.page'); diff --git a/src/api/username/controllers/username.ts b/src/api/username/controllers/username.ts new file mode 100644 index 0000000..645f7df --- /dev/null +++ b/src/api/username/controllers/username.ts @@ -0,0 +1,17 @@ +/** + * A set of functions called "actions" for `username` + */ + +export default { + findOne: async (ctx, next) => { + try { + const data = await strapi + .service("api::username.username") + .findUsername(ctx.params.username); + + ctx.body = data; + } catch (err) { + ctx.badRequest("Post report controller error", {moreDetails: err}); + } + } +}; diff --git a/src/api/username/routes/username.ts b/src/api/username/routes/username.ts new file mode 100644 index 0000000..3f978ba --- /dev/null +++ b/src/api/username/routes/username.ts @@ -0,0 +1,13 @@ +export default { + routes: [ + { + method: 'GET', + path: '/username/:username', + handler: 'username.findOne', + config: { + policies: [], + middlewares: [], + }, + }, + ], +}; diff --git a/src/api/username/services/username.ts b/src/api/username/services/username.ts new file mode 100644 index 0000000..684bda5 --- /dev/null +++ b/src/api/username/services/username.ts @@ -0,0 +1,18 @@ +/** + * username service + */ + +export default () => ({ + findUsername: async (username) => { + try { + console.log(username); + let users = await strapi.entityService.findMany( + "plugin::users-permissions.user", {filters: {email: username}} + ); + + return users.length !== 0; + } catch (err) { + return err; + } + } +}); diff --git a/src/components/meta/meta.json b/src/components/meta/meta.json new file mode 100644 index 0000000..cb9ba70 --- /dev/null +++ b/src/components/meta/meta.json @@ -0,0 +1,16 @@ +{ + "collectionName": "components_meta_metas", + "info": { + "displayName": "meta", + "icon": "network-wired" + }, + "options": {}, + "attributes": { + "property": { + "type": "string" + }, + "content": { + "type": "string" + } + } +} diff --git a/src/components/shared/seo.json b/src/components/shared/seo.json new file mode 100644 index 0000000..a4a386a --- /dev/null +++ b/src/components/shared/seo.json @@ -0,0 +1,36 @@ +{ + "collectionName": "components_shared_seos", + "info": { + "displayName": "Seo", + "icon": "book", + "description": "" + }, + "options": {}, + "attributes": { + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "text" + }, + "SharedImage": { + "displayName": "SharedImage", + "type": "component", + "repeatable": false, + "component": "shared.shared-image" + }, + "Meta": { + "displayName": "meta", + "type": "component", + "repeatable": true, + "component": "meta.meta" + }, + "preventIndexing": { + "type": "boolean", + "default": false + }, + "structuredData": { + "type": "json" + } + } +} diff --git a/src/components/shared/shared-image.json b/src/components/shared/shared-image.json new file mode 100644 index 0000000..4424287 --- /dev/null +++ b/src/components/shared/shared-image.json @@ -0,0 +1,24 @@ +{ + "collectionName": "components_shared_shared_images", + "info": { + "displayName": "SharedImage", + "icon": "file-image", + "description": "" + }, + "options": {}, + "attributes": { + "alt": { + "type": "string" + }, + "media": { + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ], + "type": "media", + "multiple": false + } + } +} diff --git a/src/extensions/users-permissions/content-types/user/schema.json b/src/extensions/users-permissions/content-types/user/schema.json new file mode 100644 index 0000000..6e52bd6 --- /dev/null +++ b/src/extensions/users-permissions/content-types/user/schema.json @@ -0,0 +1,79 @@ +{ + "kind": "collectionType", + "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 + } + } +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..9fca261 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,18 @@ +export default { + /** + * An asynchronous register function that runs before + * your application is initialized. + * + * This gives you an opportunity to extend code. + */ + register(/*{ strapi }*/) {}, + + /** + * An asynchronous bootstrap function that runs before + * your application gets started. + * + * This gives you an opportunity to set up your data model, + * run jobs, or perform some special logic. + */ + bootstrap(/*{ strapi }*/) {}, +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..3f3ccfe --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "@strapi/typescript-utils/tsconfigs/server", + "compilerOptions": { + "outDir": "../../dist/apps/backend/dist", + "rootDir": "." + }, + "include": [ + "./", + "./**/*.ts", + "./**/*.js", + "src/**/*.json" + ], + "exclude": [ + "node_modules/", + "build/", + "dist/", + ".cache/", + ".tmp/", + "src/admin/", + "**/*.test.*", + "src/plugins/**" + ] +}