dependabot-bun 0.296.2 → 0.296.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/.eslintrc +11 -0
  3. data/helpers/README.md +29 -0
  4. data/helpers/build +26 -0
  5. data/helpers/jest.config.js +5 -0
  6. data/helpers/lib/npm/conflicting-dependency-parser.js +78 -0
  7. data/helpers/lib/npm/index.js +9 -0
  8. data/helpers/lib/npm/vulnerability-auditor.js +291 -0
  9. data/helpers/lib/npm6/helpers.js +25 -0
  10. data/helpers/lib/npm6/index.js +9 -0
  11. data/helpers/lib/npm6/peer-dependency-checker.js +111 -0
  12. data/helpers/lib/npm6/remove-dependencies-from-lockfile.js +22 -0
  13. data/helpers/lib/npm6/subdependency-updater.js +78 -0
  14. data/helpers/lib/npm6/updater.js +199 -0
  15. data/helpers/lib/pnpm/index.js +5 -0
  16. data/helpers/lib/pnpm/lockfile-parser.js +82 -0
  17. data/helpers/lib/yarn/conflicting-dependency-parser.js +176 -0
  18. data/helpers/lib/yarn/fix-duplicates.js +80 -0
  19. data/helpers/lib/yarn/helpers.js +54 -0
  20. data/helpers/lib/yarn/index.js +14 -0
  21. data/helpers/lib/yarn/lockfile-parser.js +21 -0
  22. data/helpers/lib/yarn/peer-dependency-checker.js +132 -0
  23. data/helpers/lib/yarn/replace-lockfile-declaration.js +57 -0
  24. data/helpers/lib/yarn/subdependency-updater.js +83 -0
  25. data/helpers/lib/yarn/updater.js +209 -0
  26. data/helpers/package-lock.json +28519 -0
  27. data/helpers/package.json +29 -0
  28. data/helpers/patches/npm++pacote+9.5.12.patch +14 -0
  29. data/helpers/run.js +30 -0
  30. data/helpers/test/npm6/conflicting-dependency-parser.test.js +66 -0
  31. data/helpers/test/npm6/fixtures/conflicting-dependency-parser/deeply-nested/package-lock.json +591 -0
  32. data/helpers/test/npm6/fixtures/conflicting-dependency-parser/deeply-nested/package.json +14 -0
  33. data/helpers/test/npm6/fixtures/conflicting-dependency-parser/nested/package-lock.json +188 -0
  34. data/helpers/test/npm6/fixtures/conflicting-dependency-parser/nested/package.json +14 -0
  35. data/helpers/test/npm6/fixtures/conflicting-dependency-parser/simple/package-lock.json +27 -0
  36. data/helpers/test/npm6/fixtures/conflicting-dependency-parser/simple/package.json +14 -0
  37. data/helpers/test/npm6/fixtures/updater/original/package-lock.json +16 -0
  38. data/helpers/test/npm6/fixtures/updater/original/package.json +9 -0
  39. data/helpers/test/npm6/fixtures/updater/updated/package-lock.json +16 -0
  40. data/helpers/test/npm6/helpers.js +21 -0
  41. data/helpers/test/npm6/updater.test.js +30 -0
  42. data/helpers/test/pnpm/fixtures/parser/empty_version/pnpm-lock.yaml +72 -0
  43. data/helpers/test/pnpm/fixtures/parser/no_lockfile_change/pnpm-lock.yaml +2744 -0
  44. data/helpers/test/pnpm/fixtures/parser/only_dev_dependencies/pnpm-lock.yaml +16 -0
  45. data/helpers/test/pnpm/fixtures/parser/peer_disambiguation/pnpm-lock.yaml +855 -0
  46. data/helpers/test/pnpm/lockfile-parser.test.js +62 -0
  47. data/helpers/test/yarn/conflicting-dependency-parser.test.js +83 -0
  48. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested/package.json +14 -0
  49. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested/yarn.lock +496 -0
  50. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/dev-dependencies/package.json +14 -0
  51. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/dev-dependencies/yarn.lock +21 -0
  52. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/nested/package.json +14 -0
  53. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/nested/yarn.lock +183 -0
  54. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/simple/package.json +14 -0
  55. data/helpers/test/yarn/fixtures/conflicting-dependency-parser/simple/yarn.lock +21 -0
  56. data/helpers/test/yarn/fixtures/updater/illegal_character/package.json +8 -0
  57. data/helpers/test/yarn/fixtures/updater/illegal_character/yarn.lock +14 -0
  58. data/helpers/test/yarn/fixtures/updater/original/package.json +6 -0
  59. data/helpers/test/yarn/fixtures/updater/original/yarn.lock +11 -0
  60. data/helpers/test/yarn/fixtures/updater/updated/yarn.lock +12 -0
  61. data/helpers/test/yarn/fixtures/updater/with-version-comments/package.json +5 -0
  62. data/helpers/test/yarn/fixtures/updater/with-version-comments/yarn.lock +13 -0
  63. data/helpers/test/yarn/helpers.js +18 -0
  64. data/helpers/test/yarn/updater.test.js +117 -0
  65. data/lib/dependabot/bun/bun_package_manager.rb +47 -0
  66. data/lib/dependabot/bun/constraint_helper.rb +359 -0
  67. data/lib/dependabot/bun/dependency_files_filterer.rb +157 -0
  68. data/lib/dependabot/bun/file_fetcher/path_dependency_builder.rb +184 -0
  69. data/lib/dependabot/bun/file_fetcher.rb +402 -0
  70. data/lib/dependabot/bun/file_parser/bun_lock.rb +140 -0
  71. data/lib/dependabot/bun/file_parser/lockfile_parser.rb +105 -0
  72. data/lib/dependabot/bun/file_parser.rb +477 -0
  73. data/lib/dependabot/bun/file_updater/bun_lockfile_updater.rb +144 -0
  74. data/lib/dependabot/bun/file_updater/npmrc_builder.rb +256 -0
  75. data/lib/dependabot/bun/file_updater/package_json_preparer.rb +88 -0
  76. data/lib/dependabot/bun/file_updater/package_json_updater.rb +378 -0
  77. data/lib/dependabot/bun/file_updater.rb +203 -0
  78. data/lib/dependabot/bun/helpers.rb +93 -0
  79. data/lib/dependabot/bun/language.rb +45 -0
  80. data/lib/dependabot/bun/metadata_finder.rb +214 -0
  81. data/lib/dependabot/bun/native_helpers.rb +19 -0
  82. data/lib/dependabot/bun/package_manager.rb +280 -0
  83. data/lib/dependabot/bun/package_name.rb +118 -0
  84. data/lib/dependabot/bun/pnpm_package_manager.rb +55 -0
  85. data/lib/dependabot/bun/registry_helper.rb +188 -0
  86. data/lib/dependabot/bun/registry_parser.rb +93 -0
  87. data/lib/dependabot/bun/requirement.rb +146 -0
  88. data/lib/dependabot/bun/sub_dependency_files_filterer.rb +82 -0
  89. data/lib/dependabot/bun/update_checker/conflicting_dependency_resolver.rb +59 -0
  90. data/lib/dependabot/bun/update_checker/dependency_files_builder.rb +79 -0
  91. data/lib/dependabot/bun/update_checker/latest_version_finder.rb +448 -0
  92. data/lib/dependabot/bun/update_checker/library_detector.rb +76 -0
  93. data/lib/dependabot/bun/update_checker/registry_finder.rb +279 -0
  94. data/lib/dependabot/bun/update_checker/requirements_updater.rb +206 -0
  95. data/lib/dependabot/bun/update_checker/subdependency_version_resolver.rb +154 -0
  96. data/lib/dependabot/bun/update_checker/version_resolver.rb +583 -0
  97. data/lib/dependabot/bun/update_checker/vulnerability_auditor.rb +164 -0
  98. data/lib/dependabot/bun/update_checker.rb +455 -0
  99. data/lib/dependabot/bun/version.rb +138 -0
  100. data/lib/dependabot/bun/version_selector.rb +61 -0
  101. data/lib/dependabot/bun.rb +337 -35
  102. metadata +108 -65
  103. data/lib/dependabot/javascript/bun/file_fetcher.rb +0 -77
  104. data/lib/dependabot/javascript/bun/file_parser/bun_lock.rb +0 -156
  105. data/lib/dependabot/javascript/bun/file_parser/lockfile_parser.rb +0 -55
  106. data/lib/dependabot/javascript/bun/file_parser.rb +0 -74
  107. data/lib/dependabot/javascript/bun/file_updater/lockfile_updater.rb +0 -138
  108. data/lib/dependabot/javascript/bun/file_updater.rb +0 -75
  109. data/lib/dependabot/javascript/bun/helpers.rb +0 -72
  110. data/lib/dependabot/javascript/bun/package_manager.rb +0 -48
  111. data/lib/dependabot/javascript/bun/requirement.rb +0 -11
  112. data/lib/dependabot/javascript/bun/update_checker/conflicting_dependency_resolver.rb +0 -64
  113. data/lib/dependabot/javascript/bun/update_checker/dependency_files_builder.rb +0 -47
  114. data/lib/dependabot/javascript/bun/update_checker/latest_version_finder.rb +0 -450
  115. data/lib/dependabot/javascript/bun/update_checker/library_detector.rb +0 -76
  116. data/lib/dependabot/javascript/bun/update_checker/requirements_updater.rb +0 -203
  117. data/lib/dependabot/javascript/bun/update_checker/subdependency_version_resolver.rb +0 -144
  118. data/lib/dependabot/javascript/bun/update_checker/version_resolver.rb +0 -525
  119. data/lib/dependabot/javascript/bun/update_checker/vulnerability_auditor.rb +0 -165
  120. data/lib/dependabot/javascript/bun/update_checker.rb +0 -440
  121. data/lib/dependabot/javascript/bun/version.rb +0 -11
  122. data/lib/dependabot/javascript/shared/constraint_helper.rb +0 -359
  123. data/lib/dependabot/javascript/shared/dependency_files_filterer.rb +0 -164
  124. data/lib/dependabot/javascript/shared/file_fetcher.rb +0 -283
  125. data/lib/dependabot/javascript/shared/file_parser/lockfile_parser.rb +0 -106
  126. data/lib/dependabot/javascript/shared/file_parser.rb +0 -454
  127. data/lib/dependabot/javascript/shared/file_updater/npmrc_builder.rb +0 -394
  128. data/lib/dependabot/javascript/shared/file_updater/package_json_preparer.rb +0 -87
  129. data/lib/dependabot/javascript/shared/file_updater/package_json_updater.rb +0 -376
  130. data/lib/dependabot/javascript/shared/file_updater.rb +0 -179
  131. data/lib/dependabot/javascript/shared/language.rb +0 -45
  132. data/lib/dependabot/javascript/shared/metadata_finder.rb +0 -209
  133. data/lib/dependabot/javascript/shared/native_helpers.rb +0 -21
  134. data/lib/dependabot/javascript/shared/package_manager_detector.rb +0 -72
  135. data/lib/dependabot/javascript/shared/package_name.rb +0 -118
  136. data/lib/dependabot/javascript/shared/registry_helper.rb +0 -190
  137. data/lib/dependabot/javascript/shared/registry_parser.rb +0 -93
  138. data/lib/dependabot/javascript/shared/requirement.rb +0 -144
  139. data/lib/dependabot/javascript/shared/sub_dependency_files_filterer.rb +0 -79
  140. data/lib/dependabot/javascript/shared/update_checker/dependency_files_builder.rb +0 -87
  141. data/lib/dependabot/javascript/shared/update_checker/registry_finder.rb +0 -358
  142. data/lib/dependabot/javascript/shared/version.rb +0 -133
  143. data/lib/dependabot/javascript/shared/version_selector.rb +0 -60
  144. data/lib/dependabot/javascript.rb +0 -39
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-bun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.296.2
4
+ version: 0.296.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-11 00:00:00.000000000 Z
11
+ date: 2025-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dependabot-common
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.296.2
19
+ version: 0.296.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.296.2
27
- - !ruby/object:Gem::Dependency
28
- name: zeitwerk
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.7'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.7'
26
+ version: 0.296.3
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: debug
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -248,63 +234,120 @@ dependencies:
248
234
  - - ">="
249
235
  - !ruby/object:Gem::Version
250
236
  version: '1.7'
251
- description: Dependabot-bun provides support for bumping Javascript libraries using
252
- bun via Dependabot.If you want support for multiple package managers, you probably
253
- want the meta-gem dependabot-omnibus.
237
+ description: Dependabot-BUN provides support for bumping Javascript libraries via
238
+ Dependabot. If you want support for multiple package managers, you probably want
239
+ the meta-gem dependabot-omnibus.
254
240
  email: opensource@github.com
255
241
  executables: []
256
242
  extensions: []
257
243
  extra_rdoc_files: []
258
244
  files:
245
+ - helpers/.eslintrc
246
+ - helpers/README.md
247
+ - helpers/build
248
+ - helpers/jest.config.js
249
+ - helpers/lib/npm/conflicting-dependency-parser.js
250
+ - helpers/lib/npm/index.js
251
+ - helpers/lib/npm/vulnerability-auditor.js
252
+ - helpers/lib/npm6/helpers.js
253
+ - helpers/lib/npm6/index.js
254
+ - helpers/lib/npm6/peer-dependency-checker.js
255
+ - helpers/lib/npm6/remove-dependencies-from-lockfile.js
256
+ - helpers/lib/npm6/subdependency-updater.js
257
+ - helpers/lib/npm6/updater.js
258
+ - helpers/lib/pnpm/index.js
259
+ - helpers/lib/pnpm/lockfile-parser.js
260
+ - helpers/lib/yarn/conflicting-dependency-parser.js
261
+ - helpers/lib/yarn/fix-duplicates.js
262
+ - helpers/lib/yarn/helpers.js
263
+ - helpers/lib/yarn/index.js
264
+ - helpers/lib/yarn/lockfile-parser.js
265
+ - helpers/lib/yarn/peer-dependency-checker.js
266
+ - helpers/lib/yarn/replace-lockfile-declaration.js
267
+ - helpers/lib/yarn/subdependency-updater.js
268
+ - helpers/lib/yarn/updater.js
269
+ - helpers/package-lock.json
270
+ - helpers/package.json
271
+ - helpers/patches/npm++pacote+9.5.12.patch
272
+ - helpers/run.js
273
+ - helpers/test/npm6/conflicting-dependency-parser.test.js
274
+ - helpers/test/npm6/fixtures/conflicting-dependency-parser/deeply-nested/package-lock.json
275
+ - helpers/test/npm6/fixtures/conflicting-dependency-parser/deeply-nested/package.json
276
+ - helpers/test/npm6/fixtures/conflicting-dependency-parser/nested/package-lock.json
277
+ - helpers/test/npm6/fixtures/conflicting-dependency-parser/nested/package.json
278
+ - helpers/test/npm6/fixtures/conflicting-dependency-parser/simple/package-lock.json
279
+ - helpers/test/npm6/fixtures/conflicting-dependency-parser/simple/package.json
280
+ - helpers/test/npm6/fixtures/updater/original/package-lock.json
281
+ - helpers/test/npm6/fixtures/updater/original/package.json
282
+ - helpers/test/npm6/fixtures/updater/updated/package-lock.json
283
+ - helpers/test/npm6/helpers.js
284
+ - helpers/test/npm6/updater.test.js
285
+ - helpers/test/pnpm/fixtures/parser/empty_version/pnpm-lock.yaml
286
+ - helpers/test/pnpm/fixtures/parser/no_lockfile_change/pnpm-lock.yaml
287
+ - helpers/test/pnpm/fixtures/parser/only_dev_dependencies/pnpm-lock.yaml
288
+ - helpers/test/pnpm/fixtures/parser/peer_disambiguation/pnpm-lock.yaml
289
+ - helpers/test/pnpm/lockfile-parser.test.js
290
+ - helpers/test/yarn/conflicting-dependency-parser.test.js
291
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested/package.json
292
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/deeply-nested/yarn.lock
293
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/dev-dependencies/package.json
294
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/dev-dependencies/yarn.lock
295
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/nested/package.json
296
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/nested/yarn.lock
297
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/simple/package.json
298
+ - helpers/test/yarn/fixtures/conflicting-dependency-parser/simple/yarn.lock
299
+ - helpers/test/yarn/fixtures/updater/illegal_character/package.json
300
+ - helpers/test/yarn/fixtures/updater/illegal_character/yarn.lock
301
+ - helpers/test/yarn/fixtures/updater/original/package.json
302
+ - helpers/test/yarn/fixtures/updater/original/yarn.lock
303
+ - helpers/test/yarn/fixtures/updater/updated/yarn.lock
304
+ - helpers/test/yarn/fixtures/updater/with-version-comments/package.json
305
+ - helpers/test/yarn/fixtures/updater/with-version-comments/yarn.lock
306
+ - helpers/test/yarn/helpers.js
307
+ - helpers/test/yarn/updater.test.js
259
308
  - lib/dependabot/bun.rb
260
- - lib/dependabot/javascript.rb
261
- - lib/dependabot/javascript/bun/file_fetcher.rb
262
- - lib/dependabot/javascript/bun/file_parser.rb
263
- - lib/dependabot/javascript/bun/file_parser/bun_lock.rb
264
- - lib/dependabot/javascript/bun/file_parser/lockfile_parser.rb
265
- - lib/dependabot/javascript/bun/file_updater.rb
266
- - lib/dependabot/javascript/bun/file_updater/lockfile_updater.rb
267
- - lib/dependabot/javascript/bun/helpers.rb
268
- - lib/dependabot/javascript/bun/package_manager.rb
269
- - lib/dependabot/javascript/bun/requirement.rb
270
- - lib/dependabot/javascript/bun/update_checker.rb
271
- - lib/dependabot/javascript/bun/update_checker/conflicting_dependency_resolver.rb
272
- - lib/dependabot/javascript/bun/update_checker/dependency_files_builder.rb
273
- - lib/dependabot/javascript/bun/update_checker/latest_version_finder.rb
274
- - lib/dependabot/javascript/bun/update_checker/library_detector.rb
275
- - lib/dependabot/javascript/bun/update_checker/requirements_updater.rb
276
- - lib/dependabot/javascript/bun/update_checker/subdependency_version_resolver.rb
277
- - lib/dependabot/javascript/bun/update_checker/version_resolver.rb
278
- - lib/dependabot/javascript/bun/update_checker/vulnerability_auditor.rb
279
- - lib/dependabot/javascript/bun/version.rb
280
- - lib/dependabot/javascript/shared/constraint_helper.rb
281
- - lib/dependabot/javascript/shared/dependency_files_filterer.rb
282
- - lib/dependabot/javascript/shared/file_fetcher.rb
283
- - lib/dependabot/javascript/shared/file_parser.rb
284
- - lib/dependabot/javascript/shared/file_parser/lockfile_parser.rb
285
- - lib/dependabot/javascript/shared/file_updater.rb
286
- - lib/dependabot/javascript/shared/file_updater/npmrc_builder.rb
287
- - lib/dependabot/javascript/shared/file_updater/package_json_preparer.rb
288
- - lib/dependabot/javascript/shared/file_updater/package_json_updater.rb
289
- - lib/dependabot/javascript/shared/language.rb
290
- - lib/dependabot/javascript/shared/metadata_finder.rb
291
- - lib/dependabot/javascript/shared/native_helpers.rb
292
- - lib/dependabot/javascript/shared/package_manager_detector.rb
293
- - lib/dependabot/javascript/shared/package_name.rb
294
- - lib/dependabot/javascript/shared/registry_helper.rb
295
- - lib/dependabot/javascript/shared/registry_parser.rb
296
- - lib/dependabot/javascript/shared/requirement.rb
297
- - lib/dependabot/javascript/shared/sub_dependency_files_filterer.rb
298
- - lib/dependabot/javascript/shared/update_checker/dependency_files_builder.rb
299
- - lib/dependabot/javascript/shared/update_checker/registry_finder.rb
300
- - lib/dependabot/javascript/shared/version.rb
301
- - lib/dependabot/javascript/shared/version_selector.rb
309
+ - lib/dependabot/bun/bun_package_manager.rb
310
+ - lib/dependabot/bun/constraint_helper.rb
311
+ - lib/dependabot/bun/dependency_files_filterer.rb
312
+ - lib/dependabot/bun/file_fetcher.rb
313
+ - lib/dependabot/bun/file_fetcher/path_dependency_builder.rb
314
+ - lib/dependabot/bun/file_parser.rb
315
+ - lib/dependabot/bun/file_parser/bun_lock.rb
316
+ - lib/dependabot/bun/file_parser/lockfile_parser.rb
317
+ - lib/dependabot/bun/file_updater.rb
318
+ - lib/dependabot/bun/file_updater/bun_lockfile_updater.rb
319
+ - lib/dependabot/bun/file_updater/npmrc_builder.rb
320
+ - lib/dependabot/bun/file_updater/package_json_preparer.rb
321
+ - lib/dependabot/bun/file_updater/package_json_updater.rb
322
+ - lib/dependabot/bun/helpers.rb
323
+ - lib/dependabot/bun/language.rb
324
+ - lib/dependabot/bun/metadata_finder.rb
325
+ - lib/dependabot/bun/native_helpers.rb
326
+ - lib/dependabot/bun/package_manager.rb
327
+ - lib/dependabot/bun/package_name.rb
328
+ - lib/dependabot/bun/pnpm_package_manager.rb
329
+ - lib/dependabot/bun/registry_helper.rb
330
+ - lib/dependabot/bun/registry_parser.rb
331
+ - lib/dependabot/bun/requirement.rb
332
+ - lib/dependabot/bun/sub_dependency_files_filterer.rb
333
+ - lib/dependabot/bun/update_checker.rb
334
+ - lib/dependabot/bun/update_checker/conflicting_dependency_resolver.rb
335
+ - lib/dependabot/bun/update_checker/dependency_files_builder.rb
336
+ - lib/dependabot/bun/update_checker/latest_version_finder.rb
337
+ - lib/dependabot/bun/update_checker/library_detector.rb
338
+ - lib/dependabot/bun/update_checker/registry_finder.rb
339
+ - lib/dependabot/bun/update_checker/requirements_updater.rb
340
+ - lib/dependabot/bun/update_checker/subdependency_version_resolver.rb
341
+ - lib/dependabot/bun/update_checker/version_resolver.rb
342
+ - lib/dependabot/bun/update_checker/vulnerability_auditor.rb
343
+ - lib/dependabot/bun/version.rb
344
+ - lib/dependabot/bun/version_selector.rb
302
345
  homepage: https://github.com/dependabot/dependabot-core
303
346
  licenses:
304
347
  - MIT
305
348
  metadata:
306
349
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
307
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.296.2
350
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.296.3
308
351
  post_install_message:
309
352
  rdoc_options: []
310
353
  require_paths:
@@ -323,5 +366,5 @@ requirements: []
323
366
  rubygems_version: 3.5.22
324
367
  signing_key:
325
368
  specification_version: 4
326
- summary: Provides Dependabot support for bun
369
+ summary: Provides Dependabot support for Javascript
327
370
  test_files: []
@@ -1,77 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- module Dependabot
5
- module Javascript
6
- module Bun
7
- class FileFetcher < Shared::FileFetcher
8
- extend T::Sig
9
- extend T::Helpers
10
-
11
- sig { override.params(filenames: T::Array[String]).returns(T::Boolean) }
12
- def self.required_files_in?(filenames)
13
- filenames.include?("package.json")
14
- end
15
-
16
- sig { override.returns(String) }
17
- def self.required_files_message
18
- "Repo must contain a package.json."
19
- end
20
-
21
- sig { override.returns(T.nilable(T::Hash[Symbol, T.untyped])) }
22
- def ecosystem_versions
23
- return unknown_ecosystem_versions unless ecosystem_enabled?
24
-
25
- {
26
- package_managers: {
27
- "bun" => 1
28
- }
29
- }
30
- end
31
-
32
- sig { override.returns(T::Array[DependencyFile]) }
33
- def fetch_files
34
- fetched_files = T.let([], T::Array[DependencyFile])
35
- fetched_files << package_json(self)
36
- fetched_files += bun_files if ecosystem_enabled?
37
- fetched_files += workspace_package_jsons(self)
38
- fetched_files += path_dependencies(self, fetched_files)
39
-
40
- fetched_files.uniq
41
- end
42
-
43
- private
44
-
45
- sig { returns(T::Array[DependencyFile]) }
46
- def bun_files
47
- [bun_lock].compact
48
- end
49
-
50
- sig { returns(T.nilable(DependencyFile)) }
51
- def bun_lock
52
- return @bun_lock if defined?(@bun_lock)
53
-
54
- @bun_lock ||= T.let(fetch_file_if_present(PackageManager::LOCKFILE_NAME), T.nilable(DependencyFile))
55
-
56
- return @bun_lock if @bun_lock || directory == "/"
57
-
58
- @bun_lock = fetch_file_from_parent_directories(self, PackageManager::LOCKFILE_NAME)
59
- end
60
-
61
- sig { returns(T::Boolean) }
62
- def ecosystem_enabled?
63
- allow_beta_ecosystems? && Experiments.enabled?(:enable_bun_ecosystem)
64
- end
65
-
66
- sig { returns(T::Hash[Symbol, String]) }
67
- def unknown_ecosystem_versions
68
- {
69
- package_managers: {
70
- "unknown" => 0
71
- }
72
- }
73
- end
74
- end
75
- end
76
- end
77
- end
@@ -1,156 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Dependabot
5
- module Javascript
6
- module Bun
7
- class FileParser
8
- class BunLock < Shared::FileParser::Lockfile
9
- extend T::Sig
10
-
11
- sig { params(dependency_file: DependencyFile).void }
12
- def initialize(dependency_file)
13
- super
14
- @parsed = T.let(
15
- nil,
16
- T.nilable(T::Hash[String, T.any(Integer, String, T::Array[String], T::Hash[String, String])])
17
- )
18
- end
19
-
20
- sig { override.returns(T::Hash[String, T.untyped]) }
21
- def parsed
22
- @parsed ||= begin
23
- content = begin
24
- # Since bun.lock is a JSONC file, which is a subset of YAML, we can use YAML to parse it
25
- YAML.load(T.must(@dependency_file.content))
26
- rescue Psych::SyntaxError => e
27
- raise_invalid!("malformed JSONC at line #{e.line}, column #{e.column}")
28
- end
29
- raise_invalid!("expected to be an object") unless content.is_a?(Hash)
30
-
31
- version = content["lockfileVersion"]
32
- raise_invalid!("expected 'lockfileVersion' to be an integer") unless version.is_a?(Integer)
33
- raise_invalid!("expected 'lockfileVersion' to be >= 0") unless version >= 0
34
-
35
- content
36
- end
37
- end
38
-
39
- sig { override.returns(Dependabot::FileParsers::Base::DependencySet) }
40
- def dependencies
41
- dependency_set = Dependabot::FileParsers::Base::DependencySet.new
42
-
43
- # bun.lock v0 format:
44
- # https://github.com/oven-sh/bun/blob/c130df6c589fdf28f9f3c7f23ed9901140bc9349/src/install/bun.lock.zig#L595-L605
45
-
46
- packages = parsed["packages"]
47
- raise_invalid!("expected 'packages' to be an object") unless packages.is_a?(Hash)
48
-
49
- packages.each do |key, details|
50
- raise_invalid!("expected 'packages.#{key}' to be an array") unless details.is_a?(Array)
51
-
52
- resolution = details.first
53
- raise_invalid!("expected 'packages.#{key}[0]' to be a string") unless resolution.is_a?(String)
54
-
55
- name, version = resolution.split(/(?<=\w)\@/)
56
- next if name.empty?
57
-
58
- semver = Version.semver_for(version)
59
- next unless semver
60
-
61
- dependency_set << Dependency.new(
62
- name: name,
63
- version: semver.to_s,
64
- package_manager: "bun",
65
- requirements: []
66
- )
67
- end
68
-
69
- dependency_set
70
- end
71
-
72
- sig do
73
- override
74
- .params(
75
- dependency_name: String,
76
- requirement: T.untyped,
77
- manifest_name: String
78
- )
79
- .returns(T.nilable(T::Hash[String, T.untyped]))
80
- end
81
- def details(dependency_name, requirement, manifest_name) # rubocop:disable Lint/UnusedMethodArgument
82
- packages = parsed["packages"]
83
- return unless packages.is_a?(Hash)
84
-
85
- candidates =
86
- packages
87
- .select { |name, _| name == dependency_name }
88
- .values
89
-
90
- # If there's only one entry for this dependency, use it, even if
91
- # the requirement in the lockfile doesn't match
92
- if candidates.one?
93
- parse_details(candidates.first)
94
- else
95
- candidate = candidates.find do |label, _|
96
- label.scan(/(?<=\w)\@(?:npm:)?([^\s,]+)/).flatten.include?(requirement)
97
- end&.last
98
- parse_details(candidate)
99
- end
100
- end
101
-
102
- private
103
-
104
- sig { params(message: String).void }
105
- def raise_invalid!(message)
106
- raise Dependabot::DependencyFileNotParseable.new(@dependency_file.path, "Invalid bun.lock file: #{message}")
107
- end
108
-
109
- sig do
110
- params(entry: T.nilable(T::Array[T.untyped])).returns(T.nilable(T::Hash[String, T.untyped]))
111
- end
112
- def parse_details(entry)
113
- return unless entry.is_a?(Array)
114
-
115
- # Either:
116
- # - "{name}@{version}", registry, details, integrity
117
- # - "{name}@{resolution}", details
118
- resolution = entry.first
119
- return unless resolution.is_a?(String)
120
-
121
- name, version = resolution.split(/(?<=\w)\@/)
122
- semver = Version.semver_for(version)
123
-
124
- if semver
125
- registry, details, integrity = entry[1..3]
126
- {
127
- "name" => name,
128
- "version" => semver.to_s,
129
- "registry" => registry,
130
- "details" => details,
131
- "integrity" => integrity
132
- }
133
- else
134
- details = entry[1]
135
- {
136
- "name" => name,
137
- "resolution" => version,
138
- "details" => details
139
- }
140
- end
141
- end
142
- end
143
-
144
- sig { override.returns(T::Array[Dependabot::Dependency]) }
145
- def parse
146
- []
147
- end
148
-
149
- private
150
-
151
- sig { override.void }
152
- def check_required_files; end
153
- end
154
- end
155
- end
156
- end
@@ -1,55 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Dependabot
5
- module Javascript
6
- module Bun
7
- class FileParser
8
- class LockfileParser < Shared::FileParser::LockfileParser
9
- extend T::Sig
10
-
11
- DEFAULT_LOCKFILES = %w(bun.lock).freeze
12
-
13
- sig { override.returns(Dependabot::FileParsers::Base::DependencySet) }
14
- def parse_set
15
- dependency_set = Dependabot::FileParsers::Base::DependencySet.new
16
-
17
- bun_locks.each do |file|
18
- dependency_set += lockfile_for(file).dependencies
19
- end
20
-
21
- dependency_set
22
- end
23
-
24
- sig { override.returns(T::Array[String]) }
25
- def default_lockfiles
26
- DEFAULT_LOCKFILES
27
- end
28
-
29
- private
30
-
31
- sig { override.params(file: DependencyFile).returns(BunLock) }
32
- def lockfile_for(file)
33
- @lockfiles ||= T.let({}, T.nilable(T::Hash[String, BunLock]))
34
- @lockfiles[file.name] ||= case file.name
35
- when *bun_locks.map(&:name)
36
- Bun::FileParser::BunLock.new(file)
37
- else
38
- raise "Unexpected lockfile: #{file.name}"
39
- end
40
- end
41
-
42
- sig { returns(T::Array[DependencyFile]) }
43
- def bun_locks
44
- @bun_locks ||= T.let(select_files_by_extension("bun.lock"), T.nilable(T::Array[DependencyFile]))
45
- end
46
-
47
- sig { override.returns(T.class_of(Version)) }
48
- def version_class
49
- Version
50
- end
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,74 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- # See https://docs.npmjs.com/files/package.json for package.json format docs.
5
-
6
- module Dependabot
7
- module Javascript
8
- module Bun
9
- class FileParser < Shared::FileParser
10
- extend T::Sig
11
-
12
- sig { override.returns(Ecosystem) }
13
- def ecosystem
14
- @ecosystem ||= T.let(
15
- Ecosystem.new(
16
- name: ECOSYSTEM,
17
- package_manager: PackageManager.new(detected_version:),
18
- language: Shared::Language.new(detected_version:)
19
- ),
20
- T.nilable(Ecosystem)
21
- )
22
- end
23
-
24
- private
25
-
26
- sig { returns(T.nilable(String)) }
27
- def detected_version
28
- Helpers.local_package_manager_version(Bun::PackageManager::NAME)
29
- end
30
-
31
- sig { override.returns(T::Hash[Symbol, T.nilable(Dependabot::DependencyFile)]) }
32
- def lockfiles
33
- {
34
- bun: bun_lock
35
- }
36
- end
37
-
38
- sig { override.returns(LockfileParser) }
39
- def lockfile_parser
40
- @lockfile_parser ||= T.let(LockfileParser.new(
41
- dependency_files: dependency_files
42
- ), T.nilable(LockfileParser))
43
- end
44
-
45
- sig { override.returns(T::Hash[Symbol, T.nilable(Dependabot::DependencyFile)]) }
46
- def registry_config_files
47
- {
48
- npmrc: npmrc
49
- }
50
- end
51
-
52
- sig { returns(T.nilable(Dependabot::DependencyFile)) }
53
- def bun_lock
54
- @bun_lock ||= T.let(dependency_files.find do |f|
55
- f.name.end_with?(PackageManager::LOCKFILE_NAME)
56
- end, T.nilable(Dependabot::DependencyFile))
57
- end
58
-
59
- sig { override.returns(T.class_of(Version)) }
60
- def version_class
61
- Version
62
- end
63
-
64
- sig { override.returns(T.class_of(Requirement)) }
65
- def requirement_class
66
- Requirement
67
- end
68
-
69
- sig { override.void }
70
- def check_required_files; end
71
- end
72
- end
73
- end
74
- end