@rspack/core 0.0.15 → 0.0.17

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 (111) hide show
  1. package/dist/ResolverFactory.d.ts +49 -0
  2. package/dist/ResolverFactory.d.ts.map +1 -0
  3. package/dist/ResolverFactory.js +117 -0
  4. package/dist/ResolverFactory.js.map +1 -0
  5. package/dist/compilation.d.ts +7 -3
  6. package/dist/compilation.d.ts.map +1 -1
  7. package/dist/compilation.js +18 -12
  8. package/dist/compilation.js.map +1 -1
  9. package/dist/compiler.d.ts +3 -0
  10. package/dist/compiler.d.ts.map +1 -1
  11. package/dist/compiler.js +3 -0
  12. package/dist/compiler.js.map +1 -1
  13. package/dist/config/cache.d.ts.map +1 -1
  14. package/dist/config/cache.js +3 -4
  15. package/dist/config/cache.js.map +1 -1
  16. package/dist/config/defaults.d.ts.map +1 -1
  17. package/dist/config/defaults.js +105 -4
  18. package/dist/config/defaults.js.map +1 -1
  19. package/dist/config/devtool.d.ts +1 -0
  20. package/dist/config/devtool.d.ts.map +1 -1
  21. package/dist/config/devtool.js +5 -1
  22. package/dist/config/devtool.js.map +1 -1
  23. package/dist/config/index.d.ts +10 -7
  24. package/dist/config/index.d.ts.map +1 -1
  25. package/dist/config/index.js +10 -3
  26. package/dist/config/index.js.map +1 -1
  27. package/dist/config/module.d.ts +38 -3
  28. package/dist/config/module.d.ts.map +1 -1
  29. package/dist/config/module.js +209 -47
  30. package/dist/config/module.js.map +1 -1
  31. package/dist/config/node.d.ts +9 -0
  32. package/dist/config/node.d.ts.map +1 -0
  33. package/dist/config/node.js +15 -0
  34. package/dist/config/node.js.map +1 -0
  35. package/dist/config/optimization.d.ts +5 -0
  36. package/dist/config/optimization.d.ts.map +1 -1
  37. package/dist/config/optimization.js +3 -1
  38. package/dist/config/optimization.js.map +1 -1
  39. package/dist/config/plugin.d.ts +1 -1
  40. package/dist/config/plugin.d.ts.map +1 -1
  41. package/dist/config/target.js +1 -1
  42. package/dist/config/target.js.map +1 -1
  43. package/dist/node/NodeEnvironmentPlugin.d.ts +27 -0
  44. package/dist/node/NodeEnvironmentPlugin.d.ts.map +1 -0
  45. package/dist/node/NodeEnvironmentPlugin.js +54 -0
  46. package/dist/node/NodeEnvironmentPlugin.js.map +1 -0
  47. package/dist/rspack.d.ts.map +1 -1
  48. package/dist/rspack.js +6 -15
  49. package/dist/rspack.js.map +1 -1
  50. package/dist/rspackOptionsApply.d.ts.map +1 -1
  51. package/dist/rspackOptionsApply.js +29 -0
  52. package/dist/rspackOptionsApply.js.map +1 -1
  53. package/dist/stats.d.ts +1 -0
  54. package/dist/stats.d.ts.map +1 -1
  55. package/dist/stats.js +3 -0
  56. package/dist/stats.js.map +1 -1
  57. package/dist/util/cleverMerge.d.ts +79 -0
  58. package/dist/util/cleverMerge.d.ts.map +1 -0
  59. package/dist/util/cleverMerge.js +531 -0
  60. package/dist/util/cleverMerge.js.map +1 -0
  61. package/dist/util/createHash.d.ts +7 -0
  62. package/dist/util/createHash.d.ts.map +1 -0
  63. package/dist/util/createHash.js +166 -0
  64. package/dist/util/createHash.js.map +1 -0
  65. package/dist/util/createSource.d.ts +6 -0
  66. package/dist/util/createSource.d.ts.map +1 -0
  67. package/dist/util/createSource.js +48 -0
  68. package/dist/util/createSource.js.map +1 -0
  69. package/dist/util/hash/BatchedHash.d.ts +16 -0
  70. package/dist/util/hash/BatchedHash.d.ts.map +1 -0
  71. package/dist/util/hash/BatchedHash.js +61 -0
  72. package/dist/util/hash/BatchedHash.js.map +1 -0
  73. package/dist/util/hash/index.d.ts +19 -0
  74. package/dist/util/hash/index.d.ts.map +1 -0
  75. package/dist/util/hash/index.js +28 -0
  76. package/dist/util/hash/index.js.map +1 -0
  77. package/dist/util/hash/md4.d.ts +3 -0
  78. package/dist/util/hash/md4.d.ts.map +1 -0
  79. package/dist/util/hash/md4.js +13 -0
  80. package/dist/util/hash/md4.js.map +1 -0
  81. package/dist/util/hash/wasm-hash.d.ts +7 -0
  82. package/dist/util/hash/wasm-hash.d.ts.map +1 -0
  83. package/dist/util/hash/wasm-hash.js +162 -0
  84. package/dist/util/hash/wasm-hash.js.map +1 -0
  85. package/dist/util/hash/xxhash64.d.ts +3 -0
  86. package/dist/util/hash/xxhash64.d.ts.map +1 -0
  87. package/dist/util/hash/xxhash64.js +13 -0
  88. package/dist/util/hash/xxhash64.js.map +1 -0
  89. package/dist/util/identifier.d.ts +77 -0
  90. package/dist/util/identifier.d.ts.map +1 -0
  91. package/dist/util/identifier.js +345 -0
  92. package/dist/util/identifier.js.map +1 -0
  93. package/dist/util/index.d.ts +6 -0
  94. package/dist/util/index.d.ts.map +1 -0
  95. package/dist/util/index.js +18 -0
  96. package/dist/util/index.js.map +1 -0
  97. package/dist/util/memoize.d.ts +2 -0
  98. package/dist/util/memoize.d.ts.map +1 -0
  99. package/dist/util/memoize.js +22 -0
  100. package/dist/util/memoize.js.map +1 -0
  101. package/package.json +25 -13
  102. package/dist/bundle.js +0 -1
  103. package/dist/dd.js +0 -1
  104. package/dist/dynamic_js.xxxx.js +0 -1
  105. package/dist/main.js +0 -1
  106. package/dist/main.xxxx.js +0 -1
  107. package/dist/runtime.js +0 -1
  108. package/dist/web/polyfillBuiltins.d.ts +0 -5
  109. package/dist/web/polyfillBuiltins.d.ts.map +0 -1
  110. package/dist/web/polyfillBuiltins.js +0 -43
  111. package/dist/web/polyfillBuiltins.js.map +0 -1
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ /*
3
+ MIT License http://www.opensource.org/licenses/mit-license.php
4
+ Author Tobias Koppers @sokra
5
+ */
6
+ //@ts-nocheck
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createHash = void 0;
9
+ const Hash = require("./hash");
10
+ const BULK_SIZE = 2000;
11
+ // We are using an object instead of a Map as this will stay static during the runtime
12
+ // so access to it can be optimized by v8
13
+ const digestCaches = {};
14
+ class BulkUpdateDecorator extends Hash {
15
+ /**
16
+ * @param {Hash | function(): Hash} hashOrFactory function to create a hash
17
+ * @param {string=} hashKey key for caching
18
+ */
19
+ constructor(hashOrFactory, hashKey) {
20
+ super();
21
+ this.hashKey = hashKey;
22
+ if (typeof hashOrFactory === "function") {
23
+ this.hashFactory = hashOrFactory;
24
+ this.hash = undefined;
25
+ }
26
+ else {
27
+ this.hashFactory = undefined;
28
+ this.hash = hashOrFactory;
29
+ }
30
+ this.buffer = "";
31
+ }
32
+ /**
33
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
34
+ * @param {string|Buffer} data data
35
+ * @param {string=} inputEncoding data encoding
36
+ * @returns {this} updated hash
37
+ */
38
+ update(data, inputEncoding) {
39
+ if (inputEncoding !== undefined ||
40
+ typeof data !== "string" ||
41
+ data.length > BULK_SIZE) {
42
+ if (this.hash === undefined)
43
+ this.hash = this.hashFactory();
44
+ if (this.buffer.length > 0) {
45
+ this.hash.update(this.buffer);
46
+ this.buffer = "";
47
+ }
48
+ this.hash.update(data, inputEncoding);
49
+ }
50
+ else {
51
+ this.buffer += data;
52
+ if (this.buffer.length > BULK_SIZE) {
53
+ if (this.hash === undefined)
54
+ this.hash = this.hashFactory();
55
+ this.hash.update(this.buffer);
56
+ this.buffer = "";
57
+ }
58
+ }
59
+ return this;
60
+ }
61
+ /**
62
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
63
+ * @param {string=} encoding encoding of the return value
64
+ * @returns {string|Buffer} digest
65
+ */
66
+ digest(encoding) {
67
+ let digestCache;
68
+ const buffer = this.buffer;
69
+ if (this.hash === undefined) {
70
+ // short data for hash, we can use caching
71
+ const cacheKey = `${this.hashKey}-${encoding}`;
72
+ digestCache = digestCaches[cacheKey];
73
+ if (digestCache === undefined) {
74
+ digestCache = digestCaches[cacheKey] = new Map();
75
+ }
76
+ const cacheEntry = digestCache.get(buffer);
77
+ if (cacheEntry !== undefined)
78
+ return cacheEntry;
79
+ this.hash = this.hashFactory();
80
+ }
81
+ if (buffer.length > 0) {
82
+ this.hash.update(buffer);
83
+ }
84
+ const digestResult = this.hash.digest(encoding);
85
+ const result = typeof digestResult === "string" ? digestResult : digestResult.toString();
86
+ if (digestCache !== undefined) {
87
+ digestCache.set(buffer, result);
88
+ }
89
+ return result;
90
+ }
91
+ }
92
+ /* istanbul ignore next */
93
+ class DebugHash extends Hash {
94
+ constructor() {
95
+ super();
96
+ this.string = "";
97
+ }
98
+ /**
99
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
100
+ * @param {string|Buffer} data data
101
+ * @param {string=} inputEncoding data encoding
102
+ * @returns {this} updated hash
103
+ */
104
+ update(data, inputEncoding) {
105
+ if (typeof data !== "string")
106
+ data = data.toString("utf-8");
107
+ if (data.startsWith("debug-digest-")) {
108
+ data = Buffer.from(data.slice("debug-digest-".length), "hex").toString();
109
+ }
110
+ this.string += `[${data}](${new Error().stack.split("\n", 3)[2]})\n`;
111
+ return this;
112
+ }
113
+ /**
114
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
115
+ * @param {string=} encoding encoding of the return value
116
+ * @returns {string|Buffer} digest
117
+ */
118
+ digest(encoding) {
119
+ return "debug-digest-" + Buffer.from(this.string).toString("hex");
120
+ }
121
+ }
122
+ let crypto = undefined;
123
+ let createXXHash64 = undefined;
124
+ let createMd4 = undefined;
125
+ let BatchedHash = undefined;
126
+ /**
127
+ * Creates a hash by name or function
128
+ * @param {string | typeof Hash} algorithm the algorithm name or a constructor creating a hash
129
+ * @returns {Hash} the hash
130
+ */
131
+ const createHash = algorithm => {
132
+ if (typeof algorithm === "function") {
133
+ return new BulkUpdateDecorator(() => new algorithm());
134
+ }
135
+ switch (algorithm) {
136
+ // TODO add non-cryptographic algorithm here
137
+ case "debug":
138
+ return new DebugHash();
139
+ case "xxhash64":
140
+ if (createXXHash64 === undefined) {
141
+ createXXHash64 = require("./hash/xxhash64");
142
+ if (BatchedHash === undefined) {
143
+ BatchedHash = require("./hash/BatchedHash");
144
+ }
145
+ }
146
+ return new BatchedHash(createXXHash64());
147
+ case "md4":
148
+ if (createMd4 === undefined) {
149
+ createMd4 = require("./hash/md4");
150
+ if (BatchedHash === undefined) {
151
+ BatchedHash = require("./hash/BatchedHash");
152
+ }
153
+ }
154
+ return new BatchedHash(createMd4());
155
+ case "native-md4":
156
+ if (crypto === undefined)
157
+ crypto = require("crypto");
158
+ return new BulkUpdateDecorator(() => crypto.createHash("md4"), "md4");
159
+ default:
160
+ if (crypto === undefined)
161
+ crypto = require("crypto");
162
+ return new BulkUpdateDecorator(() => crypto.createHash(algorithm), algorithm);
163
+ }
164
+ };
165
+ exports.createHash = createHash;
166
+ //# sourceMappingURL=createHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createHash.js","sourceRoot":"","sources":["../../src/util/createHash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { JsCompatSource } from "@rspack/binding";
2
+ import { Source } from "webpack-sources";
3
+ declare function createSourceFromRaw(source: JsCompatSource): Source;
4
+ declare function createRawFromSource(source: Source): JsCompatSource;
5
+ export { createSourceFromRaw, createRawFromSource };
6
+ //# sourceMappingURL=createSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSource.d.ts","sourceRoot":"","sources":["../../src/util/createSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAA2B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAElE,iBAAS,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwB3D;AAED,iBAAS,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAwB3D;AAED,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRawFromSource = exports.createSourceFromRaw = void 0;
4
+ const webpack_sources_1 = require("webpack-sources");
5
+ function createSourceFromRaw(source) {
6
+ if (source.isRaw) {
7
+ return new webpack_sources_1.RawSource(
8
+ // @ts-expect-error: webpack-sources can accept buffer as source, see: https://github.com/webpack/webpack-sources/blob/9f98066311d53a153fdc7c633422a1d086528027/lib/RawSource.js#L12
9
+ source.isBuffer ? source.source : source.source.toString("utf-8"));
10
+ }
11
+ if (!source.map) {
12
+ return new webpack_sources_1.RawSource(source.source.toString("utf-8"));
13
+ }
14
+ return new webpack_sources_1.CompatSource({
15
+ source() {
16
+ return source.source.toString("utf-8");
17
+ },
18
+ map(_) {
19
+ if (source.map) {
20
+ return JSON.parse(source.map.toString("utf-8"));
21
+ }
22
+ return null;
23
+ }
24
+ });
25
+ }
26
+ exports.createSourceFromRaw = createSourceFromRaw;
27
+ function createRawFromSource(source) {
28
+ const isBuffer = Buffer.isBuffer(source.source());
29
+ if (source instanceof webpack_sources_1.RawSource) {
30
+ return {
31
+ source: source.buffer(),
32
+ isRaw: true,
33
+ isBuffer
34
+ };
35
+ }
36
+ const buffer = source.buffer();
37
+ const map = JSON.stringify(source.map({
38
+ columns: true
39
+ }));
40
+ return {
41
+ source: buffer,
42
+ map: Buffer.from(map),
43
+ isRaw: false,
44
+ isBuffer
45
+ };
46
+ }
47
+ exports.createRawFromSource = createRawFromSource;
48
+ //# sourceMappingURL=createSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSource.js","sourceRoot":"","sources":["../../src/util/createSource.ts"],"names":[],"mappings":";;;AAEA,qDAAkE;AAElE,SAAS,mBAAmB,CAAC,MAAsB;IAClD,IAAI,MAAM,CAAC,KAAK,EAAE;QACjB,OAAO,IAAI,2BAAS;QACnB,oLAAoL;QACpL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CACjE,CAAC;KACF;IAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QAChB,OAAO,IAAI,2BAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,IAAI,8BAAY,CAAC;QACvB,MAAM;YACL,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,GAAG,CAAC,CAAC;YACJ,IAAI,MAAM,CAAC,GAAG,EAAE;gBACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;aAChD;YAED,OAAO,IAAI,CAAC;QACb,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AA4BQ,kDAAmB;AA1B5B,SAAS,mBAAmB,CAAC,MAAc;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAElD,IAAI,MAAM,YAAY,2BAAS,EAAE;QAChC,OAAO;YACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YACvB,KAAK,EAAE,IAAI;YACX,QAAQ;SACR,CAAC;KACF;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACzB,MAAM,CAAC,GAAG,CAAC;QACV,OAAO,EAAE,IAAI;KACb,CAAC,CACF,CAAC;IAEF,OAAO;QACN,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,KAAK,EAAE,KAAK;QACZ,QAAQ;KACR,CAAC;AACH,CAAC;AAE6B,kDAAmB"}
@@ -0,0 +1,16 @@
1
+ export = BatchedHash;
2
+ declare class BatchedHash extends Hash {
3
+ constructor(hash: any);
4
+ string: string;
5
+ encoding: string;
6
+ hash: any;
7
+ /**
8
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
9
+ * @param {string|Buffer} data data
10
+ * @param {string=} inputEncoding data encoding
11
+ * @returns {this} updated hash
12
+ */
13
+ update(data: string | Buffer, inputEncoding?: string | undefined): this;
14
+ }
15
+ import Hash = require(".");
16
+ //# sourceMappingURL=BatchedHash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchedHash.d.ts","sourceRoot":"","sources":["../../../src/util/hash/BatchedHash.js"],"names":[],"mappings":";AAUA;IACC,uBAKC;IAHA,eAAuB;IACvB,iBAAyB;IACzB,UAAgB;IAGjB;;;;;OAKG;IACH,aAJW,MAAM,GAAC,MAAM,kBACb,MAAM,eACJ,IAAI,CA8BhB;CAaD"}
@@ -0,0 +1,61 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const Hash = require(".");
7
+ const MAX_SHORT_STRING = require("./wasm-hash").MAX_SHORT_STRING;
8
+ class BatchedHash extends Hash {
9
+ constructor(hash) {
10
+ super();
11
+ this.string = undefined;
12
+ this.encoding = undefined;
13
+ this.hash = hash;
14
+ }
15
+ /**
16
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
17
+ * @param {string|Buffer} data data
18
+ * @param {string=} inputEncoding data encoding
19
+ * @returns {this} updated hash
20
+ */
21
+ update(data, inputEncoding) {
22
+ if (this.string !== undefined) {
23
+ if (typeof data === "string" &&
24
+ inputEncoding === this.encoding &&
25
+ this.string.length + data.length < MAX_SHORT_STRING) {
26
+ this.string += data;
27
+ return this;
28
+ }
29
+ this.hash.update(this.string, this.encoding);
30
+ this.string = undefined;
31
+ }
32
+ if (typeof data === "string") {
33
+ if (data.length < MAX_SHORT_STRING &&
34
+ // base64 encoding is not valid since it may contain padding chars
35
+ (!inputEncoding || !inputEncoding.startsWith("ba"))) {
36
+ this.string = data;
37
+ this.encoding = inputEncoding;
38
+ }
39
+ else {
40
+ this.hash.update(data, inputEncoding);
41
+ }
42
+ }
43
+ else {
44
+ this.hash.update(data);
45
+ }
46
+ return this;
47
+ }
48
+ /**
49
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
50
+ * @param {string=} encoding encoding of the return value
51
+ * @returns {string|Buffer} digest
52
+ */
53
+ digest(encoding) {
54
+ if (this.string !== undefined) {
55
+ this.hash.update(this.string, this.encoding);
56
+ }
57
+ return this.hash.digest(encoding);
58
+ }
59
+ }
60
+ module.exports = BatchedHash;
61
+ //# sourceMappingURL=BatchedHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchedHash.js","sourceRoot":"","sources":["../../../src/util/hash/BatchedHash.js"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;AAEb,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC;AAEjE,MAAM,WAAY,SAAQ,IAAI;IAC7B,YAAY,IAAI;QACf,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,aAAa;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC9B,IACC,OAAO,IAAI,KAAK,QAAQ;gBACxB,aAAa,KAAK,IAAI,CAAC,QAAQ;gBAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,gBAAgB,EAClD;gBACD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;gBACpB,OAAO,IAAI,CAAC;aACZ;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;SACxB;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC7B,IACC,IAAI,CAAC,MAAM,GAAG,gBAAgB;gBAC9B,kEAAkE;gBAClE,CAAC,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAClD;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;aAC9B;iBAAM;gBACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;aACtC;SACD;aAAM;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ;QACd,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ export = Hash;
2
+ declare class Hash {
3
+ /**
4
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
5
+ * @abstract
6
+ * @param {string|Buffer} data data
7
+ * @param {string=} inputEncoding data encoding
8
+ * @returns {this} updated hash
9
+ */
10
+ update(data: string | Buffer, inputEncoding?: string | undefined): this;
11
+ /**
12
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
13
+ * @abstract
14
+ * @param {string=} encoding encoding of the return value
15
+ * @returns {string|Buffer} digest
16
+ */
17
+ digest(encoding?: string | undefined): string | Buffer;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/hash/index.js"],"names":[],"mappings":";AAEA;IAEC;;;;;;OAMG;IACH,aAJW,MAAM,GAAC,MAAM,kBACb,MAAM,eACJ,IAAI,CAKhB;IAGD;;;;;OAKG;IACH,kBAHW,MAAM,eACJ,MAAM,GAAC,MAAM,CAKzB;CACD"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ class Hash {
3
+ /* istanbul ignore next */
4
+ /**
5
+ * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
6
+ * @abstract
7
+ * @param {string|Buffer} data data
8
+ * @param {string=} inputEncoding data encoding
9
+ * @returns {this} updated hash
10
+ */
11
+ update(data, inputEncoding) {
12
+ const AbstractMethodError = require("../AbstractMethodError");
13
+ throw new AbstractMethodError();
14
+ }
15
+ /* istanbul ignore next */
16
+ /**
17
+ * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
18
+ * @abstract
19
+ * @param {string=} encoding encoding of the return value
20
+ * @returns {string|Buffer} digest
21
+ */
22
+ digest(encoding) {
23
+ const AbstractMethodError = require("../AbstractMethodError");
24
+ throw new AbstractMethodError();
25
+ }
26
+ }
27
+ module.exports = Hash;
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/hash/index.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,IAAI;IACT,0BAA0B;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,aAAa;QACzB,MAAM,mBAAmB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC9D,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,0BAA0B;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,QAAQ;QACd,MAAM,mBAAmB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC9D,MAAM,IAAI,mBAAmB,EAAE,CAAC;IACjC,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _exports: any;
2
+ export = _exports;
3
+ //# sourceMappingURL=md4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md4.d.ts","sourceRoot":"","sources":["../../../src/util/hash/md4.js"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const create = require("./wasm-hash");
7
+ //#region wasm code: md4 (../../../assembly/hash/md4.asm.ts) --initialMemory 1
8
+ const md4 = new WebAssembly.Module(Buffer.from(
9
+ // 2156 bytes
10
+ "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", "base64"));
11
+ //#endregion
12
+ module.exports = create.bind(null, md4, [], 64, 32);
13
+ //# sourceMappingURL=md4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md4.js","sourceRoot":"","sources":["../../../src/util/hash/md4.js"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;AAEb,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CACjC,MAAM,CAAC,IAAI;AACV,aAAa;AACb,8zFAA8zF,EAC9zF,QAAQ,CACR,CACD,CAAC;AACF,YAAY;AAEZ,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export = create;
2
+ declare function create(wasmModule: any, instancesPool: any, chunkSize: any, digestSize: any): any;
3
+ declare namespace create {
4
+ export { MAX_SHORT_STRING };
5
+ }
6
+ declare const MAX_SHORT_STRING: number;
7
+ //# sourceMappingURL=wasm-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-hash.d.ts","sourceRoot":"","sources":["../../../src/util/hash/wasm-hash.js"],"names":[],"mappings":";AAkJA,mGAaC;;;;AApJD,uCAA2D"}
@@ -0,0 +1,162 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ // 65536 is the size of a wasm memory page
7
+ // 64 is the maximum chunk size for every possible wasm hash implementation
8
+ // 4 is the maximum number of bytes per char for string encoding (max is utf-8)
9
+ // ~3 makes sure that it's always a block of 4 chars, so avoid partially encoded bytes for base64
10
+ const MAX_SHORT_STRING = Math.floor((65536 - 64) / 4) & ~3;
11
+ class WasmHash {
12
+ /**
13
+ * @param {WebAssembly.Instance} instance wasm instance
14
+ * @param {WebAssembly.Instance[]} instancesPool pool of instances
15
+ * @param {number} chunkSize size of data chunks passed to wasm
16
+ * @param {number} digestSize size of digest returned by wasm
17
+ */
18
+ constructor(instance, instancesPool, chunkSize, digestSize) {
19
+ const exports = /** @type {any} */ (instance.exports);
20
+ exports.init();
21
+ this.exports = exports;
22
+ this.mem = Buffer.from(exports.memory.buffer, 0, 65536);
23
+ this.buffered = 0;
24
+ this.instancesPool = instancesPool;
25
+ this.chunkSize = chunkSize;
26
+ this.digestSize = digestSize;
27
+ }
28
+ reset() {
29
+ this.buffered = 0;
30
+ this.exports.init();
31
+ }
32
+ /**
33
+ * @param {Buffer | string} data data
34
+ * @param {BufferEncoding=} encoding encoding
35
+ * @returns {this} itself
36
+ */
37
+ update(data, encoding) {
38
+ if (typeof data === "string") {
39
+ while (data.length > MAX_SHORT_STRING) {
40
+ this._updateWithShortString(data.slice(0, MAX_SHORT_STRING), encoding);
41
+ data = data.slice(MAX_SHORT_STRING);
42
+ }
43
+ this._updateWithShortString(data, encoding);
44
+ return this;
45
+ }
46
+ this._updateWithBuffer(data);
47
+ return this;
48
+ }
49
+ /**
50
+ * @param {string} data data
51
+ * @param {BufferEncoding=} encoding encoding
52
+ * @returns {void}
53
+ */
54
+ _updateWithShortString(data, encoding) {
55
+ const { exports, buffered, mem, chunkSize } = this;
56
+ let endPos;
57
+ if (data.length < 70) {
58
+ if (!encoding || encoding === "utf-8" || encoding === "utf8") {
59
+ endPos = buffered;
60
+ for (let i = 0; i < data.length; i++) {
61
+ const cc = data.charCodeAt(i);
62
+ if (cc < 0x80)
63
+ mem[endPos++] = cc;
64
+ else if (cc < 0x800) {
65
+ mem[endPos] = (cc >> 6) | 0xc0;
66
+ mem[endPos + 1] = (cc & 0x3f) | 0x80;
67
+ endPos += 2;
68
+ }
69
+ else {
70
+ // bail-out for weird chars
71
+ endPos += mem.write(data.slice(i), endPos, encoding);
72
+ break;
73
+ }
74
+ }
75
+ }
76
+ else if (encoding === "latin1") {
77
+ endPos = buffered;
78
+ for (let i = 0; i < data.length; i++) {
79
+ const cc = data.charCodeAt(i);
80
+ mem[endPos++] = cc;
81
+ }
82
+ }
83
+ else {
84
+ endPos = buffered + mem.write(data, buffered, encoding);
85
+ }
86
+ }
87
+ else {
88
+ endPos = buffered + mem.write(data, buffered, encoding);
89
+ }
90
+ if (endPos < chunkSize) {
91
+ this.buffered = endPos;
92
+ }
93
+ else {
94
+ const l = endPos & ~(this.chunkSize - 1);
95
+ exports.update(l);
96
+ const newBuffered = endPos - l;
97
+ this.buffered = newBuffered;
98
+ if (newBuffered > 0)
99
+ mem.copyWithin(0, l, endPos);
100
+ }
101
+ }
102
+ /**
103
+ * @param {Buffer} data data
104
+ * @returns {void}
105
+ */
106
+ _updateWithBuffer(data) {
107
+ const { exports, buffered, mem } = this;
108
+ const length = data.length;
109
+ if (buffered + length < this.chunkSize) {
110
+ data.copy(mem, buffered, 0, length);
111
+ this.buffered += length;
112
+ }
113
+ else {
114
+ const l = (buffered + length) & ~(this.chunkSize - 1);
115
+ if (l > 65536) {
116
+ let i = 65536 - buffered;
117
+ data.copy(mem, buffered, 0, i);
118
+ exports.update(65536);
119
+ const stop = l - buffered - 65536;
120
+ while (i < stop) {
121
+ data.copy(mem, 0, i, i + 65536);
122
+ exports.update(65536);
123
+ i += 65536;
124
+ }
125
+ data.copy(mem, 0, i, l - buffered);
126
+ exports.update(l - buffered - i);
127
+ }
128
+ else {
129
+ data.copy(mem, buffered, 0, l - buffered);
130
+ exports.update(l);
131
+ }
132
+ const newBuffered = length + buffered - l;
133
+ this.buffered = newBuffered;
134
+ if (newBuffered > 0)
135
+ data.copy(mem, 0, length - newBuffered, length);
136
+ }
137
+ }
138
+ digest(type) {
139
+ const { exports, buffered, mem, digestSize } = this;
140
+ exports.final(buffered);
141
+ this.instancesPool.push(this);
142
+ const hex = mem.toString("latin1", 0, digestSize);
143
+ if (type === "hex")
144
+ return hex;
145
+ if (type === "binary" || !type)
146
+ return Buffer.from(hex, "hex");
147
+ return Buffer.from(hex, "hex").toString(type);
148
+ }
149
+ }
150
+ const create = (wasmModule, instancesPool, chunkSize, digestSize) => {
151
+ if (instancesPool.length > 0) {
152
+ const old = instancesPool.pop();
153
+ old.reset();
154
+ return old;
155
+ }
156
+ else {
157
+ return new WasmHash(new WebAssembly.Instance(wasmModule), instancesPool, chunkSize, digestSize);
158
+ }
159
+ };
160
+ module.exports = create;
161
+ module.exports.MAX_SHORT_STRING = MAX_SHORT_STRING;
162
+ //# sourceMappingURL=wasm-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-hash.js","sourceRoot":"","sources":["../../../src/util/hash/wasm-hash.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const _exports: any;
2
+ export = _exports;
3
+ //# sourceMappingURL=xxhash64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxhash64.d.ts","sourceRoot":"","sources":["../../../src/util/hash/xxhash64.js"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra
4
+ */
5
+ "use strict";
6
+ const create = require("./wasm-hash");
7
+ //#region wasm code: xxhash64 (../../../assembly/hash/xxhash64.asm.ts) --initialMemory 1
8
+ const xxhash64 = new WebAssembly.Module(Buffer.from(
9
+ // 1170 bytes
10
+ "AGFzbQEAAAABCAJgAX8AYAAAAwQDAQAABQMBAAEGGgV+AUIAC34BQgALfgFCAAt+AUIAC34BQgALByIEBGluaXQAAAZ1cGRhdGUAAQVmaW5hbAACBm1lbW9yeQIACrIIAzAAQtbrgu7q/Yn14AAkAELP1tO+0ser2UIkAUIAJAJC+erQ0OfJoeThACQDQgAkBAvUAQIBfwR+IABFBEAPCyMEIACtfCQEIwAhAiMBIQMjAiEEIwMhBQNAIAIgASkDAELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiECIAMgASkDCELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEDIAQgASkDEELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEEIAUgASkDGELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEFIAAgAUEgaiIBSw0ACyACJAAgAyQBIAQkAiAFJAMLqAYCAX8EfiMEQgBSBH4jACICQgGJIwEiA0IHiXwjAiIEQgyJfCMDIgVCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0gA0LP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkKdo7Xqg7GNivoAfSAEQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IAVCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0FQsXP2bLx5brqJwsjBCAArXx8IQIDQCABQQhqIABNBEAgAiABKQMAQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQhuJQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IQIgAUEIaiEBDAELCyABQQRqIABNBEAgAiABNQIAQoeVr6+Ytt6bnn9+hUIXiULP1tO+0ser2UJ+Qvnz3fGZ9pmrFnwhAiABQQRqIQELA0AgACABRwRAIAIgATEAAELFz9my8eW66id+hUILiUKHla+vmLbem55/fiECIAFBAWohAQwBCwtBACACIAJCIYiFQs/W077Sx6vZQn4iAkIdiCAChUL5893xmfaZqxZ+IgJCIIggAoUiAkIgiCIDQv//A4NCIIYgA0KAgPz/D4NCEIiEIgNC/4GAgPAfg0IQhiADQoD+g4CA4D+DQgiIhCIDQo+AvIDwgcAHg0IIhiADQvCBwIeAnoD4AINCBIiEIgNChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IANCsODAgYOGjJgwhHw3AwBBCCACQv////8PgyICQv//A4NCIIYgAkKAgPz/D4NCEIiEIgJC/4GAgPAfg0IQhiACQoD+g4CA4D+DQgiIhCICQo+AvIDwgcAHg0IIhiACQvCBwIeAnoD4AINCBIiEIgJChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IAJCsODAgYOGjJgwhHw3AwAL", "base64"));
11
+ //#endregion
12
+ module.exports = create.bind(null, xxhash64, [], 32, 16);
13
+ //# sourceMappingURL=xxhash64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxhash64.js","sourceRoot":"","sources":["../../../src/util/hash/xxhash64.js"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,YAAY,CAAC;AAEb,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEtC,wFAAwF;AACxF,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CACtC,MAAM,CAAC,IAAI;AACV,aAAa;AACb,0hDAA0hD,EAC1hD,QAAQ,CACR,CACD,CAAC;AACF,YAAY;AAEZ,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC"}