@wener/common 1.0.4 → 2.0.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 (151) hide show
  1. package/lib/cn/DivisionCode.js +55 -32
  2. package/lib/cn/DivisionCode.test.js +140 -0
  3. package/lib/cn/Mod11Checksum.js +80 -37
  4. package/lib/cn/Mod31Checksum.js +89 -40
  5. package/lib/cn/ResidentIdentityCardNumber.js +16 -16
  6. package/lib/cn/ResidentIdentityCardNumber.test.js +21 -0
  7. package/lib/cn/UnifiedSocialCreditCode.js +32 -26
  8. package/lib/cn/UnifiedSocialCreditCode.test.js +16 -0
  9. package/lib/cn/formatDate.js +5 -7
  10. package/lib/cn/index.js +0 -1
  11. package/lib/cn/parseSex.js +0 -2
  12. package/lib/cn/types.d.js +0 -2
  13. package/lib/consola/createStandardConsolaReporter.js +18 -0
  14. package/lib/consola/formatLogObject.js +226 -0
  15. package/lib/consola/index.js +2 -0
  16. package/lib/data/formatSort.js +5 -6
  17. package/lib/data/formatSort.test.js +34 -0
  18. package/lib/data/index.js +0 -1
  19. package/lib/data/maybeNumber.js +11 -5
  20. package/lib/data/parseSort.js +28 -22
  21. package/lib/data/parseSort.test.js +188 -0
  22. package/lib/data/resolvePagination.js +27 -16
  23. package/lib/data/resolvePagination.test.js +232 -0
  24. package/lib/data/types.d.js +0 -2
  25. package/lib/index.js +0 -1
  26. package/lib/jsonschema/JsonSchema.js +80 -54
  27. package/lib/jsonschema/JsonSchema.test.js +137 -0
  28. package/lib/jsonschema/index.js +0 -1
  29. package/lib/jsonschema/types.d.js +5 -3
  30. package/lib/meta/defineFileType.js +103 -20
  31. package/lib/meta/defineInit.js +250 -31
  32. package/lib/meta/defineMetadata.js +140 -24
  33. package/lib/meta/defineMetadata.test.js +13 -0
  34. package/lib/meta/index.js +0 -1
  35. package/lib/password/PHC.js +87 -63
  36. package/lib/password/PHC.test.js +539 -0
  37. package/lib/password/Password.js +291 -29
  38. package/lib/password/Password.test.js +362 -0
  39. package/lib/password/createArgon2PasswordAlgorithm.js +191 -35
  40. package/lib/password/createBase64PasswordAlgorithm.js +141 -8
  41. package/lib/password/createBcryptPasswordAlgorithm.js +168 -13
  42. package/lib/password/createPBKDF2PasswordAlgorithm.js +228 -46
  43. package/lib/password/createScryptPasswordAlgorithm.js +211 -55
  44. package/lib/password/index.js +0 -1
  45. package/lib/password/server/index.js +0 -1
  46. package/lib/resource/Identifiable.js +1 -0
  47. package/lib/resource/getTitleOfResource.js +10 -0
  48. package/lib/resource/index.js +1 -0
  49. package/lib/resource/schema/AnyResourceSchema.js +89 -0
  50. package/lib/resource/schema/BaseResourceSchema.js +29 -0
  51. package/lib/resource/schema/ResourceActionType.js +118 -0
  52. package/lib/resource/schema/ResourceStatus.js +93 -0
  53. package/lib/resource/schema/ResourceType.js +24 -0
  54. package/lib/resource/schema/SchemaRegistry.js +38 -0
  55. package/lib/resource/schema/SexType.js +10 -0
  56. package/lib/resource/schema/types.js +89 -0
  57. package/lib/resource/schema/types.test.js +14 -0
  58. package/lib/schema/TypeSchema.d.js +1 -0
  59. package/lib/schema/createSchemaData.js +173 -0
  60. package/lib/schema/findJsonSchemaByPath.js +49 -0
  61. package/lib/schema/getSchemaCache.js +11 -0
  62. package/lib/schema/getSchemaOptions.js +24 -0
  63. package/lib/schema/index.js +5 -0
  64. package/lib/schema/toJsonSchema.js +441 -0
  65. package/lib/schema/toJsonSchema.test.js +27 -0
  66. package/lib/schema/validate.js +124 -0
  67. package/lib/search/AdvanceSearch.js +0 -1
  68. package/lib/search/AdvanceSearch.test.js +435 -0
  69. package/lib/search/formatAdvanceSearch.js +41 -27
  70. package/lib/search/index.js +0 -1
  71. package/lib/search/optimizeAdvanceSearch.js +79 -25
  72. package/lib/search/parseAdvanceSearch.js +5 -5
  73. package/lib/search/parser.d.js +0 -2
  74. package/lib/search/parser.js +97 -74
  75. package/lib/search/types.d.js +0 -2
  76. package/lib/tools/generateSchema.js +201 -0
  77. package/lib/tools/renderJsonSchemaToMarkdownDoc.js +143 -55
  78. package/package.json +30 -9
  79. package/src/consola/createStandardConsolaReporter.ts +31 -0
  80. package/src/consola/formatLogObject.ts +171 -0
  81. package/src/consola/index.ts +2 -0
  82. package/src/data/maybeNumber.ts +5 -1
  83. package/src/data/resolvePagination.test.ts +1 -1
  84. package/src/data/resolvePagination.ts +18 -7
  85. package/src/data/types.d.ts +12 -0
  86. package/src/jsonschema/JsonSchema.test.ts +17 -0
  87. package/src/jsonschema/JsonSchema.ts +4 -4
  88. package/src/jsonschema/types.d.ts +63 -12
  89. package/src/resource/Identifiable.ts +3 -0
  90. package/src/resource/getTitleOfResource.tsx +6 -0
  91. package/src/resource/index.ts +3 -0
  92. package/src/resource/schema/AnyResourceSchema.ts +113 -0
  93. package/src/resource/schema/BaseResourceSchema.ts +32 -0
  94. package/src/resource/schema/ResourceActionType.ts +123 -0
  95. package/src/resource/schema/ResourceStatus.ts +94 -0
  96. package/src/resource/schema/ResourceType.ts +25 -0
  97. package/src/resource/schema/SchemaRegistry.ts +42 -0
  98. package/src/resource/schema/SexType.ts +13 -0
  99. package/src/resource/schema/types.test.ts +18 -0
  100. package/src/resource/schema/types.ts +105 -0
  101. package/src/schema/TypeSchema.d.ts +32 -0
  102. package/src/schema/createSchemaData.ts +81 -0
  103. package/src/schema/findJsonSchemaByPath.ts +37 -0
  104. package/src/schema/getSchemaCache.ts +21 -0
  105. package/src/schema/getSchemaOptions.ts +24 -0
  106. package/src/schema/index.ts +6 -0
  107. package/src/schema/toJsonSchema.test.ts +37 -0
  108. package/src/schema/toJsonSchema.ts +200 -0
  109. package/src/schema/validate.ts +135 -0
  110. package/src/tools/generateSchema.ts +39 -0
  111. package/lib/cn/DivisionCode.js.map +0 -1
  112. package/lib/cn/Mod11Checksum.js.map +0 -1
  113. package/lib/cn/Mod31Checksum.js.map +0 -1
  114. package/lib/cn/ResidentIdentityCardNumber.js.map +0 -1
  115. package/lib/cn/UnifiedSocialCreditCode.js.map +0 -1
  116. package/lib/cn/formatDate.js.map +0 -1
  117. package/lib/cn/index.js.map +0 -1
  118. package/lib/cn/parseSex.js.map +0 -1
  119. package/lib/cn/types.d.js.map +0 -1
  120. package/lib/data/formatSort.js.map +0 -1
  121. package/lib/data/index.js.map +0 -1
  122. package/lib/data/maybeNumber.js.map +0 -1
  123. package/lib/data/parseSort.js.map +0 -1
  124. package/lib/data/resolvePagination.js.map +0 -1
  125. package/lib/data/types.d.js.map +0 -1
  126. package/lib/index.js.map +0 -1
  127. package/lib/jsonschema/JsonSchema.js.map +0 -1
  128. package/lib/jsonschema/index.js.map +0 -1
  129. package/lib/jsonschema/types.d.js.map +0 -1
  130. package/lib/meta/defineFileType.js.map +0 -1
  131. package/lib/meta/defineInit.js.map +0 -1
  132. package/lib/meta/defineMetadata.js.map +0 -1
  133. package/lib/meta/index.js.map +0 -1
  134. package/lib/password/PHC.js.map +0 -1
  135. package/lib/password/Password.js.map +0 -1
  136. package/lib/password/createArgon2PasswordAlgorithm.js.map +0 -1
  137. package/lib/password/createBase64PasswordAlgorithm.js.map +0 -1
  138. package/lib/password/createBcryptPasswordAlgorithm.js.map +0 -1
  139. package/lib/password/createPBKDF2PasswordAlgorithm.js.map +0 -1
  140. package/lib/password/createScryptPasswordAlgorithm.js.map +0 -1
  141. package/lib/password/index.js.map +0 -1
  142. package/lib/password/server/index.js.map +0 -1
  143. package/lib/search/AdvanceSearch.js.map +0 -1
  144. package/lib/search/formatAdvanceSearch.js.map +0 -1
  145. package/lib/search/index.js.map +0 -1
  146. package/lib/search/optimizeAdvanceSearch.js.map +0 -1
  147. package/lib/search/parseAdvanceSearch.js.map +0 -1
  148. package/lib/search/parser.d.js.map +0 -1
  149. package/lib/search/parser.js.map +0 -1
  150. package/lib/search/types.d.js.map +0 -1
  151. package/lib/tools/renderJsonSchemaToMarkdownDoc.js.map +0 -1
@@ -0,0 +1,539 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ }
6
+ catch (error) {
7
+ reject(error);
8
+ return;
9
+ }
10
+ if (info.done) {
11
+ resolve(value);
12
+ }
13
+ else {
14
+ Promise.resolve(value).then(_next, _throw);
15
+ }
16
+ }
17
+ function _async_to_generator(fn) {
18
+ return function () {
19
+ var self = this, args = arguments;
20
+ return new Promise(function (resolve, reject) {
21
+ var gen = fn.apply(self, args);
22
+ function _next(value) {
23
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
24
+ }
25
+ function _throw(err) {
26
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
27
+ }
28
+ _next(undefined);
29
+ });
30
+ };
31
+ }
32
+ function _ts_generator(thisArg, body) {
33
+ var f, y, t, _ = {
34
+ label: 0,
35
+ sent: function () {
36
+ if (t[0] & 1)
37
+ throw t[1];
38
+ return t[1];
39
+ },
40
+ trys: [],
41
+ ops: []
42
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
43
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function () {
44
+ return this;
45
+ }), g;
46
+ function verb(n) {
47
+ return function (v) {
48
+ return step([
49
+ n,
50
+ v
51
+ ]);
52
+ };
53
+ }
54
+ function step(op) {
55
+ if (f)
56
+ throw new TypeError("Generator is already executing.");
57
+ while (g && (g = 0, op[0] && (_ = 0)), _)
58
+ try {
59
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
60
+ return t;
61
+ if (y = 0, t)
62
+ op = [
63
+ op[0] & 2,
64
+ t.value
65
+ ];
66
+ switch (op[0]) {
67
+ case 0:
68
+ case 1:
69
+ t = op;
70
+ break;
71
+ case 4:
72
+ _.label++;
73
+ return {
74
+ value: op[1],
75
+ done: false
76
+ };
77
+ case 5:
78
+ _.label++;
79
+ y = op[1];
80
+ op = [
81
+ 0
82
+ ];
83
+ continue;
84
+ case 7:
85
+ op = _.ops.pop();
86
+ _.trys.pop();
87
+ continue;
88
+ default:
89
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
90
+ _ = 0;
91
+ continue;
92
+ }
93
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
94
+ _.label = op[1];
95
+ break;
96
+ }
97
+ if (op[0] === 6 && _.label < t[1]) {
98
+ _.label = t[1];
99
+ t = op;
100
+ break;
101
+ }
102
+ if (t && _.label < t[2]) {
103
+ _.label = t[2];
104
+ _.ops.push(op);
105
+ break;
106
+ }
107
+ if (t[2])
108
+ _.ops.pop();
109
+ _.trys.pop();
110
+ continue;
111
+ }
112
+ op = body.call(thisArg, _);
113
+ }
114
+ catch (e) {
115
+ op = [
116
+ 6,
117
+ e
118
+ ];
119
+ y = 0;
120
+ }
121
+ finally {
122
+ f = t = 0;
123
+ }
124
+ if (op[0] & 5)
125
+ throw op[1];
126
+ return {
127
+ value: op[0] ? op[1] : void 0,
128
+ done: true
129
+ };
130
+ }
131
+ }
132
+ import { ArrayBuffers } from "@wener/utils";
133
+ import { describe, expect, it } from "vitest";
134
+ import { PHC } from "./PHC.js";
135
+ var deserialize = PHC.deserialize, serialize = PHC.serialize;
136
+ describe("deserialize", function () {
137
+ it("should deserialize correct phc strings", function () {
138
+ sdData.serialized.forEach(function (serialized, i) {
139
+ expect(deserialize(serialized), "Failed to deserialize ".concat(serialized)).toEqual(sdData.deserialized[i]);
140
+ });
141
+ });
142
+ it("should throw errors if trying to deserialize an invalid phc string", function () {
143
+ return _async_to_generator(function () {
144
+ return _ts_generator(this, function (_state) {
145
+ expect(function () {
146
+ return deserialize(null);
147
+ }).toThrow("pchstr must be a non-empty string");
148
+ expect(function () {
149
+ return deserialize("a$invalid");
150
+ }).toThrow("pchstr must contain a $ as first char");
151
+ expect(function () {
152
+ return deserialize("$b$c$d$e$f");
153
+ }).toThrow("pchstr contains too many fileds: 5/4");
154
+ expect(function () {
155
+ return deserialize("invalid");
156
+ }).toThrow("pchstr must contain a $ as first char");
157
+ expect(function () {
158
+ return deserialize("$i_n_v_a_l_i_d");
159
+ }).toThrowError(/id must satisfy/);
160
+ expect(function () {
161
+ return deserialize("$pbkdf2$rounds_=1000");
162
+ }).toThrowError(/params names must satisfy/);
163
+ expect(function () {
164
+ return deserialize("$pbkdf2$rounds=1000@");
165
+ }).toThrowError(/params values must satisfy/);
166
+ expect(function () {
167
+ return deserialize("$pbkdf2$rounds:1000");
168
+ }).toThrowError(/params must be in the format name=value/);
169
+ expect(function () {
170
+ return deserialize("$argon2i$unrecognized$m=120,t=5000,p=2$EkCWX6pSTqWruiR0");
171
+ }).toThrowError(/pchstr contains unrecognized fileds/);
172
+ expect(function () {
173
+ return deserialize("$argon2i$unrecognized$v=19$m=120,t=5000,p=2$EkCWX6pSTqWruiR0");
174
+ }).toThrow("pchstr contains too many fileds: 5/4");
175
+ expect(function () {
176
+ return deserialize("$argon2i$v=19$unrecognized$m=120,t=5000,p=2$EkCWX6pSTqWruiR0");
177
+ }).toThrowError(/pchstr contains unrecognized fileds/);
178
+ return [
179
+ 2
180
+ ];
181
+ });
182
+ })();
183
+ });
184
+ });
185
+ describe("serialize", function () {
186
+ it("should serialize correct phc objects", function () {
187
+ sdData.deserialized.forEach(function (_, i) {
188
+ expect(serialize(sdData.deserialized[i])).toEqual(sdData.serialized[i]);
189
+ });
190
+ sData.deserialized.forEach(function (_, i) {
191
+ expect(serialize(sData.deserialized[i])).toEqual(sData.serialized[i]);
192
+ });
193
+ });
194
+ it("should throw errors if trying to serialize with invalid arguments", function () {
195
+ return _async_to_generator(function () {
196
+ return _ts_generator(this, function (_state) {
197
+ expect(function () {
198
+ return serialize(null);
199
+ }).toThrow("opts must be an object");
200
+ expect(function () {
201
+ return serialize({});
202
+ }).toThrow("id must be a string");
203
+ expect(function () {
204
+ return serialize({
205
+ id: "i_n_v_a_l_i_d"
206
+ });
207
+ }).toThrowError(/id must satisfy/);
208
+ expect(function () {
209
+ return serialize({
210
+ id: "pbkdf2",
211
+ params: null
212
+ });
213
+ }).toThrow("params must be an object");
214
+ expect(function () {
215
+ return serialize({
216
+ id: "pbkdf2",
217
+ params: {
218
+ i: {}
219
+ }
220
+ });
221
+ }).toThrow("params values must be strings");
222
+ expect(function () {
223
+ return serialize({
224
+ id: "pbkdf2",
225
+ params: {
226
+ rounds_: "1000"
227
+ }
228
+ });
229
+ }).toThrowError(/params names must satisfy/);
230
+ expect(function () {
231
+ return serialize({
232
+ id: "pbkdf2",
233
+ params: {
234
+ rounds: "1000@"
235
+ }
236
+ });
237
+ }).toThrowError(/params values must satisfy/);
238
+ expect(function () {
239
+ return serialize({
240
+ id: "pbkdf2",
241
+ params: {
242
+ rounds: "1000"
243
+ },
244
+ salt: "string"
245
+ });
246
+ }).toThrow("salt must be a Buffer");
247
+ expect(function () {
248
+ return serialize({
249
+ id: "argon2id",
250
+ version: -10
251
+ });
252
+ }).toThrow("version must be a positive integer number");
253
+ expect(function () {
254
+ return serialize({
255
+ id: "pbkdf2",
256
+ params: {
257
+ rounds: "1000"
258
+ },
259
+ salt: bufferFrom("string"),
260
+ hash: "string"
261
+ });
262
+ }).toThrow("hash must be a Buffer");
263
+ return [
264
+ 2
265
+ ];
266
+ });
267
+ })();
268
+ });
269
+ });
270
+ var bufferFrom = function (a, b) {
271
+ return ArrayBuffers.from(a, b, Uint8Array);
272
+ };
273
+ var sdData = {
274
+ serialized: [
275
+ "$argon2i$m=120,t=5000,p=2",
276
+ "$argon2i$m=120,t=4294967295,p=2",
277
+ "$argon2i$m=2040,t=5000,p=255",
278
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0",
279
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0ZQ",
280
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0ZQA",
281
+ "$argon2i$m=120,t=5000,p=2,data=sRlHhRmKUGzdOmXn01XmXygd5Kc",
282
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0,data=sRlHhRmKUGzdOmXn01XmXygd5Kc",
283
+ "$argon2i$m=120,t=5000,p=2$/LtFjH5rVL8",
284
+ "$argon2i$m=120,t=5000,p=2$4fXXG0spB92WPB1NitT8/OH0VKI",
285
+ "$argon2i$m=120,t=5000,p=2$BwUgJHHQaynE+a4nZrYRzOllGSjjxuxNXxyNRUtI6Dlw/zlbt6PzOL8Onfqs6TcG",
286
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0$4fXXG0spB92WPB1NitT8/OH0VKI",
287
+ "$argon2i$m=120,t=5000,p=2,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$4fXXG0spB92WPB1NitT8/OH0VKI",
288
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$4fXXG0spB92WPB1NitT8/OH0VKI",
289
+ "$argon2i$m=120,t=5000,p=2$4fXXG0spB92WPB1NitT8/OH0VKI$iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM",
290
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0$4fXXG0spB92WPB1NitT8/OH0VKI$iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM",
291
+ "$argon2i$m=120,t=5000,p=2,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$4fXXG0spB92WPB1NitT8/OH0VKI$iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM",
292
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$4fXXG0spB92WPB1NitT8/OH0VKI$iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM",
293
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$iHSDPHzUhPzK7rCcJgOFfg$EkCWX6pSTqWruiR0",
294
+ "$argon2i$m=120,t=5000,p=2,keyid=Hj5+dsK0,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$iHSDPHzUhPzK7rCcJgOFfg$J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g",
295
+ "$scrypt$ln=1,r=16,p=1$$d9ZXYjhleyA7GcpCwYoEl/FrSETjB0ro39/6P+3iFEL80Aad7QlI+DJqdToPyB8X6NPg+y4NNijPNeIMONGJBg",
296
+ "$argon2i$v=19$m=120,t=5000,p=2,keyid=Hj5+dsK0,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$iHSDPHzUhPzK7rCcJgOFfg$J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g"
297
+ ],
298
+ deserialized: [
299
+ {
300
+ id: "argon2i",
301
+ params: {
302
+ m: 120,
303
+ t: 5000,
304
+ p: 2
305
+ }
306
+ },
307
+ {
308
+ id: "argon2i",
309
+ params: {
310
+ m: 120,
311
+ t: 4294967295,
312
+ p: 2
313
+ }
314
+ },
315
+ {
316
+ id: "argon2i",
317
+ params: {
318
+ m: 2040,
319
+ t: 5000,
320
+ p: 255
321
+ }
322
+ },
323
+ {
324
+ id: "argon2i",
325
+ params: {
326
+ m: 120,
327
+ t: 5000,
328
+ p: 2,
329
+ keyid: "Hj5+dsK0"
330
+ }
331
+ },
332
+ {
333
+ id: "argon2i",
334
+ params: {
335
+ m: 120,
336
+ t: 5000,
337
+ p: 2,
338
+ keyid: "Hj5+dsK0ZQ"
339
+ }
340
+ },
341
+ {
342
+ id: "argon2i",
343
+ params: {
344
+ m: 120,
345
+ t: 5000,
346
+ p: 2,
347
+ keyid: "Hj5+dsK0ZQA"
348
+ }
349
+ },
350
+ {
351
+ id: "argon2i",
352
+ params: {
353
+ m: 120,
354
+ t: 5000,
355
+ p: 2,
356
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
357
+ }
358
+ },
359
+ {
360
+ id: "argon2i",
361
+ params: {
362
+ m: 120,
363
+ t: 5000,
364
+ p: 2,
365
+ keyid: "Hj5+dsK0",
366
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
367
+ }
368
+ },
369
+ {
370
+ id: "argon2i",
371
+ params: {
372
+ m: 120,
373
+ t: 5000,
374
+ p: 2
375
+ },
376
+ salt: bufferFrom("/LtFjH5rVL8", "base64")
377
+ },
378
+ {
379
+ id: "argon2i",
380
+ params: {
381
+ m: 120,
382
+ t: 5000,
383
+ p: 2
384
+ },
385
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64")
386
+ },
387
+ {
388
+ id: "argon2i",
389
+ params: {
390
+ m: 120,
391
+ t: 5000,
392
+ p: 2
393
+ },
394
+ salt: bufferFrom("BwUgJHHQaynE+a4nZrYRzOllGSjjxuxNXxyNRUtI6Dlw/zlbt6PzOL8Onfqs6TcG", "base64")
395
+ },
396
+ {
397
+ id: "argon2i",
398
+ params: {
399
+ m: 120,
400
+ t: 5000,
401
+ p: 2,
402
+ keyid: "Hj5+dsK0"
403
+ },
404
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64")
405
+ },
406
+ {
407
+ id: "argon2i",
408
+ params: {
409
+ m: 120,
410
+ t: 5000,
411
+ p: 2,
412
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
413
+ },
414
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64")
415
+ },
416
+ {
417
+ id: "argon2i",
418
+ params: {
419
+ m: 120,
420
+ t: 5000,
421
+ p: 2,
422
+ keyid: "Hj5+dsK0",
423
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
424
+ },
425
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64")
426
+ },
427
+ {
428
+ id: "argon2i",
429
+ params: {
430
+ m: 120,
431
+ t: 5000,
432
+ p: 2
433
+ },
434
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64"),
435
+ hash: bufferFrom("iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM", "base64")
436
+ },
437
+ {
438
+ id: "argon2i",
439
+ params: {
440
+ m: 120,
441
+ t: 5000,
442
+ p: 2,
443
+ keyid: "Hj5+dsK0"
444
+ },
445
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64"),
446
+ hash: bufferFrom("iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM", "base64")
447
+ },
448
+ {
449
+ id: "argon2i",
450
+ params: {
451
+ m: 120,
452
+ t: 5000,
453
+ p: 2,
454
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
455
+ },
456
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64"),
457
+ hash: bufferFrom("iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM", "base64")
458
+ },
459
+ {
460
+ id: "argon2i",
461
+ params: {
462
+ m: 120,
463
+ t: 5000,
464
+ p: 2,
465
+ keyid: "Hj5+dsK0",
466
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
467
+ },
468
+ salt: bufferFrom("4fXXG0spB92WPB1NitT8/OH0VKI", "base64"),
469
+ hash: bufferFrom("iPBVuORECm5biUsjq33hn9/7BKqy9aPWKhFfK2haEsM", "base64")
470
+ },
471
+ {
472
+ id: "argon2i",
473
+ params: {
474
+ m: 120,
475
+ t: 5000,
476
+ p: 2,
477
+ keyid: "Hj5+dsK0",
478
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
479
+ },
480
+ salt: bufferFrom("iHSDPHzUhPzK7rCcJgOFfg", "base64"),
481
+ hash: bufferFrom("EkCWX6pSTqWruiR0", "base64")
482
+ },
483
+ {
484
+ id: "argon2i",
485
+ params: {
486
+ m: 120,
487
+ t: 5000,
488
+ p: 2,
489
+ keyid: "Hj5+dsK0",
490
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
491
+ },
492
+ salt: bufferFrom("iHSDPHzUhPzK7rCcJgOFfg", "base64"),
493
+ hash: bufferFrom("J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g", "base64")
494
+ },
495
+ {
496
+ id: "scrypt",
497
+ params: {
498
+ ln: 1,
499
+ r: 16,
500
+ p: 1
501
+ },
502
+ salt: bufferFrom("", "hex"),
503
+ hash: bufferFrom("d9ZXYjhleyA7GcpCwYoEl/FrSETjB0ro39/6P+3iFEL80Aad7QlI+DJqdToPyB8X6NPg+y4NNijPNeIMONGJBg", "base64")
504
+ },
505
+ {
506
+ id: "argon2i",
507
+ version: 19,
508
+ params: {
509
+ m: 120,
510
+ t: 5000,
511
+ p: 2,
512
+ keyid: "Hj5+dsK0",
513
+ data: "sRlHhRmKUGzdOmXn01XmXygd5Kc"
514
+ },
515
+ salt: bufferFrom("iHSDPHzUhPzK7rCcJgOFfg", "base64"),
516
+ hash: bufferFrom("J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g", "base64")
517
+ }
518
+ ]
519
+ };
520
+ var sData = {
521
+ serialized: [
522
+ "$argon2i$v=19$m=120,t=5000,p=2,keyid=Hj5+dsK0,data=sRlHhRmKUGzdOmXn01XmXygd5Kc$iHSDPHzUhPzK7rCcJgOFfg$J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g"
523
+ ],
524
+ deserialized: [
525
+ {
526
+ id: "argon2i",
527
+ version: 19,
528
+ params: {
529
+ m: 120,
530
+ t: 5000,
531
+ p: 2,
532
+ keyid: "Hj5+dsK0",
533
+ data: bufferFrom("sRlHhRmKUGzdOmXn01XmXygd5Kc", "base64")
534
+ },
535
+ salt: bufferFrom("iHSDPHzUhPzK7rCcJgOFfg", "base64"),
536
+ hash: bufferFrom("J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g", "base64")
537
+ }
538
+ ]
539
+ };