xypriss 1.0.1 → 1.1.0
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.
- package/README.md +187 -84
- package/dist/cjs/ServerFactory.js +1 -1
- package/dist/cjs/cache/SecureCacheAdapter.js +2 -2
- package/dist/cjs/cluster/cluster-manager.js +1 -1
- package/dist/cjs/cluster/index.js +30 -30
- package/dist/cjs/cluster/modules/AutoScaler.js +2 -2
- package/dist/cjs/cluster/modules/ClusterPersistenceManager.js +3 -3
- package/dist/cjs/cluster/modules/HealthMonitor.js +2 -2
- package/dist/cjs/cluster/modules/IPCManager.js +2 -2
- package/dist/cjs/cluster/modules/MetricsCollector.js +1 -1
- package/dist/cjs/cluster/modules/WorkerManager.js +2 -2
- package/dist/cjs/encryption/EncryptionService.js +12 -12
- package/dist/cjs/encryption/EncryptionService.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/middleware/safe-json-middleware.js +1 -1
- package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js +727 -0
- package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js.map +1 -0
- package/dist/cjs/mods/security/src/algorithms/registry.js +83 -0
- package/dist/cjs/mods/security/src/algorithms/registry.js.map +1 -0
- package/dist/cjs/mods/security/src/components/attestation.js +1065 -0
- package/dist/cjs/mods/security/src/components/attestation.js.map +1 -0
- package/dist/cjs/mods/security/src/components/cache/FastLRU.js +323 -0
- package/dist/cjs/mods/security/src/components/cache/FastLRU.js.map +1 -0
- package/dist/cjs/mods/security/src/components/cache/UFSIMC.js +1131 -0
- package/dist/cjs/mods/security/src/components/cache/UFSIMC.js.map +1 -0
- package/dist/cjs/mods/security/src/components/cache/cacheSys.js +624 -0
- package/dist/cjs/mods/security/src/components/cache/cacheSys.js.map +1 -0
- package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js +136 -0
- package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js.map +1 -0
- package/dist/cjs/mods/security/src/components/cache/config/cache.config.js +39 -0
- package/dist/cjs/mods/security/src/components/cache/config/cache.config.js.map +1 -0
- package/dist/cjs/mods/security/src/components/cache/index.js +459 -0
- package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -0
- package/dist/cjs/mods/security/src/components/cache/useCache.js +243 -0
- package/dist/cjs/mods/security/src/components/cache/useCache.js.map +1 -0
- package/dist/cjs/mods/security/src/components/canary-tokens.js +351 -0
- package/dist/cjs/mods/security/src/components/canary-tokens.js.map +1 -0
- package/dist/cjs/mods/security/src/components/entropy-augmentation.js +478 -0
- package/dist/cjs/mods/security/src/components/entropy-augmentation.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js +338 -0
- package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js +536 -0
- package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js +631 -0
- package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/const/exec.const.js +18 -0
- package/dist/cjs/mods/security/src/components/fortified-function/const/exec.const.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-config.js +356 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-config.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-function-core.js +520 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-function-core.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-logger.js +246 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-logger.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/api-manager.js +189 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/api-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/cache-manager.js +107 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/cache-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-context.js +105 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-context.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-engine.js +127 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-engine.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-router.js +93 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-router.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/memory-manager.js +147 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/memory-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/security-manager.js +102 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/security-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/stats-manager.js +159 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/stats-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/timing-manager.js +125 -0
- package/dist/cjs/mods/security/src/components/fortified-function/core/mods/timing-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/engines/analytics-engine.js +370 -0
- package/dist/cjs/mods/security/src/components/fortified-function/engines/analytics-engine.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/engines/execution-engine.js +402 -0
- package/dist/cjs/mods/security/src/components/fortified-function/engines/execution-engine.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/index.js +172 -0
- package/dist/cjs/mods/security/src/components/fortified-function/index.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-monitor.js +240 -0
- package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-monitor.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-timer.js +188 -0
- package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-timer.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js +253 -0
- package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/serializer/safe-serializer.js +350 -0
- package/dist/cjs/mods/security/src/components/fortified-function/serializer/safe-serializer.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/smart-cache.js +693 -0
- package/dist/cjs/mods/security/src/components/fortified-function/smart-cache.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/types/types.js +16 -0
- package/dist/cjs/mods/security/src/components/fortified-function/types/types.js.map +1 -0
- package/dist/cjs/mods/security/src/components/fortified-function/utils/utils.js +68 -0
- package/dist/cjs/mods/security/src/components/fortified-function/utils/utils.js.map +1 -0
- package/dist/cjs/mods/security/src/components/memory-hard.js +922 -0
- package/dist/cjs/mods/security/src/components/memory-hard.js.map +1 -0
- package/dist/cjs/mods/security/src/components/post-quantum.js +323 -0
- package/dist/cjs/mods/security/src/components/post-quantum.js.map +1 -0
- package/dist/cjs/mods/security/src/components/runtime-verification.js +645 -0
- package/dist/cjs/mods/security/src/components/runtime-verification.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/core/secure-array-core.js +1572 -0
- package/dist/cjs/mods/security/src/components/secure-array/core/secure-array-core.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js +330 -0
- package/dist/cjs/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/events/event-manager.js +270 -0
- package/dist/cjs/mods/security/src/components/secure-array/events/event-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/index.js +66 -0
- package/dist/cjs/mods/security/src/components/secure-array/index.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/metadata/metadata-manager.js +331 -0
- package/dist/cjs/mods/security/src/components/secure-array/metadata/metadata-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js +390 -0
- package/dist/cjs/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/types/index.js +87 -0
- package/dist/cjs/mods/security/src/components/secure-array/types/index.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/utils/id-generator.js +80 -0
- package/dist/cjs/mods/security/src/components/secure-array/utils/id-generator.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-array/utils/validation.js +275 -0
- package/dist/cjs/mods/security/src/components/secure-array/utils/validation.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-memory.js +906 -0
- package/dist/cjs/mods/security/src/components/secure-memory.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/core/secure-object-core.js +1605 -0
- package/dist/cjs/mods/security/src/components/secure-object/core/secure-object-core.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/encryption/crypto-handler.js +362 -0
- package/dist/cjs/mods/security/src/components/secure-object/encryption/crypto-handler.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/encryption/sensitive-keys.js +206 -0
- package/dist/cjs/mods/security/src/components/secure-object/encryption/sensitive-keys.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/events/event-manager.js +197 -0
- package/dist/cjs/mods/security/src/components/secure-object/events/event-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/index.js +67 -0
- package/dist/cjs/mods/security/src/components/secure-object/index.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/metadata/metadata-manager.js +183 -0
- package/dist/cjs/mods/security/src/components/secure-object/metadata/metadata-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/serialization/serialization-handler.js +197 -0
- package/dist/cjs/mods/security/src/components/secure-object/serialization/serialization-handler.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/utils/id-generator.js +64 -0
- package/dist/cjs/mods/security/src/components/secure-object/utils/id-generator.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-object/utils/validation.js +239 -0
- package/dist/cjs/mods/security/src/components/secure-object/utils/validation.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-serialization.js +772 -0
- package/dist/cjs/mods/security/src/components/secure-serialization.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/advanced/entropy-analyzer.js +308 -0
- package/dist/cjs/mods/security/src/components/secure-string/advanced/entropy-analyzer.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/advanced/performance-monitor.js +335 -0
- package/dist/cjs/mods/security/src/components/secure-string/advanced/performance-monitor.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/advanced/quantum-safe.js +245 -0
- package/dist/cjs/mods/security/src/components/secure-string/advanced/quantum-safe.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/buffer/buffer-manager.js +205 -0
- package/dist/cjs/mods/security/src/components/secure-string/buffer/buffer-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/core/secure-string-core.js +788 -0
- package/dist/cjs/mods/security/src/components/secure-string/core/secure-string-core.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/crypto/crypto-operations.js +319 -0
- package/dist/cjs/mods/security/src/components/secure-string/crypto/crypto-operations.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/operations/comparison-operations.js +221 -0
- package/dist/cjs/mods/security/src/components/secure-string/operations/comparison-operations.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/operations/string-operations.js +234 -0
- package/dist/cjs/mods/security/src/components/secure-string/operations/string-operations.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/types/index.js +41 -0
- package/dist/cjs/mods/security/src/components/secure-string/types/index.js.map +1 -0
- package/dist/cjs/mods/security/src/components/secure-string/validation/string-validator.js +334 -0
- package/dist/cjs/mods/security/src/components/secure-string/validation/string-validator.js.map +1 -0
- package/dist/cjs/mods/security/src/components/side-channel.js +146 -0
- package/dist/cjs/mods/security/src/components/side-channel.js.map +1 -0
- package/dist/cjs/mods/security/src/components/tamper-evident-logging.js +391 -0
- package/dist/cjs/mods/security/src/components/tamper-evident-logging.js.map +1 -0
- package/dist/cjs/mods/security/src/const/buffer.const.js +15 -0
- package/dist/cjs/mods/security/src/const/buffer.const.js.map +1 -0
- package/dist/cjs/mods/security/src/core/crypto.js +722 -0
- package/dist/cjs/mods/security/src/core/crypto.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash/hash-advanced.js +388 -0
- package/dist/cjs/mods/security/src/core/hash/hash-advanced.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash/hash-core.js +376 -0
- package/dist/cjs/mods/security/src/core/hash/hash-core.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash/hash-entropy.js +307 -0
- package/dist/cjs/mods/security/src/core/hash/hash-entropy.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash/hash-security.js +372 -0
- package/dist/cjs/mods/security/src/core/hash/hash-security.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash/hash-types.js +16 -0
- package/dist/cjs/mods/security/src/core/hash/hash-types.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash/hash-utils.js +328 -0
- package/dist/cjs/mods/security/src/core/hash/hash-utils.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash/hash-validator.js +312 -0
- package/dist/cjs/mods/security/src/core/hash/hash-validator.js.map +1 -0
- package/dist/cjs/mods/security/src/core/hash.js +25 -0
- package/dist/cjs/mods/security/src/core/hash.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js +135 -0
- package/dist/cjs/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js +293 -0
- package/dist/cjs/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js +317 -0
- package/dist/cjs/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys/keys-core.js +201 -0
- package/dist/cjs/mods/security/src/core/keys/keys-core.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys/keys-logger.js +234 -0
- package/dist/cjs/mods/security/src/core/keys/keys-logger.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys/keys-types.js +65 -0
- package/dist/cjs/mods/security/src/core/keys/keys-types.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys/keys-utils.js +322 -0
- package/dist/cjs/mods/security/src/core/keys/keys-utils.js.map +1 -0
- package/dist/cjs/mods/security/src/core/keys.js +136 -0
- package/dist/cjs/mods/security/src/core/keys.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/index.js +122 -0
- package/dist/cjs/mods/security/src/core/password/index.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/password-algorithms.js +397 -0
- package/dist/cjs/mods/security/src/core/password/password-algorithms.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/password-core.js +294 -0
- package/dist/cjs/mods/security/src/core/password/password-core.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/password-generator.js +365 -0
- package/dist/cjs/mods/security/src/core/password/password-generator.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/password-migration.js +237 -0
- package/dist/cjs/mods/security/src/core/password/password-migration.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/password-security.js +534 -0
- package/dist/cjs/mods/security/src/core/password/password-security.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/password-types.js +39 -0
- package/dist/cjs/mods/security/src/core/password/password-types.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/password-utils.js +651 -0
- package/dist/cjs/mods/security/src/core/password/password-utils.js.map +1 -0
- package/dist/cjs/mods/security/src/core/password/swlist.js +1122 -0
- package/dist/cjs/mods/security/src/core/password/swlist.js.map +1 -0
- package/dist/cjs/mods/security/src/core/random/random-core.js +328 -0
- package/dist/cjs/mods/security/src/core/random/random-core.js.map +1 -0
- package/dist/cjs/mods/security/src/core/random/random-crypto.js +339 -0
- package/dist/cjs/mods/security/src/core/random/random-crypto.js.map +1 -0
- package/dist/cjs/mods/security/src/core/random/random-entropy.js +388 -0
- package/dist/cjs/mods/security/src/core/random/random-entropy.js.map +1 -0
- package/dist/cjs/mods/security/src/core/random/random-generators.js +344 -0
- package/dist/cjs/mods/security/src/core/random/random-generators.js.map +1 -0
- package/dist/cjs/mods/security/src/core/random/random-sources.js +426 -0
- package/dist/cjs/mods/security/src/core/random/random-sources.js.map +1 -0
- package/dist/cjs/mods/security/src/core/random/random-tokens.js +309 -0
- package/dist/cjs/mods/security/src/core/random/random-tokens.js.map +1 -0
- package/dist/cjs/mods/security/src/core/random/random-types.js +36 -0
- package/dist/cjs/mods/security/src/core/random/random-types.js.map +1 -0
- package/dist/cjs/mods/security/src/core/validators.js +200 -0
- package/dist/cjs/mods/security/src/core/validators.js.map +1 -0
- package/dist/cjs/mods/security/src/helpers/Uint8Array.js +335 -0
- package/dist/cjs/mods/security/src/helpers/Uint8Array.js.map +1 -0
- package/dist/cjs/mods/security/src/helpers/createEnu.js +27 -0
- package/dist/cjs/mods/security/src/helpers/createEnu.js.map +1 -0
- package/dist/cjs/mods/security/src/index.js +417 -0
- package/dist/cjs/mods/security/src/index.js.map +1 -0
- package/dist/cjs/mods/security/src/types/global.js +51 -0
- package/dist/cjs/mods/security/src/types/global.js.map +1 -0
- package/dist/cjs/mods/security/src/types/secure-mem.type.js +100 -0
- package/dist/cjs/mods/security/src/types/secure-mem.type.js.map +1 -0
- package/dist/cjs/mods/security/src/types/secure-memory.js +20 -0
- package/dist/cjs/mods/security/src/types/secure-memory.js.map +1 -0
- package/dist/cjs/mods/security/src/types.js +63 -0
- package/dist/cjs/mods/security/src/types.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/CryptoAlgorithmUtils.js +71 -0
- package/dist/cjs/mods/security/src/utils/CryptoAlgorithmUtils.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/constants.js +111 -0
- package/dist/cjs/mods/security/src/utils/constants.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/dataConverter.js +74 -0
- package/dist/cjs/mods/security/src/utils/dataConverter.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/encoding.js +290 -0
- package/dist/cjs/mods/security/src/utils/encoding.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/errorHandler.js +140 -0
- package/dist/cjs/mods/security/src/utils/errorHandler.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/memory/config-manager.js +282 -0
- package/dist/cjs/mods/security/src/utils/memory/config-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/memory/event-manager.js +277 -0
- package/dist/cjs/mods/security/src/utils/memory/event-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/memory/index.js +162 -0
- package/dist/cjs/mods/security/src/utils/memory/index.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/memory/memory-manager.js +888 -0
- package/dist/cjs/mods/security/src/utils/memory/memory-manager.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/memory/memory-pool.js +356 -0
- package/dist/cjs/mods/security/src/utils/memory/memory-pool.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/memory/reference-tracker.js +376 -0
- package/dist/cjs/mods/security/src/utils/memory/reference-tracker.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/memory/types.js +56 -0
- package/dist/cjs/mods/security/src/utils/memory/types.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/patterns.js +127 -0
- package/dist/cjs/mods/security/src/utils/patterns.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/performanceMonitor.js +249 -0
- package/dist/cjs/mods/security/src/utils/performanceMonitor.js.map +1 -0
- package/dist/cjs/mods/security/src/utils/stats.js +182 -0
- package/dist/cjs/mods/security/src/utils/stats.js.map +1 -0
- package/dist/cjs/security-middleware.js +15 -15
- package/dist/cjs/server/components/fastapi/UltraFastRequestProcessor.js +1 -1
- package/dist/cjs/server/components/fastapi/console/ConsoleInterceptor.js +23 -23
- package/dist/cjs/server/components/fastapi/middlewares/MiddlewareAPI.js +1 -1
- package/dist/cjs/server/optimization/RequestPreCompiler.js +1 -1
- package/dist/cjs/server/plugins/PluginRegistry.js +1 -1
- package/dist/cjs/server/plugins/core/CachePlugin.js +7 -7
- package/dist/cjs/server/plugins/core/PerformancePlugin.js +2 -2
- package/dist/cjs/server/plugins/core/SecurityPlugin.js +10 -10
- package/dist/cjs/smart-routes.js +1 -1
- package/dist/esm/ServerFactory.js +1 -1
- package/dist/esm/cache/SecureCacheAdapter.js +2 -2
- package/dist/esm/cluster/cluster-manager.js +1 -1
- package/dist/esm/cluster/index.js +30 -30
- package/dist/esm/cluster/modules/AutoScaler.js +2 -2
- package/dist/esm/cluster/modules/ClusterPersistenceManager.js +3 -3
- package/dist/esm/cluster/modules/HealthMonitor.js +2 -2
- package/dist/esm/cluster/modules/IPCManager.js +2 -2
- package/dist/esm/cluster/modules/MetricsCollector.js +1 -1
- package/dist/esm/cluster/modules/WorkerManager.js +2 -2
- package/dist/esm/encryption/EncryptionService.js +12 -12
- package/dist/esm/encryption/EncryptionService.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/middleware/safe-json-middleware.js +1 -1
- package/dist/esm/mods/security/src/algorithms/hash-algorithms.js +705 -0
- package/dist/esm/mods/security/src/algorithms/hash-algorithms.js.map +1 -0
- package/dist/esm/mods/security/src/algorithms/registry.js +81 -0
- package/dist/esm/mods/security/src/algorithms/registry.js.map +1 -0
- package/dist/esm/mods/security/src/components/attestation.js +1059 -0
- package/dist/esm/mods/security/src/components/attestation.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/FastLRU.js +320 -0
- package/dist/esm/mods/security/src/components/cache/FastLRU.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/UFSIMC.js +1109 -0
- package/dist/esm/mods/security/src/components/cache/UFSIMC.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/cacheSys.js +622 -0
- package/dist/esm/mods/security/src/components/cache/cacheSys.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +111 -0
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/config/cache.config.js +36 -0
- package/dist/esm/mods/security/src/components/cache/config/cache.config.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/index.js +449 -0
- package/dist/esm/mods/security/src/components/cache/index.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/useCache.js +240 -0
- package/dist/esm/mods/security/src/components/cache/useCache.js.map +1 -0
- package/dist/esm/mods/security/src/components/canary-tokens.js +346 -0
- package/dist/esm/mods/security/src/components/canary-tokens.js.map +1 -0
- package/dist/esm/mods/security/src/components/entropy-augmentation.js +476 -0
- package/dist/esm/mods/security/src/components/entropy-augmentation.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js +336 -0
- package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js +534 -0
- package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js +629 -0
- package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/const/exec.const.js +11 -0
- package/dist/esm/mods/security/src/components/fortified-function/const/exec.const.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/fortified-config.js +351 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/fortified-config.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/fortified-function-core.js +518 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/fortified-function-core.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/fortified-logger.js +243 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/fortified-logger.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/api-manager.js +187 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/api-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/cache-manager.js +105 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/cache-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-context.js +103 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-context.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-engine.js +125 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-engine.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-router.js +91 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-router.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/memory-manager.js +145 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/memory-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/security-manager.js +100 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/security-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/stats-manager.js +157 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/stats-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/timing-manager.js +123 -0
- package/dist/esm/mods/security/src/components/fortified-function/core/mods/timing-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/engines/analytics-engine.js +368 -0
- package/dist/esm/mods/security/src/components/fortified-function/engines/analytics-engine.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/engines/execution-engine.js +400 -0
- package/dist/esm/mods/security/src/components/fortified-function/engines/execution-engine.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/index.js +165 -0
- package/dist/esm/mods/security/src/components/fortified-function/index.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/performance/performance-monitor.js +238 -0
- package/dist/esm/mods/security/src/components/fortified-function/performance/performance-monitor.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/performance/performance-timer.js +186 -0
- package/dist/esm/mods/security/src/components/fortified-function/performance/performance-timer.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js +251 -0
- package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/serializer/safe-serializer.js +344 -0
- package/dist/esm/mods/security/src/components/fortified-function/serializer/safe-serializer.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/smart-cache.js +691 -0
- package/dist/esm/mods/security/src/components/fortified-function/smart-cache.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/types/types.js +14 -0
- package/dist/esm/mods/security/src/components/fortified-function/types/types.js.map +1 -0
- package/dist/esm/mods/security/src/components/fortified-function/utils/utils.js +66 -0
- package/dist/esm/mods/security/src/components/fortified-function/utils/utils.js.map +1 -0
- package/dist/esm/mods/security/src/components/memory-hard.js +919 -0
- package/dist/esm/mods/security/src/components/memory-hard.js.map +1 -0
- package/dist/esm/mods/security/src/components/post-quantum.js +316 -0
- package/dist/esm/mods/security/src/components/post-quantum.js.map +1 -0
- package/dist/esm/mods/security/src/components/runtime-verification.js +643 -0
- package/dist/esm/mods/security/src/components/runtime-verification.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/core/secure-array-core.js +1570 -0
- package/dist/esm/mods/security/src/components/secure-array/core/secure-array-core.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js +328 -0
- package/dist/esm/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/events/event-manager.js +268 -0
- package/dist/esm/mods/security/src/components/secure-array/events/event-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/index.js +61 -0
- package/dist/esm/mods/security/src/components/secure-array/index.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/metadata/metadata-manager.js +329 -0
- package/dist/esm/mods/security/src/components/secure-array/metadata/metadata-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js +388 -0
- package/dist/esm/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/types/index.js +84 -0
- package/dist/esm/mods/security/src/components/secure-array/types/index.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/utils/id-generator.js +78 -0
- package/dist/esm/mods/security/src/components/secure-array/utils/id-generator.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-array/utils/validation.js +273 -0
- package/dist/esm/mods/security/src/components/secure-array/utils/validation.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-memory.js +884 -0
- package/dist/esm/mods/security/src/components/secure-memory.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/core/secure-object-core.js +1603 -0
- package/dist/esm/mods/security/src/components/secure-object/core/secure-object-core.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/encryption/crypto-handler.js +360 -0
- package/dist/esm/mods/security/src/components/secure-object/encryption/crypto-handler.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/encryption/sensitive-keys.js +203 -0
- package/dist/esm/mods/security/src/components/secure-object/encryption/sensitive-keys.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/events/event-manager.js +195 -0
- package/dist/esm/mods/security/src/components/secure-object/events/event-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/index.js +63 -0
- package/dist/esm/mods/security/src/components/secure-object/index.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/metadata/metadata-manager.js +181 -0
- package/dist/esm/mods/security/src/components/secure-object/metadata/metadata-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/serialization/serialization-handler.js +195 -0
- package/dist/esm/mods/security/src/components/secure-object/serialization/serialization-handler.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/utils/id-generator.js +62 -0
- package/dist/esm/mods/security/src/components/secure-object/utils/id-generator.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-object/utils/validation.js +237 -0
- package/dist/esm/mods/security/src/components/secure-object/utils/validation.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-serialization.js +769 -0
- package/dist/esm/mods/security/src/components/secure-serialization.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/advanced/entropy-analyzer.js +306 -0
- package/dist/esm/mods/security/src/components/secure-string/advanced/entropy-analyzer.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/advanced/performance-monitor.js +333 -0
- package/dist/esm/mods/security/src/components/secure-string/advanced/performance-monitor.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/advanced/quantum-safe.js +243 -0
- package/dist/esm/mods/security/src/components/secure-string/advanced/quantum-safe.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/buffer/buffer-manager.js +203 -0
- package/dist/esm/mods/security/src/components/secure-string/buffer/buffer-manager.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/core/secure-string-core.js +786 -0
- package/dist/esm/mods/security/src/components/secure-string/core/secure-string-core.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/crypto/crypto-operations.js +298 -0
- package/dist/esm/mods/security/src/components/secure-string/crypto/crypto-operations.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/operations/comparison-operations.js +219 -0
- package/dist/esm/mods/security/src/components/secure-string/operations/comparison-operations.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/operations/string-operations.js +232 -0
- package/dist/esm/mods/security/src/components/secure-string/operations/string-operations.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/types/index.js +37 -0
- package/dist/esm/mods/security/src/components/secure-string/types/index.js.map +1 -0
- package/dist/esm/mods/security/src/components/secure-string/validation/string-validator.js +332 -0
- package/dist/esm/mods/security/src/components/secure-string/validation/string-validator.js.map +1 -0
- package/dist/esm/mods/security/src/components/side-channel.js +142 -0
- package/dist/esm/mods/security/src/components/side-channel.js.map +1 -0
- package/dist/esm/mods/security/src/components/tamper-evident-logging.js +389 -0
- package/dist/esm/mods/security/src/components/tamper-evident-logging.js.map +1 -0
- package/dist/esm/mods/security/src/const/buffer.const.js +13 -0
- package/dist/esm/mods/security/src/const/buffer.const.js.map +1 -0
- package/dist/esm/mods/security/src/core/crypto.js +720 -0
- package/dist/esm/mods/security/src/core/crypto.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash/hash-advanced.js +367 -0
- package/dist/esm/mods/security/src/core/hash/hash-advanced.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash/hash-core.js +355 -0
- package/dist/esm/mods/security/src/core/hash/hash-core.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash/hash-entropy.js +286 -0
- package/dist/esm/mods/security/src/core/hash/hash-entropy.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash/hash-security.js +351 -0
- package/dist/esm/mods/security/src/core/hash/hash-security.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash/hash-types.js +16 -0
- package/dist/esm/mods/security/src/core/hash/hash-types.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash/hash-utils.js +307 -0
- package/dist/esm/mods/security/src/core/hash/hash-utils.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash/hash-validator.js +310 -0
- package/dist/esm/mods/security/src/core/hash/hash-validator.js.map +1 -0
- package/dist/esm/mods/security/src/core/hash.js +9 -0
- package/dist/esm/mods/security/src/core/hash.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js +133 -0
- package/dist/esm/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js +272 -0
- package/dist/esm/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js +296 -0
- package/dist/esm/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys/keys-core.js +199 -0
- package/dist/esm/mods/security/src/core/keys/keys-core.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys/keys-logger.js +231 -0
- package/dist/esm/mods/security/src/core/keys/keys-logger.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys/keys-types.js +63 -0
- package/dist/esm/mods/security/src/core/keys/keys-types.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys/keys-utils.js +316 -0
- package/dist/esm/mods/security/src/core/keys/keys-utils.js.map +1 -0
- package/dist/esm/mods/security/src/core/keys.js +134 -0
- package/dist/esm/mods/security/src/core/keys.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/index.js +110 -0
- package/dist/esm/mods/security/src/core/password/index.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/password-algorithms.js +395 -0
- package/dist/esm/mods/security/src/core/password/password-algorithms.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/password-core.js +292 -0
- package/dist/esm/mods/security/src/core/password/password-core.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/password-generator.js +363 -0
- package/dist/esm/mods/security/src/core/password/password-generator.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/password-migration.js +235 -0
- package/dist/esm/mods/security/src/core/password/password-migration.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/password-security.js +532 -0
- package/dist/esm/mods/security/src/core/password/password-security.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/password-types.js +34 -0
- package/dist/esm/mods/security/src/core/password/password-types.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/password-utils.js +630 -0
- package/dist/esm/mods/security/src/core/password/password-utils.js.map +1 -0
- package/dist/esm/mods/security/src/core/password/swlist.js +1120 -0
- package/dist/esm/mods/security/src/core/password/swlist.js.map +1 -0
- package/dist/esm/mods/security/src/core/random/random-core.js +326 -0
- package/dist/esm/mods/security/src/core/random/random-core.js.map +1 -0
- package/dist/esm/mods/security/src/core/random/random-crypto.js +337 -0
- package/dist/esm/mods/security/src/core/random/random-crypto.js.map +1 -0
- package/dist/esm/mods/security/src/core/random/random-entropy.js +367 -0
- package/dist/esm/mods/security/src/core/random/random-entropy.js.map +1 -0
- package/dist/esm/mods/security/src/core/random/random-generators.js +323 -0
- package/dist/esm/mods/security/src/core/random/random-generators.js.map +1 -0
- package/dist/esm/mods/security/src/core/random/random-sources.js +405 -0
- package/dist/esm/mods/security/src/core/random/random-sources.js.map +1 -0
- package/dist/esm/mods/security/src/core/random/random-tokens.js +307 -0
- package/dist/esm/mods/security/src/core/random/random-tokens.js.map +1 -0
- package/dist/esm/mods/security/src/core/random/random-types.js +27 -0
- package/dist/esm/mods/security/src/core/random/random-types.js.map +1 -0
- package/dist/esm/mods/security/src/core/validators.js +198 -0
- package/dist/esm/mods/security/src/core/validators.js.map +1 -0
- package/dist/esm/mods/security/src/helpers/Uint8Array.js +333 -0
- package/dist/esm/mods/security/src/helpers/Uint8Array.js.map +1 -0
- package/dist/esm/mods/security/src/helpers/createEnu.js +25 -0
- package/dist/esm/mods/security/src/helpers/createEnu.js.map +1 -0
- package/dist/esm/mods/security/src/index.js +373 -0
- package/dist/esm/mods/security/src/index.js.map +1 -0
- package/dist/esm/mods/security/src/types/global.js +49 -0
- package/dist/esm/mods/security/src/types/global.js.map +1 -0
- package/dist/esm/mods/security/src/types/secure-mem.type.js +96 -0
- package/dist/esm/mods/security/src/types/secure-mem.type.js.map +1 -0
- package/dist/esm/mods/security/src/types/secure-memory.js +20 -0
- package/dist/esm/mods/security/src/types/secure-memory.js.map +1 -0
- package/dist/esm/mods/security/src/types.js +63 -0
- package/dist/esm/mods/security/src/types.js.map +1 -0
- package/dist/esm/mods/security/src/utils/CryptoAlgorithmUtils.js +69 -0
- package/dist/esm/mods/security/src/utils/CryptoAlgorithmUtils.js.map +1 -0
- package/dist/esm/mods/security/src/utils/constants.js +105 -0
- package/dist/esm/mods/security/src/utils/constants.js.map +1 -0
- package/dist/esm/mods/security/src/utils/dataConverter.js +72 -0
- package/dist/esm/mods/security/src/utils/dataConverter.js.map +1 -0
- package/dist/esm/mods/security/src/utils/encoding.js +279 -0
- package/dist/esm/mods/security/src/utils/encoding.js.map +1 -0
- package/dist/esm/mods/security/src/utils/errorHandler.js +137 -0
- package/dist/esm/mods/security/src/utils/errorHandler.js.map +1 -0
- package/dist/esm/mods/security/src/utils/memory/config-manager.js +280 -0
- package/dist/esm/mods/security/src/utils/memory/config-manager.js.map +1 -0
- package/dist/esm/mods/security/src/utils/memory/event-manager.js +275 -0
- package/dist/esm/mods/security/src/utils/memory/event-manager.js.map +1 -0
- package/dist/esm/mods/security/src/utils/memory/index.js +141 -0
- package/dist/esm/mods/security/src/utils/memory/index.js.map +1 -0
- package/dist/esm/mods/security/src/utils/memory/memory-manager.js +886 -0
- package/dist/esm/mods/security/src/utils/memory/memory-manager.js.map +1 -0
- package/dist/esm/mods/security/src/utils/memory/memory-pool.js +354 -0
- package/dist/esm/mods/security/src/utils/memory/memory-pool.js.map +1 -0
- package/dist/esm/mods/security/src/utils/memory/reference-tracker.js +374 -0
- package/dist/esm/mods/security/src/utils/memory/reference-tracker.js.map +1 -0
- package/dist/esm/mods/security/src/utils/memory/types.js +56 -0
- package/dist/esm/mods/security/src/utils/memory/types.js.map +1 -0
- package/dist/esm/mods/security/src/utils/patterns.js +124 -0
- package/dist/esm/mods/security/src/utils/patterns.js.map +1 -0
- package/dist/esm/mods/security/src/utils/performanceMonitor.js +246 -0
- package/dist/esm/mods/security/src/utils/performanceMonitor.js.map +1 -0
- package/dist/esm/mods/security/src/utils/stats.js +180 -0
- package/dist/esm/mods/security/src/utils/stats.js.map +1 -0
- package/dist/esm/security-middleware.js +15 -15
- package/dist/esm/server/components/fastapi/UltraFastRequestProcessor.js +1 -1
- package/dist/esm/server/components/fastapi/console/ConsoleInterceptor.js +23 -23
- package/dist/esm/server/components/fastapi/middlewares/MiddlewareAPI.js +1 -1
- package/dist/esm/server/optimization/RequestPreCompiler.js +1 -1
- package/dist/esm/server/plugins/PluginRegistry.js +1 -1
- package/dist/esm/server/plugins/core/CachePlugin.js +7 -7
- package/dist/esm/server/plugins/core/PerformancePlugin.js +2 -2
- package/dist/esm/server/plugins/core/SecurityPlugin.js +10 -10
- package/dist/esm/smart-routes.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,693 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('../../utils/memory/index.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* XyPrissSecurity - Smart Cache System
|
|
7
|
+
*
|
|
8
|
+
* High-performance caching system with multiple eviction strategies (LRU, LFU, Adaptive),
|
|
9
|
+
* intelligent memory management, and real-time performance optimization.
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Multiple eviction strategies with automatic adaptation
|
|
13
|
+
* - Memory pressure detection and response
|
|
14
|
+
* - TTL-based expiration with automatic cleanup
|
|
15
|
+
* - Performance metrics and hit rate optimization
|
|
16
|
+
* - Predictive caching capabilities
|
|
17
|
+
* - Thread-safe operations with minimal overhead
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Basic usage
|
|
22
|
+
* const cache = new SmartCache<string, User>({
|
|
23
|
+
* maxSize: 1000,
|
|
24
|
+
* ttl: 300000, // 5 minutes
|
|
25
|
+
* strategy: 'adaptive'
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Store and retrieve data
|
|
29
|
+
* cache.set('user:123', userData);
|
|
30
|
+
* const user = cache.get('user:123');
|
|
31
|
+
*
|
|
32
|
+
* // Monitor performance
|
|
33
|
+
* const stats = cache.getStats();
|
|
34
|
+
* console.log(`Hit rate: ${stats.hitRate}%`);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
class SmartCache {
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new SmartCache instance with intelligent caching strategies.
|
|
40
|
+
*
|
|
41
|
+
* @param config - Configuration options for the cache
|
|
42
|
+
* @param config.strategy - Eviction strategy: 'lru', 'lfu', or 'adaptive'
|
|
43
|
+
* @param config.maxSize - Maximum number of entries (default: 1000)
|
|
44
|
+
* @param config.ttl - Time-to-live in milliseconds (default: 300000 = 5 minutes)
|
|
45
|
+
* @param config.autoCleanup - Enable automatic cleanup of expired entries (default: true)
|
|
46
|
+
* @param config.compressionEnabled - Enable compression for large values (default: false)
|
|
47
|
+
* @param config.persistToDisk - Enable disk persistence (default: false)
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // High-performance cache for API responses
|
|
52
|
+
* const apiCache = new SmartCache<string, ApiResponse>({
|
|
53
|
+
* strategy: 'adaptive',
|
|
54
|
+
* maxSize: 5000,
|
|
55
|
+
* ttl: 600000, // 10 minutes
|
|
56
|
+
* autoCleanup: true
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* // Memory-optimized cache for large objects
|
|
60
|
+
* const dataCache = new SmartCache<string, LargeData>({
|
|
61
|
+
* strategy: 'lfu',
|
|
62
|
+
* maxSize: 100,
|
|
63
|
+
* compressionEnabled: true
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
constructor(config = {}) {
|
|
68
|
+
this.cache = new Map();
|
|
69
|
+
this.accessOrder = [];
|
|
70
|
+
this.frequencyMap = new Map();
|
|
71
|
+
this.priorityQueue = new Map();
|
|
72
|
+
this.lastAdaptation = 0;
|
|
73
|
+
this.stats = {
|
|
74
|
+
hits: 0,
|
|
75
|
+
misses: 0,
|
|
76
|
+
evictions: 0,
|
|
77
|
+
totalSize: 0,
|
|
78
|
+
compressionRatio: 0,
|
|
79
|
+
adaptations: 0,
|
|
80
|
+
memoryPressureEvents: 0,
|
|
81
|
+
};
|
|
82
|
+
this.config = {
|
|
83
|
+
strategy: "adaptive",
|
|
84
|
+
maxSize: 1000,
|
|
85
|
+
ttl: 300000, // 5 minutes
|
|
86
|
+
autoCleanup: true,
|
|
87
|
+
compressionEnabled: false,
|
|
88
|
+
persistToDisk: false,
|
|
89
|
+
adaptationThreshold: 0.1, // Adapt when hit rate changes by 10%
|
|
90
|
+
memoryCheckInterval: 30000, // Check memory every 30 seconds
|
|
91
|
+
maxMemoryUsage: 100 * 1024 * 1024, // 100MB default limit
|
|
92
|
+
...config,
|
|
93
|
+
};
|
|
94
|
+
if (this.config.autoCleanup) {
|
|
95
|
+
this.setupAutoCleanup();
|
|
96
|
+
}
|
|
97
|
+
this.setupMemoryMonitoring();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Retrieves a value from the cache with intelligent access tracking.
|
|
101
|
+
*
|
|
102
|
+
* This method updates access patterns, frequency counters, and recency information
|
|
103
|
+
* to support adaptive eviction strategies. Expired entries are automatically removed.
|
|
104
|
+
*
|
|
105
|
+
* @param key - The key to retrieve
|
|
106
|
+
* @returns The cached value or null if not found/expired
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const userData = cache.get('user:123');
|
|
111
|
+
* if (userData) {
|
|
112
|
+
* // Cache hit - data is fresh and valid
|
|
113
|
+
* processUser(userData);
|
|
114
|
+
* } else {
|
|
115
|
+
* // Cache miss - fetch from source
|
|
116
|
+
* const data = await fetchUser('123');
|
|
117
|
+
* cache.set('user:123', data);
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
get(key) {
|
|
122
|
+
const entry = this.cache.get(key);
|
|
123
|
+
if (!entry) {
|
|
124
|
+
this.stats.misses++;
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
// Check TTL expiration with high precision
|
|
128
|
+
if (this.isExpired(entry)) {
|
|
129
|
+
this.internalDelete(key);
|
|
130
|
+
this.stats.misses++;
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
// Efficient access pattern updates
|
|
134
|
+
this.updateAccessPattern(key, entry);
|
|
135
|
+
this.stats.hits++;
|
|
136
|
+
return entry.result;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Stores a value in the cache with intelligent eviction and optimization.
|
|
140
|
+
*
|
|
141
|
+
* When the cache reaches capacity, this method uses the configured strategy
|
|
142
|
+
* to evict less valuable entries. Priority is calculated based on access patterns,
|
|
143
|
+
* frequency, recency, and value size.
|
|
144
|
+
*
|
|
145
|
+
* @param key - The key to store under
|
|
146
|
+
* @param value - The value to cache
|
|
147
|
+
* @param ttl - Optional TTL override in milliseconds
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* // Standard caching
|
|
152
|
+
* cache.set('config:app', appConfig);
|
|
153
|
+
*
|
|
154
|
+
* // With custom TTL (1 hour)
|
|
155
|
+
* cache.set('temp:data', tempData, 3600000);
|
|
156
|
+
*
|
|
157
|
+
* // High-priority caching
|
|
158
|
+
* cache.set('critical:settings', settings);
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
set(key, value, ttl) {
|
|
162
|
+
// Pre-eviction check for capacity management
|
|
163
|
+
if (this.cache.size >= this.config.maxSize && !this.cache.has(key)) {
|
|
164
|
+
this.evictEntries(1);
|
|
165
|
+
}
|
|
166
|
+
const now = Date.now();
|
|
167
|
+
const estimatedSize = this.estimateSize(value);
|
|
168
|
+
const currentFrequency = this.frequencyMap.get(key) || 0;
|
|
169
|
+
const entry = {
|
|
170
|
+
result: value,
|
|
171
|
+
timestamp: now,
|
|
172
|
+
accessCount: this.cache.has(key)
|
|
173
|
+
? this.cache.get(key).accessCount + 1
|
|
174
|
+
: 1,
|
|
175
|
+
lastAccessed: new Date(now),
|
|
176
|
+
ttl: ttl || this.config.ttl,
|
|
177
|
+
priority: this.calculatePriority(key, value, currentFrequency),
|
|
178
|
+
size: estimatedSize,
|
|
179
|
+
frequency: currentFrequency + 1,
|
|
180
|
+
};
|
|
181
|
+
this.cache.set(key, entry);
|
|
182
|
+
this.updateFrequency(key);
|
|
183
|
+
this.updateAccessOrder(key);
|
|
184
|
+
this.priorityQueue.set(key, entry.priority || 0);
|
|
185
|
+
// Efficient stats update
|
|
186
|
+
this.stats.totalSize = this.cache.size;
|
|
187
|
+
// Check for memory pressure after significant additions
|
|
188
|
+
if (estimatedSize > 10000) {
|
|
189
|
+
// 10KB threshold
|
|
190
|
+
this.checkMemoryPressure();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Removes an entry from the cache and all associated tracking data.
|
|
195
|
+
*
|
|
196
|
+
* @param key - The key to remove
|
|
197
|
+
* @returns True if the entry existed and was removed, false otherwise
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* // Remove specific entry
|
|
202
|
+
* const wasRemoved = cache.delete('user:123');
|
|
203
|
+
*
|
|
204
|
+
* // Conditional removal
|
|
205
|
+
* if (userData.isExpired) {
|
|
206
|
+
* cache.delete('user:123');
|
|
207
|
+
* }
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
delete(key) {
|
|
211
|
+
return this.internalDelete(key);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Clears all entries from the cache and resets all metrics.
|
|
215
|
+
*
|
|
216
|
+
* This operation is atomic and efficiently resets all internal data structures.
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* // Complete cache reset
|
|
221
|
+
* cache.clear();
|
|
222
|
+
*
|
|
223
|
+
* // Verify clearing
|
|
224
|
+
* console.log(cache.getStats().size); // 0
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
clear() {
|
|
228
|
+
this.cache.clear();
|
|
229
|
+
this.accessOrder.length = 0; // Efficient array clearing
|
|
230
|
+
this.frequencyMap.clear();
|
|
231
|
+
this.priorityQueue.clear();
|
|
232
|
+
this.resetStats();
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Returns comprehensive cache statistics and performance metrics.
|
|
236
|
+
*
|
|
237
|
+
* @returns Detailed statistics including hit rates, memory usage, and strategy effectiveness
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* ```typescript
|
|
241
|
+
* const stats = cache.getStats();
|
|
242
|
+
* console.log(`Hit Rate: ${(stats.hitRate * 100).toFixed(2)}%`);
|
|
243
|
+
* console.log(`Memory Usage: ${(stats.memoryUsage / 1024 / 1024).toFixed(2)}MB`);
|
|
244
|
+
* console.log(`Evictions: ${stats.evictions}`);
|
|
245
|
+
*
|
|
246
|
+
* // Monitor performance trends
|
|
247
|
+
* if (stats.hitRate < 0.7) {
|
|
248
|
+
* console.warn('Cache hit rate is below optimal threshold');
|
|
249
|
+
* }
|
|
250
|
+
* ```
|
|
251
|
+
*/
|
|
252
|
+
getStats() {
|
|
253
|
+
const totalRequests = this.stats.hits + this.stats.misses;
|
|
254
|
+
const hitRate = totalRequests > 0 ? this.stats.hits / totalRequests : 0;
|
|
255
|
+
const memoryUsage = this.estimateMemoryUsage();
|
|
256
|
+
return {
|
|
257
|
+
...this.stats,
|
|
258
|
+
hitRate,
|
|
259
|
+
hitRatePercentage: Math.round(hitRate * 100),
|
|
260
|
+
size: this.cache.size,
|
|
261
|
+
maxSize: this.config.maxSize,
|
|
262
|
+
utilizationRate: this.cache.size / this.config.maxSize,
|
|
263
|
+
strategy: this.config.strategy,
|
|
264
|
+
averageAccessCount: this.getAverageAccessCount(),
|
|
265
|
+
memoryUsage,
|
|
266
|
+
memoryUsageMB: Math.round((memoryUsage / 1024 / 1024) * 100) / 100,
|
|
267
|
+
averageEntrySize: this.cache.size > 0 ? memoryUsage / this.cache.size : 0,
|
|
268
|
+
topFrequentKeys: this.getTopFrequentKeys(5),
|
|
269
|
+
recentEvictions: this.stats.evictions,
|
|
270
|
+
adaptationHistory: this.stats.adaptations,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Intelligently pre-warms the cache with high-priority entries.
|
|
275
|
+
*
|
|
276
|
+
* This method optimizes cache performance by preloading frequently accessed
|
|
277
|
+
* or critical data based on priority scores and usage patterns.
|
|
278
|
+
*
|
|
279
|
+
* @param patterns - Array of key-value pairs with priority scores
|
|
280
|
+
* @param patterns[].key - The cache key
|
|
281
|
+
* @param patterns[].value - The value to cache
|
|
282
|
+
* @param patterns[].priority - Priority score (higher = more important)
|
|
283
|
+
*
|
|
284
|
+
* @example
|
|
285
|
+
* ```typescript
|
|
286
|
+
* // Warm cache with critical application data
|
|
287
|
+
* cache.warmCache([
|
|
288
|
+
* { key: 'config:app', value: appConfig, priority: 10 },
|
|
289
|
+
* { key: 'user:admin', value: adminUser, priority: 8 },
|
|
290
|
+
* { key: 'settings:global', value: globalSettings, priority: 7 }
|
|
291
|
+
* ]);
|
|
292
|
+
*
|
|
293
|
+
* // Warm with user-specific data
|
|
294
|
+
* const userPatterns = recentUsers.map(user => ({
|
|
295
|
+
* key: `user:${user.id}`,
|
|
296
|
+
* value: user,
|
|
297
|
+
* priority: user.accessFrequency
|
|
298
|
+
* }));
|
|
299
|
+
* cache.warmCache(userPatterns);
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
warmCache(patterns) {
|
|
303
|
+
if (!patterns.length)
|
|
304
|
+
return;
|
|
305
|
+
// Calculate optimal warming size (30% of cache capacity)
|
|
306
|
+
const warmingSize = Math.min(Math.floor(this.config.maxSize * 0.3), patterns.length);
|
|
307
|
+
// Sort by priority (descending) and select top entries
|
|
308
|
+
const prioritizedPatterns = patterns
|
|
309
|
+
.sort((a, b) => b.priority - a.priority)
|
|
310
|
+
.slice(0, warmingSize);
|
|
311
|
+
// Batch warming for better performance
|
|
312
|
+
for (const { key, value } of prioritizedPatterns) {
|
|
313
|
+
// Skip if already cached and fresh
|
|
314
|
+
const existing = this.cache.get(key);
|
|
315
|
+
if (existing && !this.isExpired(existing)) {
|
|
316
|
+
continue;
|
|
317
|
+
}
|
|
318
|
+
this.set(key, value);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Implements predictive caching based on usage patterns and probability analysis.
|
|
323
|
+
*
|
|
324
|
+
* This method analyzes access patterns to predict future cache needs and
|
|
325
|
+
* preloads likely-to-be-accessed entries to improve hit rates.
|
|
326
|
+
*
|
|
327
|
+
* @param predictions - Array of predictions with keys and probability scores
|
|
328
|
+
* @param predictions[].key - The predicted cache key
|
|
329
|
+
* @param predictions[].probability - Probability of access (0-1)
|
|
330
|
+
* @param predictions[].estimatedValue - Optional estimated value for priority calculation
|
|
331
|
+
*
|
|
332
|
+
* @example
|
|
333
|
+
* ```typescript
|
|
334
|
+
* // Predict based on user behavior patterns
|
|
335
|
+
* const predictions = userAnalytics.getPredictions().map(pred => ({
|
|
336
|
+
* key: `user:${pred.userId}`,
|
|
337
|
+
* probability: pred.accessProbability,
|
|
338
|
+
* estimatedValue: pred.userData
|
|
339
|
+
* }));
|
|
340
|
+
*
|
|
341
|
+
* cache.preloadPredictedEntries(predictions);
|
|
342
|
+
*
|
|
343
|
+
* // Predict based on time patterns
|
|
344
|
+
* const timePredictions = [
|
|
345
|
+
* { key: 'report:daily', probability: 0.9 }, // High probability during business hours
|
|
346
|
+
* { key: 'config:night', probability: 0.3 } // Low probability during day
|
|
347
|
+
* ];
|
|
348
|
+
* cache.preloadPredictedEntries(timePredictions);
|
|
349
|
+
* ```
|
|
350
|
+
*/
|
|
351
|
+
preloadPredictedEntries(predictions) {
|
|
352
|
+
if (!predictions.length)
|
|
353
|
+
return;
|
|
354
|
+
// Filter high-probability predictions (>70% confidence)
|
|
355
|
+
const highConfidencePredictions = predictions
|
|
356
|
+
.filter((p) => p.probability > 0.7)
|
|
357
|
+
.sort((a, b) => b.probability - a.probability);
|
|
358
|
+
// Limit preloading to 10% of cache capacity to avoid pollution
|
|
359
|
+
const preloadLimit = Math.floor(this.config.maxSize * 0.1);
|
|
360
|
+
const selectedPredictions = highConfidencePredictions.slice(0, preloadLimit);
|
|
361
|
+
// Mark for priority caching when values become available
|
|
362
|
+
for (const { key, probability } of selectedPredictions) {
|
|
363
|
+
this.priorityQueue.set(key, probability * 10); // Scale probability to priority
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Dynamically adapts the caching strategy based on real-time performance metrics.
|
|
368
|
+
*
|
|
369
|
+
* This method continuously monitors cache performance and automatically switches
|
|
370
|
+
* between LRU, LFU, and adaptive strategies to optimize hit rates and memory usage.
|
|
371
|
+
*
|
|
372
|
+
* @param metrics - Current performance metrics from the application
|
|
373
|
+
* @param metrics.memoryUsage - Current memory usage ratio (0-1)
|
|
374
|
+
* @param metrics.cpuUsage - Current CPU usage ratio (0-1)
|
|
375
|
+
* @param metrics.requestRate - Current request rate (requests/second)
|
|
376
|
+
*
|
|
377
|
+
* @example
|
|
378
|
+
* ```typescript
|
|
379
|
+
* // Adapt based on system metrics
|
|
380
|
+
* const systemMetrics = {
|
|
381
|
+
* memoryUsage: process.memoryUsage().heapUsed / process.memoryUsage().heapTotal,
|
|
382
|
+
* cpuUsage: await getCpuUsage(),
|
|
383
|
+
* requestRate: getCurrentRequestRate()
|
|
384
|
+
* };
|
|
385
|
+
*
|
|
386
|
+
* cache.adaptStrategy(systemMetrics);
|
|
387
|
+
*
|
|
388
|
+
* // Automatic adaptation with monitoring
|
|
389
|
+
* setInterval(() => {
|
|
390
|
+
* const metrics = getSystemMetrics();
|
|
391
|
+
* cache.adaptStrategy(metrics);
|
|
392
|
+
* }, 60000); // Adapt every minute
|
|
393
|
+
* ```
|
|
394
|
+
*/
|
|
395
|
+
adaptStrategy(metrics) {
|
|
396
|
+
const now = Date.now();
|
|
397
|
+
// Throttle adaptations to prevent thrashing
|
|
398
|
+
if (now - this.lastAdaptation < 30000) {
|
|
399
|
+
// 30-second cooldown
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
402
|
+
const currentStats = this.getStats();
|
|
403
|
+
const hitRate = currentStats.hitRate;
|
|
404
|
+
const memoryPressure = metrics.memoryUsage || 0;
|
|
405
|
+
const previousStrategy = this.config.strategy;
|
|
406
|
+
// Strategy adaptation logic based on performance characteristics
|
|
407
|
+
if (hitRate < 0.4 && memoryPressure < 0.7) {
|
|
408
|
+
// Low hit rate, sufficient memory -> prioritize frequency (LFU)
|
|
409
|
+
this.config.strategy = "lfu";
|
|
410
|
+
}
|
|
411
|
+
else if (hitRate > 0.8 && memoryPressure > 0.8) {
|
|
412
|
+
// High hit rate, memory pressure -> prioritize recency (LRU)
|
|
413
|
+
this.config.strategy = "lru";
|
|
414
|
+
}
|
|
415
|
+
else if (memoryPressure > 0.9) {
|
|
416
|
+
// Critical memory pressure -> aggressive LRU
|
|
417
|
+
this.config.strategy = "lru";
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
// Balanced conditions -> use adaptive strategy
|
|
421
|
+
this.config.strategy = "adaptive";
|
|
422
|
+
}
|
|
423
|
+
if (previousStrategy !== this.config.strategy) {
|
|
424
|
+
this.stats.adaptations++;
|
|
425
|
+
this.lastAdaptation = now;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Handles memory pressure events with intelligent cache reduction strategies.
|
|
430
|
+
*
|
|
431
|
+
* This method responds to memory pressure by selectively evicting entries
|
|
432
|
+
* based on the pressure level and current cache strategy.
|
|
433
|
+
*
|
|
434
|
+
* @param pressureLevel - The level of memory pressure detected
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ```typescript
|
|
438
|
+
* // Monitor memory and respond to pressure
|
|
439
|
+
* process.on('memoryUsage', (usage) => {
|
|
440
|
+
* const pressureRatio = usage.heapUsed / usage.heapTotal;
|
|
441
|
+
*
|
|
442
|
+
* if (pressureRatio > 0.9) {
|
|
443
|
+
* cache.handleMemoryPressure('high');
|
|
444
|
+
* } else if (pressureRatio > 0.7) {
|
|
445
|
+
* cache.handleMemoryPressure('medium');
|
|
446
|
+
* }
|
|
447
|
+
* });
|
|
448
|
+
*
|
|
449
|
+
* // Proactive memory management
|
|
450
|
+
* if (getAvailableMemory() < requiredMemory) {
|
|
451
|
+
* cache.handleMemoryPressure('medium');
|
|
452
|
+
* }
|
|
453
|
+
* ```
|
|
454
|
+
*/
|
|
455
|
+
handleMemoryPressure(pressureLevel) {
|
|
456
|
+
this.stats.memoryPressureEvents++;
|
|
457
|
+
switch (pressureLevel) {
|
|
458
|
+
case "high":
|
|
459
|
+
// Aggressive cleanup - remove 50% of entries, prioritizing large/stale entries
|
|
460
|
+
this.evictEntries(Math.floor(this.cache.size * 0.5));
|
|
461
|
+
this.cleanupExpiredEntries();
|
|
462
|
+
break;
|
|
463
|
+
case "medium":
|
|
464
|
+
// Moderate cleanup - remove 25% of entries
|
|
465
|
+
this.evictEntries(Math.floor(this.cache.size * 0.25));
|
|
466
|
+
this.cleanupExpiredEntries();
|
|
467
|
+
break;
|
|
468
|
+
case "low":
|
|
469
|
+
// Light cleanup - remove only expired and lowest priority entries
|
|
470
|
+
this.cleanupExpiredEntries();
|
|
471
|
+
this.evictEntries(Math.floor(this.cache.size * 0.1));
|
|
472
|
+
break;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Safely destroys the cache instance and cleans up all resources.
|
|
477
|
+
*
|
|
478
|
+
* This method should be called when the cache is no longer needed to prevent
|
|
479
|
+
* memory leaks and stop background processes.
|
|
480
|
+
*
|
|
481
|
+
* @example
|
|
482
|
+
* ```typescript
|
|
483
|
+
* // Cleanup on application shutdown
|
|
484
|
+
* process.on('SIGTERM', () => {
|
|
485
|
+
* cache.destroy();
|
|
486
|
+
* });
|
|
487
|
+
*
|
|
488
|
+
* // Cleanup after use
|
|
489
|
+
* const tempCache = new SmartCache();
|
|
490
|
+
* // ... use cache
|
|
491
|
+
* tempCache.destroy();
|
|
492
|
+
* ```
|
|
493
|
+
*/
|
|
494
|
+
destroy() {
|
|
495
|
+
if (this.cleanupInterval) {
|
|
496
|
+
clearInterval(this.cleanupInterval);
|
|
497
|
+
this.cleanupInterval = undefined;
|
|
498
|
+
}
|
|
499
|
+
if (this.memoryCheckInterval) {
|
|
500
|
+
clearInterval(this.memoryCheckInterval);
|
|
501
|
+
this.memoryCheckInterval = undefined;
|
|
502
|
+
}
|
|
503
|
+
this.clear();
|
|
504
|
+
}
|
|
505
|
+
// Private helper methods - optimized for performance
|
|
506
|
+
internalDelete(key) {
|
|
507
|
+
const deleted = this.cache.delete(key);
|
|
508
|
+
if (deleted) {
|
|
509
|
+
this.removeFromAccessOrder(key);
|
|
510
|
+
this.frequencyMap.delete(key);
|
|
511
|
+
this.priorityQueue.delete(key);
|
|
512
|
+
this.stats.totalSize = this.cache.size;
|
|
513
|
+
}
|
|
514
|
+
return deleted;
|
|
515
|
+
}
|
|
516
|
+
isExpired(entry) {
|
|
517
|
+
return ((entry.ttl || 0) > 0 &&
|
|
518
|
+
Date.now() - entry.timestamp > (entry.ttl || 0));
|
|
519
|
+
}
|
|
520
|
+
updateAccessPattern(key, entry) {
|
|
521
|
+
const now = Date.now();
|
|
522
|
+
entry.accessCount++;
|
|
523
|
+
entry.lastAccessed = new Date(now);
|
|
524
|
+
// Efficient frequency and order updates
|
|
525
|
+
this.updateFrequency(key);
|
|
526
|
+
this.updateAccessOrder(key);
|
|
527
|
+
// Update priority for adaptive strategy
|
|
528
|
+
if (this.config.strategy === "adaptive") {
|
|
529
|
+
const newPriority = this.calculatePriority(key, entry.result, entry.frequency);
|
|
530
|
+
this.priorityQueue.set(key, newPriority);
|
|
531
|
+
entry.priority = newPriority;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
updateFrequency(key) {
|
|
535
|
+
const current = this.frequencyMap.get(key) || 0;
|
|
536
|
+
this.frequencyMap.set(key, current + 1);
|
|
537
|
+
}
|
|
538
|
+
updateAccessOrder(key) {
|
|
539
|
+
// Efficient LRU order maintenance
|
|
540
|
+
const index = this.accessOrder.indexOf(key);
|
|
541
|
+
if (index > -1) {
|
|
542
|
+
// Move to end (most recent) - O(n) but infrequent
|
|
543
|
+
this.accessOrder.splice(index, 1);
|
|
544
|
+
}
|
|
545
|
+
this.accessOrder.push(key);
|
|
546
|
+
}
|
|
547
|
+
removeFromAccessOrder(key) {
|
|
548
|
+
const index = this.accessOrder.indexOf(key);
|
|
549
|
+
if (index > -1) {
|
|
550
|
+
this.accessOrder.splice(index, 1);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
calculatePriority(key, value, frequency = 0) {
|
|
554
|
+
const size = this.estimateSize(value);
|
|
555
|
+
const recency = 1; // Base recency score for new/accessed entries
|
|
556
|
+
const sizeWeight = Math.max(size / 10000, 1); // Normalize size impact
|
|
557
|
+
// Balanced priority calculation: frequency and recency boost, size penalty
|
|
558
|
+
return (((frequency * 0.4 + recency * 0.4) / sizeWeight) * 0.2 +
|
|
559
|
+
(this.priorityQueue.get(key) || 0) * 0.1); // Include existing priority
|
|
560
|
+
}
|
|
561
|
+
estimateSize(value) {
|
|
562
|
+
if (value === null || value === undefined)
|
|
563
|
+
return 8;
|
|
564
|
+
if (typeof value === "string")
|
|
565
|
+
return value.length * 2;
|
|
566
|
+
if (typeof value === "number")
|
|
567
|
+
return 8;
|
|
568
|
+
if (typeof value === "boolean")
|
|
569
|
+
return 4;
|
|
570
|
+
if (ArrayBuffer.isView(value))
|
|
571
|
+
return value.byteLength;
|
|
572
|
+
try {
|
|
573
|
+
// More accurate size estimation for objects
|
|
574
|
+
const jsonStr = JSON.stringify(value);
|
|
575
|
+
return jsonStr.length * 2; // UTF-16 encoding
|
|
576
|
+
}
|
|
577
|
+
catch {
|
|
578
|
+
return 1000; // Conservative estimate for non-serializable objects
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
evictEntries(count = 1) {
|
|
582
|
+
if (this.cache.size === 0 || count <= 0)
|
|
583
|
+
return;
|
|
584
|
+
const actualCount = Math.min(count, this.cache.size);
|
|
585
|
+
switch (this.config.strategy) {
|
|
586
|
+
case "lru":
|
|
587
|
+
this.evictLRU(actualCount);
|
|
588
|
+
break;
|
|
589
|
+
case "lfu":
|
|
590
|
+
this.evictLFU(actualCount);
|
|
591
|
+
break;
|
|
592
|
+
case "adaptive":
|
|
593
|
+
this.evictAdaptive(actualCount);
|
|
594
|
+
break;
|
|
595
|
+
}
|
|
596
|
+
this.stats.evictions += actualCount;
|
|
597
|
+
}
|
|
598
|
+
evictLRU(count) {
|
|
599
|
+
// Remove least recently used entries (from beginning of access order)
|
|
600
|
+
const toRemove = this.accessOrder.slice(0, count);
|
|
601
|
+
for (const key of toRemove) {
|
|
602
|
+
this.internalDelete(key);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
evictLFU(count) {
|
|
606
|
+
// Remove least frequently used entries
|
|
607
|
+
const frequencyEntries = Array.from(this.frequencyMap.entries())
|
|
608
|
+
.sort((a, b) => a[1] - b[1]) // Sort by frequency ascending
|
|
609
|
+
.slice(0, count);
|
|
610
|
+
for (const [key] of frequencyEntries) {
|
|
611
|
+
this.internalDelete(key);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
evictAdaptive(count) {
|
|
615
|
+
// Evict based on composite priority score (lowest priority first)
|
|
616
|
+
const priorityEntries = Array.from(this.priorityQueue.entries())
|
|
617
|
+
.sort((a, b) => a[1] - b[1]) // Sort by priority ascending
|
|
618
|
+
.slice(0, count);
|
|
619
|
+
for (const [key] of priorityEntries) {
|
|
620
|
+
this.internalDelete(key);
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
cleanupExpiredEntries() {
|
|
624
|
+
const expiredKeys = [];
|
|
625
|
+
// Collect expired keys efficiently
|
|
626
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
627
|
+
if (this.isExpired(entry)) {
|
|
628
|
+
expiredKeys.push(key);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
// Batch delete expired entries
|
|
632
|
+
for (const key of expiredKeys) {
|
|
633
|
+
this.internalDelete(key);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
setupAutoCleanup() {
|
|
637
|
+
this.cleanupInterval = setInterval(() => {
|
|
638
|
+
this.cleanupExpiredEntries();
|
|
639
|
+
}, 60000); // Check every minute
|
|
640
|
+
}
|
|
641
|
+
setupMemoryMonitoring() {
|
|
642
|
+
this.memoryCheckInterval = setInterval(() => {
|
|
643
|
+
this.checkMemoryPressure();
|
|
644
|
+
}, 30000); // Check every 30 seconds
|
|
645
|
+
}
|
|
646
|
+
checkMemoryPressure() {
|
|
647
|
+
try {
|
|
648
|
+
const memoryStats = index.memoryManager?.getStats();
|
|
649
|
+
if (memoryStats?.pressure) {
|
|
650
|
+
const pressure = memoryStats.pressure;
|
|
651
|
+
if (pressure > 0.9) {
|
|
652
|
+
this.handleMemoryPressure("high");
|
|
653
|
+
}
|
|
654
|
+
else if (pressure > 0.7) {
|
|
655
|
+
this.handleMemoryPressure("medium");
|
|
656
|
+
}
|
|
657
|
+
else if (pressure > 0.5) {
|
|
658
|
+
this.handleMemoryPressure("low");
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
catch (error) {
|
|
663
|
+
// Silently handle memory manager unavailability
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
resetStats() {
|
|
667
|
+
this.stats.hits = 0;
|
|
668
|
+
this.stats.misses = 0;
|
|
669
|
+
this.stats.evictions = 0;
|
|
670
|
+
this.stats.totalSize = 0;
|
|
671
|
+
this.stats.compressionRatio = 0;
|
|
672
|
+
this.stats.adaptations = 0;
|
|
673
|
+
this.stats.memoryPressureEvents = 0;
|
|
674
|
+
}
|
|
675
|
+
getAverageAccessCount() {
|
|
676
|
+
if (this.cache.size === 0)
|
|
677
|
+
return 0;
|
|
678
|
+
const total = Array.from(this.cache.values()).reduce((sum, entry) => sum + entry.accessCount, 0);
|
|
679
|
+
return Math.round((total / this.cache.size) * 100) / 100;
|
|
680
|
+
}
|
|
681
|
+
estimateMemoryUsage() {
|
|
682
|
+
return Array.from(this.cache.values()).reduce((total, entry) => total + (entry.size || 0), 0);
|
|
683
|
+
}
|
|
684
|
+
getTopFrequentKeys(limit = 5) {
|
|
685
|
+
return Array.from(this.frequencyMap.entries())
|
|
686
|
+
.sort((a, b) => b[1] - a[1])
|
|
687
|
+
.slice(0, limit)
|
|
688
|
+
.map(([key, frequency]) => ({ key, frequency }));
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
exports.SmartCache = SmartCache;
|
|
693
|
+
//# sourceMappingURL=smart-cache.js.map
|