potassium 5.2.3 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +22 -9
  3. data/.node-version +1 -0
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +26 -0
  6. data/docs/DSL.md +5 -5
  7. data/lib/potassium/assets/.circleci/config.yml.erb +102 -0
  8. data/lib/potassium/assets/.eslintrc.json +343 -0
  9. data/lib/potassium/assets/.rubocop.yml +515 -0
  10. data/lib/potassium/assets/.stylelintrc.json +46 -0
  11. data/lib/potassium/assets/Dockerfile.ci +1 -1
  12. data/lib/potassium/assets/Makefile.erb +6 -32
  13. data/lib/potassium/assets/README.yml +51 -7
  14. data/lib/potassium/assets/active_admin/admin-component.vue +35 -0
  15. data/lib/potassium/assets/active_admin/admin_application.js +14 -0
  16. data/lib/potassium/assets/active_admin/init_activeadmin_vue.rb +10 -0
  17. data/lib/potassium/assets/api/base_controller.rb +1 -3
  18. data/lib/potassium/assets/app/javascript/app.spec.js +14 -0
  19. data/lib/potassium/assets/app/uploaders/base_uploader.rb +13 -0
  20. data/lib/potassium/assets/app/uploaders/image_uploader.rb +5 -0
  21. data/lib/potassium/assets/bin/cibuild.erb +18 -1
  22. data/lib/potassium/assets/bin/setup.erb +1 -1
  23. data/lib/potassium/assets/config/database_mysql.yml.erb +2 -2
  24. data/lib/potassium/assets/config/database_postgresql.yml.erb +2 -2
  25. data/lib/potassium/assets/config/shrine.rb +33 -0
  26. data/lib/potassium/assets/docker-compose.ci.yml +1 -0
  27. data/lib/potassium/assets/lib/tasks/auto_annotate_models.rake +2 -1
  28. data/lib/potassium/assets/package.json +4 -1
  29. data/lib/potassium/cli/commands/create.rb +1 -0
  30. data/lib/potassium/cli_options.rb +6 -6
  31. data/lib/potassium/helpers/template-helpers.rb +4 -0
  32. data/lib/potassium/recipes/admin.rb +3 -3
  33. data/lib/potassium/recipes/annotate.rb +1 -1
  34. data/lib/potassium/recipes/ci.rb +1 -1
  35. data/lib/potassium/recipes/database_container.rb +5 -4
  36. data/lib/potassium/recipes/draper.rb +1 -1
  37. data/lib/potassium/recipes/file_storage.rb +15 -33
  38. data/lib/potassium/recipes/front_end.rb +128 -5
  39. data/lib/potassium/recipes/mailer.rb +5 -2
  40. data/lib/potassium/recipes/node.rb +21 -0
  41. data/lib/potassium/recipes/rack_cors.rb +18 -15
  42. data/lib/potassium/recipes/schedule.rb +1 -1
  43. data/lib/potassium/recipes/style.rb +21 -3
  44. data/lib/potassium/recipes/vue_admin.rb +124 -0
  45. data/lib/potassium/templates/application.rb +4 -2
  46. data/lib/potassium/version.rb +4 -3
  47. data/potassium.gemspec +6 -5
  48. data/spec/features/database_container_spec.rb +1 -1
  49. data/spec/features/file_storage_spec.rb +12 -16
  50. data/spec/features/front_end_spec.rb +74 -0
  51. data/spec/features/new_project_spec.rb +1 -1
  52. data/spec/features/node_spec.rb +28 -0
  53. data/spec/features/power_types_spec.rb +5 -16
  54. data/spec/features/vue_admin_spec.rb +47 -0
  55. data/spec/support/potassium_test_helpers.rb +23 -9
  56. metadata +56 -29
  57. data/lib/potassium/assets/.circleci/config.yml +0 -20
  58. data/lib/potassium/assets/active_admin/active_admin.js.coffee +0 -4
  59. data/lib/potassium/assets/active_admin/init_activeadmin_angular.rb +0 -8
  60. data/lib/potassium/assets/testing/paperclip.rb +0 -59
  61. data/lib/potassium/recipes/angular_admin.rb +0 -56
  62. data/spec/features/front_end.rb +0 -33
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9fb3b1b4a6ac80cce023a76b98629143523145baa3adcdf7a8afa46a56c97a1
4
- data.tar.gz: 0e99964ae4b0d55e7d8ba7bd610240e22d40203450cb8651009418970bcf16d3
3
+ metadata.gz: 0542ddf33e06d797cf282c823b87d5a418280c5b31b16f4f42b9b5b54499f474
4
+ data.tar.gz: 265838f7ff77f19b6ffdd0c2ecdefd3d6c33ebde2c68ec210a167b403cb70b26
5
5
  SHA512:
6
- metadata.gz: e759b1f5f9b8ff6a6eebcfa1e60366fb7a4cc188fb1561a2367439155014312f5dcfe168c8a8a1a3e1a2c43de2f6e837cea04cb0746b4452aae5090f5635755b
7
- data.tar.gz: 7a1ea34a7dde786ab915f79c9b1e59a62bf0f593dd1d331cd0a25284669b66e74d4628b62e4846ce6aeb1bae933ea965ae88fece52b424effad7c82dbeb87ad7
6
+ metadata.gz: 94b505b8058415e3b2dbcfd7161ebdb1bc9e212bd19510004212cda9ea7cddd7eb25de0b6716a628bc66614177a12b41ce866c121212d1b106b3948084e05b30
7
+ data.tar.gz: f41bfc6224f310f21ba12f9949c358333158343e1dd20665980e9cb3f6132436486f30b2ffc49500acf2c6566db7d46a9906291303583d3bec6ff2fcfc9d7ed4
@@ -6,7 +6,12 @@ jobs:
6
6
  shell: /bin/bash --login
7
7
 
8
8
  docker:
9
- - image: circleci/ruby:2.5.5-node
9
+ - image: circleci/ruby:2.7.0-node
10
+ environment:
11
+ GEM_HOME: /home/circleci/app/vendor/bundle
12
+ BUNDLE_JOBS: 4
13
+ BUNDLE_RETRY: 3
14
+ BUNDLE_PATH: /home/circleci/app/vendor/bundle
10
15
 
11
16
  steps:
12
17
  - checkout
@@ -14,16 +19,24 @@ jobs:
14
19
 
15
20
  - restore_cache:
16
21
  keys:
17
- - v1-dep-{{ .Branch }}-
18
- - v1-dep-master-
19
- - run: bundle install
22
+ - potassium-bundle-{{ .Branch }}-
23
+ - potassium-bundle-master-
24
+ - potassium-bundle-
25
+ - run: gem install bundler:2.0.2
26
+ - run: bundle _2.0.2_ install
20
27
  - run: gem install hound-cli
21
- - save_cache:
22
- key: v1-dep-{{ .Branch }}-{{ epoch }}
23
- paths:
24
- - vendor/bundle
25
28
  - run:
26
- command: bundle exec rspec --color --require spec_helper --format=doc --format progress $(circleci tests glob spec/**/*_spec.rb | circleci tests split)
29
+ command: |
30
+ bundle exec rspec --color --require spec_helper --profile 10 \
31
+ --format progress --format documentation \
32
+ --format RspecJunitFormatter --out test_results/rspec.xml \
33
+ $(circleci tests glob spec/**/*_spec.rb | circleci tests split --split-by=timings)
27
34
  environment:
28
35
  RAILS_ENV: test
29
36
  RACK_ENV: test
37
+ - save_cache:
38
+ key: potassium-bundle-{{ .Branch }}-{{ epoch }}
39
+ paths:
40
+ - vendor/bundle
41
+ - store_test_results:
42
+ path: test_results
@@ -0,0 +1 @@
1
+ 12
@@ -1 +1 @@
1
- 2.5
1
+ 2.7
@@ -2,6 +2,32 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 6.0.0
6
+
7
+ Features:
8
+ - Update ActiveAdmin to 2.6 [#246](https://github.com/platanus/potassium/pull/246)
9
+ - Update bundler to 2.0 [#250](https://github.com/platanus/potassium/pull/250)
10
+ - Update Rails to 6.0.2 [#251](https://github.com/platanus/potassium/pull/251)
11
+ - Improve specs performance [#259](https://github.com/platanus/potassium/pull/259)
12
+ - Dasherize app name in docker compose related files [#261](https://github.com/platanus/potassium/pull/261)
13
+ - Split specs by timings in CircleCI [#263](https://github.com/platanus/potassium/pull/263)
14
+ - Update ruby to 2.7.0 [#264](https://github.com/platanus/potassium/pull/264)
15
+ - Add tailwindcss [#266](https://github.com/platanus/potassium/pull/266)
16
+ - Update rack-cors to 1.1 [#269](https://github.com/platanus/potassium/pull/269)
17
+ - Use safer CORS configuration exposing only API and public resources [#271](https://github.com/platanus/potassium/pull/271)
18
+ - Add option to support Vue in ActiveAdmin [#272](https://github.com/platanus/potassium/pull/272)
19
+ - Add tests for Vue [#273](https://github.com/platanus/potassium/pull/278)
20
+ - Remove simple commands and docker-compose args in Makefile [#279](https://github.com/platanus/potassium/pull/279)
21
+ - Remove Paperclip and add [Shrine](https://github.com/shrinerb/shrine) for file_storage recipe [#291](https://github.com/platanus/potassium/pull/291)
22
+ - Add linting job to CircleCI builds using [reviewdog](https://github.com/reviewdog/reviewdog) and per-project dependencies/configurations for linters [#292](https://github.com/platanus/potassium/pull/292)
23
+ - Remove angular_admin recipe [#297](https://github.com/platanus/potassium/pull/297)
24
+
25
+ Fix:
26
+ - Correctly use cache for bundle dependencies in CircleCI build [#244](https://github.com/platanus/potassium/pull/244) and [#258](https://github.com/platanus/potassium/pull/258)
27
+ - Fix model auto annotate [#260](https://github.com/platanus/potassium/pull/260)
28
+ - Fix sidekiq repeated installation on potassium create if selecting mailer [#262](https://github.com/platanus/potassium/pull/262)
29
+ - Include ApiErrorConcern in all environments [#270](https://github.com/platanus/potassium/pull/270)
30
+
5
31
  ## 5.2.3
6
32
 
7
33
  Features:
@@ -308,7 +308,7 @@ add_readme_header(:style_guide)
308
308
 
309
309
  ##### | `add_readme_section(header, section, iterpolation_values)`
310
310
 
311
- To add header's sections. Paperclip, for example:
311
+ To add header's sections. Devise, for example:
312
312
 
313
313
  ```yml
314
314
  readme:
@@ -316,11 +316,11 @@ readme:
316
316
  internal_dependencies:
317
317
  title: "Internal dependencies"
318
318
  sections:
319
- paperclip:
320
- title: "Uploads"
321
- body: "For managing uploads, this project uses..."
319
+ devise:
320
+ title: "Authentication"
321
+ body: "We are using the great..."
322
322
  ```
323
323
 
324
324
  ```ruby
325
- add_readme_section(:internal_dependencies, :paperclip)
325
+ add_readme_section(:internal_dependencies, :devise)
326
326
  ```
@@ -0,0 +1,102 @@
1
+ version: 2
2
+ jobs:
3
+ test:
4
+ working_directory: ~/app
5
+
6
+ docker:
7
+ - image: platanus/compose:1.22.0
8
+
9
+ steps:
10
+ - checkout
11
+ - setup_remote_docker
12
+
13
+ - run: docker info
14
+ - run: docker-compose -f docker-compose.ci.yml pull
15
+ - run: docker-compose -f docker-compose.ci.yml build test
16
+ - run: bin/cibuild services
17
+ - run: bin/cibuild deps
18
+
19
+ - run: bin/cibuild db
20
+ - run: bin/cibuild tests
21
+ <% if selected?(:front_end, :vue) %>
22
+ - run: bin/cibuild js_tests
23
+ <% end %>
24
+
25
+ lint:
26
+ docker:
27
+ - image: circleci/ruby:2.7-node
28
+ environment:
29
+ BUNDLE_JOBS: 4
30
+ BUNDLE_RETRY: 3
31
+ BUNDLE_PATH: vendor/bundle
32
+ steps:
33
+ - checkout
34
+
35
+ - restore_cache:
36
+ keys:
37
+ - bundle-dependencies-{{ checksum "Gemfile.lock" }}
38
+ - bundle-dependencies-
39
+
40
+ - restore_cache:
41
+ keys:
42
+ - yarn-dependencies-{{ checksum "yarn.lock" }}
43
+ - yarn-dependencies-
44
+
45
+ - run:
46
+ name: Install bundle dependencies
47
+ command: |
48
+ BUNDLER_VERSION=$(cat Gemfile.lock | tail -1 | tr -d " ")
49
+ gem install bundler:$BUNDLER_VERSION
50
+ bundle _$(echo $BUNDLER_VERSION)_ install
51
+
52
+ - save_cache:
53
+ key: bundle-dependencies-{{ checksum "Gemfile.lock" }}
54
+ paths:
55
+ - vendor/bundle
56
+
57
+ - run:
58
+ name: Install yarn dependencies
59
+ command: yarn install --frozen-lockfile
60
+
61
+ - save_cache:
62
+ key: yarn-dependencies-{{ checksum "yarn.lock" }}
63
+ paths:
64
+ - node_modules
65
+
66
+ - run:
67
+ name: Install reviewdog
68
+ command: |
69
+ curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b ./bin
70
+
71
+ - run:
72
+ name: Get files to lint
73
+ command: git diff origin/master --name-only --diff-filter=d > tmp/files_to_lint
74
+
75
+ - run:
76
+ name: Run rubocop
77
+ shell: /bin/bash
78
+ command: |
79
+ cat tmp/files_to_lint | grep -E '.+\.(rb)$' | xargs bundle exec rubocop --force-exclusion \
80
+ | ./bin/reviewdog -reporter=github-pr-review -f=rubocop
81
+
82
+ - run:
83
+ name: Run eslint
84
+ shell: /bin/bash
85
+ command: |
86
+ cat tmp/files_to_lint | grep -E '.+\.(js|jsx|vue)$' | xargs yarn run eslint \
87
+ | ./bin/reviewdog -reporter=github-pr-review -f=eslint
88
+
89
+ - run:
90
+ name: Run stylelint
91
+ shell: /bin/bash
92
+ command: |
93
+ cat tmp/files_to_lint | grep -E '.+\.(scss|css|less)$' | xargs yarn run stylelint \
94
+ | ./bin/reviewdog -reporter=github-pr-review -f=stylelint
95
+
96
+ workflows:
97
+ version: 2
98
+ test_and_lint:
99
+ jobs:
100
+ - test
101
+ - lint:
102
+ context: org-global
@@ -0,0 +1,343 @@
1
+ {
2
+ "env": {
3
+ "es6": true
4
+ },
5
+ "parserOptions": {
6
+ "ecmaVersion": 2018,
7
+ "sourceType": "module"
8
+ },
9
+ "plugins": ["import"],
10
+ "settings": {
11
+ "import/resolver": {
12
+ "node": {
13
+ "extensions": [".js", ".json"]
14
+ }
15
+ }
16
+ },
17
+ "extends": [
18
+ "plugin:vue/strongly-recommended"
19
+ ],
20
+ "rules": {
21
+ "accessor-pairs": 0,
22
+ "array-callback-return": 2,
23
+ "block-scoped-var": 2,
24
+ "complexity": [1, {
25
+ "max": 20
26
+ }],
27
+ "consistent-return": 2,
28
+ "curly": [2, "multi-line"],
29
+ "default-case": [2, {
30
+ "commentPattern": "^no default$"
31
+ }],
32
+ "dot-notation": [1, {
33
+ "allowKeywords": true
34
+ }],
35
+ "dot-location": [2, "property"],
36
+ "eqeqeq": [2],
37
+ "guard-for-in": 2,
38
+ "no-alert": 1,
39
+ "no-case-declarations": 2,
40
+ "no-div-regex": 0,
41
+ "no-else-return": 2,
42
+ "no-empty-function": [2, {
43
+ "allow": ["arrowFunctions", "functions", "methods"]
44
+ }],
45
+ "no-empty-pattern": 2,
46
+ "no-eval": 2,
47
+ "no-extend-native": 2,
48
+ "no-extra-bind": 2,
49
+ "no-fallthrough": 2,
50
+ "no-floating-decimal": 2,
51
+ "no-implicit-coercion": 0,
52
+ "no-implicit-globals": 2,
53
+ "no-implied-eval": 2,
54
+ "no-invalid-this": 0,
55
+ "no-iterator": 2,
56
+ "no-extra-label": 2,
57
+ "no-labels": [2, {
58
+ "allowLoop": false,
59
+ "allowSwitch": false
60
+ }],
61
+ "no-lone-blocks": 2,
62
+ "no-loop-func": 2,
63
+ "no-magic-numbers": [2, {
64
+ "ignore": [0, 1, -1]
65
+ }],
66
+ "no-multi-spaces": 2,
67
+ "no-multi-str": 2,
68
+ "no-native-reassign": 2,
69
+ "no-new": 2,
70
+ "no-new-func": 2,
71
+ "no-new-wrappers": 2,
72
+ "no-octal": 2,
73
+ "no-octal-escape": 2,
74
+ "no-param-reassign": [2, {
75
+ "props": false
76
+ }],
77
+ "no-proto": 2,
78
+ "no-redeclare": 2,
79
+ "no-return-assign": 2,
80
+ "no-script-url": 2,
81
+ "no-self-assign": 2,
82
+ "no-self-compare": 2,
83
+ "no-sequences": 2,
84
+ "no-throw-literal": 2,
85
+ "no-unmodified-loop-condition": 0,
86
+ "no-unused-expressions": 2,
87
+ "no-unused-labels": 2,
88
+ "no-useless-call": 0,
89
+ "no-useless-concat": 2,
90
+ "no-useless-escape": 2,
91
+ "no-void": 0,
92
+ "no-warning-comments": [1, {
93
+ "terms": ["todo", "fixme", "xxx"],
94
+ "location": "start"
95
+ }],
96
+ "no-with": 2,
97
+ "radix": 2,
98
+ "vars-on-top": 2,
99
+ "wrap-iife": [2, "any"],
100
+ "yoda": 2,
101
+ "comma-dangle": [2, "always-multiline"],
102
+ "no-cond-assign": [2, "always"],
103
+ "no-console": 0,
104
+ "no-debugger": 0,
105
+ "no-constant-condition": 2,
106
+ "no-control-regex": 2,
107
+ "no-dupe-args": 2,
108
+ "no-dupe-keys": 2,
109
+ "no-duplicate-case": 2,
110
+ "no-empty": 2,
111
+ "no-empty-character-class": 2,
112
+ "no-ex-assign": 2,
113
+ "no-extra-boolean-cast": 0,
114
+ "no-extra-parens": [0, "all", {
115
+ "conditionalAssign": true,
116
+ "nestedBinaryExpressions": false,
117
+ "returnAssign": false
118
+ }],
119
+ "no-extra-semi": 2,
120
+ "no-func-assign": 2,
121
+ "no-inner-declarations": 2,
122
+ "no-invalid-regexp": 2,
123
+ "no-irregular-whitespace": 2,
124
+ "no-negated-in-lhs": 2,
125
+ "no-obj-calls": 2,
126
+ "no-regex-spaces": 2,
127
+ "no-sparse-arrays": 2,
128
+ "no-unexpected-multiline": 0,
129
+ "no-unreachable": 2,
130
+ "no-unsafe-finally": 2,
131
+ "use-isnan": 2,
132
+ "valid-jsdoc": 0,
133
+ "valid-typeof": 2,
134
+ "arrow-body-style": [2, "as-needed"],
135
+ "arrow-parens": 0,
136
+ "arrow-spacing": [2, {
137
+ "before": true,
138
+ "after": true
139
+ }],
140
+ "constructor-super": 0,
141
+ "generator-star-spacing": [2, {
142
+ "before": true,
143
+ "after": false
144
+ }],
145
+ "no-class-assign": 2,
146
+ "no-confusing-arrow": [2, {
147
+ "allowParens": true
148
+ }],
149
+ "no-const-assign": 2,
150
+ "no-dupe-class-members": 2,
151
+ "no-duplicate-imports": 2,
152
+ "no-new-symbol": 2,
153
+ "no-restricted-imports": 0,
154
+ "no-this-before-super": 0,
155
+ "no-useless-computed-key": 2,
156
+ "no-useless-constructor": 2,
157
+ "no-var": 2,
158
+ "object-shorthand": [2, "always", {
159
+ "ignoreConstructors": false,
160
+ "avoidQuotes": true
161
+ }],
162
+ "prefer-arrow-callback": [2, {
163
+ "allowNamedFunctions": false,
164
+ "allowUnboundThis": true
165
+ }],
166
+ "prefer-const": [2, {
167
+ "destructuring": "any",
168
+ "ignoreReadBeforeAssign": true
169
+ }],
170
+ "prefer-reflect": 0,
171
+ "no-caller": 2,
172
+ "prefer-rest-params": 2,
173
+ "prefer-spread": 2,
174
+ "prefer-template": 2,
175
+ "require-yield": 2,
176
+ "sort-imports": 0,
177
+ "template-curly-spacing": 2,
178
+ "yield-star-spacing": [2, "before"],
179
+ "import/no-unresolved": [0],
180
+ "import/named": 0,
181
+ "import/default": 0,
182
+ "import/namespace": 0,
183
+ "import/export": 2,
184
+ "import/no-named-as-default": 0,
185
+ "import/no-named-as-default-member": 0,
186
+ "import/no-deprecated": 0,
187
+ "import/no-extraneous-dependencies": [0, {
188
+ "devDependencies": false,
189
+ "optionalDependencies": false
190
+ }],
191
+ "import/no-mutable-exports": 2,
192
+ "import/no-commonjs": 0,
193
+ "import/no-amd": 2,
194
+ "import/no-nodejs-modules": 0,
195
+ "import/imports-first": [2, "absolute-first"],
196
+ "import/no-duplicates": 2,
197
+ "import/no-namespace": 0,
198
+ "import/extensions": [0, "never"],
199
+ "import/order": [0, {
200
+ "groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
201
+ "newlines-between": "never"
202
+ }],
203
+ "import/newline-after-import": 2,
204
+ "import/prefer-default-export": 2,
205
+ "array-bracket-spacing": [2, "never"],
206
+ "block-spacing": [2, "always"],
207
+ "brace-style": [2, "1tbs", {
208
+ "allowSingleLine": true
209
+ }],
210
+ "camelcase": [2, {
211
+ "properties": "always"
212
+ }],
213
+ "comma-spacing": [2, {
214
+ "before": false,
215
+ "after": true
216
+ }],
217
+ "comma-style": [2, "last"],
218
+ "computed-property-spacing": [2, "never"],
219
+ "consistent-this": [2, "self"],
220
+ "eol-last": 2,
221
+ "func-names": 0,
222
+ "func-style": [2, "declaration"],
223
+ "id-blacklist": 0,
224
+ "id-length": 0,
225
+ "id-match": 0,
226
+ "indent": [2, 2],
227
+ "key-spacing": [2, {
228
+ "beforeColon": false,
229
+ "afterColon": true
230
+ }],
231
+ "keyword-spacing": [2, {
232
+ "before": true,
233
+ "after": true,
234
+ "overrides": {
235
+ "return": {
236
+ "after": true
237
+ },
238
+ "throw": {
239
+ "after": true
240
+ },
241
+ "case": {
242
+ "after": true
243
+ }
244
+ }
245
+ }],
246
+ "linebreak-style": [2, "unix"],
247
+ "lines-around-comment": 0,
248
+ "max-depth": [2, 4],
249
+ "max-len": [2, 120, {
250
+ "ignorePattern": "^\\s.+class=\""
251
+ }],
252
+ "max-nested-callbacks": [2, 4],
253
+ "max-params": [1, 4],
254
+ "max-statements": [1, 10],
255
+ "max-statements-per-line": [2, {
256
+ "max": 1
257
+ }],
258
+ "new-cap": [2, {
259
+ "newIsCap": true
260
+ }],
261
+ "new-parens": 2,
262
+ "newline-after-var": 0,
263
+ "newline-before-return": 2,
264
+ "newline-per-chained-call": [2, {
265
+ "ignoreChainWithDepth": 3
266
+ }],
267
+ "no-array-constructor": 2,
268
+ "no-bitwise": 1,
269
+ "no-continue": 0,
270
+ "no-inline-comments": 0,
271
+ "no-lonely-if": 0,
272
+ "no-mixed-spaces-and-tabs": 2,
273
+ "no-multiple-empty-lines": [2, {
274
+ "max": 1,
275
+ "maxEOF": 1
276
+ }],
277
+ "no-negated-condition": 2,
278
+ "no-nested-ternary": 2,
279
+ "no-new-object": 2,
280
+ "no-plusplus": 0,
281
+ "no-restricted-syntax": [2, "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"],
282
+ "no-spaced-func": 2,
283
+ "no-ternary": 0,
284
+ "no-trailing-spaces": 2,
285
+ "no-underscore-dangle": [1],
286
+ "no-unneeded-ternary": [2, {
287
+ "defaultAssignment": false
288
+ }],
289
+ "no-whitespace-before-property": 2,
290
+ "object-curly-spacing": [2, "always"],
291
+ "object-property-newline": [0, {
292
+ "allowMultiplePropertiesPerLine": true
293
+ }],
294
+ "one-var": [2, "never"],
295
+ "one-var-declaration-per-line": [2, "always"],
296
+ "operator-assignment": 2,
297
+ "operator-linebreak": [2, "after"],
298
+ "padded-blocks": [2, "never"],
299
+ "quote-props": [2, "as-needed", {
300
+ "keywords": false,
301
+ "unnecessary": false,
302
+ "numbers": false
303
+ }],
304
+ "quotes": [2, "single", {
305
+ "avoidEscape": true
306
+ }],
307
+ "require-jsdoc": 0,
308
+ "semi": [2, "always"],
309
+ "semi-spacing": [2, {
310
+ "before": false,
311
+ "after": true
312
+ }],
313
+ "sort-vars": 0,
314
+ "space-before-blocks": 2,
315
+ "space-before-function-paren": [2, {
316
+ "anonymous": "always",
317
+ "named": "never"
318
+ }],
319
+ "space-in-parens": [2, "never"],
320
+ "space-infix-ops": 2,
321
+ "space-unary-ops": 0,
322
+ "spaced-comment": [2],
323
+ "wrap-regex": 0,
324
+ "init-declarations": 0,
325
+ "no-catch-shadow": 2,
326
+ "no-delete-var": 0,
327
+ "no-label-var": 2,
328
+ "no-restricted-globals": 0,
329
+ "no-shadow": 2,
330
+ "no-shadow-restricted-names": 2,
331
+ "no-undef": 2,
332
+ "no-undef-init": 2,
333
+ "no-unused-vars": [2, {
334
+ "vars": "local",
335
+ "args": "after-used"
336
+ }],
337
+ "no-use-before-define": 2,
338
+ "vue/max-len": ["error", {
339
+ "code": 120,
340
+ "ignoreHTMLAttributeValues": true
341
+ }]
342
+ }
343
+ }