@slicemachine/manager 0.24.14 → 0.24.15-alpha.aa-svelte-4-and-5.1

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 (234) hide show
  1. package/dist/_node_modules/{tslib → @amplitude/analytics-core/_node_modules/tslib}/tslib.es6.cjs +0 -20
  2. package/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.cjs.map +1 -0
  3. package/dist/_node_modules/{tslib → @amplitude/analytics-core/_node_modules/tslib}/tslib.es6.js +0 -20
  4. package/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.js.map +1 -0
  5. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.cjs +1 -1
  6. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js +1 -1
  7. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.cjs +1 -1
  8. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.js +1 -1
  9. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.cjs +1 -1
  10. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.cjs.map +1 -1
  11. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js +1 -1
  12. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js.map +1 -1
  13. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.cjs +1 -1
  14. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.js +1 -1
  15. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.cjs +1 -1
  16. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js +1 -1
  17. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.cjs +1 -1
  18. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.cjs.map +1 -1
  19. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js +1 -1
  20. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js.map +1 -1
  21. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.cjs +1 -1
  22. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js +1 -1
  23. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.cjs +1 -1
  24. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.cjs.map +1 -1
  25. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js +1 -1
  26. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js.map +1 -1
  27. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.cjs +144 -0
  28. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.cjs.map +1 -0
  29. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.js +145 -0
  30. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.js.map +1 -0
  31. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.cjs +1 -1
  32. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.js +1 -1
  33. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.cjs +1 -1
  34. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.js +1 -1
  35. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.cjs +1 -1
  36. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.js +1 -1
  37. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.cjs +1 -1
  38. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.cjs.map +1 -1
  39. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js +1 -1
  40. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js.map +1 -1
  41. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.cjs.map +1 -1
  42. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js.map +1 -1
  43. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.cjs.map +1 -1
  44. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js.map +1 -1
  45. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.cjs.map +1 -1
  46. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js.map +1 -1
  47. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.cjs.map +1 -1
  48. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.js.map +1 -1
  49. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.cjs.map +1 -1
  50. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.js.map +1 -1
  51. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.cjs.map +1 -1
  52. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js.map +1 -1
  53. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.cjs.map +1 -1
  54. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js.map +1 -1
  55. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.cjs.map +1 -1
  56. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.js.map +1 -1
  57. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.cjs.map +1 -1
  58. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js.map +1 -1
  59. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.cjs.map +1 -1
  60. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js.map +1 -1
  61. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.cjs.map +1 -1
  62. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.js.map +1 -1
  63. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Decoder.cjs.map +1 -1
  64. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Decoder.js.map +1 -1
  65. package/dist/_node_modules/cross-spawn/lib/enoent.cjs.map +1 -1
  66. package/dist/_node_modules/cross-spawn/lib/enoent.js.map +1 -1
  67. package/dist/_node_modules/cross-spawn/lib/parse.cjs.map +1 -1
  68. package/dist/_node_modules/cross-spawn/lib/parse.js.map +1 -1
  69. package/dist/_node_modules/cross-spawn/lib/util/escape.cjs.map +1 -1
  70. package/dist/_node_modules/cross-spawn/lib/util/escape.js.map +1 -1
  71. package/dist/_node_modules/cross-spawn/lib/util/readShebang.cjs.map +1 -1
  72. package/dist/_node_modules/cross-spawn/lib/util/readShebang.js.map +1 -1
  73. package/dist/_node_modules/cross-spawn/lib/util/resolveCommand.cjs.map +1 -1
  74. package/dist/_node_modules/cross-spawn/lib/util/resolveCommand.js.map +1 -1
  75. package/dist/_node_modules/data-uri-to-buffer/dist/index.cjs.map +1 -1
  76. package/dist/_node_modules/data-uri-to-buffer/dist/index.js.map +1 -1
  77. package/dist/_node_modules/execa/index.cjs +2 -2
  78. package/dist/_node_modules/execa/index.cjs.map +1 -1
  79. package/dist/_node_modules/execa/index.js +2 -2
  80. package/dist/_node_modules/execa/index.js.map +1 -1
  81. package/dist/_node_modules/execa/lib/command.cjs.map +1 -1
  82. package/dist/_node_modules/execa/lib/command.js.map +1 -1
  83. package/dist/_node_modules/execa/lib/error.cjs.map +1 -1
  84. package/dist/_node_modules/execa/lib/error.js.map +1 -1
  85. package/dist/_node_modules/execa/lib/kill.cjs.map +1 -1
  86. package/dist/_node_modules/execa/lib/kill.js.map +1 -1
  87. package/dist/_node_modules/execa/lib/promise.cjs +2 -2
  88. package/dist/_node_modules/execa/lib/promise.cjs.map +1 -1
  89. package/dist/_node_modules/execa/lib/promise.js +2 -2
  90. package/dist/_node_modules/execa/lib/promise.js.map +1 -1
  91. package/dist/_node_modules/execa/lib/stdio.cjs.map +1 -1
  92. package/dist/_node_modules/execa/lib/stdio.js.map +1 -1
  93. package/dist/_node_modules/execa/lib/stream.cjs.map +1 -1
  94. package/dist/_node_modules/execa/lib/stream.js.map +1 -1
  95. package/dist/_node_modules/execa/lib/verbose.cjs.map +1 -1
  96. package/dist/_node_modules/execa/lib/verbose.js.map +1 -1
  97. package/dist/_node_modules/fetch-blob/file.cjs.map +1 -1
  98. package/dist/_node_modules/fetch-blob/file.js.map +1 -1
  99. package/dist/_node_modules/fetch-blob/index.cjs.map +1 -1
  100. package/dist/_node_modules/fetch-blob/index.js.map +1 -1
  101. package/dist/_node_modules/fetch-blob/streams.cjs.map +1 -1
  102. package/dist/_node_modules/fetch-blob/streams.js.map +1 -1
  103. package/dist/_node_modules/file-type/core.cjs.map +1 -1
  104. package/dist/_node_modules/file-type/core.js.map +1 -1
  105. package/dist/_node_modules/formdata-polyfill/esm.min.cjs.map +1 -1
  106. package/dist/_node_modules/formdata-polyfill/esm.min.js.map +1 -1
  107. package/dist/_node_modules/get-port/index.cjs.map +1 -1
  108. package/dist/_node_modules/get-port/index.js.map +1 -1
  109. package/dist/_node_modules/get-stream/index.cjs.map +1 -1
  110. package/dist/_node_modules/get-stream/index.js.map +1 -1
  111. package/dist/_node_modules/human-signals/build/src/realtime.cjs.map +1 -1
  112. package/dist/_node_modules/human-signals/build/src/realtime.js.map +1 -1
  113. package/dist/_node_modules/isexe/index.cjs.map +1 -1
  114. package/dist/_node_modules/isexe/index.js.map +1 -1
  115. package/dist/_node_modules/mimic-fn/index.cjs.map +1 -1
  116. package/dist/_node_modules/mimic-fn/index.js.map +1 -1
  117. package/dist/_node_modules/node-domexception/index.cjs.map +1 -1
  118. package/dist/_node_modules/node-domexception/index.js.map +1 -1
  119. package/dist/_node_modules/node-fetch/src/body.cjs.map +1 -1
  120. package/dist/_node_modules/node-fetch/src/body.js.map +1 -1
  121. package/dist/_node_modules/node-fetch/src/headers.cjs.map +1 -1
  122. package/dist/_node_modules/node-fetch/src/headers.js.map +1 -1
  123. package/dist/_node_modules/node-fetch/src/index.cjs.map +1 -1
  124. package/dist/_node_modules/node-fetch/src/index.js.map +1 -1
  125. package/dist/_node_modules/node-fetch/src/request.cjs.map +1 -1
  126. package/dist/_node_modules/node-fetch/src/request.js.map +1 -1
  127. package/dist/_node_modules/node-fetch/src/utils/is.cjs.map +1 -1
  128. package/dist/_node_modules/node-fetch/src/utils/is.js.map +1 -1
  129. package/dist/_node_modules/node-fetch/src/utils/multipart-parser.cjs.map +1 -1
  130. package/dist/_node_modules/node-fetch/src/utils/multipart-parser.js.map +1 -1
  131. package/dist/_node_modules/node-fetch/src/utils/referrer.cjs.map +1 -1
  132. package/dist/_node_modules/node-fetch/src/utils/referrer.js.map +1 -1
  133. package/dist/_node_modules/npm-run-path/_node_modules/path-key/index.cjs.map +1 -0
  134. package/dist/_node_modules/npm-run-path/_node_modules/path-key/index.js.map +1 -0
  135. package/dist/_node_modules/{execa/_node_modules/npm-run-path → npm-run-path}/index.cjs +1 -1
  136. package/dist/_node_modules/npm-run-path/index.cjs.map +1 -0
  137. package/dist/_node_modules/{execa/_node_modules/npm-run-path → npm-run-path}/index.js +1 -1
  138. package/dist/_node_modules/npm-run-path/index.js.map +1 -0
  139. package/dist/_node_modules/{execa/_node_modules/onetime → onetime}/index.cjs +1 -1
  140. package/dist/_node_modules/onetime/index.cjs.map +1 -0
  141. package/dist/_node_modules/{execa/_node_modules/onetime → onetime}/index.js +1 -1
  142. package/dist/_node_modules/onetime/index.js.map +1 -0
  143. package/dist/_node_modules/p-limit/index.cjs.map +1 -1
  144. package/dist/_node_modules/p-limit/index.js.map +1 -1
  145. package/dist/_node_modules/r19/dist/handleRPCRequest.cjs.map +1 -1
  146. package/dist/_node_modules/r19/dist/handleRPCRequest.js.map +1 -1
  147. package/dist/_node_modules/shebang-command/index.cjs.map +1 -1
  148. package/dist/_node_modules/shebang-command/index.js.map +1 -1
  149. package/dist/_node_modules/signal-exit/index.cjs.map +1 -1
  150. package/dist/_node_modules/signal-exit/index.js.map +1 -1
  151. package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.cjs.map +1 -1
  152. package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.js.map +1 -1
  153. package/dist/_node_modules/which/which.cjs.map +1 -1
  154. package/dist/_node_modules/which/which.js.map +1 -1
  155. package/dist/_node_modules/zod/lib/index.cjs.map +1 -1
  156. package/dist/_node_modules/zod/lib/index.js.map +1 -1
  157. package/dist/_virtual/_commonjsHelpers.cjs +1 -4
  158. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
  159. package/dist/_virtual/_commonjsHelpers.js +1 -4
  160. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  161. package/dist/auth/PrismicAuthManager.cjs.map +1 -1
  162. package/dist/auth/PrismicAuthManager.js.map +1 -1
  163. package/dist/auth/createPrismicAuthManagerMiddleware.cjs.map +1 -1
  164. package/dist/auth/createPrismicAuthManagerMiddleware.js.map +1 -1
  165. package/dist/constants/API_ENDPOINTS.cjs.map +1 -1
  166. package/dist/constants/API_ENDPOINTS.js.map +1 -1
  167. package/dist/constants/API_TOKENS.cjs.map +1 -1
  168. package/dist/constants/API_TOKENS.js.map +1 -1
  169. package/dist/errors.cjs.map +1 -1
  170. package/dist/errors.js.map +1 -1
  171. package/dist/getEnvironmentInfo.cjs.map +1 -1
  172. package/dist/getEnvironmentInfo.js.map +1 -1
  173. package/dist/lib/DecodeError.cjs.map +1 -1
  174. package/dist/lib/DecodeError.js.map +1 -1
  175. package/dist/lib/bufferCodec.d.ts +1 -0
  176. package/dist/lib/buildPrismicRepositoryAPIEndpoint.cjs.map +1 -1
  177. package/dist/lib/buildPrismicRepositoryAPIEndpoint.js.map +1 -1
  178. package/dist/lib/fetchGitHubReleaseBodyForRelease.cjs.map +1 -1
  179. package/dist/lib/fetchGitHubReleaseBodyForRelease.js.map +1 -1
  180. package/dist/lib/fetchNPMPackageVersions.cjs.map +1 -1
  181. package/dist/lib/fetchNPMPackageVersions.js.map +1 -1
  182. package/dist/lib/installDependencies.cjs.map +1 -1
  183. package/dist/lib/installDependencies.js.map +1 -1
  184. package/dist/lib/locateFileUpward.cjs.map +1 -1
  185. package/dist/lib/locateFileUpward.js.map +1 -1
  186. package/dist/lib/prismicrc.cjs.map +1 -1
  187. package/dist/lib/prismicrc.js.map +1 -1
  188. package/dist/managers/SliceMachineManager.cjs.map +1 -1
  189. package/dist/managers/SliceMachineManager.d.ts +1 -0
  190. package/dist/managers/SliceMachineManager.js.map +1 -1
  191. package/dist/managers/customTypes/CustomTypesManager.cjs +213 -4
  192. package/dist/managers/customTypes/CustomTypesManager.cjs.map +1 -1
  193. package/dist/managers/customTypes/CustomTypesManager.d.ts +130 -11
  194. package/dist/managers/customTypes/CustomTypesManager.js +215 -6
  195. package/dist/managers/customTypes/CustomTypesManager.js.map +1 -1
  196. package/dist/managers/git/GitManager.cjs.map +1 -1
  197. package/dist/managers/git/GitManager.js.map +1 -1
  198. package/dist/managers/git/buildGitRepoSpecifier.cjs.map +1 -1
  199. package/dist/managers/git/buildGitRepoSpecifier.js.map +1 -1
  200. package/dist/managers/prismicRepository/PrismicRepositoryManager.cjs.map +1 -1
  201. package/dist/managers/prismicRepository/PrismicRepositoryManager.js.map +1 -1
  202. package/dist/managers/project/ProjectManager.cjs.map +1 -1
  203. package/dist/managers/project/ProjectManager.js.map +1 -1
  204. package/dist/managers/screenshots/ScreenshotsManager.cjs.map +1 -1
  205. package/dist/managers/screenshots/ScreenshotsManager.d.ts +1 -0
  206. package/dist/managers/screenshots/ScreenshotsManager.js.map +1 -1
  207. package/dist/managers/sliceTemplateLibrary/SliceTemplateLibraryManager.cjs.map +1 -1
  208. package/dist/managers/sliceTemplateLibrary/SliceTemplateLibraryManager.d.ts +1 -0
  209. package/dist/managers/sliceTemplateLibrary/SliceTemplateLibraryManager.js.map +1 -1
  210. package/dist/managers/slices/SlicesManager.cjs.map +1 -1
  211. package/dist/managers/slices/SlicesManager.d.ts +1 -0
  212. package/dist/managers/slices/SlicesManager.js.map +1 -1
  213. package/dist/managers/telemetry/TelemetryManager.cjs.map +1 -1
  214. package/dist/managers/telemetry/TelemetryManager.js.map +1 -1
  215. package/dist/managers/telemetry/types.cjs +4 -6
  216. package/dist/managers/telemetry/types.cjs.map +1 -1
  217. package/dist/managers/telemetry/types.d.ts +6 -7
  218. package/dist/managers/telemetry/types.js +4 -6
  219. package/dist/managers/telemetry/types.js.map +1 -1
  220. package/dist/managers/versions/VersionsManager.cjs.map +1 -1
  221. package/dist/managers/versions/VersionsManager.js.map +1 -1
  222. package/package.json +7 -6
  223. package/src/managers/customTypes/CustomTypesManager.ts +365 -6
  224. package/src/managers/telemetry/types.ts +12 -17
  225. package/dist/_node_modules/execa/_node_modules/npm-run-path/index.cjs.map +0 -1
  226. package/dist/_node_modules/execa/_node_modules/npm-run-path/index.js.map +0 -1
  227. package/dist/_node_modules/execa/_node_modules/onetime/index.cjs.map +0 -1
  228. package/dist/_node_modules/execa/_node_modules/onetime/index.js.map +0 -1
  229. package/dist/_node_modules/execa/_node_modules/path-key/index.cjs.map +0 -1
  230. package/dist/_node_modules/execa/_node_modules/path-key/index.js.map +0 -1
  231. package/dist/_node_modules/tslib/tslib.es6.cjs.map +0 -1
  232. package/dist/_node_modules/tslib/tslib.es6.js.map +0 -1
  233. /package/dist/_node_modules/{execa → npm-run-path}/_node_modules/path-key/index.cjs +0 -0
  234. /package/dist/_node_modules/{execa → npm-run-path}/_node_modules/path-key/index.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../../../../node_modules/file-type/core.js"],"sourcesContent":["import {Buffer} from 'node:buffer';\nimport * as Token from 'token-types';\nimport * as strtok3 from 'strtok3/core'; // eslint-disable-line n/file-extension-in-import\nimport {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken,\n} from './util.js';\nimport {extensions, mimeTypes} from './supported.js';\n\nconst minimumBytes = 4100; // A fair amount of file-types are detectable within this range.\n\nexport async function fileTypeFromStream(stream) {\n\tconst tokenizer = await strtok3.fromStream(stream);\n\ttry {\n\t\treturn await fileTypeFromTokenizer(tokenizer);\n\t} finally {\n\t\tawait tokenizer.close();\n\t}\n}\n\nexport async function fileTypeFromBuffer(input) {\n\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {\n\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`Buffer\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t}\n\n\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\tif (!(buffer?.length > 1)) {\n\t\treturn;\n\t}\n\n\treturn fileTypeFromTokenizer(strtok3.fromBuffer(buffer));\n}\n\nexport async function fileTypeFromBlob(blob) {\n\tconst buffer = await blob.arrayBuffer();\n\treturn fileTypeFromBuffer(new Uint8Array(buffer));\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options,\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport async function fileTypeFromTokenizer(tokenizer) {\n\ttry {\n\t\treturn new FileTypeParser().parse(tokenizer);\n\t} catch (error) {\n\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nclass FileTypeParser {\n\tcheck(header, options) {\n\t\treturn _check(this.buffer, header, options);\n\t}\n\n\tcheckString(header, options) {\n\t\treturn this.check(stringToBytes(header), options);\n\t}\n\n\tasync parse(tokenizer) {\n\t\tthis.buffer = Buffer.alloc(minimumBytes);\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\tthis.tokenizer = tokenizer;\n\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: 12, mayBeLess: true});\n\n\t\t// -- 2-byte signatures --\n\n\t\tif (this.check([0x42, 0x4D])) {\n\t\t\treturn {\n\t\t\t\text: 'bmp',\n\t\t\t\tmime: 'image/bmp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x0B, 0x77])) {\n\t\t\treturn {\n\t\t\t\text: 'ac3',\n\t\t\t\tmime: 'audio/vnd.dolby.dd-raw',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x78, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'dmg',\n\t\t\t\tmime: 'application/x-apple-diskimage',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4D, 0x5A])) {\n\t\t\treturn {\n\t\t\t\text: 'exe',\n\t\t\t\tmime: 'application/x-msdownload',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x25, 0x21])) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 24, mayBeLess: true});\n\n\t\t\tif (\n\t\t\t\tthis.checkString('PS-Adobe-', {offset: 2})\n\t\t\t\t&& this.checkString(' EPSF-', {offset: 14})\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'eps',\n\t\t\t\t\tmime: 'application/eps',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ps',\n\t\t\t\tmime: 'application/postscript',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x1F, 0xA0])\n\t\t\t|| this.check([0x1F, 0x9D])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'Z',\n\t\t\t\tmime: 'application/x-compress',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC7, 0x71])) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x60, 0xEA])) {\n\t\t\treturn {\n\t\t\t\text: 'arj',\n\t\t\t\tmime: 'application/x-arj',\n\t\t\t};\n\t\t}\n\n\t\t// -- 3-byte signatures --\n\n\t\tif (this.check([0xEF, 0xBB, 0xBF])) { // UTF-8-BOM\n\t\t\t// Strip off UTF-8-BOM\n\t\t\tthis.tokenizer.ignore(3);\n\t\t\treturn this.parse(tokenizer);\n\t\t}\n\n\t\tif (this.check([0x47, 0x49, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'gif',\n\t\t\t\tmime: 'image/gif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0xBC])) {\n\t\t\treturn {\n\t\t\t\text: 'jxr',\n\t\t\t\tmime: 'image/vnd.ms-photo',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\treturn {\n\t\t\t\text: 'gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x5A, 0x68])) {\n\t\t\treturn {\n\t\t\t\text: 'bz2',\n\t\t\t\tmime: 'application/x-bzip2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ID3')) {\n\t\t\tawait tokenizer.ignore(6); // Skip ID3 header until the header size\n\t\t\tconst id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n\t\t\tif (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n\t\t\t\t// Guess file type based on ID3 header for backward compatibility\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(id3HeaderLength);\n\t\t\treturn fileTypeFromTokenizer(tokenizer); // Skip ID3 header, recursion\n\t\t}\n\n\t\t// Musepack, SV7\n\t\tif (this.checkString('MP+')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t(this.buffer[0] === 0x43 || this.buffer[0] === 0x46)\n\t\t\t&& this.check([0x57, 0x53], {offset: 1})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'swf',\n\t\t\t\tmime: 'application/x-shockwave-flash',\n\t\t\t};\n\t\t}\n\n\t\t// -- 4-byte signatures --\n\n\t\t// Requires a sample size of 4 bytes\n\t\tif (this.check([0xFF, 0xD8, 0xFF])) {\n\t\t\tif (this.check([0xF7], {offset: 3})) { // JPG7/SOF55, indicating a ISO/IEC 14495 / JPEG-LS file\n\t\t\t\treturn {\n\t\t\t\t\text: 'jls',\n\t\t\t\t\tmime: 'image/jls',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'jpg',\n\t\t\t\tmime: 'image/jpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4F, 0x62, 0x6A, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'avro',\n\t\t\t\tmime: 'application/avro',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FLIF')) {\n\t\t\treturn {\n\t\t\t\text: 'flif',\n\t\t\t\tmime: 'image/flif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('8BPS')) {\n\t\t\treturn {\n\t\t\t\text: 'psd',\n\t\t\t\tmime: 'image/vnd.adobe.photoshop',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('WEBP', {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'webp',\n\t\t\t\tmime: 'image/webp',\n\t\t\t};\n\t\t}\n\n\t\t// Musepack, SV8\n\t\tif (this.checkString('MPCK')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FORM')) {\n\t\t\treturn {\n\t\t\t\text: 'aif',\n\t\t\t\tmime: 'audio/aiff',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('icns', {offset: 0})) {\n\t\t\treturn {\n\t\t\t\text: 'icns',\n\t\t\t\tmime: 'image/icns',\n\t\t\t};\n\t\t}\n\n\t\t// Zip-based file formats\n\t\t// Need to be before the `zip` check\n\t\tif (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\t\ttry {\n\t\t\t\twhile (tokenizer.position + 30 < tokenizer.fileInfo.size) {\n\t\t\t\t\tawait tokenizer.readBuffer(this.buffer, {length: 30});\n\n\t\t\t\t\t// https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers\n\t\t\t\t\tconst zipHeader = {\n\t\t\t\t\t\tcompressedSize: this.buffer.readUInt32LE(18),\n\t\t\t\t\t\tuncompressedSize: this.buffer.readUInt32LE(22),\n\t\t\t\t\t\tfilenameLength: this.buffer.readUInt16LE(26),\n\t\t\t\t\t\textraFieldLength: this.buffer.readUInt16LE(28),\n\t\t\t\t\t};\n\n\t\t\t\t\tzipHeader.filename = await tokenizer.readToken(new Token.StringType(zipHeader.filenameLength, 'utf-8'));\n\t\t\t\t\tawait tokenizer.ignore(zipHeader.extraFieldLength);\n\n\t\t\t\t\t// Assumes signed `.xpi` from addons.mozilla.org\n\t\t\t\t\tif (zipHeader.filename === 'META-INF/mozilla.rsa') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\t\tmime: 'application/x-xpinstall',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.endsWith('.rels') || zipHeader.filename.endsWith('.xml')) {\n\t\t\t\t\t\tconst type = zipHeader.filename.split('/')[0];\n\t\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\t\tcase '_rels':\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'word':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'docx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'ppt':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'pptx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'xl':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.startsWith('xl/')) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.startsWith('3D/') && zipHeader.filename.endsWith('.model')) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: '3mf',\n\t\t\t\t\t\t\tmime: 'model/3mf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// The docx, xlsx and pptx file types extend the Office Open XML file format:\n\t\t\t\t\t// https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n\t\t\t\t\t// We look for:\n\t\t\t\t\t// - one entry named '[Content_Types].xml' or '_rels/.rels',\n\t\t\t\t\t// - one entry indicating specific type of file.\n\t\t\t\t\t// MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n\t\t\t\t\tif (zipHeader.filename === 'mimetype' && zipHeader.compressedSize === zipHeader.uncompressedSize) {\n\t\t\t\t\t\tlet mimeType = await tokenizer.readToken(new Token.StringType(zipHeader.compressedSize, 'utf-8'));\n\t\t\t\t\t\tmimeType = mimeType.trim();\n\n\t\t\t\t\t\tswitch (mimeType) {\n\t\t\t\t\t\t\tcase 'application/epub+zip':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'epub',\n\t\t\t\t\t\t\t\t\tmime: 'application/epub+zip',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'odt',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.text',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'ods',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'odp',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.presentation',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Try to find next header manually when current one is corrupted\n\t\t\t\t\tif (zipHeader.compressedSize === 0) {\n\t\t\t\t\t\tlet nextHeaderIndex = -1;\n\n\t\t\t\t\t\twhile (nextHeaderIndex < 0 && (tokenizer.position < tokenizer.fileInfo.size)) {\n\t\t\t\t\t\t\tawait tokenizer.peekBuffer(this.buffer, {mayBeLess: true});\n\n\t\t\t\t\t\t\tnextHeaderIndex = this.buffer.indexOf('504B0304', 0, 'hex');\n\t\t\t\t\t\t\t// Move position to the next header if found, skip the whole buffer otherwise\n\t\t\t\t\t\t\tawait tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : this.buffer.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait tokenizer.ignore(zipHeader.compressedSize);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('OggS')) {\n\t\t\t// This is an OGG container\n\t\t\tawait tokenizer.ignore(28);\n\t\t\tconst type = Buffer.alloc(8);\n\t\t\tawait tokenizer.readBuffer(type);\n\n\t\t\t// Needs to be before `ogg` check\n\t\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'opus',\n\t\t\t\t\tmime: 'audio/opus',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' theora' in header.\n\t\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogv',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01video' in header.\n\t\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogm',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'oga',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'spx',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01vorbis' in header\n\t\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogg',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\t\treturn {\n\t\t\t\text: 'ogx',\n\t\t\t\tmime: 'application/ogg',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x50, 0x4B])\n\t\t\t&& (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n\t\t\t&& (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\t//\n\n\t\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\t\tif (\n\t\t\tthis.checkString('ftyp', {offset: 4})\n\t\t\t&& (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t\t) {\n\t\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\t\tconst brandMajor = this.buffer.toString('binary', 8, 12).replace('\\0', ' ').trim();\n\t\t\tswitch (brandMajor) {\n\t\t\t\tcase 'avif':\n\t\t\t\tcase 'avis':\n\t\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\t\tcase 'mif1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\t\tcase 'msf1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\t\tcase 'heic':\n\t\t\t\tcase 'heix':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\t\tcase 'hevc':\n\t\t\t\tcase 'hevx':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\t\tcase 'qt':\n\t\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\t\tcase 'M4V':\n\t\t\t\tcase 'M4VH':\n\t\t\t\tcase 'M4VP':\n\t\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\t\tcase 'M4P':\n\t\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\t\tcase 'M4B':\n\t\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'M4A':\n\t\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\t\tcase 'F4V':\n\t\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\t\tcase 'F4P':\n\t\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\t\tcase 'F4A':\n\t\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\t\tcase 'F4B':\n\t\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'crx':\n\t\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\t\tdefault:\n\t\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MThd')) {\n\t\t\treturn {\n\t\t\t\text: 'mid',\n\t\t\t\tmime: 'audio/midi',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOFF')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff',\n\t\t\t\tmime: 'font/woff',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOF2')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff2',\n\t\t\t\tmime: 'font/woff2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\t\treturn {\n\t\t\t\text: 'pcap',\n\t\t\t\tmime: 'application/vnd.tcpdump.pcap',\n\t\t\t};\n\t\t}\n\n\t\t// Sony DSD Stream File (DSF)\n\t\tif (this.checkString('DSD ')) {\n\t\t\treturn {\n\t\t\t\text: 'dsf',\n\t\t\t\tmime: 'audio/x-dsf', // Non-standard\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('LZIP')) {\n\t\t\treturn {\n\t\t\t\text: 'lz',\n\t\t\t\tmime: 'application/x-lzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('fLaC')) {\n\t\t\treturn {\n\t\t\t\text: 'flac',\n\t\t\t\tmime: 'audio/x-flac',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x50, 0x47, 0xFB])) {\n\t\t\treturn {\n\t\t\t\text: 'bpg',\n\t\t\t\tmime: 'image/bpg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('wvpk')) {\n\t\t\treturn {\n\t\t\t\text: 'wv',\n\t\t\t\tmime: 'audio/wavpack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('%PDF')) {\n\t\t\ttry {\n\t\t\t\tawait tokenizer.ignore(1350);\n\t\t\t\tconst maxBufferSize = 10 * 1024 * 1024;\n\t\t\t\tconst buffer = Buffer.alloc(Math.min(maxBufferSize, tokenizer.fileInfo.size));\n\t\t\t\tawait tokenizer.readBuffer(buffer, {mayBeLess: true});\n\n\t\t\t\t// Check if this is an Adobe Illustrator file\n\t\t\t\tif (buffer.includes(Buffer.from('AIPrivateData'))) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'ai',\n\t\t\t\t\t\tmime: 'application/postscript',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t// Swallow end of stream error if file is too small for the Adobe AI check\n\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Assume this is just a normal PDF\n\t\t\treturn {\n\t\t\t\text: 'pdf',\n\t\t\t\tmime: 'application/pdf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x61, 0x73, 0x6D])) {\n\t\t\treturn {\n\t\t\t\text: 'wasm',\n\t\t\t\tmime: 'application/wasm',\n\t\t\t};\n\t\t}\n\n\t\t// TIFF, little-endian type\n\t\tif (this.check([0x49, 0x49])) {\n\t\t\tconst fileType = await this.readTiffHeader(false);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\t// TIFF, big-endian type\n\t\tif (this.check([0x4D, 0x4D])) {\n\t\t\tconst fileType = await this.readTiffHeader(true);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MAC ')) {\n\t\t\treturn {\n\t\t\t\text: 'ape',\n\t\t\t\tmime: 'audio/ape',\n\t\t\t};\n\t\t}\n\n\t\t// https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\t\tif (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\t\tasync function readField() {\n\t\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\t\tlet mask = 0x80;\n\t\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3\n\t\t\t\t// = D\n\n\t\t\t\twhile ((msb & mask) === 0 && mask !== 0) {\n\t\t\t\t\t++ic;\n\t\t\t\t\tmask >>= 1;\n\t\t\t\t}\n\n\t\t\t\tconst id = Buffer.alloc(ic + 1);\n\t\t\t\tawait tokenizer.readBuffer(id);\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tasync function readElement() {\n\t\t\t\tconst id = await readField();\n\t\t\t\tconst lengthField = await readField();\n\t\t\t\tlengthField[0] ^= 0x80 >> (lengthField.length - 1);\n\t\t\t\tconst nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n\t\t\t\treturn {\n\t\t\t\t\tid: id.readUIntBE(0, id.length),\n\t\t\t\t\tlen: lengthField.readUIntBE(lengthField.length - nrLength, nrLength),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function readChildren(children) {\n\t\t\t\twhile (children > 0) {\n\t\t\t\t\tconst element = await readElement();\n\t\t\t\t\tif (element.id === 0x42_82) {\n\t\t\t\t\t\tconst rawValue = await tokenizer.readToken(new Token.StringType(element.len, 'utf-8'));\n\t\t\t\t\t\treturn rawValue.replace(/\\00.*$/g, ''); // Return DocType\n\t\t\t\t\t}\n\n\t\t\t\t\tawait tokenizer.ignore(element.len); // ignore payload\n\t\t\t\t\t--children;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst re = await readElement();\n\t\t\tconst docType = await readChildren(re.len);\n\n\t\t\tswitch (docType) {\n\t\t\t\tcase 'webm':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'webm',\n\t\t\t\t\t\tmime: 'video/webm',\n\t\t\t\t\t};\n\n\t\t\t\tcase 'matroska':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mkv',\n\t\t\t\t\t\tmime: 'video/x-matroska',\n\t\t\t\t\t};\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// RIFF file format which might be AVI, WAV, QCP, etc\n\t\tif (this.check([0x52, 0x49, 0x46, 0x46])) {\n\t\t\tif (this.check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'avi',\n\t\t\t\t\tmime: 'video/vnd.avi',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'wav',\n\t\t\t\t\tmime: 'audio/vnd.wave',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// QLCM, QCP file\n\t\t\tif (this.check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'qcp',\n\t\t\t\t\tmime: 'audio/qcelp',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('SQLi')) {\n\t\t\treturn {\n\t\t\t\text: 'sqlite',\n\t\t\t\tmime: 'application/x-sqlite3',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\t\treturn {\n\t\t\t\text: 'nes',\n\t\t\t\tmime: 'application/x-nintendo-nes-rom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Cr24')) {\n\t\t\treturn {\n\t\t\t\text: 'crx',\n\t\t\t\tmime: 'application/x-google-chrome-extension',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('MSCF')\n\t\t\t|| this.checkString('ISc(')\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'cab',\n\t\t\t\tmime: 'application/vnd.ms-cab-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\t\treturn {\n\t\t\t\text: 'rpm',\n\t\t\t\tmime: 'application/x-rpm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n\t\t\treturn {\n\t\t\t\text: 'zst',\n\t\t\t\tmime: 'application/zstd',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'elf',\n\t\t\t\tmime: 'application/x-elf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x21, 0x42, 0x44, 0x4E])) {\n\t\t\treturn {\n\t\t\t\text: 'pst',\n\t\t\t\tmime: 'application/vnd.ms-outlook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('PAR1')) {\n\t\t\treturn {\n\t\t\t\text: 'parquet',\n\t\t\t\tmime: 'application/x-parquet',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'otf',\n\t\t\t\tmime: 'font/otf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('#!AMR')) {\n\t\t\treturn {\n\t\t\t\text: 'amr',\n\t\t\t\tmime: 'audio/amr',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('{\\\\rtf')) {\n\t\t\treturn {\n\t\t\t\text: 'rtf',\n\t\t\t\tmime: 'application/rtf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x46, 0x4C, 0x56, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'flv',\n\t\t\t\tmime: 'video/x-flv',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('IMPM')) {\n\t\t\treturn {\n\t\t\t\text: 'it',\n\t\t\t\tmime: 'audio/x-it',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('-lh0-', {offset: 2})\n\t\t\t|| this.checkString('-lh1-', {offset: 2})\n\t\t\t|| this.checkString('-lh2-', {offset: 2})\n\t\t\t|| this.checkString('-lh3-', {offset: 2})\n\t\t\t|| this.checkString('-lh4-', {offset: 2})\n\t\t\t|| this.checkString('-lh5-', {offset: 2})\n\t\t\t|| this.checkString('-lh6-', {offset: 2})\n\t\t\t|| this.checkString('-lh7-', {offset: 2})\n\t\t\t|| this.checkString('-lzs-', {offset: 2})\n\t\t\t|| this.checkString('-lz4-', {offset: 2})\n\t\t\t|| this.checkString('-lz5-', {offset: 2})\n\t\t\t|| this.checkString('-lhd-', {offset: 2})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'lzh',\n\t\t\t\tmime: 'application/x-lzh-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// MPEG program stream (PS or MPEG-PS)\n\t\tif (this.check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t\t// MPEG-PS, MPEG-1 Part 1\n\t\t\tif (this.check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\t\tmime: 'video/MP1S',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG-PS, MPEG-2 Part 1\n\t\t\tif (this.check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\t\tmime: 'video/MP2P',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('ITSF')) {\n\t\t\treturn {\n\t\t\t\text: 'chm',\n\t\t\t\tmime: 'application/vnd.ms-htmlhelp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCA, 0xFE, 0xBA, 0xBE])) {\n\t\t\treturn {\n\t\t\t\text: 'class',\n\t\t\t\tmime: 'application/java-vm',\n\t\t\t};\n\t\t}\n\n\t\t// -- 6-byte signatures --\n\n\t\tif (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'xz',\n\t\t\t\tmime: 'application/x-xz',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('<?xml ')) {\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\t\treturn {\n\t\t\t\text: '7z',\n\t\t\t\tmime: 'application/x-7z-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7])\n\t\t\t&& (this.buffer[6] === 0x0 || this.buffer[6] === 0x1)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'rar',\n\t\t\t\tmime: 'application/x-rar-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('solid ')) {\n\t\t\treturn {\n\t\t\t\text: 'stl',\n\t\t\t\tmime: 'model/stl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('AC')) {\n\t\t\tconst version = this.buffer.toString('binary', 2, 6);\n\t\t\tif (version.match('^d*') && version >= 1000 && version <= 1050) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'dwg',\n\t\t\t\t\tmime: 'image/vnd.dwg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('070707')) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\t// -- 7-byte signatures --\n\n\t\tif (this.checkString('BLENDER')) {\n\t\t\treturn {\n\t\t\t\text: 'blend',\n\t\t\t\tmime: 'application/x-blender',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('!<arch>')) {\n\t\t\tawait tokenizer.ignore(8);\n\t\t\tconst string = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\t\tif (string === 'debian-binary') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'deb',\n\t\t\t\t\tmime: 'application/x-deb',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ar',\n\t\t\t\tmime: 'application/x-unix-archive',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('**ACE', {offset: 7})) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 14, mayBeLess: true});\n\t\t\tif (this.checkString('**', {offset: 12})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ace',\n\t\t\t\t\tmime: 'application/x-ace-compressed',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// -- 8-byte signatures --\n\n\t\tif (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t\t// Offset calculated as follows:\n\t\t\t// - 8 bytes: PNG signature\n\t\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\t\tasync function readChunkHeader() {\n\t\t\t\treturn {\n\t\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'binary')),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdo {\n\t\t\t\tconst chunk = await readChunkHeader();\n\t\t\t\tif (chunk.length < 0) {\n\t\t\t\t\treturn; // Invalid chunk length\n\t\t\t\t}\n\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase 'IDAT':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'png',\n\t\t\t\t\t\t\tmime: 'image/png',\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'acTL':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'apng',\n\t\t\t\t\t\t\tmime: 'image/apng',\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tawait tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC\n\t\t\t\t}\n\t\t\t} while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n\n\t\t\treturn {\n\t\t\t\text: 'png',\n\t\t\t\tmime: 'image/png',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'arrow',\n\t\t\t\tmime: 'application/x-apache-arrow',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'glb',\n\t\t\t\tmime: 'model/gltf-binary',\n\t\t\t};\n\t\t}\n\n\t\t// `mov` format variants\n\t\tif (\n\t\t\tthis.check([0x66, 0x72, 0x65, 0x65], {offset: 4}) // `free`\n\t\t\t|| this.check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) // `mdat` MJPEG\n\t\t\t|| this.check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) // `moov`\n\t\t\t|| this.check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mov',\n\t\t\t\tmime: 'video/quicktime',\n\t\t\t};\n\t\t}\n\n\t\t// -- 9-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'orf',\n\t\t\t\tmime: 'image/x-olympus-orf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('gimp xcf ')) {\n\t\t\treturn {\n\t\t\t\text: 'xcf',\n\t\t\t\tmime: 'image/x-xcf',\n\t\t\t};\n\t\t}\n\n\t\t// -- 12-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\t\treturn {\n\t\t\t\text: 'rw2',\n\t\t\t\tmime: 'image/x-panasonic-rw2',\n\t\t\t};\n\t\t}\n\n\t\t// ASF_Header_Object first 80 bytes\n\t\tif (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t\tasync function readHeader() {\n\t\t\t\tconst guid = Buffer.alloc(16);\n\t\t\t\tawait tokenizer.readBuffer(guid);\n\t\t\t\treturn {\n\t\t\t\t\tid: guid,\n\t\t\t\t\tsize: Number(await tokenizer.readToken(Token.UINT64_LE)),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(30);\n\t\t\t// Search for header should be in first 1KB of file.\n\t\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\t\tconst header = await readHeader();\n\t\t\t\tlet payload = header.size - 24;\n\t\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\t\tconst typeId = Buffer.alloc(16);\n\t\t\t\t\tpayload -= await tokenizer.readBuffer(typeId);\n\n\t\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found audio:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'audio/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found video:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'video/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tawait tokenizer.ignore(payload);\n\t\t\t}\n\n\t\t\t// Default to ASF generic extension\n\t\t\treturn {\n\t\t\t\text: 'asf',\n\t\t\t\tmime: 'application/vnd.ms-asf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\treturn {\n\t\t\t\text: 'ktx',\n\t\t\t\tmime: 'image/ktx',\n\t\t\t};\n\t\t}\n\n\t\tif ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\t\treturn {\n\t\t\t\text: 'mie',\n\t\t\t\tmime: 'application/x-mie',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\t\treturn {\n\t\t\t\text: 'shp',\n\t\t\t\tmime: 'application/x-esri-shape',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0x4F, 0xFF, 0x51])) {\n\t\t\treturn {\n\t\t\t\text: 'j2c',\n\t\t\t\tmime: 'image/j2c',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t\t// JPEG-2000 family\n\n\t\t\tawait tokenizer.ignore(20);\n\t\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\t\tswitch (type) {\n\t\t\t\tcase 'jp2 ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jp2',\n\t\t\t\t\t\tmime: 'image/jp2',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpx ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpx',\n\t\t\t\t\t\tmime: 'image/jpx',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpm ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpm',\n\t\t\t\t\t\tmime: 'image/jpm',\n\t\t\t\t\t};\n\t\t\t\tcase 'mjp2':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mj2',\n\t\t\t\t\t\tmime: 'image/mj2',\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFF, 0x0A])\n\t\t\t|| this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'jxl',\n\t\t\t\tmime: 'image/jxl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFE, 0xFF])) { // UTF-16-BOM-LE\n\t\t\tif (this.check([0, 60, 0, 63, 0, 120, 0, 109, 0, 108], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some unknown text based format\n\t\t}\n\n\t\t// -- Unsafe signatures --\n\n\t\tif (\n\t\t\tthis.check([0x0, 0x0, 0x1, 0xBA])\n\t\t\t|| this.check([0x0, 0x0, 0x1, 0xB3])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mpg',\n\t\t\t\tmime: 'video/mpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ttf',\n\t\t\t\tmime: 'font/ttf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x01, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ico',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x02, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'cur',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n\t\t\t// Detected Microsoft Compound File Binary File (MS-CFB) Format.\n\t\t\treturn {\n\t\t\t\text: 'cfb',\n\t\t\t\tmime: 'application/x-cfb',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 12 to 256.\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\tif (this.check([0x61, 0x63, 0x73, 0x70], {offset: 36})) {\n\t\t\treturn {\n\t\t\t\text: 'icc',\n\t\t\t\tmime: 'application/vnd.iccprofile',\n\t\t\t};\n\t\t}\n\n\t\t// -- 15-byte signatures --\n\n\t\tif (this.checkString('BEGIN:')) {\n\t\t\tif (this.checkString('VCARD', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'vcf',\n\t\t\t\t\tmime: 'text/vcard',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('VCALENDAR', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ics',\n\t\t\t\t\tmime: 'text/calendar',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// `raf` is here just to keep all the raw image detectors together.\n\t\tif (this.checkString('FUJIFILMCCD-RAW')) {\n\t\t\treturn {\n\t\t\t\text: 'raf',\n\t\t\t\tmime: 'image/x-fujifilm-raf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Extended Module:')) {\n\t\t\treturn {\n\t\t\t\text: 'xm',\n\t\t\t\tmime: 'audio/x-xm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Creative Voice File')) {\n\t\t\treturn {\n\t\t\t\text: 'voc',\n\t\t\t\tmime: 'audio/x-voc',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x00, 0x00, 0x00]) && this.buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n\t\t\tconst jsonSize = this.buffer.readUInt32LE(12);\n\t\t\tif (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n\t\t\t\ttry {\n\t\t\t\t\tconst header = this.buffer.slice(16, jsonSize + 16).toString();\n\t\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\t\tmime: 'application/x-asar',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\t\treturn {\n\t\t\t\text: 'mxf',\n\t\t\t\tmime: 'application/mxf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('SCRM', {offset: 44})) {\n\t\t\treturn {\n\t\t\t\text: 's3m',\n\t\t\t\tmime: 'audio/x-s3m',\n\t\t\t};\n\t\t}\n\n\t\t// Raw MPEG-2 transport stream (188-byte packets)\n\t\tif (this.check([0x47]) && this.check([0x47], {offset: 188})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\t// Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n\t\tif (this.check([0x47], {offset: 4}) && this.check([0x47], {offset: 196})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\t\treturn {\n\t\t\t\text: 'mobi',\n\t\t\t\tmime: 'application/x-mobipocket-ebook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\t\treturn {\n\t\t\t\text: 'dcm',\n\t\t\t\tmime: 'application/dicom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'lnk',\n\t\t\t\tmime: 'application/x.ms.shortcut', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'alias',\n\t\t\t\tmime: 'application/x.apple.alias', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x4C, 0x50], {offset: 34})\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x00, 0x01], {offset: 8})\n\t\t\t\t|| this.check([0x01, 0x00, 0x02], {offset: 8})\n\t\t\t\t|| this.check([0x02, 0x00, 0x02], {offset: 8})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'eot',\n\t\t\t\tmime: 'application/vnd.ms-fontobject',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\t\treturn {\n\t\t\t\text: 'indd',\n\t\t\t\tmime: 'application/x-indesign',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 256 to 512\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Requires a buffer size of 512 bytes\n\t\tif (tarHeaderChecksumMatches(this.buffer)) {\n\t\t\treturn {\n\t\t\t\text: 'tar',\n\t\t\t\tmime: 'application/x-tar',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xFE])) { // UTF-16-BOM-BE\n\t\t\tif (this.check([60, 0, 63, 0, 120, 0, 109, 0, 108, 0], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'skp',\n\t\t\t\t\tmime: 'application/vnd.sketchup.skp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some text based format\n\t\t}\n\n\t\tif (this.checkString('-----BEGIN PGP MESSAGE-----')) {\n\t\t\treturn {\n\t\t\t\text: 'pgp',\n\t\t\t\tmime: 'application/pgp-encrypted',\n\t\t\t};\n\t\t}\n\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (this.buffer.length >= 2 && this.check([0xFF, 0xE0], {offset: 0, mask: [0xFF, 0xE0]})) {\n\t\t\tif (this.check([0x10], {offset: 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (this.check([0x08], {offset: 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (this.check([0x02], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (this.check([0x04], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (this.check([0x06], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffTag(bigEndian) {\n\t\tconst tagId = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tthis.tokenizer.ignore(10);\n\t\tswitch (tagId) {\n\t\t\tcase 50_341:\n\t\t\t\treturn {\n\t\t\t\t\text: 'arw',\n\t\t\t\t\tmime: 'image/x-sony-arw',\n\t\t\t\t};\n\t\t\tcase 50_706:\n\t\t\t\treturn {\n\t\t\t\t\text: 'dng',\n\t\t\t\t\tmime: 'image/x-adobe-dng',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t}\n\t}\n\n\tasync readTiffIFD(bigEndian) {\n\t\tconst numberOfTags = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tfor (let n = 0; n < numberOfTags; ++n) {\n\t\t\tconst fileType = await this.readTiffTag(bigEndian);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffHeader(bigEndian) {\n\t\tconst version = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 2);\n\t\tconst ifdOffset = (bigEndian ? Token.UINT32_BE : Token.UINT32_LE).get(this.buffer, 4);\n\n\t\tif (version === 42) {\n\t\t\t// TIFF file header\n\t\t\tif (ifdOffset >= 6) {\n\t\t\t\tif (this.checkString('CR', {offset: 8})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'cr2',\n\t\t\t\t\t\tmime: 'image/x-canon-cr2',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (ifdOffset >= 8 && (this.check([0x1C, 0x00, 0xFE, 0x00], {offset: 8}) || this.check([0x1F, 0x00, 0x0B, 0x00], {offset: 8}))) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'nef',\n\t\t\t\t\t\tmime: 'image/x-nikon-nef',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.tokenizer.ignore(ifdOffset);\n\t\t\tconst fileType = await this.readTiffIFD(bigEndian);\n\t\t\treturn fileType ?? {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\n\t\tif (version === 43) {\t// Big TIFF file header\n\t\t\treturn {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport async function fileTypeStream(readableStream, {sampleSize = minimumBytes} = {}) {\n\tconst {default: stream} = await import('node:stream');\n\n\treturn new Promise((resolve, reject) => {\n\t\treadableStream.on('error', reject);\n\n\t\treadableStream.once('readable', () => {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// Set up output stream\n\t\t\t\t\tconst pass = new stream.PassThrough();\n\t\t\t\t\tconst outputStream = stream.pipeline ? stream.pipeline(readableStream, pass, () => {}) : readableStream.pipe(pass);\n\n\t\t\t\t\t// Read the input stream and detect the filetype\n\t\t\t\t\tconst chunk = readableStream.read(sampleSize) ?? readableStream.read() ?? Buffer.alloc(0);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst fileType = await fileTypeFromBuffer(chunk);\n\t\t\t\t\t\tpass.fileType = fileType;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\t\t\tpass.fileType = undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(outputStream);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t})();\n\t\t});\n\t});\n}\n\nexport const supportedExtensions = new Set(extensions);\nexport const supportedMimeTypes = new Set(mimeTypes);\n"],"names":["strtok3.fromBuffer","strtok3.EndOfStreamError","Token.StringType","Token.UINT8","Token.INT32_BE","Token.UINT64_LE","Token.UINT16_BE","Token.UINT16_LE","Token.UINT32_BE","Token.UINT32_LE"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"core.js","sources":["../../../../../node_modules/file-type/core.js"],"sourcesContent":["import {Buffer} from 'node:buffer';\nimport * as Token from 'token-types';\nimport * as strtok3 from 'strtok3/core'; // eslint-disable-line n/file-extension-in-import\nimport {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken,\n} from './util.js';\nimport {extensions, mimeTypes} from './supported.js';\n\nconst minimumBytes = 4100; // A fair amount of file-types are detectable within this range.\n\nexport async function fileTypeFromStream(stream) {\n\tconst tokenizer = await strtok3.fromStream(stream);\n\ttry {\n\t\treturn await fileTypeFromTokenizer(tokenizer);\n\t} finally {\n\t\tawait tokenizer.close();\n\t}\n}\n\nexport async function fileTypeFromBuffer(input) {\n\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {\n\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`Buffer\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t}\n\n\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\tif (!(buffer?.length > 1)) {\n\t\treturn;\n\t}\n\n\treturn fileTypeFromTokenizer(strtok3.fromBuffer(buffer));\n}\n\nexport async function fileTypeFromBlob(blob) {\n\tconst buffer = await blob.arrayBuffer();\n\treturn fileTypeFromBuffer(new Uint8Array(buffer));\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options,\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport async function fileTypeFromTokenizer(tokenizer) {\n\ttry {\n\t\treturn new FileTypeParser().parse(tokenizer);\n\t} catch (error) {\n\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nclass FileTypeParser {\n\tcheck(header, options) {\n\t\treturn _check(this.buffer, header, options);\n\t}\n\n\tcheckString(header, options) {\n\t\treturn this.check(stringToBytes(header), options);\n\t}\n\n\tasync parse(tokenizer) {\n\t\tthis.buffer = Buffer.alloc(minimumBytes);\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\tthis.tokenizer = tokenizer;\n\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: 12, mayBeLess: true});\n\n\t\t// -- 2-byte signatures --\n\n\t\tif (this.check([0x42, 0x4D])) {\n\t\t\treturn {\n\t\t\t\text: 'bmp',\n\t\t\t\tmime: 'image/bmp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x0B, 0x77])) {\n\t\t\treturn {\n\t\t\t\text: 'ac3',\n\t\t\t\tmime: 'audio/vnd.dolby.dd-raw',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x78, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'dmg',\n\t\t\t\tmime: 'application/x-apple-diskimage',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4D, 0x5A])) {\n\t\t\treturn {\n\t\t\t\text: 'exe',\n\t\t\t\tmime: 'application/x-msdownload',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x25, 0x21])) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 24, mayBeLess: true});\n\n\t\t\tif (\n\t\t\t\tthis.checkString('PS-Adobe-', {offset: 2})\n\t\t\t\t&& this.checkString(' EPSF-', {offset: 14})\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'eps',\n\t\t\t\t\tmime: 'application/eps',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ps',\n\t\t\t\tmime: 'application/postscript',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x1F, 0xA0])\n\t\t\t|| this.check([0x1F, 0x9D])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'Z',\n\t\t\t\tmime: 'application/x-compress',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC7, 0x71])) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x60, 0xEA])) {\n\t\t\treturn {\n\t\t\t\text: 'arj',\n\t\t\t\tmime: 'application/x-arj',\n\t\t\t};\n\t\t}\n\n\t\t// -- 3-byte signatures --\n\n\t\tif (this.check([0xEF, 0xBB, 0xBF])) { // UTF-8-BOM\n\t\t\t// Strip off UTF-8-BOM\n\t\t\tthis.tokenizer.ignore(3);\n\t\t\treturn this.parse(tokenizer);\n\t\t}\n\n\t\tif (this.check([0x47, 0x49, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'gif',\n\t\t\t\tmime: 'image/gif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0xBC])) {\n\t\t\treturn {\n\t\t\t\text: 'jxr',\n\t\t\t\tmime: 'image/vnd.ms-photo',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\treturn {\n\t\t\t\text: 'gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x5A, 0x68])) {\n\t\t\treturn {\n\t\t\t\text: 'bz2',\n\t\t\t\tmime: 'application/x-bzip2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ID3')) {\n\t\t\tawait tokenizer.ignore(6); // Skip ID3 header until the header size\n\t\t\tconst id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n\t\t\tif (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n\t\t\t\t// Guess file type based on ID3 header for backward compatibility\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(id3HeaderLength);\n\t\t\treturn fileTypeFromTokenizer(tokenizer); // Skip ID3 header, recursion\n\t\t}\n\n\t\t// Musepack, SV7\n\t\tif (this.checkString('MP+')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t(this.buffer[0] === 0x43 || this.buffer[0] === 0x46)\n\t\t\t&& this.check([0x57, 0x53], {offset: 1})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'swf',\n\t\t\t\tmime: 'application/x-shockwave-flash',\n\t\t\t};\n\t\t}\n\n\t\t// -- 4-byte signatures --\n\n\t\t// Requires a sample size of 4 bytes\n\t\tif (this.check([0xFF, 0xD8, 0xFF])) {\n\t\t\tif (this.check([0xF7], {offset: 3})) { // JPG7/SOF55, indicating a ISO/IEC 14495 / JPEG-LS file\n\t\t\t\treturn {\n\t\t\t\t\text: 'jls',\n\t\t\t\t\tmime: 'image/jls',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'jpg',\n\t\t\t\tmime: 'image/jpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4F, 0x62, 0x6A, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'avro',\n\t\t\t\tmime: 'application/avro',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FLIF')) {\n\t\t\treturn {\n\t\t\t\text: 'flif',\n\t\t\t\tmime: 'image/flif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('8BPS')) {\n\t\t\treturn {\n\t\t\t\text: 'psd',\n\t\t\t\tmime: 'image/vnd.adobe.photoshop',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('WEBP', {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'webp',\n\t\t\t\tmime: 'image/webp',\n\t\t\t};\n\t\t}\n\n\t\t// Musepack, SV8\n\t\tif (this.checkString('MPCK')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FORM')) {\n\t\t\treturn {\n\t\t\t\text: 'aif',\n\t\t\t\tmime: 'audio/aiff',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('icns', {offset: 0})) {\n\t\t\treturn {\n\t\t\t\text: 'icns',\n\t\t\t\tmime: 'image/icns',\n\t\t\t};\n\t\t}\n\n\t\t// Zip-based file formats\n\t\t// Need to be before the `zip` check\n\t\tif (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\t\ttry {\n\t\t\t\twhile (tokenizer.position + 30 < tokenizer.fileInfo.size) {\n\t\t\t\t\tawait tokenizer.readBuffer(this.buffer, {length: 30});\n\n\t\t\t\t\t// https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers\n\t\t\t\t\tconst zipHeader = {\n\t\t\t\t\t\tcompressedSize: this.buffer.readUInt32LE(18),\n\t\t\t\t\t\tuncompressedSize: this.buffer.readUInt32LE(22),\n\t\t\t\t\t\tfilenameLength: this.buffer.readUInt16LE(26),\n\t\t\t\t\t\textraFieldLength: this.buffer.readUInt16LE(28),\n\t\t\t\t\t};\n\n\t\t\t\t\tzipHeader.filename = await tokenizer.readToken(new Token.StringType(zipHeader.filenameLength, 'utf-8'));\n\t\t\t\t\tawait tokenizer.ignore(zipHeader.extraFieldLength);\n\n\t\t\t\t\t// Assumes signed `.xpi` from addons.mozilla.org\n\t\t\t\t\tif (zipHeader.filename === 'META-INF/mozilla.rsa') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\t\tmime: 'application/x-xpinstall',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.endsWith('.rels') || zipHeader.filename.endsWith('.xml')) {\n\t\t\t\t\t\tconst type = zipHeader.filename.split('/')[0];\n\t\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\t\tcase '_rels':\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'word':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'docx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'ppt':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'pptx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'xl':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.startsWith('xl/')) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.startsWith('3D/') && zipHeader.filename.endsWith('.model')) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: '3mf',\n\t\t\t\t\t\t\tmime: 'model/3mf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// The docx, xlsx and pptx file types extend the Office Open XML file format:\n\t\t\t\t\t// https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n\t\t\t\t\t// We look for:\n\t\t\t\t\t// - one entry named '[Content_Types].xml' or '_rels/.rels',\n\t\t\t\t\t// - one entry indicating specific type of file.\n\t\t\t\t\t// MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n\t\t\t\t\tif (zipHeader.filename === 'mimetype' && zipHeader.compressedSize === zipHeader.uncompressedSize) {\n\t\t\t\t\t\tlet mimeType = await tokenizer.readToken(new Token.StringType(zipHeader.compressedSize, 'utf-8'));\n\t\t\t\t\t\tmimeType = mimeType.trim();\n\n\t\t\t\t\t\tswitch (mimeType) {\n\t\t\t\t\t\t\tcase 'application/epub+zip':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'epub',\n\t\t\t\t\t\t\t\t\tmime: 'application/epub+zip',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'odt',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.text',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'ods',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'odp',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.presentation',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Try to find next header manually when current one is corrupted\n\t\t\t\t\tif (zipHeader.compressedSize === 0) {\n\t\t\t\t\t\tlet nextHeaderIndex = -1;\n\n\t\t\t\t\t\twhile (nextHeaderIndex < 0 && (tokenizer.position < tokenizer.fileInfo.size)) {\n\t\t\t\t\t\t\tawait tokenizer.peekBuffer(this.buffer, {mayBeLess: true});\n\n\t\t\t\t\t\t\tnextHeaderIndex = this.buffer.indexOf('504B0304', 0, 'hex');\n\t\t\t\t\t\t\t// Move position to the next header if found, skip the whole buffer otherwise\n\t\t\t\t\t\t\tawait tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : this.buffer.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait tokenizer.ignore(zipHeader.compressedSize);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('OggS')) {\n\t\t\t// This is an OGG container\n\t\t\tawait tokenizer.ignore(28);\n\t\t\tconst type = Buffer.alloc(8);\n\t\t\tawait tokenizer.readBuffer(type);\n\n\t\t\t// Needs to be before `ogg` check\n\t\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'opus',\n\t\t\t\t\tmime: 'audio/opus',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' theora' in header.\n\t\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogv',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01video' in header.\n\t\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogm',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'oga',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'spx',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01vorbis' in header\n\t\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogg',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\t\treturn {\n\t\t\t\text: 'ogx',\n\t\t\t\tmime: 'application/ogg',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x50, 0x4B])\n\t\t\t&& (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n\t\t\t&& (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\t//\n\n\t\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\t\tif (\n\t\t\tthis.checkString('ftyp', {offset: 4})\n\t\t\t&& (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t\t) {\n\t\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\t\tconst brandMajor = this.buffer.toString('binary', 8, 12).replace('\\0', ' ').trim();\n\t\t\tswitch (brandMajor) {\n\t\t\t\tcase 'avif':\n\t\t\t\tcase 'avis':\n\t\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\t\tcase 'mif1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\t\tcase 'msf1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\t\tcase 'heic':\n\t\t\t\tcase 'heix':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\t\tcase 'hevc':\n\t\t\t\tcase 'hevx':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\t\tcase 'qt':\n\t\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\t\tcase 'M4V':\n\t\t\t\tcase 'M4VH':\n\t\t\t\tcase 'M4VP':\n\t\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\t\tcase 'M4P':\n\t\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\t\tcase 'M4B':\n\t\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'M4A':\n\t\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\t\tcase 'F4V':\n\t\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\t\tcase 'F4P':\n\t\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\t\tcase 'F4A':\n\t\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\t\tcase 'F4B':\n\t\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'crx':\n\t\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\t\tdefault:\n\t\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MThd')) {\n\t\t\treturn {\n\t\t\t\text: 'mid',\n\t\t\t\tmime: 'audio/midi',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOFF')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff',\n\t\t\t\tmime: 'font/woff',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOF2')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff2',\n\t\t\t\tmime: 'font/woff2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\t\treturn {\n\t\t\t\text: 'pcap',\n\t\t\t\tmime: 'application/vnd.tcpdump.pcap',\n\t\t\t};\n\t\t}\n\n\t\t// Sony DSD Stream File (DSF)\n\t\tif (this.checkString('DSD ')) {\n\t\t\treturn {\n\t\t\t\text: 'dsf',\n\t\t\t\tmime: 'audio/x-dsf', // Non-standard\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('LZIP')) {\n\t\t\treturn {\n\t\t\t\text: 'lz',\n\t\t\t\tmime: 'application/x-lzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('fLaC')) {\n\t\t\treturn {\n\t\t\t\text: 'flac',\n\t\t\t\tmime: 'audio/x-flac',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x50, 0x47, 0xFB])) {\n\t\t\treturn {\n\t\t\t\text: 'bpg',\n\t\t\t\tmime: 'image/bpg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('wvpk')) {\n\t\t\treturn {\n\t\t\t\text: 'wv',\n\t\t\t\tmime: 'audio/wavpack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('%PDF')) {\n\t\t\ttry {\n\t\t\t\tawait tokenizer.ignore(1350);\n\t\t\t\tconst maxBufferSize = 10 * 1024 * 1024;\n\t\t\t\tconst buffer = Buffer.alloc(Math.min(maxBufferSize, tokenizer.fileInfo.size));\n\t\t\t\tawait tokenizer.readBuffer(buffer, {mayBeLess: true});\n\n\t\t\t\t// Check if this is an Adobe Illustrator file\n\t\t\t\tif (buffer.includes(Buffer.from('AIPrivateData'))) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'ai',\n\t\t\t\t\t\tmime: 'application/postscript',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t// Swallow end of stream error if file is too small for the Adobe AI check\n\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Assume this is just a normal PDF\n\t\t\treturn {\n\t\t\t\text: 'pdf',\n\t\t\t\tmime: 'application/pdf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x61, 0x73, 0x6D])) {\n\t\t\treturn {\n\t\t\t\text: 'wasm',\n\t\t\t\tmime: 'application/wasm',\n\t\t\t};\n\t\t}\n\n\t\t// TIFF, little-endian type\n\t\tif (this.check([0x49, 0x49])) {\n\t\t\tconst fileType = await this.readTiffHeader(false);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\t// TIFF, big-endian type\n\t\tif (this.check([0x4D, 0x4D])) {\n\t\t\tconst fileType = await this.readTiffHeader(true);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MAC ')) {\n\t\t\treturn {\n\t\t\t\text: 'ape',\n\t\t\t\tmime: 'audio/ape',\n\t\t\t};\n\t\t}\n\n\t\t// https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\t\tif (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\t\tasync function readField() {\n\t\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\t\tlet mask = 0x80;\n\t\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3\n\t\t\t\t// = D\n\n\t\t\t\twhile ((msb & mask) === 0 && mask !== 0) {\n\t\t\t\t\t++ic;\n\t\t\t\t\tmask >>= 1;\n\t\t\t\t}\n\n\t\t\t\tconst id = Buffer.alloc(ic + 1);\n\t\t\t\tawait tokenizer.readBuffer(id);\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tasync function readElement() {\n\t\t\t\tconst id = await readField();\n\t\t\t\tconst lengthField = await readField();\n\t\t\t\tlengthField[0] ^= 0x80 >> (lengthField.length - 1);\n\t\t\t\tconst nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n\t\t\t\treturn {\n\t\t\t\t\tid: id.readUIntBE(0, id.length),\n\t\t\t\t\tlen: lengthField.readUIntBE(lengthField.length - nrLength, nrLength),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function readChildren(children) {\n\t\t\t\twhile (children > 0) {\n\t\t\t\t\tconst element = await readElement();\n\t\t\t\t\tif (element.id === 0x42_82) {\n\t\t\t\t\t\tconst rawValue = await tokenizer.readToken(new Token.StringType(element.len, 'utf-8'));\n\t\t\t\t\t\treturn rawValue.replace(/\\00.*$/g, ''); // Return DocType\n\t\t\t\t\t}\n\n\t\t\t\t\tawait tokenizer.ignore(element.len); // ignore payload\n\t\t\t\t\t--children;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst re = await readElement();\n\t\t\tconst docType = await readChildren(re.len);\n\n\t\t\tswitch (docType) {\n\t\t\t\tcase 'webm':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'webm',\n\t\t\t\t\t\tmime: 'video/webm',\n\t\t\t\t\t};\n\n\t\t\t\tcase 'matroska':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mkv',\n\t\t\t\t\t\tmime: 'video/x-matroska',\n\t\t\t\t\t};\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// RIFF file format which might be AVI, WAV, QCP, etc\n\t\tif (this.check([0x52, 0x49, 0x46, 0x46])) {\n\t\t\tif (this.check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'avi',\n\t\t\t\t\tmime: 'video/vnd.avi',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'wav',\n\t\t\t\t\tmime: 'audio/vnd.wave',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// QLCM, QCP file\n\t\t\tif (this.check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'qcp',\n\t\t\t\t\tmime: 'audio/qcelp',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('SQLi')) {\n\t\t\treturn {\n\t\t\t\text: 'sqlite',\n\t\t\t\tmime: 'application/x-sqlite3',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\t\treturn {\n\t\t\t\text: 'nes',\n\t\t\t\tmime: 'application/x-nintendo-nes-rom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Cr24')) {\n\t\t\treturn {\n\t\t\t\text: 'crx',\n\t\t\t\tmime: 'application/x-google-chrome-extension',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('MSCF')\n\t\t\t|| this.checkString('ISc(')\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'cab',\n\t\t\t\tmime: 'application/vnd.ms-cab-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\t\treturn {\n\t\t\t\text: 'rpm',\n\t\t\t\tmime: 'application/x-rpm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n\t\t\treturn {\n\t\t\t\text: 'zst',\n\t\t\t\tmime: 'application/zstd',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'elf',\n\t\t\t\tmime: 'application/x-elf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x21, 0x42, 0x44, 0x4E])) {\n\t\t\treturn {\n\t\t\t\text: 'pst',\n\t\t\t\tmime: 'application/vnd.ms-outlook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('PAR1')) {\n\t\t\treturn {\n\t\t\t\text: 'parquet',\n\t\t\t\tmime: 'application/x-parquet',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'otf',\n\t\t\t\tmime: 'font/otf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('#!AMR')) {\n\t\t\treturn {\n\t\t\t\text: 'amr',\n\t\t\t\tmime: 'audio/amr',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('{\\\\rtf')) {\n\t\t\treturn {\n\t\t\t\text: 'rtf',\n\t\t\t\tmime: 'application/rtf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x46, 0x4C, 0x56, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'flv',\n\t\t\t\tmime: 'video/x-flv',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('IMPM')) {\n\t\t\treturn {\n\t\t\t\text: 'it',\n\t\t\t\tmime: 'audio/x-it',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('-lh0-', {offset: 2})\n\t\t\t|| this.checkString('-lh1-', {offset: 2})\n\t\t\t|| this.checkString('-lh2-', {offset: 2})\n\t\t\t|| this.checkString('-lh3-', {offset: 2})\n\t\t\t|| this.checkString('-lh4-', {offset: 2})\n\t\t\t|| this.checkString('-lh5-', {offset: 2})\n\t\t\t|| this.checkString('-lh6-', {offset: 2})\n\t\t\t|| this.checkString('-lh7-', {offset: 2})\n\t\t\t|| this.checkString('-lzs-', {offset: 2})\n\t\t\t|| this.checkString('-lz4-', {offset: 2})\n\t\t\t|| this.checkString('-lz5-', {offset: 2})\n\t\t\t|| this.checkString('-lhd-', {offset: 2})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'lzh',\n\t\t\t\tmime: 'application/x-lzh-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// MPEG program stream (PS or MPEG-PS)\n\t\tif (this.check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t\t// MPEG-PS, MPEG-1 Part 1\n\t\t\tif (this.check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\t\tmime: 'video/MP1S',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG-PS, MPEG-2 Part 1\n\t\t\tif (this.check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\t\tmime: 'video/MP2P',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('ITSF')) {\n\t\t\treturn {\n\t\t\t\text: 'chm',\n\t\t\t\tmime: 'application/vnd.ms-htmlhelp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCA, 0xFE, 0xBA, 0xBE])) {\n\t\t\treturn {\n\t\t\t\text: 'class',\n\t\t\t\tmime: 'application/java-vm',\n\t\t\t};\n\t\t}\n\n\t\t// -- 6-byte signatures --\n\n\t\tif (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'xz',\n\t\t\t\tmime: 'application/x-xz',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('<?xml ')) {\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\t\treturn {\n\t\t\t\text: '7z',\n\t\t\t\tmime: 'application/x-7z-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7])\n\t\t\t&& (this.buffer[6] === 0x0 || this.buffer[6] === 0x1)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'rar',\n\t\t\t\tmime: 'application/x-rar-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('solid ')) {\n\t\t\treturn {\n\t\t\t\text: 'stl',\n\t\t\t\tmime: 'model/stl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('AC')) {\n\t\t\tconst version = this.buffer.toString('binary', 2, 6);\n\t\t\tif (version.match('^d*') && version >= 1000 && version <= 1050) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'dwg',\n\t\t\t\t\tmime: 'image/vnd.dwg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('070707')) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\t// -- 7-byte signatures --\n\n\t\tif (this.checkString('BLENDER')) {\n\t\t\treturn {\n\t\t\t\text: 'blend',\n\t\t\t\tmime: 'application/x-blender',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('!<arch>')) {\n\t\t\tawait tokenizer.ignore(8);\n\t\t\tconst string = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\t\tif (string === 'debian-binary') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'deb',\n\t\t\t\t\tmime: 'application/x-deb',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ar',\n\t\t\t\tmime: 'application/x-unix-archive',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('**ACE', {offset: 7})) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 14, mayBeLess: true});\n\t\t\tif (this.checkString('**', {offset: 12})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ace',\n\t\t\t\t\tmime: 'application/x-ace-compressed',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// -- 8-byte signatures --\n\n\t\tif (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t\t// Offset calculated as follows:\n\t\t\t// - 8 bytes: PNG signature\n\t\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\t\tasync function readChunkHeader() {\n\t\t\t\treturn {\n\t\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'binary')),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdo {\n\t\t\t\tconst chunk = await readChunkHeader();\n\t\t\t\tif (chunk.length < 0) {\n\t\t\t\t\treturn; // Invalid chunk length\n\t\t\t\t}\n\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase 'IDAT':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'png',\n\t\t\t\t\t\t\tmime: 'image/png',\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'acTL':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'apng',\n\t\t\t\t\t\t\tmime: 'image/apng',\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tawait tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC\n\t\t\t\t}\n\t\t\t} while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n\n\t\t\treturn {\n\t\t\t\text: 'png',\n\t\t\t\tmime: 'image/png',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'arrow',\n\t\t\t\tmime: 'application/x-apache-arrow',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'glb',\n\t\t\t\tmime: 'model/gltf-binary',\n\t\t\t};\n\t\t}\n\n\t\t// `mov` format variants\n\t\tif (\n\t\t\tthis.check([0x66, 0x72, 0x65, 0x65], {offset: 4}) // `free`\n\t\t\t|| this.check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) // `mdat` MJPEG\n\t\t\t|| this.check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) // `moov`\n\t\t\t|| this.check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mov',\n\t\t\t\tmime: 'video/quicktime',\n\t\t\t};\n\t\t}\n\n\t\t// -- 9-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'orf',\n\t\t\t\tmime: 'image/x-olympus-orf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('gimp xcf ')) {\n\t\t\treturn {\n\t\t\t\text: 'xcf',\n\t\t\t\tmime: 'image/x-xcf',\n\t\t\t};\n\t\t}\n\n\t\t// -- 12-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\t\treturn {\n\t\t\t\text: 'rw2',\n\t\t\t\tmime: 'image/x-panasonic-rw2',\n\t\t\t};\n\t\t}\n\n\t\t// ASF_Header_Object first 80 bytes\n\t\tif (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t\tasync function readHeader() {\n\t\t\t\tconst guid = Buffer.alloc(16);\n\t\t\t\tawait tokenizer.readBuffer(guid);\n\t\t\t\treturn {\n\t\t\t\t\tid: guid,\n\t\t\t\t\tsize: Number(await tokenizer.readToken(Token.UINT64_LE)),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(30);\n\t\t\t// Search for header should be in first 1KB of file.\n\t\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\t\tconst header = await readHeader();\n\t\t\t\tlet payload = header.size - 24;\n\t\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\t\tconst typeId = Buffer.alloc(16);\n\t\t\t\t\tpayload -= await tokenizer.readBuffer(typeId);\n\n\t\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found audio:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'audio/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found video:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'video/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tawait tokenizer.ignore(payload);\n\t\t\t}\n\n\t\t\t// Default to ASF generic extension\n\t\t\treturn {\n\t\t\t\text: 'asf',\n\t\t\t\tmime: 'application/vnd.ms-asf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\treturn {\n\t\t\t\text: 'ktx',\n\t\t\t\tmime: 'image/ktx',\n\t\t\t};\n\t\t}\n\n\t\tif ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\t\treturn {\n\t\t\t\text: 'mie',\n\t\t\t\tmime: 'application/x-mie',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\t\treturn {\n\t\t\t\text: 'shp',\n\t\t\t\tmime: 'application/x-esri-shape',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0x4F, 0xFF, 0x51])) {\n\t\t\treturn {\n\t\t\t\text: 'j2c',\n\t\t\t\tmime: 'image/j2c',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t\t// JPEG-2000 family\n\n\t\t\tawait tokenizer.ignore(20);\n\t\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\t\tswitch (type) {\n\t\t\t\tcase 'jp2 ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jp2',\n\t\t\t\t\t\tmime: 'image/jp2',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpx ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpx',\n\t\t\t\t\t\tmime: 'image/jpx',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpm ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpm',\n\t\t\t\t\t\tmime: 'image/jpm',\n\t\t\t\t\t};\n\t\t\t\tcase 'mjp2':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mj2',\n\t\t\t\t\t\tmime: 'image/mj2',\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFF, 0x0A])\n\t\t\t|| this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'jxl',\n\t\t\t\tmime: 'image/jxl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFE, 0xFF])) { // UTF-16-BOM-LE\n\t\t\tif (this.check([0, 60, 0, 63, 0, 120, 0, 109, 0, 108], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some unknown text based format\n\t\t}\n\n\t\t// -- Unsafe signatures --\n\n\t\tif (\n\t\t\tthis.check([0x0, 0x0, 0x1, 0xBA])\n\t\t\t|| this.check([0x0, 0x0, 0x1, 0xB3])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mpg',\n\t\t\t\tmime: 'video/mpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ttf',\n\t\t\t\tmime: 'font/ttf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x01, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ico',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x02, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'cur',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n\t\t\t// Detected Microsoft Compound File Binary File (MS-CFB) Format.\n\t\t\treturn {\n\t\t\t\text: 'cfb',\n\t\t\t\tmime: 'application/x-cfb',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 12 to 256.\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\tif (this.check([0x61, 0x63, 0x73, 0x70], {offset: 36})) {\n\t\t\treturn {\n\t\t\t\text: 'icc',\n\t\t\t\tmime: 'application/vnd.iccprofile',\n\t\t\t};\n\t\t}\n\n\t\t// -- 15-byte signatures --\n\n\t\tif (this.checkString('BEGIN:')) {\n\t\t\tif (this.checkString('VCARD', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'vcf',\n\t\t\t\t\tmime: 'text/vcard',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('VCALENDAR', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ics',\n\t\t\t\t\tmime: 'text/calendar',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// `raf` is here just to keep all the raw image detectors together.\n\t\tif (this.checkString('FUJIFILMCCD-RAW')) {\n\t\t\treturn {\n\t\t\t\text: 'raf',\n\t\t\t\tmime: 'image/x-fujifilm-raf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Extended Module:')) {\n\t\t\treturn {\n\t\t\t\text: 'xm',\n\t\t\t\tmime: 'audio/x-xm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Creative Voice File')) {\n\t\t\treturn {\n\t\t\t\text: 'voc',\n\t\t\t\tmime: 'audio/x-voc',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x00, 0x00, 0x00]) && this.buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n\t\t\tconst jsonSize = this.buffer.readUInt32LE(12);\n\t\t\tif (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n\t\t\t\ttry {\n\t\t\t\t\tconst header = this.buffer.slice(16, jsonSize + 16).toString();\n\t\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\t\tmime: 'application/x-asar',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\t\treturn {\n\t\t\t\text: 'mxf',\n\t\t\t\tmime: 'application/mxf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('SCRM', {offset: 44})) {\n\t\t\treturn {\n\t\t\t\text: 's3m',\n\t\t\t\tmime: 'audio/x-s3m',\n\t\t\t};\n\t\t}\n\n\t\t// Raw MPEG-2 transport stream (188-byte packets)\n\t\tif (this.check([0x47]) && this.check([0x47], {offset: 188})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\t// Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n\t\tif (this.check([0x47], {offset: 4}) && this.check([0x47], {offset: 196})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\t\treturn {\n\t\t\t\text: 'mobi',\n\t\t\t\tmime: 'application/x-mobipocket-ebook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\t\treturn {\n\t\t\t\text: 'dcm',\n\t\t\t\tmime: 'application/dicom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'lnk',\n\t\t\t\tmime: 'application/x.ms.shortcut', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'alias',\n\t\t\t\tmime: 'application/x.apple.alias', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x4C, 0x50], {offset: 34})\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x00, 0x01], {offset: 8})\n\t\t\t\t|| this.check([0x01, 0x00, 0x02], {offset: 8})\n\t\t\t\t|| this.check([0x02, 0x00, 0x02], {offset: 8})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'eot',\n\t\t\t\tmime: 'application/vnd.ms-fontobject',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\t\treturn {\n\t\t\t\text: 'indd',\n\t\t\t\tmime: 'application/x-indesign',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 256 to 512\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Requires a buffer size of 512 bytes\n\t\tif (tarHeaderChecksumMatches(this.buffer)) {\n\t\t\treturn {\n\t\t\t\text: 'tar',\n\t\t\t\tmime: 'application/x-tar',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xFE])) { // UTF-16-BOM-BE\n\t\t\tif (this.check([60, 0, 63, 0, 120, 0, 109, 0, 108, 0], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00], {offset: 2})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'skp',\n\t\t\t\t\tmime: 'application/vnd.sketchup.skp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some text based format\n\t\t}\n\n\t\tif (this.checkString('-----BEGIN PGP MESSAGE-----')) {\n\t\t\treturn {\n\t\t\t\text: 'pgp',\n\t\t\t\tmime: 'application/pgp-encrypted',\n\t\t\t};\n\t\t}\n\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (this.buffer.length >= 2 && this.check([0xFF, 0xE0], {offset: 0, mask: [0xFF, 0xE0]})) {\n\t\t\tif (this.check([0x10], {offset: 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (this.check([0x08], {offset: 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (this.check([0x02], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (this.check([0x04], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (this.check([0x06], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffTag(bigEndian) {\n\t\tconst tagId = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tthis.tokenizer.ignore(10);\n\t\tswitch (tagId) {\n\t\t\tcase 50_341:\n\t\t\t\treturn {\n\t\t\t\t\text: 'arw',\n\t\t\t\t\tmime: 'image/x-sony-arw',\n\t\t\t\t};\n\t\t\tcase 50_706:\n\t\t\t\treturn {\n\t\t\t\t\text: 'dng',\n\t\t\t\t\tmime: 'image/x-adobe-dng',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t}\n\t}\n\n\tasync readTiffIFD(bigEndian) {\n\t\tconst numberOfTags = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tfor (let n = 0; n < numberOfTags; ++n) {\n\t\t\tconst fileType = await this.readTiffTag(bigEndian);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffHeader(bigEndian) {\n\t\tconst version = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 2);\n\t\tconst ifdOffset = (bigEndian ? Token.UINT32_BE : Token.UINT32_LE).get(this.buffer, 4);\n\n\t\tif (version === 42) {\n\t\t\t// TIFF file header\n\t\t\tif (ifdOffset >= 6) {\n\t\t\t\tif (this.checkString('CR', {offset: 8})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'cr2',\n\t\t\t\t\t\tmime: 'image/x-canon-cr2',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (ifdOffset >= 8 && (this.check([0x1C, 0x00, 0xFE, 0x00], {offset: 8}) || this.check([0x1F, 0x00, 0x0B, 0x00], {offset: 8}))) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'nef',\n\t\t\t\t\t\tmime: 'image/x-nikon-nef',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.tokenizer.ignore(ifdOffset);\n\t\t\tconst fileType = await this.readTiffIFD(bigEndian);\n\t\t\treturn fileType ?? {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\n\t\tif (version === 43) {\t// Big TIFF file header\n\t\t\treturn {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport async function fileTypeStream(readableStream, {sampleSize = minimumBytes} = {}) {\n\tconst {default: stream} = await import('node:stream');\n\n\treturn new Promise((resolve, reject) => {\n\t\treadableStream.on('error', reject);\n\n\t\treadableStream.once('readable', () => {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// Set up output stream\n\t\t\t\t\tconst pass = new stream.PassThrough();\n\t\t\t\t\tconst outputStream = stream.pipeline ? stream.pipeline(readableStream, pass, () => {}) : readableStream.pipe(pass);\n\n\t\t\t\t\t// Read the input stream and detect the filetype\n\t\t\t\t\tconst chunk = readableStream.read(sampleSize) ?? readableStream.read() ?? Buffer.alloc(0);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst fileType = await fileTypeFromBuffer(chunk);\n\t\t\t\t\t\tpass.fileType = fileType;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\t\t\tpass.fileType = undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(outputStream);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t})();\n\t\t});\n\t});\n}\n\nexport const supportedExtensions = new Set(extensions);\nexport const supportedMimeTypes = new Set(mimeTypes);\n"],"names":["strtok3.fromBuffer","strtok3.EndOfStreamError","Token.StringType","Token.UINT8","Token.INT32_BE","Token.UINT64_LE","Token.UINT16_BE","Token.UINT16_LE","Token.UINT32_BE","Token.UINT32_LE"],"mappings":";;;;;;AAUA,MAAM,eAAe;AAWd,eAAe,mBAAmB,OAAO;AAC/C,MAAI,EAAE,iBAAiB,cAAc,iBAAiB,cAAc;AACnE,UAAM,IAAI,UAAU,wGAAwG,OAAO,KAAK,IAAI;AAAA,EAC5I;AAED,QAAM,SAAS,iBAAiB,aAAa,QAAQ,IAAI,WAAW,KAAK;AAEzE,MAAI,GAAE,iCAAQ,UAAS,IAAI;AAC1B;AAAA,EACA;AAED,SAAO,sBAAsBA,WAAmB,MAAM,CAAC;AACxD;AAOA,SAAS,OAAO,QAAQ,SAAS,SAAS;AACzC,YAAU;AAAA,IACT,QAAQ;AAAA,IACR,GAAG;AAAA,EACL;AAEC,aAAW,CAAC,OAAO,MAAM,KAAK,QAAQ,QAAO,GAAI;AAEhD,QAAI,QAAQ,MAAM;AAEjB,UAAI,YAAY,QAAQ,KAAK,KAAK,IAAI,OAAO,QAAQ,QAAQ,MAAM,IAAI;AACtE,eAAO;AAAA,MACP;AAAA,IACJ,WAAa,WAAW,OAAO,QAAQ,QAAQ,MAAM,GAAG;AACrD,aAAO;AAAA,IACP;AAAA,EACD;AAED,SAAO;AACR;AAEO,eAAe,sBAAsB,WAAW;AACtD,MAAI;AACH,WAAO,IAAI,eAAc,EAAG,MAAM,SAAS;AAAA,EAC3C,SAAQ,OAAO;AACf,QAAI,EAAE,iBAAiBC,mBAA2B;AACjD,YAAM;AAAA,IACN;AAAA,EACD;AACF;AAEA,MAAM,eAAe;AAAA,EACpB,MAAM,QAAQ,SAAS;AACtB,WAAO,OAAO,KAAK,QAAQ,QAAQ,OAAO;AAAA,EAC1C;AAAA,EAED,YAAY,QAAQ,SAAS;AAC5B,WAAO,KAAK,MAAM,cAAc,MAAM,GAAG,OAAO;AAAA,EAChD;AAAA,EAED,MAAM,MAAM,WAAW;AACtB,SAAK,SAAS,OAAO,MAAM,YAAY;AAGvC,QAAI,UAAU,SAAS,SAAS,QAAW;AAC1C,gBAAU,SAAS,OAAO,OAAO;AAAA,IACjC;AAED,SAAK,YAAY;AAEjB,UAAM,UAAU,WAAW,KAAK,QAAQ,EAAC,QAAQ,IAAI,WAAW,KAAI,CAAC;AAIrE,QAAI,KAAK,MAAM,CAAC,IAAM,EAAI,CAAC,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,GAAI,CAAC,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,CAAI,CAAC,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,EAAI,CAAC,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,EAAI,CAAC,GAAG;AAC7B,YAAM,UAAU,WAAW,KAAK,QAAQ,EAAC,QAAQ,IAAI,WAAW,KAAI,CAAC;AAErE,UACC,KAAK,YAAY,aAAa,EAAC,QAAQ,EAAC,CAAC,KACtC,KAAK,YAAY,UAAU,EAAC,QAAQ,GAAE,CAAC,GACzC;AACD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,MAAM,CAAC,IAAM,GAAI,CAAC,KACpB,KAAK,MAAM,CAAC,IAAM,GAAI,CAAC,GACzB;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,GAAI,CAAC,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,GAAI,CAAC,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,GAAI,CAAC,GAAG;AAEnC,WAAK,UAAU,OAAO,CAAC;AACvB,aAAO,KAAK,MAAM,SAAS;AAAA,IAC3B;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,EAAI,CAAC,GAAG;AACnC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAI,CAAC,GAAG;AACnC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,KAAM,CAAG,CAAC,GAAG;AAClC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAI,CAAC,GAAG;AACnC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,KAAK,GAAG;AAC5B,YAAM,UAAU,OAAO,CAAC;AACxB,YAAM,kBAAkB,MAAM,UAAU,UAAU,mBAAmB;AACrE,UAAI,UAAU,WAAW,kBAAkB,UAAU,SAAS,MAAM;AAEnE,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,YAAM,UAAU,OAAO,eAAe;AACtC,aAAO,sBAAsB,SAAS;AAAA,IACtC;AAGD,QAAI,KAAK,YAAY,KAAK,GAAG;AAC5B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,SACE,KAAK,OAAO,CAAC,MAAM,MAAQ,KAAK,OAAO,CAAC,MAAM,OAC5C,KAAK,MAAM,CAAC,IAAM,EAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GACtC;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAKD,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,GAAI,CAAC,GAAG;AACnC,UAAI,KAAK,MAAM,CAAC,GAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AACpC,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,KAAM,CAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,QAAQ,EAAC,QAAQ,EAAC,CAAC,GAAG;AAC1C,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,QAAQ,EAAC,QAAQ,EAAC,CAAC,GAAG;AAC1C,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAK,CAAG,CAAC,GAAG;AACvC,UAAI;AACH,eAAO,UAAU,WAAW,KAAK,UAAU,SAAS,MAAM;AACzD,gBAAM,UAAU,WAAW,KAAK,QAAQ,EAAC,QAAQ,GAAE,CAAC;AAGpD,gBAAM,YAAY;AAAA,YACjB,gBAAgB,KAAK,OAAO,aAAa,EAAE;AAAA,YAC3C,kBAAkB,KAAK,OAAO,aAAa,EAAE;AAAA,YAC7C,gBAAgB,KAAK,OAAO,aAAa,EAAE;AAAA,YAC3C,kBAAkB,KAAK,OAAO,aAAa,EAAE;AAAA,UACnD;AAEK,oBAAU,WAAW,MAAM,UAAU,UAAU,IAAIC,WAAiB,UAAU,gBAAgB,OAAO,CAAC;AACtG,gBAAM,UAAU,OAAO,UAAU,gBAAgB;AAGjD,cAAI,UAAU,aAAa,wBAAwB;AAClD,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACM;AAED,cAAI,UAAU,SAAS,SAAS,OAAO,KAAK,UAAU,SAAS,SAAS,MAAM,GAAG;AAChF,kBAAM,OAAO,UAAU,SAAS,MAAM,GAAG,EAAE,CAAC;AAC5C,oBAAQ,MAAI;AAAA,cACX,KAAK;AACJ;AAAA,cACD,KAAK;AACJ,uBAAO;AAAA,kBACN,KAAK;AAAA,kBACL,MAAM;AAAA,gBACf;AAAA,cACO,KAAK;AACJ,uBAAO;AAAA,kBACN,KAAK;AAAA,kBACL,MAAM;AAAA,gBACf;AAAA,cACO,KAAK;AACJ,uBAAO;AAAA,kBACN,KAAK;AAAA,kBACL,MAAM;AAAA,gBACf;AAAA,cACO;AACC;AAAA,YACD;AAAA,UACD;AAED,cAAI,UAAU,SAAS,WAAW,KAAK,GAAG;AACzC,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACM;AAED,cAAI,UAAU,SAAS,WAAW,KAAK,KAAK,UAAU,SAAS,SAAS,QAAQ,GAAG;AAClF,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACM;AAQD,cAAI,UAAU,aAAa,cAAc,UAAU,mBAAmB,UAAU,kBAAkB;AACjG,gBAAI,WAAW,MAAM,UAAU,UAAU,IAAIA,WAAiB,UAAU,gBAAgB,OAAO,CAAC;AAChG,uBAAW,SAAS;AAEpB,oBAAQ,UAAQ;AAAA,cACf,KAAK;AACJ,uBAAO;AAAA,kBACN,KAAK;AAAA,kBACL,MAAM;AAAA,gBACf;AAAA,cACO,KAAK;AACJ,uBAAO;AAAA,kBACN,KAAK;AAAA,kBACL,MAAM;AAAA,gBACf;AAAA,cACO,KAAK;AACJ,uBAAO;AAAA,kBACN,KAAK;AAAA,kBACL,MAAM;AAAA,gBACf;AAAA,cACO,KAAK;AACJ,uBAAO;AAAA,kBACN,KAAK;AAAA,kBACL,MAAM;AAAA,gBACf;AAAA,cACO;AAAA,YACA;AAAA,UACD;AAGD,cAAI,UAAU,mBAAmB,GAAG;AACnC,gBAAI,kBAAkB;AAEtB,mBAAO,kBAAkB,KAAM,UAAU,WAAW,UAAU,SAAS,MAAO;AAC7E,oBAAM,UAAU,WAAW,KAAK,QAAQ,EAAC,WAAW,KAAI,CAAC;AAEzD,gCAAkB,KAAK,OAAO,QAAQ,YAAY,GAAG,KAAK;AAE1D,oBAAM,UAAU,OAAO,mBAAmB,IAAI,kBAAkB,KAAK,OAAO,MAAM;AAAA,YAClF;AAAA,UACP,OAAY;AACN,kBAAM,UAAU,OAAO,UAAU,cAAc;AAAA,UAC/C;AAAA,QACD;AAAA,MACD,SAAQ,OAAO;AACf,YAAI,EAAE,iBAAiBD,mBAA2B;AACjD,gBAAM;AAAA,QACN;AAAA,MACD;AAED,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAE7B,YAAM,UAAU,OAAO,EAAE;AACzB,YAAM,OAAO,OAAO,MAAM,CAAC;AAC3B,YAAM,UAAU,WAAW,IAAI;AAG/B,UAAI,OAAO,MAAM,CAAC,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,GAAI,CAAC,GAAG;AACnE,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,OAAO,MAAM,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAI,CAAC,GAAG;AAC7D,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,OAAO,MAAM,CAAC,GAAM,KAAM,KAAM,KAAM,KAAM,KAAM,CAAI,CAAC,GAAG;AAC7D,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,OAAO,MAAM,CAAC,KAAM,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AACjD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,OAAO,MAAM,CAAC,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,EAAI,CAAC,GAAG;AAC7D,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,OAAO,MAAM,CAAC,GAAM,KAAM,KAAM,KAAM,IAAM,KAAM,GAAI,CAAC,GAAG;AAC7D,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,MAAM,CAAC,IAAM,EAAI,CAAC,MACnB,KAAK,OAAO,CAAC,MAAM,KAAO,KAAK,OAAO,CAAC,MAAM,KAAO,KAAK,OAAO,CAAC,MAAM,OACvE,KAAK,OAAO,CAAC,MAAM,KAAO,KAAK,OAAO,CAAC,MAAM,KAAO,KAAK,OAAO,CAAC,MAAM,IAC1E;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAQD,QACC,KAAK,YAAY,QAAQ,EAAC,QAAQ,EAAC,CAAC,MAChC,KAAK,OAAO,CAAC,IAAI,QAAU,GAC9B;AAGD,YAAM,aAAa,KAAK,OAAO,SAAS,UAAU,GAAG,EAAE,EAAE,QAAQ,MAAM,GAAG,EAAE,KAAI;AAChF,cAAQ,YAAU;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AACJ,iBAAO,EAAC,KAAK,QAAQ,MAAM,aAAY;AAAA,QACxC,KAAK;AACJ,iBAAO,EAAC,KAAK,QAAQ,MAAM,aAAY;AAAA,QACxC,KAAK;AACJ,iBAAO,EAAC,KAAK,QAAQ,MAAM,sBAAqB;AAAA,QACjD,KAAK;AAAA,QACL,KAAK;AACJ,iBAAO,EAAC,KAAK,QAAQ,MAAM,aAAY;AAAA,QACxC,KAAK;AAAA,QACL,KAAK;AACJ,iBAAO,EAAC,KAAK,QAAQ,MAAM,sBAAqB;AAAA,QACjD,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,kBAAiB;AAAA,QAC5C,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,cAAa;AAAA,QACxC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,YAAW;AAAA,QACtC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,YAAW;AAAA,QACtC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,cAAa;AAAA,QACxC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,YAAW;AAAA,QACtC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,YAAW;AAAA,QACtC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,YAAW;AAAA,QACtC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,YAAW;AAAA,QACtC,KAAK;AACJ,iBAAO,EAAC,KAAK,OAAO,MAAM,oBAAmB;AAAA,QAC9C;AACC,cAAI,WAAW,WAAW,IAAI,GAAG;AAChC,gBAAI,WAAW,WAAW,KAAK,GAAG;AACjC,qBAAO,EAAC,KAAK,OAAO,MAAM,cAAa;AAAA,YACvC;AAED,mBAAO,EAAC,KAAK,OAAO,MAAM,aAAY;AAAA,UACtC;AAED,iBAAO,EAAC,KAAK,OAAO,MAAM,YAAW;AAAA,MACtC;AAAA,IACD;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,YAAY,MAAM,MAEtB,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAC7C,KAAK,YAAY,QAAQ,EAAC,QAAQ,EAAC,CAAC,IAEvC;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,YAAY,MAAM,MAEtB,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAC7C,KAAK,YAAY,QAAQ,EAAC,QAAQ,EAAC,CAAC,IAEvC;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,CAAC,GAAG;AACjF,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,UAAI;AACH,cAAM,UAAU,OAAO,IAAI;AAC3B,cAAM,gBAAgB,KAAK,OAAO;AAClC,cAAM,SAAS,OAAO,MAAM,KAAK,IAAI,eAAe,UAAU,SAAS,IAAI,CAAC;AAC5E,cAAM,UAAU,WAAW,QAAQ,EAAC,WAAW,KAAI,CAAC;AAGpD,YAAI,OAAO,SAAS,OAAO,KAAK,eAAe,CAAC,GAAG;AAClD,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACK;AAAA,MACD,SAAQ,OAAO;AAEf,YAAI,EAAE,iBAAiBA,mBAA2B;AACjD,gBAAM;AAAA,QACN;AAAA,MACD;AAGD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,IAAM,KAAM,GAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,MAAM,CAAC,IAAM,EAAI,CAAC,GAAG;AAC7B,YAAM,WAAW,MAAM,KAAK,eAAe,KAAK;AAChD,UAAI,UAAU;AACb,eAAO;AAAA,MACP;AAAA,IACD;AAGD,QAAI,KAAK,MAAM,CAAC,IAAM,EAAI,CAAC,GAAG;AAC7B,YAAM,WAAW,MAAM,KAAK,eAAe,IAAI;AAC/C,UAAI,UAAU;AACb,eAAO;AAAA,MACP;AAAA,IACD;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,KAAM,GAAI,CAAC,GAAG;AACzC,qBAAe,YAAY;AAC1B,cAAM,MAAM,MAAM,UAAU,WAAWE,KAAW;AAClD,YAAI,OAAO;AACX,YAAI,KAAK;AAGT,gBAAQ,MAAM,UAAU,KAAK,SAAS,GAAG;AACxC,YAAE;AACF,mBAAS;AAAA,QACT;AAED,cAAM,KAAK,OAAO,MAAM,KAAK,CAAC;AAC9B,cAAM,UAAU,WAAW,EAAE;AAC7B,eAAO;AAAA,MACP;AAED,qBAAe,cAAc;AAC5B,cAAM,KAAK,MAAM;AACjB,cAAM,cAAc,MAAM;AAC1B,oBAAY,CAAC,KAAK,OAAS,YAAY,SAAS;AAChD,cAAM,WAAW,KAAK,IAAI,GAAG,YAAY,MAAM;AAC/C,eAAO;AAAA,UACN,IAAI,GAAG,WAAW,GAAG,GAAG,MAAM;AAAA,UAC9B,KAAK,YAAY,WAAW,YAAY,SAAS,UAAU,QAAQ;AAAA,QACxE;AAAA,MACI;AAED,qBAAe,aAAa,UAAU;AACrC,eAAO,WAAW,GAAG;AACpB,gBAAM,UAAU,MAAM;AACtB,cAAI,QAAQ,OAAO,OAAS;AAC3B,kBAAM,WAAW,MAAM,UAAU,UAAU,IAAID,WAAiB,QAAQ,KAAK,OAAO,CAAC;AACrF,mBAAO,SAAS,QAAQ,WAAW,EAAE;AAAA,UACrC;AAED,gBAAM,UAAU,OAAO,QAAQ,GAAG;AAClC,YAAE;AAAA,QACF;AAAA,MACD;AAED,YAAM,KAAK,MAAM;AACjB,YAAM,UAAU,MAAM,aAAa,GAAG,GAAG;AAEzC,cAAQ,SAAO;AAAA,QACd,KAAK;AACJ,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QAEI,KAAK;AACJ,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QAEI;AACC;AAAA,MACD;AAAA,IACD;AAGD,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AACzC,UAAI,KAAK,MAAM,CAAC,IAAM,IAAM,EAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AAChD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,UAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,EAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AACtD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,EAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AACtD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAAA,IACD;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,YAAY,MAAM,KACpB,KAAK,YAAY,MAAM,GACzB;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,KAAM,IAAM,GAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,IAAM,CAAI,CAAC,GAAG;AAC/C,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,OAAO,GAAG;AAC9B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,QAAQ,GAAG;AAC/B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,CAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KAClC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,KACrC,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,GACvC;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,GAAI,CAAC,GAAG;AAEzC,UAAI,KAAK,MAAM,CAAC,EAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,GAAI,EAAC,CAAC,GAAG;AAClD,eAAO;AAAA,UACN,KAAK;AAAA;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,KAAK,MAAM,CAAC,EAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,GAAI,EAAC,CAAC,GAAG;AAClD,eAAO;AAAA,UACN,KAAK;AAAA;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAAA,IACD;AAED,QAAI,KAAK,YAAY,MAAM,GAAG;AAC7B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,MAAM,CAAC,KAAM,IAAM,KAAM,IAAM,IAAM,CAAI,CAAC,GAAG;AACrD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,QAAQ,GAAG;AAC/B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,KAAM,KAAM,KAAM,IAAM,EAAI,CAAC,GAAG;AACrD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,MAAM,CAAC,IAAM,IAAM,KAAM,IAAM,IAAM,CAAG,CAAC,MAC1C,KAAK,OAAO,CAAC,MAAM,KAAO,KAAK,OAAO,CAAC,MAAM,IAChD;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,QAAQ,GAAG;AAC/B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,IAAI,GAAG;AAC3B,YAAM,UAAU,KAAK,OAAO,SAAS,UAAU,GAAG,CAAC;AACnD,UAAI,QAAQ,MAAM,KAAK,KAAK,WAAW,OAAQ,WAAW,MAAM;AAC/D,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAAA,IACD;AAED,QAAI,KAAK,YAAY,QAAQ,GAAG;AAC/B,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,YAAY,SAAS,GAAG;AAChC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,SAAS,GAAG;AAChC,YAAM,UAAU,OAAO,CAAC;AACxB,YAAM,SAAS,MAAM,UAAU,UAAU,IAAIA,WAAiB,IAAI,OAAO,CAAC;AAC1E,UAAI,WAAW,iBAAiB;AAC/B,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,GAAG;AAC3C,YAAM,UAAU,WAAW,KAAK,QAAQ,EAAC,QAAQ,IAAI,WAAW,KAAI,CAAC;AACrE,UAAI,KAAK,YAAY,MAAM,EAAC,QAAQ,GAAE,CAAC,GAAG;AACzC,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAAA,IACD;AAID,QAAI,KAAK,MAAM,CAAC,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AASjE,YAAM,UAAU,OAAO,CAAC;AAExB,qBAAe,kBAAkB;AAChC,eAAO;AAAA,UACN,QAAQ,MAAM,UAAU,UAAUE,QAAc;AAAA,UAChD,MAAM,MAAM,UAAU,UAAU,IAAIF,WAAiB,GAAG,QAAQ,CAAC;AAAA,QACtE;AAAA,MACI;AAED,SAAG;AACF,cAAM,QAAQ,MAAM;AACpB,YAAI,MAAM,SAAS,GAAG;AACrB;AAAA,QACA;AAED,gBAAQ,MAAM,MAAI;AAAA,UACjB,KAAK;AACJ,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACK,KAAK;AACJ,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACK;AACC,kBAAM,UAAU,OAAO,MAAM,SAAS,CAAC;AAAA,QACxC;AAAA,MACL,SAAY,UAAU,WAAW,IAAI,UAAU,SAAS;AAErD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,CAAI,CAAC,GAAG;AACjE,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,IAAM,IAAM,GAAM,GAAM,GAAM,CAAI,CAAC,GAAG;AACjE,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QACC,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAC7C,KAAK,MAAM,CAAC,KAAM,KAAM,IAAM,GAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAChD,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAChD,KAAK,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAClD;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,GAAG;AACvE,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,WAAW,GAAG;AAClC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,KAAM,KAAM,KAAM,GAAI,CAAC,GAAG;AACzF,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,GAAI,CAAC,GAAG;AAC7E,qBAAe,aAAa;AAC3B,cAAM,OAAO,OAAO,MAAM,EAAE;AAC5B,cAAM,UAAU,WAAW,IAAI;AAC/B,eAAO;AAAA,UACN,IAAI;AAAA,UACJ,MAAM,OAAO,MAAM,UAAU,UAAUG,SAAe,CAAC;AAAA,QAC5D;AAAA,MACI;AAED,YAAM,UAAU,OAAO,EAAE;AAEzB,aAAO,UAAU,WAAW,KAAK,UAAU,SAAS,MAAM;AACzD,cAAM,SAAS,MAAM;AACrB,YAAI,UAAU,OAAO,OAAO;AAC5B,YAAI,OAAO,OAAO,IAAI,CAAC,KAAM,GAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,GAAM,KAAM,IAAM,IAAM,IAAM,GAAI,CAAC,GAAG;AAExH,gBAAM,SAAS,OAAO,MAAM,EAAE;AAC9B,qBAAW,MAAM,UAAU,WAAW,MAAM;AAE5C,cAAI,OAAO,QAAQ,CAAC,IAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,KAAM,GAAM,KAAM,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AAErH,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACM;AAED,cAAI,OAAO,QAAQ,CAAC,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,KAAM,GAAM,KAAM,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AAErH,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACM;AAED;AAAA,QACA;AAED,cAAM,UAAU,OAAO,OAAO;AAAA,MAC9B;AAGD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAAM,IAAM,IAAM,IAAM,EAAI,CAAC,GAAG;AACzF,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,SAAK,KAAK,MAAM,CAAC,KAAM,IAAM,CAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAM,IAAM,CAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,EAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AAC5H,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AACtG,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,IAAM,KAAM,EAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,IAAM,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAAM,EAAI,CAAC,GAAG;AAGzF,YAAM,UAAU,OAAO,EAAE;AACzB,YAAM,OAAO,MAAM,UAAU,UAAU,IAAIH,WAAiB,GAAG,OAAO,CAAC;AACvE,cAAQ,MAAI;AAAA,QACX,KAAK;AACJ,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACI,KAAK;AACJ,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACI,KAAK;AACJ,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACI,KAAK;AACJ,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACI;AACC;AAAA,MACD;AAAA,IACD;AAED,QACC,KAAK,MAAM,CAAC,KAAM,EAAI,CAAC,KACpB,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAAM,EAAI,CAAC,GACrF;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,GAAI,CAAC,GAAG;AAC7B,UAAI,KAAK,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AACpE,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,aAAO;AAAA,IACP;AAID,QACC,KAAK,MAAM,CAAC,GAAK,GAAK,GAAK,GAAI,CAAC,KAC7B,KAAK,MAAM,CAAC,GAAK,GAAK,GAAK,GAAI,CAAC,GAClC;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,GAAM,CAAI,CAAC,GAAG;AAC/C,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,CAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,CAAI,CAAC,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,GAAI,CAAC,GAAG;AAEjE,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,UAAM,UAAU,WAAW,KAAK,QAAQ,EAAC,QAAQ,KAAK,IAAI,KAAK,UAAU,SAAS,IAAI,GAAG,WAAW,KAAI,CAAC;AAEzG,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,KAAM,GAAI,GAAG,EAAC,QAAQ,GAAE,CAAC,GAAG;AACvD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAID,QAAI,KAAK,YAAY,QAAQ,GAAG;AAC/B,UAAI,KAAK,YAAY,SAAS,EAAC,QAAQ,EAAC,CAAC,GAAG;AAC3C,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,UAAI,KAAK,YAAY,aAAa,EAAC,QAAQ,EAAC,CAAC,GAAG;AAC/C,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAAA,IACD;AAGD,QAAI,KAAK,YAAY,iBAAiB,GAAG;AACxC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,kBAAkB,GAAG;AACzC,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,qBAAqB,GAAG;AAC5C,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,GAAM,GAAM,CAAI,CAAC,KAAK,KAAK,OAAO,UAAU,IAAI;AACrE,YAAM,WAAW,KAAK,OAAO,aAAa,EAAE;AAC5C,UAAI,WAAW,MAAM,KAAK,OAAO,UAAU,WAAW,IAAI;AACzD,YAAI;AACH,gBAAM,SAAS,KAAK,OAAO,MAAM,IAAI,WAAW,EAAE,EAAE;AACpD,gBAAM,OAAO,KAAK,MAAM,MAAM;AAE9B,cAAI,KAAK,OAAO;AACf,mBAAO;AAAA,cACN,KAAK;AAAA,cACL,MAAM;AAAA,YACb;AAAA,UACM;AAAA,QACD,QAAO;AAAA,QAAE;AAAA,MACV;AAAA,IACD;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,CAAI,CAAC,GAAG;AACrG,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,YAAY,QAAQ,EAAC,QAAQ,GAAE,CAAC,GAAG;AAC3C,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,MAAM,CAAC,EAAI,CAAC,KAAK,KAAK,MAAM,CAAC,EAAI,GAAG,EAAC,QAAQ,IAAG,CAAC,GAAG;AAC5D,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,MAAM,CAAC,EAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAAK,KAAK,MAAM,CAAC,EAAI,GAAG,EAAC,QAAQ,IAAG,CAAC,GAAG;AACzE,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,GAAG,EAAC,QAAQ,GAAE,CAAC,GAAG;AAC/E,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,IAAM,IAAM,EAAI,GAAG,EAAC,QAAQ,IAAG,CAAC,GAAG;AACxD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,GAAG;AACzI,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,IAAM,KAAM,KAAM,KAAM,GAAM,GAAM,GAAM,GAAM,KAAM,IAAM,KAAM,KAAM,GAAM,GAAM,GAAM,CAAI,CAAC,GAAG;AACjH,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA;AAAA,MACV;AAAA,IACG;AAED,QACC,KAAK,MAAM,CAAC,IAAM,EAAI,GAAG,EAAC,QAAQ,GAAE,CAAC,MAEpC,KAAK,MAAM,CAAC,GAAM,GAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KACvC,KAAK,MAAM,CAAC,GAAM,GAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAC1C,KAAK,MAAM,CAAC,GAAM,GAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,IAE7C;AACD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,GAAM,GAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAI,CAAC,GAAG;AACjH,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,UAAM,UAAU,WAAW,KAAK,QAAQ,EAAC,QAAQ,KAAK,IAAI,KAAK,UAAU,SAAS,IAAI,GAAG,WAAW,KAAI,CAAC;AAGzG,QAAI,yBAAyB,KAAK,MAAM,GAAG;AAC1C,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,KAAK,MAAM,CAAC,KAAM,GAAI,CAAC,GAAG;AAC7B,UAAI,KAAK,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AACpE,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,UAAI,KAAK,MAAM,CAAC,KAAM,IAAM,IAAM,GAAM,KAAM,GAAM,KAAM,GAAM,KAAM,GAAM,IAAM,GAAM,KAAM,GAAM,IAAM,GAAM,KAAM,GAAM,IAAM,GAAM,IAAM,GAAM,KAAM,GAAM,KAAM,GAAM,KAAM,GAAM,KAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,GAAG;AAClN,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAED,aAAO;AAAA,IACP;AAED,QAAI,KAAK,YAAY,6BAA6B,GAAG;AACpD,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAGD,QAAI,KAAK,OAAO,UAAU,KAAK,KAAK,MAAM,CAAC,KAAM,GAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,KAAM,GAAI,EAAC,CAAC,GAAG;AACzF,UAAI,KAAK,MAAM,CAAC,EAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,EAAI,EAAC,CAAC,GAAG;AAElD,YAAI,KAAK,MAAM,CAAC,CAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,CAAI,EAAC,CAAC,GAAG;AAClD,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACK;AAGD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAID,UAAI,KAAK,MAAM,CAAC,CAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,CAAI,EAAC,CAAC,GAAG;AAClD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,KAAK,MAAM,CAAC,CAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,CAAI,EAAC,CAAC,GAAG;AAClD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAGD,UAAI,KAAK,MAAM,CAAC,CAAI,GAAG,EAAC,QAAQ,GAAG,MAAM,CAAC,CAAI,EAAC,CAAC,GAAG;AAClD,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACI;AAAA,IACD;AAAA,EACD;AAAA,EAED,MAAM,YAAY,WAAW;AAC5B,UAAM,QAAQ,MAAM,KAAK,UAAU,UAAU,YAAYI,YAAkBC,SAAe;AAC1F,SAAK,UAAU,OAAO,EAAE;AACxB,YAAQ,OAAK;AAAA,MACZ,KAAK;AACJ,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,MACG,KAAK;AACJ,eAAO;AAAA,UACN,KAAK;AAAA,UACL,MAAM;AAAA,QACX;AAAA,IAEG;AAAA,EACD;AAAA,EAED,MAAM,YAAY,WAAW;AAC5B,UAAM,eAAe,MAAM,KAAK,UAAU,UAAU,YAAYD,YAAkBC,SAAe;AACjG,aAAS,IAAI,GAAG,IAAI,cAAc,EAAE,GAAG;AACtC,YAAM,WAAW,MAAM,KAAK,YAAY,SAAS;AACjD,UAAI,UAAU;AACb,eAAO;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAAA,EAED,MAAM,eAAe,WAAW;AAC/B,UAAM,WAAW,YAAYD,YAAkBC,WAAiB,IAAI,KAAK,QAAQ,CAAC;AAClF,UAAM,aAAa,YAAYC,YAAkBC,WAAiB,IAAI,KAAK,QAAQ,CAAC;AAEpF,QAAI,YAAY,IAAI;AAEnB,UAAI,aAAa,GAAG;AACnB,YAAI,KAAK,YAAY,MAAM,EAAC,QAAQ,EAAC,CAAC,GAAG;AACxC,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACK;AAED,YAAI,aAAa,MAAM,KAAK,MAAM,CAAC,IAAM,GAAM,KAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,KAAK,KAAK,MAAM,CAAC,IAAM,GAAM,IAAM,CAAI,GAAG,EAAC,QAAQ,EAAC,CAAC,IAAI;AAC/H,iBAAO;AAAA,YACN,KAAK;AAAA,YACL,MAAM;AAAA,UACZ;AAAA,QACK;AAAA,MACD;AAED,YAAM,KAAK,UAAU,OAAO,SAAS;AACrC,YAAM,WAAW,MAAM,KAAK,YAAY,SAAS;AACjD,aAAO,YAAY;AAAA,QAClB,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAED,QAAI,YAAY,IAAI;AACnB,aAAO;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACG;AAAA,EACD;AACF;AAqCmC,IAAI,IAAI,UAAU;AACnB,IAAI,IAAI,SAAS;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"esm.min.cjs","sources":["../../../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"esm.min.cjs","sources":["../../../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"esm.min.js","sources":["../../../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"esm.min.js","sources":["../../../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/get-port/index.js"],"sourcesContent":["import net from 'node:net';\nimport os from 'node:os';\n\nclass Locked extends Error {\n\tconstructor(port) {\n\t\tsuper(`${port} is locked`);\n\t}\n}\n\nconst lockedPorts = {\n\told: new Set(),\n\tyoung: new Set(),\n};\n\n// On this interval, the old locked ports are discarded,\n// the young locked ports are moved to old locked ports,\n// and a new young set for locked ports are created.\nconst releaseOldLockedPortsIntervalMs = 1000 * 15;\n\nconst minPort = 1024;\nconst maxPort = 65_535;\n\n// Lazily create interval on first use\nlet interval;\n\nconst getLocalHosts = () => {\n\tconst interfaces = os.networkInterfaces();\n\n\t// Add undefined value for createServer function to use default host,\n\t// and default IPv4 host in case createServer defaults to IPv6.\n\tconst results = new Set([undefined, '0.0.0.0']);\n\n\tfor (const _interface of Object.values(interfaces)) {\n\t\tfor (const config of _interface) {\n\t\t\tresults.add(config.address);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nconst checkAvailablePort = options =>\n\tnew Promise((resolve, reject) => {\n\t\tconst server = net.createServer();\n\t\tserver.unref();\n\t\tserver.on('error', reject);\n\n\t\tserver.listen(options, () => {\n\t\t\tconst {port} = server.address();\n\t\t\tserver.close(() => {\n\t\t\t\tresolve(port);\n\t\t\t});\n\t\t});\n\t});\n\nconst getAvailablePort = async (options, hosts) => {\n\tif (options.host || options.port === 0) {\n\t\treturn checkAvailablePort(options);\n\t}\n\n\tfor (const host of hosts) {\n\t\ttry {\n\t\t\tawait checkAvailablePort({port: options.port, host}); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tif (!['EADDRNOTAVAIL', 'EINVAL'].includes(error.code)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn options.port;\n};\n\nconst portCheckSequence = function * (ports) {\n\tif (ports) {\n\t\tyield * ports;\n\t}\n\n\tyield 0; // Fall back to 0 if anything else failed\n};\n\nexport default async function getPorts(options) {\n\tlet ports;\n\tlet exclude = new Set();\n\n\tif (options) {\n\t\tif (options.port) {\n\t\t\tports = typeof options.port === 'number' ? [options.port] : options.port;\n\t\t}\n\n\t\tif (options.exclude) {\n\t\t\tconst excludeIterable = options.exclude;\n\n\t\t\tif (typeof excludeIterable[Symbol.iterator] !== 'function') {\n\t\t\t\tthrow new TypeError('The `exclude` option must be an iterable.');\n\t\t\t}\n\n\t\t\tfor (const element of excludeIterable) {\n\t\t\t\tif (typeof element !== 'number') {\n\t\t\t\t\tthrow new TypeError('Each item in the `exclude` option must be a number corresponding to the port you want excluded.');\n\t\t\t\t}\n\n\t\t\t\tif (!Number.isSafeInteger(element)) {\n\t\t\t\t\tthrow new TypeError(`Number ${element} in the exclude option is not a safe integer and can't be used`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\texclude = new Set(excludeIterable);\n\t\t}\n\t}\n\n\tif (interval === undefined) {\n\t\tinterval = setInterval(() => {\n\t\t\tlockedPorts.old = lockedPorts.young;\n\t\t\tlockedPorts.young = new Set();\n\t\t}, releaseOldLockedPortsIntervalMs);\n\n\t\t// Does not exist in some environments (Electron, Jest jsdom env, browser, etc).\n\t\tif (interval.unref) {\n\t\t\tinterval.unref();\n\t\t}\n\t}\n\n\tconst hosts = getLocalHosts();\n\n\tfor (const port of portCheckSequence(ports)) {\n\t\ttry {\n\t\t\tif (exclude.has(port)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet availablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\twhile (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) {\n\t\t\t\tif (port !== 0) {\n\t\t\t\t\tthrow new Locked(port);\n\t\t\t\t}\n\n\t\t\t\tavailablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\t}\n\n\t\t\tlockedPorts.young.add(availablePort);\n\n\t\t\treturn availablePort;\n\t\t} catch (error) {\n\t\t\tif (!['EADDRINUSE', 'EACCES'].includes(error.code) && !(error instanceof Locked)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error('No available ports found');\n}\n\nexport function portNumbers(from, to) {\n\tif (!Number.isInteger(from) || !Number.isInteger(to)) {\n\t\tthrow new TypeError('`from` and `to` must be integer numbers');\n\t}\n\n\tif (from < minPort || from > maxPort) {\n\t\tthrow new RangeError(`'from' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (to < minPort || to > maxPort) {\n\t\tthrow new RangeError(`'to' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (from > to) {\n\t\tthrow new RangeError('`to` must be greater than or equal to `from`');\n\t}\n\n\tconst generator = function * (from, to) {\n\t\tfor (let port = from; port <= to; port++) {\n\t\t\tyield port;\n\t\t}\n\t};\n\n\treturn generator(from, to);\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/get-port/index.js"],"sourcesContent":["import net from 'node:net';\nimport os from 'node:os';\n\nclass Locked extends Error {\n\tconstructor(port) {\n\t\tsuper(`${port} is locked`);\n\t}\n}\n\nconst lockedPorts = {\n\told: new Set(),\n\tyoung: new Set(),\n};\n\n// On this interval, the old locked ports are discarded,\n// the young locked ports are moved to old locked ports,\n// and a new young set for locked ports are created.\nconst releaseOldLockedPortsIntervalMs = 1000 * 15;\n\nconst minPort = 1024;\nconst maxPort = 65_535;\n\n// Lazily create interval on first use\nlet interval;\n\nconst getLocalHosts = () => {\n\tconst interfaces = os.networkInterfaces();\n\n\t// Add undefined value for createServer function to use default host,\n\t// and default IPv4 host in case createServer defaults to IPv6.\n\tconst results = new Set([undefined, '0.0.0.0']);\n\n\tfor (const _interface of Object.values(interfaces)) {\n\t\tfor (const config of _interface) {\n\t\t\tresults.add(config.address);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nconst checkAvailablePort = options =>\n\tnew Promise((resolve, reject) => {\n\t\tconst server = net.createServer();\n\t\tserver.unref();\n\t\tserver.on('error', reject);\n\n\t\tserver.listen(options, () => {\n\t\t\tconst {port} = server.address();\n\t\t\tserver.close(() => {\n\t\t\t\tresolve(port);\n\t\t\t});\n\t\t});\n\t});\n\nconst getAvailablePort = async (options, hosts) => {\n\tif (options.host || options.port === 0) {\n\t\treturn checkAvailablePort(options);\n\t}\n\n\tfor (const host of hosts) {\n\t\ttry {\n\t\t\tawait checkAvailablePort({port: options.port, host}); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tif (!['EADDRNOTAVAIL', 'EINVAL'].includes(error.code)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn options.port;\n};\n\nconst portCheckSequence = function * (ports) {\n\tif (ports) {\n\t\tyield * ports;\n\t}\n\n\tyield 0; // Fall back to 0 if anything else failed\n};\n\nexport default async function getPorts(options) {\n\tlet ports;\n\tlet exclude = new Set();\n\n\tif (options) {\n\t\tif (options.port) {\n\t\t\tports = typeof options.port === 'number' ? [options.port] : options.port;\n\t\t}\n\n\t\tif (options.exclude) {\n\t\t\tconst excludeIterable = options.exclude;\n\n\t\t\tif (typeof excludeIterable[Symbol.iterator] !== 'function') {\n\t\t\t\tthrow new TypeError('The `exclude` option must be an iterable.');\n\t\t\t}\n\n\t\t\tfor (const element of excludeIterable) {\n\t\t\t\tif (typeof element !== 'number') {\n\t\t\t\t\tthrow new TypeError('Each item in the `exclude` option must be a number corresponding to the port you want excluded.');\n\t\t\t\t}\n\n\t\t\t\tif (!Number.isSafeInteger(element)) {\n\t\t\t\t\tthrow new TypeError(`Number ${element} in the exclude option is not a safe integer and can't be used`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\texclude = new Set(excludeIterable);\n\t\t}\n\t}\n\n\tif (interval === undefined) {\n\t\tinterval = setInterval(() => {\n\t\t\tlockedPorts.old = lockedPorts.young;\n\t\t\tlockedPorts.young = new Set();\n\t\t}, releaseOldLockedPortsIntervalMs);\n\n\t\t// Does not exist in some environments (Electron, Jest jsdom env, browser, etc).\n\t\tif (interval.unref) {\n\t\t\tinterval.unref();\n\t\t}\n\t}\n\n\tconst hosts = getLocalHosts();\n\n\tfor (const port of portCheckSequence(ports)) {\n\t\ttry {\n\t\t\tif (exclude.has(port)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet availablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\twhile (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) {\n\t\t\t\tif (port !== 0) {\n\t\t\t\t\tthrow new Locked(port);\n\t\t\t\t}\n\n\t\t\t\tavailablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\t}\n\n\t\t\tlockedPorts.young.add(availablePort);\n\n\t\t\treturn availablePort;\n\t\t} catch (error) {\n\t\t\tif (!['EADDRINUSE', 'EACCES'].includes(error.code) && !(error instanceof Locked)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error('No available ports found');\n}\n\nexport function portNumbers(from, to) {\n\tif (!Number.isInteger(from) || !Number.isInteger(to)) {\n\t\tthrow new TypeError('`from` and `to` must be integer numbers');\n\t}\n\n\tif (from < minPort || from > maxPort) {\n\t\tthrow new RangeError(`'from' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (to < minPort || to > maxPort) {\n\t\tthrow new RangeError(`'to' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (from > to) {\n\t\tthrow new RangeError('`to` must be greater than or equal to `from`');\n\t}\n\n\tconst generator = function * (from, to) {\n\t\tfor (let port = from; port <= to; port++) {\n\t\t\tyield port;\n\t\t}\n\t};\n\n\treturn generator(from, to);\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../node_modules/get-port/index.js"],"sourcesContent":["import net from 'node:net';\nimport os from 'node:os';\n\nclass Locked extends Error {\n\tconstructor(port) {\n\t\tsuper(`${port} is locked`);\n\t}\n}\n\nconst lockedPorts = {\n\told: new Set(),\n\tyoung: new Set(),\n};\n\n// On this interval, the old locked ports are discarded,\n// the young locked ports are moved to old locked ports,\n// and a new young set for locked ports are created.\nconst releaseOldLockedPortsIntervalMs = 1000 * 15;\n\nconst minPort = 1024;\nconst maxPort = 65_535;\n\n// Lazily create interval on first use\nlet interval;\n\nconst getLocalHosts = () => {\n\tconst interfaces = os.networkInterfaces();\n\n\t// Add undefined value for createServer function to use default host,\n\t// and default IPv4 host in case createServer defaults to IPv6.\n\tconst results = new Set([undefined, '0.0.0.0']);\n\n\tfor (const _interface of Object.values(interfaces)) {\n\t\tfor (const config of _interface) {\n\t\t\tresults.add(config.address);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nconst checkAvailablePort = options =>\n\tnew Promise((resolve, reject) => {\n\t\tconst server = net.createServer();\n\t\tserver.unref();\n\t\tserver.on('error', reject);\n\n\t\tserver.listen(options, () => {\n\t\t\tconst {port} = server.address();\n\t\t\tserver.close(() => {\n\t\t\t\tresolve(port);\n\t\t\t});\n\t\t});\n\t});\n\nconst getAvailablePort = async (options, hosts) => {\n\tif (options.host || options.port === 0) {\n\t\treturn checkAvailablePort(options);\n\t}\n\n\tfor (const host of hosts) {\n\t\ttry {\n\t\t\tawait checkAvailablePort({port: options.port, host}); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tif (!['EADDRNOTAVAIL', 'EINVAL'].includes(error.code)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn options.port;\n};\n\nconst portCheckSequence = function * (ports) {\n\tif (ports) {\n\t\tyield * ports;\n\t}\n\n\tyield 0; // Fall back to 0 if anything else failed\n};\n\nexport default async function getPorts(options) {\n\tlet ports;\n\tlet exclude = new Set();\n\n\tif (options) {\n\t\tif (options.port) {\n\t\t\tports = typeof options.port === 'number' ? [options.port] : options.port;\n\t\t}\n\n\t\tif (options.exclude) {\n\t\t\tconst excludeIterable = options.exclude;\n\n\t\t\tif (typeof excludeIterable[Symbol.iterator] !== 'function') {\n\t\t\t\tthrow new TypeError('The `exclude` option must be an iterable.');\n\t\t\t}\n\n\t\t\tfor (const element of excludeIterable) {\n\t\t\t\tif (typeof element !== 'number') {\n\t\t\t\t\tthrow new TypeError('Each item in the `exclude` option must be a number corresponding to the port you want excluded.');\n\t\t\t\t}\n\n\t\t\t\tif (!Number.isSafeInteger(element)) {\n\t\t\t\t\tthrow new TypeError(`Number ${element} in the exclude option is not a safe integer and can't be used`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\texclude = new Set(excludeIterable);\n\t\t}\n\t}\n\n\tif (interval === undefined) {\n\t\tinterval = setInterval(() => {\n\t\t\tlockedPorts.old = lockedPorts.young;\n\t\t\tlockedPorts.young = new Set();\n\t\t}, releaseOldLockedPortsIntervalMs);\n\n\t\t// Does not exist in some environments (Electron, Jest jsdom env, browser, etc).\n\t\tif (interval.unref) {\n\t\t\tinterval.unref();\n\t\t}\n\t}\n\n\tconst hosts = getLocalHosts();\n\n\tfor (const port of portCheckSequence(ports)) {\n\t\ttry {\n\t\t\tif (exclude.has(port)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet availablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\twhile (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) {\n\t\t\t\tif (port !== 0) {\n\t\t\t\t\tthrow new Locked(port);\n\t\t\t\t}\n\n\t\t\t\tavailablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\t}\n\n\t\t\tlockedPorts.young.add(availablePort);\n\n\t\t\treturn availablePort;\n\t\t} catch (error) {\n\t\t\tif (!['EADDRINUSE', 'EACCES'].includes(error.code) && !(error instanceof Locked)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error('No available ports found');\n}\n\nexport function portNumbers(from, to) {\n\tif (!Number.isInteger(from) || !Number.isInteger(to)) {\n\t\tthrow new TypeError('`from` and `to` must be integer numbers');\n\t}\n\n\tif (from < minPort || from > maxPort) {\n\t\tthrow new RangeError(`'from' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (to < minPort || to > maxPort) {\n\t\tthrow new RangeError(`'to' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (from > to) {\n\t\tthrow new RangeError('`to` must be greater than or equal to `from`');\n\t}\n\n\tconst generator = function * (from, to) {\n\t\tfor (let port = from; port <= to; port++) {\n\t\t\tyield port;\n\t\t}\n\t};\n\n\treturn generator(from, to);\n}\n"],"names":["os"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../node_modules/get-port/index.js"],"sourcesContent":["import net from 'node:net';\nimport os from 'node:os';\n\nclass Locked extends Error {\n\tconstructor(port) {\n\t\tsuper(`${port} is locked`);\n\t}\n}\n\nconst lockedPorts = {\n\told: new Set(),\n\tyoung: new Set(),\n};\n\n// On this interval, the old locked ports are discarded,\n// the young locked ports are moved to old locked ports,\n// and a new young set for locked ports are created.\nconst releaseOldLockedPortsIntervalMs = 1000 * 15;\n\nconst minPort = 1024;\nconst maxPort = 65_535;\n\n// Lazily create interval on first use\nlet interval;\n\nconst getLocalHosts = () => {\n\tconst interfaces = os.networkInterfaces();\n\n\t// Add undefined value for createServer function to use default host,\n\t// and default IPv4 host in case createServer defaults to IPv6.\n\tconst results = new Set([undefined, '0.0.0.0']);\n\n\tfor (const _interface of Object.values(interfaces)) {\n\t\tfor (const config of _interface) {\n\t\t\tresults.add(config.address);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nconst checkAvailablePort = options =>\n\tnew Promise((resolve, reject) => {\n\t\tconst server = net.createServer();\n\t\tserver.unref();\n\t\tserver.on('error', reject);\n\n\t\tserver.listen(options, () => {\n\t\t\tconst {port} = server.address();\n\t\t\tserver.close(() => {\n\t\t\t\tresolve(port);\n\t\t\t});\n\t\t});\n\t});\n\nconst getAvailablePort = async (options, hosts) => {\n\tif (options.host || options.port === 0) {\n\t\treturn checkAvailablePort(options);\n\t}\n\n\tfor (const host of hosts) {\n\t\ttry {\n\t\t\tawait checkAvailablePort({port: options.port, host}); // eslint-disable-line no-await-in-loop\n\t\t} catch (error) {\n\t\t\tif (!['EADDRNOTAVAIL', 'EINVAL'].includes(error.code)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn options.port;\n};\n\nconst portCheckSequence = function * (ports) {\n\tif (ports) {\n\t\tyield * ports;\n\t}\n\n\tyield 0; // Fall back to 0 if anything else failed\n};\n\nexport default async function getPorts(options) {\n\tlet ports;\n\tlet exclude = new Set();\n\n\tif (options) {\n\t\tif (options.port) {\n\t\t\tports = typeof options.port === 'number' ? [options.port] : options.port;\n\t\t}\n\n\t\tif (options.exclude) {\n\t\t\tconst excludeIterable = options.exclude;\n\n\t\t\tif (typeof excludeIterable[Symbol.iterator] !== 'function') {\n\t\t\t\tthrow new TypeError('The `exclude` option must be an iterable.');\n\t\t\t}\n\n\t\t\tfor (const element of excludeIterable) {\n\t\t\t\tif (typeof element !== 'number') {\n\t\t\t\t\tthrow new TypeError('Each item in the `exclude` option must be a number corresponding to the port you want excluded.');\n\t\t\t\t}\n\n\t\t\t\tif (!Number.isSafeInteger(element)) {\n\t\t\t\t\tthrow new TypeError(`Number ${element} in the exclude option is not a safe integer and can't be used`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\texclude = new Set(excludeIterable);\n\t\t}\n\t}\n\n\tif (interval === undefined) {\n\t\tinterval = setInterval(() => {\n\t\t\tlockedPorts.old = lockedPorts.young;\n\t\t\tlockedPorts.young = new Set();\n\t\t}, releaseOldLockedPortsIntervalMs);\n\n\t\t// Does not exist in some environments (Electron, Jest jsdom env, browser, etc).\n\t\tif (interval.unref) {\n\t\t\tinterval.unref();\n\t\t}\n\t}\n\n\tconst hosts = getLocalHosts();\n\n\tfor (const port of portCheckSequence(ports)) {\n\t\ttry {\n\t\t\tif (exclude.has(port)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet availablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\twhile (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) {\n\t\t\t\tif (port !== 0) {\n\t\t\t\t\tthrow new Locked(port);\n\t\t\t\t}\n\n\t\t\t\tavailablePort = await getAvailablePort({...options, port}, hosts); // eslint-disable-line no-await-in-loop\n\t\t\t}\n\n\t\t\tlockedPorts.young.add(availablePort);\n\n\t\t\treturn availablePort;\n\t\t} catch (error) {\n\t\t\tif (!['EADDRINUSE', 'EACCES'].includes(error.code) && !(error instanceof Locked)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow new Error('No available ports found');\n}\n\nexport function portNumbers(from, to) {\n\tif (!Number.isInteger(from) || !Number.isInteger(to)) {\n\t\tthrow new TypeError('`from` and `to` must be integer numbers');\n\t}\n\n\tif (from < minPort || from > maxPort) {\n\t\tthrow new RangeError(`'from' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (to < minPort || to > maxPort) {\n\t\tthrow new RangeError(`'to' must be between ${minPort} and ${maxPort}`);\n\t}\n\n\tif (from > to) {\n\t\tthrow new RangeError('`to` must be greater than or equal to `from`');\n\t}\n\n\tconst generator = function * (from, to) {\n\t\tfor (let port = from; port <= to; port++) {\n\t\t\tyield port;\n\t\t}\n\t};\n\n\treturn generator(from, to);\n}\n"],"names":["os"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/get-stream/index.js"],"sourcesContent":["'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst stream = require('stream');\nconst {promisify} = require('util');\nconst bufferStream = require('./buffer-stream');\n\nconst streamPipelinePromisified = promisify(stream.pipeline);\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\tthrow new Error('Expected a stream');\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\tconst stream = bufferStream(options);\n\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tawait streamPipelinePromisified(inputStream, stream);\n\t\t\t\tresolve();\n\t\t\t} catch (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t}\n\t\t})();\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n"],"names":["require$$0","require$$1","require$$3","stream","getStreamModule"],"mappings":";;;;;;;AACA,MAAM,EAAC,WAAW,gBAAe,IAAIA;AACrC,MAAM,SAASC;AACf,MAAM,EAAC,UAAS,IAAI;AACpB,MAAM,eAAeC,eAAAA;AAErB,MAAM,4BAA4B,UAAU,OAAO,QAAQ;AAE3D,MAAM,uBAAuB,MAAM;AAAA,EAClC,cAAc;AACb,UAAM,oBAAoB;AAC1B,SAAK,OAAO;AAAA,EACZ;AACF;AAEA,eAAe,UAAU,aAAa,SAAS;AAC9C,MAAI,CAAC,aAAa;AACjB,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACnC;AAED,YAAU;AAAA,IACT,WAAW;AAAA,IACX,GAAG;AAAA,EACL;AAEC,QAAM,EAAC,UAAS,IAAI;AACpB,QAAMC,UAAS,aAAa,OAAO;AAEnC,QAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,gBAAgB,WAAS;AAE9B,UAAI,SAASA,QAAO,kBAAiB,KAAM,gBAAgB,YAAY;AACtE,cAAM,eAAeA,QAAO;MAC5B;AAED,aAAO,KAAK;AAAA,IACf;AAEE,KAAC,YAAY;AACZ,UAAI;AACH,cAAM,0BAA0B,aAAaA,OAAM;AACnD;MACA,SAAQ,OAAP;AACD,sBAAc,KAAK;AAAA,MACnB;AAAA,IACJ;AAEE,IAAAA,QAAO,GAAG,QAAQ,MAAM;AACvB,UAAIA,QAAO,kBAAmB,IAAG,WAAW;AAC3C,sBAAc,IAAI,eAAc,CAAE;AAAA,MAClC;AAAA,IACJ,CAAG;AAAA,EACH,CAAE;AAED,SAAOA,QAAO;AACf;AAEAC,MAAAA,SAAc,UAAG;AACjBA,MAAA,SAAA,QAAA,SAAwB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,UAAU,SAAQ,CAAC;AAC/FC,MAAA,SAAA,QAAA,QAAuB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,OAAO,KAAI,CAAC;AACvFC,MAAAA,SAAA,QAAA,iBAAgC;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/get-stream/index.js"],"sourcesContent":["'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst stream = require('stream');\nconst {promisify} = require('util');\nconst bufferStream = require('./buffer-stream');\n\nconst streamPipelinePromisified = promisify(stream.pipeline);\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\tthrow new Error('Expected a stream');\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\tconst stream = bufferStream(options);\n\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tawait streamPipelinePromisified(inputStream, stream);\n\t\t\t\tresolve();\n\t\t\t} catch (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t}\n\t\t})();\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n"],"names":["require$$0","require$$1","require$$3","stream","getStreamModule"],"mappings":";;;;;;;AACA,MAAM,EAAC,WAAW,gBAAe,IAAIA;AACrC,MAAM,SAASC;AACf,MAAM,EAAC,UAAS,IAAI;AACpB,MAAM,eAAeC,eAAAA;AAErB,MAAM,4BAA4B,UAAU,OAAO,QAAQ;AAE3D,MAAM,uBAAuB,MAAM;AAAA,EAClC,cAAc;AACb,UAAM,oBAAoB;AAC1B,SAAK,OAAO;AAAA,EACZ;AACF;AAEA,eAAe,UAAU,aAAa,SAAS;AAC9C,MAAI,CAAC,aAAa;AACjB,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACnC;AAED,YAAU;AAAA,IACT,WAAW;AAAA,IACX,GAAG;AAAA,EACL;AAEC,QAAM,EAAC,UAAS,IAAI;AACpB,QAAMC,UAAS,aAAa,OAAO;AAEnC,QAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,gBAAgB,WAAS;AAE9B,UAAI,SAASA,QAAO,kBAAiB,KAAM,gBAAgB,YAAY;AACtE,cAAM,eAAeA,QAAO;MAC5B;AAED,aAAO,KAAK;AAAA,IACf;AAEE,KAAC,YAAY;AACZ,UAAI;AACH,cAAM,0BAA0B,aAAaA,OAAM;AACnD;MACA,SAAQ,OAAO;AACf,sBAAc,KAAK;AAAA,MACnB;AAAA,IACJ;AAEE,IAAAA,QAAO,GAAG,QAAQ,MAAM;AACvB,UAAIA,QAAO,kBAAmB,IAAG,WAAW;AAC3C,sBAAc,IAAI,eAAc,CAAE;AAAA,MAClC;AAAA,IACJ,CAAG;AAAA,EACH,CAAE;AAED,SAAOA,QAAO;AACf;AAEAC,MAAAA,SAAc,UAAG;AACjBA,MAAA,SAAA,QAAA,SAAwB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,UAAU,SAAQ,CAAC;AAC/FC,MAAA,SAAA,QAAA,QAAuB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,OAAO,KAAI,CAAC;AACvFC,MAAAA,SAAA,QAAA,iBAAgC;;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../node_modules/get-stream/index.js"],"sourcesContent":["'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst stream = require('stream');\nconst {promisify} = require('util');\nconst bufferStream = require('./buffer-stream');\n\nconst streamPipelinePromisified = promisify(stream.pipeline);\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\tthrow new Error('Expected a stream');\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\tconst stream = bufferStream(options);\n\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tawait streamPipelinePromisified(inputStream, stream);\n\t\t\t\tresolve();\n\t\t\t} catch (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t}\n\t\t})();\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n"],"names":["require$$0","require$$1","require$$3","stream","getStreamModule"],"mappings":";;;;;;AACA,MAAM,EAAC,WAAW,gBAAe,IAAIA;AACrC,MAAM,SAASC;AACf,MAAM,EAAC,UAAS,IAAI;AACpB,MAAM,eAAeC;AAErB,MAAM,4BAA4B,UAAU,OAAO,QAAQ;AAE3D,MAAM,uBAAuB,MAAM;AAAA,EAClC,cAAc;AACb,UAAM,oBAAoB;AAC1B,SAAK,OAAO;AAAA,EACZ;AACF;AAEA,eAAe,UAAU,aAAa,SAAS;AAC9C,MAAI,CAAC,aAAa;AACjB,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACnC;AAED,YAAU;AAAA,IACT,WAAW;AAAA,IACX,GAAG;AAAA,EACL;AAEC,QAAM,EAAC,UAAS,IAAI;AACpB,QAAMC,UAAS,aAAa,OAAO;AAEnC,QAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,gBAAgB,WAAS;AAE9B,UAAI,SAASA,QAAO,kBAAiB,KAAM,gBAAgB,YAAY;AACtE,cAAM,eAAeA,QAAO;MAC5B;AAED,aAAO,KAAK;AAAA,IACf;AAEE,KAAC,YAAY;AACZ,UAAI;AACH,cAAM,0BAA0B,aAAaA,OAAM;AACnD;MACA,SAAQ,OAAP;AACD,sBAAc,KAAK;AAAA,MACnB;AAAA,IACJ;AAEE,IAAAA,QAAO,GAAG,QAAQ,MAAM;AACvB,UAAIA,QAAO,kBAAmB,IAAG,WAAW;AAC3C,sBAAc,IAAI,eAAc,CAAE;AAAA,MAClC;AAAA,IACJ,CAAG;AAAA,EACH,CAAE;AAED,SAAOA,QAAO;AACf;AAEAC,YAAc,UAAG;AACjBA,YAAA,QAAA,SAAwB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,UAAU,SAAQ,CAAC;AAC/FC,YAAA,QAAA,QAAuB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,OAAO,KAAI,CAAC;AACvFC,YAAA,QAAA,iBAAgC;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../node_modules/get-stream/index.js"],"sourcesContent":["'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst stream = require('stream');\nconst {promisify} = require('util');\nconst bufferStream = require('./buffer-stream');\n\nconst streamPipelinePromisified = promisify(stream.pipeline);\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\tthrow new Error('Expected a stream');\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\tconst stream = bufferStream(options);\n\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tawait streamPipelinePromisified(inputStream, stream);\n\t\t\t\tresolve();\n\t\t\t} catch (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t}\n\t\t})();\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n"],"names":["require$$0","require$$1","require$$3","stream","getStreamModule"],"mappings":";;;;;;AACA,MAAM,EAAC,WAAW,gBAAe,IAAIA;AACrC,MAAM,SAASC;AACf,MAAM,EAAC,UAAS,IAAI;AACpB,MAAM,eAAeC;AAErB,MAAM,4BAA4B,UAAU,OAAO,QAAQ;AAE3D,MAAM,uBAAuB,MAAM;AAAA,EAClC,cAAc;AACb,UAAM,oBAAoB;AAC1B,SAAK,OAAO;AAAA,EACZ;AACF;AAEA,eAAe,UAAU,aAAa,SAAS;AAC9C,MAAI,CAAC,aAAa;AACjB,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACnC;AAED,YAAU;AAAA,IACT,WAAW;AAAA,IACX,GAAG;AAAA,EACL;AAEC,QAAM,EAAC,UAAS,IAAI;AACpB,QAAMC,UAAS,aAAa,OAAO;AAEnC,QAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,gBAAgB,WAAS;AAE9B,UAAI,SAASA,QAAO,kBAAiB,KAAM,gBAAgB,YAAY;AACtE,cAAM,eAAeA,QAAO;MAC5B;AAED,aAAO,KAAK;AAAA,IACf;AAEE,KAAC,YAAY;AACZ,UAAI;AACH,cAAM,0BAA0B,aAAaA,OAAM;AACnD;MACA,SAAQ,OAAO;AACf,sBAAc,KAAK;AAAA,MACnB;AAAA,IACJ;AAEE,IAAAA,QAAO,GAAG,QAAQ,MAAM;AACvB,UAAIA,QAAO,kBAAmB,IAAG,WAAW;AAC3C,sBAAc,IAAI,eAAc,CAAE;AAAA,MAClC;AAAA,IACJ,CAAG;AAAA,EACH,CAAE;AAED,SAAOA,QAAO;AACf;AAEAC,YAAc,UAAG;AACjBA,YAAA,QAAA,SAAwB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,UAAU,SAAQ,CAAC;AAC/FC,YAAA,QAAA,QAAuB,CAACD,SAAQ,YAAY,UAAUA,SAAQ,EAAC,GAAG,SAAS,OAAO,KAAI,CAAC;AACvFC,YAAA,QAAA,iBAAgC;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"realtime.cjs","sources":["../../../../../../../node_modules/human-signals/build/src/realtime.js"],"sourcesContent":["\nexport const getRealtimeSignals=()=>{\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal);\n};\n\nconst getRealtimeSignal=(value,index)=>({\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"\n});\n\nconst SIGRTMIN=34;\nexport const SIGRTMAX=64;"],"names":[],"mappings":";;AACY,MAAC,qBAAmB,MAAI;AACpC,QAAM,SAAO,WAAS,WAAS;AAC/B,SAAO,MAAM,KAAK,EAAC,OAAM,GAAE,iBAAiB;AAC5C;AAEA,MAAM,oBAAkB,CAAC,OAAM,WAAS;AAAA,EACxC,MAAK,QAAQ,QAAM;AAAA,EACnB,QAAO,WAAS;AAAA,EAChB,QAAO;AAAA,EACP,aAAY;AAAA,EACZ,UAAS;AACT;AAEA,MAAM,WAAS;AACH,MAAC,WAAS;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"realtime.cjs","sources":["../../../../../../../node_modules/human-signals/build/src/realtime.js"],"sourcesContent":["\nexport const getRealtimeSignals=()=>{\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal);\n};\n\nconst getRealtimeSignal=(value,index)=>({\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"\n});\n\nconst SIGRTMIN=34;\nexport const SIGRTMAX=64;"],"names":[],"mappings":";;AACY,MAAC,qBAAmB,MAAI;AACpC,QAAM,SAAO,WAAS,WAAS;AAC/B,SAAO,MAAM,KAAK,EAAC,OAAM,GAAE,iBAAiB;AAC5C;AAEA,MAAM,oBAAkB,CAAC,OAAM,WAAS;AAAA,EACxC,MAAK,QAAQ,QAAM,CAAC;AAAA,EACpB,QAAO,WAAS;AAAA,EAChB,QAAO;AAAA,EACP,aAAY;AAAA,EACZ,UAAS;AACT;AAEA,MAAM,WAAS;AACH,MAAC,WAAS;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"realtime.js","sources":["../../../../../../../node_modules/human-signals/build/src/realtime.js"],"sourcesContent":["\nexport const getRealtimeSignals=()=>{\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal);\n};\n\nconst getRealtimeSignal=(value,index)=>({\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"\n});\n\nconst SIGRTMIN=34;\nexport const SIGRTMAX=64;"],"names":[],"mappings":"AACY,MAAC,qBAAmB,MAAI;AACpC,QAAM,SAAO,WAAS,WAAS;AAC/B,SAAO,MAAM,KAAK,EAAC,OAAM,GAAE,iBAAiB;AAC5C;AAEA,MAAM,oBAAkB,CAAC,OAAM,WAAS;AAAA,EACxC,MAAK,QAAQ,QAAM;AAAA,EACnB,QAAO,WAAS;AAAA,EAChB,QAAO;AAAA,EACP,aAAY;AAAA,EACZ,UAAS;AACT;AAEA,MAAM,WAAS;AACH,MAAC,WAAS;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"realtime.js","sources":["../../../../../../../node_modules/human-signals/build/src/realtime.js"],"sourcesContent":["\nexport const getRealtimeSignals=()=>{\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal);\n};\n\nconst getRealtimeSignal=(value,index)=>({\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"\n});\n\nconst SIGRTMIN=34;\nexport const SIGRTMAX=64;"],"names":[],"mappings":"AACY,MAAC,qBAAmB,MAAI;AACpC,QAAM,SAAO,WAAS,WAAS;AAC/B,SAAO,MAAM,KAAK,EAAC,OAAM,GAAE,iBAAiB;AAC5C;AAEA,MAAM,oBAAkB,CAAC,OAAM,WAAS;AAAA,EACxC,MAAK,QAAQ,QAAM,CAAC;AAAA,EACpB,QAAO,WAAS;AAAA,EAChB,QAAO;AAAA,EACP,aAAY;AAAA,EACZ,UAAS;AACT;AAEA,MAAM,WAAS;AACH,MAAC,WAAS;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/isexe/index.js"],"sourcesContent":["var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n"],"names":["global","require$$1","require$$2"],"mappings":";;;;;;AACA,IAAI;AACJ,IAAI,QAAQ,aAAa,WAAWA,iBAAAA,eAAO,iBAAiB;AAC1D,SAAOC,QAAAA,UAAuB;AAChC,OAAO;AACL,SAAOC,KAAAA,UAAoB;AAC7B;AAEA,IAAA,UAAiB;AACjB,MAAM,OAAO;AAEb,SAAS,MAAO,MAAM,SAAS,IAAI;AACjC,MAAI,OAAO,YAAY,YAAY;AACjC,SAAK;AACL,cAAU,CAAE;AAAA,EACb;AAED,MAAI,CAAC,IAAI;AACP,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,IAAI,UAAU,uBAAuB;AAAA,IAC5C;AAED,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAC5C,YAAM,MAAM,WAAW,CAAE,GAAE,SAAU,IAAI,IAAI;AAC3C,YAAI,IAAI;AACN,iBAAO,EAAE;AAAA,QACnB,OAAe;AACL,kBAAQ,EAAE;AAAA,QACX;AAAA,MACT,CAAO;AAAA,IACP,CAAK;AAAA,EACF;AAED,OAAK,MAAM,WAAW,CAAE,GAAE,SAAU,IAAI,IAAI;AAE1C,QAAI,IAAI;AACN,UAAI,GAAG,SAAS,YAAY,WAAW,QAAQ,cAAc;AAC3D,aAAK;AACL,aAAK;AAAA,MACN;AAAA,IACF;AACD,OAAG,IAAI,EAAE;AAAA,EACb,CAAG;AACH;AAEA,SAAS,KAAM,MAAM,SAAS;AAE5B,MAAI;AACF,WAAO,KAAK,KAAK,MAAM,WAAW,CAAA,CAAE;AAAA,EACrC,SAAQ,IAAP;AACA,QAAI,WAAW,QAAQ,gBAAgB,GAAG,SAAS,UAAU;AAC3D,aAAO;AAAA,IACb,OAAW;AACL,YAAM;AAAA,IACP;AAAA,EACF;AACH;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../node_modules/isexe/index.js"],"sourcesContent":["var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n"],"names":["global","require$$1","require$$2"],"mappings":";;;;;;AACA,IAAI;AACJ,IAAI,QAAQ,aAAa,WAAWA,iBAAAA,eAAO,iBAAiB;AAC1D,SAAOC,QAAAA,UAAuB;AAChC,OAAO;AACL,SAAOC,KAAAA,UAAoB;AAC7B;AAEA,IAAA,UAAiB;AACjB,MAAM,OAAO;AAEb,SAAS,MAAO,MAAM,SAAS,IAAI;AACjC,MAAI,OAAO,YAAY,YAAY;AACjC,SAAK;AACL,cAAU,CAAE;AAAA,EACb;AAED,MAAI,CAAC,IAAI;AACP,QAAI,OAAO,YAAY,YAAY;AACjC,YAAM,IAAI,UAAU,uBAAuB;AAAA,IAC5C;AAED,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAC5C,YAAM,MAAM,WAAW,CAAE,GAAE,SAAU,IAAI,IAAI;AAC3C,YAAI,IAAI;AACN,iBAAO,EAAE;AAAA,QACnB,OAAe;AACL,kBAAQ,EAAE;AAAA,QACX;AAAA,MACT,CAAO;AAAA,IACP,CAAK;AAAA,EACF;AAED,OAAK,MAAM,WAAW,CAAE,GAAE,SAAU,IAAI,IAAI;AAE1C,QAAI,IAAI;AACN,UAAI,GAAG,SAAS,YAAY,WAAW,QAAQ,cAAc;AAC3D,aAAK;AACL,aAAK;AAAA,MACN;AAAA,IACF;AACD,OAAG,IAAI,EAAE;AAAA,EACb,CAAG;AACH;AAEA,SAAS,KAAM,MAAM,SAAS;AAE5B,MAAI;AACF,WAAO,KAAK,KAAK,MAAM,WAAW,CAAA,CAAE;AAAA,EACrC,SAAQ,IAAI;AACX,QAAI,WAAW,QAAQ,gBAAgB,GAAG,SAAS,UAAU;AAC3D,aAAO;AAAA,IACb,OAAW;AACL,YAAM;AAAA,IACP;AAAA,EACF;AACH;;","x_google_ignoreList":[0]}