@slicemachine/manager 0.25.4-beta.5 → 0.25.4-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.cjs +69 -88
  2. package/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.cjs.map +1 -1
  3. package/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.js +69 -88
  4. package/dist/_node_modules/@amplitude/analytics-core/_node_modules/tslib/tslib.es6.js.map +1 -1
  5. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.cjs +4 -4
  6. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.cjs.map +1 -1
  7. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.js +1 -1
  8. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/config.js.map +1 -1
  9. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.cjs +3 -6
  10. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.cjs.map +1 -1
  11. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js +3 -6
  12. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/core-client.js.map +1 -1
  13. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.cjs.map +1 -1
  14. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/identify.js.map +1 -1
  15. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.cjs.map +1 -1
  16. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/logger.js.map +1 -1
  17. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.cjs.map +1 -1
  18. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js.map +1 -1
  19. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.cjs.map +1 -1
  20. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/revenue.js.map +1 -1
  21. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.cjs +6 -12
  22. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.cjs.map +1 -1
  23. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js +6 -12
  24. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/timeline.js.map +1 -1
  25. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.cjs.map +1 -1
  26. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/transports/base.js.map +1 -1
  27. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.cjs.map +1 -1
  28. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.js.map +1 -1
  29. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.cjs +4 -11
  30. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.cjs.map +1 -1
  31. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js +5 -12
  32. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js.map +1 -1
  33. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.cjs.map +1 -1
  34. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js.map +1 -1
  35. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.cjs.map +1 -1
  36. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.js.map +1 -1
  37. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.cjs.map +1 -1
  38. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js.map +1 -1
  39. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.cjs.map +1 -1
  40. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.js.map +1 -1
  41. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.cjs +2 -4
  42. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.cjs.map +1 -1
  43. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js +2 -4
  44. package/dist/_node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js.map +1 -1
  45. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.cjs +52 -63
  46. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.cjs.map +1 -1
  47. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.js +52 -63
  48. package/dist/_node_modules/@amplitude/analytics-node/_node_modules/tslib/tslib.es6.js.map +1 -1
  49. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.cjs.map +1 -1
  50. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/config.js.map +1 -1
  51. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/index.cjs.map +1 -1
  52. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.cjs.map +1 -1
  53. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/node-client.js.map +1 -1
  54. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.cjs.map +1 -1
  55. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/plugins/context.js.map +1 -1
  56. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.cjs.map +1 -1
  57. package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js.map +1 -1
  58. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.cjs.map +1 -1
  59. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/event.js.map +1 -1
  60. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/logger.cjs.map +1 -1
  61. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/plugin.cjs.map +1 -1
  62. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/server-zone.cjs.map +1 -1
  63. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/status.cjs.map +1 -1
  64. package/dist/_node_modules/@amplitude/analytics-types/lib/esm/transport.cjs.map +1 -1
  65. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.cjs +101 -146
  66. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.cjs.map +1 -1
  67. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js +101 -146
  68. package/dist/_node_modules/@amplitude/experiment-core/dist/experiment-core.esm.js.map +1 -1
  69. package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.cjs.map +1 -1
  70. package/dist/_node_modules/@amplitude/experiment-node-server/dist/gen/version.js.map +1 -1
  71. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.cjs +1 -1
  72. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.cjs.map +1 -1
  73. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js +1 -1
  74. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-filter.js.map +1 -1
  75. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.cjs.map +1 -1
  76. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment-service.js.map +1 -1
  77. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.cjs.map +1 -1
  78. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/assignment/assignment.js.map +1 -1
  79. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.cjs.map +1 -1
  80. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/cookie.js.map +1 -1
  81. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.cjs +1 -1
  82. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.cjs.map +1 -1
  83. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.js +1 -1
  84. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/factory.js.map +1 -1
  85. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.cjs.map +1 -1
  86. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/index.js.map +1 -1
  87. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.cjs.map +1 -1
  88. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/cache.js.map +1 -1
  89. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.cjs +12 -18
  90. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.cjs.map +1 -1
  91. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js +12 -18
  92. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/client.js.map +1 -1
  93. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.cjs +2 -2
  94. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.cjs.map +1 -1
  95. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js +2 -2
  96. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/fetcher.js.map +1 -1
  97. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.cjs +1 -1
  98. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.cjs.map +1 -1
  99. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.js +1 -1
  100. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/local/poller.js.map +1 -1
  101. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.cjs +3 -3
  102. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.cjs.map +1 -1
  103. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js +3 -3
  104. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/remote/client.js.map +1 -1
  105. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.cjs.map +1 -1
  106. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js.map +1 -1
  107. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.cjs.map +1 -1
  108. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/types/config.js.map +1 -1
  109. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.cjs.map +1 -1
  110. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/backoff.js.map +1 -1
  111. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.cjs.map +1 -1
  112. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/cache.js.map +1 -1
  113. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.cjs.map +1 -1
  114. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/hash.js.map +1 -1
  115. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.cjs.map +1 -1
  116. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/logger.js.map +1 -1
  117. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.cjs.map +1 -1
  118. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/time.js.map +1 -1
  119. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.cjs.map +1 -1
  120. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/user.js.map +1 -1
  121. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.cjs.map +1 -1
  122. package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/util/variant.js.map +1 -1
  123. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/CachedKeyDecoder.cjs +8 -9
  124. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/CachedKeyDecoder.cjs.map +1 -1
  125. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/CachedKeyDecoder.js +8 -9
  126. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/CachedKeyDecoder.js.map +1 -1
  127. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/DecodeError.cjs +2 -4
  128. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/DecodeError.cjs.map +1 -1
  129. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/DecodeError.js +2 -4
  130. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/DecodeError.js.map +1 -1
  131. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Decoder.cjs +220 -239
  132. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Decoder.cjs.map +1 -1
  133. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Decoder.js +221 -240
  134. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Decoder.js.map +1 -1
  135. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Encoder.cjs.map +1 -1
  136. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/Encoder.js.map +1 -1
  137. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/ExtData.cjs +1 -1
  138. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/ExtData.cjs.map +1 -1
  139. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/ExtData.js +1 -1
  140. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/ExtData.js.map +1 -1
  141. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/ExtensionCodec.cjs.map +1 -1
  142. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/ExtensionCodec.js.map +1 -1
  143. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/decode.cjs.map +1 -1
  144. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/decode.js.map +1 -1
  145. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/encode.cjs.map +1 -1
  146. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/encode.js.map +1 -1
  147. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/timestamp.cjs.map +1 -1
  148. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/timestamp.js +1 -1
  149. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/timestamp.js.map +1 -1
  150. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/utils/typedArrays.cjs.map +1 -1
  151. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/utils/typedArrays.js.map +1 -1
  152. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/utils/utf8.cjs.map +1 -1
  153. package/dist/_node_modules/@msgpack/msgpack/dist.es5_esm/utils/utf8.js.map +1 -1
  154. package/dist/_node_modules/common-tags/es/TemplateTag/TemplateTag.cjs +4 -7
  155. package/dist/_node_modules/common-tags/es/TemplateTag/TemplateTag.cjs.map +1 -1
  156. package/dist/_node_modules/common-tags/es/TemplateTag/TemplateTag.js +4 -7
  157. package/dist/_node_modules/common-tags/es/TemplateTag/TemplateTag.js.map +1 -1
  158. package/dist/_node_modules/common-tags/es/commaLists/commaLists.cjs.map +1 -1
  159. package/dist/_node_modules/common-tags/es/commaLists/commaLists.js.map +1 -1
  160. package/dist/_node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.cjs.map +1 -1
  161. package/dist/_node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js.map +1 -1
  162. package/dist/_node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.cjs.map +1 -1
  163. package/dist/_node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js.map +1 -1
  164. package/dist/_node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.cjs.map +1 -1
  165. package/dist/_node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js.map +1 -1
  166. package/dist/_node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.cjs.map +1 -1
  167. package/dist/_node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js.map +1 -1
  168. package/dist/_node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.cjs.map +1 -1
  169. package/dist/_node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js.map +1 -1
  170. package/dist/_node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.cjs.map +1 -1
  171. package/dist/_node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js.map +1 -1
  172. package/dist/_node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.cjs +1 -3
  173. package/dist/_node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.cjs.map +1 -1
  174. package/dist/_node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js +1 -3
  175. package/dist/_node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js.map +1 -1
  176. package/dist/_node_modules/common-tags/es/stripIndent/stripIndent.cjs +1 -2
  177. package/dist/_node_modules/common-tags/es/stripIndent/stripIndent.cjs.map +1 -1
  178. package/dist/_node_modules/common-tags/es/stripIndent/stripIndent.js +1 -2
  179. package/dist/_node_modules/common-tags/es/stripIndent/stripIndent.js.map +1 -1
  180. package/dist/_node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.cjs.map +1 -1
  181. package/dist/_node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js.map +1 -1
  182. package/dist/_node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.cjs.map +1 -1
  183. package/dist/_node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js.map +1 -1
  184. package/dist/_node_modules/cross-spawn/index.cjs.map +1 -1
  185. package/dist/_node_modules/cross-spawn/index.js.map +1 -1
  186. package/dist/_node_modules/cross-spawn/lib/enoent.cjs.map +1 -1
  187. package/dist/_node_modules/cross-spawn/lib/enoent.js.map +1 -1
  188. package/dist/_node_modules/cross-spawn/lib/parse.cjs.map +1 -1
  189. package/dist/_node_modules/cross-spawn/lib/parse.js.map +1 -1
  190. package/dist/_node_modules/cross-spawn/lib/util/escape.cjs.map +1 -1
  191. package/dist/_node_modules/cross-spawn/lib/util/escape.js.map +1 -1
  192. package/dist/_node_modules/cross-spawn/lib/util/readShebang.cjs.map +1 -1
  193. package/dist/_node_modules/cross-spawn/lib/util/readShebang.js.map +1 -1
  194. package/dist/_node_modules/cross-spawn/lib/util/resolveCommand.cjs.map +1 -1
  195. package/dist/_node_modules/cross-spawn/lib/util/resolveCommand.js.map +1 -1
  196. package/dist/_node_modules/data-uri-to-buffer/dist/index.cjs.map +1 -1
  197. package/dist/_node_modules/data-uri-to-buffer/dist/index.js.map +1 -1
  198. package/dist/_node_modules/execa/index.cjs +1 -1
  199. package/dist/_node_modules/execa/index.cjs.map +1 -1
  200. package/dist/_node_modules/execa/index.js +1 -1
  201. package/dist/_node_modules/execa/index.js.map +1 -1
  202. package/dist/_node_modules/execa/lib/command.cjs.map +1 -1
  203. package/dist/_node_modules/execa/lib/command.js.map +1 -1
  204. package/dist/_node_modules/execa/lib/error.cjs.map +1 -1
  205. package/dist/_node_modules/execa/lib/error.js.map +1 -1
  206. package/dist/_node_modules/execa/lib/kill.cjs.map +1 -1
  207. package/dist/_node_modules/execa/lib/kill.js.map +1 -1
  208. package/dist/_node_modules/execa/lib/pipe.cjs.map +1 -1
  209. package/dist/_node_modules/execa/lib/pipe.js.map +1 -1
  210. package/dist/_node_modules/execa/lib/promise.cjs +2 -2
  211. package/dist/_node_modules/execa/lib/promise.cjs.map +1 -1
  212. package/dist/_node_modules/execa/lib/promise.js +2 -2
  213. package/dist/_node_modules/execa/lib/promise.js.map +1 -1
  214. package/dist/_node_modules/execa/lib/stdio.cjs.map +1 -1
  215. package/dist/_node_modules/execa/lib/stdio.js.map +1 -1
  216. package/dist/_node_modules/execa/lib/stream.cjs.map +1 -1
  217. package/dist/_node_modules/execa/lib/stream.js.map +1 -1
  218. package/dist/_node_modules/execa/lib/verbose.cjs.map +1 -1
  219. package/dist/_node_modules/execa/lib/verbose.js.map +1 -1
  220. package/dist/_node_modules/fetch-blob/file.cjs +9 -21
  221. package/dist/_node_modules/fetch-blob/file.cjs.map +1 -1
  222. package/dist/_node_modules/fetch-blob/file.js +8 -20
  223. package/dist/_node_modules/fetch-blob/file.js.map +1 -1
  224. package/dist/_node_modules/fetch-blob/from.cjs +9 -0
  225. package/dist/_node_modules/fetch-blob/from.cjs.map +1 -0
  226. package/dist/_node_modules/fetch-blob/from.js +9 -0
  227. package/dist/_node_modules/fetch-blob/from.js.map +1 -0
  228. package/dist/_node_modules/fetch-blob/index.cjs +8 -21
  229. package/dist/_node_modules/fetch-blob/index.cjs.map +1 -1
  230. package/dist/_node_modules/fetch-blob/index.js +8 -21
  231. package/dist/_node_modules/fetch-blob/index.js.map +1 -1
  232. package/dist/_node_modules/fetch-blob/streams.cjs.map +1 -1
  233. package/dist/_node_modules/fetch-blob/streams.js.map +1 -1
  234. package/dist/_node_modules/file-type/core.cjs.map +1 -1
  235. package/dist/_node_modules/file-type/core.js.map +1 -1
  236. package/dist/_node_modules/file-type/util.cjs.map +1 -1
  237. package/dist/_node_modules/file-type/util.js.map +1 -1
  238. package/dist/_node_modules/formdata-polyfill/esm.min.cjs +12 -29
  239. package/dist/_node_modules/formdata-polyfill/esm.min.cjs.map +1 -1
  240. package/dist/_node_modules/formdata-polyfill/esm.min.js +12 -29
  241. package/dist/_node_modules/formdata-polyfill/esm.min.js.map +1 -1
  242. package/dist/_node_modules/fp-ts/es6/Either.cjs.map +1 -1
  243. package/dist/_node_modules/fp-ts/es6/Either.js.map +1 -1
  244. package/dist/_node_modules/fp-ts/es6/function.cjs +7 -9
  245. package/dist/_node_modules/fp-ts/es6/function.cjs.map +1 -1
  246. package/dist/_node_modules/fp-ts/es6/function.js +7 -9
  247. package/dist/_node_modules/fp-ts/es6/function.js.map +1 -1
  248. package/dist/_node_modules/fp-ts/es6/internal.cjs +7 -9
  249. package/dist/_node_modules/fp-ts/es6/internal.cjs.map +1 -1
  250. package/dist/_node_modules/fp-ts/es6/internal.js +7 -9
  251. package/dist/_node_modules/fp-ts/es6/internal.js.map +1 -1
  252. package/dist/_node_modules/get-port/index.cjs.map +1 -1
  253. package/dist/_node_modules/get-port/index.js.map +1 -1
  254. package/dist/_node_modules/get-stream/buffer-stream.cjs.map +1 -1
  255. package/dist/_node_modules/get-stream/buffer-stream.js.map +1 -1
  256. package/dist/_node_modules/get-stream/index.cjs +4 -4
  257. package/dist/_node_modules/get-stream/index.cjs.map +1 -1
  258. package/dist/_node_modules/get-stream/index.js +4 -4
  259. package/dist/_node_modules/get-stream/index.js.map +1 -1
  260. package/dist/_node_modules/human-signals/build/src/main.cjs.map +1 -1
  261. package/dist/_node_modules/human-signals/build/src/main.js.map +1 -1
  262. package/dist/_node_modules/human-signals/build/src/signals.cjs.map +1 -1
  263. package/dist/_node_modules/isexe/index.cjs.map +1 -1
  264. package/dist/_node_modules/isexe/index.js.map +1 -1
  265. package/dist/_node_modules/isexe/mode.cjs +1 -2
  266. package/dist/_node_modules/isexe/mode.cjs.map +1 -1
  267. package/dist/_node_modules/isexe/mode.js +1 -2
  268. package/dist/_node_modules/isexe/mode.js.map +1 -1
  269. package/dist/_node_modules/isexe/windows.cjs +1 -2
  270. package/dist/_node_modules/isexe/windows.cjs.map +1 -1
  271. package/dist/_node_modules/isexe/windows.js +1 -2
  272. package/dist/_node_modules/isexe/windows.js.map +1 -1
  273. package/dist/_node_modules/merge-stream/index.cjs.map +1 -1
  274. package/dist/_node_modules/merge-stream/index.js.map +1 -1
  275. package/dist/_node_modules/mimic-fn/index.cjs.map +1 -1
  276. package/dist/_node_modules/mimic-fn/index.js.map +1 -1
  277. package/dist/_node_modules/node-domexception/index.cjs.map +1 -1
  278. package/dist/_node_modules/node-domexception/index.js.map +1 -1
  279. package/dist/_node_modules/node-fetch/src/body.cjs +4 -7
  280. package/dist/_node_modules/node-fetch/src/body.cjs.map +1 -1
  281. package/dist/_node_modules/node-fetch/src/body.js +5 -8
  282. package/dist/_node_modules/node-fetch/src/body.js.map +1 -1
  283. package/dist/_node_modules/node-fetch/src/errors/abort-error.cjs.map +1 -1
  284. package/dist/_node_modules/node-fetch/src/errors/abort-error.js.map +1 -1
  285. package/dist/_node_modules/node-fetch/src/errors/base.cjs.map +1 -1
  286. package/dist/_node_modules/node-fetch/src/errors/base.js.map +1 -1
  287. package/dist/_node_modules/node-fetch/src/errors/fetch-error.cjs.map +1 -1
  288. package/dist/_node_modules/node-fetch/src/errors/fetch-error.js.map +1 -1
  289. package/dist/_node_modules/node-fetch/src/headers.cjs +1 -2
  290. package/dist/_node_modules/node-fetch/src/headers.cjs.map +1 -1
  291. package/dist/_node_modules/node-fetch/src/headers.js +1 -2
  292. package/dist/_node_modules/node-fetch/src/headers.js.map +1 -1
  293. package/dist/_node_modules/node-fetch/src/index.cjs +2 -4
  294. package/dist/_node_modules/node-fetch/src/index.cjs.map +1 -1
  295. package/dist/_node_modules/node-fetch/src/index.js +3 -5
  296. package/dist/_node_modules/node-fetch/src/index.js.map +1 -1
  297. package/dist/_node_modules/node-fetch/src/request.cjs.map +1 -1
  298. package/dist/_node_modules/node-fetch/src/request.js.map +1 -1
  299. package/dist/_node_modules/node-fetch/src/response.cjs.map +1 -1
  300. package/dist/_node_modules/node-fetch/src/response.js.map +1 -1
  301. package/dist/_node_modules/node-fetch/src/utils/get-search.cjs.map +1 -1
  302. package/dist/_node_modules/node-fetch/src/utils/get-search.js.map +1 -1
  303. package/dist/_node_modules/node-fetch/src/utils/multipart-parser.cjs +2 -5
  304. package/dist/_node_modules/node-fetch/src/utils/multipart-parser.cjs.map +1 -1
  305. package/dist/_node_modules/node-fetch/src/utils/multipart-parser.js +2 -5
  306. package/dist/_node_modules/node-fetch/src/utils/multipart-parser.js.map +1 -1
  307. package/dist/_node_modules/node-fetch/src/utils/referrer.cjs.map +1 -1
  308. package/dist/_node_modules/node-fetch/src/utils/referrer.js.map +1 -1
  309. package/dist/_node_modules/npm-run-path/_node_modules/path-key/index.cjs.map +1 -1
  310. package/dist/_node_modules/npm-run-path/_node_modules/path-key/index.js.map +1 -1
  311. package/dist/_node_modules/npm-run-path/index.cjs.map +1 -1
  312. package/dist/_node_modules/npm-run-path/index.js.map +1 -1
  313. package/dist/_node_modules/onetime/index.cjs.map +1 -1
  314. package/dist/_node_modules/onetime/index.js.map +1 -1
  315. package/dist/_node_modules/p-limit/_node_modules/yocto-queue/index.cjs +11 -25
  316. package/dist/_node_modules/p-limit/_node_modules/yocto-queue/index.cjs.map +1 -1
  317. package/dist/_node_modules/p-limit/_node_modules/yocto-queue/index.js +11 -25
  318. package/dist/_node_modules/p-limit/_node_modules/yocto-queue/index.js.map +1 -1
  319. package/dist/_node_modules/p-limit/index.cjs.map +1 -1
  320. package/dist/_node_modules/p-limit/index.js.map +1 -1
  321. package/dist/_node_modules/path-key/index.cjs.map +1 -1
  322. package/dist/_node_modules/path-key/index.js.map +1 -1
  323. package/dist/_node_modules/peek-readable/lib/EndOfFileStream.cjs.map +1 -1
  324. package/dist/_node_modules/peek-readable/lib/EndOfFileStream.js.map +1 -1
  325. package/dist/_node_modules/r19/dist/R19Error.cjs.map +1 -1
  326. package/dist/_node_modules/r19/dist/R19Error.js.map +1 -1
  327. package/dist/_node_modules/r19/dist/client/createRPCClient.cjs.map +1 -1
  328. package/dist/_node_modules/r19/dist/client/createRPCClient.js.map +1 -1
  329. package/dist/_node_modules/r19/dist/createRPCMiddleware.cjs.map +1 -1
  330. package/dist/_node_modules/r19/dist/createRPCMiddleware.js.map +1 -1
  331. package/dist/_node_modules/r19/dist/handleRPCRequest.cjs.map +1 -1
  332. package/dist/_node_modules/r19/dist/handleRPCRequest.js.map +1 -1
  333. package/dist/_node_modules/r19/dist/lib/replaceLeaves.cjs.map +1 -1
  334. package/dist/_node_modules/r19/dist/lib/replaceLeaves.js.map +1 -1
  335. package/dist/_node_modules/r19/dist/proceduresFromInstance.cjs.map +1 -1
  336. package/dist/_node_modules/r19/dist/proceduresFromInstance.js.map +1 -1
  337. package/dist/_node_modules/shebang-command/index.cjs.map +1 -1
  338. package/dist/_node_modules/shebang-command/index.js.map +1 -1
  339. package/dist/_node_modules/signal-exit/index.cjs.map +1 -1
  340. package/dist/_node_modules/signal-exit/index.js +1 -1
  341. package/dist/_node_modules/signal-exit/index.js.map +1 -1
  342. package/dist/_node_modules/signal-exit/signals.cjs +1 -2
  343. package/dist/_node_modules/signal-exit/signals.cjs.map +1 -1
  344. package/dist/_node_modules/signal-exit/signals.js +1 -2
  345. package/dist/_node_modules/signal-exit/signals.js.map +1 -1
  346. package/dist/_node_modules/strip-final-newline/index.cjs.map +1 -1
  347. package/dist/_node_modules/strip-final-newline/index.js.map +1 -1
  348. package/dist/_node_modules/strtok3/lib/AbstractTokenizer.cjs.map +1 -1
  349. package/dist/_node_modules/strtok3/lib/AbstractTokenizer.js.map +1 -1
  350. package/dist/_node_modules/strtok3/lib/BufferTokenizer.cjs.map +1 -1
  351. package/dist/_node_modules/strtok3/lib/BufferTokenizer.js.map +1 -1
  352. package/dist/_node_modules/strtok3/lib/core.cjs.map +1 -1
  353. package/dist/_node_modules/token-types/lib/index.cjs.map +1 -1
  354. package/dist/_node_modules/token-types/lib/index.js.map +1 -1
  355. package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.cjs +5 -10
  356. package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.cjs.map +1 -1
  357. package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.js +5 -10
  358. package/dist/_node_modules/web-streams-polyfill/dist/ponyfill.es2018.js.map +1 -1
  359. package/dist/_node_modules/which/which.cjs.map +1 -1
  360. package/dist/_node_modules/which/which.js.map +1 -1
  361. package/dist/_node_modules/zod/lib/index.cjs +11 -20
  362. package/dist/_node_modules/zod/lib/index.cjs.map +1 -1
  363. package/dist/_node_modules/zod/lib/index.js +11 -20
  364. package/dist/_node_modules/zod/lib/index.js.map +1 -1
  365. package/dist/_virtual/_commonjsHelpers.cjs +2 -4
  366. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
  367. package/dist/_virtual/_commonjsHelpers.js +2 -4
  368. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  369. package/dist/auth/PrismicAuthManager.cjs +1 -4
  370. package/dist/auth/PrismicAuthManager.cjs.map +1 -1
  371. package/dist/auth/PrismicAuthManager.js +1 -4
  372. package/dist/auth/PrismicAuthManager.js.map +1 -1
  373. package/dist/auth/createPrismicAuthManager.cjs.map +1 -1
  374. package/dist/auth/createPrismicAuthManager.js.map +1 -1
  375. package/dist/auth/createPrismicAuthManagerMiddleware.cjs.map +1 -1
  376. package/dist/auth/createPrismicAuthManagerMiddleware.js.map +1 -1
  377. package/dist/constants/API_ENDPOINTS.cjs.map +1 -1
  378. package/dist/constants/API_ENDPOINTS.js.map +1 -1
  379. package/dist/constants/API_TOKENS.cjs.map +1 -1
  380. package/dist/constants/API_TOKENS.js.map +1 -1
  381. package/dist/errors.cjs +1 -4
  382. package/dist/errors.cjs.map +1 -1
  383. package/dist/errors.js +1 -4
  384. package/dist/errors.js.map +1 -1
  385. package/dist/getEnvironmentInfo.cjs.map +1 -1
  386. package/dist/getEnvironmentInfo.js.map +1 -1
  387. package/dist/lib/DecodeError.cjs +1 -4
  388. package/dist/lib/DecodeError.cjs.map +1 -1
  389. package/dist/lib/DecodeError.js +1 -4
  390. package/dist/lib/DecodeError.js.map +1 -1
  391. package/dist/lib/assertPluginsInitialized.cjs.map +1 -1
  392. package/dist/lib/assertPluginsInitialized.js.map +1 -1
  393. package/dist/lib/bufferCodec.cjs.map +1 -1
  394. package/dist/lib/buildPrismicRepositoryAPIEndpoint.cjs.map +1 -1
  395. package/dist/lib/buildPrismicRepositoryAPIEndpoint.js.map +1 -1
  396. package/dist/lib/castArray.cjs.map +1 -1
  397. package/dist/lib/castArray.js.map +1 -1
  398. package/dist/lib/createContentDigest.cjs.map +1 -1
  399. package/dist/lib/createContentDigest.js.map +1 -1
  400. package/dist/lib/decode.cjs.map +1 -1
  401. package/dist/lib/decode.js.map +1 -1
  402. package/dist/lib/decodeHookResult.cjs.map +1 -1
  403. package/dist/lib/decodeHookResult.js.map +1 -1
  404. package/dist/lib/decodePackageJSON.cjs.map +1 -1
  405. package/dist/lib/decodePackageJSON.js.map +1 -1
  406. package/dist/lib/decodeSliceMachineConfig.cjs.map +1 -1
  407. package/dist/lib/decodeSliceMachineConfig.js.map +1 -1
  408. package/dist/lib/fetch.cjs +1 -2
  409. package/dist/lib/fetch.cjs.map +1 -1
  410. package/dist/lib/fetch.js +3 -4
  411. package/dist/lib/fetch.js.map +1 -1
  412. package/dist/lib/fetchGitHubReleaseBodyForRelease.cjs.map +1 -1
  413. package/dist/lib/fetchGitHubReleaseBodyForRelease.js.map +1 -1
  414. package/dist/lib/fetchNPMPackageVersions.cjs.map +1 -1
  415. package/dist/lib/fetchNPMPackageVersions.js.map +1 -1
  416. package/dist/lib/findEnvironment.cjs.map +1 -1
  417. package/dist/lib/findEnvironment.js.map +1 -1
  418. package/dist/lib/format.cjs +1 -4
  419. package/dist/lib/format.cjs.map +1 -1
  420. package/dist/lib/format.js +1 -4
  421. package/dist/lib/format.js.map +1 -1
  422. package/dist/lib/installDependencies.cjs.map +1 -1
  423. package/dist/lib/installDependencies.js.map +1 -1
  424. package/dist/lib/locateFileUpward.cjs.map +1 -1
  425. package/dist/lib/locateFileUpward.js.map +1 -1
  426. package/dist/lib/mockSlice.cjs.map +1 -1
  427. package/dist/lib/mockSlice.js.map +1 -1
  428. package/dist/lib/prismicrc.cjs.map +1 -1
  429. package/dist/lib/prismicrc.js.map +1 -1
  430. package/dist/lib/requireResolve.cjs.map +1 -1
  431. package/dist/lib/requireResolve.js.map +1 -1
  432. package/dist/lib/serializeCookies.cjs.map +1 -1
  433. package/dist/lib/serializeCookies.js.map +1 -1
  434. package/dist/lib/trailingSlash.cjs.map +1 -1
  435. package/dist/lib/trailingSlash.js.map +1 -1
  436. package/dist/managers/BaseManager.cjs +1 -4
  437. package/dist/managers/BaseManager.cjs.map +1 -1
  438. package/dist/managers/BaseManager.js +1 -4
  439. package/dist/managers/BaseManager.js.map +1 -1
  440. package/dist/managers/SliceMachineManager.cjs +1 -4
  441. package/dist/managers/SliceMachineManager.cjs.map +1 -1
  442. package/dist/managers/SliceMachineManager.js +1 -4
  443. package/dist/managers/SliceMachineManager.js.map +1 -1
  444. package/dist/managers/createSliceMachineManager.cjs.map +1 -1
  445. package/dist/managers/createSliceMachineManager.js.map +1 -1
  446. package/dist/managers/createSliceMachineManagerClient.cjs.map +1 -1
  447. package/dist/managers/createSliceMachineManagerClient.js.map +1 -1
  448. package/dist/managers/createSliceMachineManagerMiddleware.cjs.map +1 -1
  449. package/dist/managers/createSliceMachineManagerMiddleware.js.map +1 -1
  450. package/dist/managers/customTypes/CustomTypesManager.cjs.map +1 -1
  451. package/dist/managers/customTypes/CustomTypesManager.js +1 -1
  452. package/dist/managers/customTypes/CustomTypesManager.js.map +1 -1
  453. package/dist/managers/documentation/DocumentationManager.cjs.map +1 -1
  454. package/dist/managers/documentation/DocumentationManager.js.map +1 -1
  455. package/dist/managers/plugins/PluginsManager.cjs +1 -4
  456. package/dist/managers/plugins/PluginsManager.cjs.map +1 -1
  457. package/dist/managers/plugins/PluginsManager.js +1 -4
  458. package/dist/managers/plugins/PluginsManager.js.map +1 -1
  459. package/dist/managers/prismicRepository/PrismicRepositoryManager.cjs.map +1 -1
  460. package/dist/managers/prismicRepository/PrismicRepositoryManager.js.map +1 -1
  461. package/dist/managers/prismicRepository/sortEnvironments.cjs.map +1 -1
  462. package/dist/managers/prismicRepository/sortEnvironments.js.map +1 -1
  463. package/dist/managers/prismicRepository/types.cjs.map +1 -1
  464. package/dist/managers/prismicRepository/types.js.map +1 -1
  465. package/dist/managers/project/ProjectManager.cjs +1 -4
  466. package/dist/managers/project/ProjectManager.cjs.map +1 -1
  467. package/dist/managers/project/ProjectManager.js +1 -4
  468. package/dist/managers/project/ProjectManager.js.map +1 -1
  469. package/dist/managers/screenshots/ScreenshotsManager.cjs +6 -11
  470. package/dist/managers/screenshots/ScreenshotsManager.cjs.map +1 -1
  471. package/dist/managers/screenshots/ScreenshotsManager.js +3 -8
  472. package/dist/managers/screenshots/ScreenshotsManager.js.map +1 -1
  473. package/dist/managers/simulator/SimulatorManager.cjs.map +1 -1
  474. package/dist/managers/simulator/SimulatorManager.js.map +1 -1
  475. package/dist/managers/sliceTemplateLibrary/SliceTemplateLibraryManager.cjs.map +1 -1
  476. package/dist/managers/sliceTemplateLibrary/SliceTemplateLibraryManager.js.map +1 -1
  477. package/dist/managers/slices/SlicesManager.cjs.map +1 -1
  478. package/dist/managers/slices/SlicesManager.js.map +1 -1
  479. package/dist/managers/snippets/SnippetsManager.cjs.map +1 -1
  480. package/dist/managers/snippets/SnippetsManager.js.map +1 -1
  481. package/dist/managers/telemetry/TelemetryManager.cjs +1 -13
  482. package/dist/managers/telemetry/TelemetryManager.cjs.map +1 -1
  483. package/dist/managers/telemetry/TelemetryManager.js +1 -13
  484. package/dist/managers/telemetry/TelemetryManager.js.map +1 -1
  485. package/dist/managers/telemetry/types.cjs +6 -2
  486. package/dist/managers/telemetry/types.cjs.map +1 -1
  487. package/dist/managers/telemetry/types.d.ts +11 -1
  488. package/dist/managers/telemetry/types.js +6 -2
  489. package/dist/managers/telemetry/types.js.map +1 -1
  490. package/dist/managers/user/UserManager.cjs +1 -4
  491. package/dist/managers/user/UserManager.cjs.map +1 -1
  492. package/dist/managers/user/UserManager.js +1 -4
  493. package/dist/managers/user/UserManager.js.map +1 -1
  494. package/dist/managers/versions/VersionsManager.cjs +1 -4
  495. package/dist/managers/versions/VersionsManager.cjs.map +1 -1
  496. package/dist/managers/versions/VersionsManager.js +1 -4
  497. package/dist/managers/versions/VersionsManager.js.map +1 -1
  498. package/dist/test/createSliceMachineManagerMSWHandler.cjs.map +1 -1
  499. package/dist/test/createSliceMachineManagerMSWHandler.js.map +1 -1
  500. package/package.json +3 -3
  501. package/src/managers/telemetry/types.ts +23 -1
@@ -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":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs","sources":["../../../../../node_modules/file-type/util.js"],"sourcesContent":["export function stringToBytes(string) {\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Buffer} buffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(buffer, offset = 0) {\n\tconst readSum = Number.parseInt(buffer.toString('utf8', 148, 154).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n"],"names":[],"mappings":";;AAAO,SAAS,cAAc,QAAQ;AACrC,SAAO,CAAC,GAAG,MAAM,EAAE,IAAI,eAAa,UAAU,WAAW,CAAC,CAAC;AAC5D;AASO,SAAS,yBAAyB,QAAQ,SAAS,GAAG;AAC5D,QAAM,UAAU,OAAO,SAAS,OAAO,SAAS,QAAQ,KAAK,GAAG,EAAE,QAAQ,SAAS,EAAE,EAAE,KAAI,GAAI,CAAC;AAChG,MAAI,OAAO,MAAM,OAAO,GAAG;AAC1B,WAAO;AAAA,EACP;AAED,MAAI,MAAM,IAAI;AAEd,WAAS,QAAQ,QAAQ,QAAQ,SAAS,KAAK,SAAS;AACvD,WAAO,OAAO,KAAK;AAAA,EACnB;AAED,WAAS,QAAQ,SAAS,KAAK,QAAQ,SAAS,KAAK,SAAS;AAC7D,WAAO,OAAO,KAAK;AAAA,EACnB;AAED,SAAO,YAAY;AACpB;AAMY,MAAC,sBAAsB;AAAA,EAClC,KAAK,CAAC,QAAQ,WAAY,OAAO,SAAS,CAAC,IAAI,MAAU,OAAO,SAAS,CAAC,KAAM,IAAO,OAAO,SAAS,CAAC,KAAM,KAAQ,OAAO,MAAM,KAAM;AAAA,EACzI,KAAK;AACN;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"util.cjs","sources":["../../../../../node_modules/file-type/util.js"],"sourcesContent":["export function stringToBytes(string) {\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Buffer} buffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(buffer, offset = 0) {\n\tconst readSum = Number.parseInt(buffer.toString('utf8', 148, 154).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n"],"names":[],"mappings":";;AAAO,SAAS,cAAc,QAAQ;AACrC,SAAO,CAAC,GAAG,MAAM,EAAE,IAAI,eAAa,UAAU,WAAW,CAAC,CAAC;AAC5D;AASO,SAAS,yBAAyB,QAAQ,SAAS,GAAG;AAC5D,QAAM,UAAU,OAAO,SAAS,OAAO,SAAS,QAAQ,KAAK,GAAG,EAAE,QAAQ,SAAS,EAAE,EAAE,KAAI,GAAI,CAAC;AAChG,MAAI,OAAO,MAAM,OAAO,GAAG;AAC1B,WAAO;AAAA,EACR;AAEA,MAAI,MAAM,IAAI;AAEd,WAAS,QAAQ,QAAQ,QAAQ,SAAS,KAAK,SAAS;AACvD,WAAO,OAAO,KAAK;AAAA,EACpB;AAEA,WAAS,QAAQ,SAAS,KAAK,QAAQ,SAAS,KAAK,SAAS;AAC7D,WAAO,OAAO,KAAK;AAAA,EACpB;AAEA,SAAO,YAAY;AACpB;AAMY,MAAC,sBAAsB;AAAA,EAClC,KAAK,CAAC,QAAQ,WAAY,OAAO,SAAS,CAAC,IAAI,MAAU,OAAO,SAAS,CAAC,KAAM,IAAO,OAAO,SAAS,CAAC,KAAM,KAAQ,OAAO,MAAM,KAAM;AAAA,EACzI,KAAK;AACN;;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../node_modules/file-type/util.js"],"sourcesContent":["export function stringToBytes(string) {\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Buffer} buffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(buffer, offset = 0) {\n\tconst readSum = Number.parseInt(buffer.toString('utf8', 148, 154).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n"],"names":[],"mappings":"AAAO,SAAS,cAAc,QAAQ;AACrC,SAAO,CAAC,GAAG,MAAM,EAAE,IAAI,eAAa,UAAU,WAAW,CAAC,CAAC;AAC5D;AASO,SAAS,yBAAyB,QAAQ,SAAS,GAAG;AAC5D,QAAM,UAAU,OAAO,SAAS,OAAO,SAAS,QAAQ,KAAK,GAAG,EAAE,QAAQ,SAAS,EAAE,EAAE,KAAI,GAAI,CAAC;AAChG,MAAI,OAAO,MAAM,OAAO,GAAG;AAC1B,WAAO;AAAA,EACP;AAED,MAAI,MAAM,IAAI;AAEd,WAAS,QAAQ,QAAQ,QAAQ,SAAS,KAAK,SAAS;AACvD,WAAO,OAAO,KAAK;AAAA,EACnB;AAED,WAAS,QAAQ,SAAS,KAAK,QAAQ,SAAS,KAAK,SAAS;AAC7D,WAAO,OAAO,KAAK;AAAA,EACnB;AAED,SAAO,YAAY;AACpB;AAMY,MAAC,sBAAsB;AAAA,EAClC,KAAK,CAAC,QAAQ,WAAY,OAAO,SAAS,CAAC,IAAI,MAAU,OAAO,SAAS,CAAC,KAAM,IAAO,OAAO,SAAS,CAAC,KAAM,KAAQ,OAAO,MAAM,KAAM;AAAA,EACzI,KAAK;AACN;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"util.js","sources":["../../../../../node_modules/file-type/util.js"],"sourcesContent":["export function stringToBytes(string) {\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Buffer} buffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(buffer, offset = 0) {\n\tconst readSum = Number.parseInt(buffer.toString('utf8', 148, 154).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += buffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n"],"names":[],"mappings":"AAAO,SAAS,cAAc,QAAQ;AACrC,SAAO,CAAC,GAAG,MAAM,EAAE,IAAI,eAAa,UAAU,WAAW,CAAC,CAAC;AAC5D;AASO,SAAS,yBAAyB,QAAQ,SAAS,GAAG;AAC5D,QAAM,UAAU,OAAO,SAAS,OAAO,SAAS,QAAQ,KAAK,GAAG,EAAE,QAAQ,SAAS,EAAE,EAAE,KAAI,GAAI,CAAC;AAChG,MAAI,OAAO,MAAM,OAAO,GAAG;AAC1B,WAAO;AAAA,EACR;AAEA,MAAI,MAAM,IAAI;AAEd,WAAS,QAAQ,QAAQ,QAAQ,SAAS,KAAK,SAAS;AACvD,WAAO,OAAO,KAAK;AAAA,EACpB;AAEA,WAAS,QAAQ,SAAS,KAAK,QAAQ,SAAS,KAAK,SAAS;AAC7D,WAAO,OAAO,KAAK;AAAA,EACpB;AAEA,SAAO,YAAY;AACpB;AAMY,MAAC,sBAAsB;AAAA,EAClC,KAAK,CAAC,QAAQ,WAAY,OAAO,SAAS,CAAC,IAAI,MAAU,OAAO,SAAS,CAAC,KAAM,IAAO,OAAO,SAAS,CAAC,KAAM,KAAQ,OAAO,MAAM,KAAM;AAAA,EACzI,KAAK;AACN;","x_google_ignoreList":[0]}
@@ -1,22 +1,11 @@
1
1
  "use strict";
2
- var __accessCheck = (obj, member, msg) => {
3
- if (!member.has(obj))
4
- throw TypeError("Cannot " + msg);
5
- };
6
- var __privateGet = (obj, member, getter) => {
7
- __accessCheck(obj, member, "read from private field");
8
- return getter ? getter.call(obj) : member.get(obj);
9
- };
10
- var __privateAdd = (obj, member, value) => {
11
- if (member.has(obj))
12
- throw TypeError("Cannot add the same private member more than once");
13
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
14
- };
15
- var __privateSet = (obj, member, value, setter) => {
16
- __accessCheck(obj, member, "write to private field");
17
- setter ? setter.call(obj, value) : member.set(obj, value);
18
- return value;
2
+ var __typeError = (msg) => {
3
+ throw TypeError(msg);
19
4
  };
5
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
6
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
7
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
8
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
20
9
  var _d, _a;
21
10
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
22
11
  const index = require("../fetch-blob/index.cjs");
@@ -30,8 +19,7 @@ var { toStringTag: t, iterator: i, hasInstance: h } = Symbol, r = Math.random, m
30
19
  const FormData = (_a = class {
31
20
  constructor(...a) {
32
21
  __privateAdd(this, _d, []);
33
- if (a.length)
34
- throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`);
22
+ if (a.length) throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`);
35
23
  }
36
24
  get [t]() {
37
25
  return "FormData";
@@ -54,9 +42,7 @@ const FormData = (_a = class {
54
42
  get(a) {
55
43
  x("get", arguments, 1);
56
44
  a += "";
57
- for (var b = __privateGet(this, _d), l = b.length, c = 0; c < l; c++)
58
- if (b[c][0] === a)
59
- return b[c][1];
45
+ for (var b = __privateGet(this, _d), l = b.length, c = 0; c < l; c++) if (b[c][0] === a) return b[c][1];
60
46
  return null;
61
47
  }
62
48
  getAll(a, b) {
@@ -73,8 +59,7 @@ const FormData = (_a = class {
73
59
  }
74
60
  forEach(a, b) {
75
61
  x("forEach", arguments, 1);
76
- for (var [c, d] of this)
77
- a.call(b, d, c, this);
62
+ for (var [c, d] of this) a.call(b, d, c, this);
78
63
  }
79
64
  set(...a) {
80
65
  x("set", arguments, 2);
@@ -90,15 +75,13 @@ const FormData = (_a = class {
90
75
  yield* __privateGet(this, _d);
91
76
  }
92
77
  *keys() {
93
- for (var [a] of this)
94
- yield a;
78
+ for (var [a] of this) yield a;
95
79
  }
96
80
  *values() {
97
- for (var [, a] of this)
98
- yield a;
81
+ for (var [, a] of this) yield a;
99
82
  }
100
83
  }, _d = new WeakMap(), _a);
101
- function formDataToBlob(F, B = index.default) {
84
+ function formDataToBlob(F, B = index.Blob) {
102
85
  var b = `${r()}${r()}`.replace(/\./g, "").slice(-28).padStart(32, "-"), c = [], p = `--${b}\r
103
86
  Content-Disposition: form-data; name="`;
104
87
  F.forEach((v, n) => typeof v == "string" ? c.push(p + e(n) + `"\r
@@ -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,23 +1,12 @@
1
- var __accessCheck = (obj, member, msg) => {
2
- if (!member.has(obj))
3
- throw TypeError("Cannot " + msg);
4
- };
5
- var __privateGet = (obj, member, getter) => {
6
- __accessCheck(obj, member, "read from private field");
7
- return getter ? getter.call(obj) : member.get(obj);
8
- };
9
- var __privateAdd = (obj, member, value) => {
10
- if (member.has(obj))
11
- throw TypeError("Cannot add the same private member more than once");
12
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
- };
14
- var __privateSet = (obj, member, value, setter) => {
15
- __accessCheck(obj, member, "write to private field");
16
- setter ? setter.call(obj, value) : member.set(obj, value);
17
- return value;
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
18
3
  };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
19
8
  var _d, _a;
20
- import Blob from "../fetch-blob/index.js";
9
+ import { Blob } from "../fetch-blob/index.js";
21
10
  import { File } from "../fetch-blob/file.js";
22
11
  /*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */
23
12
  var { toStringTag: t, iterator: i, hasInstance: h } = Symbol, r = Math.random, m = "append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","), f = (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 File([b], c, b) : b] : [a, b + ""]), e = (c, f2) => (f2 ? c : c.replace(/\r?\n|\r/g, "\r\n")).replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"), x = (n, a, e2) => {
@@ -28,8 +17,7 @@ var { toStringTag: t, iterator: i, hasInstance: h } = Symbol, r = Math.random, m
28
17
  const FormData = (_a = class {
29
18
  constructor(...a) {
30
19
  __privateAdd(this, _d, []);
31
- if (a.length)
32
- throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`);
20
+ if (a.length) throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`);
33
21
  }
34
22
  get [t]() {
35
23
  return "FormData";
@@ -52,9 +40,7 @@ const FormData = (_a = class {
52
40
  get(a) {
53
41
  x("get", arguments, 1);
54
42
  a += "";
55
- for (var b = __privateGet(this, _d), l = b.length, c = 0; c < l; c++)
56
- if (b[c][0] === a)
57
- return b[c][1];
43
+ for (var b = __privateGet(this, _d), l = b.length, c = 0; c < l; c++) if (b[c][0] === a) return b[c][1];
58
44
  return null;
59
45
  }
60
46
  getAll(a, b) {
@@ -71,8 +57,7 @@ const FormData = (_a = class {
71
57
  }
72
58
  forEach(a, b) {
73
59
  x("forEach", arguments, 1);
74
- for (var [c, d] of this)
75
- a.call(b, d, c, this);
60
+ for (var [c, d] of this) a.call(b, d, c, this);
76
61
  }
77
62
  set(...a) {
78
63
  x("set", arguments, 2);
@@ -88,12 +73,10 @@ const FormData = (_a = class {
88
73
  yield* __privateGet(this, _d);
89
74
  }
90
75
  *keys() {
91
- for (var [a] of this)
92
- yield a;
76
+ for (var [a] of this) yield a;
93
77
  }
94
78
  *values() {
95
- for (var [, a] of this)
96
- yield a;
79
+ for (var [, a] of this) yield a;
97
80
  }
98
81
  }, _d = new WeakMap(), _a);
99
82
  function formDataToBlob(F, B = Blob) {