@futpib/parser 1.0.2 → 1.0.3

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 (284) hide show
  1. package/.github/copilot-instructions.md +149 -0
  2. package/.github/workflows/copilot-setup-steps.yml +18 -0
  3. package/.github/workflows/main.yml +29 -8
  4. package/.yarn/releases/yarn-4.9.4.cjs +942 -0
  5. package/.yarnrc.yml +1 -1
  6. package/build/allSettledStream.js +1 -1
  7. package/build/allSettledStream.test.js +2 -2
  8. package/build/androidPackageParser.d.ts +1 -1
  9. package/build/androidPackageParser.js +5 -3
  10. package/build/androidPackageParser.test.js +7 -7
  11. package/build/androidPackageUnparser.d.ts +2 -2
  12. package/build/androidPackageUnparser.js +18 -14
  13. package/build/androidPackageUnparser.test.js +7 -7
  14. package/build/arbitrarilySlicedAsyncInterator.js +2 -1
  15. package/build/arbitraryDalvikBytecode.d.ts +4 -0
  16. package/build/arbitraryDalvikBytecode.js +640 -0
  17. package/build/arbitraryDalvikExecutable.d.ts +3 -0
  18. package/build/arbitraryDalvikExecutable.js +282 -0
  19. package/build/arbitraryDosDateTime.js +1 -0
  20. package/build/arbitraryZipStream.js +1 -1
  21. package/build/arrayParser.js +2 -2
  22. package/build/arrayUnparser.d.ts +1 -1
  23. package/build/backsmali.d.ts +3 -1
  24. package/build/backsmali.js +31 -3
  25. package/build/customInvariant.d.ts +2 -1
  26. package/build/customInvariant.js +4 -6
  27. package/build/dalvikBytecodeParser/formatParsers.d.ts +76 -2
  28. package/build/dalvikBytecodeParser/formatParsers.js +146 -11
  29. package/build/dalvikBytecodeParser/formatSizes.d.ts +34 -0
  30. package/build/dalvikBytecodeParser/formatSizes.js +34 -0
  31. package/build/dalvikBytecodeParser/operationFormats.d.ts +225 -0
  32. package/build/dalvikBytecodeParser/operationFormats.js +225 -0
  33. package/build/dalvikBytecodeParser.d.ts +1105 -5
  34. package/build/dalvikBytecodeParser.js +658 -205
  35. package/build/dalvikBytecodeUnparser/formatUnparsers.d.ts +152 -0
  36. package/build/dalvikBytecodeUnparser/formatUnparsers.js +225 -0
  37. package/build/dalvikBytecodeUnparser.d.ts +3 -0
  38. package/build/dalvikBytecodeUnparser.js +642 -0
  39. package/build/dalvikBytecodeUnparser.test.d.ts +1 -0
  40. package/build/dalvikBytecodeUnparser.test.js +25 -0
  41. package/build/dalvikExecutable.d.ts +65 -8
  42. package/build/dalvikExecutable.js +36 -0
  43. package/build/dalvikExecutableParser/stringSyntaxParser.d.ts +1 -1
  44. package/build/dalvikExecutableParser/stringSyntaxParser.js +17 -17
  45. package/build/dalvikExecutableParser/typeParsers.d.ts +2 -1
  46. package/build/dalvikExecutableParser/typeParsers.js +16 -11
  47. package/build/dalvikExecutableParser/typedNumbers.d.ts +85 -69
  48. package/build/dalvikExecutableParser/typedNumbers.js +0 -1
  49. package/build/dalvikExecutableParser.d.ts +2 -2
  50. package/build/dalvikExecutableParser.js +655 -337
  51. package/build/dalvikExecutableParser.test.js +24 -22
  52. package/build/dalvikExecutableParserAgainstSmaliParser.test.js +223 -246
  53. package/build/dalvikExecutableUnparser/annotationUnparsers.d.ts +14 -0
  54. package/build/dalvikExecutableUnparser/annotationUnparsers.js +97 -0
  55. package/build/dalvikExecutableUnparser/poolBuilders.d.ts +49 -0
  56. package/build/dalvikExecutableUnparser/poolBuilders.js +140 -0
  57. package/build/dalvikExecutableUnparser/poolScanners.d.ts +4 -0
  58. package/build/dalvikExecutableUnparser/poolScanners.js +220 -0
  59. package/build/dalvikExecutableUnparser/sectionUnparsers.d.ts +25 -0
  60. package/build/dalvikExecutableUnparser/sectionUnparsers.js +581 -0
  61. package/build/dalvikExecutableUnparser/utils.d.ts +10 -0
  62. package/build/dalvikExecutableUnparser/utils.js +108 -0
  63. package/build/dalvikExecutableUnparser.d.ts +4 -0
  64. package/build/dalvikExecutableUnparser.js +406 -0
  65. package/build/dalvikExecutableUnparser.test.d.ts +1 -0
  66. package/build/dalvikExecutableUnparser.test.js +31 -0
  67. package/build/debugLogInputParser.js +1 -1
  68. package/build/disjunctionParser.d.ts +2 -2
  69. package/build/disjunctionParser.js +2 -2
  70. package/build/elementTerminatedArrayParser.d.ts +2 -2
  71. package/build/elementTerminatedArrayParser.js +1 -1
  72. package/build/elementTerminatedArrayParser.test.js +5 -5
  73. package/build/elementTerminatedSequenceArrayParser.d.ts +2 -2
  74. package/build/elementTerminatedSequenceArrayParser.js +1 -1
  75. package/build/elementTerminatedSequenceArrayParser.test.js +2 -2
  76. package/build/elementTerminatedSequenceParser.d.ts +2 -2
  77. package/build/elementTerminatedSequenceParser.js +1 -1
  78. package/build/elementTerminatedSequenceParser.test.js +2 -2
  79. package/build/endOfInputParser.d.ts +1 -1
  80. package/build/exactElementSwitchParser.d.ts +3 -0
  81. package/build/exactElementSwitchParser.js +22 -0
  82. package/build/fetchCid.js +2 -6
  83. package/build/fetchCid.test.d.ts +1 -0
  84. package/build/fetchCid.test.js +16 -0
  85. package/build/fixedLengthSequenceParser.test.js +2 -2
  86. package/build/hasExecutable.js +2 -2
  87. package/build/highResolutionTimer.js +1 -1
  88. package/build/inputReader.d.ts +1 -1
  89. package/build/inputReader.test.js +33 -45
  90. package/build/javaKeyStoreParser.test.js +6 -6
  91. package/build/jsonParser.js +8 -8
  92. package/build/lazyMessageError.d.ts +48 -0
  93. package/build/lazyMessageError.js +53 -0
  94. package/build/lazyMessageError.test.d.ts +1 -0
  95. package/build/lazyMessageError.test.js +15 -0
  96. package/build/leb128Parser.d.ts +1 -1
  97. package/build/leb128Parser.js +10 -10
  98. package/build/leb128Parser.test.js +7 -7
  99. package/build/negativeLookaheadParser.js +2 -2
  100. package/build/negativeLookaheadParser.test.js +4 -4
  101. package/build/noStackCaptureOverheadError.d.ts +4 -0
  102. package/build/noStackCaptureOverheadError.js +9 -0
  103. package/build/noStackCaptureOverheadError.test.d.ts +1 -0
  104. package/build/noStackCaptureOverheadError.test.js +15 -0
  105. package/build/nonEmptyArrayParser.js +2 -2
  106. package/build/nonEmptyArrayParser.test.js +2 -1
  107. package/build/optionalParser.js +2 -2
  108. package/build/parser.d.ts +2 -1
  109. package/build/parser.js +23 -8
  110. package/build/parser.test.js +78 -29
  111. package/build/parserConsumedSequenceParser.d.ts +1 -1
  112. package/build/parserConsumedSequenceParser.js +2 -2
  113. package/build/parserContext.d.ts +8 -6
  114. package/build/parserContext.js +60 -33
  115. package/build/parserContext.test.js +7 -3
  116. package/build/parserError.d.ts +603 -44
  117. package/build/parserError.js +98 -53
  118. package/build/parserImplementationInvariant.d.ts +1 -1
  119. package/build/parserImplementationInvariant.js +2 -2
  120. package/build/parserInputCompanion.js +2 -2
  121. package/build/promiseCompose.js +1 -2
  122. package/build/separatedArrayParser.js +2 -2
  123. package/build/separatedNonEmptyArrayParser.d.ts +2 -0
  124. package/build/separatedNonEmptyArrayParser.js +40 -0
  125. package/build/separatedNonEmptyArrayParser.test.d.ts +1 -0
  126. package/build/separatedNonEmptyArrayParser.test.js +66 -0
  127. package/build/sequenceBuffer.js +1 -1
  128. package/build/sequenceTerminatedSequenceParser.d.ts +2 -2
  129. package/build/sequenceTerminatedSequenceParser.js +3 -3
  130. package/build/sequenceTerminatedSequenceParser.test.js +1 -1
  131. package/build/sequenceUnparser.d.ts +1 -1
  132. package/build/skipToParser.d.ts +1 -1
  133. package/build/skipToParser.js +2 -2
  134. package/build/sliceBoundedParser.test.js +4 -9
  135. package/build/smali.d.ts +1 -1
  136. package/build/smali.js +6 -2
  137. package/build/smaliParser.d.ts +62 -6
  138. package/build/smaliParser.js +1721 -296
  139. package/build/smaliParser.test.js +338 -43
  140. package/build/stringFromAsyncIterable.d.ts +1 -0
  141. package/build/stringFromAsyncIterable.js +7 -0
  142. package/build/terminatedArrayParser.js +4 -4
  143. package/build/terminatedArrayParser.test.js +7 -7
  144. package/build/toAsyncIterator.js +4 -4
  145. package/build/unionParser.d.ts +1 -1
  146. package/build/unionParser.js +2 -2
  147. package/build/unionParser.test.js +3 -3
  148. package/build/unparser.d.ts +3 -3
  149. package/build/unparser.js +6 -4
  150. package/build/unparser.test.js +7 -19
  151. package/build/unparserContext.d.ts +2 -2
  152. package/build/unparserContext.js +2 -3
  153. package/build/unparserError.d.ts +2 -1
  154. package/build/unparserError.js +2 -1
  155. package/build/unparserImplementationInvariant.d.ts +1 -1
  156. package/build/unparserOutputCompanion.d.ts +1 -1
  157. package/build/unparserOutputCompanion.js +1 -1
  158. package/build/zipParser.js +1 -1
  159. package/build/zipUnparser.d.ts +3 -3
  160. package/build/zipUnparser.js +9 -19
  161. package/build/zipUnparser.test.js +1 -1
  162. package/package.json +19 -26
  163. package/src/allSettledStream.test.ts +2 -2
  164. package/src/allSettledStream.ts +3 -3
  165. package/src/androidPackageParser.test.ts +17 -19
  166. package/src/androidPackageParser.ts +129 -171
  167. package/src/androidPackageUnparser.test.ts +19 -21
  168. package/src/androidPackageUnparser.ts +23 -17
  169. package/src/arbitrarilySlicedAsyncInterable.ts +1 -1
  170. package/src/arbitrarilySlicedAsyncInterator.ts +4 -4
  171. package/src/arbitraryDalvikBytecode.ts +992 -0
  172. package/src/arbitraryDalvikExecutable.ts +434 -0
  173. package/src/arbitraryDosDateTime.ts +1 -0
  174. package/src/arbitraryZipStream.ts +1 -1
  175. package/src/arrayParser.ts +2 -2
  176. package/src/arrayUnparser.ts +2 -2
  177. package/src/backsmali.ts +48 -4
  178. package/src/bsonParser.test.ts +12 -14
  179. package/src/customInvariant.ts +8 -12
  180. package/src/dalvikBytecodeParser/formatParsers.ts +376 -17
  181. package/src/dalvikBytecodeParser/formatSizes.ts +35 -0
  182. package/src/dalvikBytecodeParser/operationFormats.ts +226 -0
  183. package/src/dalvikBytecodeParser.ts +1042 -243
  184. package/src/dalvikBytecodeUnparser/formatUnparsers.ts +442 -0
  185. package/src/dalvikBytecodeUnparser.test.ts +44 -0
  186. package/src/dalvikBytecodeUnparser.ts +758 -0
  187. package/src/dalvikExecutable.ts +110 -48
  188. package/src/dalvikExecutableParser/stringSyntaxParser.ts +33 -33
  189. package/src/dalvikExecutableParser/typeParsers.ts +23 -14
  190. package/src/dalvikExecutableParser/typedNumbers.ts +19 -19
  191. package/src/dalvikExecutableParser.test.ts +60 -60
  192. package/src/dalvikExecutableParser.test.ts.md +6 -6
  193. package/src/dalvikExecutableParser.test.ts.snap +0 -0
  194. package/src/dalvikExecutableParser.ts +911 -434
  195. package/src/dalvikExecutableParserAgainstSmaliParser.test.ts +256 -239
  196. package/src/dalvikExecutableUnparser/annotationUnparsers.ts +135 -0
  197. package/src/dalvikExecutableUnparser/poolBuilders.ts +189 -0
  198. package/src/dalvikExecutableUnparser/poolScanners.ts +297 -0
  199. package/src/dalvikExecutableUnparser/sectionUnparsers.ts +683 -0
  200. package/src/dalvikExecutableUnparser/utils.ts +149 -0
  201. package/src/dalvikExecutableUnparser.test.ts +57 -0
  202. package/src/dalvikExecutableUnparser.ts +581 -0
  203. package/src/debugLogInputParser.ts +1 -1
  204. package/src/disjunctionParser.ts +5 -5
  205. package/src/elementTerminatedArrayParser.test.ts +8 -8
  206. package/src/elementTerminatedArrayParser.ts +2 -2
  207. package/src/elementTerminatedSequenceArrayParser.test.ts +4 -6
  208. package/src/elementTerminatedSequenceArrayParser.ts +2 -2
  209. package/src/elementTerminatedSequenceParser.test.ts +4 -6
  210. package/src/elementTerminatedSequenceParser.ts +2 -2
  211. package/src/endOfInputParser.ts +1 -1
  212. package/src/exactElementSwitchParser.ts +41 -0
  213. package/src/fetchCid.test.ts +20 -0
  214. package/src/fetchCid.ts +3 -7
  215. package/src/fixedLengthSequenceParser.test.ts +10 -12
  216. package/src/hasExecutable.ts +2 -2
  217. package/src/highResolutionTimer.ts +1 -1
  218. package/src/inputReader.test.ts +39 -52
  219. package/src/inputReader.ts +2 -4
  220. package/src/inputReaderState.ts +1 -1
  221. package/src/inspect.ts +1 -1
  222. package/src/javaKeyStoreParser.test.ts +12 -14
  223. package/src/javaKeyStoreParser.ts +2 -6
  224. package/src/jsonParser.test.ts +2 -4
  225. package/src/jsonParser.ts +34 -38
  226. package/src/lazyMessageError.test.ts +21 -0
  227. package/src/lazyMessageError.ts +88 -0
  228. package/src/leb128Parser.test.ts +25 -23
  229. package/src/leb128Parser.ts +19 -19
  230. package/src/negativeLookaheadParser.test.ts +7 -11
  231. package/src/negativeLookaheadParser.ts +2 -2
  232. package/src/noStackCaptureOverheadError.test.ts +17 -0
  233. package/src/noStackCaptureOverheadError.ts +12 -0
  234. package/src/nonEmptyArrayParser.test.ts +3 -2
  235. package/src/nonEmptyArrayParser.ts +2 -2
  236. package/src/optionalParser.ts +2 -2
  237. package/src/parser.test.ts +96 -43
  238. package/src/parser.test.ts.md +13 -6
  239. package/src/parser.test.ts.snap +0 -0
  240. package/src/parser.ts +35 -12
  241. package/src/parserAccessorParser.ts +1 -1
  242. package/src/parserConsumedSequenceParser.ts +3 -3
  243. package/src/parserContext.test.ts +7 -3
  244. package/src/parserContext.ts +82 -48
  245. package/src/parserError.ts +143 -63
  246. package/src/parserImplementationInvariant.ts +3 -3
  247. package/src/parserInputCompanion.ts +2 -2
  248. package/src/promiseCompose.ts +2 -2
  249. package/src/separatedArrayParser.ts +3 -3
  250. package/src/separatedNonEmptyArrayParser.test.ts +117 -0
  251. package/src/separatedNonEmptyArrayParser.ts +61 -0
  252. package/src/sequenceBuffer.test.ts +9 -9
  253. package/src/sequenceBuffer.ts +4 -4
  254. package/src/sequenceTerminatedSequenceParser.test.ts +3 -5
  255. package/src/sequenceTerminatedSequenceParser.ts +4 -4
  256. package/src/sequenceUnparser.ts +2 -2
  257. package/src/skipToParser.ts +2 -2
  258. package/src/sliceBoundedParser.test.ts +4 -12
  259. package/src/sliceBoundedParser.ts +2 -2
  260. package/src/smali.ts +8 -3
  261. package/src/smaliParser.test.ts +377 -66
  262. package/src/smaliParser.test.ts.md +1635 -48
  263. package/src/smaliParser.test.ts.snap +0 -0
  264. package/src/smaliParser.ts +2751 -569
  265. package/src/stringFromAsyncIterable.ts +9 -0
  266. package/src/terminatedArrayParser.test.ts +11 -11
  267. package/src/terminatedArrayParser.ts +5 -7
  268. package/src/toAsyncIterator.ts +8 -8
  269. package/src/uint8Array.ts +2 -3
  270. package/src/unionParser.test.ts +22 -23
  271. package/src/unionParser.ts +6 -8
  272. package/src/unparser.test.ts +18 -34
  273. package/src/unparser.ts +13 -9
  274. package/src/unparserContext.ts +9 -13
  275. package/src/unparserError.ts +2 -1
  276. package/src/unparserImplementationInvariant.ts +1 -1
  277. package/src/unparserOutputCompanion.ts +1 -1
  278. package/src/zip.ts +2 -6
  279. package/src/zipParser.ts +10 -18
  280. package/src/zipUnparser.test.ts +1 -1
  281. package/src/zipUnparser.ts +52 -64
  282. package/tsconfig.json +7 -1
  283. package/xo.config.ts +15 -0
  284. package/.yarn/releases/yarn-4.5.3.cjs +0 -934
@@ -1,58 +1,54 @@
1
1
  import zlib from 'node:zlib';
2
- import { Unparser } from "./unparser.js";
3
- import { Zip, ZipEntry, ZipFileEntry } from "./zip.js";
4
2
  import { Readable } from 'node:stream';
5
3
  import { pipeline } from 'node:stream/promises';
6
- import { ZipEndOfCentralDirectoryRecord, ZipLocalFileHeader } from './zipParser.js';
4
+ import { type Unparser } from './unparser.js';
5
+ import { type Zip, type ZipEntry, type ZipFileEntry } from './zip.js';
6
+ import { type ZipEndOfCentralDirectoryRecord, type ZipLocalFileHeader } from './zipParser.js';
7
7
  import { uint8ArrayAsyncIterableToUint8Array } from './uint8Array.js';
8
8
 
9
9
  const uint16LEUnparser: Unparser<number, Uint8Array> = async function * (uint16LE) {
10
10
  const buffer = Buffer.alloc(2);
11
11
  buffer.writeUInt16LE(uint16LE);
12
12
  yield buffer;
13
- }
13
+ };
14
14
 
15
15
  const uint32LEUnparser: Unparser<number, Uint8Array> = async function * (uint32LE) {
16
16
  const buffer = Buffer.alloc(4);
17
17
  buffer.writeUInt32LE(uint32LE);
18
18
  yield buffer;
19
- }
19
+ };
20
20
 
21
21
  const uint16LEPrefixedUint8ArrayUnparser: Unparser<Uint8Array, Uint8Array> = async function * (uint8Array, unparserContext) {
22
22
  yield * uint16LEUnparser(uint8Array.length, unparserContext);
23
23
  yield uint8Array;
24
- }
24
+ };
25
25
 
26
26
  const uint16LEPrefixedStringUnparser: Unparser<string, Uint8Array> = async function * (string, unparserContext) {
27
27
  yield * uint16LEPrefixedUint8ArrayUnparser(Buffer.from(string, 'utf8'), unparserContext);
28
- }
28
+ };
29
29
 
30
30
  const dosDateTimeUnparser: Unparser<Date, Uint8Array> = async function * (date, unparserContext) {
31
31
  yield * uint16LEUnparser(
32
32
  (
33
33
  date.getUTCSeconds() / 2
34
- | date.getUTCMinutes() << 5
35
- | date.getUTCHours() << 11
34
+ | date.getUTCMinutes() << 5
35
+ | date.getUTCHours() << 11
36
36
  ),
37
37
  unparserContext,
38
38
  );
39
39
  yield * uint16LEUnparser(
40
40
  (
41
41
  date.getUTCDate()
42
- | (date.getUTCMonth() + 1) << 5
43
- | (date.getUTCFullYear() - 1980) << 9
42
+ | (date.getUTCMonth() + 1) << 5
43
+ | (date.getUTCFullYear() - 1980) << 9
44
44
  ),
45
45
  unparserContext,
46
46
  );
47
- }
47
+ };
48
48
 
49
49
  const zipCompressionMethodUnparser: Unparser<'store' | 'deflate', Uint8Array> = async function * (compressionMethod, unparserContext) {
50
- if (compressionMethod === 'store') {
51
- yield * uint16LEUnparser(0, unparserContext);
52
- } else {
53
- yield * uint16LEUnparser(8, unparserContext);
54
- }
55
- }
50
+ yield * (compressionMethod === 'store' ? uint16LEUnparser(0, unparserContext) : uint16LEUnparser(8, unparserContext));
51
+ };
56
52
 
57
53
  export const zipEndOfCentralDirectoryRecordUnparser: Unparser<ZipEndOfCentralDirectoryRecord, Uint8Array> = async function * (zipEndOfCentralDirectoryRecord, unparserContext) {
58
54
  yield Buffer.from('504b0506', 'hex');
@@ -64,7 +60,7 @@ export const zipEndOfCentralDirectoryRecordUnparser: Unparser<ZipEndOfCentralDir
64
60
  yield * uint32LEUnparser(zipEndOfCentralDirectoryRecord.offsetOfStartOfCentralDirectoryWithRespectToTheStartingDiskNumber, unparserContext);
65
61
 
66
62
  yield * uint16LEPrefixedStringUnparser(zipEndOfCentralDirectoryRecord.zipFileComment, unparserContext);
67
- }
63
+ };
68
64
 
69
65
  const zipDataDescriptorUnparser: Unparser<{
70
66
  crc32: number;
@@ -79,7 +75,7 @@ const zipDataDescriptorUnparser: Unparser<{
79
75
  yield * uint32LEUnparser(crc32, unparserContext);
80
76
  yield * uint32LEUnparser(compressedSize, unparserContext);
81
77
  yield * uint32LEUnparser(uncompressedSize, unparserContext);
82
- }
78
+ };
83
79
 
84
80
  const zipLocalFileHeaderUnparser: Unparser<ZipLocalFileHeader, Uint8Array> = async function * ({
85
81
  versionNeededToExtract,
@@ -116,33 +112,29 @@ export const createZipUnparser = ({
116
112
  }: {
117
113
  dataDescriptor?: boolean;
118
114
  } = {}): Unparser<Zip, Uint8Array> => async function * (zip, unparserContext) {
119
- const compressedContentByZipFileEntry = new Map<ZipFileEntry, undefined | Promise<Uint8Array>>(
120
- zip.entries.flatMap(zipEntry => {
121
- if (zipEntry.type !== 'file') {
122
- return [];
123
- }
115
+ const compressedContentByZipFileEntry = new Map<ZipFileEntry, undefined | Promise<Uint8Array>>(zip.entries.flatMap(zipEntry => {
116
+ if (zipEntry.type !== 'file') {
117
+ return [];
118
+ }
124
119
 
125
- if (zipEntry.compression === 'store') {
126
- return [[zipEntry, Promise.resolve(zipEntry.content)]];
127
- }
120
+ if (zipEntry.compression === 'store') {
121
+ return [ [ zipEntry, Promise.resolve(zipEntry.content) ] ];
122
+ }
128
123
 
129
- const uncompressedContent = zipEntry.content;
124
+ const uncompressedContent = zipEntry.content;
130
125
 
131
- const deflate = zlib.createDeflateRaw();
132
- const input = Readable.from(Buffer.from(uncompressedContent));
126
+ const deflate = zlib.createDeflateRaw();
127
+ const input = Readable.from(Buffer.from(uncompressedContent));
133
128
 
134
- const promise = Promise.all([
135
- pipeline(input, deflate),
136
- uint8ArrayAsyncIterableToUint8Array(deflate),
137
- ]);
129
+ const promise = Promise.all([
130
+ pipeline(input, deflate),
131
+ uint8ArrayAsyncIterableToUint8Array(deflate),
132
+ ]);
138
133
 
139
- return [[zipEntry, promise.then(([, compressedContent]) => compressedContent)]];
140
- }),
141
- );
134
+ return [ [ zipEntry, promise.then(([ , compressedContent ]) => compressedContent) ] ];
135
+ }));
142
136
 
143
- const filePathByZipEntry = new Map<ZipEntry, string>(
144
- zip.entries.map(zipEntry => [zipEntry, zipEntry.type === 'file' ? zipEntry.path : zipEntry.path + '/']),
145
- );
137
+ const filePathByZipEntry = new Map<ZipEntry, string>(zip.entries.map(zipEntry => [ zipEntry, zipEntry.type === 'file' ? zipEntry.path : zipEntry.path + '/' ]));
146
138
 
147
139
  const localHeaderPositionByZipEntry = new Map<ZipEntry, number>();
148
140
 
@@ -206,28 +198,24 @@ export const createZipUnparser = ({
206
198
  yield Buffer.from('504b0102', 'hex');
207
199
 
208
200
  if (zipEntry.hostSystem === 'unix') {
209
- yield 0; // zip specification version
210
- yield 3; // host system
201
+ yield 0; // Zip specification version
202
+ yield 3; // Host system
211
203
  } else {
212
204
  yield 0;
213
205
  yield 0;
214
206
  }
215
207
 
216
- yield * uint16LEUnparser(0, unparserContext); // version needed to extract
217
- yield * uint16LEUnparser(0, unparserContext); // general purpose bit flag
208
+ yield * uint16LEUnparser(0, unparserContext); // Version needed to extract
209
+ yield * uint16LEUnparser(0, unparserContext); // General purpose bit flag
218
210
 
219
- if (zipEntry.type === 'file') {
220
- yield * zipCompressionMethodUnparser(zipEntry.compression, unparserContext);
221
- } else {
222
- yield * uint16LEUnparser(0, unparserContext);
223
- }
211
+ yield * (zipEntry.type === 'file' ? zipCompressionMethodUnparser(zipEntry.compression, unparserContext) : uint16LEUnparser(0, unparserContext));
224
212
 
225
213
  yield * dosDateTimeUnparser(zipEntry.date, unparserContext);
226
214
 
227
215
  if (zipEntry.type === 'file') {
228
216
  const compressedContent = await compressedContentByZipFileEntry.get(zipEntry)!;
229
217
 
230
- yield * uint32LEUnparser(0, unparserContext); // crc32 // TODO
218
+ yield * uint32LEUnparser(0, unparserContext); // Crc32 // TODO
231
219
  yield * uint32LEUnparser(compressedContent.length, unparserContext);
232
220
  yield * uint32LEUnparser(zipEntry.content.length, unparserContext);
233
221
  } else {
@@ -245,18 +233,18 @@ export const createZipUnparser = ({
245
233
  const fileCommentBuffer = Buffer.from(zipEntry.comment, 'utf8');
246
234
  yield * uint16LEUnparser(fileCommentBuffer.length, unparserContext);
247
235
 
248
- yield * uint16LEUnparser(0, unparserContext); // disk number start
249
- yield * uint16LEUnparser(0, unparserContext); // internal file attributes
236
+ yield * uint16LEUnparser(0, unparserContext); // Disk number start
237
+ yield * uint16LEUnparser(0, unparserContext); // Internal file attributes
250
238
 
251
239
  if (zipEntry.hostSystem === 'unix') {
252
240
  yield * uint32LEUnparser(
253
241
  (
254
242
  0
255
- | (
256
- zipEntry.type === 'directory'
257
- ? (0b0100_0000_0000_0000 << 16)
258
- : (0b1000_0000_0000_0000 << 16)
259
- )
243
+ | (
244
+ zipEntry.type === 'directory'
245
+ ? (0b0100_0000_0000_0000 << 16)
246
+ : (0b1000_0000_0000_0000 << 16)
247
+ )
260
248
  ) >>> 0,
261
249
  unparserContext,
262
250
  );
@@ -264,11 +252,11 @@ export const createZipUnparser = ({
264
252
  yield * uint32LEUnparser(
265
253
  (
266
254
  0
267
- | (
268
- zipEntry.type === 'directory'
269
- ? 0b0001_0000
270
- : 0
271
- )
255
+ | (
256
+ zipEntry.type === 'directory'
257
+ ? 0b0001_0000
258
+ : 0
259
+ )
272
260
  ),
273
261
  unparserContext,
274
262
  );
@@ -295,6 +283,6 @@ export const createZipUnparser = ({
295
283
  offsetOfStartOfCentralDirectoryWithRespectToTheStartingDiskNumber: startOfCentralDirectoryPosition,
296
284
  zipFileComment: zip.comment,
297
285
  }, unparserContext);
298
- }
286
+ };
299
287
 
300
288
  export const zipUnparser = createZipUnparser();
package/tsconfig.json CHANGED
@@ -105,5 +105,11 @@
105
105
  /* Completeness */
106
106
  // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
107
107
  "skipLibCheck": true /* Skip type checking all .d.ts files. */
108
- }
108
+ },
109
+ "include": [
110
+ "src/**/*"
111
+ ],
112
+ "exclude": [
113
+ "xo.config.ts"
114
+ ]
109
115
  }
package/xo.config.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { createRequire } from 'node:module';
2
+
3
+ const require = createRequire(import.meta.url);
4
+ const tsOverridesModule = require('eslint-config-xo-typescript-overrides');
5
+
6
+ const tsOverrides = tsOverridesModule.default || tsOverridesModule;
7
+
8
+ export default [
9
+ ...tsOverrides,
10
+ {
11
+ rules: {
12
+ 'ava/no-ignored-test-files': 'off',
13
+ },
14
+ },
15
+ ];