From 528a56d4e9ee809edfc1e1fc0bdd8c9bbbe46c8d Mon Sep 17 00:00:00 2001 From: soupette Date: Wed, 8 Sep 2021 10:25:15 +0200 Subject: [PATCH] Add kitchensink app Signed-off-by: soupette --- examples/getstarted/admin/app.js | 31 +---- examples/kitchensink/.editorconfig | 16 +++ examples/kitchensink/.env.example | 2 + examples/kitchensink/.eslintignore | 3 + examples/kitchensink/.eslintrc | 27 +++++ examples/kitchensink/.gitignore | 114 ++++++++++++++++++ examples/kitchensink/README.md | 3 + examples/kitchensink/admin/app.js | 71 +++++++++++ examples/kitchensink/admin/webpack.config.js | 9 ++ examples/kitchensink/api/.gitkeep | 0 examples/kitchensink/config/api.js | 7 ++ examples/kitchensink/config/database.js | 39 ++++++ .../kitchensink/config/functions/bootstrap.js | 13 ++ examples/kitchensink/config/functions/cron.js | 21 ++++ .../config/functions/responses/404.js | 5 + examples/kitchensink/config/server.js | 9 ++ examples/kitchensink/extensions/.gitkeep | 0 examples/kitchensink/favicon.ico | Bin 0 -> 3688 bytes examples/kitchensink/package.json | 40 ++++++ examples/kitchensink/public/robots.txt | 3 + examples/kitchensink/public/uploads/.gitkeep | 0 21 files changed, 383 insertions(+), 30 deletions(-) create mode 100644 examples/kitchensink/.editorconfig create mode 100644 examples/kitchensink/.env.example create mode 100644 examples/kitchensink/.eslintignore create mode 100644 examples/kitchensink/.eslintrc create mode 100644 examples/kitchensink/.gitignore create mode 100644 examples/kitchensink/README.md create mode 100644 examples/kitchensink/admin/app.js create mode 100644 examples/kitchensink/admin/webpack.config.js create mode 100644 examples/kitchensink/api/.gitkeep create mode 100644 examples/kitchensink/config/api.js create mode 100644 examples/kitchensink/config/database.js create mode 100644 examples/kitchensink/config/functions/bootstrap.js create mode 100644 examples/kitchensink/config/functions/cron.js create mode 100644 examples/kitchensink/config/functions/responses/404.js create mode 100644 examples/kitchensink/config/server.js create mode 100644 examples/kitchensink/extensions/.gitkeep create mode 100644 examples/kitchensink/favicon.ico create mode 100644 examples/kitchensink/package.json create mode 100644 examples/kitchensink/public/robots.txt create mode 100644 examples/kitchensink/public/uploads/.gitkeep diff --git a/examples/getstarted/admin/app.js b/examples/getstarted/admin/app.js index 7aa7ab438e..bcd08f160f 100644 --- a/examples/getstarted/admin/app.js +++ b/examples/getstarted/admin/app.js @@ -1,33 +1,4 @@ -// import MyCompo from './extensions/MyCompo'; - export default { - config: { - // Leaving this commented on purpose - // auth: { - // logo: - // 'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80', - // }, - // head: { - // favicon: - // 'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80', - // title: 'Strapi', - // }, - // locales: ['fr', 'toto'], - // menu: { - // logo: null, - // }, - // theme: { - // main: { - // colors: { ok: 't' }, - // }, - // }, - // translations: { - // fr: { - // 'Auth.form.email.label': 'test', - // }, - // }, - // tutorials: false, - // notifications: { release: false }, - }, + config: {}, bootstrap() {}, }; diff --git a/examples/kitchensink/.editorconfig b/examples/kitchensink/.editorconfig new file mode 100644 index 0000000000..473e45184b --- /dev/null +++ b/examples/kitchensink/.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/examples/kitchensink/.env.example b/examples/kitchensink/.env.example new file mode 100644 index 0000000000..b667b6c4a1 --- /dev/null +++ b/examples/kitchensink/.env.example @@ -0,0 +1,2 @@ +HOST=0.0.0.0 +PORT=1337 diff --git a/examples/kitchensink/.eslintignore b/examples/kitchensink/.eslintignore new file mode 100644 index 0000000000..90759a584c --- /dev/null +++ b/examples/kitchensink/.eslintignore @@ -0,0 +1,3 @@ +.cache +build +**/node_modules/** diff --git a/examples/kitchensink/.eslintrc b/examples/kitchensink/.eslintrc new file mode 100644 index 0000000000..b2ca93b1a5 --- /dev/null +++ b/examples/kitchensink/.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/examples/kitchensink/.gitignore b/examples/kitchensink/.gitignore new file mode 100644 index 0000000000..8e339ee395 --- /dev/null +++ b/examples/kitchensink/.gitignore @@ -0,0 +1,114 @@ +############################ +# 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 +build +.strapi-updater.json diff --git a/examples/kitchensink/README.md b/examples/kitchensink/README.md new file mode 100644 index 0000000000..4d901a095d --- /dev/null +++ b/examples/kitchensink/README.md @@ -0,0 +1,3 @@ +# Strapi application + +A quick description of your strapi application diff --git a/examples/kitchensink/admin/app.js b/examples/kitchensink/admin/app.js new file mode 100644 index 0000000000..5d567ffb2a --- /dev/null +++ b/examples/kitchensink/admin/app.js @@ -0,0 +1,71 @@ +export default { + config: { + auth: { + logo: + 'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80', + }, + head: { + favicon: + 'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80', + title: 'Strapi test', + }, + locales: ['fr', 'de'], + menu: { + logo: + 'https://images.unsplash.com/photo-1593642634367-d91a135587b5?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=750&q=80', + }, + theme: { + colors: { + alternative100: '#f6ecfc', + alternative200: '#e0c1f4', + alternative500: '#ac73e6', + alternative600: '#9736e8', + alternative700: '#8312d1', + danger100: '#fcecea', + danger200: '#f5c0b8', + danger500: '#ee5e52', + danger600: '#d02b20', + danger700: '#b72b1a', + neutral0: 'black', + neutral100: '#f6f6f9', + neutral150: '#eaeaef', + neutral200: '#dcdce4', + neutral300: '#c0c0cf', + neutral400: '#a5a5ba', + neutral500: '#8e8ea9', + neutral600: '#666687', + neutral700: '#4a4a6a', + neutral800: '#32324d', + neutral900: '#212134', + primary100: '#f0f0ff', + primary200: '#d9d8ff', + primary500: '#7b79ff', + primary600: '#4945ff', + primary700: '#271fe0', + secondary100: '#eaf5ff', + secondary200: '#b8e1ff', + secondary500: '#66b7f1', + secondary600: '#0c75af', + secondary700: '#006096', + success100: '#eafbe7', + success200: '#c6f0c2', + success500: '#5cb176', + success600: '#328048', + success700: '#2f6846', + warning100: '#fdf4dc', + warning200: '#fae7b9', + warning500: '#f29d41', + warning600: '#d9822f', + warning700: '#be5d01', + }, + }, + translations: { + fr: { + 'Auth.form.email.label': 'test', + }, + }, + tutorials: false, + notifications: { release: false }, + }, + bootstrap() {}, +}; diff --git a/examples/kitchensink/admin/webpack.config.js b/examples/kitchensink/admin/webpack.config.js new file mode 100644 index 0000000000..1ca45c2166 --- /dev/null +++ b/examples/kitchensink/admin/webpack.config.js @@ -0,0 +1,9 @@ +'use strict'; + +/* 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 + return config; +}; diff --git a/examples/kitchensink/api/.gitkeep b/examples/kitchensink/api/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/kitchensink/config/api.js b/examples/kitchensink/config/api.js new file mode 100644 index 0000000000..62f8b65c4c --- /dev/null +++ b/examples/kitchensink/config/api.js @@ -0,0 +1,7 @@ +module.exports = { + rest: { + defaultLimit: 25, + maxLimit: 100, + withCount: true, + }, +}; diff --git a/examples/kitchensink/config/database.js b/examples/kitchensink/config/database.js new file mode 100644 index 0000000000..d78eb0ebc8 --- /dev/null +++ b/examples/kitchensink/config/database.js @@ -0,0 +1,39 @@ +const sqlite = { + client: 'sqlite', + connection: { + filename: '.tmp/data.db', + }, + useNullAsDefault: true, +}; + +const postgres = { + client: 'postgres', + connection: { + database: 'strapi', + user: 'strapi', + password: 'strapi', + port: 5432, + host: 'localhost', + }, +}; + +const mysql = { + client: 'mysql', + connection: { + database: 'strapi', + user: 'strapi', + password: 'strapi', + port: 3306, + host: 'localhost', + }, +}; + +const db = { + mysql, + sqlite, + postgres, +}; + +module.exports = { + connection: process.env.DB ? db[process.env.DB] || db.sqlite : db.sqlite, +}; diff --git a/examples/kitchensink/config/functions/bootstrap.js b/examples/kitchensink/config/functions/bootstrap.js new file mode 100644 index 0000000000..3e3b9c94d3 --- /dev/null +++ b/examples/kitchensink/config/functions/bootstrap.js @@ -0,0 +1,13 @@ +'use strict'; + +/** + * 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. + * + * See more details here: https://strapi.io/documentation/developer-docs/latest/setup-deployment-guides/configurations.html#bootstrap + */ + +module.exports = () => {}; diff --git a/examples/kitchensink/config/functions/cron.js b/examples/kitchensink/config/functions/cron.js new file mode 100644 index 0000000000..fe26854cec --- /dev/null +++ b/examples/kitchensink/config/functions/cron.js @@ -0,0 +1,21 @@ +'use strict'; + +/** + * Cron config that gives you an opportunity + * to run scheduled jobs. + * + * The cron format consists of: + * [SECOND (optional)] [MINUTE] [HOUR] [DAY OF MONTH] [MONTH OF YEAR] [DAY OF WEEK] + * + * See more details here: https://strapi.io/documentation/developer-docs/latest/setup-deployment-guides/configurations.html#cron-tasks + */ + +module.exports = { + /** + * Simple example. + * Every monday at 1am. + */ + // '0 1 * * 1': () => { + // + // } +}; diff --git a/examples/kitchensink/config/functions/responses/404.js b/examples/kitchensink/config/functions/responses/404.js new file mode 100644 index 0000000000..bcbfb078a8 --- /dev/null +++ b/examples/kitchensink/config/functions/responses/404.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = async (/* ctx */) => { + // return ctx.notFound('My custom message 404'); +}; diff --git a/examples/kitchensink/config/server.js b/examples/kitchensink/config/server.js new file mode 100644 index 0000000000..609b2dbe22 --- /dev/null +++ b/examples/kitchensink/config/server.js @@ -0,0 +1,9 @@ +module.exports = ({ env }) => ({ + host: env('HOST', '0.0.0.0'), + port: env.int('PORT', 1337), + admin: { + auth: { + secret: env('ADMIN_JWT_SECRET', 'fb07d090b62789dce667b54ae419850e'), + }, + }, +}); diff --git a/examples/kitchensink/extensions/.gitkeep b/examples/kitchensink/extensions/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/kitchensink/favicon.ico b/examples/kitchensink/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..03eec51b180d0c2500550e83ea5d0b9aead3232d GIT binary patch literal 3688 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 AFaQ7m literal 0 HcmV?d00001 diff --git a/examples/kitchensink/package.json b/examples/kitchensink/package.json new file mode 100644 index 0000000000..8ecbbf3f09 --- /dev/null +++ b/examples/kitchensink/package.json @@ -0,0 +1,40 @@ +{ + "name": "kitchensink", + "private": true, + "version": "3.6.8", + "description": "A Strapi application.", + "scripts": { + "develop": "strapi develop", + "develop:ce": "STRAPI_DISABLE_EE=true strapi develop", + "start": "strapi start", + "build": "strapi build", + "build:ce": "STRAPI_DISABLE_EE=true strapi build", + "strapi": "strapi" + }, + "dependencies": { + "@strapi/admin": "3.6.8", + "@strapi/plugin-documentation": "3.6.8", + "@strapi/plugin-graphql": "3.6.8", + "@strapi/plugin-i18n": "3.6.8", + "@strapi/plugin-users-permissions": "3.6.8", + "@strapi/provider-email-mailgun": "3.6.8", + "@strapi/provider-upload-aws-s3": "3.6.8", + "@strapi/provider-upload-cloudinary": "3.6.8", + "@strapi/strapi": "3.6.8", + "@strapi/utils": "3.6.8", + "lodash": "4.17.21", + "mysql": "2.18.1", + "passport-google-oauth2": "0.2.0", + "pg": "8.6.0", + "sqlite3": "5.0.2", + "strapi-middleware-views": "3.6.8" + }, + "strapi": { + "uuid": "getstarted" + }, + "engines": { + "node": ">=12.x.x <=16.x.x", + "npm": ">=6.0.0" + }, + "license": "SEE LICENSE IN LICENSE" +} diff --git a/examples/kitchensink/public/robots.txt b/examples/kitchensink/public/robots.txt new file mode 100644 index 0000000000..ff5d3164e0 --- /dev/null +++ b/examples/kitchensink/public/robots.txt @@ -0,0 +1,3 @@ +# To prevent search engines from seeing the site altogether, uncomment the next two lines: +# User-Agent: * +# Disallow: / diff --git a/examples/kitchensink/public/uploads/.gitkeep b/examples/kitchensink/public/uploads/.gitkeep new file mode 100644 index 0000000000..e69de29bb2