shakapacker 9.1.0 → 9.3.0.beta.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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +6 -9
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +6 -8
  4. data/.github/workflows/claude-code-review.yml +4 -5
  5. data/.github/workflows/claude.yml +1 -2
  6. data/.github/workflows/dummy.yml +4 -4
  7. data/.github/workflows/generator.yml +9 -9
  8. data/.github/workflows/node.yml +11 -2
  9. data/.github/workflows/ruby.yml +16 -16
  10. data/.github/workflows/test-bundlers.yml +9 -9
  11. data/.gitignore +7 -0
  12. data/CHANGELOG.md +50 -4
  13. data/CLAUDE.md +6 -1
  14. data/CONTRIBUTING.md +0 -1
  15. data/Gemfile.lock +1 -1
  16. data/README.md +35 -14
  17. data/TODO.md +10 -2
  18. data/TODO_v9.md +13 -3
  19. data/bin/export-bundler-config +11 -0
  20. data/conductor-setup.sh +1 -1
  21. data/conductor.json +1 -1
  22. data/docs/cdn_setup.md +13 -8
  23. data/docs/common-upgrades.md +2 -1
  24. data/docs/configuration.md +630 -0
  25. data/docs/css-modules-export-mode.md +120 -100
  26. data/docs/customizing_babel_config.md +16 -16
  27. data/docs/deployment.md +68 -6
  28. data/docs/developing_shakapacker.md +6 -0
  29. data/docs/optional-peer-dependencies.md +9 -4
  30. data/docs/peer-dependencies.md +17 -6
  31. data/docs/precompile_hook.md +342 -0
  32. data/docs/react.md +57 -47
  33. data/docs/releasing.md +195 -0
  34. data/docs/rspack.md +25 -21
  35. data/docs/rspack_migration_guide.md +363 -8
  36. data/docs/sprockets.md +1 -0
  37. data/docs/style_loader_vs_mini_css.md +12 -12
  38. data/docs/subresource_integrity.md +13 -7
  39. data/docs/transpiler-performance.md +40 -19
  40. data/docs/troubleshooting.md +122 -23
  41. data/docs/typescript-migration.md +48 -39
  42. data/docs/typescript.md +12 -8
  43. data/docs/using_esbuild_loader.md +10 -10
  44. data/docs/v6_upgrade.md +33 -20
  45. data/docs/v7_upgrade.md +8 -6
  46. data/docs/v8_upgrade.md +13 -12
  47. data/docs/v9_upgrade.md +2 -1
  48. data/eslint.config.fast.js +134 -0
  49. data/eslint.config.js +140 -0
  50. data/knip.ts +54 -0
  51. data/lib/install/bin/export-bundler-config +11 -0
  52. data/lib/install/bin/shakapacker +1 -1
  53. data/lib/install/bin/shakapacker-dev-server +1 -1
  54. data/lib/install/config/shakapacker.yml +16 -5
  55. data/lib/shakapacker/bundler_switcher.rb +7 -0
  56. data/lib/shakapacker/compiler.rb +80 -0
  57. data/lib/shakapacker/configuration.rb +56 -2
  58. data/lib/shakapacker/dev_server_runner.rb +140 -1
  59. data/lib/shakapacker/doctor.rb +302 -57
  60. data/lib/shakapacker/instance.rb +8 -3
  61. data/lib/shakapacker/rspack_runner.rb +1 -1
  62. data/lib/shakapacker/runner.rb +245 -9
  63. data/lib/shakapacker/version.rb +1 -1
  64. data/lib/shakapacker/webpack_runner.rb +1 -1
  65. data/lib/shakapacker.rb +10 -0
  66. data/lib/tasks/shakapacker/doctor.rake +42 -2
  67. data/lib/tasks/shakapacker/export_bundler_config.rake +72 -0
  68. data/package/babel/preset.ts +7 -4
  69. data/package/config.ts +42 -30
  70. data/package/configExporter/cli.ts +1274 -0
  71. data/package/configExporter/configDocs.ts +102 -0
  72. data/package/configExporter/configFile.ts +520 -0
  73. data/package/configExporter/fileWriter.ts +96 -0
  74. data/package/configExporter/index.ts +13 -0
  75. data/package/configExporter/types.ts +70 -0
  76. data/package/configExporter/yamlSerializer.ts +280 -0
  77. data/package/dev_server.ts +1 -1
  78. data/package/environments/__type-tests__/rspack-plugin-compatibility.ts +11 -5
  79. data/package/environments/base.ts +18 -13
  80. data/package/environments/development.ts +1 -1
  81. data/package/environments/production.ts +4 -1
  82. data/package/index.d.ts +50 -3
  83. data/package/index.d.ts.template +50 -0
  84. data/package/index.ts +7 -7
  85. data/package/loaders.d.ts +2 -2
  86. data/package/optimization/rspack.ts +1 -1
  87. data/package/plugins/rspack.ts +15 -4
  88. data/package/plugins/webpack.ts +7 -3
  89. data/package/rspack/index.ts +10 -2
  90. data/package/rules/raw.ts +3 -2
  91. data/package/rules/sass.ts +1 -1
  92. data/package/types/README.md +15 -13
  93. data/package/types/index.ts +5 -5
  94. data/package/types.ts +0 -1
  95. data/package/utils/defaultConfigPath.ts +4 -1
  96. data/package/utils/errorCodes.ts +129 -100
  97. data/package/utils/errorHelpers.ts +34 -29
  98. data/package/utils/getStyleRule.ts +5 -2
  99. data/package/utils/helpers.ts +21 -11
  100. data/package/utils/pathValidation.ts +43 -35
  101. data/package/utils/requireOrError.ts +1 -1
  102. data/package/utils/snakeToCamelCase.ts +1 -1
  103. data/package/utils/typeGuards.ts +132 -83
  104. data/package/utils/validateDependencies.ts +1 -1
  105. data/package/webpack-types.d.ts +3 -3
  106. data/package/webpackDevServerConfig.ts +22 -10
  107. data/package-lock.json +2 -2
  108. data/package.json +37 -28
  109. data/scripts/type-check-no-emit.js +1 -1
  110. data/test/configExporter/configFile.test.js +392 -0
  111. data/test/configExporter/integration.test.js +275 -0
  112. data/test/helpers.js +1 -1
  113. data/test/package/configExporter.test.js +154 -0
  114. data/test/package/helpers.test.js +2 -2
  115. data/test/package/rules/sass-version-parsing.test.js +71 -0
  116. data/test/package/rules/sass.test.js +2 -4
  117. data/test/package/rules/sass1.test.js +1 -3
  118. data/test/package/rules/sass16.test.js +23 -0
  119. data/tools/README.md +15 -5
  120. data/tsconfig.eslint.json +2 -9
  121. data/yarn.lock +1635 -1442
  122. metadata +29 -3
  123. data/.eslintignore +0 -5
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shakapacker
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.1.0
4
+ version: 9.3.0.beta.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -131,7 +131,6 @@ executables: []
131
131
  extensions: []
132
132
  extra_rdoc_files: []
133
133
  files:
134
- - ".eslintignore"
135
134
  - ".eslintrc.fast.js"
136
135
  - ".eslintrc.js"
137
136
  - ".github/FUNDING.yml"
@@ -167,19 +166,23 @@ files:
167
166
  - TODO_v9.md
168
167
  - __mocks__/nonexistent/package.json
169
168
  - __mocks__/sass-loader/package.json
169
+ - bin/export-bundler-config
170
170
  - conductor-setup.sh
171
171
  - conductor.json
172
172
  - config/README.md
173
173
  - config/shakapacker.yml
174
174
  - docs/cdn_setup.md
175
175
  - docs/common-upgrades.md
176
+ - docs/configuration.md
176
177
  - docs/css-modules-export-mode.md
177
178
  - docs/customizing_babel_config.md
178
179
  - docs/deployment.md
179
180
  - docs/developing_shakapacker.md
180
181
  - docs/optional-peer-dependencies.md
181
182
  - docs/peer-dependencies.md
183
+ - docs/precompile_hook.md
182
184
  - docs/react.md
185
+ - docs/releasing.md
183
186
  - docs/rspack.md
184
187
  - docs/rspack_migration_guide.md
185
188
  - docs/sprockets.md
@@ -196,6 +199,8 @@ files:
196
199
  - docs/v7_upgrade.md
197
200
  - docs/v8_upgrade.md
198
201
  - docs/v9_upgrade.md
202
+ - eslint.config.fast.js
203
+ - eslint.config.js
199
204
  - gemfiles/Gemfile-rails-edge
200
205
  - gemfiles/Gemfile-rails.6.0.x
201
206
  - gemfiles/Gemfile-rails.6.1.x
@@ -204,7 +209,9 @@ files:
204
209
  - gemfiles/Gemfile-rails.7.2.x
205
210
  - gemfiles/Gemfile-rails.8.0.x
206
211
  - jest.config.js
212
+ - knip.ts
207
213
  - lib/install/application.js
214
+ - lib/install/bin/export-bundler-config
208
215
  - lib/install/bin/shakapacker
209
216
  - lib/install/bin/shakapacker-dev-server
210
217
  - lib/install/binstubs.rb
@@ -252,6 +259,7 @@ files:
252
259
  - lib/tasks/shakapacker/clobber.rake
253
260
  - lib/tasks/shakapacker/compile.rake
254
261
  - lib/tasks/shakapacker/doctor.rake
262
+ - lib/tasks/shakapacker/export_bundler_config.rake
255
263
  - lib/tasks/shakapacker/info.rake
256
264
  - lib/tasks/shakapacker/install.rake
257
265
  - lib/tasks/shakapacker/migrate_to_swc.rake
@@ -263,6 +271,13 @@ files:
263
271
  - package/.npmignore
264
272
  - package/babel/preset.ts
265
273
  - package/config.ts
274
+ - package/configExporter/cli.ts
275
+ - package/configExporter/configDocs.ts
276
+ - package/configExporter/configFile.ts
277
+ - package/configExporter/fileWriter.ts
278
+ - package/configExporter/index.ts
279
+ - package/configExporter/types.ts
280
+ - package/configExporter/yamlSerializer.ts
266
281
  - package/dev_server.ts
267
282
  - package/env.ts
268
283
  - package/environments/__type-tests__/rspack-plugin-compatibility.ts
@@ -273,6 +288,7 @@ files:
273
288
  - package/environments/types.ts
274
289
  - package/esbuild/index.ts
275
290
  - package/index.d.ts
291
+ - package/index.d.ts.template
276
292
  - package/index.ts
277
293
  - package/loaders.d.ts
278
294
  - package/optimization/rspack.ts
@@ -317,8 +333,11 @@ files:
317
333
  - scripts/remove-use-strict.js
318
334
  - scripts/type-check-no-emit.js
319
335
  - shakapacker.gemspec
336
+ - test/configExporter/configFile.test.js
337
+ - test/configExporter/integration.test.js
320
338
  - test/helpers.js
321
339
  - test/package/config.test.js
340
+ - test/package/configExporter.test.js
322
341
  - test/package/dev_server.test.js
323
342
  - test/package/development.test.js
324
343
  - test/package/env.test.js
@@ -332,8 +351,10 @@ files:
332
351
  - test/package/rules/esbuild.test.js
333
352
  - test/package/rules/file.test.js
334
353
  - test/package/rules/raw.test.js
354
+ - test/package/rules/sass-version-parsing.test.js
335
355
  - test/package/rules/sass.test.js
336
356
  - test/package/rules/sass1.test.js
357
+ - test/package/rules/sass16.test.js
337
358
  - test/package/rules/swc.test.js
338
359
  - test/package/rules/webpack.test.js
339
360
  - test/package/staging.test.js
@@ -355,7 +376,7 @@ homepage: https://github.com/shakacode/shakapacker
355
376
  licenses:
356
377
  - MIT
357
378
  metadata:
358
- source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.1.0
379
+ source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.3.0.beta.0
359
380
  rdoc_options: []
360
381
  require_paths:
361
382
  - lib
@@ -374,8 +395,11 @@ rubygems_version: 3.6.7
374
395
  specification_version: 4
375
396
  summary: Use webpack to manage app-like JavaScript modules in Rails
376
397
  test_files:
398
+ - test/configExporter/configFile.test.js
399
+ - test/configExporter/integration.test.js
377
400
  - test/helpers.js
378
401
  - test/package/config.test.js
402
+ - test/package/configExporter.test.js
379
403
  - test/package/dev_server.test.js
380
404
  - test/package/development.test.js
381
405
  - test/package/env.test.js
@@ -389,8 +413,10 @@ test_files:
389
413
  - test/package/rules/esbuild.test.js
390
414
  - test/package/rules/file.test.js
391
415
  - test/package/rules/raw.test.js
416
+ - test/package/rules/sass-version-parsing.test.js
392
417
  - test/package/rules/sass.test.js
393
418
  - test/package/rules/sass1.test.js
419
+ - test/package/rules/sass16.test.js
394
420
  - test/package/rules/swc.test.js
395
421
  - test/package/rules/webpack.test.js
396
422
  - test/package/staging.test.js
data/.eslintignore DELETED
@@ -1,5 +0,0 @@
1
- lib/*
2
- node_modules/*
3
- vendor/*
4
- spec/*
5
- package/*