xypriss 2.3.0 → 2.3.2

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 (66) hide show
  1. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js +2 -25
  2. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
  3. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js +2 -25
  4. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  5. package/dist/cjs/mods/security/src/components/cache/index.js +15 -27
  6. package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -1
  7. package/dist/cjs/mods/security/src/components/fortified-function/index.js +1 -13
  8. package/dist/cjs/mods/security/src/components/fortified-function/index.js.map +1 -1
  9. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js +2 -15
  10. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
  11. package/dist/cjs/mods/security/src/core/crypt.js +56 -0
  12. package/dist/cjs/mods/security/src/core/crypt.js.map +1 -0
  13. package/dist/cjs/mods/security/src/core/crypto.js +1 -0
  14. package/dist/cjs/mods/security/src/core/crypto.js.map +1 -1
  15. package/dist/cjs/mods/security/src/core/hash/hash-core.js +34 -0
  16. package/dist/cjs/mods/security/src/core/hash/hash-core.js.map +1 -1
  17. package/dist/cjs/mods/security/src/core/password/password-utils.js +1 -1
  18. package/dist/cjs/mods/security/src/core/random/random-core.js +634 -0
  19. package/dist/cjs/mods/security/src/core/random/random-core.js.map +1 -1
  20. package/dist/cjs/mods/security/src/index.js +46 -55
  21. package/dist/cjs/mods/security/src/index.js.map +1 -1
  22. package/dist/cjs/mods/security/src/types/secure-mem.type.js +8 -2
  23. package/dist/cjs/mods/security/src/types/secure-mem.type.js.map +1 -1
  24. package/dist/cjs/src/cache/SecureCacheAdapter.js +20 -7
  25. package/dist/cjs/src/cache/SecureCacheAdapter.js.map +1 -1
  26. package/dist/cjs/src/middleware/security-middleware.js +69 -9
  27. package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
  28. package/dist/cjs/src/plugins/modules/index.js +5 -15
  29. package/dist/cjs/src/plugins/modules/index.js.map +1 -1
  30. package/dist/cjs/src/server/FastServer.js +3 -3
  31. package/dist/cjs/src/server/const/default.js +4 -4
  32. package/dist/cjs/src/server/const/default.js.map +1 -1
  33. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js +2 -25
  34. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
  35. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +2 -25
  36. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  37. package/dist/esm/mods/security/src/components/cache/index.js +15 -27
  38. package/dist/esm/mods/security/src/components/cache/index.js.map +1 -1
  39. package/dist/esm/mods/security/src/components/fortified-function/index.js +1 -13
  40. package/dist/esm/mods/security/src/components/fortified-function/index.js.map +1 -1
  41. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js +2 -15
  42. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
  43. package/dist/esm/mods/security/src/core/crypt.js +54 -0
  44. package/dist/esm/mods/security/src/core/crypt.js.map +1 -0
  45. package/dist/esm/mods/security/src/core/crypto.js +1 -0
  46. package/dist/esm/mods/security/src/core/crypto.js.map +1 -1
  47. package/dist/esm/mods/security/src/core/hash/hash-core.js +34 -0
  48. package/dist/esm/mods/security/src/core/hash/hash-core.js.map +1 -1
  49. package/dist/esm/mods/security/src/core/password/password-utils.js +1 -1
  50. package/dist/esm/mods/security/src/core/random/random-core.js +634 -0
  51. package/dist/esm/mods/security/src/core/random/random-core.js.map +1 -1
  52. package/dist/esm/mods/security/src/index.js +19 -30
  53. package/dist/esm/mods/security/src/index.js.map +1 -1
  54. package/dist/esm/mods/security/src/types/secure-mem.type.js +8 -2
  55. package/dist/esm/mods/security/src/types/secure-mem.type.js.map +1 -1
  56. package/dist/esm/src/cache/SecureCacheAdapter.js +20 -7
  57. package/dist/esm/src/cache/SecureCacheAdapter.js.map +1 -1
  58. package/dist/esm/src/middleware/security-middleware.js +69 -9
  59. package/dist/esm/src/middleware/security-middleware.js.map +1 -1
  60. package/dist/esm/src/plugins/modules/index.js +5 -15
  61. package/dist/esm/src/plugins/modules/index.js.map +1 -1
  62. package/dist/esm/src/server/FastServer.js +3 -3
  63. package/dist/esm/src/server/const/default.js +4 -4
  64. package/dist/esm/src/server/const/default.js.map +1 -1
  65. package/dist/index.d.ts +84 -2
  66. package/package.json +2 -2
@@ -4,6 +4,7 @@ import { RNGState, EntropyQuality } from './random-types.js';
4
4
  import { RandomSources } from './random-sources.js';
5
5
  import { RandomEntropy } from './random-entropy.js';
6
6
  import { RandomGenerators } from './random-generators.js';
7
+ import { RandomTokens } from './random-tokens.js';
7
8
  import { EnhancedUint8Array } from '../../helpers/Uint8Array.js';
8
9
  import { SecurityLevel } from '../../types.js';
9
10
 
@@ -320,6 +321,639 @@ class SecureRandom {
320
321
  const instance = SecureRandom.getInstance();
321
322
  instance.state.securityLevel = level;
322
323
  }
324
+ // ============================================================================
325
+ // TOKEN GENERATION APIS
326
+ // ============================================================================
327
+ /**
328
+ * ### Generate Secure Password
329
+ *
330
+ * Creates a cryptographically secure password with enforced complexity requirements.
331
+ * Ensures the password contains at least one character from each required character set
332
+ * and shuffles the result to prevent predictable patterns.
333
+ *
334
+ * @param {number} [length=16] - Desired password length (minimum 8 characters)
335
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Password generation options
336
+ * @param {boolean} [options.includeUppercase=true] - Include uppercase letters (A-Z)
337
+ * @param {boolean} [options.includeLowercase=true] - Include lowercase letters (a-z)
338
+ * @param {boolean} [options.includeNumbers=true] - Include numeric digits (0-9)
339
+ * @param {boolean} [options.includeSymbols=true] - Include special symbols (!@#$%^&*)
340
+ * @param {boolean} [options.excludeSimilarCharacters=true] - Exclude visually similar characters (0O1lI|)
341
+ * @param {import('./random-types').SecurityLevel} [options.entropyLevel='high'] - Security level for entropy
342
+ * @returns {string} A cryptographically secure password meeting all complexity requirements
343
+ *
344
+ * @example
345
+ * ```typescript
346
+ * // Generate a 16-character password with all character types
347
+ * const password = SecureRandom.generateSecurePassword(16);
348
+ * // Output: "Tr7$Kp9#mN2&vL4!"
349
+ *
350
+ * // Generate a simpler password without symbols
351
+ * const simple = SecureRandom.generateSecurePassword(12, {
352
+ * includeSymbols: false
353
+ * });
354
+ * ```
355
+ *
356
+ * @security This method uses cryptographically secure random generation
357
+ * @throws {Error} If password length is less than 8 characters
358
+ */
359
+ static generateSecurePassword(...params) {
360
+ return RandomTokens.generateSecurePassword(...params);
361
+ }
362
+ /**
363
+ * ### Generate Session Token
364
+ *
365
+ * Creates a secure session token encoded in the specified format.
366
+ * Uses high-entropy random bytes for maximum security.
367
+ *
368
+ * @param {number} [length=32] - Token length in bytes before encoding
369
+ * @param {"hex"|"base64"|"base64url"} [encoding="base64url"] - Output encoding format
370
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
371
+ * @returns {string} Secure session token in the specified encoding
372
+ *
373
+ * @example
374
+ * ```typescript
375
+ * // Generate a base64url session token
376
+ * const token = SecureRandom.generateSessionToken(32, 'base64url');
377
+ *
378
+ * // Generate a hex token for database storage
379
+ * const hexToken = SecureRandom.generateSessionToken(32, 'hex');
380
+ * ```
381
+ */
382
+ static generateSessionToken(...params) {
383
+ return RandomTokens.generateSessionToken(...params);
384
+ }
385
+ /**
386
+ * ### Generate API Key
387
+ *
388
+ * Creates a secure API key with optional prefix for easy identification.
389
+ * Uses a combination of random characters for maximum security.
390
+ *
391
+ * @param {number} [length=32] - Length of the random part of the API key
392
+ * @param {string} [prefix] - Optional prefix (e.g., "sk_", "pk_") followed by underscore
393
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Generation options
394
+ * @returns {string} Secure API key with optional prefix
395
+ *
396
+ * @example
397
+ * ```typescript
398
+ * // Generate API key with prefix
399
+ * const apiKey = SecureRandom.generateAPIKey(32, 'sk_live_');
400
+ * // Output: "sk_live_a1B2c3D4e5F6g7H8i9J0k1L2m3N4o5P6"
401
+ *
402
+ * // Generate API key without prefix
403
+ * const key = SecureRandom.generateAPIKey(24);
404
+ * ```
405
+ */
406
+ static generateAPIKey(...params) {
407
+ return RandomTokens.generateAPIKey(...params);
408
+ }
409
+ /**
410
+ * ### Generate Secure PIN
411
+ *
412
+ * Creates a numeric PIN code for authentication purposes.
413
+ * Uses cryptographically secure random digits.
414
+ *
415
+ * @param {number} [length=6] - PIN length (minimum 4 digits)
416
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
417
+ * @returns {string} Numeric PIN as a string
418
+ *
419
+ * @example
420
+ * ```typescript
421
+ * // Generate a 6-digit PIN
422
+ * const pin = SecureRandom.generateSecurePIN(6);
423
+ * // Output: "482739"
424
+ *
425
+ * // Generate a longer PIN
426
+ * const longPin = SecureRandom.generateSecurePIN(8);
427
+ * ```
428
+ *
429
+ * @throws {Error} If PIN length is less than 4 digits
430
+ */
431
+ static generateSecurePIN(...params) {
432
+ return RandomTokens.generateSecurePIN(...params);
433
+ }
434
+ /**
435
+ * ### Generate Secure OTP
436
+ *
437
+ * Creates a one-time password (OTP) for two-factor authentication.
438
+ * Uses alphanumeric characters with excluded similar-looking characters.
439
+ *
440
+ * @param {number} [length=6] - OTP length
441
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Generation options
442
+ * @returns {string} Secure OTP string
443
+ *
444
+ * @example
445
+ * ```typescript
446
+ * // Generate a 6-character OTP
447
+ * const otp = SecureRandom.generateSecureOTP(6);
448
+ * // Output: "A8B3K9"
449
+ * ```
450
+ */
451
+ static generateSecureOTP(...params) {
452
+ return RandomTokens.generateSecureOTP(...params);
453
+ }
454
+ /**
455
+ * ### Generate Recovery Codes
456
+ *
457
+ * Creates an array of recovery codes for account recovery purposes.
458
+ * Each code is cryptographically secure and suitable for backup authentication.
459
+ *
460
+ * @param {number} [count=10] - Number of recovery codes to generate (1-100)
461
+ * @param {number} [codeLength=8] - Length of each individual code
462
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Generation options
463
+ * @returns {string[]} Array of recovery codes
464
+ *
465
+ * @example
466
+ * ```typescript
467
+ * // Generate 10 recovery codes
468
+ * const codes = SecureRandom.generateRecoveryCodes(10, 8);
469
+ * // Output: ["A1B2C3D4", "E5F6G7H8", "I9J0K1L2", ...]
470
+ * ```
471
+ *
472
+ * @throws {Error} If count is not between 1 and 100
473
+ */
474
+ static generateRecoveryCodes(...params) {
475
+ return RandomTokens.generateRecoveryCodes(...params);
476
+ }
477
+ /**
478
+ * ### Validate Token Strength
479
+ *
480
+ * Analyzes a token/password for strength and provides detailed feedback.
481
+ * Evaluates length, character variety, entropy, and common patterns.
482
+ *
483
+ * @param {string} token - The token to analyze
484
+ * @returns {Object} Strength analysis results
485
+ * @returns {number} returns.score - Strength score (0-100)
486
+ * @returns {"weak"|"fair"|"good"|"strong"|"excellent"} returns.strength - Qualitative strength rating
487
+ * @returns {string[]} returns.issues - Array of improvement suggestions
488
+ *
489
+ * @example
490
+ * ```typescript
491
+ * const analysis = SecureRandom.validateTokenStrength("MySecureP@ss123");
492
+ * console.log(analysis);
493
+ * // Output: {
494
+ * // score: 85,
495
+ * // strength: "strong",
496
+ * // issues: ["Consider adding more special characters"]
497
+ * // }
498
+ * ```
499
+ */
500
+ static validateTokenStrength(...params) {
501
+ return RandomTokens.validateTokenStrength(...params);
502
+ }
503
+ // ============================================================================
504
+ // ADVANCED GENERATION APIS
505
+ // ============================================================================
506
+ /**
507
+ * ### Generate Secure UUID Batch
508
+ *
509
+ * Efficiently generates multiple UUID v4 strings in a single operation.
510
+ * More performant than generating UUIDs individually when you need many.
511
+ *
512
+ * @param {number} count - Number of UUIDs to generate (1-1000)
513
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
514
+ * @returns {string[]} Array of RFC 4122 compliant UUID v4 strings
515
+ *
516
+ * @example
517
+ * ```typescript
518
+ * // Generate 100 UUIDs efficiently
519
+ * const uuids = SecureRandom.generateSecureUUIDBatch(100);
520
+ *
521
+ * // Generate UUIDs with quantum-safe entropy
522
+ * const secureUuids = SecureRandom.generateSecureUUIDBatch(50, {
523
+ * quantumSafe: true
524
+ * });
525
+ * ```
526
+ *
527
+ * @throws {Error} If count is not between 1 and 1000
528
+ * @performance Significantly faster than individual UUID generation for large batches
529
+ */
530
+ static generateSecureUUIDBatch(...params) {
531
+ return RandomGenerators.generateSecureUUIDBatch(...params);
532
+ }
533
+ /**
534
+ * ### Get Secure Random Choice
535
+ *
536
+ * Selects a random element from an array using cryptographically secure randomness.
537
+ * Provides uniform distribution across all array elements.
538
+ *
539
+ * @template T - The type of elements in the array
540
+ * @param {T[]} array - Array to select from (must not be empty)
541
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
542
+ * @returns {T} Randomly selected element from the array
543
+ *
544
+ * @example
545
+ * ```typescript
546
+ * const fruits = ['apple', 'banana', 'cherry', 'date'];
547
+ * const randomFruit = SecureRandom.getSecureRandomChoice(fruits);
548
+ * // Output: randomly one of: "apple", "banana", "cherry", or "date"
549
+ *
550
+ * // With custom options
551
+ * const choice = SecureRandom.getSecureRandomChoice(numbers, {
552
+ * quantumSafe: true
553
+ * });
554
+ * ```
555
+ *
556
+ * @throws {Error} If the array is empty
557
+ * @security Uses cryptographically secure random selection
558
+ */
559
+ static getSecureRandomChoice(array, options) {
560
+ return RandomGenerators.getSecureRandomChoice(array, options);
561
+ }
562
+ /**
563
+ * ### Secure Array Shuffle
564
+ *
565
+ * Shuffles an array using the Fisher-Yates algorithm with cryptographically secure randomness.
566
+ * Returns a new array, leaving the original unchanged.
567
+ *
568
+ * @template T - The type of elements in the array
569
+ * @param {T[]} array - Array to shuffle
570
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
571
+ * @returns {T[]} New shuffled array (original remains unchanged)
572
+ *
573
+ * @example
574
+ * ```typescript
575
+ * const deck = ['A♠', '2♠', '3♠', '4♠', '5♠'];
576
+ * const shuffled = SecureRandom.secureArrayShuffle(deck);
577
+ * // Output: ['3♠', 'A♠', '5♠', '2♠', '4♠'] (randomly shuffled)
578
+ *
579
+ * console.log(deck); // ['A♠', '2♠', '3♠', '4♠', '5♠'] (unchanged)
580
+ * ```
581
+ *
582
+ * @algorithm Uses Fisher-Yates shuffle with cryptographic randomness
583
+ * @security Provides uniform distribution and unpredictability
584
+ */
585
+ static secureArrayShuffle(array, options) {
586
+ return RandomGenerators.secureArrayShuffle(array, options);
587
+ }
588
+ /**
589
+ * ### Generate Nonce
590
+ *
591
+ * Creates a cryptographic nonce (number used once) for preventing replay attacks.
592
+ * Returns an EnhancedUint8Array for secure memory handling.
593
+ *
594
+ * @param {number} [length=12] - Nonce length in bytes
595
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
596
+ * @returns {import('../../helpers/Uint8Array').EnhancedUint8Array} Secure nonce bytes
597
+ *
598
+ * @example
599
+ * ```typescript
600
+ * // Generate a 12-byte nonce
601
+ * const nonce = SecureRandom.generateNonce(12);
602
+ *
603
+ * // Use in cryptographic operations
604
+ * const encrypted = cipher.encrypt(data, key, nonce);
605
+ * ```
606
+ *
607
+ * @security Nonce values are cryptographically secure and unique
608
+ * @memory Returns EnhancedUint8Array for automatic secure wiping
609
+ */
610
+ static generateNonce(...params) {
611
+ return RandomGenerators.generateNonce(...params);
612
+ }
613
+ // ============================================================================
614
+ // EXISTING ALIASES (LEGACY COMPATIBILITY)
615
+ // ============================================================================
616
+ /**
617
+ * ### Int (Alias)
618
+ *
619
+ * Short alias for {@link SecureRandom.getSecureRandomInt}
620
+ * Generates a cryptographically secure random integer within a specified range.
621
+ *
622
+ * @param {number} min - Minimum value (inclusive)
623
+ * @param {number} max - Maximum value (inclusive)
624
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
625
+ * @returns {number} Random integer between min and max
626
+ *
627
+ * @example
628
+ * ```typescript
629
+ * const diceRoll = SecureRandom.Int(1, 6);
630
+ * // Same as: SecureRandom.getSecureRandomInt(1, 6)
631
+ * ```
632
+ *
633
+ * @see {@link SecureRandom.getSecureRandomInt} for full documentation
634
+ */
635
+ static Int(...params) {
636
+ return this.getSecureRandomInt(...params);
637
+ }
638
+ /**
639
+ * ### Float (Alias)
640
+ *
641
+ * Short alias for {@link SecureRandom.getSecureRandomFloat}
642
+ * Generates a cryptographically secure random float between 0 and 1.
643
+ *
644
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
645
+ * @returns {number} Random float between 0 and 1
646
+ *
647
+ * @example
648
+ * ```typescript
649
+ * const randomValue = SecureRandom.Float();
650
+ * // Same as: SecureRandom.getSecureRandomFloat()
651
+ * ```
652
+ *
653
+ * @see {@link SecureRandom.getSecureRandomFloat} for full documentation
654
+ */
655
+ static Float(...params) {
656
+ return this.getSecureRandomFloat(...params);
657
+ }
658
+ /**
659
+ * ### Bool (Alias)
660
+ *
661
+ * Short alias for {@link SecureRandom.getSecureRandomBoolean}
662
+ * Generates a cryptographically secure random boolean value.
663
+ *
664
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
665
+ * @returns {boolean} Random boolean (true or false)
666
+ *
667
+ * @example
668
+ * ```typescript
669
+ * const coinFlip = SecureRandom.Bool();
670
+ * // Same as: SecureRandom.getSecureRandomBoolean()
671
+ * ```
672
+ *
673
+ * @see {@link SecureRandom.getSecureRandomBoolean} for full documentation
674
+ */
675
+ static Bool(...params) {
676
+ return this.getSecureRandomBoolean(...params);
677
+ }
678
+ /**
679
+ * ### UUID (Alias)
680
+ *
681
+ * Short alias for {@link SecureRandom.generateSecureUUID}
682
+ * Generates a cryptographically secure RFC 4122 compliant UUID v4 string.
683
+ *
684
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
685
+ * @returns {string} RFC 4122 compliant UUID v4 string
686
+ *
687
+ * @example
688
+ * ```typescript
689
+ * const id = SecureRandom.UUID();
690
+ * // Same as: SecureRandom.generateSecureUUID()
691
+ * ```
692
+ *
693
+ * @see {@link SecureRandom.generateSecureUUID} for full documentation
694
+ */
695
+ static UUID(...params) {
696
+ return this.generateSecureUUID(...params);
697
+ }
698
+ /**
699
+ * ### Bytes (Alias)
700
+ *
701
+ * Short alias for {@link SecureRandom.getRandomBytes}
702
+ * Generates cryptographically secure random bytes.
703
+ *
704
+ * @param {number} length - Number of bytes to generate
705
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
706
+ * @returns {Uint8Array} Array of random bytes
707
+ *
708
+ * @example
709
+ * ```typescript
710
+ * const key = SecureRandom.Bytes(32);
711
+ * // Same as: SecureRandom.getRandomBytes(32)
712
+ * ```
713
+ *
714
+ * @see {@link SecureRandom.getRandomBytes} for full documentation
715
+ */
716
+ static Bytes(...params) {
717
+ return this.getRandomBytes(...params);
718
+ }
719
+ // ============================================================================
720
+ // SHORT ALIASES FOR CONVENIENCE
721
+ // ============================================================================
722
+ /**
723
+ * ### Password (Alias)
724
+ *
725
+ * Short alias for {@link SecureRandom.generateSecurePassword}
726
+ * Creates a cryptographically secure password with enforced complexity requirements.
727
+ *
728
+ * @param {number} [length=16] - Desired password length (minimum 8 characters)
729
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Password generation options
730
+ * @returns {string} A cryptographically secure password
731
+ *
732
+ * @example
733
+ * ```typescript
734
+ * const password = SecureRandom.Password(16);
735
+ * // Same as: SecureRandom.generateSecurePassword(16)
736
+ * ```
737
+ *
738
+ * @see {@link SecureRandom.generateSecurePassword} for full documentation
739
+ */
740
+ static Password(...params) {
741
+ return this.generateSecurePassword(...params);
742
+ }
743
+ /**
744
+ * ### SessionToken (Alias)
745
+ *
746
+ * Short alias for {@link SecureRandom.generateSessionToken}
747
+ * Creates a secure session token encoded in the specified format.
748
+ *
749
+ * @param {number} [length=32] - Token length in bytes before encoding
750
+ * @param {"hex"|"base64"|"base64url"} [encoding="base64url"] - Output encoding format
751
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
752
+ * @returns {string} Secure session token
753
+ *
754
+ * @example
755
+ * ```typescript
756
+ * const token = SecureRandom.SessionToken(32, 'base64url');
757
+ * // Same as: SecureRandom.generateSessionToken(32, 'base64url')
758
+ * ```
759
+ *
760
+ * @see {@link SecureRandom.generateSessionToken} for full documentation
761
+ */
762
+ static SessionToken(...params) {
763
+ return this.generateSessionToken(...params);
764
+ }
765
+ /**
766
+ * ### APIKey (Alias)
767
+ *
768
+ * Short alias for {@link SecureRandom.generateAPIKey}
769
+ * Creates a secure API key with optional prefix for easy identification.
770
+ *
771
+ * @param {number} [length=32] - Length of the random part of the API key
772
+ * @param {string} [prefix] - Optional prefix (e.g., "sk_", "pk_")
773
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Generation options
774
+ * @returns {string} Secure API key with optional prefix
775
+ *
776
+ * @example
777
+ * ```typescript
778
+ * const apiKey = SecureRandom.APIKey(32, 'sk_live_');
779
+ * // Same as: SecureRandom.generateAPIKey(32, 'sk_live_')
780
+ * ```
781
+ *
782
+ * @see {@link SecureRandom.generateAPIKey} for full documentation
783
+ */
784
+ static APIKey(...params) {
785
+ return this.generateAPIKey(...params);
786
+ }
787
+ /**
788
+ * ### PIN (Alias)
789
+ *
790
+ * Short alias for {@link SecureRandom.generateSecurePIN}
791
+ * Creates a numeric PIN code for authentication purposes.
792
+ *
793
+ * @param {number} [length=6] - PIN length (minimum 4 digits)
794
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
795
+ * @returns {string} Numeric PIN as a string
796
+ *
797
+ * @example
798
+ * ```typescript
799
+ * const pin = SecureRandom.PIN(6);
800
+ * // Same as: SecureRandom.generateSecurePIN(6)
801
+ * ```
802
+ *
803
+ * @see {@link SecureRandom.generateSecurePIN} for full documentation
804
+ */
805
+ static PIN(...params) {
806
+ return this.generateSecurePIN(...params);
807
+ }
808
+ /**
809
+ * ### OTP (Alias)
810
+ *
811
+ * Short alias for {@link SecureRandom.generateSecureOTP}
812
+ * Creates a one-time password (OTP) for two-factor authentication.
813
+ *
814
+ * @param {number} [length=6] - OTP length
815
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Generation options
816
+ * @returns {string} Secure OTP string
817
+ *
818
+ * @example
819
+ * ```typescript
820
+ * const otp = SecureRandom.OTP(6);
821
+ * // Same as: SecureRandom.generateSecureOTP(6)
822
+ * ```
823
+ *
824
+ * @see {@link SecureRandom.generateSecureOTP} for full documentation
825
+ */
826
+ static OTP(...params) {
827
+ return this.generateSecureOTP(...params);
828
+ }
829
+ /**
830
+ * ### RecoveryCodes (Alias)
831
+ *
832
+ * Short alias for {@link SecureRandom.generateRecoveryCodes}
833
+ * Creates an array of recovery codes for account recovery purposes.
834
+ *
835
+ * @param {number} [count=10] - Number of recovery codes to generate (1-100)
836
+ * @param {number} [codeLength=8] - Length of each individual code
837
+ * @param {import('./random-types').TokenGenerationOptions} [options] - Generation options
838
+ * @returns {string[]} Array of recovery codes
839
+ *
840
+ * @example
841
+ * ```typescript
842
+ * const codes = SecureRandom.RecoveryCodes(10, 8);
843
+ * // Same as: SecureRandom.generateRecoveryCodes(10, 8)
844
+ * ```
845
+ *
846
+ * @see {@link SecureRandom.generateRecoveryCodes} for full documentation
847
+ */
848
+ static RecoveryCodes(...params) {
849
+ return this.generateRecoveryCodes(...params);
850
+ }
851
+ /**
852
+ * ### ValidateToken (Alias)
853
+ *
854
+ * Short alias for {@link SecureRandom.validateTokenStrength}
855
+ * Analyzes a token/password for strength and provides detailed feedback.
856
+ *
857
+ * @param {string} token - The token to analyze
858
+ * @returns {Object} Strength analysis results
859
+ *
860
+ * @example
861
+ * ```typescript
862
+ * const analysis = SecureRandom.ValidateToken("password123");
863
+ * // Same as: SecureRandom.validateTokenStrength("password123")
864
+ * ```
865
+ *
866
+ * @see {@link SecureRandom.validateTokenStrength} for full documentation
867
+ */
868
+ static ValidateToken(...params) {
869
+ return this.validateTokenStrength(...params);
870
+ }
871
+ /**
872
+ * ### UUIDBatch (Alias)
873
+ *
874
+ * Short alias for {@link SecureRandom.generateSecureUUIDBatch}
875
+ * Efficiently generates multiple UUID v4 strings in a single operation.
876
+ *
877
+ * @param {number} count - Number of UUIDs to generate (1-1000)
878
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
879
+ * @returns {string[]} Array of RFC 4122 compliant UUID v4 strings
880
+ *
881
+ * @example
882
+ * ```typescript
883
+ * const uuids = SecureRandom.UUIDBatch(100);
884
+ * // Same as: SecureRandom.generateSecureUUIDBatch(100)
885
+ * ```
886
+ *
887
+ * @see {@link SecureRandom.generateSecureUUIDBatch} for full documentation
888
+ */
889
+ static UUIDBatch(...params) {
890
+ return this.generateSecureUUIDBatch(...params);
891
+ }
892
+ /**
893
+ * ### Choice (Alias)
894
+ *
895
+ * Short alias for {@link SecureRandom.getSecureRandomChoice}
896
+ * Selects a random element from an array using cryptographically secure randomness.
897
+ *
898
+ * @template T - The type of elements in the array
899
+ * @param {T[]} array - Array to select from (must not be empty)
900
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
901
+ * @returns {T} Randomly selected element from the array
902
+ *
903
+ * @example
904
+ * ```typescript
905
+ * const winner = SecureRandom.Choice(['Alice', 'Bob', 'Charlie']);
906
+ * // Same as: SecureRandom.getSecureRandomChoice(['Alice', 'Bob', 'Charlie'])
907
+ * ```
908
+ *
909
+ * @see {@link SecureRandom.getSecureRandomChoice} for full documentation
910
+ */
911
+ static Choice(...params) {
912
+ return this.getSecureRandomChoice(...params);
913
+ }
914
+ /**
915
+ * ### Shuffle (Alias)
916
+ *
917
+ * Short alias for {@link SecureRandom.secureArrayShuffle}
918
+ * Shuffles an array using the Fisher-Yates algorithm with cryptographically secure randomness.
919
+ *
920
+ * @template T - The type of elements in the array
921
+ * @param {T[]} array - Array to shuffle
922
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
923
+ * @returns {T[]} New shuffled array (original remains unchanged)
924
+ *
925
+ * @example
926
+ * ```typescript
927
+ * const shuffled = SecureRandom.Shuffle([1, 2, 3, 4, 5]);
928
+ * // Same as: SecureRandom.secureArrayShuffle([1, 2, 3, 4, 5])
929
+ * ```
930
+ *
931
+ * @see {@link SecureRandom.secureArrayShuffle} for full documentation
932
+ */
933
+ static Shuffle(...params) {
934
+ return this.secureArrayShuffle(...params);
935
+ }
936
+ /**
937
+ * ### Nonce (Alias)
938
+ *
939
+ * Short alias for {@link SecureRandom.generateNonce}
940
+ * Creates a cryptographic nonce (number used once) for preventing replay attacks.
941
+ *
942
+ * @param {number} [length=12] - Nonce length in bytes
943
+ * @param {import('./random-types').RandomGenerationOptions} [options] - Generation options
944
+ * @returns {import('../../helpers/Uint8Array').EnhancedUint8Array} Secure nonce bytes
945
+ *
946
+ * @example
947
+ * ```typescript
948
+ * const nonce = SecureRandom.nonce(12);
949
+ * // Same as: SecureRandom.generateNonce(12)
950
+ * ```
951
+ *
952
+ * @see {@link SecureRandom.generateNonce} for full documentation
953
+ */
954
+ static Nonce(...params) {
955
+ return this.generateNonce(...params);
956
+ }
323
957
  }
324
958
 
325
959
  export { SecureRandom };
@@ -1 +1 @@
1
- {"version":3,"file":"random-core.js","sources":["../../../../../../../mods/security/src/core/random/random-core.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAAA;;AAEG;AAkBH;;;;;AAKG;AAEH;;;;;;;;;;;;;;;;;;;AAmBG;MACU,YAAY,CAAA;AAKrB,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;AAC/D,YAAA,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,KAAK,EAAE,QAAQ,CAAC,aAAa;AAC7B,YAAA,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,cAAc,CAAC,IAAI;YACnC,aAAa,EAAE,aAAa,CAAC,IAAI;AACjC,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,wBAAwB,EAAE,IAAI,CAAC,qBAAqB,EAAE;AACtD,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE;YAC3B,kBAAkB,EAAE,IAAI,GAAG,EAAE;AAC7B,YAAA,cAAc,EAAE,EAAE;YAClB,wBAAwB,EAAE,IAAI,GAAG,EAAE;SACtC,CAAC;QAEF,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;AAED;;AAEG;AACI,IAAA,OAAO,WAAW,GAAA;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AACxB,YAAA,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;SAC9C;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;KAChC;AAED;;AAEG;AACK,IAAA,MAAM,qBAAqB,GAAA;QAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;AAEzC,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,aAAa,CAAC,qBAAqB,CAC9D,kBAAkB,CAAC,iBAAiB,CACvC,CAAC;AAEF,YAAA,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,oBAAoB,CAC1D,IAAI,CAAC,KAAK,CAAC,WAAW,CACzB,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACtC;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAClC,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAA,CAAE,CAAC,CAAC;SAClE;KACJ;AAED;;AAEG;IACK,6BAA6B,GAAA;;AAEjC,QAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAC9C,aAAa,CAAC,gBAAgB,EAAE,CACnC,CAAC;;AAGF,QAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAC9C,aAAa,CAAC,gBAAgB,EAAE,CACnC,CAAC;;AAGF,QAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,EAAE,MAC/C,aAAa,CAAC,iBAAiB,EAAE,CACpC,CAAC;KACL;AAED;;AAEG;IACK,qBAAqB,GAAA;AACzB,QAAA,IAAI;;YAEA,IACI,OAAO,MAAM,KAAK,WAAW;AAC7B,gBAAA,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAC9C;AACE,gBAAA,OAAO,IAAI,CAAC;aACf;YACD,IACI,OAAO,MAAM,KAAK,WAAW;AAC7B,gBAAA,MAAM,CAAC,MAAM;gBACb,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU,EACrD;AACE,gBAAA,OAAO,IAAI,CAAC;aACf;AACD,YAAA,OAAO,KAAK,CAAC;SAChB;QAAC,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;;;;AAMD;;;;;AAKG;AACI,IAAA,OAAO,cAAc,CACxB,MAAc,EACd,UAAmC,EAAE,EAAA;AAErC,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;;QAG5C,MAAM,eAAe,GACjB,OAAO,CAAC,eAAe,IAAI,kBAAkB,CAAC,gBAAgB,CAAC;QACnE,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,GAAG,eAAe,EAAE;YACjD,QAAQ,CAAC,iBAAiB,EAAE,CAAC;SAChC;;QAGD,MAAM,KAAK,GAAG,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;AAG/D,QAAA,QAAQ,CAAC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC;;;AAIxC,QAAA,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;KACxC;AAED;;AAEG;IACI,OAAO,oBAAoB,CAAC,MAAc,EAAA;AAC7C,QAAA,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;KACxD;AAED;;AAEG;IACI,OAAO,kBAAkB,CAC5B,GAAW,EACX,GAAW,EACX,UAAmC,EAAE,EAAA;QAErC,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;KACjE;AAED;;AAEG;AACI,IAAA,OAAO,kBAAkB,CAC5B,OAAA,GAAmC,EAAE,EAAA;AAErC,QAAA,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACvD;AAED;;AAEG;AACI,IAAA,OAAO,oBAAoB,CAC9B,OAAA,GAAmC,EAAE,EAAA;AAErC,QAAA,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;KACzD;AAED;;AAEG;AACI,IAAA,OAAO,sBAAsB,CAChC,OAAA,GAAmC,EAAE,EAAA;AAErC,QAAA,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KAC3D;AAED;;AAEG;AACI,IAAA,OAAO,YAAY,CACtB,SAAiB,EAAE,EACnB,UAAmC,EAAE,EAAA;QAErC,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzD;;;;AAMD;;AAEG;IACI,iBAAiB,GAAA;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAEtC,QAAA,IAAI;AACA,YAAA,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CACxD,CAAC,OAAO,KAAI;AACR,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACnC,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,cAAc;AACrB,oBAAA,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACpD,aAAC,CACJ,CAAC;SACL;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAClC,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;SAC1D;KACJ;AAED;;AAEG;IACI,OAAO,kBAAkB,CAAC,IAAa,EAAA;AAC1C,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;AACxD,QAAA,OAAO,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;KACrD;AAED;;AAEG;IACI,OAAO,oBAAoB,CAAC,IAAY,EAAA;AAC3C,QAAA,OAAO,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACnD;;;;AAMD;;AAEG;AACI,IAAA,OAAO,iBAAiB,GAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC5C,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;;QAGvD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,KAAK,cAAc,CAAC,IAAI,EAAE;AACvD,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAChD;AACD,QAAA,IACI,QAAQ,CAAC,KAAK,CAAC,cAAc;AAC7B,YAAA,kBAAkB,CAAC,gBAAgB,GAAG,CAAC,EACzC;AACE,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AACtD,YAAA,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;SACzD;;QAGD,MAAM,eAAe,GAAa,EAAE,CAAC;AACrC,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,eAAe,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;SAC3D;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,KAAK,cAAc,CAAC,QAAQ,EAAE;AAC3D,YAAA,eAAe,CAAC,IAAI,CAChB,+CAA+C,CAClD,CAAC;SACL;QAED,OAAO;AACH,YAAA,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;AAC7C,YAAA,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;YAC3C,OAAO;YACP,eAAe;AACf,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrB,YAAA,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;AAC7C,YAAA,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;YACzC,aAAa;SAChB,CAAC;KACL;AAED;;AAEG;AACI,IAAA,OAAO,gBAAgB,GAAA;AAC1B,QAAA,OAAO,aAAa,CAAC,gBAAgB,EAAE,CAAC;KAC3C;AAED;;AAEG;AACI,IAAA,OAAO,uBAAuB,GAAA;AACjC,QAAA,QACI,CAAC,OAAO,MAAM,KAAK,WAAW;AAC1B,YAAA,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU;aAC/C,OAAO,MAAM,KAAK,WAAW;AAC1B,gBAAA,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW;AACpC,gBAAA,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU,CAAC;AACxD,YAAA,OAAO,OAAO,KAAK,UAAU,EAC/B;KACL;AAED;;AAEG;IACI,QAAQ,GAAA;AACX,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;KAC5B;AAED;;AAEG;AACI,IAAA,OAAO,aAAa,GAAA;AACvB,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO;AACH,YAAA,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;AAC7C,YAAA,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;AACzC,YAAA,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;AACrC,YAAA,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;AAC7C,YAAA,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;SAC9B,CAAC;KACL;;;;AAMD;;AAEG;AACI,IAAA,OAAO,aAAa,GAAA;AACvB,QAAA,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;KAC9C;AAED;;AAEG;AACI,IAAA,OAAO,qBAAqB,GAAA;AAC/B,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC5C,QAAA,QAAQ,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;KACzC;AAED;;AAEG;AACI,IAAA,OAAO,sBAAsB,GAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC5C,QAAA,QAAQ,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;KAC1C;AAED;;AAEG;IACI,OAAO,gBAAgB,CAAC,KAAoB,EAAA;AAC/C,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC5C,QAAA,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;KACxC;AACJ;;;;"}
1
+ {"version":3,"file":"random-core.js","sources":["../../../../../../../mods/security/src/core/random/random-core.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}