shakapacker 9.2.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 (115) 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 +19 -4
  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 +0 -2
  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 +1 -1
  52. data/lib/install/config/shakapacker.yml +16 -5
  53. data/lib/shakapacker/compiler.rb +80 -0
  54. data/lib/shakapacker/configuration.rb +33 -5
  55. data/lib/shakapacker/dev_server_runner.rb +140 -1
  56. data/lib/shakapacker/doctor.rb +294 -65
  57. data/lib/shakapacker/instance.rb +8 -3
  58. data/lib/shakapacker/runner.rb +244 -8
  59. data/lib/shakapacker/version.rb +1 -1
  60. data/lib/tasks/shakapacker/doctor.rake +42 -2
  61. data/package/babel/preset.ts +7 -4
  62. data/package/config.ts +42 -30
  63. data/package/configExporter/cli.ts +799 -208
  64. data/package/configExporter/configFile.ts +520 -0
  65. data/package/configExporter/fileWriter.ts +12 -8
  66. data/package/configExporter/index.ts +9 -1
  67. data/package/configExporter/types.ts +36 -2
  68. data/package/configExporter/yamlSerializer.ts +22 -8
  69. data/package/dev_server.ts +1 -1
  70. data/package/environments/__type-tests__/rspack-plugin-compatibility.ts +11 -5
  71. data/package/environments/base.ts +18 -13
  72. data/package/environments/development.ts +1 -1
  73. data/package/environments/production.ts +4 -1
  74. data/package/index.d.ts +50 -3
  75. data/package/index.d.ts.template +50 -0
  76. data/package/index.ts +7 -7
  77. data/package/loaders.d.ts +2 -2
  78. data/package/optimization/rspack.ts +1 -1
  79. data/package/plugins/rspack.ts +15 -4
  80. data/package/plugins/webpack.ts +7 -3
  81. data/package/rspack/index.ts +10 -2
  82. data/package/rules/raw.ts +3 -2
  83. data/package/rules/sass.ts +1 -1
  84. data/package/types/README.md +15 -13
  85. data/package/types/index.ts +5 -5
  86. data/package/types.ts +0 -1
  87. data/package/utils/defaultConfigPath.ts +4 -1
  88. data/package/utils/errorCodes.ts +129 -100
  89. data/package/utils/errorHelpers.ts +34 -29
  90. data/package/utils/getStyleRule.ts +5 -2
  91. data/package/utils/helpers.ts +21 -11
  92. data/package/utils/pathValidation.ts +43 -35
  93. data/package/utils/requireOrError.ts +1 -1
  94. data/package/utils/snakeToCamelCase.ts +1 -1
  95. data/package/utils/typeGuards.ts +132 -83
  96. data/package/utils/validateDependencies.ts +1 -1
  97. data/package/webpack-types.d.ts +3 -3
  98. data/package/webpackDevServerConfig.ts +22 -10
  99. data/package-lock.json +2 -2
  100. data/package.json +36 -28
  101. data/scripts/type-check-no-emit.js +1 -1
  102. data/test/configExporter/configFile.test.js +392 -0
  103. data/test/configExporter/integration.test.js +275 -0
  104. data/test/helpers.js +1 -1
  105. data/test/package/configExporter.test.js +154 -0
  106. data/test/package/helpers.test.js +2 -2
  107. data/test/package/rules/sass-version-parsing.test.js +71 -0
  108. data/test/package/rules/sass.test.js +2 -4
  109. data/test/package/rules/sass1.test.js +1 -3
  110. data/test/package/rules/sass16.test.js +23 -0
  111. data/tools/README.md +15 -5
  112. data/tsconfig.eslint.json +2 -9
  113. data/yarn.lock +1894 -1492
  114. metadata +19 -3
  115. 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.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"
@@ -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
@@ -269,6 +273,7 @@ files:
269
273
  - package/config.ts
270
274
  - package/configExporter/cli.ts
271
275
  - package/configExporter/configDocs.ts
276
+ - package/configExporter/configFile.ts
272
277
  - package/configExporter/fileWriter.ts
273
278
  - package/configExporter/index.ts
274
279
  - package/configExporter/types.ts
@@ -283,6 +288,7 @@ files:
283
288
  - package/environments/types.ts
284
289
  - package/esbuild/index.ts
285
290
  - package/index.d.ts
291
+ - package/index.d.ts.template
286
292
  - package/index.ts
287
293
  - package/loaders.d.ts
288
294
  - package/optimization/rspack.ts
@@ -327,8 +333,11 @@ files:
327
333
  - scripts/remove-use-strict.js
328
334
  - scripts/type-check-no-emit.js
329
335
  - shakapacker.gemspec
336
+ - test/configExporter/configFile.test.js
337
+ - test/configExporter/integration.test.js
330
338
  - test/helpers.js
331
339
  - test/package/config.test.js
340
+ - test/package/configExporter.test.js
332
341
  - test/package/dev_server.test.js
333
342
  - test/package/development.test.js
334
343
  - test/package/env.test.js
@@ -342,8 +351,10 @@ files:
342
351
  - test/package/rules/esbuild.test.js
343
352
  - test/package/rules/file.test.js
344
353
  - test/package/rules/raw.test.js
354
+ - test/package/rules/sass-version-parsing.test.js
345
355
  - test/package/rules/sass.test.js
346
356
  - test/package/rules/sass1.test.js
357
+ - test/package/rules/sass16.test.js
347
358
  - test/package/rules/swc.test.js
348
359
  - test/package/rules/webpack.test.js
349
360
  - test/package/staging.test.js
@@ -365,7 +376,7 @@ homepage: https://github.com/shakacode/shakapacker
365
376
  licenses:
366
377
  - MIT
367
378
  metadata:
368
- source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.2.0
379
+ source_code_uri: https://github.com/shakacode/shakapacker/tree/v9.3.0.beta.0
369
380
  rdoc_options: []
370
381
  require_paths:
371
382
  - lib
@@ -384,8 +395,11 @@ rubygems_version: 3.6.7
384
395
  specification_version: 4
385
396
  summary: Use webpack to manage app-like JavaScript modules in Rails
386
397
  test_files:
398
+ - test/configExporter/configFile.test.js
399
+ - test/configExporter/integration.test.js
387
400
  - test/helpers.js
388
401
  - test/package/config.test.js
402
+ - test/package/configExporter.test.js
389
403
  - test/package/dev_server.test.js
390
404
  - test/package/development.test.js
391
405
  - test/package/env.test.js
@@ -399,8 +413,10 @@ test_files:
399
413
  - test/package/rules/esbuild.test.js
400
414
  - test/package/rules/file.test.js
401
415
  - test/package/rules/raw.test.js
416
+ - test/package/rules/sass-version-parsing.test.js
402
417
  - test/package/rules/sass.test.js
403
418
  - test/package/rules/sass1.test.js
419
+ - test/package/rules/sass16.test.js
404
420
  - test/package/rules/swc.test.js
405
421
  - test/package/rules/webpack.test.js
406
422
  - test/package/staging.test.js
data/.eslintignore DELETED
@@ -1,5 +0,0 @@
1
- lib/*
2
- node_modules/*
3
- vendor/*
4
- spec/*
5
- package/*