shakapacker 8.0.1 → 8.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/dummy.yml +1 -0
  3. data/.github/workflows/generator.yml +20 -1
  4. data/.github/workflows/ruby.yml +22 -2
  5. data/CHANGELOG.md +25 -1
  6. data/Gemfile.lock +82 -88
  7. data/README.md +19 -1
  8. data/__mocks__/nonexistent/package.json +4 -0
  9. data/__mocks__/sass-loader/package.json +4 -0
  10. data/docs/react.md +4 -4
  11. data/docs/troubleshooting.md +29 -0
  12. data/docs/using_esbuild_loader.md +1 -1
  13. data/docs/v8_upgrade.md +3 -5
  14. data/gemfiles/Gemfile-rails.6.0.x +1 -1
  15. data/gemfiles/Gemfile-rails.6.1.x +0 -1
  16. data/gemfiles/Gemfile-rails.7.0.x +1 -2
  17. data/gemfiles/Gemfile-rails.7.1.x +1 -2
  18. data/gemfiles/Gemfile-rails.7.2.x +11 -0
  19. data/gemfiles/Gemfile-rails.8.0.x +11 -0
  20. data/jest.config.js +2 -1
  21. data/lib/shakapacker/compiler.rb +2 -1
  22. data/lib/shakapacker/compiler_strategy.rb +2 -2
  23. data/lib/shakapacker/dev_server_runner.rb +4 -3
  24. data/lib/shakapacker/digest_strategy.rb +2 -1
  25. data/lib/shakapacker/helper.rb +1 -1
  26. data/lib/shakapacker/mtime_strategy.rb +1 -1
  27. data/lib/shakapacker/railtie.rb +4 -4
  28. data/lib/shakapacker/runner.rb +17 -8
  29. data/lib/shakapacker/utils/manager.rb +13 -2
  30. data/lib/shakapacker/version.rb +1 -1
  31. data/lib/shakapacker/version_checker.rb +1 -1
  32. data/lib/shakapacker/webpack_runner.rb +2 -1
  33. data/lib/shakapacker.rb +10 -10
  34. data/package/rules/sass.js +8 -6
  35. data/package/utils/helpers.js +9 -1
  36. data/package.json +2 -2
  37. data/test/package/development.test.js +9 -0
  38. data/test/package/environments/base.test.js +9 -0
  39. data/test/package/environments/development.test.js +9 -0
  40. data/test/package/environments/production.test.js +9 -0
  41. data/test/package/helpers.test.js +11 -0
  42. data/test/package/index.test.js +9 -0
  43. data/test/package/production.test.js +9 -0
  44. data/test/package/rules/index.test.js +9 -0
  45. data/test/package/rules/sass.test.js +23 -0
  46. data/test/package/rules/sass1.test.js +23 -0
  47. data/test/package/staging.test.js +9 -0
  48. data/test/package/test.test.js +9 -0
  49. data/test/resolver.js +13 -0
  50. metadata +16 -4
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
4
+
5
+ gemspec path: "../"
6
+
7
+ gem "rails", '~>7.2.0'
8
+ gem "rake", ">= 11.1"
9
+ gem "rack-proxy", require: false
10
+ gem "rspec-rails", "~> 7.0"
11
+ gem "byebug"
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
4
+
5
+ gemspec path: "../"
6
+
7
+ gem "rails", '~>8.0.0'
8
+ gem "rake", ">= 11.1"
9
+ gem "rack-proxy", require: false
10
+ gem "rspec-rails", "~> 7.0"
11
+ gem "byebug"
data/jest.config.js CHANGED
@@ -1,4 +1,5 @@
1
1
  module.exports = {
2
2
  roots: ["<rootDir>/test"],
3
- testPathIgnorePatterns: ["/__fixtures__/", "/__utils__/"]
3
+ testPathIgnorePatterns: ["/__fixtures__/", "/__utils__/"],
4
+ resolver: "<rootDir>/test/resolver"
4
5
  }
@@ -1,7 +1,8 @@
1
1
  require "open3"
2
- require "shakapacker/compiler_strategy"
3
2
  require "fileutils"
4
3
 
4
+ require_relative "compiler_strategy"
5
+
5
6
  class Shakapacker::Compiler
6
7
  # Additional environment variables that the compiler is being run with
7
8
  # Shakapacker::Compiler.env['FRONTEND_API_KEY'] = 'your_secret_key'
@@ -1,5 +1,5 @@
1
- require "shakapacker/mtime_strategy"
2
- require "shakapacker/digest_strategy"
1
+ require_relative "mtime_strategy"
2
+ require_relative "digest_strategy"
3
3
 
4
4
  module Shakapacker
5
5
  class CompilerStrategy
@@ -1,8 +1,9 @@
1
1
  require "shellwords"
2
2
  require "socket"
3
- require "shakapacker/configuration"
4
- require "shakapacker/dev_server"
5
- require "shakapacker/runner"
3
+
4
+ require_relative "configuration"
5
+ require_relative "dev_server"
6
+ require_relative "runner"
6
7
 
7
8
  module Shakapacker
8
9
  class DevServerRunner < Shakapacker::Runner
@@ -1,5 +1,6 @@
1
1
  require "digest/sha1"
2
- require "shakapacker/base_strategy"
2
+
3
+ require_relative "base_strategy"
3
4
 
4
5
  module Shakapacker
5
6
  class DigestStrategy < BaseStrategy
@@ -195,7 +195,7 @@ module Shakapacker::Helper
195
195
 
196
196
  def update_javascript_pack_tag_queue(defer:)
197
197
  if @javascript_pack_tag_loaded
198
- raise "You can only call #{caller_locations(1..1).first.label} before javascript_pack_tag helper. " \
198
+ raise "You can only call #{caller_locations(1..1).first.base_label} before javascript_pack_tag helper. " \
199
199
  "Please refer to https://github.com/shakacode/shakapacker/blob/main/README.md#view-helper-append_javascript_pack_tag-prepend_javascript_pack_tag-and-append_stylesheet_pack_tag for the usage guide"
200
200
  end
201
201
 
@@ -1,4 +1,4 @@
1
- require "shakapacker/base_strategy"
1
+ require_relative "base_strategy"
2
2
 
3
3
  module Shakapacker
4
4
  class MtimeStrategy < BaseStrategy
@@ -1,9 +1,9 @@
1
1
  require "rails/railtie"
2
2
 
3
- require "shakapacker/helper"
4
- require "shakapacker/dev_server_proxy"
5
- require "shakapacker/version_checker"
6
- require "shakapacker/utils/manager"
3
+ require_relative "helper"
4
+ require_relative "dev_server_proxy"
5
+ require_relative "version_checker"
6
+ require_relative "utils/manager"
7
7
 
8
8
  class Shakapacker::Engine < ::Rails::Engine
9
9
  # Allows Shakapacker config values to be set via Rails env config files
@@ -1,5 +1,6 @@
1
- require "shakapacker/utils/misc"
2
- require "shakapacker/utils/manager"
1
+ require_relative "utils/misc"
2
+ require_relative "utils/manager"
3
+
3
4
  require "package_json"
4
5
 
5
6
  module Shakapacker
@@ -14,13 +15,8 @@ module Shakapacker
14
15
  @argv = argv
15
16
 
16
17
  @app_path = File.expand_path(".", Dir.pwd)
17
- @webpack_config = File.join(@app_path, "config/webpack/webpack.config.js")
18
18
  @shakapacker_config = ENV["SHAKAPACKER_CONFIG"] || File.join(@app_path, "config/shakapacker.yml")
19
-
20
- unless File.exist?(@webpack_config)
21
- $stderr.puts "webpack config #{@webpack_config} not found, please run 'bundle exec rails shakapacker:install' to install Shakapacker with default configs or add the missing config file for your custom environment."
22
- exit!
23
- end
19
+ @webpack_config = find_webpack_config
24
20
 
25
21
  Shakapacker::Utils::Manager.error_unless_package_manager_is_obvious!
26
22
  end
@@ -28,5 +24,18 @@ module Shakapacker
28
24
  def package_json
29
25
  @package_json ||= PackageJson.read(@app_path)
30
26
  end
27
+
28
+ private
29
+ def find_webpack_config
30
+ possible_paths = %w[ts js].map do |ext|
31
+ File.join(@app_path, "config/webpack/webpack.config.#{ext}")
32
+ end
33
+ path = possible_paths.find { |f| File.exist?(f) }
34
+ unless path
35
+ $stderr.puts "webpack config #{possible_paths.last} not found, please run 'bundle exec rails shakapacker:install' to install Shakapacker with default configs or add the missing config file for your custom environment."
36
+ exit!
37
+ end
38
+ path
39
+ end
31
40
  end
32
41
  end
@@ -16,7 +16,7 @@ module Shakapacker
16
16
 
17
17
  # Emits a warning if it's not obvious what package manager to use
18
18
  def self.error_unless_package_manager_is_obvious!
19
- return unless PackageJson.read.fetch("packageManager", nil).nil?
19
+ return unless PackageJson.read(rails_root).fetch("packageManager", nil).nil?
20
20
 
21
21
  guessed_binary = guess_binary
22
22
 
@@ -35,7 +35,7 @@ module Shakapacker
35
35
  #
36
36
  # @return [String]
37
37
  def self.guess_binary
38
- MANAGER_LOCKS.find { |_, lock| File.exist?(lock) }&.first || "npm"
38
+ MANAGER_LOCKS.find { |_, lock| File.exist?(rails_root.join(lock)) }&.first || "npm"
39
39
  end
40
40
 
41
41
  # Guesses the version of the package manager to use by calling `<manager> --version`
@@ -53,6 +53,17 @@ module Shakapacker
53
53
 
54
54
  stdout.chomp
55
55
  end
56
+
57
+ private
58
+ def self.rails_root
59
+ if defined?(APP_ROOT)
60
+ Pathname.new(APP_ROOT)
61
+ elsif defined?(Rails)
62
+ Rails.root
63
+ else
64
+ raise "can only be called from a rails environment or with APP_ROOT defined"
65
+ end
66
+ end
56
67
  end
57
68
  end
58
69
  end
@@ -1,4 +1,4 @@
1
1
  module Shakapacker
2
2
  # Change the version in package.json too, please!
3
- VERSION = "8.0.1".freeze
3
+ VERSION = "8.1.0".freeze
4
4
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require "shakapacker/version"
2
+ require_relative "version"
3
3
 
4
4
  module Shakapacker
5
5
  class VersionChecker
@@ -1,5 +1,6 @@
1
1
  require "shellwords"
2
- require "shakapacker/runner"
2
+
3
+ require_relative "runner"
3
4
 
4
5
  module Shakapacker
5
6
  class WebpackRunner < Shakapacker::Runner
data/lib/shakapacker.rb CHANGED
@@ -37,13 +37,13 @@ module Shakapacker
37
37
  delegate :bootstrap, :clean, :clobber, :compile, to: :commands
38
38
  end
39
39
 
40
- require "shakapacker/instance"
41
- require "shakapacker/env"
42
- require "shakapacker/configuration"
43
- require "shakapacker/manifest"
44
- require "shakapacker/compiler"
45
- require "shakapacker/commands"
46
- require "shakapacker/dev_server"
47
- require "shakapacker/deprecation_helper"
48
-
49
- require "shakapacker/railtie" if defined?(Rails)
40
+ require_relative "shakapacker/instance"
41
+ require_relative "shakapacker/env"
42
+ require_relative "shakapacker/configuration"
43
+ require_relative "shakapacker/manifest"
44
+ require_relative "shakapacker/compiler"
45
+ require_relative "shakapacker/commands"
46
+ require_relative "shakapacker/dev_server"
47
+ require_relative "shakapacker/deprecation_helper"
48
+
49
+ require_relative "shakapacker/railtie" if defined?(Rails)
@@ -1,16 +1,18 @@
1
1
  /* eslint global-require: 0 */
2
2
 
3
3
  const getStyleRule = require("../utils/getStyleRule")
4
- const { canProcess } = require("../utils/helpers")
5
- const { additional_paths: includePaths } = require("../config")
4
+ const { canProcess, packageMajorVersion } = require("../utils/helpers")
5
+ const { additional_paths: extraPaths } = require("../config")
6
6
 
7
- module.exports = canProcess("sass-loader", (resolvedPath) =>
8
- getStyleRule(/\.(scss|sass)(\.erb)?$/i, [
7
+ module.exports = canProcess("sass-loader", (resolvedPath) => {
8
+ const optionKey =
9
+ packageMajorVersion("sass-loader") > 15 ? "loadPaths" : "includePaths"
10
+ return getStyleRule(/\.(scss|sass)(\.erb)?$/i, [
9
11
  {
10
12
  loader: resolvedPath,
11
13
  options: {
12
- sassOptions: { includePaths }
14
+ sassOptions: { [optionKey]: extraPaths }
13
15
  }
14
16
  }
15
17
  ])
16
- )
18
+ })
@@ -41,10 +41,18 @@ const loaderMatches = (configLoader, loaderToCheck, fn) => {
41
41
  return fn()
42
42
  }
43
43
 
44
+ const packageMajorVersion = (packageName) => {
45
+ // eslint-disable-next-line import/no-dynamic-require
46
+ const packageJsonPath = require.resolve(`${packageName}/package.json`)
47
+ // eslint-disable-next-line import/no-dynamic-require, global-require
48
+ return require(packageJsonPath).version.match(/^\d+/)[0]
49
+ }
50
+
44
51
  module.exports = {
45
52
  isBoolean,
46
53
  ensureTrailingSlash,
47
54
  canProcess,
48
55
  moduleExists,
49
- loaderMatches
56
+ loaderMatches,
57
+ packageMajorVersion
50
58
  }
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shakapacker",
3
- "version": "8.0.1",
3
+ "version": "8.1.0",
4
4
  "description": "Use webpack to manage app-like JavaScript modules in Rails",
5
5
  "homepage": "https://github.com/shakacode/shakapacker",
6
6
  "bugs": {
@@ -60,7 +60,7 @@
60
60
  "terser-webpack-plugin": "^5.3.1",
61
61
  "webpack": "^5.72.0",
62
62
  "webpack-assets-manifest": "^5.0.6",
63
- "webpack-cli": "^4.9.2 || ^5.0.0",
63
+ "webpack-cli": "^4.9.2 || ^5.0.0 || ^6.0.0",
64
64
  "webpack-dev-server": "^4.9.0 || ^5.0.0",
65
65
  "webpack-merge": "^5.8.0 || ^6.0.0"
66
66
  },
@@ -4,6 +4,15 @@ const { chdirTestApp, resetEnv } = require("../helpers")
4
4
  const rootPath = process.cwd()
5
5
  chdirTestApp()
6
6
 
7
+ jest.mock("../../package/utils/helpers", () => {
8
+ const original = jest.requireActual("../../package/utils/helpers")
9
+ const moduleExists = () => false
10
+ return {
11
+ ...original,
12
+ moduleExists
13
+ }
14
+ })
15
+
7
16
  describe("Development environment", () => {
8
17
  beforeEach(() => jest.resetModules() && resetEnv())
9
18
  afterAll(() => process.chdir(rootPath))
@@ -10,6 +10,15 @@ chdirTestApp()
10
10
  const baseConfig = require("../../../package/environments/base")
11
11
  const config = require("../../../package/config")
12
12
 
13
+ jest.mock("../../../package/utils/helpers", () => {
14
+ const original = jest.requireActual("../../../package/utils/helpers")
15
+ const moduleExists = () => false
16
+ return {
17
+ ...original,
18
+ moduleExists
19
+ }
20
+ })
21
+
13
22
  describe("Base config", () => {
14
23
  beforeEach(() => jest.resetModules() && resetEnv())
15
24
  afterAll(() => process.chdir(rootPath))
@@ -3,6 +3,15 @@ const { chdirTestApp, resetEnv } = require("../../helpers")
3
3
  const rootPath = process.cwd()
4
4
  chdirTestApp()
5
5
 
6
+ jest.mock("../../../package/utils/helpers", () => {
7
+ const original = jest.requireActual("../../../package/utils/helpers")
8
+ const moduleExists = () => false
9
+ return {
10
+ ...original,
11
+ moduleExists
12
+ }
13
+ })
14
+
6
15
  describe("Development specific config", () => {
7
16
  beforeEach(() => {
8
17
  jest.resetModules()
@@ -3,6 +3,15 @@ const { chdirTestApp, resetEnv } = require("../../helpers")
3
3
  const rootPath = process.cwd()
4
4
  chdirTestApp()
5
5
 
6
+ jest.mock("../../../package/utils/helpers", () => {
7
+ const original = jest.requireActual("../../../package/utils/helpers")
8
+ const moduleExists = () => false
9
+ return {
10
+ ...original,
11
+ moduleExists
12
+ }
13
+ })
14
+
6
15
  describe("Production specific config", () => {
7
16
  beforeEach(() => {
8
17
  jest.resetModules()
@@ -0,0 +1,11 @@
1
+ const { packageMajorVersion } = require("../../package/utils/helpers")
2
+
3
+ describe("packageMajorVersion", () => {
4
+ test("should find that sass-loader is v16", () => {
5
+ expect(packageMajorVersion("sass-loader")).toBe("16")
6
+ })
7
+
8
+ test("should find that nonexistent is v12", () => {
9
+ expect(packageMajorVersion("nonexistent")).toBe("12")
10
+ })
11
+ })
@@ -1,5 +1,14 @@
1
1
  const index = require("../../package/index")
2
2
 
3
+ jest.mock("../../package/utils/helpers", () => {
4
+ const original = jest.requireActual("../../package/utils/helpers")
5
+ const moduleExists = () => false
6
+ return {
7
+ ...original,
8
+ moduleExists
9
+ }
10
+ })
11
+
3
12
  describe("index", () => {
4
13
  test("exports webpack-merge v5 functions", () => {
5
14
  expect(index.merge).toBeInstanceOf(Function)
@@ -4,6 +4,15 @@ const { chdirTestApp } = require("../helpers")
4
4
  const rootPath = process.cwd()
5
5
  chdirTestApp()
6
6
 
7
+ jest.mock("../../package/utils/helpers", () => {
8
+ const original = jest.requireActual("../../package/utils/helpers")
9
+ const moduleExists = () => false
10
+ return {
11
+ ...original,
12
+ moduleExists
13
+ }
14
+ })
15
+
7
16
  describe("Production environment", () => {
8
17
  afterAll(() => process.chdir(rootPath))
9
18
 
@@ -1,5 +1,14 @@
1
1
  const rules = require("../../../package/rules/index")
2
2
 
3
+ jest.mock("../../../package/utils/helpers", () => {
4
+ const original = jest.requireActual("../../../package/utils/helpers")
5
+ const moduleExists = () => false
6
+ return {
7
+ ...original,
8
+ moduleExists
9
+ }
10
+ })
11
+
3
12
  describe("index", () => {
4
13
  test("rule tests are regexes", () => {
5
14
  rules.forEach((rule) => expect(rule.test instanceof RegExp).toBe(true))
@@ -0,0 +1,23 @@
1
+ const sass = require("../../../package/rules/sass")
2
+
3
+ jest.mock("../../../package/utils/helpers", () => {
4
+ const original = jest.requireActual("../../../package/utils/helpers")
5
+ const canProcess = (rule, fn) => {
6
+ return fn("This path was mocked")
7
+ }
8
+ const packageMajorVersion = () => "15"
9
+ return {
10
+ ...original,
11
+ canProcess,
12
+ packageMajorVersion
13
+ }
14
+ })
15
+
16
+ jest.mock("../../../package/utils/inliningCss", () => true)
17
+
18
+ describe("sass rule", () => {
19
+ test("contains loadPaths as the sassOptions key if sass-loader is v15 or earlier", () => {
20
+ expect(typeof sass.use[3].options.sassOptions.includePaths).toBe("object")
21
+ expect(typeof sass.use[3].options.sassOptions.loadPaths).toBe("undefined")
22
+ })
23
+ })
@@ -0,0 +1,23 @@
1
+ const sass = require("../../../package/rules/sass")
2
+
3
+ jest.mock("../../../package/utils/helpers", () => {
4
+ const original = jest.requireActual("../../../package/utils/helpers")
5
+ const canProcess = (rule, fn) => {
6
+ return fn("This path was mocked")
7
+ }
8
+ return {
9
+ ...original,
10
+ canProcess
11
+ }
12
+ })
13
+
14
+ jest.mock("../../../package/utils/inliningCss", () => true)
15
+
16
+ describe("sass rule", () => {
17
+ test("contains loadPaths as the sassOptions key if sass-loader is v15 or earlier", () => {
18
+ expect(typeof sass.use[3].options.sassOptions.includePaths).toBe(
19
+ "undefined"
20
+ )
21
+ expect(typeof sass.use[3].options.sassOptions.loadPaths).toBe("object")
22
+ })
23
+ })
@@ -4,6 +4,15 @@ const { chdirTestApp } = require("../helpers")
4
4
  const rootPath = process.cwd()
5
5
  chdirTestApp()
6
6
 
7
+ jest.mock("../../package/utils/helpers", () => {
8
+ const original = jest.requireActual("../../package/utils/helpers")
9
+ const moduleExists = () => false
10
+ return {
11
+ ...original,
12
+ moduleExists
13
+ }
14
+ })
15
+
7
16
  describe("Custom environment", () => {
8
17
  afterAll(() => process.chdir(rootPath))
9
18
 
@@ -4,6 +4,15 @@ const { chdirTestApp } = require("../helpers")
4
4
  const rootPath = process.cwd()
5
5
  chdirTestApp()
6
6
 
7
+ jest.mock("../../package/utils/helpers", () => {
8
+ const original = jest.requireActual("../../package/utils/helpers")
9
+ const moduleExists = () => false
10
+ return {
11
+ ...original,
12
+ moduleExists
13
+ }
14
+ })
15
+
7
16
  describe("Test environment", () => {
8
17
  afterAll(() => process.chdir(rootPath))
9
18
 
data/test/resolver.js ADDED
@@ -0,0 +1,13 @@
1
+ const mapping = {
2
+ "css-loader": "this path was mocked",
3
+ "sass-loader/package.json": "../../__mocks__/sass-loader/package.json",
4
+ "nonexistent/package.json": "../../__mocks__/nonexistent/package.json"
5
+ }
6
+
7
+ function resolver(module, options) {
8
+ // If the path corresponds to a key in the mapping object, returns the fakely resolved path
9
+ // otherwise it calls the Jest's default resolver
10
+ return mapping[module] || options.defaultResolver(module, options)
11
+ }
12
+
13
+ module.exports = resolver
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: 8.0.1
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-07-10 00:00:00.000000000 Z
13
+ date: 2025-01-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -155,6 +155,8 @@ files:
155
155
  - MIT-LICENSE
156
156
  - README.md
157
157
  - Rakefile
158
+ - __mocks__/nonexistent/package.json
159
+ - __mocks__/sass-loader/package.json
158
160
  - config/README.md
159
161
  - config/shakapacker.yml
160
162
  - docs/customizing_babel_config.md
@@ -174,6 +176,8 @@ files:
174
176
  - gemfiles/Gemfile-rails.6.1.x
175
177
  - gemfiles/Gemfile-rails.7.0.x
176
178
  - gemfiles/Gemfile-rails.7.1.x
179
+ - gemfiles/Gemfile-rails.7.2.x
180
+ - gemfiles/Gemfile-rails.8.0.x
177
181
  - jest.config.js
178
182
  - lib/install/application.js
179
183
  - lib/install/bin/shakapacker
@@ -261,6 +265,7 @@ files:
261
265
  - test/package/environments/base.test.js
262
266
  - test/package/environments/development.test.js
263
267
  - test/package/environments/production.test.js
268
+ - test/package/helpers.test.js
264
269
  - test/package/index.test.js
265
270
  - test/package/production.test.js
266
271
  - test/package/rules/babel.test.js
@@ -268,15 +273,18 @@ files:
268
273
  - test/package/rules/file.test.js
269
274
  - test/package/rules/index.test.js
270
275
  - test/package/rules/raw.test.js
276
+ - test/package/rules/sass.test.js
277
+ - test/package/rules/sass1.test.js
271
278
  - test/package/rules/swc.test.js
272
279
  - test/package/staging.test.js
273
280
  - test/package/test.test.js
281
+ - test/resolver.js
274
282
  - yarn.lock
275
283
  homepage: https://github.com/shakacode/shakapacker
276
284
  licenses:
277
285
  - MIT
278
286
  metadata:
279
- source_code_uri: https://github.com/shakacode/shakapacker/tree/v8.0.1
287
+ source_code_uri: https://github.com/shakacode/shakapacker/tree/v8.1.0
280
288
  post_install_message:
281
289
  rdoc_options: []
282
290
  require_paths:
@@ -292,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
300
  - !ruby/object:Gem::Version
293
301
  version: '0'
294
302
  requirements: []
295
- rubygems_version: 3.5.3
303
+ rubygems_version: 3.5.11
296
304
  signing_key:
297
305
  specification_version: 4
298
306
  summary: Use webpack to manage app-like JavaScript modules in Rails
@@ -305,6 +313,7 @@ test_files:
305
313
  - test/package/environments/base.test.js
306
314
  - test/package/environments/development.test.js
307
315
  - test/package/environments/production.test.js
316
+ - test/package/helpers.test.js
308
317
  - test/package/index.test.js
309
318
  - test/package/production.test.js
310
319
  - test/package/rules/babel.test.js
@@ -312,6 +321,9 @@ test_files:
312
321
  - test/package/rules/file.test.js
313
322
  - test/package/rules/index.test.js
314
323
  - test/package/rules/raw.test.js
324
+ - test/package/rules/sass.test.js
325
+ - test/package/rules/sass1.test.js
315
326
  - test/package/rules/swc.test.js
316
327
  - test/package/staging.test.js
317
328
  - test/package/test.test.js
329
+ - test/resolver.js