@stryke/hash 0.12.14 → 0.12.22

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 (86) hide show
  1. package/CHANGELOG.md +384 -0
  2. package/README.md +18 -9
  3. package/dist/digest-311IQaur.mjs +2 -0
  4. package/dist/digest-311IQaur.mjs.map +1 -0
  5. package/dist/digest-CG1Sk96A.d.mts +32 -0
  6. package/dist/digest-CG1Sk96A.d.mts.map +1 -0
  7. package/dist/digest-REorjd4v.cjs +1 -0
  8. package/dist/digest-Yy26O9oW.d.cts +32 -0
  9. package/dist/digest-Yy26O9oW.d.cts.map +1 -0
  10. package/dist/digest.cjs +1 -36
  11. package/dist/digest.d.cts +2 -0
  12. package/dist/digest.d.mts +2 -0
  13. package/dist/digest.mjs +1 -1
  14. package/dist/{etag.d.ts → etag-BdoEX_I_.d.cts} +6 -2
  15. package/dist/etag-BdoEX_I_.d.cts.map +1 -0
  16. package/dist/etag-DXmoR6hr.mjs +2 -0
  17. package/dist/etag-DXmoR6hr.mjs.map +1 -0
  18. package/dist/etag-Kuj0WZon.d.mts +22 -0
  19. package/dist/etag-Kuj0WZon.d.mts.map +1 -0
  20. package/dist/etag-SIhKWCBx.cjs +1 -0
  21. package/dist/etag.cjs +1 -23
  22. package/dist/etag.d.cts +2 -0
  23. package/dist/etag.d.mts +2 -0
  24. package/dist/etag.mjs +1 -1
  25. package/dist/hash-files-BMmt9LzB.mjs +2 -0
  26. package/dist/hash-files-BMmt9LzB.mjs.map +1 -0
  27. package/dist/hash-files-C8KCroZK.d.mts +26 -0
  28. package/dist/hash-files-C8KCroZK.d.mts.map +1 -0
  29. package/dist/hash-files-DMXzIbQw.d.cts +26 -0
  30. package/dist/hash-files-DMXzIbQw.d.cts.map +1 -0
  31. package/dist/hash-files-DNDrDY17.cjs +1 -0
  32. package/dist/hash-files.cjs +1 -19
  33. package/dist/hash-files.d.cts +2 -0
  34. package/dist/hash-files.d.mts +2 -0
  35. package/dist/hash-files.mjs +1 -1
  36. package/dist/index.cjs +1 -71
  37. package/dist/index.d.cts +7 -0
  38. package/dist/index.d.mts +7 -0
  39. package/dist/index.mjs +1 -1
  40. package/dist/{md5.d.ts → md5-CCxA7tZv.d.cts} +5 -1
  41. package/dist/md5-CCxA7tZv.d.cts.map +1 -0
  42. package/dist/md5-C_8IsDev.d.mts +12 -0
  43. package/dist/md5-C_8IsDev.d.mts.map +1 -0
  44. package/dist/md5-CnYTBU9u.mjs +2 -0
  45. package/dist/md5-CnYTBU9u.mjs.map +1 -0
  46. package/dist/md5-Cwdph7YU.cjs +1 -0
  47. package/dist/md5.cjs +1 -10
  48. package/dist/md5.d.cts +2 -0
  49. package/dist/md5.d.mts +2 -0
  50. package/dist/md5.mjs +1 -1
  51. package/dist/murmurhash-CVcuhG5F.cjs +1 -0
  52. package/dist/murmurhash-CoNWpOwZ.mjs +2 -0
  53. package/dist/murmurhash-CoNWpOwZ.mjs.map +1 -0
  54. package/dist/murmurhash-D6qhmMhz.d.mts +23 -0
  55. package/dist/murmurhash-D6qhmMhz.d.mts.map +1 -0
  56. package/dist/murmurhash-dzYfmtjT.d.cts +23 -0
  57. package/dist/murmurhash-dzYfmtjT.d.cts.map +1 -0
  58. package/dist/murmurhash.cjs +1 -12
  59. package/dist/murmurhash.d.cts +2 -0
  60. package/dist/murmurhash.d.mts +2 -0
  61. package/dist/murmurhash.mjs +1 -1
  62. package/dist/neutral.cjs +1 -49
  63. package/dist/neutral.d.cts +5 -0
  64. package/dist/neutral.d.mts +5 -0
  65. package/dist/neutral.mjs +1 -1
  66. package/dist/src-GI5wB-mz.mjs +2 -0
  67. package/dist/src-GI5wB-mz.mjs.map +1 -0
  68. package/dist/src-QUlAu3to.cjs +1 -0
  69. package/dist/xx-hash--6giOvM7.cjs +1 -0
  70. package/dist/xx-hash-BnLXga7m.d.cts +7 -0
  71. package/dist/xx-hash-BnLXga7m.d.cts.map +1 -0
  72. package/dist/xx-hash-DyeY-GKZ.d.mts +7 -0
  73. package/dist/xx-hash-DyeY-GKZ.d.mts.map +1 -0
  74. package/dist/xx-hash-SyVhkkcA.mjs +2 -0
  75. package/dist/xx-hash-SyVhkkcA.mjs.map +1 -0
  76. package/dist/xx-hash.cjs +1 -18
  77. package/dist/xx-hash.d.cts +2 -0
  78. package/dist/xx-hash.d.mts +2 -0
  79. package/dist/xx-hash.mjs +1 -1
  80. package/package.json +26 -146
  81. package/dist/digest.d.ts +0 -28
  82. package/dist/hash-files.d.ts +0 -18
  83. package/dist/index.d.ts +0 -14
  84. package/dist/murmurhash.d.ts +0 -19
  85. package/dist/neutral.d.ts +0 -4
  86. package/dist/xx-hash.d.ts +0 -3
package/CHANGELOG.md ADDED
@@ -0,0 +1,384 @@
1
+ ![Storm Software's logo banner](https://public.storm-cdn.com/storm-software/banner-1280x320-optimized.gif)
2
+
3
+ # Changelog for Stryke - Hash
4
+
5
+ ## [0.12.21](https://github.com/storm-software/stryke/releases/tag/hash%400.12.21) (12/07/2025)
6
+
7
+ ### Updated Dependencies
8
+
9
+ - Updated **convert** to **v0.6.19**
10
+ - Updated **fs** to **v0.33.15**
11
+
12
+ ## [0.12.20](https://github.com/storm-software/stryke/releases/tag/hash%400.12.20) (12/07/2025)
13
+
14
+ ### Miscellaneous
15
+
16
+ - **monorepo:** Format monorepo source files
17
+ ([9428936](https://github.com/storm-software/stryke/commit/9428936))
18
+
19
+ ### Updated Dependencies
20
+
21
+ - Updated **convert** to **v0.6.18**
22
+ - Updated **fs** to **v0.33.14**
23
+
24
+ ## [0.12.19](https://github.com/storm-software/stryke/releases/tag/hash%400.12.19) (12/06/2025)
25
+
26
+ ### Features
27
+
28
+ - **tools-nx:** Resolved issue inferring build command-line arguments for local
29
+ packages ([de00278](https://github.com/storm-software/stryke/commit/de00278))
30
+
31
+ ### Updated Dependencies
32
+
33
+ - Updated **convert** to **v0.6.17**
34
+ - Updated **fs** to **v0.33.13**
35
+
36
+ ## [0.12.18](https://github.com/storm-software/stryke/releases/tag/hash%400.12.18) (12/06/2025)
37
+
38
+ ### Updated Dependencies
39
+
40
+ - Updated **convert** to **v0.6.16**
41
+ - Updated **fs** to **v0.33.12**
42
+
43
+ ## [0.12.17](https://github.com/storm-software/stryke/releases/tag/hash%400.12.17) (12/05/2025)
44
+
45
+ ### Updated Dependencies
46
+
47
+ - Updated **convert** to **v0.6.15**
48
+ - Updated **fs** to **v0.33.11**
49
+
50
+ ## [0.12.16](https://github.com/storm-software/stryke/releases/tag/hash%400.12.16) (12/05/2025)
51
+
52
+ ### Features
53
+
54
+ - **monorepo:** Update repository to use `tsdown` to build/bundle packages
55
+ ([8ceb909](https://github.com/storm-software/stryke/commit/8ceb909))
56
+
57
+ ### Updated Dependencies
58
+
59
+ - Updated **convert** to **v0.6.14**
60
+ - Updated **fs** to **v0.33.10**
61
+
62
+ ## [0.12.15](https://github.com/storm-software/stryke/releases/tag/hash%400.12.15) (12/01/2025)
63
+
64
+ ### Updated Dependencies
65
+
66
+ - Updated **convert** to **v0.6.13**
67
+ - Updated **fs** to **v0.33.9**
68
+
69
+ ## [0.12.14](https://github.com/storm-software/stryke/releases/tag/hash%400.12.14) (11/30/2025)
70
+
71
+ ### Updated Dependencies
72
+
73
+ - Updated **convert** to **v0.6.12**
74
+ - Updated **fs** to **v0.33.8**
75
+
76
+ ## [0.12.13](https://github.com/storm-software/stryke/releases/tag/hash%400.12.13) (11/30/2025)
77
+
78
+ ### Updated Dependencies
79
+
80
+ - Updated **convert** to **v0.6.11**
81
+ - Updated **fs** to **v0.33.7**
82
+
83
+ ## [0.12.12](https://github.com/storm-software/stryke/releases/tag/hash%400.12.12) (11/30/2025)
84
+
85
+ ### Updated Dependencies
86
+
87
+ - Updated **convert** to **v0.6.10**
88
+ - Updated **fs** to **v0.33.6**
89
+
90
+ ## [0.12.11](https://github.com/storm-software/stryke/releases/tag/hash%400.12.11) (11/30/2025)
91
+
92
+ ### Updated Dependencies
93
+
94
+ - Updated **convert** to **v0.6.9**
95
+ - Updated **fs** to **v0.33.5**
96
+
97
+ ## [0.12.10](https://github.com/storm-software/stryke/releases/tag/hash%400.12.10) (11/24/2025)
98
+
99
+ ### Updated Dependencies
100
+
101
+ - Updated **convert** to **v0.6.8**
102
+ - Updated **fs** to **v0.33.4**
103
+
104
+ ## [0.12.9](https://github.com/storm-software/stryke/releases/tag/hash%400.12.9) (11/21/2025)
105
+
106
+ ### Updated Dependencies
107
+
108
+ - Updated **convert** to **v0.6.7**
109
+ - Updated **fs** to **v0.33.3**
110
+
111
+ ## [0.12.8](https://github.com/storm-software/stryke/releases/tag/hash%400.12.8) (11/21/2025)
112
+
113
+ ### Updated Dependencies
114
+
115
+ - Updated **convert** to **v0.6.6**
116
+ - Updated **fs** to **v0.33.2**
117
+
118
+ ## [0.12.7](https://github.com/storm-software/stryke/releases/tag/hash%400.12.7) (11/21/2025)
119
+
120
+ ### Updated Dependencies
121
+
122
+ - Updated **fs** to **v0.33.1**
123
+
124
+ ## [0.12.6](https://github.com/storm-software/stryke/releases/tag/hash%400.12.6) (11/21/2025)
125
+
126
+ ### Updated Dependencies
127
+
128
+ - Updated **convert** to **v0.6.5**
129
+ - Updated **fs** to **v0.33.0**
130
+
131
+ ## [0.12.5](https://github.com/storm-software/stryke/releases/tag/hash%400.12.5) (11/21/2025)
132
+
133
+ ### Updated Dependencies
134
+
135
+ - Updated **convert** to **v0.6.4**
136
+ - Updated **fs** to **v0.32.15**
137
+
138
+ ## [0.12.4](https://github.com/storm-software/stryke/releases/tag/hash%400.12.4) (11/21/2025)
139
+
140
+ ### Updated Dependencies
141
+
142
+ - Updated **convert** to **v0.6.3**
143
+ - Updated **fs** to **v0.32.14**
144
+
145
+ ## [0.12.3](https://github.com/storm-software/stryke/releases/tag/hash%400.12.3) (11/16/2025)
146
+
147
+ ### Updated Dependencies
148
+
149
+ - Updated **fs** to **v0.32.13**
150
+
151
+ ## [0.12.2](https://github.com/storm-software/stryke/releases/tag/hash%400.12.2) (11/16/2025)
152
+
153
+ ### Updated Dependencies
154
+
155
+ - Updated **convert** to **v0.6.2**
156
+ - Updated **fs** to **v0.32.12**
157
+
158
+ ## [0.12.1](https://github.com/storm-software/stryke/releases/tag/hash%400.12.1) (11/08/2025)
159
+
160
+ ### Updated Dependencies
161
+
162
+ - Updated **convert** to **v0.6.1**
163
+ - Updated **fs** to **v0.32.11**
164
+
165
+ ## [0.12.0](https://github.com/storm-software/stryke/releases/tag/hash%400.12.0) (2025-09-19)
166
+
167
+ ### Features
168
+
169
+ - **hash:** Split package between `neutral` and `node` exports
170
+ ([870bbeb](https://github.com/storm-software/stryke/commit/870bbeb))
171
+
172
+ ## [0.11.0](https://github.com/storm-software/stryke/releases/tag/hash%400.11.0) (2025-09-07)
173
+
174
+ ### Features
175
+
176
+ - **hash:** Added the `etag` helper utility
177
+ ([20ccaae](https://github.com/storm-software/stryke/commit/20ccaae))
178
+
179
+ ![Storm Software](https://public.storm-cdn.com/brand-banner.png)
180
+
181
+ # Changelog for Stryke - Hash
182
+
183
+ ## [0.10.0](https://github.com/storm-software/stryke/releases/tag/hash%400.10.0) (2025-07-04)
184
+
185
+ ### Features
186
+
187
+ - **hash:** Added the 'MD5' hash utility function
188
+ ([1b62648](https://github.com/storm-software/stryke/commit/1b62648))
189
+
190
+ ## [0.9.7](https://github.com/storm-software/stryke/releases/tag/hash%400.9.7) (2025-06-17)
191
+
192
+ ### Miscellaneous
193
+
194
+ - **monorepo:** Reformat repository packages
195
+
196
+ ## [0.9.6](https://github.com/storm-software/stryke/releases/tag/hash%400.9.6) (2025-06-12)
197
+
198
+ ### Miscellaneous
199
+
200
+ - **monorepo:** Reformat the repository's README markdown files
201
+ - **monorepo:** Run format script on repository
202
+
203
+ ## [0.9.5](https://github.com/storm-software/stryke/releases/tag/hash%400.9.5) (2025-06-10)
204
+
205
+ ### Miscellaneous
206
+
207
+ - **hash:** Update package formatting
208
+
209
+ ## [0.9.4](https://github.com/storm-software/stryke/releases/tag/hash%400.9.4) (2025-06-06)
210
+
211
+ ### Miscellaneous
212
+
213
+ - **monorepo:** Run workspace formatting in package
214
+
215
+ ## [0.9.3](https://github.com/storm-software/stryke/releases/tag/hash%400.9.3) (2025-05-12)
216
+
217
+ ### Miscellaneous
218
+
219
+ - **monorepo:** Reformat monorepo source code
220
+
221
+ ## [0.9.2](https://github.com/storm-software/stryke/releases/tag/hash%400.9.2) (2025-04-10)
222
+
223
+ ### Bug Fixes
224
+
225
+ - **hash:** Resolved issue with invalid option names in `hashDirectory`
226
+ ([0181506](https://github.com/storm-software/stryke/commit/0181506))
227
+
228
+ ## [0.9.1](https://github.com/storm-software/stryke/releases/tag/hash%400.9.1) (2025-04-10)
229
+
230
+ ### Miscellaneous
231
+
232
+ - **monorepo:** Format the repository's files
233
+ ([1384f3e](https://github.com/storm-software/stryke/commit/1384f3e))
234
+
235
+ ## [0.9.0](https://github.com/storm-software/stryke/releases/tag/hash%400.9.0) (2025-04-02)
236
+
237
+ ### Features
238
+
239
+ - **hash:** Update hash function to use `ohash` package
240
+ ([1e4efa0](https://github.com/storm-software/stryke/commit/1e4efa0))
241
+
242
+ ## [0.8.4](https://github.com/storm-software/stryke/releases/tag/hash%400.8.4) (2025-03-28)
243
+
244
+ ### Miscellaneous
245
+
246
+ - **monorepo:** Reformat the source files in repository
247
+ ([bb8df2c](https://github.com/storm-software/stryke/commit/bb8df2c))
248
+
249
+ ## [0.8.3](https://github.com/storm-software/stryke/releases/tag/hash%400.8.3) (2025-03-23)
250
+
251
+ ### Bug Fixes
252
+
253
+ - **monorepo:** Resolve issue with TypeScript compilation
254
+ ([72e995f](https://github.com/storm-software/stryke/commit/72e995f))
255
+
256
+ ## [0.8.2](https://github.com/storm-software/stryke/releases/tag/hash%400.8.2) (2025-03-23)
257
+
258
+ ### Miscellaneous
259
+
260
+ - **monorepo:** Update base storm software packages
261
+ ([8942201](https://github.com/storm-software/stryke/commit/8942201))
262
+
263
+ ## 0.8.1 (2025-03-13)
264
+
265
+ ### Miscellaneous
266
+
267
+ - **monorepo:** Format monorepo project files
268
+ ([f28fdbe](https://github.com/storm-software/stryke/commit/f28fdbe))
269
+
270
+ ## 0.8.0 (2025-03-13)
271
+
272
+ ### Features
273
+
274
+ - **monorepo:** Split `types` project into `type-checks` and `convert` packages
275
+ ([fcc5832](https://github.com/storm-software/stryke/commit/fcc5832))
276
+ - **fs:** Moved the helper functions to root package directory
277
+ ([9e77f62](https://github.com/storm-software/stryke/commit/9e77f62))
278
+
279
+ ## 0.7.3 (2025-03-13)
280
+
281
+ ### Miscellaneous
282
+
283
+ - **monorepo:** Reformat monorepo package files
284
+ ([a453428](https://github.com/storm-software/stryke/commit/a453428))
285
+
286
+ ## 0.7.2 (2025-03-13)
287
+
288
+ ### Bug Fixes
289
+
290
+ - **path:** Resolve issue formatting paths in `joinPaths` helper
291
+ ([0270f8d](https://github.com/storm-software/stryke/commit/0270f8d))
292
+
293
+ ## 0.7.1 (2025-03-07)
294
+
295
+ ### Bug Fixes
296
+
297
+ - **hash:** Resolve issue with invalid file operations
298
+ ([7d85143](https://github.com/storm-software/stryke/commit/7d85143))
299
+
300
+ ## 0.7.0 (2025-03-06)
301
+
302
+ ### Features
303
+
304
+ - **hash:** Added additional patterns to `ignores` list for `hashDirectory`
305
+ function ([649700f](https://github.com/storm-software/stryke/commit/649700f))
306
+
307
+ ## 0.6.0 (2025-03-06)
308
+
309
+ ### Features
310
+
311
+ - **fs:** Added the options parameter to the `listFiles` helper function
312
+ ([630be63](https://github.com/storm-software/stryke/commit/630be63))
313
+
314
+ ## 0.5.1 (2025-02-26)
315
+
316
+ ### Miscellaneous
317
+
318
+ - **monorepo:** Reformat monorepo files with `prettier`
319
+ ([b5d0302](https://github.com/storm-software/stryke/commit/b5d0302))
320
+
321
+ ## 0.5.0 (2025-02-26)
322
+
323
+ ### Features
324
+
325
+ - **fs:** Added `listFiles` helper function
326
+ ([dc1b847](https://github.com/storm-software/stryke/commit/dc1b847))
327
+ - **hash:** Added the `hashFiles` and renamed `hashDirectory` helpers
328
+ ([15cc347](https://github.com/storm-software/stryke/commit/15cc347))
329
+
330
+ ## 0.4.0 (2025-02-26)
331
+
332
+ ### Features
333
+
334
+ - **hash:** Added the `hashFolder` function
335
+ ([c6e4ff3](https://github.com/storm-software/stryke/commit/c6e4ff3))
336
+
337
+ ## 0.3.0 (2025-02-23)
338
+
339
+ ### Features
340
+
341
+ - **monorepo:** Update base ESLint packages and run on files
342
+ ([c59cb8e](https://github.com/storm-software/stryke/commit/c59cb8e))
343
+
344
+ ## 0.2.4 (2025-02-17)
345
+
346
+ ### Miscellaneous
347
+
348
+ - **monorepo:** Reformat monorepo files
349
+ ([1db5e06](https://github.com/storm-software/stryke/commit/1db5e06))
350
+
351
+ ## 0.2.3 (2025-02-15)
352
+
353
+ ### Miscellaneous
354
+
355
+ - **monorepo:** Reformat monorepo files
356
+ ([69ed6b7](https://github.com/storm-software/stryke/commit/69ed6b7))
357
+
358
+ ## 0.2.2 (2025-02-15)
359
+
360
+ ### Bug Fixes
361
+
362
+ - **hash:** Resolve issue creating hash objects
363
+ ([e9045a9](https://github.com/storm-software/stryke/commit/e9045a9))
364
+
365
+ ## 0.2.1 (2025-02-15)
366
+
367
+ ### Miscellaneous
368
+
369
+ - **monorepo:** Reformat workspace files
370
+ ([ad2d6a9](https://github.com/storm-software/stryke/commit/ad2d6a9))
371
+
372
+ ## 0.2.0 (2025-02-12)
373
+
374
+ ### Features
375
+
376
+ - **monorepo:** Upgrade package manager and dependencies
377
+ ([a2e8a3b](https://github.com/storm-software/stryke/commit/a2e8a3b))
378
+
379
+ ## 0.1.1 (2025-02-12)
380
+
381
+ ### Bug Fixes
382
+
383
+ - **hash:** Resolve issue with invalid object hash
384
+ ([ac12109](https://github.com/storm-software/stryke/commit/ac12109))
package/README.md CHANGED
@@ -3,7 +3,13 @@
3
3
  <!-- markdownlint-disable -->
4
4
 
5
5
 
6
- <div align="center"><img src="https://public.storm-cdn.com/storm-banner.gif" width="100%" alt="Storm Software" /></div>
6
+ <div align="center">
7
+ <picture>
8
+ <source media="(prefers-color-scheme: dark)" srcset="https://public.storm-cdn.com/storm-software/banner-1280x640-dark-optimized.gif">
9
+ <source media="(prefers-color-scheme: light)" srcset="https://public.storm-cdn.com/storm-software/banner-1280x640-light-optimized.gif">
10
+ <img src="https://public.storm-cdn.com/storm-software/banner-1280x640-dark-optimized.gif" width="100%" alt="Storm Software" />
11
+ </picture>
12
+ </div>
7
13
  <br />
8
14
 
9
15
  <div align="center">
@@ -16,13 +22,13 @@
16
22
  </div>
17
23
 
18
24
  <br />
19
- This package is part of Storm Software's **🌩️ Stryke** monorepo. Stryke packages TypeScript utility packages with shared functionality common to many Storm Software applications.
25
+ This package is part of Storm Software's **💥 Stryke** monorepo. Stryke packages TypeScript utility packages with shared functionality common to many Storm Software applications.
20
26
 
21
27
  <br />
22
28
 
23
29
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
24
30
 
25
- [![Version](https://img.shields.io/badge/version-0.9.6-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/stryke/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
31
+ [![Version](https://img.shields.io/badge/version-0.12.19-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/stryke/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
26
32
 
27
33
  > [!IMPORTANT] Important
28
34
  > This repository, and the apps, libraries, and tools contained within, is still in it's initial development phase. As a result, bugs and issues are expected with it's usage. When the main development phase completes, a proper release will be performed, the packages will be available through NPM (and other distributions), and this message will be removed. However, in the meantime, please feel free to report any issues you may come across.
@@ -92,10 +98,10 @@ yarn add -D @stryke/hash
92
98
 
93
99
  ## Reduced Package Size
94
100
 
95
- This project uses [tsup](https://tsup.egoist.dev/) to package the source code
96
- due to its ability to remove unused code and ship smaller javascript files
97
- thanks to code splitting. This helps to greatly reduce the size of the package
98
- and to make it easier to use in other projects.
101
+ This project uses [tsdown](https://tsdown.dev) to package the source code due to
102
+ its ability to remove unused code and ship smaller javascript files thanks to
103
+ code splitting. This helps to greatly reduce the size of the package and to make
104
+ it easier to use in other projects.
99
105
 
100
106
  ## Development
101
107
 
@@ -236,10 +242,13 @@ specification. Contributions of any kind welcome!
236
242
  <br />
237
243
 
238
244
  <hr />
239
- <br />
240
245
 
241
246
  <div align="center">
242
- <img src="https://public.storm-cdn.com/logo-banner.png" width="100%" alt="Storm Software" />
247
+ <picture>
248
+ <source media="(prefers-color-scheme: dark)" srcset="https://public.storm-cdn.com/storm-software/banner-1280x320-dark-optimized.webp">
249
+ <source media="(prefers-color-scheme: light)" srcset="https://public.storm-cdn.com/storm-software/banner-1280x320-light-optimized.webp">
250
+ <img src="https://public.storm-cdn.com/storm-software/banner-1280x320-dark-optimized.webp" width="100%" alt="Storm Software" />
251
+ </picture>
243
252
  </div>
244
253
  <br />
245
254
 
@@ -0,0 +1,2 @@
1
+ function e(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=t.byteLength;if(n<65535)return String.fromCharCode.apply(null,t);let r=``;for(let e=0;e<n;e++)r+=String.fromCharCode(t[e]);return r}function t(e){return Uint8Array.from([...encodeURIComponent(e)].map(e=>e.codePointAt(0)))}new TextEncoder,new TextDecoder;function n(e){return new a(e)}async function r(n,r=`SHA-512`){return e(await globalThis.crypto.subtle.digest(r,t(n)))}const i=r;var a=class{#e=[];#t;constructor(e){this.#t=e}update(e){this.#e.push(e)}async digest(){let e=new Uint8Array(this.#e.reduce((e,t)=>e+t.length,0)),t=0;for(let n of this.#e)e.set(n,t),t+=n.length;let n=await globalThis.crypto.subtle.digest(this.#t,e);return new Uint8Array(n)}};export{i,n,r,a as t};
2
+ //# sourceMappingURL=digest-311IQaur.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-311IQaur.mjs","names":["#algorithm","#chunks"],"sources":["../../convert/src/array-buffer-to-string.ts","../../convert/src/string-to-uint8-array.ts","../../convert/src/string-to-utf8-array.ts","../../convert/src/utf8-array-to-string.ts","../src/digest.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\n/**\n * Convert an ArrayBuffer or Uint8Array to a string\n *\n * @param buffer - The ArrayBuffer or Uint8Array to convert\n * @returns The converted string\n */\nexport function arrayBufferToString(\n buffer: ArrayBuffer | ArrayBufferLike | Uint8Array\n): string {\n const bytes =\n buffer instanceof Uint8Array\n ? buffer\n : new Uint8Array(buffer as ArrayBufferLike);\n const len = bytes.byteLength;\n if (len < 65535) {\n return String.fromCharCode.apply(null, bytes as unknown as number[]);\n }\n let binary = \"\";\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]!);\n }\n return binary;\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\n/**\n * Convert a string to Uint8Array\n *\n * @param text - The text to convert\n * @returns The converted Uint8Array\n */\nexport function stringToUint8Array(text: string): Uint8Array {\n return Uint8Array.from(\n [...encodeURIComponent(text)].map(letter => letter.codePointAt(0)!)\n );\n}\n\n/**\n * Convert a binary string to Uint8Array\n *\n * @param binary - The binary string to convert\n * @returns The converted Uint8Array\n */\nexport function binaryStringToUint8Array(binary: string): Uint8Array {\n const len = binary.length;\n const arr = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = binary.charCodeAt(i);\n }\n return arr;\n}\n\n/**\n * Convert a base64 string to a Uint8Array\n *\n * @param data - The base64 string to convert\n * @returns The converted Uint8Array\n */\nexport function base64StringToUint8Array(data: string): Uint8Array {\n return stringToUint8Array(atob(data));\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nconst encoder = new TextEncoder();\n\n/**\n * Convert a string to a utf-8 array\n *\n * @param input - The string to convert\n * @returns The converted utf-8 array\n */\nexport function stringToUtf8Array(input: string): Uint8Array {\n return encoder.encode(input);\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nconst decoder = new TextDecoder();\n\n/**\n * Convert a utf-8 array to string\n *\n * @param input - Utf-8 Array\n * @returns The converted string\n */\nexport function utf8ArrayToString(\n input: NodeJS.ArrayBufferView | ArrayBuffer\n): string {\n return decoder.decode(input);\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n arrayBufferToString,\n stringToUint8Array\n} from \"@stryke/convert/neutral\";\n\nexport type AlgorithmIdentifier = \"SHA-256\" | \"SHA-384\" | \"SHA-512\";\n\n/**\n * Creates a new hash object for the specified algorithm.\n *\n * @param algorithm - The algorithm to use for the hash.\n * @returns A new hash object.\n */\nexport function createHasher(algorithm: AlgorithmIdentifier): Hasher {\n return new Hasher(algorithm);\n}\n\n/**\n * Creates a new hash object for the specified algorithm.\n *\n * @remarks\n * This function uses the Web Crypto API to create a hash of the input data.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest\n *\n * @param data - The data to hash.\n * @param algorithm - The algorithm to use for the hash.\n * @returns A hash string representation of the `data` parameter.\n */\nexport async function digest(\n data: string,\n algorithm: AlgorithmIdentifier = \"SHA-512\"\n): Promise<string> {\n const arrayBuffer = await globalThis.crypto.subtle.digest(\n algorithm,\n stringToUint8Array(data) as BufferSource\n );\n\n return arrayBufferToString(arrayBuffer);\n}\n\nexport const hash = digest;\n\nexport class Hasher {\n #chunks: Uint8Array[] = [];\n\n #algorithm: AlgorithmIdentifier;\n\n constructor(algorithm: AlgorithmIdentifier) {\n this.#algorithm = algorithm;\n }\n\n update(data: Uint8Array): void {\n this.#chunks.push(data);\n }\n\n async digest(): Promise<Uint8Array> {\n const data = new Uint8Array(\n this.#chunks.reduce((acc, chunk) => acc + chunk.length, 0)\n );\n let offset = 0;\n for (const chunk of this.#chunks) {\n data.set(chunk, offset);\n offset += chunk.length;\n }\n const arrayBuffer = await globalThis.crypto.subtle.digest(\n this.#algorithm,\n data\n );\n\n return new Uint8Array(arrayBuffer);\n }\n}\n"],"mappings":"AAwBA,SAAgB,EACd,EACQ,CACR,IAAM,EACJ,aAAkB,WACd,EACA,IAAI,WAAW,EAA0B,CACzC,EAAM,EAAM,WAClB,GAAI,EAAM,MACR,OAAO,OAAO,aAAa,MAAM,KAAM,EAA6B,CAEtE,IAAI,EAAS,GACb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IACvB,GAAU,OAAO,aAAa,EAAM,GAAI,CAE1C,OAAO,ECfT,SAAgB,EAAmB,EAA0B,CAC3D,OAAO,WAAW,KAChB,CAAC,GAAG,mBAAmB,EAAK,CAAC,CAAC,IAAI,GAAU,EAAO,YAAY,EAAE,CAAE,CACpE,CCTa,IAAI,YCAJ,IAAI,YCapB,SAAgB,EAAa,EAAwC,CACnE,OAAO,IAAI,EAAO,EAAU,CAe9B,eAAsB,EACpB,EACA,EAAiC,UAChB,CAMjB,OAAO,EALa,MAAM,WAAW,OAAO,OAAO,OACjD,EACA,EAAmB,EAAK,CACzB,CAEsC,CAGzC,MAAa,EAAO,EAEpB,IAAa,EAAb,KAAoB,CAClB,GAAwB,EAAE,CAE1B,GAEA,YAAY,EAAgC,CAC1C,MAAA,EAAkB,EAGpB,OAAO,EAAwB,CAC7B,MAAA,EAAa,KAAK,EAAK,CAGzB,MAAM,QAA8B,CAClC,IAAM,EAAO,IAAI,WACf,MAAA,EAAa,QAAQ,EAAK,IAAU,EAAM,EAAM,OAAQ,EAAE,CAC3D,CACG,EAAS,EACb,IAAK,IAAM,KAAS,MAAA,EAClB,EAAK,IAAI,EAAO,EAAO,CACvB,GAAU,EAAM,OAElB,IAAM,EAAc,MAAM,WAAW,OAAO,OAAO,OACjD,MAAA,EACA,EACD,CAED,OAAO,IAAI,WAAW,EAAY"}
@@ -0,0 +1,32 @@
1
+ //#region src/digest.d.ts
2
+ type AlgorithmIdentifier = "SHA-256" | "SHA-384" | "SHA-512";
3
+ /**
4
+ * Creates a new hash object for the specified algorithm.
5
+ *
6
+ * @param algorithm - The algorithm to use for the hash.
7
+ * @returns A new hash object.
8
+ */
9
+ declare function createHasher(algorithm: AlgorithmIdentifier): Hasher;
10
+ /**
11
+ * Creates a new hash object for the specified algorithm.
12
+ *
13
+ * @remarks
14
+ * This function uses the Web Crypto API to create a hash of the input data.
15
+ *
16
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
17
+ *
18
+ * @param data - The data to hash.
19
+ * @param algorithm - The algorithm to use for the hash.
20
+ * @returns A hash string representation of the `data` parameter.
21
+ */
22
+ declare function digest(data: string, algorithm?: AlgorithmIdentifier): Promise<string>;
23
+ declare const hash: typeof digest;
24
+ declare class Hasher {
25
+ #private;
26
+ constructor(algorithm: AlgorithmIdentifier);
27
+ update(data: Uint8Array): void;
28
+ digest(): Promise<Uint8Array>;
29
+ }
30
+ //#endregion
31
+ export { hash as a, digest as i, Hasher as n, createHasher as r, AlgorithmIdentifier as t };
32
+ //# sourceMappingURL=digest-CG1Sk96A.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-CG1Sk96A.d.mts","names":[],"sources":["../src/digest.ts"],"sourcesContent":[],"mappings":";KAuBY,mBAAA;AAAZ;AAQA;AAgBA;AAYA;AAEA;;AASe,iBAvCC,YAAA,CAuCD,SAAA,EAvCyB,mBAuCzB,CAAA,EAvC+C,MAuC/C;;;;;;;;;;;;;iBAvBO,MAAA,2BAET,sBACV;cASU,aAAI;cAEJ,MAAA;;yBAKY;eAIV;YAIG,QAAQ"}
@@ -0,0 +1 @@
1
+ function e(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=t.byteLength;if(n<65535)return String.fromCharCode.apply(null,t);let r=``;for(let e=0;e<n;e++)r+=String.fromCharCode(t[e]);return r}function t(e){return Uint8Array.from([...encodeURIComponent(e)].map(e=>e.codePointAt(0)))}const n=new TextEncoder,r=new TextDecoder;function i(e){return new s(e)}async function a(n,r=`SHA-512`){return e(await globalThis.crypto.subtle.digest(r,t(n)))}const o=a;var s=class{#e=[];#t;constructor(e){this.#t=e}update(e){this.#e.push(e)}async digest(){let e=new Uint8Array(this.#e.reduce((e,t)=>e+t.length,0)),t=0;for(let n of this.#e)e.set(n,t),t+=n.length;let n=await globalThis.crypto.subtle.digest(this.#t,e);return new Uint8Array(n)}};Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
@@ -0,0 +1,32 @@
1
+ //#region src/digest.d.ts
2
+ type AlgorithmIdentifier = "SHA-256" | "SHA-384" | "SHA-512";
3
+ /**
4
+ * Creates a new hash object for the specified algorithm.
5
+ *
6
+ * @param algorithm - The algorithm to use for the hash.
7
+ * @returns A new hash object.
8
+ */
9
+ declare function createHasher(algorithm: AlgorithmIdentifier): Hasher;
10
+ /**
11
+ * Creates a new hash object for the specified algorithm.
12
+ *
13
+ * @remarks
14
+ * This function uses the Web Crypto API to create a hash of the input data.
15
+ *
16
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
17
+ *
18
+ * @param data - The data to hash.
19
+ * @param algorithm - The algorithm to use for the hash.
20
+ * @returns A hash string representation of the `data` parameter.
21
+ */
22
+ declare function digest(data: string, algorithm?: AlgorithmIdentifier): Promise<string>;
23
+ declare const hash: typeof digest;
24
+ declare class Hasher {
25
+ #private;
26
+ constructor(algorithm: AlgorithmIdentifier);
27
+ update(data: Uint8Array): void;
28
+ digest(): Promise<Uint8Array>;
29
+ }
30
+ //#endregion
31
+ export { hash as a, digest as i, Hasher as n, createHasher as r, AlgorithmIdentifier as t };
32
+ //# sourceMappingURL=digest-Yy26O9oW.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-Yy26O9oW.d.cts","names":[],"sources":["../src/digest.ts"],"sourcesContent":[],"mappings":";KAuBY,mBAAA;AAAZ;AAQA;AAgBA;AAYA;AAEA;;AASe,iBAvCC,YAAA,CAuCD,SAAA,EAvCyB,mBAuCzB,CAAA,EAvC+C,MAuC/C;;;;;;;;;;;;;iBAvBO,MAAA,2BAET,sBACV;cASU,aAAI;cAEJ,MAAA;;yBAKY;eAIV;YAIG,QAAQ"}
package/dist/digest.cjs CHANGED
@@ -1,36 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Hasher = void 0;
7
- exports.createHasher = createHasher;
8
- exports.digest = digest;
9
- exports.hash = void 0;
10
- var _neutral = require("@stryke/convert/neutral");
11
- function createHasher(r) {
12
- return new Hasher(r);
13
- }
14
- async function digest(r, t = "SHA-512") {
15
- const e = await globalThis.crypto.subtle.digest(t, (0, _neutral.stringToUint8Array)(r));
16
- return (0, _neutral.arrayBufferToString)(e);
17
- }
18
- const hash = exports.hash = digest;
19
- class Hasher {
20
- #t = [];
21
- #r;
22
- constructor(t) {
23
- this.#r = t;
24
- }
25
- update(t) {
26
- this.#t.push(t);
27
- }
28
- async digest() {
29
- const t = new Uint8Array(this.#t.reduce((i, s) => i + s.length, 0));
30
- let e = 0;
31
- for (const i of this.#t) t.set(i, e), e += i.length;
32
- const n = await globalThis.crypto.subtle.digest(this.#r, t);
33
- return new Uint8Array(n);
34
- }
35
- }
36
- exports.Hasher = Hasher;
1
+ const e=require(`./digest-REorjd4v.cjs`);require(`./src-QUlAu3to.cjs`),exports.Hasher=e.t,exports.createHasher=e.n,exports.digest=e.r,exports.hash=e.i;
@@ -0,0 +1,2 @@
1
+ import { a as hash, i as digest, n as Hasher, r as createHasher, t as AlgorithmIdentifier } from "./digest-Yy26O9oW.cjs";
2
+ export { AlgorithmIdentifier, Hasher, createHasher, digest, hash };
@@ -0,0 +1,2 @@
1
+ import { a as hash, i as digest, n as Hasher, r as createHasher, t as AlgorithmIdentifier } from "./digest-CG1Sk96A.mjs";
2
+ export { AlgorithmIdentifier, Hasher, createHasher, digest, hash };
package/dist/digest.mjs CHANGED
@@ -1 +1 @@
1
- import{arrayBufferToString as o,stringToUint8Array as a}from"@stryke/convert/neutral";export function createHasher(r){return new Hasher(r)}export async function digest(r,t="SHA-512"){const e=await globalThis.crypto.subtle.digest(t,a(r));return o(e)}export const hash=digest;export class Hasher{#t=[];#r;constructor(t){this.#r=t}update(t){this.#t.push(t)}async digest(){const t=new Uint8Array(this.#t.reduce((i,s)=>i+s.length,0));let e=0;for(const i of this.#t)t.set(i,e),e+=i.length;const n=await globalThis.crypto.subtle.digest(this.#r,t);return new Uint8Array(n)}}
1
+ import{i as e,n as t,r as n,t as r}from"./digest-311IQaur.mjs";import"./src-GI5wB-mz.mjs";export{r as Hasher,t as createHasher,n as digest,e as hash};
@@ -1,3 +1,4 @@
1
+ //#region src/etag.d.ts
1
2
  /**
2
3
  * FNV-1a Hash implementation
3
4
  *
@@ -7,7 +8,7 @@
7
8
  * Simplified, optimized and add modified for 52 bit, which provides a larger hash space
8
9
  * and still making use of Javascript's 53-bit integer space.
9
10
  */
10
- export declare const fnv1a52: (str: string) => number;
11
+ declare const fnv1a52: (str: string) => number;
11
12
  /**
12
13
  * Generates an ETag for the given payload.
13
14
  *
@@ -15,4 +16,7 @@ export declare const fnv1a52: (str: string) => number;
15
16
  * @param weak - Whether to generate a weak ETag.
16
17
  * @returns The generated ETag.
17
18
  */
18
- export declare const generateETag: (payload: string, weak?: boolean) => string;
19
+ declare const generateETag: (payload: string, weak?: boolean) => string;
20
+ //#endregion
21
+ export { generateETag as n, fnv1a52 as t };
22
+ //# sourceMappingURL=etag-BdoEX_I_.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"etag-BdoEX_I_.d.cts","names":[],"sources":["../src/etag.ts"],"sourcesContent":[],"mappings":";;AA2BA;AA2CA;;;;;;;cA3Ca;;;;;;;;cA2CA"}
@@ -0,0 +1,2 @@
1
+ const e=e=>{let t=e.length,n=0,r=0,i=8997,a=0,o=33826,s=0,c=40164,l=0,u=52210;for(;n<t;)i^=e.charCodeAt(n++),r=i*435,a=o*435,s=c*435,l=u*435,s+=i<<8,l+=o<<8,a+=r>>>16,i=r&65535,s+=a>>>16,o=a&65535,u=l+(s>>>16)&65535,c=s&65535;return(u&15)*281474976710656+c*4294967296+o*65536+(i^u>>4)},t=(t,n=!1)=>`${(n?`W/"`:`"`)+e(t).toString(36)+t.length.toString(36)}"`;export{t as n,e as t};
2
+ //# sourceMappingURL=etag-DXmoR6hr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"etag-DXmoR6hr.mjs","names":[],"sources":["../src/etag.ts"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/stryke\n Documentation: https://docs.stormsoftware.com/projects/stryke\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\n/**\n * FNV-1a Hash implementation\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * @remarks\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */\nexport const fnv1a52 = (str: string) => {\n const len = str.length;\n let i = 0;\n let t0 = 0;\n let v0 = 0x2325;\n let t1 = 0;\n let v1 = 0x8422;\n let t2 = 0;\n let v2 = 0x9ce4;\n let t3 = 0;\n let v3 = 0xcbf2;\n\n while (i < len) {\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n\n return (\n (v3 & 15) * 281474976710656 +\n v2 * 4294967296 +\n v1 * 65536 +\n (v0 ^ (v3 >> 4))\n );\n};\n\n/**\n * Generates an ETag for the given payload.\n *\n * @param payload - The payload to generate an ETag for.\n * @param weak - Whether to generate a weak ETag.\n * @returns The generated ETag.\n */\nexport const generateETag = (payload: string, weak = false) => {\n const prefix = weak ? 'W/\"' : '\"';\n\n return `${prefix + fnv1a52(payload).toString(36) + payload.length.toString(36)}\"`;\n};\n"],"mappings":"AA2BA,MAAa,EAAW,GAAgB,CACtC,IAAM,EAAM,EAAI,OACZ,EAAI,EACJ,EAAK,EACL,EAAK,KACL,EAAK,EACL,EAAK,MACL,EAAK,EACL,EAAK,MACL,EAAK,EACL,EAAK,MAET,KAAO,EAAI,GACT,GAAM,EAAI,WAAW,IAAI,CACzB,EAAK,EAAK,IACV,EAAK,EAAK,IACV,EAAK,EAAK,IACV,EAAK,EAAK,IACV,GAAM,GAAM,EACZ,GAAM,GAAM,EACZ,GAAM,IAAO,GACb,EAAK,EAAK,MACV,GAAM,IAAO,GACb,EAAK,EAAK,MACV,EAAM,GAAM,IAAO,IAAO,MAC1B,EAAK,EAAK,MAGZ,OACG,EAAK,IAAM,gBACZ,EAAK,WACL,EAAK,OACJ,EAAM,GAAM,IAWJ,GAAgB,EAAiB,EAAO,KAG5C,IAFQ,EAAO,MAAQ,KAEX,EAAQ,EAAQ,CAAC,SAAS,GAAG,CAAG,EAAQ,OAAO,SAAS,GAAG,CAAC"}