shakapacker 9.2.0 → 9.3.0.beta.1

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 +4 -0
  12. data/CHANGELOG.md +74 -5
  13. data/CLAUDE.md +6 -1
  14. data/CONTRIBUTING.md +0 -1
  15. data/Gemfile.lock +1 -1
  16. data/README.md +14 -14
  17. data/TODO.md +10 -2
  18. data/TODO_v9.md +13 -3
  19. data/bin/export-bundler-config +1 -1
  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 +18 -0
  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 +0 -2
  34. data/docs/rspack.md +25 -21
  35. data/docs/rspack_migration_guide.md +335 -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 +141 -3
  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/jest.config.js +8 -1
  51. data/knip.ts +54 -0
  52. data/lib/install/bin/export-bundler-config +1 -1
  53. data/lib/install/config/shakapacker.yml +16 -5
  54. data/lib/shakapacker/compiler.rb +80 -0
  55. data/lib/shakapacker/configuration.rb +33 -5
  56. data/lib/shakapacker/dev_server_runner.rb +140 -1
  57. data/lib/shakapacker/doctor.rb +294 -65
  58. data/lib/shakapacker/instance.rb +8 -3
  59. data/lib/shakapacker/runner.rb +244 -8
  60. data/lib/shakapacker/version.rb +1 -1
  61. data/lib/tasks/shakapacker/doctor.rake +42 -2
  62. data/package/babel/preset.ts +7 -4
  63. data/package/config.ts +42 -30
  64. data/package/configExporter/buildValidator.ts +883 -0
  65. data/package/configExporter/cli.ts +972 -210
  66. data/package/configExporter/configFile.ts +520 -0
  67. data/package/configExporter/fileWriter.ts +12 -8
  68. data/package/configExporter/index.ts +11 -1
  69. data/package/configExporter/types.ts +54 -2
  70. data/package/configExporter/yamlSerializer.ts +22 -8
  71. data/package/dev_server.ts +1 -1
  72. data/package/environments/__type-tests__/rspack-plugin-compatibility.ts +11 -5
  73. data/package/environments/base.ts +18 -13
  74. data/package/environments/development.ts +1 -1
  75. data/package/environments/production.ts +4 -1
  76. data/package/index.d.ts +50 -3
  77. data/package/index.d.ts.template +50 -0
  78. data/package/index.ts +7 -7
  79. data/package/loaders.d.ts +2 -2
  80. data/package/optimization/rspack.ts +1 -1
  81. data/package/plugins/rspack.ts +15 -4
  82. data/package/plugins/webpack.ts +7 -3
  83. data/package/rspack/index.ts +10 -2
  84. data/package/rules/raw.ts +3 -2
  85. data/package/rules/sass.ts +1 -1
  86. data/package/types/README.md +15 -13
  87. data/package/types/index.ts +5 -5
  88. data/package/types.ts +0 -1
  89. data/package/utils/defaultConfigPath.ts +4 -1
  90. data/package/utils/errorCodes.ts +129 -100
  91. data/package/utils/errorHelpers.ts +34 -29
  92. data/package/utils/getStyleRule.ts +5 -2
  93. data/package/utils/helpers.ts +21 -11
  94. data/package/utils/pathValidation.ts +43 -35
  95. data/package/utils/requireOrError.ts +1 -1
  96. data/package/utils/snakeToCamelCase.ts +1 -1
  97. data/package/utils/typeGuards.ts +132 -83
  98. data/package/utils/validateDependencies.ts +1 -1
  99. data/package/webpack-types.d.ts +3 -3
  100. data/package/webpackDevServerConfig.ts +22 -10
  101. data/package-lock.json +2 -2
  102. data/package.json +25 -16
  103. data/scripts/type-check-no-emit.js +1 -1
  104. data/test/configExporter/buildValidator.test.js +1292 -0
  105. data/test/configExporter/configFile.test.js +392 -0
  106. data/test/configExporter/integration.test.js +275 -0
  107. data/test/helpers.js +1 -1
  108. data/test/package/configExporter.test.js +154 -0
  109. data/test/package/environments/base.test.js +6 -3
  110. data/test/package/helpers.test.js +2 -2
  111. data/test/package/rules/babel.test.js +61 -51
  112. data/test/package/rules/esbuild.test.js +12 -3
  113. data/test/package/rules/file.test.js +3 -1
  114. data/test/package/rules/sass-version-parsing.test.js +71 -0
  115. data/test/package/rules/sass.test.js +11 -6
  116. data/test/package/rules/sass1.test.js +4 -5
  117. data/test/package/rules/sass16.test.js +24 -0
  118. data/test/package/rules/swc.test.js +48 -38
  119. data/tools/README.md +15 -5
  120. data/tsconfig.eslint.json +2 -9
  121. data/yarn.lock +1954 -1493
  122. metadata +22 -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.2.0
4
+ version: 9.3.0.beta.1
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"
@@ -174,12 +173,14 @@ files:
174
173
  - config/shakapacker.yml
175
174
  - docs/cdn_setup.md
176
175
  - docs/common-upgrades.md
176
+ - docs/configuration.md
177
177
  - docs/css-modules-export-mode.md
178
178
  - docs/customizing_babel_config.md
179
179
  - docs/deployment.md
180
180
  - docs/developing_shakapacker.md
181
181
  - docs/optional-peer-dependencies.md
182
182
  - docs/peer-dependencies.md
183
+ - docs/precompile_hook.md
183
184
  - docs/react.md
184
185
  - docs/releasing.md
185
186
  - docs/rspack.md
@@ -198,6 +199,8 @@ files:
198
199
  - docs/v7_upgrade.md
199
200
  - docs/v8_upgrade.md
200
201
  - docs/v9_upgrade.md
202
+ - eslint.config.fast.js
203
+ - eslint.config.js
201
204
  - gemfiles/Gemfile-rails-edge
202
205
  - gemfiles/Gemfile-rails.6.0.x
203
206
  - gemfiles/Gemfile-rails.6.1.x
@@ -206,6 +209,7 @@ files:
206
209
  - gemfiles/Gemfile-rails.7.2.x
207
210
  - gemfiles/Gemfile-rails.8.0.x
208
211
  - jest.config.js
212
+ - knip.ts
209
213
  - lib/install/application.js
210
214
  - lib/install/bin/export-bundler-config
211
215
  - lib/install/bin/shakapacker
@@ -267,8 +271,10 @@ files:
267
271
  - package/.npmignore
268
272
  - package/babel/preset.ts
269
273
  - package/config.ts
274
+ - package/configExporter/buildValidator.ts
270
275
  - package/configExporter/cli.ts
271
276
  - package/configExporter/configDocs.ts
277
+ - package/configExporter/configFile.ts
272
278
  - package/configExporter/fileWriter.ts
273
279
  - package/configExporter/index.ts
274
280
  - package/configExporter/types.ts
@@ -283,6 +289,7 @@ files:
283
289
  - package/environments/types.ts
284
290
  - package/esbuild/index.ts
285
291
  - package/index.d.ts
292
+ - package/index.d.ts.template
286
293
  - package/index.ts
287
294
  - package/loaders.d.ts
288
295
  - package/optimization/rspack.ts
@@ -327,8 +334,12 @@ files:
327
334
  - scripts/remove-use-strict.js
328
335
  - scripts/type-check-no-emit.js
329
336
  - shakapacker.gemspec
337
+ - test/configExporter/buildValidator.test.js
338
+ - test/configExporter/configFile.test.js
339
+ - test/configExporter/integration.test.js
330
340
  - test/helpers.js
331
341
  - test/package/config.test.js
342
+ - test/package/configExporter.test.js
332
343
  - test/package/dev_server.test.js
333
344
  - test/package/development.test.js
334
345
  - test/package/env.test.js
@@ -342,8 +353,10 @@ files:
342
353
  - test/package/rules/esbuild.test.js
343
354
  - test/package/rules/file.test.js
344
355
  - test/package/rules/raw.test.js
356
+ - test/package/rules/sass-version-parsing.test.js
345
357
  - test/package/rules/sass.test.js
346
358
  - test/package/rules/sass1.test.js
359
+ - test/package/rules/sass16.test.js
347
360
  - test/package/rules/swc.test.js
348
361
  - test/package/rules/webpack.test.js
349
362
  - test/package/staging.test.js
@@ -365,7 +378,7 @@ homepage: https://github.com/shakacode/shakapacker
365
378
  licenses:
366
379
  - MIT
367
380
  metadata:
368
- source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.2.0
381
+ source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.3.0.beta.1
369
382
  rdoc_options: []
370
383
  require_paths:
371
384
  - lib
@@ -384,8 +397,12 @@ rubygems_version: 3.6.7
384
397
  specification_version: 4
385
398
  summary: Use webpack to manage app-like JavaScript modules in Rails
386
399
  test_files:
400
+ - test/configExporter/buildValidator.test.js
401
+ - test/configExporter/configFile.test.js
402
+ - test/configExporter/integration.test.js
387
403
  - test/helpers.js
388
404
  - test/package/config.test.js
405
+ - test/package/configExporter.test.js
389
406
  - test/package/dev_server.test.js
390
407
  - test/package/development.test.js
391
408
  - test/package/env.test.js
@@ -399,8 +416,10 @@ test_files:
399
416
  - test/package/rules/esbuild.test.js
400
417
  - test/package/rules/file.test.js
401
418
  - test/package/rules/raw.test.js
419
+ - test/package/rules/sass-version-parsing.test.js
402
420
  - test/package/rules/sass.test.js
403
421
  - test/package/rules/sass1.test.js
422
+ - test/package/rules/sass16.test.js
404
423
  - test/package/rules/swc.test.js
405
424
  - test/package/rules/webpack.test.js
406
425
  - test/package/staging.test.js
data/.eslintignore DELETED
@@ -1,5 +0,0 @@
1
- lib/*
2
- node_modules/*
3
- vendor/*
4
- spec/*
5
- package/*