@memberjunction/encryption 3.4.0 → 4.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 +347 -236
- package/dist/EncryptionEngine.d.ts +1 -2
- package/dist/EncryptionEngine.d.ts.map +1 -1
- package/dist/EncryptionEngine.js +44 -68
- package/dist/EncryptionEngine.js.map +1 -1
- package/dist/EncryptionKeySourceBase.d.ts +1 -2
- package/dist/EncryptionKeySourceBase.d.ts.map +1 -1
- package/dist/EncryptionKeySourceBase.js +1 -12
- package/dist/EncryptionKeySourceBase.js.map +1 -1
- package/dist/actions/EnableFieldEncryptionAction.js +19 -22
- package/dist/actions/EnableFieldEncryptionAction.js.map +1 -1
- package/dist/actions/RotateEncryptionKeyAction.js +20 -23
- package/dist/actions/RotateEncryptionKeyAction.js.map +1 -1
- package/dist/actions/index.d.ts +2 -2
- package/dist/actions/index.js +2 -7
- package/dist/actions/index.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +8 -19
- package/dist/index.js.map +1 -1
- package/dist/interfaces.js +1 -2
- package/dist/interfaces.js.map +1 -1
- package/dist/providers/AWSKMSKeySource.d.ts +1 -2
- package/dist/providers/AWSKMSKeySource.d.ts.map +1 -1
- package/dist/providers/AWSKMSKeySource.js +15 -38
- package/dist/providers/AWSKMSKeySource.js.map +1 -1
- package/dist/providers/AzureKeyVaultKeySource.d.ts +1 -2
- package/dist/providers/AzureKeyVaultKeySource.d.ts.map +1 -1
- package/dist/providers/AzureKeyVaultKeySource.js +14 -37
- package/dist/providers/AzureKeyVaultKeySource.js.map +1 -1
- package/dist/providers/ConfigFileKeySource.d.ts +1 -2
- package/dist/providers/ConfigFileKeySource.d.ts.map +1 -1
- package/dist/providers/ConfigFileKeySource.js +23 -25
- package/dist/providers/ConfigFileKeySource.js.map +1 -1
- package/dist/providers/EnvVarKeySource.d.ts +1 -2
- package/dist/providers/EnvVarKeySource.d.ts.map +1 -1
- package/dist/providers/EnvVarKeySource.js +6 -9
- package/dist/providers/EnvVarKeySource.js.map +1 -1
- package/package.json +16 -15
|
@@ -44,10 +44,9 @@
|
|
|
44
44
|
*
|
|
45
45
|
* @module @memberjunction/encryption
|
|
46
46
|
*/
|
|
47
|
-
/// <reference types="node" />
|
|
48
47
|
import { IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
49
48
|
import { EncryptionEngineBase } from '@memberjunction/core-entities';
|
|
50
|
-
import { EncryptedValueParts } from './interfaces';
|
|
49
|
+
import { EncryptedValueParts } from './interfaces.js';
|
|
51
50
|
/**
|
|
52
51
|
* Core encryption engine for field-level encryption operations.
|
|
53
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptionEngine.d.ts","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG
|
|
1
|
+
{"version":3,"file":"EncryptionEngine.d.ts","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAIH,OAAO,EAAE,iBAAiB,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EACH,mBAAmB,EAEtB,MAAM,cAAc,CAAC;AAkBtB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAiB,SAAQ,oBAAoB;IACtD;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB,CAA8C;IAEvE;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAmD;IAE1E;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6C;IAEpF;;;;;;;;;;;OAWG;IACH,WAA2B,QAAQ,IAAI,gBAAgB,CAEtD;IAED;;;;;;;;;OASG;IACmB,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,OAAO,CACT,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,QAAQ,GACvB,OAAO,CAAC,MAAM,CAAC;IA2BlB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,OAAO,CACT,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,QAAQ,GACvB,OAAO,CAAC,MAAM,CAAC;IAsBlB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;IAI/D;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB;IA2CvD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,mBAAmB,CACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,QAAQ,GACvB,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,iBAAiB,CACnB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,QAAQ,GACvB,OAAO,CAAC,MAAM,CAAC;IAsBlB;;;;;;OAMG;IACH,WAAW,IAAI,IAAI;IAKnB;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC;;;;OAIG;YACW,gBAAgB;IAM9B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA0D7B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAuEzB;;;;OAIG;YACW,cAAc;IA8B5B;;;;OAIG;YACW,wBAAwB;IActC;;;;OAIG;YACW,oBAAoB;IAmDlC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAStB"}
|
package/dist/EncryptionEngine.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Core encryption engine for MemberJunction field-level encryption.
|
|
4
3
|
*
|
|
@@ -45,36 +44,11 @@
|
|
|
45
44
|
*
|
|
46
45
|
* @module @memberjunction/encryption
|
|
47
46
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
Object.defineProperty(o, k2, desc);
|
|
55
|
-
}) : (function(o, m, k, k2) {
|
|
56
|
-
if (k2 === undefined) k2 = k;
|
|
57
|
-
o[k2] = m[k];
|
|
58
|
-
}));
|
|
59
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
60
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
61
|
-
}) : function(o, v) {
|
|
62
|
-
o["default"] = v;
|
|
63
|
-
});
|
|
64
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
65
|
-
if (mod && mod.__esModule) return mod;
|
|
66
|
-
var result = {};
|
|
67
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
68
|
-
__setModuleDefault(result, mod);
|
|
69
|
-
return result;
|
|
70
|
-
};
|
|
71
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
72
|
-
exports.EncryptionEngine = void 0;
|
|
73
|
-
const crypto = __importStar(require("crypto"));
|
|
74
|
-
const global_1 = require("@memberjunction/global");
|
|
75
|
-
const core_1 = require("@memberjunction/core");
|
|
76
|
-
const core_entities_1 = require("@memberjunction/core-entities");
|
|
77
|
-
const EncryptionKeySourceBase_1 = require("./EncryptionKeySourceBase");
|
|
47
|
+
import * as crypto from 'crypto';
|
|
48
|
+
import { MJGlobal, ENCRYPTION_MARKER, IsValueEncrypted } from '@memberjunction/global';
|
|
49
|
+
import { LogError } from '@memberjunction/core';
|
|
50
|
+
import { EncryptionEngineBase } from '@memberjunction/core-entities';
|
|
51
|
+
import { EncryptionKeySourceBase } from './EncryptionKeySourceBase.js';
|
|
78
52
|
/**
|
|
79
53
|
* Default cache time-to-live in milliseconds (5 minutes).
|
|
80
54
|
* Balances security (key changes take effect) with performance.
|
|
@@ -105,30 +79,33 @@ const DEFAULT_KEY_MATERIAL_CACHE_TTL_MS = 5 * 60 * 1000;
|
|
|
105
79
|
*
|
|
106
80
|
* Callers should catch and handle errors appropriately.
|
|
107
81
|
*/
|
|
108
|
-
class EncryptionEngine extends
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
82
|
+
export class EncryptionEngine extends EncryptionEngineBase {
|
|
83
|
+
constructor() {
|
|
84
|
+
super(...arguments);
|
|
85
|
+
/**
|
|
86
|
+
* Cache for decrypted key material.
|
|
87
|
+
* Maps 'keyId:version' to Buffer.
|
|
88
|
+
* This is separate from the base class caches since key material
|
|
89
|
+
* is sensitive and needs different handling.
|
|
90
|
+
*
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
this._keyMaterialCache = new Map();
|
|
94
|
+
/**
|
|
95
|
+
* Cache for initialized key source instances.
|
|
96
|
+
* Maps driver class name to provider instance.
|
|
97
|
+
*
|
|
98
|
+
* @private
|
|
99
|
+
*/
|
|
100
|
+
this._keySourceCache = new Map();
|
|
101
|
+
/**
|
|
102
|
+
* Cache TTL for key material in milliseconds.
|
|
103
|
+
* Can be configured for testing or specific deployment needs.
|
|
104
|
+
*
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
107
|
+
this._keyMaterialCacheTtlMs = DEFAULT_KEY_MATERIAL_CACHE_TTL_MS;
|
|
108
|
+
}
|
|
132
109
|
/**
|
|
133
110
|
* Gets the singleton instance of the encryption engine.
|
|
134
111
|
*
|
|
@@ -280,7 +257,7 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
280
257
|
* ```
|
|
281
258
|
*/
|
|
282
259
|
IsEncrypted(value, encryptionMarker) {
|
|
283
|
-
return
|
|
260
|
+
return IsValueEncrypted(value, encryptionMarker);
|
|
284
261
|
}
|
|
285
262
|
/**
|
|
286
263
|
* Parses an encrypted value string into its component parts.
|
|
@@ -322,7 +299,7 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
322
299
|
`Expected a valid UUID.`);
|
|
323
300
|
}
|
|
324
301
|
return {
|
|
325
|
-
marker:
|
|
302
|
+
marker: ENCRYPTION_MARKER,
|
|
326
303
|
keyId: parts[1],
|
|
327
304
|
algorithm: parts[2],
|
|
328
305
|
iv: parts[3],
|
|
@@ -478,7 +455,7 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
478
455
|
return {
|
|
479
456
|
keyId: key.ID,
|
|
480
457
|
keyVersion: key.KeyVersion || '1',
|
|
481
|
-
marker: key.Marker ||
|
|
458
|
+
marker: key.Marker || ENCRYPTION_MARKER,
|
|
482
459
|
algorithm: {
|
|
483
460
|
name: algorithm.Name,
|
|
484
461
|
nodeCryptoName: algorithm.NodeCryptoName,
|
|
@@ -502,15 +479,15 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
502
479
|
const iv = crypto.randomBytes(keyConfig.algorithm.ivLengthBytes);
|
|
503
480
|
// Create cipher options
|
|
504
481
|
const cipherOptions = keyConfig.algorithm.isAEAD ? { authTagLength: 16 } : undefined;
|
|
505
|
-
// Create cipher
|
|
506
|
-
const cipher = crypto.createCipheriv(keyConfig.algorithm.nodeCryptoName, keyMaterial, iv, cipherOptions);
|
|
482
|
+
// Create cipher - use Uint8Array.from() for TS 5.9 Buffer compatibility
|
|
483
|
+
const cipher = crypto.createCipheriv(keyConfig.algorithm.nodeCryptoName, Uint8Array.from(keyMaterial), Uint8Array.from(iv), cipherOptions);
|
|
507
484
|
// Convert plaintext to buffer
|
|
508
485
|
const data = typeof plaintext === 'string'
|
|
509
486
|
? Buffer.from(plaintext, 'utf8')
|
|
510
487
|
: plaintext;
|
|
511
488
|
// Encrypt
|
|
512
489
|
const ciphertext = Buffer.concat([
|
|
513
|
-
cipher.update(data),
|
|
490
|
+
cipher.update(Uint8Array.from(data)),
|
|
514
491
|
cipher.final()
|
|
515
492
|
]);
|
|
516
493
|
// Build the serialized format
|
|
@@ -543,8 +520,8 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
543
520
|
}
|
|
544
521
|
// Create decipher options
|
|
545
522
|
const decipherOptions = keyConfig.algorithm.isAEAD ? { authTagLength: 16 } : undefined;
|
|
546
|
-
// Create decipher
|
|
547
|
-
const decipher = crypto.createDecipheriv(keyConfig.algorithm.nodeCryptoName, keyMaterial, iv, decipherOptions);
|
|
523
|
+
// Create decipher - use Uint8Array.from() for TS 5.9 Buffer compatibility
|
|
524
|
+
const decipher = crypto.createDecipheriv(keyConfig.algorithm.nodeCryptoName, Uint8Array.from(keyMaterial), Uint8Array.from(iv), decipherOptions);
|
|
548
525
|
// Set auth tag for AEAD algorithms
|
|
549
526
|
if (keyConfig.algorithm.isAEAD) {
|
|
550
527
|
if (!parsed.authTag) {
|
|
@@ -552,14 +529,14 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
552
529
|
`The encrypted value may be corrupted or was encrypted with a different algorithm.`);
|
|
553
530
|
}
|
|
554
531
|
const authTag = Buffer.from(parsed.authTag, 'base64');
|
|
555
|
-
decipher.setAuthTag(authTag);
|
|
532
|
+
decipher.setAuthTag(Uint8Array.from(authTag));
|
|
556
533
|
}
|
|
557
534
|
// Decode ciphertext
|
|
558
535
|
const ciphertext = Buffer.from(parsed.ciphertext, 'base64');
|
|
559
536
|
// Decrypt
|
|
560
537
|
try {
|
|
561
538
|
const plaintext = Buffer.concat([
|
|
562
|
-
decipher.update(ciphertext),
|
|
539
|
+
decipher.update(Uint8Array.from(ciphertext)),
|
|
563
540
|
decipher.final()
|
|
564
541
|
]);
|
|
565
542
|
return plaintext.toString('utf8');
|
|
@@ -626,7 +603,7 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
626
603
|
}
|
|
627
604
|
// Create new instance via ClassFactory
|
|
628
605
|
try {
|
|
629
|
-
const result =
|
|
606
|
+
const result = MJGlobal.Instance.ClassFactory.CreateInstance(EncryptionKeySourceBase, driverClass);
|
|
630
607
|
if (result) {
|
|
631
608
|
source = result;
|
|
632
609
|
}
|
|
@@ -644,7 +621,7 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
644
621
|
await source.Initialize();
|
|
645
622
|
// Validate configuration
|
|
646
623
|
if (!source.ValidateConfiguration()) {
|
|
647
|
-
|
|
624
|
+
LogError(`Key source "${driverClass}" configuration validation failed. ` +
|
|
648
625
|
'The source may not work correctly.');
|
|
649
626
|
}
|
|
650
627
|
// Cache it
|
|
@@ -679,5 +656,4 @@ class EncryptionEngine extends core_entities_1.EncryptionEngineBase {
|
|
|
679
656
|
return uuidPattern.test(value);
|
|
680
657
|
}
|
|
681
658
|
}
|
|
682
|
-
exports.EncryptionEngine = EncryptionEngine;
|
|
683
659
|
//# sourceMappingURL=EncryptionEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptionEngine.js","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EncryptionEngine.js","sourceRoot":"","sources":["../src/EncryptionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAqB,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAgBpE;;;GAGG;AACH,MAAM,iCAAiC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,oBAAoB;IAA1D;;QACI;;;;;;;WAOG;QACK,sBAAiB,GAAoC,IAAI,GAAG,EAAE,CAAC;QAEvE;;;;;WAKG;QACK,oBAAe,GAAyC,IAAI,GAAG,EAAE,CAAC;QAE1E;;;;;WAKG;QACc,2BAAsB,GAAW,iCAAiC,CAAC;IAitBxF,CAAC;IA/sBG;;;;;;;;;;;OAWG;IACI,MAAM,KAAc,QAAQ;QAC/B,OAAO,KAAK,CAAC,WAAW,EAAoB,CAAC;IACjD,CAAC;IAED;;;;;;;;;OASG;IACa,KAAK,CAAC,MAAM,CAAC,YAAsB,EAAE,WAAsB,EAAE,QAA4B;QACrG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,KAAK,CAAC,OAAO,CACT,SAA0B,EAC1B,eAAuB,EACvB,WAAsB;QAEtB,gEAAgE;QAChE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,SAA8B,CAAC;QAC1C,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACX,+BAA+B,eAAe,KAAK;gBACnD,uBAAuB,CAC1B,CAAC;QACN,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEzC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAE9D,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEzD,qBAAqB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,OAAO,CACT,KAAa,EACb,WAAsB;QAEtB,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAE/C,8BAA8B;QAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEzC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE3D,mBAAmB;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEzD,qBAAqB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,CAAC,KAAc,EAAE,gBAAyB;QACjD,OAAO,gBAAgB,CAAC,KAAe,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,KAAa;QAC7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QAED,oCAAoC;QACpC,uDAAuD;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAErD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACX,4DAA4D;gBAC5D,mDAAmD,KAAK,CAAC,MAAM,IAAI;gBACnE,mDAAmD,CACtD,CAAC;QACN,CAAC;QAED,kBAAkB;QAClB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACX,mDAAmD,KAAK,CAAC,CAAC,CAAC,KAAK;gBAChE,6DAA6D,CAChE,CAAC;QACN,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACX,uCAAuC,KAAK,CAAC,CAAC,CAAC,KAAK;gBACpD,wBAAwB,CAC3B,CAAC;QACN,CAAC;QAED,OAAO;YACH,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACnB,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YACZ,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACpB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gCAAgC;SACrD,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,mBAAmB,CACrB,WAAmB,EACnB,eAAuB,EACvB,WAAsB;QAEtB,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACX,2CAA2C;gBAC3C,sEAAsE,CACzE,CAAC;QACN,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEzC,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAE9D,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE7E,oDAAoD;QACpD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAErD,qDAAqD;QACrD,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5D,IAAI,WAAW,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACX,iCAAiC,aAAa,cAAc,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI;gBACxF,OAAO,WAAW,CAAC,MAAM,UAAU;gBACnC,6CAA6C,aAAa,EAAE,CAC/D,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,iBAAiB,CACnB,SAA0B,EAC1B,eAAuB,EACvB,cAAsB,EACtB,WAAsB;QAEtB,wBAAwB;QACxB,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO,SAA8B,CAAC;QAC1C,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEzC,6BAA6B;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAE9D,qDAAqD;QACrD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACnD,SAAS,EACT,cAAc,CACjB,CAAC;QAEF,6CAA6C;QAC7C,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACP,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,mDAAmD;IACvD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc;QAChB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC;IAED,2EAA2E;IAC3E,kBAAkB;IAClB,2EAA2E;IAE3E;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,WAAsB;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,KAAa;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACX,6BAA6B,KAAK,IAAI;gBACtC,qDAAqD,CACxD,CAAC;QACN,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAE7C,yBAAyB;QACzB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACX,mBAAmB,GAAG,CAAC,IAAI,iBAAiB;gBAC5C,sDAAsD,CACzD,CAAC;QACN,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACX,mBAAmB,GAAG,CAAC,IAAI,mBAAmB;gBAC9C,oDAAoD,CACvD,CAAC;QACN,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,yBAAyB,SAAS,CAAC,IAAI,mBAAmB;gBAC1D,oDAAoD,CACvD,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACX,0BAA0B,MAAM,CAAC,IAAI,mBAAmB;gBACxD,sDAAsD,CACzD,CAAC;QACN,CAAC;QAED,OAAO;YACH,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG;YACjC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,iBAAiB;YACvC,SAAS,EAAE;gBACP,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,cAAc,EAAE,SAAS,CAAC,cAAc;gBACxC,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM;aAC7B;YACD,MAAM,EAAE;gBACJ,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,GAAG,CAAC,cAAc;aAClC;SACJ,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CACrB,SAA0B,EAC1B,SAA2B,EAC3B,WAAmB;QAEnB,qBAAqB;QACrB,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAEjE,wBAAwB;QACxB,MAAM,aAAa,GACf,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnE,wEAAwE;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAChC,SAAS,CAAC,SAAS,CAAC,cAAc,EAClC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAC5B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EACnB,aAAa,CAChB,CAAC;QAEF,8BAA8B;QAC9B,MAAM,IAAI,GAAG,OAAO,SAAS,KAAK,QAAQ;YACtC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC;QAEhB,UAAU;QACV,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,EAAE;SACU,CAAC,CAAC;QAE9B,8BAA8B;QAC9B,MAAM,KAAK,GAAa;YACpB,SAAS,CAAC,MAAM;YAChB,SAAS,CAAC,KAAK;YACf,SAAS,CAAC,SAAS,CAAC,IAAI;YACxB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrB,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAChC,CAAC;QAEF,mCAAmC;QACnC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAI,MAA2B,CAAC,UAAU,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CACrB,MAA2B,EAC3B,SAA2B,EAC3B,WAAmB;QAEnB,wBAAwB;QACxB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE5C,qBAAqB;QACrB,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACX,gCAAgC,SAAS,CAAC,SAAS,CAAC,aAAa,UAAU;gBAC3E,OAAO,EAAE,CAAC,MAAM,+CAA+C,CAClE,CAAC;QACN,CAAC;QAED,0BAA0B;QAC1B,MAAM,eAAe,GACjB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnE,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CACpC,SAAS,CAAC,SAAS,CAAC,cAAc,EAClC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAC5B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EACnB,eAAe,CAClB,CAAC;QAEF,mCAAmC;QACnC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACX,kCAAkC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI;oBAC9D,mFAAmF,CACtF,CAAC;YACN,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrD,QAA+B,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE5D,UAAU;QACV,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC5B,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5C,QAAQ,CAAC,KAAK,EAAE;aACQ,CAAC,CAAC;YAE9B,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,+EAA+E;YAC/E,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEjE,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CACX,kDAAkD;oBAClD,sEAAsE;oBACtE,sCAAsC,CACzC,CAAC;YACN,CAAC;YAED,MAAM,IAAI,KAAK,CACX,sBAAsB,OAAO,IAAI;gBACjC,mEAAmE,CACtE,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,cAAc,CAAC,MAAwB;QACjD,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAExD,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1E,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CACnC,MAAM,CAAC,MAAM,CAAC,WAAW,EACzB,MAAM,CAAC,UAAU,CACpB,CAAC;QAEF,sBAAsB;QACtB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE5C,WAAW;QACX,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE;YACjC,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC;SAC7D,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CAClC,MAAwB,EACxB,WAAmB;QAEnB,kEAAkE;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1E,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAExE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB,CAC9B,WAAmB;QAEnB,cAAc;QACd,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CACxD,uBAAuB,EACvB,WAAW,CACd,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,GAAG,MAAM,CAAC;YACpB,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CACX,gCAAgC,WAAW,MAAM,OAAO,IAAI;gBAC5D,wDAAwD,CAC3D,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACX,eAAe,WAAW,eAAe;gBACzC,8DAA8D,CACjE,CAAC;QACN,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAE1B,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAClC,QAAQ,CACJ,eAAe,WAAW,qCAAqC;gBAC/D,oCAAoC,CACvC,CAAC;QACN,CAAC;QAED,WAAW;QACX,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,WAAmB,EAAE,MAAwB;QACnE,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC;QAEzD,IAAI,WAAW,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACX,4BAA4B,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK;gBACtD,YAAY,aAAa,WAAW,MAAM,CAAC,SAAS,CAAC,aAAa,UAAU;gBAC5E,OAAO,WAAW,CAAC,MAAM,WAAW,WAAW,CAAC,MAAM,GAAG,CAAC,UAAU;gBACpE,qDAAqD,aAAa,EAAE,CACvE,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,uBAAuB;QACvB,MAAM,WAAW,GAAG,iEAAiE,CAAC;QACtF,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACJ"}
|
|
@@ -39,8 +39,7 @@
|
|
|
39
39
|
*
|
|
40
40
|
* @module @memberjunction/encryption
|
|
41
41
|
*/
|
|
42
|
-
|
|
43
|
-
import { EncryptionKeySourceConfig } from './interfaces';
|
|
42
|
+
import { EncryptionKeySourceConfig } from './interfaces.js';
|
|
44
43
|
/**
|
|
45
44
|
* Abstract base class for encryption key source providers.
|
|
46
45
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptionKeySourceBase.d.ts","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG
|
|
1
|
+
{"version":3,"file":"EncryptionKeySourceBase.d.ts","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,8BAAsB,uBAAuB;IACzC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAE7C;;;;;;;;OAQG;gBACS,MAAM,CAAC,EAAE,yBAAyB;IAI9C;;;;;;;OAOG;IACH,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC;IAElC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,qBAAqB,IAAI,OAAO;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1E;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;;;;;;;;;;OAaG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;;;;;;;OAYG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIjC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Abstract base class for encryption key source providers.
|
|
4
3
|
*
|
|
@@ -40,8 +39,6 @@
|
|
|
40
39
|
*
|
|
41
40
|
* @module @memberjunction/encryption
|
|
42
41
|
*/
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.EncryptionKeySourceBase = void 0;
|
|
45
42
|
/**
|
|
46
43
|
* Abstract base class for encryption key source providers.
|
|
47
44
|
*
|
|
@@ -73,14 +70,7 @@ exports.EncryptionKeySourceBase = void 0;
|
|
|
73
70
|
*
|
|
74
71
|
* @abstract
|
|
75
72
|
*/
|
|
76
|
-
class EncryptionKeySourceBase {
|
|
77
|
-
/**
|
|
78
|
-
* Configuration passed during instantiation.
|
|
79
|
-
* Contains lookupValue and any source-specific additional config.
|
|
80
|
-
*
|
|
81
|
-
* @protected
|
|
82
|
-
*/
|
|
83
|
-
_config;
|
|
73
|
+
export class EncryptionKeySourceBase {
|
|
84
74
|
/**
|
|
85
75
|
* Creates a new key source instance.
|
|
86
76
|
*
|
|
@@ -129,5 +119,4 @@ class EncryptionKeySourceBase {
|
|
|
129
119
|
// Subclasses can override for resource cleanup
|
|
130
120
|
}
|
|
131
121
|
}
|
|
132
|
-
exports.EncryptionKeySourceBase = EncryptionKeySourceBase;
|
|
133
122
|
//# sourceMappingURL=EncryptionKeySourceBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptionKeySourceBase.js","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EncryptionKeySourceBase.js","sourceRoot":"","sources":["../src/EncryptionKeySourceBase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAgB,uBAAuB;IASzC;;;;;;;;OAQG;IACH,YAAY,MAAkC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;IAChC,CAAC;IAsFD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,UAAU;QACZ,oDAAoD;QACpD,0CAA0C;IAC9C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO;QACT,6CAA6C;QAC7C,+CAA+C;IACnD,CAAC;CACJ"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Action for enabling encryption on an existing entity field.
|
|
4
3
|
*
|
|
@@ -45,11 +44,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
45
44
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
46
45
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
47
46
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const core_1 = require("@memberjunction/core");
|
|
52
|
-
const EncryptionEngine_1 = require("../EncryptionEngine");
|
|
47
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
48
|
+
import { LogError, LogStatus, Metadata, RunView } from '@memberjunction/core';
|
|
49
|
+
import { EncryptionEngine } from '../EncryptionEngine.js';
|
|
53
50
|
/**
|
|
54
51
|
* Action for encrypting existing data when encryption is enabled on a field.
|
|
55
52
|
*
|
|
@@ -128,7 +125,7 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
128
125
|
}
|
|
129
126
|
catch (error) {
|
|
130
127
|
const message = error instanceof Error ? error.message : String(error);
|
|
131
|
-
|
|
128
|
+
LogError(`Enable field encryption failed: ${message}`);
|
|
132
129
|
return {
|
|
133
130
|
Success: false,
|
|
134
131
|
ResultCode: 'ERROR',
|
|
@@ -144,10 +141,10 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
144
141
|
*/
|
|
145
142
|
async enableFieldEncryption(params, contextUser) {
|
|
146
143
|
const { entityFieldId, batchSize = 100 } = params;
|
|
147
|
-
const engine =
|
|
144
|
+
const engine = EncryptionEngine.Instance;
|
|
148
145
|
await engine.Config(false, contextUser);
|
|
149
|
-
const md = new
|
|
150
|
-
const rv = new
|
|
146
|
+
const md = new Metadata();
|
|
147
|
+
const rv = new RunView();
|
|
151
148
|
let recordsEncrypted = 0;
|
|
152
149
|
let recordsSkipped = 0;
|
|
153
150
|
try {
|
|
@@ -186,12 +183,12 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
186
183
|
error: `Field ${entityName}.${fieldName} does not have an EncryptionKeyID set.`
|
|
187
184
|
};
|
|
188
185
|
}
|
|
189
|
-
|
|
186
|
+
LogStatus(`Enabling encryption for field: ${entityName}.${fieldName}`);
|
|
190
187
|
// Step 2: Validate the encryption key is accessible
|
|
191
188
|
// This will throw if the key is not valid
|
|
192
189
|
await engine.ValidateKeyMaterial(fieldInfo.KeyLookupValue || fieldInfo.EncryptionKeyID, // fallback to key ID if no lookup value in field
|
|
193
190
|
encryptionKeyId, contextUser);
|
|
194
|
-
|
|
191
|
+
LogStatus('Encryption key validated successfully');
|
|
195
192
|
// Step 3: Get entity info for proper querying
|
|
196
193
|
const entityInfo = md.Entities.find(e => e.Name === entityName);
|
|
197
194
|
if (!entityInfo) {
|
|
@@ -216,7 +213,7 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
216
213
|
ResultType: 'entity_object'
|
|
217
214
|
}, contextUser);
|
|
218
215
|
if (!batchResult.Success) {
|
|
219
|
-
|
|
216
|
+
LogError(`Failed to query records for ${entityName}.${fieldName}`);
|
|
220
217
|
hasMore = false;
|
|
221
218
|
continue;
|
|
222
219
|
}
|
|
@@ -225,7 +222,7 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
225
222
|
if (records.length === 0) {
|
|
226
223
|
break;
|
|
227
224
|
}
|
|
228
|
-
|
|
225
|
+
LogStatus(`Processing batch of ${records.length} records (offset: ${offset})`);
|
|
229
226
|
// Encrypt each record
|
|
230
227
|
for (const record of records) {
|
|
231
228
|
const plainValue = record.Get(fieldName);
|
|
@@ -252,12 +249,12 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
252
249
|
recordsEncrypted++;
|
|
253
250
|
}
|
|
254
251
|
else {
|
|
255
|
-
|
|
252
|
+
LogError(`Failed to save encrypted record in ${entityName}.${fieldName}`);
|
|
256
253
|
}
|
|
257
254
|
}
|
|
258
255
|
catch (recordError) {
|
|
259
256
|
const msg = recordError instanceof Error ? recordError.message : String(recordError);
|
|
260
|
-
|
|
257
|
+
LogError(`Failed to encrypt record in ${entityName}.${fieldName}: ${msg}`);
|
|
261
258
|
}
|
|
262
259
|
}
|
|
263
260
|
offset += batchSize;
|
|
@@ -271,9 +268,9 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
271
268
|
}, contextUser);
|
|
272
269
|
if (alreadyEncryptedResult.Success) {
|
|
273
270
|
// The query itself would return count, but for simplicity we note there are some
|
|
274
|
-
|
|
271
|
+
LogStatus(`Some records in ${entityName}.${fieldName} were already encrypted`);
|
|
275
272
|
}
|
|
276
|
-
|
|
273
|
+
LogStatus(`Field encryption completed for ${entityName}.${fieldName}. ` +
|
|
277
274
|
`Encrypted: ${recordsEncrypted}, Skipped: ${recordsSkipped}`);
|
|
278
275
|
return {
|
|
279
276
|
success: true,
|
|
@@ -283,7 +280,7 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
283
280
|
}
|
|
284
281
|
catch (error) {
|
|
285
282
|
const message = error instanceof Error ? error.message : String(error);
|
|
286
|
-
|
|
283
|
+
LogError(`Enable field encryption error: ${message}`);
|
|
287
284
|
return {
|
|
288
285
|
success: false,
|
|
289
286
|
recordsEncrypted,
|
|
@@ -301,8 +298,8 @@ let EnableFieldEncryptionAction = class EnableFieldEncryptionAction {
|
|
|
301
298
|
return param?.Value ?? null;
|
|
302
299
|
}
|
|
303
300
|
};
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
(0, global_1.RegisterClass)(Object, 'Enable Field Encryption')
|
|
301
|
+
EnableFieldEncryptionAction = __decorate([
|
|
302
|
+
RegisterClass(Object, 'Enable Field Encryption')
|
|
307
303
|
], EnableFieldEncryptionAction);
|
|
304
|
+
export { EnableFieldEncryptionAction };
|
|
308
305
|
//# sourceMappingURL=EnableFieldEncryptionAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnableFieldEncryptionAction.js","sourceRoot":"","sources":["../../src/actions/EnableFieldEncryptionAction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EnableFieldEncryptionAction.js","sourceRoot":"","sources":["../../src/actions/EnableFieldEncryptionAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Action for rotating encryption keys with full data re-encryption.
|
|
4
3
|
*
|
|
@@ -40,11 +39,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
40
39
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
41
40
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
42
41
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const core_1 = require("@memberjunction/core");
|
|
47
|
-
const EncryptionEngine_1 = require("../EncryptionEngine");
|
|
42
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
43
|
+
import { LogError, LogStatus, Metadata, RunView } from '@memberjunction/core';
|
|
44
|
+
import { EncryptionEngine } from '../EncryptionEngine.js';
|
|
48
45
|
/**
|
|
49
46
|
* Action for rotating encryption keys with full re-encryption of affected data.
|
|
50
47
|
*
|
|
@@ -133,7 +130,7 @@ let RotateEncryptionKeyAction = class RotateEncryptionKeyAction {
|
|
|
133
130
|
}
|
|
134
131
|
catch (error) {
|
|
135
132
|
const message = error instanceof Error ? error.message : String(error);
|
|
136
|
-
|
|
133
|
+
LogError(`Key rotation failed: ${message}`);
|
|
137
134
|
return {
|
|
138
135
|
Success: false,
|
|
139
136
|
ResultCode: 'ERROR',
|
|
@@ -149,18 +146,18 @@ let RotateEncryptionKeyAction = class RotateEncryptionKeyAction {
|
|
|
149
146
|
*/
|
|
150
147
|
async rotateKey(params, contextUser) {
|
|
151
148
|
const { encryptionKeyId, newKeyLookupValue, batchSize = 100 } = params;
|
|
152
|
-
const engine =
|
|
149
|
+
const engine = EncryptionEngine.Instance;
|
|
153
150
|
await engine.Config(false, contextUser);
|
|
154
|
-
const md = new
|
|
155
|
-
const rv = new
|
|
151
|
+
const md = new Metadata();
|
|
152
|
+
const rv = new RunView();
|
|
156
153
|
// Track progress
|
|
157
154
|
const fieldsProcessed = [];
|
|
158
155
|
let totalRecordsProcessed = 0;
|
|
159
156
|
try {
|
|
160
157
|
// Step 1: Validate the new key is accessible
|
|
161
|
-
|
|
158
|
+
LogStatus(`Validating new key material at lookup value: ${newKeyLookupValue}`);
|
|
162
159
|
await engine.ValidateKeyMaterial(newKeyLookupValue, encryptionKeyId, contextUser);
|
|
163
|
-
|
|
160
|
+
LogStatus('New key material validated successfully');
|
|
164
161
|
// Step 2: Load the encryption key record
|
|
165
162
|
const keyResult = await rv.RunView({
|
|
166
163
|
EntityName: 'MJ: Encryption Keys',
|
|
@@ -206,18 +203,18 @@ let RotateEncryptionKeyAction = class RotateEncryptionKeyAction {
|
|
|
206
203
|
};
|
|
207
204
|
}
|
|
208
205
|
const fields = fieldsResult.Results;
|
|
209
|
-
|
|
206
|
+
LogStatus(`Found ${fields.length} encrypted fields to rotate`);
|
|
210
207
|
// Step 5: Process each field
|
|
211
208
|
for (const field of fields) {
|
|
212
209
|
const entityName = field.Entity;
|
|
213
210
|
const fieldName = field.Name;
|
|
214
211
|
const fullFieldName = `${entityName}.${fieldName}`;
|
|
215
|
-
|
|
212
|
+
LogStatus(`Processing field: ${fullFieldName}`);
|
|
216
213
|
try {
|
|
217
214
|
// Get entity info for schema/view name
|
|
218
215
|
const entityInfo = md.Entities.find(e => e.Name === entityName);
|
|
219
216
|
if (!entityInfo) {
|
|
220
|
-
|
|
217
|
+
LogError(`Entity not found: ${entityName}`);
|
|
221
218
|
continue;
|
|
222
219
|
}
|
|
223
220
|
// Load records in batches
|
|
@@ -258,22 +255,22 @@ let RotateEncryptionKeyAction = class RotateEncryptionKeyAction {
|
|
|
258
255
|
else {
|
|
259
256
|
// If any record fails, we should consider the rotation failed
|
|
260
257
|
// But we continue to try other records to get a complete picture
|
|
261
|
-
|
|
258
|
+
LogError(`Failed to save re-encrypted record in ${fullFieldName}`);
|
|
262
259
|
}
|
|
263
260
|
}
|
|
264
261
|
catch (recordError) {
|
|
265
262
|
const msg = recordError instanceof Error ? recordError.message : String(recordError);
|
|
266
|
-
|
|
263
|
+
LogError(`Failed to rotate record in ${fullFieldName}: ${msg}`);
|
|
267
264
|
}
|
|
268
265
|
}
|
|
269
266
|
offset += batchSize;
|
|
270
267
|
}
|
|
271
268
|
fieldsProcessed.push(fullFieldName);
|
|
272
|
-
|
|
269
|
+
LogStatus(`Completed field: ${fullFieldName}`);
|
|
273
270
|
}
|
|
274
271
|
catch (fieldError) {
|
|
275
272
|
const msg = fieldError instanceof Error ? fieldError.message : String(fieldError);
|
|
276
|
-
|
|
273
|
+
LogError(`Failed to process field ${fullFieldName}: ${msg}`);
|
|
277
274
|
// Continue with other fields
|
|
278
275
|
}
|
|
279
276
|
}
|
|
@@ -292,7 +289,7 @@ let RotateEncryptionKeyAction = class RotateEncryptionKeyAction {
|
|
|
292
289
|
}
|
|
293
290
|
// Step 7: Clear encryption engine caches to use new key
|
|
294
291
|
engine.ClearCaches();
|
|
295
|
-
|
|
292
|
+
LogStatus(`Key rotation completed. Processed ${totalRecordsProcessed} records across ${fieldsProcessed.length} fields.`);
|
|
296
293
|
return {
|
|
297
294
|
success: true,
|
|
298
295
|
recordsProcessed: totalRecordsProcessed,
|
|
@@ -336,8 +333,8 @@ let RotateEncryptionKeyAction = class RotateEncryptionKeyAction {
|
|
|
336
333
|
return param?.Value ?? null;
|
|
337
334
|
}
|
|
338
335
|
};
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
(0, global_1.RegisterClass)(Object, 'Rotate Encryption Key')
|
|
336
|
+
RotateEncryptionKeyAction = __decorate([
|
|
337
|
+
RegisterClass(Object, 'Rotate Encryption Key')
|
|
342
338
|
], RotateEncryptionKeyAction);
|
|
339
|
+
export { RotateEncryptionKeyAction };
|
|
343
340
|
//# sourceMappingURL=RotateEncryptionKeyAction.js.map
|