@prosopo/account 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/cjs/common/dist/array.cjs +8 -0
  2. package/dist/cjs/common/dist/asyncFactory.cjs +13 -0
  3. package/dist/cjs/common/dist/custom.cjs +1 -0
  4. package/dist/cjs/common/dist/error.cjs +92 -0
  5. package/dist/cjs/common/dist/hash.cjs +14 -0
  6. package/dist/cjs/common/dist/i18n.cjs +29 -0
  7. package/dist/cjs/common/dist/index.cjs +40 -0
  8. package/dist/cjs/common/dist/locales/en.json.cjs +191 -0
  9. package/dist/cjs/common/dist/logger.cjs +91 -0
  10. package/dist/cjs/common/dist/node/UrlConverter.cjs +215 -0
  11. package/dist/cjs/common/dist/node/i18nMiddleware.cjs +8 -0
  12. package/dist/cjs/common/dist/node/index.cjs +4 -0
  13. package/dist/cjs/common/dist/react/index.cjs +4 -0
  14. package/dist/cjs/common/dist/react/useTranslation.cjs +8 -0
  15. package/dist/cjs/common/dist/string.cjs +6 -0
  16. package/dist/cjs/common/dist/utils.cjs +38 -0
  17. package/dist/cjs/extension/Extension.cjs +5 -0
  18. package/dist/cjs/extension/ExtensionWeb2.cjs +104 -0
  19. package/dist/cjs/index.cjs +6 -0
  20. package/dist/cjs/util/dist/canvas.cjs +326 -0
  21. package/dist/cjs/util/dist/index.cjs +26 -0
  22. package/dist/cjs/util/dist/isMain.cjs +13 -0
  23. package/dist/cjs/util/dist/lodash.cjs +35 -0
  24. package/dist/cjs/util/dist/ofLen.cjs +526 -0
  25. package/dist/cjs/util/dist/url.cjs +9 -0
  26. package/dist/cjs/util/dist/util.cjs +153 -0
  27. package/dist/extension/Extension.d.ts +5 -0
  28. package/dist/extension/Extension.d.ts.map +1 -0
  29. package/dist/extension/Extension.js +3 -0
  30. package/dist/extension/Extension.js.map +1 -0
  31. package/dist/extension/ExtensionWeb2.d.ts +18 -0
  32. package/dist/extension/ExtensionWeb2.d.ts.map +1 -0
  33. package/dist/extension/ExtensionWeb2.js +100 -0
  34. package/dist/extension/ExtensionWeb2.js.map +1 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +3 -0
  38. package/dist/index.js.map +1 -0
  39. package/package.json +58 -0
  40. package/vite.cjs.config.ts +6 -0
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("./index.cjs");
4
+ const util = require("./util.cjs");
5
+ function x64Add(m, n) {
6
+ m = [util.at(m, 0) >>> 16, util.at(m, 0) & 65535, util.at(m, 1) >>> 16, util.at(m, 1) & 65535];
7
+ n = [util.at(n, 0) >>> 16, util.at(n, 0) & 65535, util.at(n, 1) >>> 16, util.at(n, 1) & 65535];
8
+ const o = [0, 0, 0, 0];
9
+ o[3] += util.at(m, 3) + util.at(n, 3);
10
+ o[2] += util.at(o, 3) >>> 16;
11
+ o[3] &= 65535;
12
+ o[2] += util.at(m, 2) + util.at(n, 2);
13
+ o[1] += util.at(o, 2) >>> 16;
14
+ o[2] &= 65535;
15
+ o[1] += util.at(m, 1) + util.at(n, 1);
16
+ o[0] += util.at(o, 1) >>> 16;
17
+ o[1] &= 65535;
18
+ o[0] += util.at(m, 0) + util.at(n, 0);
19
+ o[0] &= 65535;
20
+ return [util.at(o, 0) << 16 | util.at(o, 1), util.at(o, 2) << 16 | util.at(o, 3)];
21
+ }
22
+ function x64Multiply(m, n) {
23
+ m = [util.at(m, 0) >>> 16, util.at(m, 0) & 65535, util.at(m, 1) >>> 16, util.at(m, 1) & 65535];
24
+ n = [util.at(n, 0) >>> 16, util.at(n, 0) & 65535, util.at(n, 1) >>> 16, util.at(n, 1) & 65535];
25
+ const o = [0, 0, 0, 0];
26
+ o[3] += util.at(m, 3) * util.at(n, 3);
27
+ o[2] += util.at(o, 3) >>> 16;
28
+ o[3] &= 65535;
29
+ o[2] += util.at(m, 2) * util.at(n, 3);
30
+ o[1] += util.at(o, 2) >>> 16;
31
+ o[2] &= 65535;
32
+ o[2] += util.at(m, 3) * util.at(n, 2);
33
+ o[1] += util.at(o, 2) >>> 16;
34
+ o[2] &= 65535;
35
+ o[1] += util.at(m, 1) * util.at(n, 3);
36
+ o[0] += util.at(o, 1) >>> 16;
37
+ o[1] &= 65535;
38
+ o[1] += util.at(m, 2) * util.at(n, 2);
39
+ o[0] += util.at(o, 1) >>> 16;
40
+ o[1] &= 65535;
41
+ o[1] += util.at(m, 3) * util.at(n, 1);
42
+ o[0] += util.at(o, 1) >>> 16;
43
+ o[1] &= 65535;
44
+ o[0] += util.at(m, 0) * util.at(n, 3) + util.at(m, 1) * util.at(n, 2) + util.at(m, 2) * util.at(n, 1) + util.at(m, 3) * util.at(n, 0);
45
+ o[0] &= 65535;
46
+ return [util.at(o, 0) << 16 | util.at(o, 1), util.at(o, 2) << 16 | util.at(o, 3)];
47
+ }
48
+ function x64Rotl(m, n) {
49
+ n %= 64;
50
+ if (n === 32) {
51
+ return [util.at(m, 1), util.at(m, 0)];
52
+ } else if (n < 32) {
53
+ return [util.at(m, 0) << n | util.at(m, 1) >>> 32 - n, util.at(m, 1) << n | util.at(m, 0) >>> 32 - n];
54
+ } else {
55
+ n -= 32;
56
+ return [util.at(m, 1) << n | util.at(m, 0) >>> 32 - n, util.at(m, 0) << n | util.at(m, 1) >>> 32 - n];
57
+ }
58
+ }
59
+ function x64LeftShift(m, n) {
60
+ n %= 64;
61
+ if (n === 0) {
62
+ return m;
63
+ } else if (n < 32) {
64
+ return [util.at(m, 0) << n | util.at(m, 1) >>> 32 - n, util.at(m, 1) << n];
65
+ } else {
66
+ return [util.at(m, 1) << n - 32, 0];
67
+ }
68
+ }
69
+ function x64Xor(m, n) {
70
+ return [util.at(m, 0) ^ util.at(n, 0), util.at(m, 1) ^ util.at(n, 1)];
71
+ }
72
+ function x64Fmix(h) {
73
+ h = x64Xor(h, [0, util.at(h, 0) >>> 1]);
74
+ h = x64Multiply(h, [4283543511, 3981806797]);
75
+ h = x64Xor(h, [0, util.at(h, 0) >>> 1]);
76
+ h = x64Multiply(h, [3301882366, 444984403]);
77
+ h = x64Xor(h, [0, util.at(h, 0) >>> 1]);
78
+ return h;
79
+ }
80
+ function x64hash128(key, seed) {
81
+ key = key || "";
82
+ seed = seed || 0;
83
+ const remainder = key.length % 16;
84
+ const bytes = key.length - remainder;
85
+ let h1 = [0, seed];
86
+ let h2 = [0, seed];
87
+ let k1 = [0, 0];
88
+ let k2 = [0, 0];
89
+ const c1 = [2277735313, 289559509];
90
+ const c2 = [1291169091, 658871167];
91
+ let i = 0;
92
+ for (i = 0; i < bytes; i = i + 16) {
93
+ k1 = [
94
+ key.charCodeAt(i + 4) & 255 | (key.charCodeAt(i + 5) & 255) << 8 | (key.charCodeAt(i + 6) & 255) << 16 | (key.charCodeAt(i + 7) & 255) << 24,
95
+ key.charCodeAt(i) & 255 | (key.charCodeAt(i + 1) & 255) << 8 | (key.charCodeAt(i + 2) & 255) << 16 | (key.charCodeAt(i + 3) & 255) << 24
96
+ ];
97
+ k2 = [
98
+ key.charCodeAt(i + 12) & 255 | (key.charCodeAt(i + 13) & 255) << 8 | (key.charCodeAt(i + 14) & 255) << 16 | (key.charCodeAt(i + 15) & 255) << 24,
99
+ key.charCodeAt(i + 8) & 255 | (key.charCodeAt(i + 9) & 255) << 8 | (key.charCodeAt(i + 10) & 255) << 16 | (key.charCodeAt(i + 11) & 255) << 24
100
+ ];
101
+ k1 = x64Multiply(k1, c1);
102
+ k1 = x64Rotl(k1, 31);
103
+ k1 = x64Multiply(k1, c2);
104
+ h1 = x64Xor(h1, k1);
105
+ h1 = x64Rotl(h1, 27);
106
+ h1 = x64Add(h1, h2);
107
+ h1 = x64Add(x64Multiply(h1, [0, 5]), [0, 1390208809]);
108
+ k2 = x64Multiply(k2, c2);
109
+ k2 = x64Rotl(k2, 33);
110
+ k2 = x64Multiply(k2, c1);
111
+ h2 = x64Xor(h2, k2);
112
+ h2 = x64Rotl(h2, 31);
113
+ h2 = x64Add(h2, h1);
114
+ h2 = x64Add(x64Multiply(h2, [0, 5]), [0, 944331445]);
115
+ }
116
+ k1 = [0, 0];
117
+ k2 = [0, 0];
118
+ switch (remainder) {
119
+ case 15:
120
+ k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 14)], 48));
121
+ break;
122
+ case 14:
123
+ k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 13)], 40));
124
+ break;
125
+ case 13:
126
+ k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 12)], 32));
127
+ break;
128
+ case 12:
129
+ k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 11)], 24));
130
+ break;
131
+ case 11:
132
+ k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 10)], 16));
133
+ break;
134
+ case 10:
135
+ k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 9)], 8));
136
+ break;
137
+ case 9:
138
+ k2 = x64Xor(k2, [0, key.charCodeAt(i + 8)]);
139
+ k2 = x64Multiply(k2, c2);
140
+ k2 = x64Rotl(k2, 33);
141
+ k2 = x64Multiply(k2, c1);
142
+ h2 = x64Xor(h2, k2);
143
+ break;
144
+ case 8:
145
+ k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 7)], 56));
146
+ break;
147
+ case 7:
148
+ k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 6)], 48));
149
+ break;
150
+ case 6:
151
+ k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 5)], 40));
152
+ break;
153
+ case 5:
154
+ k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 4)], 32));
155
+ break;
156
+ case 4:
157
+ k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 3)], 24));
158
+ break;
159
+ case 3:
160
+ k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 2)], 16));
161
+ break;
162
+ case 2:
163
+ k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 1)], 8));
164
+ break;
165
+ case 1:
166
+ k1 = x64Xor(k1, [0, key.charCodeAt(i)]);
167
+ k1 = x64Multiply(k1, c1);
168
+ k1 = x64Rotl(k1, 31);
169
+ k1 = x64Multiply(k1, c2);
170
+ h1 = x64Xor(h1, k1);
171
+ }
172
+ h1 = x64Xor(h1, [0, key.length]);
173
+ h2 = x64Xor(h2, [0, key.length]);
174
+ h1 = x64Add(h1, h2);
175
+ h2 = x64Add(h2, h1);
176
+ h1 = x64Fmix(h1);
177
+ h2 = x64Fmix(h2);
178
+ h1 = x64Add(h1, h2);
179
+ h2 = x64Add(h2, h1);
180
+ return ("00000000" + (util.at(h1, 0) >>> 0).toString(16)).slice(-8) + ("00000000" + (util.at(h1, 1) >>> 0).toString(16)).slice(-8) + ("00000000" + (util.at(h2, 0) >>> 0).toString(16)).slice(-8) + ("00000000" + (util.at(h2, 1) >>> 0).toString(16)).slice(-8);
181
+ }
182
+ function picassoCanvas(roundNumber, seed, params) {
183
+ const { area, offsetParameter, multiplier, fontSizeFactor, maxShadowBlur } = params;
184
+ class Prng {
185
+ constructor(seed2) {
186
+ this.currentNumber = seed2 % offsetParameter;
187
+ if (this.currentNumber <= 0) {
188
+ this.currentNumber += offsetParameter;
189
+ }
190
+ }
191
+ getNext() {
192
+ this.currentNumber = multiplier * this.currentNumber % offsetParameter;
193
+ return this.currentNumber;
194
+ }
195
+ }
196
+ function adaptRandomNumberToContext(randomNumber, maxBound, floatAllowed) {
197
+ randomNumber = (randomNumber - 1) / offsetParameter;
198
+ if (floatAllowed) {
199
+ return randomNumber * maxBound;
200
+ }
201
+ return Math.floor(randomNumber * maxBound);
202
+ }
203
+ function addRandomCanvasGradient(prng, context, area2) {
204
+ const canvasGradient = context.createRadialGradient(adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), area2.width, void 0));
205
+ canvasGradient.addColorStop(0, util.at(colors, adaptRandomNumberToContext(prng.getNext(), colors.length, void 0)));
206
+ canvasGradient.addColorStop(1, util.at(colors, adaptRandomNumberToContext(prng.getNext(), colors.length, void 0)));
207
+ context.fillStyle = canvasGradient;
208
+ }
209
+ function generateRandomWord(prng, wordLength) {
210
+ const minAscii = 65;
211
+ const maxAscii = 126;
212
+ const wordGenerated = [];
213
+ for (let i = 0; i < wordLength; i++) {
214
+ const asciiCode = minAscii + prng.getNext() % (maxAscii - minAscii);
215
+ wordGenerated.push(String.fromCharCode(asciiCode));
216
+ }
217
+ return wordGenerated.join("");
218
+ }
219
+ if (window.CanvasRenderingContext2D) {
220
+ return "unknown";
221
+ }
222
+ const colors = [
223
+ "#FF6633",
224
+ "#FFB399",
225
+ "#FF33FF",
226
+ "#FFFF99",
227
+ "#00B3E6",
228
+ "#E6B333",
229
+ "#3366E6",
230
+ "#999966",
231
+ "#99FF99",
232
+ "#B34D4D",
233
+ "#80B300",
234
+ "#809900",
235
+ "#E6B3B3",
236
+ "#6680B3",
237
+ "#66991A",
238
+ "#FF99E6",
239
+ "#CCFF1A",
240
+ "#FF1A66",
241
+ "#E6331A",
242
+ "#33FFCC",
243
+ "#66994D",
244
+ "#B366CC",
245
+ "#4D8000",
246
+ "#B33300",
247
+ "#CC80CC",
248
+ "#66664D",
249
+ "#991AFF",
250
+ "#E666FF",
251
+ "#4DB3FF",
252
+ "#1AB399",
253
+ "#E666B3",
254
+ "#33991A",
255
+ "#CC9999",
256
+ "#B3B31A",
257
+ "#00E680",
258
+ "#4D8066",
259
+ "#809980",
260
+ "#E6FF80",
261
+ "#1AFF33",
262
+ "#999933",
263
+ "#FF3380",
264
+ "#CCCC00",
265
+ "#66E64D",
266
+ "#4D80CC",
267
+ "#9900B3",
268
+ "#E64D66",
269
+ "#4DB380",
270
+ "#FF4D4D",
271
+ "#99E6E6",
272
+ "#6666FF"
273
+ ];
274
+ const primitives = [
275
+ function arc(prng, context, area2) {
276
+ context.beginPath();
277
+ context.arc(adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), Math.min(area2.width, area2.height), void 0), adaptRandomNumberToContext(prng.getNext(), 2 * Math.PI, true), adaptRandomNumberToContext(prng.getNext(), 2 * Math.PI, true));
278
+ context.stroke();
279
+ },
280
+ function text(prng, context, area2) {
281
+ const wordLength = Math.max(1, adaptRandomNumberToContext(prng.getNext(), 5, void 0));
282
+ const textToStroke = generateRandomWord(prng, wordLength);
283
+ context.font = `${area2.height / fontSizeFactor}px aafakefontaa`;
284
+ context.strokeText(textToStroke, adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), area2.width, void 0));
285
+ },
286
+ function bezierCurve(prng, context, area2) {
287
+ context.beginPath();
288
+ context.moveTo(adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0));
289
+ context.bezierCurveTo(adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0));
290
+ context.stroke();
291
+ },
292
+ function quadraticCurve(prng, context, area2) {
293
+ context.beginPath();
294
+ context.moveTo(adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0));
295
+ context.quadraticCurveTo(adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0));
296
+ context.stroke();
297
+ },
298
+ function ellipse(prng, context, area2) {
299
+ context.beginPath();
300
+ context.ellipse(adaptRandomNumberToContext(prng.getNext(), area2.width, void 0), adaptRandomNumberToContext(prng.getNext(), area2.height, void 0), adaptRandomNumberToContext(prng.getNext(), Math.floor(area2.width / 2), void 0), adaptRandomNumberToContext(prng.getNext(), Math.floor(area2.height / 2), void 0), adaptRandomNumberToContext(prng.getNext(), 2 * Math.PI, true), adaptRandomNumberToContext(prng.getNext(), 2 * Math.PI, true), adaptRandomNumberToContext(prng.getNext(), 2 * Math.PI, true));
301
+ context.stroke();
302
+ }
303
+ ];
304
+ try {
305
+ const prng = new Prng(seed);
306
+ const canvasElt = document.createElement("canvas");
307
+ canvasElt.width = area.width;
308
+ canvasElt.height = area.height;
309
+ canvasElt.style.display = "none";
310
+ const context = canvasElt.getContext("2d");
311
+ if (context !== null) {
312
+ for (let i = 0; i < roundNumber; i++) {
313
+ addRandomCanvasGradient(prng, context, area);
314
+ context.shadowBlur = adaptRandomNumberToContext(prng.getNext(), maxShadowBlur, void 0);
315
+ context.shadowColor = util.at(colors, adaptRandomNumberToContext(prng.getNext(), colors.length, void 0));
316
+ const randomPrimitive = util.at(primitives, adaptRandomNumberToContext(prng.getNext(), primitives.length, void 0));
317
+ randomPrimitive(prng, context, area);
318
+ context.fill();
319
+ }
320
+ }
321
+ return x64hash128(canvasElt.toDataURL(), seed);
322
+ } catch (error) {
323
+ throw new Error(`Error with Captcha canvas. context: ${JSON.stringify(error)}`);
324
+ }
325
+ }
326
+ exports.picassoCanvas = picassoCanvas;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const util = require("./util.cjs");
4
+ const ofLen = require("./ofLen.cjs");
5
+ const lodash = require("./lodash.cjs");
6
+ const isMain = require("./isMain.cjs");
7
+ const canvas = require("./canvas.cjs");
8
+ const url = require("./url.cjs");
9
+ exports.at = util.at;
10
+ exports.flattenObj = util.flattenObj;
11
+ exports.get = util.get;
12
+ exports.getCurrentFileDirectory = util.getCurrentFileDirectory;
13
+ exports.isArray = util.isArray;
14
+ exports.isObject = util.isObject;
15
+ exports.kebabCase = util.kebabCase;
16
+ exports.merge = util.merge;
17
+ exports.permutations = util.permutations;
18
+ exports.sleep = util.sleep;
19
+ exports.ofLen = ofLen.ofLen;
20
+ exports.lodash = lodash.lodash;
21
+ exports.rng = lodash.rng;
22
+ exports.seedLodash = lodash.seedLodash;
23
+ exports.setSeedGlobal = lodash.setSeedGlobal;
24
+ exports.isMain = isMain.isMain;
25
+ exports.picassoCanvas = canvas.picassoCanvas;
26
+ exports.getURLProtocol = url.getURLProtocol;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const url = require("url");
4
+ const isMain = (moduleOrImportMetaUrl, binName) => {
5
+ if (typeof moduleOrImportMetaUrl === "string") {
6
+ return process.argv[1] === url.fileURLToPath(moduleOrImportMetaUrl) || binName && process.argv[1] && process.argv[1].indexOf(`node_modules/.bin/${binName}`) > -1;
7
+ }
8
+ if (typeof require !== "undefined" && "exports" in moduleOrImportMetaUrl) {
9
+ return require.main === moduleOrImportMetaUrl;
10
+ }
11
+ return false;
12
+ };
13
+ exports.isMain = isMain;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const _lodash = require("lodash");
4
+ const seedrandom = require("seedrandom");
5
+ const rng = (seed) => {
6
+ const rng2 = seedrandom(seed.toString());
7
+ return {
8
+ double: () => rng2.double(),
9
+ float: () => rng2.quick(),
10
+ int: () => {
11
+ const a = rng2.int32();
12
+ const b = rng2.int32();
13
+ return (a << 21) + b;
14
+ },
15
+ int32: () => rng2.int32(),
16
+ bool: () => rng2.int32() % 2 === 0
17
+ };
18
+ };
19
+ const setSeedGlobal = (seed) => {
20
+ seedrandom(seed.toString(), { global: true });
21
+ };
22
+ const lodash = () => {
23
+ return _lodash.runInContext();
24
+ };
25
+ const seedLodash = (seed) => {
26
+ const orig = Math.random;
27
+ seedrandom(seed.toString(), { global: true });
28
+ const lodash2 = _lodash.runInContext();
29
+ Math.random = orig;
30
+ return lodash2;
31
+ };
32
+ exports.lodash = lodash;
33
+ exports.rng = rng;
34
+ exports.seedLodash = seedLodash;
35
+ exports.setSeedGlobal = setSeedGlobal;