@unchainedshop/core-users 3.0.0-rc4 → 3.0.0-rc6

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 (29) hide show
  1. package/lib/module/configureUsersWebAuthnModule.d.ts.map +1 -1
  2. package/lib/module/configureUsersWebAuthnModule.js +31 -10
  3. package/lib/module/configureUsersWebAuthnModule.js.map +1 -1
  4. package/package.json +15 -7
  5. package/src/module/configureUsersWebAuthnModule.ts +33 -18
  6. package/lib/module/configureUsersModule_BACKUP_57123.d.ts +0 -73
  7. package/lib/module/configureUsersModule_BACKUP_57123.d.ts.map +0 -1
  8. package/lib/module/configureUsersModule_BACKUP_57123.js +0 -567
  9. package/lib/module/configureUsersModule_BACKUP_57123.js.map +0 -1
  10. package/lib/module/configureUsersModule_BASE_57123.d.ts +0 -131
  11. package/lib/module/configureUsersModule_BASE_57123.d.ts.map +0 -1
  12. package/lib/module/configureUsersModule_BASE_57123.js +0 -563
  13. package/lib/module/configureUsersModule_BASE_57123.js.map +0 -1
  14. package/lib/module/configureUsersModule_LOCAL_57123.d.ts +0 -131
  15. package/lib/module/configureUsersModule_LOCAL_57123.d.ts.map +0 -1
  16. package/lib/module/configureUsersModule_LOCAL_57123.js +0 -564
  17. package/lib/module/configureUsersModule_LOCAL_57123.js.map +0 -1
  18. package/lib/module/configureUsersModule_REMOTE_57123.d.ts +0 -74
  19. package/lib/module/configureUsersModule_REMOTE_57123.d.ts.map +0 -1
  20. package/lib/module/configureUsersModule_REMOTE_57123.js +0 -567
  21. package/lib/module/configureUsersModule_REMOTE_57123.js.map +0 -1
  22. package/lib/module/sha256.d.ts +0 -2
  23. package/lib/module/sha256.d.ts.map +0 -1
  24. package/lib/module/sha256.js +0 -6
  25. package/lib/module/sha256.js.map +0 -1
  26. package/lib/types.d.ts +0 -91
  27. package/lib/types.d.ts.map +0 -1
  28. package/lib/types.js +0 -2
  29. package/lib/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureUsersModule_REMOTE_57123.d.ts","sourceRoot":"","sources":["../../src/module/configureUsersModule_REMOTE_57123.ts"],"names":[],"mappings":"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"}
@@ -1,567 +0,0 @@
1
- import bcrypt from 'bcryptjs';
2
- import { emit, registerEvents } from '@unchainedshop/events';
3
- import { generateDbFilterById, buildSortOptions, generateDbObjectId, } from '@unchainedshop/mongodb';
4
- import { systemLocale, SortDirection } from '@unchainedshop/utils';
5
- import { UsersCollection } from '../db/UsersCollection.js';
6
- import addMigrations from './addMigrations.js';
7
- import { userSettings } from '../users-settings.js';
8
- import { configureUsersWebAuthnModule } from './configureUsersWebAuthnModule.js';
9
- import * as pbkdf2 from './pbkdf2.js';
10
- import * as sha256 from './sha256.js';
11
- import crypto from 'crypto';
12
- const USER_EVENTS = [
13
- 'USER_ACCOUNT_ACTION',
14
- 'USER_CREATE',
15
- 'USER_ADD_ROLES',
16
- 'USER_UPDATE',
17
- 'USER_UPDATE_PROFILE',
18
- 'USER_UPDATE_ROLE',
19
- 'USER_UPDATE_TAGS',
20
- 'USER_UPDATE_AVATAR',
21
- 'USER_UPDATE_GUEST',
22
- 'USER_UPDATE_USERNAME',
23
- 'USER_UPDATE_PASSWORD',
24
- 'USER_UPDATE_HEARTBEAT',
25
- 'USER_UPDATE_BILLING_ADDRESS',
26
- 'USER_UPDATE_LAST_CONTACT',
27
- 'USER_REMOVE',
28
- ];
29
- export const removeConfidentialServiceHashes = (rawUser) => {
30
- const user = rawUser;
31
- delete user?.services;
32
- return user;
33
- };
34
- export const buildFindSelector = ({ includeGuests, queryString, ...rest }) => {
35
- const selector = { ...rest, deleted: null };
36
- if (!includeGuests)
37
- selector.guest = { $in: [false, null] };
38
- if (queryString) {
39
- selector.$text = { $search: queryString };
40
- }
41
- return selector;
42
- };
43
- export const configureUsersModule = async ({ db, options, migrationRepository, }) => {
44
- userSettings.configureSettings(options || {}, db);
45
- registerEvents(USER_EVENTS);
46
- const Users = await UsersCollection(db);
47
- // Migration
48
- addMigrations(migrationRepository);
49
- const webAuthn = await configureUsersWebAuthnModule({ db, options });
50
- return {
51
- // Queries
52
- webAuthn,
53
- async count(query) {
54
- const userCount = await Users.countDocuments(buildFindSelector(query));
55
- return userCount;
56
- },
57
- findUserById: async (userId) => {
58
- if (!userId)
59
- return null;
60
- return Users.findOne(generateDbFilterById(userId), {});
61
- },
62
- async findUserByUsername(username) {
63
- if (!username)
64
- return null;
65
- return Users.findOne({ username }, {});
66
- },
67
- async findUserByEmail(email) {
68
- if (!email)
69
- return null;
70
- return Users.findOne({ 'emails.address': { $regex: email, $options: 'i' } }, {});
71
- },
72
- async findUnverifiedEmailToken(plainToken) {
73
- if (!plainToken)
74
- return null;
75
- const token = await sha256.hash(plainToken);
76
- const user = await Users.findOne({
77
- 'services.email.verificationTokens': {
78
- $elemMatch: {
79
- token,
80
- when: { $gt: new Date().getTime() },
81
- },
82
- },
83
- }, {});
84
- if (!user)
85
- return null;
86
- const verificationToken = user.services.email.verificationTokens.find((v) => v.token === token);
87
- return {
88
- userId: user._id,
89
- ...verificationToken,
90
- };
91
- },
92
- async verifyEmail(userId, address) {
93
- await Users.updateOne({ _id: userId }, {
94
- $set: {
95
- 'emails.$[email].verified': true,
96
- },
97
- $pull: {
98
- 'services.email.verificationTokens': {
99
- address,
100
- },
101
- },
102
- }, {
103
- arrayFilters: [{ 'email.address': address }],
104
- });
105
- await emit('USER_ACCOUNT_ACTION', {
106
- action: 'email-verified',
107
- address,
108
- userId,
109
- });
110
- },
111
- async findUserByResetToken(plainToken) {
112
- const token = await sha256.hash(plainToken);
113
- const user = await Users.findOne({
114
- 'services.password.reset': {
115
- $elemMatch: {
116
- token,
117
- when: { $gt: new Date().getTime() },
118
- },
119
- },
120
- }, {});
121
- return user;
122
- },
123
- async findUserByToken(plainToken) {
124
- const token = await sha256.hash(plainToken);
125
- if (token) {
126
- return Users.findOne({
127
- 'services.token.secret': token,
128
- });
129
- }
130
- return null;
131
- },
132
- async findUser(query, findOptions) {
133
- const selector = buildFindSelector(query);
134
- return Users.findOne(selector, findOptions);
135
- },
136
- async findUsers({ limit, offset, ...query }) {
137
- const defaultSort = [{ key: 'created', value: SortDirection.ASC }];
138
- const selector = buildFindSelector(query);
139
- if (query.queryString) {
140
- return Users.find(selector, {
141
- skip: offset,
142
- limit,
143
- projection: { score: { $meta: 'textScore' } },
144
- sort: { score: { $meta: 'textScore' } },
145
- }).toArray();
146
- }
147
- return Users.find(selector, {
148
- skip: offset,
149
- limit,
150
- sort: buildSortOptions(query.sort || defaultSort),
151
- }).toArray();
152
- },
153
- async userExists({ userId }) {
154
- const userCount = await Users.countDocuments({ _id: userId, deleted: null }, { limit: 1 });
155
- return userCount === 1;
156
- },
157
- // Transformations
158
- primaryEmail(user) {
159
- return (user.emails || []).sort((left, right) => Number(right.verified) - Number(left.verified))?.[0];
160
- },
161
- userLocale(user) {
162
- if (!user?.lastLogin?.locale)
163
- return systemLocale;
164
- return new Intl.Locale(user.lastLogin.locale);
165
- },
166
- // Mutations
167
- async createUser({ password, email, username, initialPassword, roles, webAuthnPublicKeyCredentials, ...userData }, { skipMessaging, skipPasswordEnrollment, } = {}) {
168
- const normalizedUserData = await userSettings.validateNewUser(userData);
169
- const webAuthnService = webAuthnPublicKeyCredentials &&
170
- (await this.webAuthn.verifyCredentialCreation(username, webAuthnPublicKeyCredentials));
171
- const services = {};
172
- if (email) {
173
- if (!(await userSettings.validateEmail(email))) {
174
- throw new Error(`E-Mail address ${email} is invalid`, { cause: 'EMAIL_INVALID' });
175
- }
176
- }
177
- if (password) {
178
- if (!(await userSettings.validatePassword(password))) {
179
- throw new Error(`Provided password is invalid`, { cause: 'PASSWORD_INVALID' });
180
- }
181
- services.password = await this.hashPassword(password);
182
- }
183
- if (webAuthnService) {
184
- services.webAuthn = [webAuthnService];
185
- }
186
- const doc = {
187
- ...normalizedUserData,
188
- _id: normalizedUserData._id || generateDbObjectId(),
189
- roles: roles || [],
190
- initialPassword: Boolean(initialPassword),
191
- services,
192
- emails: email ? [{ address: email, verified: false }] : [],
193
- created: new Date(),
194
- };
195
- if (username) {
196
- if (!(await userSettings.validateUsername(username))) {
197
- throw new Error(`Username ${username} is invalid`, { cause: 'USERNAME_INVALID' });
198
- }
199
- doc.username = username;
200
- }
201
- const { insertedId: userId } = await Users.insertOne(doc);
202
- try {
203
- const autoMessagingEnabled = skipMessaging
204
- ? false
205
- : userSettings.autoMessagingAfterUserCreation && !!email && !!userId;
206
- if (autoMessagingEnabled) {
207
- if (password === undefined) {
208
- if (!skipPasswordEnrollment && !webAuthnService) {
209
- await this.sendResetPasswordEmail(userId, email, true);
210
- }
211
- }
212
- else {
213
- await this.sendVerificationEmail(userId, email);
214
- }
215
- }
216
- }
217
- catch {
218
- /* */
219
- }
220
- const user = await Users.findOne({ _id: userId }, {});
221
- await emit('USER_CREATE', {
222
- user: removeConfidentialServiceHashes(user),
223
- });
224
- return userId;
225
- },
226
- async hashPassword(password) {
227
- const salt = pbkdf2.generateSalt();
228
- const hashedPassword = await pbkdf2.getDerivedKey(salt, password);
229
- return { pbkdf2: `${salt}:${hashedPassword}` };
230
- },
231
- async verifyPassword({ bcrypt: bcryptHash, pbkdf2: pbkdf2SaltAndHash }, plainPassword) {
232
- if (bcryptHash) {
233
- const password = await sha256.hash(plainPassword);
234
- return bcrypt.compare(password, bcryptHash);
235
- }
236
- if (pbkdf2SaltAndHash) {
237
- const [pbkdf2Salt, pbkdf2Hash] = pbkdf2SaltAndHash.split(':');
238
- return pbkdf2.compare(plainPassword, pbkdf2Hash, pbkdf2Salt);
239
- }
240
- return false;
241
- },
242
- async addEmail(userId, address) {
243
- if (!(await userSettings.validateEmail(address))) {
244
- throw new Error(`E-Mail address ${address} is invalid`, { cause: 'EMAIL_INVALID' });
245
- }
246
- await this.updateUser({ _id: userId, 'emails.address': { $not: { $regex: address, $options: 'i' } } }, {
247
- $push: {
248
- emails: {
249
- address: address.trim(),
250
- verified: false,
251
- },
252
- },
253
- });
254
- },
255
- async removeEmail(userId, address) {
256
- await this.updateUser({ _id: userId, 'emails.address': { $regex: address, $options: 'i' } }, {
257
- $pull: {
258
- emails: { address: { $regex: address, $options: 'i' } },
259
- },
260
- });
261
- },
262
- async sendResetPasswordEmail(userId, email, isEnrollment) {
263
- const plainToken = crypto.randomUUID();
264
- const resetToken = {
265
- token: await sha256.hash(plainToken),
266
- address: email,
267
- when: new Date().getTime() + 1000 * 60 * 60, // 1 hour
268
- };
269
- await Users.updateOne({ _id: userId }, {
270
- $push: {
271
- 'services.password.reset': resetToken,
272
- },
273
- });
274
- await emit('USER_ACCOUNT_ACTION', {
275
- action: isEnrollment ? 'enroll-account' : 'reset-password',
276
- userId,
277
- ...resetToken,
278
- token: plainToken,
279
- });
280
- },
281
- async sendVerificationEmail(userId, email) {
282
- const plainToken = crypto.randomUUID();
283
- const verificationToken = {
284
- token: await sha256.hash(plainToken),
285
- address: email,
286
- when: new Date().getTime() + 1000 * 60 * 60, // 1 hour
287
- };
288
- await Users.updateOne({ _id: userId }, {
289
- $push: {
290
- 'services.email.verificationTokens': verificationToken,
291
- },
292
- });
293
- await emit('USER_ACCOUNT_ACTION', {
294
- action: 'verify-email',
295
- userId,
296
- ...verificationToken,
297
- token: plainToken,
298
- });
299
- },
300
- addRoles: async (userId, roles) => {
301
- const selector = generateDbFilterById(userId);
302
- const updateResult = await Users.updateOne(selector, {
303
- $addToSet: { roles: { $each: roles } },
304
- });
305
- const user = await Users.findOne(selector, {});
306
- await emit('USER_ADD_ROLES', {
307
- user: removeConfidentialServiceHashes(user),
308
- });
309
- return updateResult.modifiedCount;
310
- },
311
- async setUsername(userId, username) {
312
- if (!(await userSettings.validateUsername(username))) {
313
- throw new Error(`Username ${username} is invalid`, { cause: 'USERNAME_INVALID' });
314
- }
315
- await Users.updateOne({ _id: userId }, {
316
- $set: {
317
- username: username.trim(),
318
- },
319
- });
320
- const user = await Users.findOne({ _id: userId }, {});
321
- await emit('USER_UPDATE_USERNAME', {
322
- user: removeConfidentialServiceHashes(user),
323
- });
324
- },
325
- async setPassword(userId, plainPassword) {
326
- if (!(await userSettings.validatePassword(plainPassword))) {
327
- throw new Error(`Password ***** is invalid`, { cause: 'PASSWORD_INVALID' });
328
- }
329
- const password = plainPassword || crypto.randomUUID().split('-').pop();
330
- await Users.updateOne({ _id: userId }, {
331
- $set: {
332
- initialPassword: false,
333
- 'services.password': await this.hashPassword(password || crypto.randomUUID().split('-').pop()),
334
- },
335
- });
336
- const user = await Users.findOne({ _id: userId }, {});
337
- await emit('USER_UPDATE_PASSWORD', {
338
- user: removeConfidentialServiceHashes(user),
339
- });
340
- },
341
- updateAvatar: async (_id, fileId) => {
342
- const userFilter = generateDbFilterById(_id);
343
- const modifier = {
344
- $set: {
345
- avatarId: fileId,
346
- updated: new Date(),
347
- },
348
- };
349
- const user = await Users.findOneAndUpdate(userFilter, modifier, {
350
- returnDocument: 'after',
351
- });
352
- await emit('USER_UPDATE_AVATAR', {
353
- user: removeConfidentialServiceHashes(user),
354
- });
355
- return user;
356
- },
357
- updateGuest: async (user, guest) => {
358
- const modifier = { $set: { guest } };
359
- await Users.updateOne(generateDbFilterById(user._id), modifier);
360
- await emit('USER_UPDATE_GUEST', {
361
- user: removeConfidentialServiceHashes({
362
- ...user,
363
- guest,
364
- }),
365
- });
366
- },
367
- updateHeartbeat: async (userId, lastLogin) => {
368
- const modifier = {
369
- $set: {
370
- lastLogin: {
371
- timestamp: new Date(),
372
- ...lastLogin,
373
- },
374
- },
375
- };
376
- const user = await Users.findOneAndUpdate(generateDbFilterById(userId), modifier, {
377
- returnDocument: 'after',
378
- });
379
- await emit('USER_UPDATE_HEARTBEAT', {
380
- user: removeConfidentialServiceHashes(user),
381
- });
382
- return user;
383
- },
384
- delete: async ({ userId }, context) => {
385
- const { services, modules } = context;
386
- const user = await Users.findOneAndUpdate({ _id: userId }, {
387
- $set: {
388
- username: `deleted-${Date.now()}`,
389
- deleted: new Date(),
390
- emails: [],
391
- roles: [],
392
- profile: null,
393
- lastBillingAddress: null,
394
- services: {},
395
- pushSubscriptions: [],
396
- avatarId: null,
397
- initialPassword: false,
398
- lastContact: null,
399
- lastLogin: null,
400
- },
401
- }, { returnDocument: 'after' });
402
- if (!user)
403
- return null;
404
- await modules.bookmarks.deleteByUserId(userId);
405
- await services.orders.deleteUserCarts(userId, context);
406
- await modules.quotations.deleteRequestedUserQuotations(userId);
407
- await modules.enrollments.deleteInactiveUserEnrollments(userId);
408
- const ordersCount = await modules.orders.count({ userId, includeCarts: true });
409
- const quotationsCount = await modules.quotations.count({ userId });
410
- const reviewsCount = await modules.products.reviews.count({ authorId: userId });
411
- const enrollmentsCount = await modules.enrollments.count({ userId });
412
- const tokens = await modules.warehousing.findTokensForUser(user);
413
- if (!ordersCount && !reviewsCount && !enrollmentsCount && !quotationsCount && !tokens?.length) {
414
- await Users.deleteOne({ _id: userId });
415
- }
416
- await emit('USER_REMOVE', {
417
- user,
418
- });
419
- return user;
420
- },
421
- updateProfile: async (userId, updatedData) => {
422
- const userFilter = generateDbFilterById(userId);
423
- const { meta, profile } = updatedData;
424
- if (!meta && !profile) {
425
- return Users.findOne(userFilter, {});
426
- }
427
- const modifier = { $set: {} };
428
- if (profile) {
429
- modifier.$set = Object.keys(profile).reduce((acc, profileKey) => {
430
- return {
431
- ...acc,
432
- [`profile.${profileKey}`]: profile[profileKey],
433
- };
434
- }, {});
435
- }
436
- if (meta) {
437
- // eslint-disable-next-line
438
- // @ts-ignore
439
- modifier.$set.meta = meta;
440
- }
441
- const user = await Users.findOneAndUpdate(userFilter, modifier, {
442
- returnDocument: 'after',
443
- });
444
- await emit('USER_UPDATE_PROFILE', {
445
- user: removeConfidentialServiceHashes(user),
446
- });
447
- return user;
448
- },
449
- updateLastBillingAddress: async (_id, lastBillingAddress) => {
450
- const userFilter = generateDbFilterById(_id);
451
- const user = await Users.findOne(userFilter, {});
452
- const modifier = {
453
- $set: {
454
- lastBillingAddress,
455
- updated: new Date(),
456
- },
457
- };
458
- const profile = user.profile || {};
459
- const isGuest = !!user.guest;
460
- if (!profile.displayName || isGuest) {
461
- modifier.$set['profile.displayName'] = [
462
- lastBillingAddress.firstName,
463
- lastBillingAddress.lastName,
464
- ]
465
- .filter(Boolean)
466
- .join(' ');
467
- }
468
- const updatedUser = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
469
- returnDocument: 'after',
470
- });
471
- if (updatedUser) {
472
- await emit('USER_UPDATE_BILLING_ADDRESS', {
473
- user: removeConfidentialServiceHashes(updatedUser),
474
- });
475
- }
476
- return updatedUser;
477
- },
478
- updateLastContact: async (_id, lastContact) => {
479
- const userFilter = generateDbFilterById(_id);
480
- const user = await Users.findOne(userFilter, {});
481
- const profile = user.profile || {};
482
- const isGuest = !!user.guest;
483
- const modifier = {
484
- $set: {
485
- updated: new Date(),
486
- lastContact,
487
- },
488
- };
489
- if ((!profile.phoneMobile || isGuest) && lastContact.telNumber) {
490
- // Backport the contact phone number to the user profile
491
- modifier.$set['profile.phoneMobile'] = lastContact.telNumber;
492
- }
493
- const updatedUser = await Users.findOneAndUpdate(userFilter, modifier, {
494
- returnDocument: 'after',
495
- });
496
- await emit('USER_UPDATE_LAST_CONTACT', {
497
- user: removeConfidentialServiceHashes(user),
498
- });
499
- return updatedUser;
500
- },
501
- updateRoles: async (_id, roles) => {
502
- const modifier = {
503
- $set: {
504
- updated: new Date(),
505
- roles,
506
- },
507
- };
508
- const user = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
509
- returnDocument: 'after',
510
- });
511
- await emit('USER_UPDATE_ROLE', {
512
- user: removeConfidentialServiceHashes(user),
513
- });
514
- return user;
515
- },
516
- updateTags: async (_id, tags) => {
517
- const modifier = {
518
- $set: {
519
- updated: new Date(),
520
- tags,
521
- },
522
- };
523
- const user = await Users.findOneAndUpdate(generateDbFilterById(_id), modifier, {
524
- returnDocument: 'after',
525
- });
526
- await emit('USER_UPDATE_TAGS', {
527
- user: removeConfidentialServiceHashes(user),
528
- });
529
- return user;
530
- },
531
- updateUser: async (selector, modifier, updateOptions) => {
532
- const user = await Users.findOneAndUpdate(selector, modifier, {
533
- ...updateOptions,
534
- returnDocument: 'after',
535
- });
536
- await emit('USER_UPDATE', {
537
- user: removeConfidentialServiceHashes(user),
538
- });
539
- return user;
540
- },
541
- addPushSubscription: async (userId, subscription, subscriptionOptions) => {
542
- const updateResult = await Users.updateOne({ _id: userId, 'pushSubscriptions.keys.p256dh': { $ne: subscription?.keys?.p256dh } }, {
543
- $push: {
544
- pushSubscriptions: {
545
- userAgent: subscriptionOptions?.userAgent,
546
- ...subscription,
547
- },
548
- },
549
- }, {});
550
- if (updateResult.modifiedCount === 1 && subscriptionOptions?.unsubscribeFromOtherUsers) {
551
- await Users.updateMany({ _id: { $ne: userId }, 'pushSubscriptions.keys.p256dh': subscription?.keys?.p256dh }, {
552
- $pull: {
553
- pushSubscriptions: { 'keys.p256dh': subscription?.keys?.p256dh },
554
- },
555
- });
556
- }
557
- },
558
- removePushSubscription: async (userId, p256dh) => {
559
- await Users.updateOne({ _id: userId }, {
560
- $pull: {
561
- pushSubscriptions: { 'keys.p256dh': p256dh },
562
- },
563
- }, {});
564
- },
565
- };
566
- };
567
- //# sourceMappingURL=configureUsersModule_REMOTE_57123.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureUsersModule_REMOTE_57123.js","sourceRoot":"","sources":["../../src/module/configureUsersModule_REMOTE_57123.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const hash: (message: any) => Promise<string>;
2
- //# sourceMappingURL=sha256.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sha256.d.ts","sourceRoot":"","sources":["../../src/module/sha256.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,mCAIhB,CAAC"}
@@ -1,6 +0,0 @@
1
- export const hash = async (message) => {
2
- const bytes = new TextEncoder().encode(message);
3
- const hashBuffer = await crypto.subtle.digest('SHA-256', bytes);
4
- return Buffer.from(hashBuffer).toString('hex');
5
- };
6
- //# sourceMappingURL=sha256.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sha256.js","sourceRoot":"","sources":["../../src/module/sha256.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC"}