aboutsummaryrefslogtreecommitdiffhomepage
path: root/app/config
diff options
context:
space:
mode:
Diffstat (limited to 'app/config')
-rw-r--r--app/config/config.yml55
-rw-r--r--app/config/config_dev.yml2
-rw-r--r--app/config/config_prod.yml6
-rw-r--r--app/config/config_test.yml3
-rw-r--r--app/config/parameters.yml.dist16
-rw-r--r--app/config/parameters_test.yml3
-rw-r--r--app/config/security.yml2
-rw-r--r--app/config/services.yml8
-rw-r--r--app/config/tests/parameters_test.mysql.yml1
-rw-r--r--app/config/tests/parameters_test.pgsql.yml1
-rw-r--r--app/config/tests/parameters_test.sqlite.yml5
-rw-r--r--app/config/wallabag.yml162
-rw-r--r--app/config/webpack/common.js40
-rw-r--r--app/config/webpack/dev.js61
-rw-r--r--app/config/webpack/prod.js111
15 files changed, 423 insertions, 53 deletions
diff --git a/app/config/config.yml b/app/config/config.yml
index 77cda052..08da4f8f 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -2,6 +2,12 @@ imports:
2 - { resource: parameters.yml } 2 - { resource: parameters.yml }
3 - { resource: security.yml } 3 - { resource: security.yml }
4 - { resource: services.yml } 4 - { resource: services.yml }
5 - { resource: wallabag.yml }
6
7parameters:
8 # Allows to use the live reload feature for changes in assets
9 use_webpack_dev_server: false
10 craue_config.cache_adapter.class: Craue\ConfigBundle\CacheAdapter\SymfonyCacheComponentAdapter
5 11
6framework: 12framework:
7 #esi: ~ 13 #esi: ~
@@ -10,7 +16,7 @@ framework:
10 fallback: "%locale%" 16 fallback: "%locale%"
11 secret: "%secret%" 17 secret: "%secret%"
12 router: 18 router:
13 resource: "%kernel.root_dir%/config/routing.yml" 19 resource: "%kernel.project_dir%/app/config/routing.yml"
14 strict_requirements: ~ 20 strict_requirements: ~
15 form: ~ 21 form: ~
16 csrf_protection: ~ 22 csrf_protection: ~
@@ -24,45 +30,11 @@ framework:
24 session: 30 session:
25 # handler_id set to null will use default session handler from php.ini 31 # handler_id set to null will use default session handler from php.ini
26 handler_id: session.handler.native_file 32 handler_id: session.handler.native_file
27 save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%" 33 save_path: "%kernel.project_dir%/var/sessions/%kernel.environment%"
28 fragments: ~ 34 fragments: ~
29 http_method_override: true 35 http_method_override: true
30 assets: ~ 36 assets: ~
31 37
32wallabag_core:
33 version: 2.2.3
34 paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
35 languages:
36 en: 'English'
37 fr: 'Français'
38 de: 'Deutsch'
39 tr: 'Türkçe'
40 fa: 'فارسی'
41 ro: 'Română'
42 pl: 'Polish'
43 da: 'Dansk'
44 es: 'Español'
45 oc: 'Occitan'
46 it: 'Italiano'
47 pt: 'Português'
48 items_on_page: 12
49 theme: material
50 language: '%locale%'
51 rss_limit: 50
52 reading_speed: 1
53 cache_lifetime: 10
54 action_mark_as_read: 1
55 list_mode: 1
56 fetching_error_message: |
57 wallabag can't retrieve contents for this article. Please <a href="http://doc.wallabag.org/en/user/errors_during_fetching.html#how-can-i-help-to-fix-that">troubleshoot this issue</a>.
58
59wallabag_user:
60 registration_enabled: "%fosuser_registration%"
61
62wallabag_import:
63 allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain', 'text/csv']
64 resource_dir: "%kernel.root_dir%/../web/uploads/import"
65
66# Twig Configuration 38# Twig Configuration
67twig: 39twig:
68 debug: "%kernel.debug%" 40 debug: "%kernel.debug%"
@@ -100,7 +72,7 @@ stof_doctrine_extensions:
100 sluggable: true 72 sluggable: true
101 73
102doctrine_migrations: 74doctrine_migrations:
103 dir_name: "%kernel.root_dir%/DoctrineMigrations" 75 dir_name: "%kernel.project_dir%/app/DoctrineMigrations"
104 namespace: Application\Migrations 76 namespace: Application\Migrations
105 table_name: migration_versions 77 table_name: migration_versions
106 name: Application Migrations 78 name: Application Migrations
@@ -138,7 +110,7 @@ fos_rest:
138 epub: true 110 epub: true
139 mobi: true 111 mobi: true
140 templating_formats: 112 templating_formats:
141 html: true 113 html: false
142 force_redirects: 114 force_redirects:
143 html: true 115 html: true
144 failed_validation: HTTP_BAD_REQUEST 116 failed_validation: HTTP_BAD_REQUEST
@@ -378,3 +350,10 @@ fos_js_routing:
378 - howto 350 - howto
379 - fos_user_security_logout 351 - fos_user_security_logout
380 - new 352 - new
353
354jms_serializer:
355 handlers:
356 # to be removed if we switch to (default) ISO8601 datetime instead of ATOM
357 # see: https://github.com/schmittjoh/JMSSerializerBundle/pull/494
358 datetime:
359 default_format: "Y-m-d\\TH:i:sO" # ATOM
diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml
index 3b67d8f6..0c490575 100644
--- a/app/config/config_dev.yml
+++ b/app/config/config_dev.yml
@@ -3,7 +3,7 @@ imports:
3 3
4framework: 4framework:
5 router: 5 router:
6 resource: "%kernel.root_dir%/config/routing_dev.yml" 6 resource: "%kernel.project_dir%/app/config/routing_dev.yml"
7 strict_requirements: true 7 strict_requirements: true
8 profiler: 8 profiler:
9 only_exceptions: false 9 only_exceptions: false
diff --git a/app/config/config_prod.yml b/app/config/config_prod.yml
index 5a4dd69e..44e29aac 100644
--- a/app/config/config_prod.yml
+++ b/app/config/config_prod.yml
@@ -1,9 +1,9 @@
1imports: 1imports:
2 - { resource: config.yml } 2 - { resource: config.yml }
3 3
4#framework: 4framework:
5# cache: 5 assets:
6# system: cache.adapter.apcu 6 # json_manifest_path: '%kernel.project_dir%/web/bundles/wallabagcore/manifest.json'
7 7
8#doctrine: 8#doctrine:
9# orm: 9# orm:
diff --git a/app/config/config_test.yml b/app/config/config_test.yml
index f5e2c25e..c620c359 100644
--- a/app/config/config_test.yml
+++ b/app/config/config_test.yml
@@ -29,7 +29,8 @@ doctrine:
29 user: "%test_database_user%" 29 user: "%test_database_user%"
30 password: "%test_database_password%" 30 password: "%test_database_password%"
31 charset: "%test_database_charset%" 31 charset: "%test_database_charset%"
32 path: "%test_database_path%" 32 path: "%env(TEST_DATABASE_PATH)%"
33
33 orm: 34 orm:
34 metadata_cache_driver: 35 metadata_cache_driver:
35 type: service 36 type: service
diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist
index 97f51ed1..b5b97950 100644
--- a/app/config/parameters.yml.dist
+++ b/app/config/parameters.yml.dist
@@ -10,17 +10,20 @@ parameters:
10 # database_user: %env.database_user% 10 # database_user: %env.database_user%
11 # database_password: %env.database_password% 11 # database_password: %env.database_password%
12 12
13 database_driver: pdo_sqlite 13 database_driver: pdo_mysql
14 database_host: 127.0.0.1 14 database_host: 127.0.0.1
15 database_port: ~ 15 database_port: ~
16 database_name: symfony 16 database_name: wallabag
17 database_user: root 17 database_user: root
18 database_password: ~ 18 database_password: ~
19 database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite" 19 # For SQLite, database_path should be "%kernel.project_dir%/data/db/wallabag.sqlite"
20 database_path: null
20 database_table_prefix: wallabag_ 21 database_table_prefix: wallabag_
21 database_socket: null 22 database_socket: null
22 # with MySQL, use "utf8mb4" if you got problem with content with emojis 23 # with PostgreSQL and SQLite, you must set "utf8"
23 database_charset: utf8 24 database_charset: utf8mb4
25
26 domain_name: https://your-wallabag-url-instance.com
24 27
25 mailer_transport: smtp 28 mailer_transport: smtp
26 mailer_host: 127.0.0.1 29 mailer_host: 127.0.0.1
@@ -57,6 +60,3 @@ parameters:
57 redis_port: 6379 60 redis_port: 6379
58 redis_path: null 61 redis_path: null
59 redis_password: null 62 redis_password: null
60
61 # sites credentials
62 sites_credentials: {}
diff --git a/app/config/parameters_test.yml b/app/config/parameters_test.yml
index 5f2e25bb..257d2ace 100644
--- a/app/config/parameters_test.yml
+++ b/app/config/parameters_test.yml
@@ -5,5 +5,6 @@ parameters:
5 test_database_name: null 5 test_database_name: null
6 test_database_user: null 6 test_database_user: null
7 test_database_password: null 7 test_database_password: null
8 test_database_path: '%kernel.root_dir%/../data/db/wallabag_test.sqlite' 8 test_database_path: "%env(TEST_DATABASE_PATH)%"
9 env(TEST_DATABASE_PATH): "%kernel.project_dir%/data/db/wallabag_test.sqlite"
9 test_database_charset: utf8 10 test_database_charset: utf8
diff --git a/app/config/security.yml b/app/config/security.yml
index efb00a53..e14a0bd1 100644
--- a/app/config/security.yml
+++ b/app/config/security.yml
@@ -56,10 +56,12 @@ security:
56 access_control: 56 access_control:
57 - { path: ^/api/doc, roles: IS_AUTHENTICATED_ANONYMOUSLY } 57 - { path: ^/api/doc, roles: IS_AUTHENTICATED_ANONYMOUSLY }
58 - { path: ^/api/version, roles: IS_AUTHENTICATED_ANONYMOUSLY } 58 - { path: ^/api/version, roles: IS_AUTHENTICATED_ANONYMOUSLY }
59 - { path: ^/api/user, roles: IS_AUTHENTICATED_ANONYMOUSLY }
59 - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 60 - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
60 - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 61 - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
61 - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 62 - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
62 - { path: /(unread|starred|archive).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 63 - { path: /(unread|starred|archive).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
64 - { path: /tags/(.*).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
63 - { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY } 65 - { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
64 - { path: ^/settings, roles: ROLE_SUPER_ADMIN } 66 - { path: ^/settings, roles: ROLE_SUPER_ADMIN }
65 - { path: ^/annotations, roles: ROLE_USER } 67 - { path: ^/annotations, roles: ROLE_USER }
diff --git a/app/config/services.yml b/app/config/services.yml
index 9a1ce80b..7b85d846 100644
--- a/app/config/services.yml
+++ b/app/config/services.yml
@@ -42,3 +42,11 @@ services:
42 arguments: ["@session"] 42 arguments: ["@session"]
43 tags: 43 tags:
44 - { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin } 44 - { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
45
46 craue_config_cache_provider:
47 class: Symfony\Component\Cache\Adapter\FilesystemAdapter
48 public: false
49 arguments:
50 - 'craue_config'
51 - 0
52 - '%kernel.cache_dir%'
diff --git a/app/config/tests/parameters_test.mysql.yml b/app/config/tests/parameters_test.mysql.yml
index bca2d466..36b227fb 100644
--- a/app/config/tests/parameters_test.mysql.yml
+++ b/app/config/tests/parameters_test.mysql.yml
@@ -6,4 +6,5 @@ parameters:
6 test_database_user: root 6 test_database_user: root
7 test_database_password: ~ 7 test_database_password: ~
8 test_database_path: ~ 8 test_database_path: ~
9 env(TEST_DATABASE_PATH): ~
9 test_database_charset: utf8mb4 10 test_database_charset: utf8mb4
diff --git a/app/config/tests/parameters_test.pgsql.yml b/app/config/tests/parameters_test.pgsql.yml
index 3e18d4a0..60f51df6 100644
--- a/app/config/tests/parameters_test.pgsql.yml
+++ b/app/config/tests/parameters_test.pgsql.yml
@@ -6,4 +6,5 @@ parameters:
6 test_database_user: travis 6 test_database_user: travis
7 test_database_password: ~ 7 test_database_password: ~
8 test_database_path: ~ 8 test_database_path: ~
9 env(TEST_DATABASE_PATH): ~
9 test_database_charset: utf8 10 test_database_charset: utf8
diff --git a/app/config/tests/parameters_test.sqlite.yml b/app/config/tests/parameters_test.sqlite.yml
index b8a5f41a..2b92d579 100644
--- a/app/config/tests/parameters_test.sqlite.yml
+++ b/app/config/tests/parameters_test.sqlite.yml
@@ -5,5 +5,8 @@ parameters:
5 test_database_name: ~ 5 test_database_name: ~
6 test_database_user: ~ 6 test_database_user: ~
7 test_database_password: ~ 7 test_database_password: ~
8 test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite" 8 # Using an environnement variable in order to avoid the error "attempt to write a readonly database"
9 # when the schema is dropped then recreate
10 test_database_path: "%env(TEST_DATABASE_PATH)%"
11 env(TEST_DATABASE_PATH): "%kernel.project_dir%/data/db/wallabag_test.sqlite"
9 test_database_charset: utf8 12 test_database_charset: utf8
diff --git a/app/config/wallabag.yml b/app/config/wallabag.yml
new file mode 100644
index 00000000..bbc587b0
--- /dev/null
+++ b/app/config/wallabag.yml
@@ -0,0 +1,162 @@
1wallabag_core:
2 version: 2.3.0
3 paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
4 languages:
5 en: 'English'
6 fr: 'Français'
7 de: 'Deutsch'
8 tr: 'Türkçe'
9 fa: 'فارسی'
10 ro: 'Română'
11 pl: 'Polish'
12 da: 'Dansk'
13 es: 'Español'
14 oc: 'Occitan'
15 it: 'Italiano'
16 pt: 'Português'
17 ru: 'Русский'
18 items_on_page: 12
19 theme: material
20 language: '%locale%'
21 rss_limit: 50
22 reading_speed: 1
23 cache_lifetime: 10
24 action_mark_as_read: 1
25 list_mode: 0
26 fetching_error_message_title: 'No title found'
27 fetching_error_message: |
28 wallabag can't retrieve contents for this article. Please <a href="http://doc.wallabag.org/en/user/errors_during_fetching.html#how-can-i-help-to-fix-that">troubleshoot this issue</a>.
29 api_limit_mass_actions: 10
30 encryption_key_path: "%kernel.project_dir%/data/site-credentials-secret-key.txt"
31 default_internal_settings:
32 -
33 name: share_public
34 value: 1
35 section: entry
36 -
37 name: carrot
38 value: 1
39 section: entry
40 -
41 name: share_diaspora
42 value: 1
43 section: entry
44 -
45 name: diaspora_url
46 value: http://diasporapod.com
47 section: entry
48 -
49 name: share_unmark
50 value: 1
51 section: entry
52 -
53 name: unmark_url
54 value: https://unmark.it
55 section: entry
56 -
57 name: share_shaarli
58 value: 1
59 section: entry
60 -
61 name: share_scuttle
62 value: 1
63 section: entry
64 -
65 name: shaarli_url
66 value: http://myshaarli.com
67 section: entry
68 -
69 name: scuttle_url
70 value: http://scuttle.org
71 section: entry
72 -
73 name: share_mail
74 value: 1
75 section: entry
76 -
77 name: share_twitter
78 value: 1
79 section: entry
80 -
81 name: show_printlink
82 value: 1
83 section: entry
84 -
85 name: restricted_access
86 value: 0
87 section: entry
88 -
89 name: export_epub
90 value: 1
91 section: export
92 -
93 name: export_mobi
94 value: 1
95 section: export
96 -
97 name: export_pdf
98 value: 1
99 section: export
100 -
101 name: export_csv
102 value: 1
103 section: export
104 -
105 name: export_json
106 value: 1
107 section: export
108 -
109 name: export_txt
110 value: 1
111 section: export
112 -
113 name: export_xml
114 value: 1
115 section: export
116 -
117 name: import_with_redis
118 value: 0
119 section: import
120 -
121 name: import_with_rabbitmq
122 value: 0
123 section: import
124 -
125 name: piwik_enabled
126 value: 0
127 section: analytics
128 -
129 name: piwik_host
130 value: v2.wallabag.org
131 section: analytics
132 -
133 name: piwik_site_id
134 value: 1
135 section: analytics
136 -
137 name: demo_mode_enabled
138 value: 0
139 section: misc
140 -
141 name: demo_mode_username
142 value: wallabag
143 section: misc
144 -
145 name: download_images_enabled
146 value: 0
147 section: misc
148 -
149 name: wallabag_support_url
150 value: https://www.wallabag.org/pages/support.html
151 section: misc
152 -
153 name: api_user_registration
154 value: 0
155 section: api
156
157wallabag_user:
158 registration_enabled: "%fosuser_registration%"
159
160wallabag_import:
161 allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain', 'text/csv']
162 resource_dir: "%kernel.project_dir%/web/uploads/import"
diff --git a/app/config/webpack/common.js b/app/config/webpack/common.js
new file mode 100644
index 00000000..c497689a
--- /dev/null
+++ b/app/config/webpack/common.js
@@ -0,0 +1,40 @@
1const path = require('path');
2const webpack = require('webpack');
3const StyleLintPlugin = require('stylelint-webpack-plugin');
4
5const rootDir = path.resolve(__dirname, '../../../');
6
7module.exports = function () {
8 return {
9 entry: {
10 material: path.join(rootDir, './app/Resources/static/themes/material/index.js'),
11 baggy: path.join(rootDir, './app/Resources/static/themes/baggy/index.js'),
12 public: path.join(rootDir, './app/Resources/static/themes/_global/share.js'),
13 },
14 output: {
15 filename: '[name].js',
16 path: path.resolve(rootDir, 'web/bundles/wallabagcore'),
17 publicPath: '/bundles/wallabagcore/',
18 },
19 plugins: [
20 new webpack.ProvidePlugin({
21 $: 'jquery',
22 jQuery: 'jquery',
23 'window.$': 'jquery',
24 'window.jQuery': 'jquery',
25 }),
26 new StyleLintPlugin({
27 configFile: '.stylelintrc',
28 failOnError: false,
29 quiet: false,
30 context: 'app/Resources/static/themes',
31 files: '**/*.scss',
32 }),
33 ],
34 resolve: {
35 alias: {
36 jquery: path.join(rootDir, 'node_modules/jquery/dist/jquery.js'),
37 },
38 },
39 };
40};
diff --git a/app/config/webpack/dev.js b/app/config/webpack/dev.js
new file mode 100644
index 00000000..97abc5eb
--- /dev/null
+++ b/app/config/webpack/dev.js
@@ -0,0 +1,61 @@
1const webpackMerge = require('webpack-merge');
2const webpack = require('webpack');
3const commonConfig = require('./common.js');
4
5module.exports = function () {
6 return webpackMerge(commonConfig(), {
7 devtool: 'eval-source-map',
8 output: {
9 filename: '[name].dev.js',
10 },
11
12 devServer: {
13 hot: true,
14 // enable HMR on the server
15
16 contentBase: './web',
17 // match the output path
18 },
19 plugins: [
20 new webpack.HotModuleReplacementPlugin(),
21 ],
22 module: {
23 rules: [
24 {
25 enforce: 'pre',
26 test: /\.js$/,
27 loader: 'eslint-loader',
28 exclude: /node_modules/,
29 },
30 {
31 test: /\.js$/,
32 exclude: /(node_modules)/,
33 use: {
34 loader: 'babel-loader',
35 options: {
36 presets: ['env'],
37 },
38 },
39 },
40 {
41 test: /\.(s)?css$/,
42 use: [
43 'style-loader',
44 {
45 loader: 'css-loader',
46 options: {
47 importLoaders: 1,
48 },
49 },
50 'postcss-loader',
51 'sass-loader',
52 ],
53 },
54 {
55 test: /\.(jpg|png|gif|svg|ico|eot|ttf|woff|woff2)$/,
56 use: 'url-loader',
57 },
58 ],
59 },
60 });
61};
diff --git a/app/config/webpack/prod.js b/app/config/webpack/prod.js
new file mode 100644
index 00000000..17b8c384
--- /dev/null
+++ b/app/config/webpack/prod.js
@@ -0,0 +1,111 @@
1const webpack = require('webpack');
2const webpackMerge = require('webpack-merge');
3const ExtractTextPlugin = require('extract-text-webpack-plugin');
4const ManifestPlugin = require('webpack-manifest-plugin');
5
6const commonConfig = require('./common.js');
7
8module.exports = function () {
9 return webpackMerge(commonConfig(), {
10 output: {
11 filename: '[name].js',
12 },
13 devtool: 'source-map',
14 plugins: [
15 new webpack.DefinePlugin({
16 'process.env': {
17 'NODE_ENV': JSON.stringify('production'),
18 },
19 }),
20 new webpack.optimize.UglifyJsPlugin({
21 beautify: false,
22 mangle: {
23 screw_ie8: true,
24 keep_fnames: true,
25 },
26 compress: {
27 screw_ie8: true,
28 warnings: false,
29 },
30 comments: false,
31 }),
32 new ExtractTextPlugin('[name].css'),
33 new ManifestPlugin({
34 fileName: 'manifest.json',
35 }),
36 ],
37 module: {
38 rules: [
39 {
40 enforce: 'pre',
41 test: /\.js$/,
42 loader: 'eslint-loader',
43 exclude: /node_modules/,
44 },
45 {
46 test: /\.js$/,
47 exclude: /(node_modules)/,
48 use: {
49 loader: 'babel-loader',
50 options: {
51 presets: ['env'],
52 },
53 },
54 },
55 {
56 test: /\.(s)?css$/,
57 use: ExtractTextPlugin.extract({
58 fallback: 'style-loader',
59 use: [
60 {
61 loader: 'css-loader',
62 options: {
63 importLoaders: 1,
64 minimize: {
65 discardComments: {
66 removeAll: true,
67 },
68 core: true,
69 minifyFontValues: true,
70 },
71 },
72 },
73 'postcss-loader',
74 'sass-loader',
75 ],
76 }),
77 },
78 {
79 test: /\.(jpg|png|gif|svg|ico)$/,
80 include: /node_modules/,
81 use: {
82 loader: 'file-loader',
83 options: {
84 name: 'img/[name].[ext]',
85 },
86 },
87 },
88 {
89 test: /\.(jpg|png|gif|svg|ico)$/,
90 exclude: /node_modules/,
91 use: {
92 loader: 'file-loader',
93 options: {
94 context: 'app/Resources/static',
95 name: '[path][name].[ext]',
96 },
97 },
98 },
99 {
100 test: /\.(eot|ttf|woff|woff2)$/,
101 use: {
102 loader: 'file-loader',
103 options: {
104 name: 'fonts/[name].[ext]',
105 },
106 },
107 },
108 ],
109 },
110 });
111};