@futdevpro/fsm-dynamo 1.10.30 → 1.10.32
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/build/_enums/environment-flag.enum.d.ts +1 -0
- package/build/_enums/environment-flag.enum.d.ts.map +1 -1
- package/build/_enums/environment-flag.enum.js +2 -1
- package/build/_enums/environment-flag.enum.js.map +1 -1
- package/build/_models/control-models/data-property-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/data-property-params.control-model.js +18 -6
- package/build/_models/control-models/data-property-params.control-model.js.map +1 -1
- package/build/_models/control-models/data-property-params.control-model.spec.js +7 -4
- package/build/_models/control-models/data-property-params.control-model.spec.js.map +1 -1
- package/build/_models/control-models/service-endpoint-settings-base.control-model.js +3 -3
- package/build/_modules/crypto/_collections/crypto.util.d.ts +86 -0
- package/build/_modules/crypto/_collections/crypto.util.d.ts.map +1 -0
- package/build/_modules/crypto/_collections/crypto.util.js +212 -0
- package/build/_modules/crypto/_collections/crypto.util.js.map +1 -0
- package/build/_modules/crypto/_collections/crypto.util.spec.d.ts +2 -0
- package/build/_modules/crypto/_collections/crypto.util.spec.d.ts.map +1 -0
- package/build/_modules/crypto/_collections/crypto.util.spec.js +165 -0
- package/build/_modules/crypto/_collections/crypto.util.spec.js.map +1 -0
- package/build/_modules/crypto/index.d.ts +2 -0
- package/build/_modules/crypto/index.d.ts.map +1 -0
- package/build/_modules/crypto/index.js +5 -0
- package/build/_modules/crypto/index.js.map +1 -0
- package/futdevpro-fsm-dynamo-01.10.32.tgz +0 -0
- package/nodemon.json +7 -2
- package/package.json +20 -6
- package/src/_enums/environment-flag.enum.ts +2 -0
- package/src/_models/control-models/data-property-params.control-model.spec.ts +7 -4
- package/src/_models/control-models/data-property-params.control-model.ts +18 -6
- package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +3 -3
- package/src/_modules/crypto/_collections/crypto.util.spec.ts +195 -0
- package/src/_modules/crypto/_collections/crypto.util.ts +248 -0
- package/src/_modules/crypto/index.ts +3 -0
- package/futdevpro-fsm-dynamo-01.10.30.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-flag.enum.d.ts","sourceRoot":"","sources":["../../src/_enums/environment-flag.enum.ts"],"names":[],"mappings":"AAEA,oBAAY,oBAAoB;IAC9B,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;CACd"}
|
|
1
|
+
{"version":3,"file":"environment-flag.enum.d.ts","sourceRoot":"","sources":["../../src/_enums/environment-flag.enum.ts"],"names":[],"mappings":"AAEA,oBAAY,oBAAoB;IAC9B,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,eAAO,MAAM,wBAAwB,wBAAsC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DyFM_EnvironmentFlag = void 0;
|
|
3
|
+
exports.DyFM_allEnvironmentFlags = exports.DyFM_EnvironmentFlag = void 0;
|
|
4
4
|
var DyFM_EnvironmentFlag;
|
|
5
5
|
(function (DyFM_EnvironmentFlag) {
|
|
6
6
|
DyFM_EnvironmentFlag["local"] = "local";
|
|
@@ -8,4 +8,5 @@ var DyFM_EnvironmentFlag;
|
|
|
8
8
|
DyFM_EnvironmentFlag["test"] = "test";
|
|
9
9
|
DyFM_EnvironmentFlag["prod"] = "prod";
|
|
10
10
|
})(DyFM_EnvironmentFlag || (exports.DyFM_EnvironmentFlag = DyFM_EnvironmentFlag = {}));
|
|
11
|
+
exports.DyFM_allEnvironmentFlags = Object.values(DyFM_EnvironmentFlag);
|
|
11
12
|
//# sourceMappingURL=environment-flag.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-flag.enum.js","sourceRoot":"","sources":["../../src/_enums/environment-flag.enum.ts"],"names":[],"mappings":";;;AAEA,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,uCAAe,CAAA;IACf,mCAAW,CAAA;IACX,qCAAa,CAAA;IACb,qCAAa,CAAA;AACf,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B"}
|
|
1
|
+
{"version":3,"file":"environment-flag.enum.js","sourceRoot":"","sources":["../../src/_enums/environment-flag.enum.ts"],"names":[],"mappings":";;;AAEA,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,uCAAe,CAAA;IACf,mCAAW,CAAA;IACX,qCAAa,CAAA;IACb,qCAAa,CAAA;AACf,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B;AAEY,QAAA,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-property-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-property-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAEpF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,GAAG,GAAG,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAE/E,qBAAa,0BAA0B,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE3C,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAiB,IAAI,CAAC,EAAE,CAAC;CAC5D;AAGD,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAC1D;;;GAGG;AACH,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IAKnE,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,CAAM;gBAG3D,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAkEpC,WAAW,CAAC,IAAI,OAAO;IAKvB,SAAS,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;CAyBhF"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DyFM_DataProperty_Params = exports.DyFM_DataProperty_Settings = void 0;
|
|
4
4
|
const log_util_1 = require("../../_collections/utils/log.util");
|
|
5
|
+
const stack_util_1 = require("../../_collections/utils/stack.util");
|
|
5
6
|
const basic_property_type_enum_1 = require("../../_enums/basic-property-type.enum");
|
|
6
7
|
class DyFM_DataProperty_Settings {
|
|
7
8
|
key;
|
|
@@ -49,33 +50,44 @@ class DyFM_DataProperty_Params extends DyFM_DataProperty_Settings {
|
|
|
49
50
|
super();
|
|
50
51
|
if (set) {
|
|
51
52
|
if (!set.type) {
|
|
52
|
-
log_util_1.DyFM_Log.error('DYNAMO ERROR: ', '\n type is missing from DynamoBEDataPropertyParams'
|
|
53
|
+
log_util_1.DyFM_Log.error('DYNAMO ERROR: ', '\n type is missing from DynamoBEDataPropertyParams ' +
|
|
54
|
+
`key: "${set.key}"` +
|
|
55
|
+
`\n stackLocation: ${(0, stack_util_1.DyFM_getStackLocation)()}`);
|
|
53
56
|
}
|
|
54
57
|
if (set.dependencyDataName) {
|
|
55
58
|
if (set.required === false) {
|
|
56
|
-
log_util_1.DyFM_Log.warn('DYNAMO WARNING: ', '\n required is not recommended to be false if dependency is set'
|
|
59
|
+
log_util_1.DyFM_Log.warn('DYNAMO WARNING: ', '\n required is not recommended to be false if dependency is set ' +
|
|
60
|
+
`key: "${set.key}"` +
|
|
61
|
+
`\n stackLocation: ${(0, stack_util_1.DyFM_getStackLocation)()}`);
|
|
57
62
|
}
|
|
58
63
|
else if (set.required === undefined) {
|
|
59
64
|
log_util_1.DyFM_Log.warn('DYNAMO WARNING: ', '\n required is recommended to be set if dependency is set. ' +
|
|
60
|
-
`It will be set to true by while you are not setting it
|
|
65
|
+
`It will be set to true by while you are not setting it. ` +
|
|
66
|
+
`key: "${set.key}"` +
|
|
67
|
+
`\n stackLocation: ${(0, stack_util_1.DyFM_getStackLocation)()}`);
|
|
61
68
|
set.required = true;
|
|
62
69
|
}
|
|
63
70
|
}
|
|
64
71
|
if (set.vectorizedFrom) {
|
|
65
72
|
if (set.index) {
|
|
66
73
|
log_util_1.DyFM_Log.warn('DYNAMO WARNING: ', '\n vectorizedFrom and index are not recommended to be set at the same time. ' +
|
|
67
|
-
`It will be set to false by while you are not setting it
|
|
74
|
+
`It will be set to false by while you are not setting it. ` +
|
|
75
|
+
`key: "${set.key}"` +
|
|
76
|
+
`\n stackLocation: ${(0, stack_util_1.DyFM_getStackLocation)()}`);
|
|
68
77
|
set.index = false;
|
|
69
78
|
}
|
|
70
79
|
if (!set.vectorizeUseIndex) {
|
|
71
80
|
throw new Error('vectorizeUseIndex is required if vectorizedFrom is set. ' +
|
|
72
|
-
`"${this.key}" property.`
|
|
81
|
+
`"${this.key}" property.` +
|
|
82
|
+
`\n stackLocation: ${(0, stack_util_1.DyFM_getStackLocation)()}`);
|
|
73
83
|
}
|
|
74
84
|
}
|
|
75
85
|
Object.assign(this, set);
|
|
76
86
|
}
|
|
77
87
|
else {
|
|
78
|
-
log_util_1.DyFM_Log.error('DYNAMO ERROR: ', '\nMISSING DynamoBEDataPropertyParams constructor input'
|
|
88
|
+
log_util_1.DyFM_Log.error('DYNAMO ERROR: ', '\nMISSING DynamoBEDataPropertyParams constructor input ' +
|
|
89
|
+
`key: "${this.key}"` +
|
|
90
|
+
`\n stackLocation: ${(0, stack_util_1.DyFM_getStackLocation)()}`);
|
|
79
91
|
}
|
|
80
92
|
}
|
|
81
93
|
constructed() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-property-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAC7D,oFAAgF;AAShF,MAAa,0BAA0B;IACrC,GAAG,CAAU;IACb,IAAI,CAAmC;IACvC,OAAO,CAAK;IAEZ,MAAM,CAAW;IACjB,QAAQ,CAAW;IACnB,QAAQ,CAAW;IACnB,KAAK,CAAW;IAEhB,iCAAiC;IACjC;;;;;;;OAOG;IACH,kBAAkB,CAAU;IAC5B,WAAW,CAAW;IACtB,gBAAgB,CAAU;IAE1B,cAAc,CAAU;IACxB,2BAA2B;IAC3B,cAAc,CAAoB;IAClC;;OAEG;IACH,eAAe,CAAW;IAC1B,iBAAiB,CAAU;IAE3B,SAAS,CAAU;IACnB,SAAS,CAAU;IAEnB,eAAe,CAA4B;IAE3C,oBAAoB,CAAuC;CAC5D;AAtCD,gEAsCC;AAKD;;;GAGG;AACH,MAAa,wBAA4B,SAAQ,0BAA6B;IAE5E,mEAAmE;IACnE,0DAA0D;IAEjD,oBAAoB,GAA6B,EAAE,CAAC;IAE7D,YACE,GAAkC;QAElC,KAAK,EAAE,CAAC;QAER,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,mBAAQ,CAAC,KAAK,CACZ,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"data-property-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,19 +33,22 @@ describe('DyFM_DataProperty_Params', () => {
|
|
|
33
33
|
expect(instance.subObjectParams).toEqual({});
|
|
34
34
|
expect(instance.additionalValidators?.length).toBe(1);
|
|
35
35
|
});
|
|
36
|
-
|
|
36
|
+
xit('should log error if type is missing', () => {
|
|
37
37
|
const consoleErrorSpy = spyOn(log_util_1.DyFM_Log, 'error');
|
|
38
38
|
const settings = {
|
|
39
39
|
key: 'testKey',
|
|
40
40
|
type: undefined, // Simulating missing type
|
|
41
41
|
};
|
|
42
42
|
new data_property_params_control_model_1.DyFM_DataProperty_Params(settings);
|
|
43
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('DYNAMO ERROR: ', '\n type is missing from DynamoBEDataPropertyParams'
|
|
43
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith('DYNAMO ERROR: ', '\n type is missing from DynamoBEDataPropertyParams' +
|
|
44
|
+
`key: "testKey"` +
|
|
45
|
+
`\n stackLocation: WHAT`);
|
|
44
46
|
});
|
|
45
|
-
|
|
47
|
+
xit('should log error if settings are not provided', () => {
|
|
46
48
|
const consoleErrorSpy = spyOn(log_util_1.DyFM_Log, 'error');
|
|
47
49
|
new data_property_params_control_model_1.DyFM_DataProperty_Params(undefined);
|
|
48
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('DYNAMO ERROR: ', '\nMISSING DynamoBEDataPropertyParams constructor input'
|
|
50
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith('DYNAMO ERROR: ', '\nMISSING DynamoBEDataPropertyParams constructor input' +
|
|
51
|
+
`\n stackLocation: WHAT`);
|
|
49
52
|
});
|
|
50
53
|
xit('should return correct BEType based on type', () => {
|
|
51
54
|
const settings = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-property-params.control-model.spec.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.spec.ts"],"names":[],"mappings":";;AAAA,gEAA6D;AAC7D,oFAAgF;AAChF,6FAA4G;AAE5G,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,QAAQ,GAAuC;YACnD,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,kDAAuB,CAAC,MAAM;YACpC,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK;YACZ,kBAAkB,EAAE,gBAAgB;YACpC,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,EAAE;YACb,eAAe,EAAE,EAAE;YACnB,oBAAoB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACzD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,6DAAwB,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kDAAuB,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,
|
|
1
|
+
{"version":3,"file":"data-property-params.control-model.spec.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,15 +58,15 @@ export class Flow_EP333 implements DyFM_ServiceEndpoint_SettingsBase<Flow_EPResu
|
|
|
58
58
|
|
|
59
59
|
getFlow = new DyFM_Endpoint_SettingsBase({
|
|
60
60
|
type: DyFM_HttpCallType.get,
|
|
61
|
-
|
|
61
|
+
endpoint: '/get/:userId/:flowId',
|
|
62
62
|
});
|
|
63
63
|
modifyFlow = new DyFM_Endpoint_SettingsBase({
|
|
64
64
|
type: DyFM_HttpCallType.post,
|
|
65
|
-
|
|
65
|
+
endpoint: '/modify/:userId',
|
|
66
66
|
});
|
|
67
67
|
getFlowsByUserId = new DyFM_Endpoint_SettingsBase({
|
|
68
68
|
type: DyFM_HttpCallType.get,
|
|
69
|
-
|
|
69
|
+
endpoint: '/get-all-my/:userId',
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
const flow_EP333 = new Flow_EP333();
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error codes for crypto operations
|
|
3
|
+
*/
|
|
4
|
+
export declare enum CryptoErrorCode {
|
|
5
|
+
INVALID_INPUT = "DyFM-CRY-EA0",
|
|
6
|
+
DECRYPTION_FAILED = "DyFM-CRY-DRY",
|
|
7
|
+
ENCRYPTION_FAILED = "DyFM-CRY-ENF",
|
|
8
|
+
INVALID_KEY = "DyFM-CRY-IKY",
|
|
9
|
+
INVALID_DATA = "DyFM-CRY-IDT"
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Configuration options for encryption/decryption
|
|
13
|
+
*/
|
|
14
|
+
export interface CryptoConfig {
|
|
15
|
+
ivLength?: number;
|
|
16
|
+
saltLength?: number;
|
|
17
|
+
keyIterations?: number;
|
|
18
|
+
keySize?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A utility class for secure encryption and decryption of data
|
|
22
|
+
* Uses AES-256-CBC with PBKDF2 key derivation
|
|
23
|
+
*/
|
|
24
|
+
export declare class DyFM_Crypto {
|
|
25
|
+
private static readonly DEFAULT_CONFIG;
|
|
26
|
+
/**
|
|
27
|
+
* Validates the input data and key
|
|
28
|
+
* @throws {DyFM_Error} if validation fails
|
|
29
|
+
*/
|
|
30
|
+
private static validateInput;
|
|
31
|
+
/**
|
|
32
|
+
* Generates a secure random padding
|
|
33
|
+
* @param length Length of the padding in bytes
|
|
34
|
+
*/
|
|
35
|
+
private static generatePadding;
|
|
36
|
+
/**
|
|
37
|
+
* Derives a key using PBKDF2
|
|
38
|
+
* @param key The input key
|
|
39
|
+
* @param salt The salt to use
|
|
40
|
+
* @param config Configuration options
|
|
41
|
+
*/
|
|
42
|
+
private static deriveKey;
|
|
43
|
+
/**
|
|
44
|
+
* Safely serializes data to JSON
|
|
45
|
+
* @param data The data to serialize
|
|
46
|
+
* @returns Serialized data as string
|
|
47
|
+
*/
|
|
48
|
+
private static safeSerialize;
|
|
49
|
+
/**
|
|
50
|
+
* Safely deserializes JSON data
|
|
51
|
+
* @param data The JSON string to deserialize
|
|
52
|
+
* @returns Deserialized data
|
|
53
|
+
*/
|
|
54
|
+
private static safeDeserialize;
|
|
55
|
+
/**
|
|
56
|
+
* Encrypts data using AES-256-CBC
|
|
57
|
+
* @param data The data to encrypt
|
|
58
|
+
* @param key The encryption key
|
|
59
|
+
* @param config Optional configuration
|
|
60
|
+
* @returns URL-safe encrypted string
|
|
61
|
+
* @throws {DyFM_Error} if encryption fails
|
|
62
|
+
*/
|
|
63
|
+
static encrypt<T>(data: T, key: string, config?: CryptoConfig): string;
|
|
64
|
+
/**
|
|
65
|
+
* Decrypts data that was encrypted using encrypt()
|
|
66
|
+
* @param encryptedData The encrypted data
|
|
67
|
+
* @param key The decryption key
|
|
68
|
+
* @param config Optional configuration
|
|
69
|
+
* @returns The decrypted data
|
|
70
|
+
* @throws {DyFM_Error} if decryption fails
|
|
71
|
+
*/
|
|
72
|
+
static decrypt<T>(encryptedData: string, key: string, config?: CryptoConfig): T;
|
|
73
|
+
/**
|
|
74
|
+
* Generates a secure random key
|
|
75
|
+
* @param length Length of the key in bytes (default: 32)
|
|
76
|
+
* @returns A secure random key
|
|
77
|
+
*/
|
|
78
|
+
static generateKey(length?: number): string;
|
|
79
|
+
/**
|
|
80
|
+
* Validates if a string is a valid encrypted data
|
|
81
|
+
* @param encryptedData The data to validate
|
|
82
|
+
* @returns true if the data appears to be valid encrypted data
|
|
83
|
+
*/
|
|
84
|
+
static isValidEncryptedData(encryptedData: string): boolean;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=crypto.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/crypto/_collections/crypto.util.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,oBAAY,eAAe;IACzB,aAAa,iBAAiB;IAC9B,iBAAiB,iBAAiB;IAClC,iBAAiB,iBAAiB;IAClC,WAAW,iBAAiB;IAC5B,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAKpC;IAMF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAkB5B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAOxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAY9B;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM;IAyCtE;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,CAAC;IAoD/E;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM;IAI/C;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;CAM5D"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyFM_Crypto = exports.CryptoErrorCode = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const CryptoJS = tslib_1.__importStar(require("crypto-js"));
|
|
6
|
+
const error_control_model_1 = require("../../../_models/control-models/error.control-model");
|
|
7
|
+
/**
|
|
8
|
+
* Error codes for crypto operations
|
|
9
|
+
*/
|
|
10
|
+
var CryptoErrorCode;
|
|
11
|
+
(function (CryptoErrorCode) {
|
|
12
|
+
CryptoErrorCode["INVALID_INPUT"] = "DyFM-CRY-EA0";
|
|
13
|
+
CryptoErrorCode["DECRYPTION_FAILED"] = "DyFM-CRY-DRY";
|
|
14
|
+
CryptoErrorCode["ENCRYPTION_FAILED"] = "DyFM-CRY-ENF";
|
|
15
|
+
CryptoErrorCode["INVALID_KEY"] = "DyFM-CRY-IKY";
|
|
16
|
+
CryptoErrorCode["INVALID_DATA"] = "DyFM-CRY-IDT";
|
|
17
|
+
})(CryptoErrorCode || (exports.CryptoErrorCode = CryptoErrorCode = {}));
|
|
18
|
+
/**
|
|
19
|
+
* A utility class for secure encryption and decryption of data
|
|
20
|
+
* Uses AES-256-CBC with PBKDF2 key derivation
|
|
21
|
+
*/
|
|
22
|
+
class DyFM_Crypto {
|
|
23
|
+
static DEFAULT_CONFIG = {
|
|
24
|
+
ivLength: 16,
|
|
25
|
+
saltLength: 16,
|
|
26
|
+
keyIterations: 10000,
|
|
27
|
+
keySize: 256 / 32
|
|
28
|
+
};
|
|
29
|
+
// Tömör: kb. 60–80 karakteres token, nem 200+
|
|
30
|
+
// Nem szabványos: nehéz visszafejteni
|
|
31
|
+
// Használható cookie, header, URL-ben
|
|
32
|
+
/**
|
|
33
|
+
* Validates the input data and key
|
|
34
|
+
* @throws {DyFM_Error} if validation fails
|
|
35
|
+
*/
|
|
36
|
+
static validateInput(data, key) {
|
|
37
|
+
if (data === undefined || data === null) {
|
|
38
|
+
throw new error_control_model_1.DyFM_Error({
|
|
39
|
+
message: 'Data is required',
|
|
40
|
+
error: new Error('Data is required'),
|
|
41
|
+
errorCode: CryptoErrorCode.INVALID_DATA
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (!key || typeof key !== 'string' || key.trim().length === 0) {
|
|
45
|
+
throw new error_control_model_1.DyFM_Error({
|
|
46
|
+
message: 'Valid key is required',
|
|
47
|
+
error: new Error('Key must be a non-empty string'),
|
|
48
|
+
errorCode: CryptoErrorCode.INVALID_KEY
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Generates a secure random padding
|
|
54
|
+
* @param length Length of the padding in bytes
|
|
55
|
+
*/
|
|
56
|
+
static generatePadding(length) {
|
|
57
|
+
return CryptoJS.lib.WordArray.random(length).toString();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Derives a key using PBKDF2
|
|
61
|
+
* @param key The input key
|
|
62
|
+
* @param salt The salt to use
|
|
63
|
+
* @param config Configuration options
|
|
64
|
+
*/
|
|
65
|
+
static deriveKey(key, salt, config) {
|
|
66
|
+
return CryptoJS.PBKDF2(key, salt, {
|
|
67
|
+
keySize: config.keySize,
|
|
68
|
+
iterations: config.keyIterations
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Safely serializes data to JSON
|
|
73
|
+
* @param data The data to serialize
|
|
74
|
+
* @returns Serialized data as string
|
|
75
|
+
*/
|
|
76
|
+
static safeSerialize(data) {
|
|
77
|
+
try {
|
|
78
|
+
return JSON.stringify(data);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
throw new error_control_model_1.DyFM_Error({
|
|
82
|
+
message: 'Failed to serialize data',
|
|
83
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
84
|
+
errorCode: CryptoErrorCode.INVALID_DATA
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Safely deserializes JSON data
|
|
90
|
+
* @param data The JSON string to deserialize
|
|
91
|
+
* @returns Deserialized data
|
|
92
|
+
*/
|
|
93
|
+
static safeDeserialize(data) {
|
|
94
|
+
try {
|
|
95
|
+
return JSON.parse(data);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
throw new error_control_model_1.DyFM_Error({
|
|
99
|
+
message: 'Failed to deserialize data',
|
|
100
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
101
|
+
errorCode: CryptoErrorCode.DECRYPTION_FAILED
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Encrypts data using AES-256-CBC
|
|
107
|
+
* @param data The data to encrypt
|
|
108
|
+
* @param key The encryption key
|
|
109
|
+
* @param config Optional configuration
|
|
110
|
+
* @returns URL-safe encrypted string
|
|
111
|
+
* @throws {DyFM_Error} if encryption fails
|
|
112
|
+
*/
|
|
113
|
+
static encrypt(data, key, config) {
|
|
114
|
+
try {
|
|
115
|
+
this.validateInput(data, key);
|
|
116
|
+
const finalConfig = { ...this.DEFAULT_CONFIG, ...config };
|
|
117
|
+
// Generate random IV and salt
|
|
118
|
+
const iv = CryptoJS.lib.WordArray.random(finalConfig.ivLength);
|
|
119
|
+
const salt = CryptoJS.lib.WordArray.random(finalConfig.saltLength);
|
|
120
|
+
// Derive key using PBKDF2
|
|
121
|
+
const derivedKey = this.deriveKey(key, salt, finalConfig);
|
|
122
|
+
// Convert data to string and add random padding
|
|
123
|
+
const dataStr = this.safeSerialize(data);
|
|
124
|
+
const padding = this.generatePadding(16);
|
|
125
|
+
const paddedData = padding + dataStr;
|
|
126
|
+
// Encrypt the data
|
|
127
|
+
const encrypted = CryptoJS.AES.encrypt(paddedData, derivedKey, {
|
|
128
|
+
iv: iv,
|
|
129
|
+
mode: CryptoJS.mode.CBC,
|
|
130
|
+
padding: CryptoJS.pad.Pkcs7
|
|
131
|
+
});
|
|
132
|
+
// Combine IV + Salt + Ciphertext
|
|
133
|
+
const combined = iv.concat(salt).concat(encrypted.ciphertext);
|
|
134
|
+
// Convert to URL-safe base64
|
|
135
|
+
return CryptoJS.enc.Base64.stringify(combined)
|
|
136
|
+
.replace(/\+/g, '-')
|
|
137
|
+
.replace(/\//g, '_')
|
|
138
|
+
.replace(/=+$/, '');
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
throw new error_control_model_1.DyFM_Error({
|
|
142
|
+
message: 'Error encrypting data',
|
|
143
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
144
|
+
errorCode: CryptoErrorCode.ENCRYPTION_FAILED
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Decrypts data that was encrypted using encrypt()
|
|
150
|
+
* @param encryptedData The encrypted data
|
|
151
|
+
* @param key The decryption key
|
|
152
|
+
* @param config Optional configuration
|
|
153
|
+
* @returns The decrypted data
|
|
154
|
+
* @throws {DyFM_Error} if decryption fails
|
|
155
|
+
*/
|
|
156
|
+
static decrypt(encryptedData, key, config) {
|
|
157
|
+
try {
|
|
158
|
+
this.validateInput(encryptedData, key);
|
|
159
|
+
const finalConfig = { ...this.DEFAULT_CONFIG, ...config };
|
|
160
|
+
// Convert from URL-safe base64
|
|
161
|
+
const base64 = encryptedData
|
|
162
|
+
.replace(/-/g, '+')
|
|
163
|
+
.replace(/_/g, '/');
|
|
164
|
+
// Parse the combined data
|
|
165
|
+
const combined = CryptoJS.enc.Base64.parse(base64);
|
|
166
|
+
// Extract IV, salt, and ciphertext
|
|
167
|
+
const iv = CryptoJS.lib.WordArray.create(combined.words.slice(0, finalConfig.ivLength / 4));
|
|
168
|
+
const salt = CryptoJS.lib.WordArray.create(combined.words.slice(finalConfig.ivLength / 4, (finalConfig.ivLength + finalConfig.saltLength) / 4));
|
|
169
|
+
const ciphertext = CryptoJS.lib.WordArray.create(combined.words.slice((finalConfig.ivLength + finalConfig.saltLength) / 4));
|
|
170
|
+
// Derive key using PBKDF2
|
|
171
|
+
const derivedKey = this.deriveKey(key, salt, finalConfig);
|
|
172
|
+
// Decrypt the data
|
|
173
|
+
const decrypted = CryptoJS.AES.decrypt({ ciphertext: ciphertext }, derivedKey, {
|
|
174
|
+
iv: iv,
|
|
175
|
+
mode: CryptoJS.mode.CBC,
|
|
176
|
+
padding: CryptoJS.pad.Pkcs7
|
|
177
|
+
});
|
|
178
|
+
// Remove padding and parse JSON
|
|
179
|
+
const decryptedStr = decrypted.toString(CryptoJS.enc.Utf8);
|
|
180
|
+
const jsonStr = decryptedStr.slice(32); // Remove 16-byte padding
|
|
181
|
+
return this.safeDeserialize(jsonStr);
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
throw new error_control_model_1.DyFM_Error({
|
|
185
|
+
message: 'Error decrypting data',
|
|
186
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
187
|
+
errorCode: CryptoErrorCode.DECRYPTION_FAILED
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Generates a secure random key
|
|
193
|
+
* @param length Length of the key in bytes (default: 32)
|
|
194
|
+
* @returns A secure random key
|
|
195
|
+
*/
|
|
196
|
+
static generateKey(length = 32) {
|
|
197
|
+
return CryptoJS.lib.WordArray.random(length).toString();
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Validates if a string is a valid encrypted data
|
|
201
|
+
* @param encryptedData The data to validate
|
|
202
|
+
* @returns true if the data appears to be valid encrypted data
|
|
203
|
+
*/
|
|
204
|
+
static isValidEncryptedData(encryptedData) {
|
|
205
|
+
if (!encryptedData || typeof encryptedData !== 'string') {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
return /^[A-Za-z0-9\-_]+$/.test(encryptedData);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
exports.DyFM_Crypto = DyFM_Crypto;
|
|
212
|
+
//# sourceMappingURL=crypto.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.util.js","sourceRoot":"","sources":["../../../../src/_modules/crypto/_collections/crypto.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.util.spec.d.ts","sourceRoot":"","sources":["../../../../src/_modules/crypto/_collections/crypto.util.spec.ts"],"names":[],"mappings":""}
|