vite_rails 1.0.7 → 1.0.12

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/CONTRIBUTING.md +0 -1
  4. data/README.md +34 -8
  5. data/lib/install/config/vite.config.ts +0 -3
  6. data/lib/install/javascript/entrypoints/application.js +8 -4
  7. data/lib/install/template.rb +3 -3
  8. data/lib/tasks/vite/build.rake +12 -6
  9. data/lib/tasks/vite/clean.rake +1 -3
  10. data/lib/tasks/vite/install_dependencies.rake +3 -9
  11. data/lib/tasks/vite/verify_install.rake +3 -3
  12. data/lib/vite_rails.rb +23 -34
  13. data/lib/vite_rails/builder.rb +11 -13
  14. data/lib/vite_rails/commands.rb +51 -10
  15. data/lib/vite_rails/config.rb +70 -35
  16. data/lib/vite_rails/dev_server_proxy.rb +26 -18
  17. data/lib/vite_rails/helper.rb +14 -10
  18. data/lib/vite_rails/manifest.rb +27 -22
  19. data/lib/vite_rails/runner.rb +3 -6
  20. data/lib/vite_rails/version.rb +1 -1
  21. data/package.json +9 -2
  22. data/package/default.vite.json +2 -1
  23. data/test/builder_test.rb +27 -22
  24. data/test/commands_test.rb +67 -0
  25. data/test/config_test.rb +133 -0
  26. data/test/dev_server_proxy_test.rb +102 -0
  27. data/test/dev_server_test.rb +0 -30
  28. data/test/engine_rake_tasks_test.rb +56 -17
  29. data/test/helper_test.rb +40 -103
  30. data/test/manifest_test.rb +39 -29
  31. data/test/mode_test.rb +6 -11
  32. data/test/mounted_app/test/dummy/config/vite.json +5 -11
  33. data/test/mounted_app/test/dummy/package.json +5 -4
  34. data/test/mounted_app/test/dummy/yarn.lock +208 -0
  35. data/test/rake_tasks_test.rb +7 -21
  36. data/test/runner_test.rb +31 -0
  37. data/test/test_app/app/frontend/entrypoints/application.js +2 -0
  38. data/test/test_app/config/vite.json +0 -2
  39. data/test/test_app/config/vite_additional_paths.json +5 -0
  40. data/test/test_app/config/vite_public_dir.json +5 -0
  41. data/test/test_app/public/vite-production/manifest-assets.json +10 -0
  42. data/test/test_app/public/vite-production/manifest.json +39 -0
  43. data/test/test_helper.rb +48 -14
  44. metadata +25 -25
  45. data/test/command_test.rb +0 -35
  46. data/test/configuration_test.rb +0 -80
  47. data/test/dev_server_runner_test.rb +0 -83
  48. data/test/test_app/app/javascript/entrypoints/application.js +0 -10
  49. data/test/test_app/app/javascript/entrypoints/multi_entry.css +0 -4
  50. data/test/test_app/app/javascript/entrypoints/multi_entry.js +0 -4
  51. data/test/test_app/config/vite_public_root.yml +0 -20
  52. data/test/test_app/public/vite/manifest.json +0 -36
  53. data/test/vite_runner_test.rb +0 -59
  54. data/test/webpacker_test.rb +0 -15
@@ -3,6 +3,8 @@
3
3
  require 'test_helper'
4
4
 
5
5
  class HelperTest < ActionView::TestCase
6
+ include ViteRailsTestHelpers
7
+
6
8
  tests ViteRails::Helper
7
9
 
8
10
  attr_reader :request
@@ -17,122 +19,57 @@ class HelperTest < ActionView::TestCase
17
19
  end.new
18
20
  end
19
21
 
20
- def test_asset_pack_path
21
- assert_equal '/packs/bootstrap-300631c4f0e0f9c865bc.js', asset_pack_path('bootstrap.js')
22
- assert_equal '/packs/bootstrap-c38deda30895059837cf.css', asset_pack_path('bootstrap.css')
22
+ def test_vite_client_tag
23
+ assert_nil vite_client_tag
24
+ with_dev_server_running {
25
+ assert_equal '<script src="/vite-production/@vite/client" type="module"></script>', vite_client_tag
26
+ }
23
27
  end
24
28
 
25
- def test_asset_pack_url
26
- assert_equal 'https://example.com/packs/bootstrap-300631c4f0e0f9c865bc.js', asset_pack_url('bootstrap.js')
27
- assert_equal 'https://example.com/packs/bootstrap-c38deda30895059837cf.css', asset_pack_url('bootstrap.css')
29
+ def test_vite_asset_path
30
+ assert_equal '/vite-production/assets/application.d9514acc.js', vite_asset_path('application.ts')
31
+ assert_equal '/vite-production/assets/styles.0e53e684.css', vite_asset_path('styles.css')
32
+ with_dev_server_running {
33
+ assert_equal '/vite-production/application.ts', vite_asset_path('application.ts')
34
+ assert_equal '/vite-production/styles.css', vite_asset_path('styles.css')
35
+ }
28
36
  end
29
37
 
30
- def test_image_pack_path
31
- assert_equal '/packs/application-k344a6d59eef8632c9d1.png', image_pack_path('application.png')
32
- assert_equal '/packs/media/images/image-c38deda30895059837cf.jpg', image_pack_path('image.jpg')
33
- assert_equal '/packs/media/images/image-c38deda30895059837cf.jpg', image_pack_path('media/images/image.jpg')
34
- assert_equal '/packs/media/images/nested/image-c38deda30895059837cf.jpg', image_pack_path('nested/image.jpg')
35
- assert_equal '/packs/media/images/nested/image-c38deda30895059837cf.jpg', image_pack_path('media/images/nested/image.jpg')
36
- end
38
+ def test_vite_stylesheet_tag
39
+ assert_equal link(href: '/vite-production/assets/styles.0e53e684.css'), vite_stylesheet_tag('styles')
37
40
 
38
- def test_image_pack_url
39
- assert_equal 'https://example.com/packs/application-k344a6d59eef8632c9d1.png', image_pack_url('application.png')
40
- assert_equal 'https://example.com/packs/media/images/image-c38deda30895059837cf.jpg', image_pack_url('image.jpg')
41
- assert_equal 'https://example.com/packs/media/images/image-c38deda30895059837cf.jpg', image_pack_url('media/images/image.jpg')
42
- assert_equal 'https://example.com/packs/media/images/nested/image-c38deda30895059837cf.jpg', image_pack_url('nested/image.jpg')
43
- assert_equal 'https://example.com/packs/media/images/nested/image-c38deda30895059837cf.jpg', image_pack_url('media/images/nested/image.jpg')
44
- end
41
+ assert_equal vite_stylesheet_tag('styles'), vite_stylesheet_tag('styles.css')
45
42
 
46
- def test_image_pack_tag
47
- assert_equal \
48
- '<img alt="Edit Entry" src="/packs/application-k344a6d59eef8632c9d1.png" width="16" height="10" />',
49
- image_pack_tag('application.png', size: '16x10', alt: 'Edit Entry')
50
- assert_equal \
51
- '<img alt="Edit Entry" src="/packs/media/images/image-c38deda30895059837cf.jpg" width="16" height="10" />',
52
- image_pack_tag('image.jpg', size: '16x10', alt: 'Edit Entry')
53
- assert_equal \
54
- '<img alt="Edit Entry" src="/packs/media/images/image-c38deda30895059837cf.jpg" width="16" height="10" />',
55
- image_pack_tag('media/images/image.jpg', size: '16x10', alt: 'Edit Entry')
56
- assert_equal \
57
- '<img alt="Edit Entry" src="/packs/media/images/nested/image-c38deda30895059837cf.jpg" width="16" height="10" />',
58
- image_pack_tag('nested/image.jpg', size: '16x10', alt: 'Edit Entry')
59
- assert_equal \
60
- '<img alt="Edit Entry" src="/packs/media/images/nested/image-c38deda30895059837cf.jpg" width="16" height="10" />',
61
- image_pack_tag('media/images/nested/image.jpg', size: '16x10', alt: 'Edit Entry')
62
- assert_equal \
63
- '<img srcset="/packs/media/images/image-2x-7cca48e6cae66ec07b8e.jpg 2x" src="/packs/media/images/image-c38deda30895059837cf.jpg" />',
64
- image_pack_tag('media/images/image.jpg', srcset: { 'media/images/image-2x.jpg' => '2x' })
65
- end
43
+ with_dev_server_running {
44
+ assert_equal link(href: '/vite-production/styles.css'), vite_stylesheet_tag('styles')
66
45
 
67
- def test_favicon_pack_tag
68
- assert_equal \
69
- '<link rel="apple-touch-icon" type="image/png" href="/packs/application-k344a6d59eef8632c9d1.png" />',
70
- favicon_pack_tag('application.png', rel: 'apple-touch-icon', type: 'image/png')
71
- assert_equal \
72
- '<link rel="apple-touch-icon" type="image/png" href="/packs/media/images/mb-icon-c38deda30895059837cf.png" />',
73
- favicon_pack_tag('mb-icon.png', rel: 'apple-touch-icon', type: 'image/png')
74
- assert_equal \
75
- '<link rel="apple-touch-icon" type="image/png" href="/packs/media/images/mb-icon-c38deda30895059837cf.png" />',
76
- favicon_pack_tag('media/images/mb-icon.png', rel: 'apple-touch-icon', type: 'image/png')
77
- assert_equal \
78
- '<link rel="apple-touch-icon" type="image/png" href="/packs/media/images/nested/mb-icon-c38deda30895059837cf.png" />',
79
- favicon_pack_tag('nested/mb-icon.png', rel: 'apple-touch-icon', type: 'image/png')
80
- assert_equal \
81
- '<link rel="apple-touch-icon" type="image/png" href="/packs/media/images/nested/mb-icon-c38deda30895059837cf.png" />',
82
- favicon_pack_tag('media/images/nested/mb-icon.png', rel: 'apple-touch-icon', type: 'image/png')
46
+ assert_equal vite_stylesheet_tag('styles'), vite_stylesheet_tag('styles.css')
47
+ }
83
48
  end
84
49
 
85
- def test_javascript_pack_tag
86
- assert_equal \
87
- %(<script src="/packs/bootstrap-300631c4f0e0f9c865bc.js"></script>),
88
- javascript_pack_tag('bootstrap.js')
89
- end
50
+ def test_vite_javascript_tag
51
+ assert_equal [
52
+ %(<script src="/vite-production/assets/application.d9514acc.js" crossorigin="anonymous" type="module"></script>),
53
+ %(<link rel="preload" href="/vite-production/assets/vendor.880705da.js" as="script" type="text/javascript" crossorigin="anonymous">),
54
+ %(<link rel="preload" href="/vite-production/assets/example_import.8e1fddc0.js" as="script" type="text/javascript" crossorigin="anonymous">),
55
+ link(href: '/vite-production/assets/application.f510c1e9.css'),
56
+ ].join, vite_javascript_tag('application')
90
57
 
91
- def test_javascript_pack_tag_symbol
92
- assert_equal \
93
- %(<script src="/packs/bootstrap-300631c4f0e0f9c865bc.js"></script>),
94
- javascript_pack_tag(:bootstrap)
95
- end
58
+ assert_equal vite_javascript_tag('application'), vite_javascript_tag('application.js')
59
+ assert_equal vite_javascript_tag('application'), vite_typescript_tag('application')
96
60
 
97
- def test_javascript_pack_tag_splat
98
- assert_equal \
99
- %(<script src="/packs/bootstrap-300631c4f0e0f9c865bc.js" defer="defer"></script>\n) +
100
- %(<script src="/packs/application-k344a6d59eef8632c9d1.js" defer="defer"></script>),
101
- javascript_pack_tag('bootstrap.js', 'application.js', defer: true)
102
- end
103
-
104
- def test_javascript_pack_tag_split_chunks
105
- assert_equal \
106
- %(<script src="/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js"></script>\n) +
107
- %(<script src="/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js"></script>\n) +
108
- %(<script src="/packs/application-k344a6d59eef8632c9d1.js"></script>),
109
- javascript_packs_with_chunks_tag('application')
110
- end
111
-
112
- def test_stylesheet_pack_tag_split_chunks
113
- assert_equal \
114
- %(<link rel="stylesheet" media="screen" href="/packs/1-c20632e7baf2c81200d3.chunk.css" />\n) +
115
- %(<link rel="stylesheet" media="screen" href="/packs/application-k344a6d59eef8632c9d1.chunk.css" />\n) +
116
- %(<link rel="stylesheet" media="screen" href="/packs/hello_stimulus-k344a6d59eef8632c9d1.chunk.css" />),
117
- stylesheet_packs_with_chunks_tag('application', 'hello_stimulus')
118
- end
119
-
120
- def test_stylesheet_pack_tag
121
- assert_equal \
122
- %(<link rel="stylesheet" media="screen" href="/packs/bootstrap-c38deda30895059837cf.css" />),
123
- stylesheet_pack_tag('bootstrap.css')
124
- end
61
+ with_dev_server_running {
62
+ assert_equal %(<script src="/vite-production/application.js" crossorigin="anonymous" type="module"></script>),
63
+ vite_javascript_tag('application')
125
64
 
126
- def test_stylesheet_pack_tag_symbol
127
- assert_equal \
128
- %(<link rel="stylesheet" media="screen" href="/packs/bootstrap-c38deda30895059837cf.css" />),
129
- stylesheet_pack_tag(:bootstrap)
65
+ assert_equal %(<script src="/vite-production/application.ts" crossorigin="anonymous" type="module"></script>),
66
+ vite_typescript_tag('application')
67
+ }
130
68
  end
131
69
 
132
- def test_stylesheet_pack_tag_splat
133
- assert_equal \
134
- %(<link rel="stylesheet" media="all" href="/packs/bootstrap-c38deda30895059837cf.css" />\n) +
135
- %(<link rel="stylesheet" media="all" href="/packs/application-dd6b1cd38bfa093df600.css" />),
136
- stylesheet_pack_tag('bootstrap.css', 'application.css', media: 'all')
70
+ def link(href:, rel: 'stylesheet', media: 'screen')
71
+ attrs = [%(media="#{ media }"), %(href="#{ href }")]
72
+ attrs.reverse! if Rails.gem_version > Gem::Version.new('6.1.1')
73
+ %(<link rel="#{ rel }" #{ attrs.join(' ') } />)
137
74
  end
138
75
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- class ManifestTest < Minitest::Test
5
+ class ManifestTest < ViteRails::Test
6
6
  def test_lookup_exception!
7
7
  asset_file = 'calendar.js'
8
8
 
@@ -10,7 +10,7 @@ class ManifestTest < Minitest::Test
10
10
  ViteRails.manifest.lookup!(asset_file)
11
11
  end
12
12
 
13
- assert_match "ViteRails can't find #{ asset_file } in #{ manifest_path }", error.message
13
+ assert_match "Vite Rails can't find #{ asset_file } in #{ manifest_path }", error.message
14
14
  end
15
15
 
16
16
  def test_lookup_with_type_exception!
@@ -20,56 +20,66 @@ class ManifestTest < Minitest::Test
20
20
  ViteRails.manifest.lookup!(asset_file, type: :javascript)
21
21
  end
22
22
 
23
- assert_match "ViteRails can't find #{ asset_file }.js in #{ manifest_path }", error.message
23
+ assert_match "Vite Rails can't find #{ asset_file }.js in #{ manifest_path }", error.message
24
24
  end
25
25
 
26
26
  def test_lookup_success!
27
- assert_equal ViteRails.manifest.lookup!('bootstrap.js'), '/packs/bootstrap-300631c4f0e0f9c865bc.js'
27
+ entry = {
28
+ 'file' => '/vite-production/assets/application.d9514acc.js',
29
+ 'src' => 'application.js',
30
+ 'isEntry' => true,
31
+ 'imports' => [
32
+ { 'file' => '/vite-production/assets/vendor.880705da.js' },
33
+ { 'file' => '/vite-production/assets/example_import.8e1fddc0.js', 'src' => 'example_import.js', 'isEntry' => true },
34
+ ],
35
+ 'css' => [
36
+ '/vite-production/assets/application.f510c1e9.css',
37
+ ],
38
+ }
39
+ assert_equal entry, ViteRails.manifest.lookup!('application.js', type: :javascript)
40
+ assert_equal entry.merge('src' => 'application.ts'), ViteRails.manifest.lookup!('application', type: :typescript)
28
41
  end
29
42
 
30
- def test_lookup_nil
31
- assert_nil ViteRails.manifest.lookup('foo.js')
43
+ def test_lookup_success_with_dev_server_running!
44
+ entry = { 'file' => '/vite-production/application.js' }
45
+ with_dev_server_running {
46
+ assert_equal entry, ViteRails.manifest.lookup!('application.js')
47
+ }
48
+ entry = { 'file' => '/vite-production/application.ts' }
49
+ with_dev_server_running {
50
+ assert_equal entry, ViteRails.manifest.lookup!('application', type: :typescript)
51
+ }
32
52
  end
33
53
 
34
- def test_lookup_chunks_nil
35
- assert_nil ViteRails.manifest.lookup_pack_with_chunks('foo.js')
54
+ def test_lookup_nil
55
+ assert_nil ViteRails.manifest.lookup('foo.js')
36
56
  end
37
57
 
38
58
  def test_lookup_success
39
- assert_equal ViteRails.manifest.lookup('bootstrap.js'), '/packs/bootstrap-300631c4f0e0f9c865bc.js'
40
- end
41
-
42
- def test_lookup_entrypoint_exception!
43
- asset_file = 'calendar'
44
-
45
- error = assert_raises_manifest_missing_entry_error do
46
- ViteRails.manifest.lookup_pack_with_chunks!(asset_file, type: :javascript)
47
- end
48
-
49
- assert_match "ViteRails can't find #{ asset_file }.js in #{ manifest_path }", error.message
59
+ entry = { 'file' => '/vite-production/assets/styles.0e53e684.css', 'src' => 'styles.css' }
60
+ assert_equal entry, ViteRails.manifest.lookup('styles.css')
61
+ assert_equal entry, ViteRails.manifest.lookup('styles.css', type: :stylesheet)
62
+ assert_equal entry, ViteRails.manifest.lookup('styles', type: :stylesheet)
50
63
  end
51
64
 
52
- def test_lookup_entrypoint
53
- application_entrypoints = [
54
- '/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js',
55
- '/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js',
56
- '/packs/application-k344a6d59eef8632c9d1.js',
57
- ]
58
-
59
- assert_equal ViteRails.manifest.lookup_pack_with_chunks!('application', type: :javascript), application_entrypoints
65
+ def test_lookup_success_with_dev_server_running
66
+ entry = { 'file' => '/vite-production/styles.css' }
67
+ with_dev_server_running {
68
+ assert_equal entry, ViteRails.manifest.lookup('styles', type: :stylesheet)
69
+ }
60
70
  end
61
71
 
62
72
  private
63
73
 
64
74
  def assert_raises_manifest_missing_entry_error(&block)
65
75
  error = nil
66
- ViteRails.config.stub :compile?, false do
76
+ ViteRails.config.stub :auto_build, false do
67
77
  error = assert_raises ViteRails::Manifest::MissingEntryError, &block
68
78
  end
69
79
  error
70
80
  end
71
81
 
72
82
  def manifest_path
73
- File.expand_path File.join(File.dirname(__FILE__), 'test_app/public/packs', 'manifest.json').to_s
83
+ File.expand_path File.join(File.dirname(__FILE__), 'test_app/public/vite-production', 'manifest.json').to_s
74
84
  end
75
85
  end
@@ -3,19 +3,14 @@
3
3
  require 'test_helper'
4
4
 
5
5
  class ModeTest < ViteRails::Test
6
- def test_current
7
- assert_equal ViteRails.config.mode, Rails.env
6
+ def test_mode
7
+ assert_equal Rails.env, ViteRails.config.mode
8
+ assert_equal ViteRails.config.mode, ViteRails.mode
8
9
  end
9
10
 
10
- def test_custom_without_config
11
- with_rails_env('foo') do
12
- assert_equal ViteRails.config.mode, 'production'
13
- end
14
- end
15
-
16
- def test_custom_with_config
17
- with_rails_env('staging') do
18
- assert_equal ViteRails.config.mode, 'staging'
11
+ def test_mode_with_rails_env
12
+ with_rails_env('staging') do |config|
13
+ assert_equal 'staging', config.mode
19
14
  end
20
15
  end
21
16
  end
@@ -1,20 +1,14 @@
1
1
  {
2
+ "all": {
3
+ "watchAdditionalPaths": []
4
+ },
2
5
  "development": {
3
6
  "autoBuild": true,
4
- "port": "3535",
5
- "https": true,
6
- "publicOutputDir": "vite-development"
7
+ "publicOutputDir": "vite-dev",
8
+ "port": 3036
7
9
  },
8
10
  "test": {
9
11
  "autoBuild": true,
10
12
  "publicOutputDir": "vite-test"
11
- },
12
- "production": {
13
- "autoBuild": false,
14
- "publicOutputDir": "vite-production"
15
- },
16
- "staging": {
17
- "autoBuild": false,
18
- "publicOutputDir": "vite-staging"
19
13
  }
20
14
  }
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "private": true,
3
- "dependencies": {
4
- "vite_rails": "file:../../../../"
5
- },
6
- "license": "MIT"
3
+ "license": "MIT",
4
+ "devDependencies": {
5
+ "vite": "^2.0.0-beta.56",
6
+ "vite-plugin-ruby": "^1.0.6"
7
+ }
7
8
  }
@@ -0,0 +1,208 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@nodelib/fs.scandir@2.1.4":
6
+ version "2.1.4"
7
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
8
+ integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==
9
+ dependencies:
10
+ "@nodelib/fs.stat" "2.0.4"
11
+ run-parallel "^1.1.9"
12
+
13
+ "@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":
14
+ version "2.0.4"
15
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"
16
+ integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==
17
+
18
+ "@nodelib/fs.walk@^1.2.3":
19
+ version "1.2.6"
20
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"
21
+ integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==
22
+ dependencies:
23
+ "@nodelib/fs.scandir" "2.1.4"
24
+ fastq "^1.6.0"
25
+
26
+ braces@^3.0.1:
27
+ version "3.0.2"
28
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
29
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
30
+ dependencies:
31
+ fill-range "^7.0.1"
32
+
33
+ colorette@^1.2.1:
34
+ version "1.2.1"
35
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
36
+ integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
37
+
38
+ esbuild@^0.8.34:
39
+ version "0.8.34"
40
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.34.tgz#16b4ac58f74c821d2c5a8c2f0585ca96a38ab4e6"
41
+ integrity sha512-tnr0V1ooakYr1aRLXQLzCn2GVG1kBTW3FWpRyC+NgrR3ntsouVpJOlTOV0BS4YLATx3/c+x3h/uBq9lWJlUAtQ==
42
+
43
+ fast-glob@^3.2.4:
44
+ version "3.2.5"
45
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
46
+ integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
47
+ dependencies:
48
+ "@nodelib/fs.stat" "^2.0.2"
49
+ "@nodelib/fs.walk" "^1.2.3"
50
+ glob-parent "^5.1.0"
51
+ merge2 "^1.3.0"
52
+ micromatch "^4.0.2"
53
+ picomatch "^2.2.1"
54
+
55
+ fastq@^1.6.0:
56
+ version "1.10.0"
57
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb"
58
+ integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==
59
+ dependencies:
60
+ reusify "^1.0.4"
61
+
62
+ fill-range@^7.0.1:
63
+ version "7.0.1"
64
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
65
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
66
+ dependencies:
67
+ to-regex-range "^5.0.1"
68
+
69
+ fsevents@~2.1.2:
70
+ version "2.1.3"
71
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
72
+ integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
73
+
74
+ function-bind@^1.1.1:
75
+ version "1.1.1"
76
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
77
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
78
+
79
+ glob-parent@^5.1.0:
80
+ version "5.1.1"
81
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
82
+ integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
83
+ dependencies:
84
+ is-glob "^4.0.1"
85
+
86
+ has@^1.0.3:
87
+ version "1.0.3"
88
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
89
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
90
+ dependencies:
91
+ function-bind "^1.1.1"
92
+
93
+ is-core-module@^2.1.0:
94
+ version "2.2.0"
95
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
96
+ integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
97
+ dependencies:
98
+ has "^1.0.3"
99
+
100
+ is-extglob@^2.1.1:
101
+ version "2.1.1"
102
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
103
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
104
+
105
+ is-glob@^4.0.1:
106
+ version "4.0.1"
107
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
108
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
109
+ dependencies:
110
+ is-extglob "^2.1.1"
111
+
112
+ is-number@^7.0.0:
113
+ version "7.0.0"
114
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
115
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
116
+
117
+ merge2@^1.3.0:
118
+ version "1.4.1"
119
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
120
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
121
+
122
+ micromatch@^4.0.2:
123
+ version "4.0.2"
124
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
125
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
126
+ dependencies:
127
+ braces "^3.0.1"
128
+ picomatch "^2.0.5"
129
+
130
+ nanoid@^3.1.20:
131
+ version "3.1.20"
132
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
133
+ integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
134
+
135
+ path-parse@^1.0.6:
136
+ version "1.0.6"
137
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
138
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
139
+
140
+ picomatch@^2.0.5, picomatch@^2.2.1:
141
+ version "2.2.2"
142
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
143
+ integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
144
+
145
+ postcss@^8.2.1:
146
+ version "8.2.4"
147
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04"
148
+ integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==
149
+ dependencies:
150
+ colorette "^1.2.1"
151
+ nanoid "^3.1.20"
152
+ source-map "^0.6.1"
153
+
154
+ resolve@^1.19.0:
155
+ version "1.19.0"
156
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
157
+ integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
158
+ dependencies:
159
+ is-core-module "^2.1.0"
160
+ path-parse "^1.0.6"
161
+
162
+ reusify@^1.0.4:
163
+ version "1.0.4"
164
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
165
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
166
+
167
+ rollup@^2.35.1:
168
+ version "2.37.1"
169
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.37.1.tgz#aa7aadffd75c80393f9314f9857e851b0ffd34e7"
170
+ integrity sha512-V3ojEeyGeSdrMSuhP3diBb06P+qV4gKQeanbDv+Qh/BZbhdZ7kHV0xAt8Yjk4GFshq/WjO7R4c7DFM20AwTFVQ==
171
+ optionalDependencies:
172
+ fsevents "~2.1.2"
173
+
174
+ run-parallel@^1.1.9:
175
+ version "1.1.10"
176
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
177
+ integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
178
+
179
+ source-map@^0.6.1:
180
+ version "0.6.1"
181
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
182
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
183
+
184
+ to-regex-range@^5.0.1:
185
+ version "5.0.1"
186
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
187
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
188
+ dependencies:
189
+ is-number "^7.0.0"
190
+
191
+ vite-plugin-ruby@^1.0.6:
192
+ version "1.0.6"
193
+ resolved "https://registry.yarnpkg.com/vite-plugin-ruby/-/vite-plugin-ruby-1.0.6.tgz#7ecaf2b8ad4237096c631587e7170c4ce95c0a26"
194
+ integrity sha512-wJ0Djf/t1bqaowO14ceeNKeqgKW69WwNHboV/Gxq+66NpuDSm8jLKRtm+CiqnvlT9fK5NCiNwtyFkgsKbKAH/g==
195
+ dependencies:
196
+ fast-glob "^3.2.4"
197
+
198
+ vite@^2.0.0-beta.56:
199
+ version "2.0.0-beta.56"
200
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.0.0-beta.56.tgz#b254ec4647ae1383d7c5b6f3fdb01f8971b5bcdd"
201
+ integrity sha512-MX20PSXT6wTfq37B9d/iTmfAut4kBT6DOquw60zVFRtnO7hR9sNmkM6pmoNyVuYJrlkhKZZqoO2DnYs3C7LKCw==
202
+ dependencies:
203
+ esbuild "^0.8.34"
204
+ postcss "^8.2.1"
205
+ resolve "^1.19.0"
206
+ rollup "^2.35.1"
207
+ optionalDependencies:
208
+ fsevents "~2.1.2"