@pnpm/exe 11.0.5 → 11.0.7

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 (381) hide show
  1. package/dist/node-gyp-bin/node-gyp +0 -0
  2. package/dist/node-gyp-bin/node-gyp.cmd +0 -0
  3. package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
  4. package/dist/node_modules/node-gyp/bin/node-gyp.js +0 -0
  5. package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
  6. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +11 -3
  7. package/dist/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +2 -3
  8. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +1 -1
  9. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +2 -1
  10. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +26 -16
  11. package/dist/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +1 -1
  12. package/dist/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +1 -1
  13. package/dist/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +2 -2
  14. package/dist/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +3 -20
  15. package/dist/node_modules/node-gyp/gyp/pylib/packaging/tags.py +2 -14
  16. package/dist/node_modules/node-gyp/gyp/pyproject.toml +5 -3
  17. package/dist/node_modules/node-gyp/lib/download.js +55 -8
  18. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +1 -1
  19. package/dist/node_modules/node-gyp/lib/process-release.js +17 -19
  20. package/dist/node_modules/node-gyp/package.json +3 -3
  21. package/dist/node_modules/{safer-buffer → undici}/LICENSE +1 -1
  22. package/dist/node_modules/undici/index-fetch.js +35 -0
  23. package/dist/node_modules/undici/index.js +169 -0
  24. package/dist/node_modules/undici/lib/api/abort-signal.js +57 -0
  25. package/dist/node_modules/undici/lib/api/api-connect.js +108 -0
  26. package/dist/node_modules/undici/lib/api/api-pipeline.js +251 -0
  27. package/dist/node_modules/undici/lib/api/api-request.js +214 -0
  28. package/dist/node_modules/undici/lib/api/api-stream.js +220 -0
  29. package/dist/node_modules/undici/lib/api/api-upgrade.js +108 -0
  30. package/dist/node_modules/undici/lib/api/index.js +7 -0
  31. package/dist/node_modules/undici/lib/api/readable.js +385 -0
  32. package/dist/node_modules/undici/lib/api/util.js +93 -0
  33. package/dist/node_modules/undici/lib/core/connect.js +240 -0
  34. package/dist/node_modules/undici/lib/core/constants.js +118 -0
  35. package/dist/node_modules/undici/lib/core/diagnostics.js +202 -0
  36. package/dist/node_modules/undici/lib/core/errors.js +425 -0
  37. package/dist/node_modules/undici/lib/core/request.js +405 -0
  38. package/dist/node_modules/undici/lib/core/symbols.js +67 -0
  39. package/dist/node_modules/undici/lib/core/tree.js +152 -0
  40. package/dist/node_modules/undici/lib/core/util.js +719 -0
  41. package/dist/node_modules/undici/lib/dispatcher/agent.js +130 -0
  42. package/dist/node_modules/undici/lib/dispatcher/balanced-pool.js +209 -0
  43. package/dist/node_modules/undici/lib/dispatcher/client-h1.js +1370 -0
  44. package/dist/node_modules/undici/lib/dispatcher/client-h2.js +744 -0
  45. package/dist/node_modules/undici/lib/dispatcher/client.js +623 -0
  46. package/dist/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
  47. package/dist/node_modules/undici/lib/dispatcher/dispatcher.js +65 -0
  48. package/dist/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +160 -0
  49. package/dist/node_modules/undici/lib/dispatcher/fixed-queue.js +117 -0
  50. package/dist/node_modules/undici/lib/dispatcher/pool-base.js +194 -0
  51. package/dist/node_modules/undici/lib/dispatcher/pool-stats.js +34 -0
  52. package/dist/node_modules/undici/lib/dispatcher/pool.js +107 -0
  53. package/dist/node_modules/undici/lib/dispatcher/proxy-agent.js +274 -0
  54. package/dist/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  55. package/dist/node_modules/undici/lib/global.js +32 -0
  56. package/dist/node_modules/undici/lib/handler/decorator-handler.js +44 -0
  57. package/dist/node_modules/undici/lib/handler/redirect-handler.js +232 -0
  58. package/dist/node_modules/undici/lib/handler/retry-handler.js +374 -0
  59. package/dist/node_modules/undici/lib/interceptor/dns.js +375 -0
  60. package/dist/node_modules/undici/lib/interceptor/dump.js +123 -0
  61. package/dist/node_modules/undici/lib/interceptor/redirect-interceptor.js +21 -0
  62. package/dist/node_modules/undici/lib/interceptor/redirect.js +24 -0
  63. package/dist/node_modules/undici/lib/interceptor/response-error.js +86 -0
  64. package/dist/node_modules/undici/lib/interceptor/retry.js +19 -0
  65. package/dist/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  66. package/dist/node_modules/undici/lib/llhttp/constants.js +278 -0
  67. package/dist/node_modules/undici/lib/llhttp/llhttp-wasm.js +5 -0
  68. package/dist/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +5 -0
  69. package/dist/node_modules/undici/lib/llhttp/utils.js +15 -0
  70. package/dist/node_modules/undici/lib/mock/mock-agent.js +160 -0
  71. package/dist/node_modules/undici/lib/mock/mock-client.js +59 -0
  72. package/dist/node_modules/undici/lib/mock/mock-errors.js +28 -0
  73. package/dist/node_modules/undici/lib/mock/mock-interceptor.js +207 -0
  74. package/dist/node_modules/undici/lib/mock/mock-pool.js +59 -0
  75. package/dist/node_modules/undici/lib/mock/mock-symbols.js +23 -0
  76. package/dist/node_modules/undici/lib/mock/mock-utils.js +367 -0
  77. package/dist/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  78. package/dist/node_modules/undici/lib/mock/pluralizer.js +29 -0
  79. package/dist/node_modules/undici/lib/util/timers.js +423 -0
  80. package/dist/node_modules/undici/lib/web/cache/cache.js +859 -0
  81. package/dist/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  82. package/dist/node_modules/undici/lib/web/cache/symbols.js +5 -0
  83. package/dist/node_modules/undici/lib/web/cache/util.js +45 -0
  84. package/dist/node_modules/undici/lib/web/cookies/constants.js +12 -0
  85. package/dist/node_modules/undici/lib/web/cookies/index.js +184 -0
  86. package/dist/node_modules/undici/lib/web/cookies/parse.js +317 -0
  87. package/dist/node_modules/undici/lib/web/cookies/util.js +282 -0
  88. package/dist/node_modules/undici/lib/web/eventsource/eventsource-stream.js +398 -0
  89. package/dist/node_modules/undici/lib/web/eventsource/eventsource.js +480 -0
  90. package/dist/node_modules/undici/lib/web/eventsource/util.js +37 -0
  91. package/dist/node_modules/{@npmcli/redact → undici/lib/web/fetch}/LICENSE +1 -1
  92. package/dist/node_modules/undici/lib/web/fetch/body.js +529 -0
  93. package/dist/node_modules/undici/lib/web/fetch/constants.js +124 -0
  94. package/dist/node_modules/undici/lib/web/fetch/data-url.js +744 -0
  95. package/dist/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +46 -0
  96. package/dist/node_modules/undici/lib/web/fetch/file.js +126 -0
  97. package/dist/node_modules/undici/lib/web/fetch/formdata-parser.js +474 -0
  98. package/dist/node_modules/undici/lib/web/fetch/formdata.js +252 -0
  99. package/dist/node_modules/undici/lib/web/fetch/global.js +40 -0
  100. package/dist/node_modules/undici/lib/web/fetch/headers.js +687 -0
  101. package/dist/node_modules/undici/lib/web/fetch/index.js +2272 -0
  102. package/dist/node_modules/undici/lib/web/fetch/request.js +1037 -0
  103. package/dist/node_modules/undici/lib/web/fetch/response.js +610 -0
  104. package/dist/node_modules/undici/lib/web/fetch/symbols.js +9 -0
  105. package/dist/node_modules/undici/lib/web/fetch/util.js +1632 -0
  106. package/dist/node_modules/undici/lib/web/fetch/webidl.js +695 -0
  107. package/dist/node_modules/undici/lib/web/fileapi/encoding.js +290 -0
  108. package/dist/node_modules/undici/lib/web/fileapi/filereader.js +344 -0
  109. package/dist/node_modules/undici/lib/web/fileapi/progressevent.js +78 -0
  110. package/dist/node_modules/undici/lib/web/fileapi/symbols.js +10 -0
  111. package/dist/node_modules/undici/lib/web/fileapi/util.js +391 -0
  112. package/dist/node_modules/undici/lib/web/websocket/connection.js +371 -0
  113. package/dist/node_modules/undici/lib/web/websocket/constants.js +66 -0
  114. package/dist/node_modules/undici/lib/web/websocket/events.js +329 -0
  115. package/dist/node_modules/undici/lib/web/websocket/frame.js +96 -0
  116. package/dist/node_modules/undici/lib/web/websocket/permessage-deflate.js +100 -0
  117. package/dist/node_modules/undici/lib/web/websocket/receiver.js +490 -0
  118. package/dist/node_modules/undici/lib/web/websocket/sender.js +104 -0
  119. package/dist/node_modules/undici/lib/web/websocket/symbols.js +12 -0
  120. package/dist/node_modules/undici/lib/web/websocket/util.js +322 -0
  121. package/dist/node_modules/undici/lib/web/websocket/websocket.js +592 -0
  122. package/dist/node_modules/undici/package.json +160 -0
  123. package/dist/node_modules/undici/scripts/strip-comments.js +8 -0
  124. package/dist/node_modules/yallist/package.json +51 -12
  125. package/dist/pnpm.mjs +5915 -5140
  126. package/dist/worker.js +70 -67
  127. package/package.json +21 -13
  128. package/setup.js +17 -3
  129. package/dist/node_modules/@gar/promise-retry/LICENSE +0 -20
  130. package/dist/node_modules/@gar/promise-retry/lib/index.js +0 -62
  131. package/dist/node_modules/@gar/promise-retry/lib/retry.js +0 -109
  132. package/dist/node_modules/@gar/promise-retry/package.json +0 -45
  133. package/dist/node_modules/@npmcli/agent/lib/agents.js +0 -206
  134. package/dist/node_modules/@npmcli/agent/lib/dns.js +0 -53
  135. package/dist/node_modules/@npmcli/agent/lib/errors.js +0 -61
  136. package/dist/node_modules/@npmcli/agent/lib/index.js +0 -56
  137. package/dist/node_modules/@npmcli/agent/lib/options.js +0 -86
  138. package/dist/node_modules/@npmcli/agent/lib/proxy.js +0 -88
  139. package/dist/node_modules/@npmcli/agent/package.json +0 -60
  140. package/dist/node_modules/@npmcli/fs/lib/common/get-options.js +0 -20
  141. package/dist/node_modules/@npmcli/fs/lib/common/node.js +0 -9
  142. package/dist/node_modules/@npmcli/fs/lib/cp/LICENSE +0 -15
  143. package/dist/node_modules/@npmcli/fs/lib/cp/errors.js +0 -129
  144. package/dist/node_modules/@npmcli/fs/lib/cp/index.js +0 -22
  145. package/dist/node_modules/@npmcli/fs/lib/cp/polyfill.js +0 -428
  146. package/dist/node_modules/@npmcli/fs/lib/index.js +0 -13
  147. package/dist/node_modules/@npmcli/fs/lib/move-file.js +0 -78
  148. package/dist/node_modules/@npmcli/fs/lib/readdir-scoped.js +0 -20
  149. package/dist/node_modules/@npmcli/fs/lib/with-temp-dir.js +0 -39
  150. package/dist/node_modules/@npmcli/fs/package.json +0 -54
  151. package/dist/node_modules/@npmcli/redact/lib/deep-map.js +0 -71
  152. package/dist/node_modules/@npmcli/redact/lib/error.js +0 -28
  153. package/dist/node_modules/@npmcli/redact/lib/index.js +0 -44
  154. package/dist/node_modules/@npmcli/redact/lib/matchers.js +0 -88
  155. package/dist/node_modules/@npmcli/redact/lib/server.js +0 -59
  156. package/dist/node_modules/@npmcli/redact/lib/utils.js +0 -202
  157. package/dist/node_modules/@npmcli/redact/package.json +0 -52
  158. package/dist/node_modules/agent-base/LICENSE +0 -22
  159. package/dist/node_modules/agent-base/dist/helpers.js +0 -66
  160. package/dist/node_modules/agent-base/dist/index.js +0 -178
  161. package/dist/node_modules/agent-base/package.json +0 -46
  162. package/dist/node_modules/balanced-match/dist/commonjs/index.js +0 -59
  163. package/dist/node_modules/balanced-match/dist/esm/index.js +0 -54
  164. package/dist/node_modules/balanced-match/package.json +0 -68
  165. package/dist/node_modules/brace-expansion/LICENSE +0 -23
  166. package/dist/node_modules/brace-expansion/dist/commonjs/index.js +0 -201
  167. package/dist/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
  168. package/dist/node_modules/brace-expansion/dist/esm/index.js +0 -197
  169. package/dist/node_modules/brace-expansion/dist/esm/package.json +0 -3
  170. package/dist/node_modules/brace-expansion/package.json +0 -64
  171. package/dist/node_modules/cacache/lib/content/path.js +0 -29
  172. package/dist/node_modules/cacache/lib/content/read.js +0 -165
  173. package/dist/node_modules/cacache/lib/content/rm.js +0 -18
  174. package/dist/node_modules/cacache/lib/content/write.js +0 -206
  175. package/dist/node_modules/cacache/lib/entry-index.js +0 -336
  176. package/dist/node_modules/cacache/lib/get.js +0 -170
  177. package/dist/node_modules/cacache/lib/index.js +0 -42
  178. package/dist/node_modules/cacache/lib/memoization.js +0 -72
  179. package/dist/node_modules/cacache/lib/put.js +0 -80
  180. package/dist/node_modules/cacache/lib/rm.js +0 -31
  181. package/dist/node_modules/cacache/lib/util/glob.js +0 -7
  182. package/dist/node_modules/cacache/lib/util/hash-to-segments.js +0 -7
  183. package/dist/node_modules/cacache/lib/util/tmp.js +0 -32
  184. package/dist/node_modules/cacache/lib/verify.js +0 -258
  185. package/dist/node_modules/cacache/package.json +0 -81
  186. package/dist/node_modules/debug/LICENSE +0 -20
  187. package/dist/node_modules/debug/package.json +0 -64
  188. package/dist/node_modules/debug/src/browser.js +0 -272
  189. package/dist/node_modules/debug/src/common.js +0 -292
  190. package/dist/node_modules/debug/src/index.js +0 -10
  191. package/dist/node_modules/debug/src/node.js +0 -263
  192. package/dist/node_modules/fs-minipass/LICENSE +0 -15
  193. package/dist/node_modules/fs-minipass/lib/index.js +0 -443
  194. package/dist/node_modules/fs-minipass/package.json +0 -54
  195. package/dist/node_modules/glob/dist/commonjs/glob.js +0 -248
  196. package/dist/node_modules/glob/dist/commonjs/has-magic.js +0 -27
  197. package/dist/node_modules/glob/dist/commonjs/ignore.js +0 -119
  198. package/dist/node_modules/glob/dist/commonjs/index.js +0 -68
  199. package/dist/node_modules/glob/dist/commonjs/index.min.js +0 -4
  200. package/dist/node_modules/glob/dist/commonjs/package.json +0 -3
  201. package/dist/node_modules/glob/dist/commonjs/pattern.js +0 -223
  202. package/dist/node_modules/glob/dist/commonjs/processor.js +0 -301
  203. package/dist/node_modules/glob/dist/commonjs/walker.js +0 -387
  204. package/dist/node_modules/glob/dist/esm/glob.js +0 -244
  205. package/dist/node_modules/glob/dist/esm/has-magic.js +0 -23
  206. package/dist/node_modules/glob/dist/esm/ignore.js +0 -115
  207. package/dist/node_modules/glob/dist/esm/index.js +0 -55
  208. package/dist/node_modules/glob/dist/esm/index.min.js +0 -4
  209. package/dist/node_modules/glob/dist/esm/package.json +0 -3
  210. package/dist/node_modules/glob/dist/esm/pattern.js +0 -219
  211. package/dist/node_modules/glob/dist/esm/processor.js +0 -294
  212. package/dist/node_modules/glob/dist/esm/walker.js +0 -381
  213. package/dist/node_modules/glob/package.json +0 -98
  214. package/dist/node_modules/http-cache-semantics/LICENSE +0 -9
  215. package/dist/node_modules/http-cache-semantics/index.js +0 -928
  216. package/dist/node_modules/http-cache-semantics/package.json +0 -22
  217. package/dist/node_modules/http-proxy-agent/LICENSE +0 -22
  218. package/dist/node_modules/http-proxy-agent/dist/index.js +0 -148
  219. package/dist/node_modules/http-proxy-agent/package.json +0 -47
  220. package/dist/node_modules/https-proxy-agent/LICENSE +0 -22
  221. package/dist/node_modules/https-proxy-agent/dist/index.js +0 -180
  222. package/dist/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -101
  223. package/dist/node_modules/https-proxy-agent/package.json +0 -50
  224. package/dist/node_modules/iconv-lite/LICENSE +0 -21
  225. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  226. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  227. package/dist/node_modules/iconv-lite/encodings/index.js +0 -23
  228. package/dist/node_modules/iconv-lite/encodings/internal.js +0 -218
  229. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  230. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  231. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  232. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  233. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  234. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  235. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  236. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  237. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  238. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  239. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  240. package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -187
  241. package/dist/node_modules/iconv-lite/encodings/utf32.js +0 -307
  242. package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -283
  243. package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  244. package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  245. package/dist/node_modules/iconv-lite/lib/index.js +0 -182
  246. package/dist/node_modules/iconv-lite/lib/streams.js +0 -105
  247. package/dist/node_modules/iconv-lite/package.json +0 -70
  248. package/dist/node_modules/ip-address/LICENSE +0 -19
  249. package/dist/node_modules/ip-address/dist/address-error.js +0 -12
  250. package/dist/node_modules/ip-address/dist/common.js +0 -46
  251. package/dist/node_modules/ip-address/dist/ip-address.js +0 -35
  252. package/dist/node_modules/ip-address/dist/ipv4.js +0 -360
  253. package/dist/node_modules/ip-address/dist/ipv6.js +0 -1003
  254. package/dist/node_modules/ip-address/dist/v4/constants.js +0 -8
  255. package/dist/node_modules/ip-address/dist/v6/constants.js +0 -76
  256. package/dist/node_modules/ip-address/dist/v6/helpers.js +0 -45
  257. package/dist/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
  258. package/dist/node_modules/ip-address/package.json +0 -78
  259. package/dist/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +0 -10
  260. package/dist/node_modules/lru-cache/dist/commonjs/index.js +0 -1692
  261. package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
  262. package/dist/node_modules/lru-cache/dist/commonjs/package.json +0 -3
  263. package/dist/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +0 -4
  264. package/dist/node_modules/lru-cache/dist/esm/browser/index.js +0 -1688
  265. package/dist/node_modules/lru-cache/dist/esm/browser/index.min.js +0 -2
  266. package/dist/node_modules/lru-cache/dist/esm/diagnostics-channel.js +0 -19
  267. package/dist/node_modules/lru-cache/dist/esm/index.js +0 -1688
  268. package/dist/node_modules/lru-cache/dist/esm/index.min.js +0 -2
  269. package/dist/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +0 -7
  270. package/dist/node_modules/lru-cache/dist/esm/node/index.js +0 -1688
  271. package/dist/node_modules/lru-cache/dist/esm/node/index.min.js +0 -2
  272. package/dist/node_modules/lru-cache/dist/esm/package.json +0 -3
  273. package/dist/node_modules/lru-cache/package.json +0 -126
  274. package/dist/node_modules/make-fetch-happen/LICENSE +0 -16
  275. package/dist/node_modules/make-fetch-happen/lib/cache/entry.js +0 -471
  276. package/dist/node_modules/make-fetch-happen/lib/cache/errors.js +0 -11
  277. package/dist/node_modules/make-fetch-happen/lib/cache/index.js +0 -49
  278. package/dist/node_modules/make-fetch-happen/lib/cache/key.js +0 -17
  279. package/dist/node_modules/make-fetch-happen/lib/cache/policy.js +0 -161
  280. package/dist/node_modules/make-fetch-happen/lib/fetch.js +0 -118
  281. package/dist/node_modules/make-fetch-happen/lib/index.js +0 -41
  282. package/dist/node_modules/make-fetch-happen/lib/options.js +0 -59
  283. package/dist/node_modules/make-fetch-happen/lib/pipeline.js +0 -41
  284. package/dist/node_modules/make-fetch-happen/lib/remote.js +0 -134
  285. package/dist/node_modules/make-fetch-happen/package.json +0 -75
  286. package/dist/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  287. package/dist/node_modules/minimatch/dist/commonjs/ast.js +0 -845
  288. package/dist/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
  289. package/dist/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  290. package/dist/node_modules/minimatch/dist/commonjs/index.js +0 -1127
  291. package/dist/node_modules/minimatch/dist/commonjs/package.json +0 -3
  292. package/dist/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  293. package/dist/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  294. package/dist/node_modules/minimatch/dist/esm/ast.js +0 -841
  295. package/dist/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
  296. package/dist/node_modules/minimatch/dist/esm/escape.js +0 -26
  297. package/dist/node_modules/minimatch/dist/esm/index.js +0 -1114
  298. package/dist/node_modules/minimatch/dist/esm/package.json +0 -3
  299. package/dist/node_modules/minimatch/dist/esm/unescape.js +0 -34
  300. package/dist/node_modules/minimatch/package.json +0 -73
  301. package/dist/node_modules/minipass-collect/LICENSE +0 -15
  302. package/dist/node_modules/minipass-collect/index.js +0 -71
  303. package/dist/node_modules/minipass-collect/package.json +0 -30
  304. package/dist/node_modules/minipass-fetch/LICENSE +0 -28
  305. package/dist/node_modules/minipass-fetch/lib/abort-error.js +0 -17
  306. package/dist/node_modules/minipass-fetch/lib/blob.js +0 -97
  307. package/dist/node_modules/minipass-fetch/lib/body.js +0 -360
  308. package/dist/node_modules/minipass-fetch/lib/fetch-error.js +0 -32
  309. package/dist/node_modules/minipass-fetch/lib/headers.js +0 -267
  310. package/dist/node_modules/minipass-fetch/lib/index.js +0 -376
  311. package/dist/node_modules/minipass-fetch/lib/request.js +0 -282
  312. package/dist/node_modules/minipass-fetch/lib/response.js +0 -90
  313. package/dist/node_modules/minipass-fetch/package.json +0 -70
  314. package/dist/node_modules/minipass-flush/index.js +0 -39
  315. package/dist/node_modules/minipass-flush/node_modules/minipass/LICENSE +0 -15
  316. package/dist/node_modules/minipass-flush/node_modules/minipass/index.js +0 -649
  317. package/dist/node_modules/minipass-flush/node_modules/minipass/package.json +0 -56
  318. package/dist/node_modules/minipass-flush/package.json +0 -42
  319. package/dist/node_modules/minipass-pipeline/LICENSE +0 -15
  320. package/dist/node_modules/minipass-pipeline/index.js +0 -128
  321. package/dist/node_modules/minipass-pipeline/node_modules/minipass/LICENSE +0 -15
  322. package/dist/node_modules/minipass-pipeline/node_modules/minipass/index.js +0 -649
  323. package/dist/node_modules/minipass-pipeline/node_modules/minipass/package.json +0 -56
  324. package/dist/node_modules/minipass-pipeline/package.json +0 -29
  325. package/dist/node_modules/minipass-sized/LICENSE +0 -15
  326. package/dist/node_modules/minipass-sized/dist/commonjs/index.js +0 -69
  327. package/dist/node_modules/minipass-sized/dist/commonjs/package.json +0 -3
  328. package/dist/node_modules/minipass-sized/dist/esm/index.js +0 -64
  329. package/dist/node_modules/minipass-sized/dist/esm/package.json +0 -3
  330. package/dist/node_modules/minipass-sized/package.json +0 -69
  331. package/dist/node_modules/ms/index.js +0 -162
  332. package/dist/node_modules/ms/package.json +0 -38
  333. package/dist/node_modules/negotiator/LICENSE +0 -24
  334. package/dist/node_modules/negotiator/index.js +0 -83
  335. package/dist/node_modules/negotiator/lib/charset.js +0 -169
  336. package/dist/node_modules/negotiator/lib/encoding.js +0 -205
  337. package/dist/node_modules/negotiator/lib/language.js +0 -179
  338. package/dist/node_modules/negotiator/lib/mediaType.js +0 -294
  339. package/dist/node_modules/negotiator/package.json +0 -43
  340. package/dist/node_modules/p-map/index.js +0 -283
  341. package/dist/node_modules/p-map/license +0 -9
  342. package/dist/node_modules/p-map/package.json +0 -57
  343. package/dist/node_modules/path-scurry/dist/commonjs/index.js +0 -2018
  344. package/dist/node_modules/path-scurry/dist/commonjs/package.json +0 -3
  345. package/dist/node_modules/path-scurry/dist/esm/index.js +0 -1983
  346. package/dist/node_modules/path-scurry/dist/esm/package.json +0 -3
  347. package/dist/node_modules/path-scurry/package.json +0 -72
  348. package/dist/node_modules/safer-buffer/dangerous.js +0 -58
  349. package/dist/node_modules/safer-buffer/package.json +0 -34
  350. package/dist/node_modules/safer-buffer/safer.js +0 -77
  351. package/dist/node_modules/safer-buffer/tests.js +0 -406
  352. package/dist/node_modules/smart-buffer/.prettierrc.yaml +0 -5
  353. package/dist/node_modules/smart-buffer/LICENSE +0 -20
  354. package/dist/node_modules/smart-buffer/build/smartbuffer.js +0 -1233
  355. package/dist/node_modules/smart-buffer/build/utils.js +0 -108
  356. package/dist/node_modules/smart-buffer/package.json +0 -79
  357. package/dist/node_modules/socks/.eslintrc.cjs +0 -11
  358. package/dist/node_modules/socks/.prettierrc.yaml +0 -7
  359. package/dist/node_modules/socks/LICENSE +0 -20
  360. package/dist/node_modules/socks/build/client/socksclient.js +0 -793
  361. package/dist/node_modules/socks/build/common/constants.js +0 -108
  362. package/dist/node_modules/socks/build/common/helpers.js +0 -167
  363. package/dist/node_modules/socks/build/common/receivebuffer.js +0 -43
  364. package/dist/node_modules/socks/build/common/util.js +0 -25
  365. package/dist/node_modules/socks/build/index.js +0 -18
  366. package/dist/node_modules/socks/package.json +0 -58
  367. package/dist/node_modules/socks-proxy-agent/LICENSE +0 -22
  368. package/dist/node_modules/socks-proxy-agent/dist/index.js +0 -195
  369. package/dist/node_modules/socks-proxy-agent/package.json +0 -142
  370. package/dist/node_modules/ssri/lib/index.js +0 -550
  371. package/dist/node_modules/ssri/package.json +0 -66
  372. package/dist/node_modules/tar/node_modules/yallist/dist/commonjs/package.json +0 -3
  373. package/dist/node_modules/tar/node_modules/yallist/dist/esm/package.json +0 -3
  374. package/dist/node_modules/tar/node_modules/yallist/package.json +0 -68
  375. package/dist/node_modules/yallist/LICENSE +0 -15
  376. package/dist/node_modules/yallist/iterator.js +0 -8
  377. package/dist/node_modules/yallist/yallist.js +0 -426
  378. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/commonjs/index.js +0 -0
  379. /package/dist/node_modules/{balanced-match → yallist}/dist/commonjs/package.json +0 -0
  380. /package/dist/node_modules/{tar/node_modules/yallist → yallist}/dist/esm/index.js +0 -0
  381. /package/dist/node_modules/{balanced-match → yallist}/dist/esm/package.json +0 -0
@@ -0,0 +1,859 @@
1
+ 'use strict'
2
+
3
+ const { kConstruct } = require('./symbols')
4
+ const { urlEquals, getFieldValues } = require('./util')
5
+ const { kEnumerableProperty, isDisturbed } = require('../../core/util')
6
+ const { webidl } = require('../fetch/webidl')
7
+ const { Response, cloneResponse, fromInnerResponse } = require('../fetch/response')
8
+ const { Request, fromInnerRequest } = require('../fetch/request')
9
+ const { kState } = require('../fetch/symbols')
10
+ const { fetching } = require('../fetch/index')
11
+ const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')
12
+ const assert = require('node:assert')
13
+
14
+ /**
15
+ * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation
16
+ * @typedef {Object} CacheBatchOperation
17
+ * @property {'delete' | 'put'} type
18
+ * @property {any} request
19
+ * @property {any} response
20
+ * @property {import('../../types/cache').CacheQueryOptions} options
21
+ */
22
+
23
+ /**
24
+ * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list
25
+ * @typedef {[any, any][]} requestResponseList
26
+ */
27
+
28
+ class Cache {
29
+ /**
30
+ * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list
31
+ * @type {requestResponseList}
32
+ */
33
+ #relevantRequestResponseList
34
+
35
+ constructor () {
36
+ if (arguments[0] !== kConstruct) {
37
+ webidl.illegalConstructor()
38
+ }
39
+
40
+ webidl.util.markAsUncloneable(this)
41
+ this.#relevantRequestResponseList = arguments[1]
42
+ }
43
+
44
+ async match (request, options = {}) {
45
+ webidl.brandCheck(this, Cache)
46
+
47
+ const prefix = 'Cache.match'
48
+ webidl.argumentLengthCheck(arguments, 1, prefix)
49
+
50
+ request = webidl.converters.RequestInfo(request, prefix, 'request')
51
+ options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
52
+
53
+ const p = this.#internalMatchAll(request, options, 1)
54
+
55
+ if (p.length === 0) {
56
+ return
57
+ }
58
+
59
+ return p[0]
60
+ }
61
+
62
+ async matchAll (request = undefined, options = {}) {
63
+ webidl.brandCheck(this, Cache)
64
+
65
+ const prefix = 'Cache.matchAll'
66
+ if (request !== undefined) request = webidl.converters.RequestInfo(request, prefix, 'request')
67
+ options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
68
+
69
+ return this.#internalMatchAll(request, options)
70
+ }
71
+
72
+ async add (request) {
73
+ webidl.brandCheck(this, Cache)
74
+
75
+ const prefix = 'Cache.add'
76
+ webidl.argumentLengthCheck(arguments, 1, prefix)
77
+
78
+ request = webidl.converters.RequestInfo(request, prefix, 'request')
79
+
80
+ // 1.
81
+ const requests = [request]
82
+
83
+ // 2.
84
+ const responseArrayPromise = this.addAll(requests)
85
+
86
+ // 3.
87
+ return await responseArrayPromise
88
+ }
89
+
90
+ async addAll (requests) {
91
+ webidl.brandCheck(this, Cache)
92
+
93
+ const prefix = 'Cache.addAll'
94
+ webidl.argumentLengthCheck(arguments, 1, prefix)
95
+
96
+ // 1.
97
+ const responsePromises = []
98
+
99
+ // 2.
100
+ const requestList = []
101
+
102
+ // 3.
103
+ for (let request of requests) {
104
+ if (request === undefined) {
105
+ throw webidl.errors.conversionFailed({
106
+ prefix,
107
+ argument: 'Argument 1',
108
+ types: ['undefined is not allowed']
109
+ })
110
+ }
111
+
112
+ request = webidl.converters.RequestInfo(request)
113
+
114
+ if (typeof request === 'string') {
115
+ continue
116
+ }
117
+
118
+ // 3.1
119
+ const r = request[kState]
120
+
121
+ // 3.2
122
+ if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {
123
+ throw webidl.errors.exception({
124
+ header: prefix,
125
+ message: 'Expected http/s scheme when method is not GET.'
126
+ })
127
+ }
128
+ }
129
+
130
+ // 4.
131
+ /** @type {ReturnType<typeof fetching>[]} */
132
+ const fetchControllers = []
133
+
134
+ // 5.
135
+ for (const request of requests) {
136
+ // 5.1
137
+ const r = new Request(request)[kState]
138
+
139
+ // 5.2
140
+ if (!urlIsHttpHttpsScheme(r.url)) {
141
+ throw webidl.errors.exception({
142
+ header: prefix,
143
+ message: 'Expected http/s scheme.'
144
+ })
145
+ }
146
+
147
+ // 5.4
148
+ r.initiator = 'fetch'
149
+ r.destination = 'subresource'
150
+
151
+ // 5.5
152
+ requestList.push(r)
153
+
154
+ // 5.6
155
+ const responsePromise = createDeferredPromise()
156
+
157
+ // 5.7
158
+ fetchControllers.push(fetching({
159
+ request: r,
160
+ processResponse (response) {
161
+ // 1.
162
+ if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {
163
+ responsePromise.reject(webidl.errors.exception({
164
+ header: 'Cache.addAll',
165
+ message: 'Received an invalid status code or the request failed.'
166
+ }))
167
+ } else if (response.headersList.contains('vary')) { // 2.
168
+ // 2.1
169
+ const fieldValues = getFieldValues(response.headersList.get('vary'))
170
+
171
+ // 2.2
172
+ for (const fieldValue of fieldValues) {
173
+ // 2.2.1
174
+ if (fieldValue === '*') {
175
+ responsePromise.reject(webidl.errors.exception({
176
+ header: 'Cache.addAll',
177
+ message: 'invalid vary field value'
178
+ }))
179
+
180
+ for (const controller of fetchControllers) {
181
+ controller.abort()
182
+ }
183
+
184
+ return
185
+ }
186
+ }
187
+ }
188
+ },
189
+ processResponseEndOfBody (response) {
190
+ // 1.
191
+ if (response.aborted) {
192
+ responsePromise.reject(new DOMException('aborted', 'AbortError'))
193
+ return
194
+ }
195
+
196
+ // 2.
197
+ responsePromise.resolve(response)
198
+ }
199
+ }))
200
+
201
+ // 5.8
202
+ responsePromises.push(responsePromise.promise)
203
+ }
204
+
205
+ // 6.
206
+ const p = Promise.all(responsePromises)
207
+
208
+ // 7.
209
+ const responses = await p
210
+
211
+ // 7.1
212
+ const operations = []
213
+
214
+ // 7.2
215
+ let index = 0
216
+
217
+ // 7.3
218
+ for (const response of responses) {
219
+ // 7.3.1
220
+ /** @type {CacheBatchOperation} */
221
+ const operation = {
222
+ type: 'put', // 7.3.2
223
+ request: requestList[index], // 7.3.3
224
+ response // 7.3.4
225
+ }
226
+
227
+ operations.push(operation) // 7.3.5
228
+
229
+ index++ // 7.3.6
230
+ }
231
+
232
+ // 7.5
233
+ const cacheJobPromise = createDeferredPromise()
234
+
235
+ // 7.6.1
236
+ let errorData = null
237
+
238
+ // 7.6.2
239
+ try {
240
+ this.#batchCacheOperations(operations)
241
+ } catch (e) {
242
+ errorData = e
243
+ }
244
+
245
+ // 7.6.3
246
+ queueMicrotask(() => {
247
+ // 7.6.3.1
248
+ if (errorData === null) {
249
+ cacheJobPromise.resolve(undefined)
250
+ } else {
251
+ // 7.6.3.2
252
+ cacheJobPromise.reject(errorData)
253
+ }
254
+ })
255
+
256
+ // 7.7
257
+ return cacheJobPromise.promise
258
+ }
259
+
260
+ async put (request, response) {
261
+ webidl.brandCheck(this, Cache)
262
+
263
+ const prefix = 'Cache.put'
264
+ webidl.argumentLengthCheck(arguments, 2, prefix)
265
+
266
+ request = webidl.converters.RequestInfo(request, prefix, 'request')
267
+ response = webidl.converters.Response(response, prefix, 'response')
268
+
269
+ // 1.
270
+ let innerRequest = null
271
+
272
+ // 2.
273
+ if (request instanceof Request) {
274
+ innerRequest = request[kState]
275
+ } else { // 3.
276
+ innerRequest = new Request(request)[kState]
277
+ }
278
+
279
+ // 4.
280
+ if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {
281
+ throw webidl.errors.exception({
282
+ header: prefix,
283
+ message: 'Expected an http/s scheme when method is not GET'
284
+ })
285
+ }
286
+
287
+ // 5.
288
+ const innerResponse = response[kState]
289
+
290
+ // 6.
291
+ if (innerResponse.status === 206) {
292
+ throw webidl.errors.exception({
293
+ header: prefix,
294
+ message: 'Got 206 status'
295
+ })
296
+ }
297
+
298
+ // 7.
299
+ if (innerResponse.headersList.contains('vary')) {
300
+ // 7.1.
301
+ const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))
302
+
303
+ // 7.2.
304
+ for (const fieldValue of fieldValues) {
305
+ // 7.2.1
306
+ if (fieldValue === '*') {
307
+ throw webidl.errors.exception({
308
+ header: prefix,
309
+ message: 'Got * vary field value'
310
+ })
311
+ }
312
+ }
313
+ }
314
+
315
+ // 8.
316
+ if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {
317
+ throw webidl.errors.exception({
318
+ header: prefix,
319
+ message: 'Response body is locked or disturbed'
320
+ })
321
+ }
322
+
323
+ // 9.
324
+ const clonedResponse = cloneResponse(innerResponse)
325
+
326
+ // 10.
327
+ const bodyReadPromise = createDeferredPromise()
328
+
329
+ // 11.
330
+ if (innerResponse.body != null) {
331
+ // 11.1
332
+ const stream = innerResponse.body.stream
333
+
334
+ // 11.2
335
+ const reader = stream.getReader()
336
+
337
+ // 11.3
338
+ readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject)
339
+ } else {
340
+ bodyReadPromise.resolve(undefined)
341
+ }
342
+
343
+ // 12.
344
+ /** @type {CacheBatchOperation[]} */
345
+ const operations = []
346
+
347
+ // 13.
348
+ /** @type {CacheBatchOperation} */
349
+ const operation = {
350
+ type: 'put', // 14.
351
+ request: innerRequest, // 15.
352
+ response: clonedResponse // 16.
353
+ }
354
+
355
+ // 17.
356
+ operations.push(operation)
357
+
358
+ // 19.
359
+ const bytes = await bodyReadPromise.promise
360
+
361
+ if (clonedResponse.body != null) {
362
+ clonedResponse.body.source = bytes
363
+ }
364
+
365
+ // 19.1
366
+ const cacheJobPromise = createDeferredPromise()
367
+
368
+ // 19.2.1
369
+ let errorData = null
370
+
371
+ // 19.2.2
372
+ try {
373
+ this.#batchCacheOperations(operations)
374
+ } catch (e) {
375
+ errorData = e
376
+ }
377
+
378
+ // 19.2.3
379
+ queueMicrotask(() => {
380
+ // 19.2.3.1
381
+ if (errorData === null) {
382
+ cacheJobPromise.resolve()
383
+ } else { // 19.2.3.2
384
+ cacheJobPromise.reject(errorData)
385
+ }
386
+ })
387
+
388
+ return cacheJobPromise.promise
389
+ }
390
+
391
+ async delete (request, options = {}) {
392
+ webidl.brandCheck(this, Cache)
393
+
394
+ const prefix = 'Cache.delete'
395
+ webidl.argumentLengthCheck(arguments, 1, prefix)
396
+
397
+ request = webidl.converters.RequestInfo(request, prefix, 'request')
398
+ options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
399
+
400
+ /**
401
+ * @type {Request}
402
+ */
403
+ let r = null
404
+
405
+ if (request instanceof Request) {
406
+ r = request[kState]
407
+
408
+ if (r.method !== 'GET' && !options.ignoreMethod) {
409
+ return false
410
+ }
411
+ } else {
412
+ assert(typeof request === 'string')
413
+
414
+ r = new Request(request)[kState]
415
+ }
416
+
417
+ /** @type {CacheBatchOperation[]} */
418
+ const operations = []
419
+
420
+ /** @type {CacheBatchOperation} */
421
+ const operation = {
422
+ type: 'delete',
423
+ request: r,
424
+ options
425
+ }
426
+
427
+ operations.push(operation)
428
+
429
+ const cacheJobPromise = createDeferredPromise()
430
+
431
+ let errorData = null
432
+ let requestResponses
433
+
434
+ try {
435
+ requestResponses = this.#batchCacheOperations(operations)
436
+ } catch (e) {
437
+ errorData = e
438
+ }
439
+
440
+ queueMicrotask(() => {
441
+ if (errorData === null) {
442
+ cacheJobPromise.resolve(!!requestResponses?.length)
443
+ } else {
444
+ cacheJobPromise.reject(errorData)
445
+ }
446
+ })
447
+
448
+ return cacheJobPromise.promise
449
+ }
450
+
451
+ /**
452
+ * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys
453
+ * @param {any} request
454
+ * @param {import('../../types/cache').CacheQueryOptions} options
455
+ * @returns {Promise<readonly Request[]>}
456
+ */
457
+ async keys (request = undefined, options = {}) {
458
+ webidl.brandCheck(this, Cache)
459
+
460
+ const prefix = 'Cache.keys'
461
+
462
+ if (request !== undefined) request = webidl.converters.RequestInfo(request, prefix, 'request')
463
+ options = webidl.converters.CacheQueryOptions(options, prefix, 'options')
464
+
465
+ // 1.
466
+ let r = null
467
+
468
+ // 2.
469
+ if (request !== undefined) {
470
+ // 2.1
471
+ if (request instanceof Request) {
472
+ // 2.1.1
473
+ r = request[kState]
474
+
475
+ // 2.1.2
476
+ if (r.method !== 'GET' && !options.ignoreMethod) {
477
+ return []
478
+ }
479
+ } else if (typeof request === 'string') { // 2.2
480
+ r = new Request(request)[kState]
481
+ }
482
+ }
483
+
484
+ // 4.
485
+ const promise = createDeferredPromise()
486
+
487
+ // 5.
488
+ // 5.1
489
+ const requests = []
490
+
491
+ // 5.2
492
+ if (request === undefined) {
493
+ // 5.2.1
494
+ for (const requestResponse of this.#relevantRequestResponseList) {
495
+ // 5.2.1.1
496
+ requests.push(requestResponse[0])
497
+ }
498
+ } else { // 5.3
499
+ // 5.3.1
500
+ const requestResponses = this.#queryCache(r, options)
501
+
502
+ // 5.3.2
503
+ for (const requestResponse of requestResponses) {
504
+ // 5.3.2.1
505
+ requests.push(requestResponse[0])
506
+ }
507
+ }
508
+
509
+ // 5.4
510
+ queueMicrotask(() => {
511
+ // 5.4.1
512
+ const requestList = []
513
+
514
+ // 5.4.2
515
+ for (const request of requests) {
516
+ const requestObject = fromInnerRequest(
517
+ request,
518
+ new AbortController().signal,
519
+ 'immutable'
520
+ )
521
+ // 5.4.2.1
522
+ requestList.push(requestObject)
523
+ }
524
+
525
+ // 5.4.3
526
+ promise.resolve(Object.freeze(requestList))
527
+ })
528
+
529
+ return promise.promise
530
+ }
531
+
532
+ /**
533
+ * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm
534
+ * @param {CacheBatchOperation[]} operations
535
+ * @returns {requestResponseList}
536
+ */
537
+ #batchCacheOperations (operations) {
538
+ // 1.
539
+ const cache = this.#relevantRequestResponseList
540
+
541
+ // 2.
542
+ const backupCache = [...cache]
543
+
544
+ // 3.
545
+ const addedItems = []
546
+
547
+ // 4.1
548
+ const resultList = []
549
+
550
+ try {
551
+ // 4.2
552
+ for (const operation of operations) {
553
+ // 4.2.1
554
+ if (operation.type !== 'delete' && operation.type !== 'put') {
555
+ throw webidl.errors.exception({
556
+ header: 'Cache.#batchCacheOperations',
557
+ message: 'operation type does not match "delete" or "put"'
558
+ })
559
+ }
560
+
561
+ // 4.2.2
562
+ if (operation.type === 'delete' && operation.response != null) {
563
+ throw webidl.errors.exception({
564
+ header: 'Cache.#batchCacheOperations',
565
+ message: 'delete operation should not have an associated response'
566
+ })
567
+ }
568
+
569
+ // 4.2.3
570
+ if (this.#queryCache(operation.request, operation.options, addedItems).length) {
571
+ throw new DOMException('???', 'InvalidStateError')
572
+ }
573
+
574
+ // 4.2.4
575
+ let requestResponses
576
+
577
+ // 4.2.5
578
+ if (operation.type === 'delete') {
579
+ // 4.2.5.1
580
+ requestResponses = this.#queryCache(operation.request, operation.options)
581
+
582
+ // TODO: the spec is wrong, this is needed to pass WPTs
583
+ if (requestResponses.length === 0) {
584
+ return []
585
+ }
586
+
587
+ // 4.2.5.2
588
+ for (const requestResponse of requestResponses) {
589
+ const idx = cache.indexOf(requestResponse)
590
+ assert(idx !== -1)
591
+
592
+ // 4.2.5.2.1
593
+ cache.splice(idx, 1)
594
+ }
595
+ } else if (operation.type === 'put') { // 4.2.6
596
+ // 4.2.6.1
597
+ if (operation.response == null) {
598
+ throw webidl.errors.exception({
599
+ header: 'Cache.#batchCacheOperations',
600
+ message: 'put operation should have an associated response'
601
+ })
602
+ }
603
+
604
+ // 4.2.6.2
605
+ const r = operation.request
606
+
607
+ // 4.2.6.3
608
+ if (!urlIsHttpHttpsScheme(r.url)) {
609
+ throw webidl.errors.exception({
610
+ header: 'Cache.#batchCacheOperations',
611
+ message: 'expected http or https scheme'
612
+ })
613
+ }
614
+
615
+ // 4.2.6.4
616
+ if (r.method !== 'GET') {
617
+ throw webidl.errors.exception({
618
+ header: 'Cache.#batchCacheOperations',
619
+ message: 'not get method'
620
+ })
621
+ }
622
+
623
+ // 4.2.6.5
624
+ if (operation.options != null) {
625
+ throw webidl.errors.exception({
626
+ header: 'Cache.#batchCacheOperations',
627
+ message: 'options must not be defined'
628
+ })
629
+ }
630
+
631
+ // 4.2.6.6
632
+ requestResponses = this.#queryCache(operation.request)
633
+
634
+ // 4.2.6.7
635
+ for (const requestResponse of requestResponses) {
636
+ const idx = cache.indexOf(requestResponse)
637
+ assert(idx !== -1)
638
+
639
+ // 4.2.6.7.1
640
+ cache.splice(idx, 1)
641
+ }
642
+
643
+ // 4.2.6.8
644
+ cache.push([operation.request, operation.response])
645
+
646
+ // 4.2.6.10
647
+ addedItems.push([operation.request, operation.response])
648
+ }
649
+
650
+ // 4.2.7
651
+ resultList.push([operation.request, operation.response])
652
+ }
653
+
654
+ // 4.3
655
+ return resultList
656
+ } catch (e) { // 5.
657
+ // 5.1
658
+ this.#relevantRequestResponseList.length = 0
659
+
660
+ // 5.2
661
+ this.#relevantRequestResponseList = backupCache
662
+
663
+ // 5.3
664
+ throw e
665
+ }
666
+ }
667
+
668
+ /**
669
+ * @see https://w3c.github.io/ServiceWorker/#query-cache
670
+ * @param {any} requestQuery
671
+ * @param {import('../../types/cache').CacheQueryOptions} options
672
+ * @param {requestResponseList} targetStorage
673
+ * @returns {requestResponseList}
674
+ */
675
+ #queryCache (requestQuery, options, targetStorage) {
676
+ /** @type {requestResponseList} */
677
+ const resultList = []
678
+
679
+ const storage = targetStorage ?? this.#relevantRequestResponseList
680
+
681
+ for (const requestResponse of storage) {
682
+ const [cachedRequest, cachedResponse] = requestResponse
683
+ if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {
684
+ resultList.push(requestResponse)
685
+ }
686
+ }
687
+
688
+ return resultList
689
+ }
690
+
691
+ /**
692
+ * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm
693
+ * @param {any} requestQuery
694
+ * @param {any} request
695
+ * @param {any | null} response
696
+ * @param {import('../../types/cache').CacheQueryOptions | undefined} options
697
+ * @returns {boolean}
698
+ */
699
+ #requestMatchesCachedItem (requestQuery, request, response = null, options) {
700
+ // if (options?.ignoreMethod === false && request.method === 'GET') {
701
+ // return false
702
+ // }
703
+
704
+ const queryURL = new URL(requestQuery.url)
705
+
706
+ const cachedURL = new URL(request.url)
707
+
708
+ if (options?.ignoreSearch) {
709
+ cachedURL.search = ''
710
+
711
+ queryURL.search = ''
712
+ }
713
+
714
+ if (!urlEquals(queryURL, cachedURL, true)) {
715
+ return false
716
+ }
717
+
718
+ if (
719
+ response == null ||
720
+ options?.ignoreVary ||
721
+ !response.headersList.contains('vary')
722
+ ) {
723
+ return true
724
+ }
725
+
726
+ const fieldValues = getFieldValues(response.headersList.get('vary'))
727
+
728
+ for (const fieldValue of fieldValues) {
729
+ if (fieldValue === '*') {
730
+ return false
731
+ }
732
+
733
+ const requestValue = request.headersList.get(fieldValue)
734
+ const queryValue = requestQuery.headersList.get(fieldValue)
735
+
736
+ // If one has the header and the other doesn't, or one has
737
+ // a different value than the other, return false
738
+ if (requestValue !== queryValue) {
739
+ return false
740
+ }
741
+ }
742
+
743
+ return true
744
+ }
745
+
746
+ #internalMatchAll (request, options, maxResponses = Infinity) {
747
+ // 1.
748
+ let r = null
749
+
750
+ // 2.
751
+ if (request !== undefined) {
752
+ if (request instanceof Request) {
753
+ // 2.1.1
754
+ r = request[kState]
755
+
756
+ // 2.1.2
757
+ if (r.method !== 'GET' && !options.ignoreMethod) {
758
+ return []
759
+ }
760
+ } else if (typeof request === 'string') {
761
+ // 2.2.1
762
+ r = new Request(request)[kState]
763
+ }
764
+ }
765
+
766
+ // 5.
767
+ // 5.1
768
+ const responses = []
769
+
770
+ // 5.2
771
+ if (request === undefined) {
772
+ // 5.2.1
773
+ for (const requestResponse of this.#relevantRequestResponseList) {
774
+ responses.push(requestResponse[1])
775
+ }
776
+ } else { // 5.3
777
+ // 5.3.1
778
+ const requestResponses = this.#queryCache(r, options)
779
+
780
+ // 5.3.2
781
+ for (const requestResponse of requestResponses) {
782
+ responses.push(requestResponse[1])
783
+ }
784
+ }
785
+
786
+ // 5.4
787
+ // We don't implement CORs so we don't need to loop over the responses, yay!
788
+
789
+ // 5.5.1
790
+ const responseList = []
791
+
792
+ // 5.5.2
793
+ for (const response of responses) {
794
+ // 5.5.2.1
795
+ const responseObject = fromInnerResponse(response, 'immutable')
796
+
797
+ responseList.push(responseObject.clone())
798
+
799
+ if (responseList.length >= maxResponses) {
800
+ break
801
+ }
802
+ }
803
+
804
+ // 6.
805
+ return Object.freeze(responseList)
806
+ }
807
+ }
808
+
809
+ Object.defineProperties(Cache.prototype, {
810
+ [Symbol.toStringTag]: {
811
+ value: 'Cache',
812
+ configurable: true
813
+ },
814
+ match: kEnumerableProperty,
815
+ matchAll: kEnumerableProperty,
816
+ add: kEnumerableProperty,
817
+ addAll: kEnumerableProperty,
818
+ put: kEnumerableProperty,
819
+ delete: kEnumerableProperty,
820
+ keys: kEnumerableProperty
821
+ })
822
+
823
+ const cacheQueryOptionConverters = [
824
+ {
825
+ key: 'ignoreSearch',
826
+ converter: webidl.converters.boolean,
827
+ defaultValue: () => false
828
+ },
829
+ {
830
+ key: 'ignoreMethod',
831
+ converter: webidl.converters.boolean,
832
+ defaultValue: () => false
833
+ },
834
+ {
835
+ key: 'ignoreVary',
836
+ converter: webidl.converters.boolean,
837
+ defaultValue: () => false
838
+ }
839
+ ]
840
+
841
+ webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)
842
+
843
+ webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([
844
+ ...cacheQueryOptionConverters,
845
+ {
846
+ key: 'cacheName',
847
+ converter: webidl.converters.DOMString
848
+ }
849
+ ])
850
+
851
+ webidl.converters.Response = webidl.interfaceConverter(Response)
852
+
853
+ webidl.converters['sequence<RequestInfo>'] = webidl.sequenceConverter(
854
+ webidl.converters.RequestInfo
855
+ )
856
+
857
+ module.exports = {
858
+ Cache
859
+ }