@futdevpro/nts-dynamo 1.15.358 → 1.15.359
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/_collections/email-account.util.d.ts +70 -0
- package/build/_collections/email-account.util.d.ts.map +1 -0
- package/build/_collections/email-account.util.js +113 -0
- package/build/_collections/email-account.util.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { DyFM_Error } from '@futdevpro/fsm-dynamo';
|
|
2
|
+
import { DyNTS_EmailService, DyNTS_EmailService_Settings, DyNTS_EmailTemplateComponent } from '../_services/core/email.service';
|
|
3
|
+
/**
|
|
4
|
+
* BFR-OLDLIGHTSITE-010 — one SMTP account, named by a REFERENCE (an env-key prefix), resolved from the environment the
|
|
5
|
+
* FDP Keystore injects at runtime.
|
|
6
|
+
*
|
|
7
|
+
* @description `FDPNTS_emailCredentials` is bound to fixed `futdevpro.hu` accounts and fixed env keys, so a project
|
|
8
|
+
* with its own mailboxes (Oldlight: `contact@`, `support@`, `auto@oldlightgames.com`) had no way to register an SMTP
|
|
9
|
+
* transport without inventing a project-local secret flow. The Keystore already injects every secret as an env
|
|
10
|
+
* variable (runner job injection, `fdp env-pull`), so a reference is simply the key PREFIX:
|
|
11
|
+
*
|
|
12
|
+
* `credentialRef: 'OLS_SMTP_CONTACT'` → `OLS_SMTP_CONTACT_HOST`, `_PORT`, `_USER`, `_PASS`, optional `_SENDER_NAME`.
|
|
13
|
+
*
|
|
14
|
+
* ⛔ This util never adds or invents keys: the project names them, and the values live in the Keystore
|
|
15
|
+
* (`fdp-keystore-secrets`). ⛔ No value ever reaches a log, an error or a result — only key NAMES and states.
|
|
16
|
+
*/
|
|
17
|
+
export interface DyNTS_EmailAccountRef_Interface {
|
|
18
|
+
/** The env-key prefix of the account (letters, digits, underscore), e.g. `OLS_SMTP_CONTACT`. */
|
|
19
|
+
credentialRef: string;
|
|
20
|
+
/** Passed to `DyNTS_EmailService` (template root). */
|
|
21
|
+
rootPath: string;
|
|
22
|
+
templateComponents?: DyNTS_EmailTemplateComponent[];
|
|
23
|
+
/** The environment to read (default: `process.env`) — a test seam. */
|
|
24
|
+
env?: NodeJS.ProcessEnv;
|
|
25
|
+
}
|
|
26
|
+
/** What the reference resolved to. Carries key NAMES only — never a value. */
|
|
27
|
+
export type DyNTS_EmailAccountResolution_Type = {
|
|
28
|
+
status: 'configured';
|
|
29
|
+
credentialRef: string;
|
|
30
|
+
settings: DyNTS_EmailService_Settings;
|
|
31
|
+
} | {
|
|
32
|
+
status: 'absent';
|
|
33
|
+
credentialRef: string;
|
|
34
|
+
missingKeys: string[];
|
|
35
|
+
} | {
|
|
36
|
+
status: 'invalid';
|
|
37
|
+
credentialRef: string;
|
|
38
|
+
problems: string[];
|
|
39
|
+
};
|
|
40
|
+
/** Keystore-ref based SMTP account bootstrap (BFR-OLDLIGHTSITE-010). */
|
|
41
|
+
export declare class DyNTS_EmailAccount_Util {
|
|
42
|
+
/** The env-key names a reference expands to (`_SENDER_NAME` is optional). */
|
|
43
|
+
static keysOf(credentialRef: string): {
|
|
44
|
+
required: string[];
|
|
45
|
+
optional: string[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Resolves the reference. `absent` = at least one required key is missing or empty (the account is simply not
|
|
49
|
+
* configured on this host → the caller answers 503); `invalid` = the keys are there but unusable (a wrong port, a
|
|
50
|
+
* user that is not an e-mail address). Never throws, never returns a value in a problem text.
|
|
51
|
+
*/
|
|
52
|
+
static resolve(ref: DyNTS_EmailAccountRef_Interface): DyNTS_EmailAccountResolution_Type;
|
|
53
|
+
/**
|
|
54
|
+
* Creates the `DyNTS_EmailService` ONLY when the account resolves; otherwise returns `null` with the resolution, and
|
|
55
|
+
* logs WHICH keys are missing / wrong (names, never values). The service is not registered anywhere — the caller
|
|
56
|
+
* decides (e.g. its email-service collection).
|
|
57
|
+
*/
|
|
58
|
+
static createEmailService(ref: DyNTS_EmailAccountRef_Interface): {
|
|
59
|
+
service: DyNTS_EmailService | null;
|
|
60
|
+
resolution: DyNTS_EmailAccountResolution_Type;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* The degraded-mode error for a caller that needs the account NOW: 503, with the key NAMES the operator has to set in
|
|
64
|
+
* the Keystore (no value). `configured` → `null`.
|
|
65
|
+
*/
|
|
66
|
+
static unavailableError(resolution: DyNTS_EmailAccountResolution_Type): DyFM_Error | null;
|
|
67
|
+
/** Key names / problems only — the one text that may reach a log or an error. */
|
|
68
|
+
private static describe;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=email-account.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-account.util.d.ts","sourceRoot":"","sources":["../../src/_collections/email-account.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAAE,2BAA2B,EAAE,4BAA4B,EAC9E,MAAM,iCAAiC,CAAC;AAGzC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,+BAA+B;IAC9C,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACpD,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,MAAM,iCAAiC,GACzC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,2BAA2B,CAAA;CAAE,GACtF;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAClE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAKrE,wEAAwE;AACxE,qBAAa,uBAAuB;IAElC,6EAA6E;IAC7E,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IAOhF;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,+BAA+B,GAAG,iCAAiC;IAwDvF;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CACvB,GAAG,EAAE,+BAA+B,GACnC;QAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,iCAAiC,CAAA;KAAE;IAexF;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,iCAAiC,GAAG,UAAU,GAAG,IAAI;IAczF,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,QAAQ;CAUxB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_EmailAccount_Util = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const email_service_1 = require("../_services/core/email.service");
|
|
6
|
+
const global_settings_const_1 = require("./global-settings.const");
|
|
7
|
+
/** The keys an account reference expands to (the required ones). */
|
|
8
|
+
const REQUIRED_SUFFIXES = ['HOST', 'PORT', 'USER', 'PASS'];
|
|
9
|
+
/** Keystore-ref based SMTP account bootstrap (BFR-OLDLIGHTSITE-010). */
|
|
10
|
+
class DyNTS_EmailAccount_Util {
|
|
11
|
+
/** The env-key names a reference expands to (`_SENDER_NAME` is optional). */
|
|
12
|
+
static keysOf(credentialRef) {
|
|
13
|
+
return {
|
|
14
|
+
required: REQUIRED_SUFFIXES.map((suffix) => `${credentialRef}_${suffix}`),
|
|
15
|
+
optional: [`${credentialRef}_SENDER_NAME`],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolves the reference. `absent` = at least one required key is missing or empty (the account is simply not
|
|
20
|
+
* configured on this host → the caller answers 503); `invalid` = the keys are there but unusable (a wrong port, a
|
|
21
|
+
* user that is not an e-mail address). Never throws, never returns a value in a problem text.
|
|
22
|
+
*/
|
|
23
|
+
static resolve(ref) {
|
|
24
|
+
const credentialRef = String(ref?.credentialRef ?? '');
|
|
25
|
+
if (!/^[A-Z][A-Z0-9_]{0,63}$/.test(credentialRef)) {
|
|
26
|
+
return {
|
|
27
|
+
status: 'invalid',
|
|
28
|
+
credentialRef: credentialRef,
|
|
29
|
+
problems: ['the credentialRef must be an UPPER_SNAKE env-key prefix (e.g. OLS_SMTP_CONTACT)'],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const env = ref.env ?? process.env;
|
|
33
|
+
const read = (key) => String(env[key] ?? '').trim();
|
|
34
|
+
const keys = DyNTS_EmailAccount_Util.keysOf(credentialRef);
|
|
35
|
+
const missingKeys = keys.required.filter((key) => !read(key));
|
|
36
|
+
if (missingKeys.length) {
|
|
37
|
+
return { status: 'absent', credentialRef: credentialRef, missingKeys: missingKeys };
|
|
38
|
+
}
|
|
39
|
+
const host = read(`${credentialRef}_HOST`);
|
|
40
|
+
const portText = read(`${credentialRef}_PORT`);
|
|
41
|
+
const port = Number(portText);
|
|
42
|
+
const user = read(`${credentialRef}_USER`);
|
|
43
|
+
const problems = [];
|
|
44
|
+
if (!/^\d+$/.test(portText) || port < 1 || port > 65535) {
|
|
45
|
+
problems.push(`${credentialRef}_PORT is not a port number (1-65535)`);
|
|
46
|
+
}
|
|
47
|
+
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(user)) {
|
|
48
|
+
problems.push(`${credentialRef}_USER is not an e-mail address`);
|
|
49
|
+
}
|
|
50
|
+
if (/\s/.test(host)) {
|
|
51
|
+
problems.push(`${credentialRef}_HOST contains whitespace`);
|
|
52
|
+
}
|
|
53
|
+
if (problems.length) {
|
|
54
|
+
return { status: 'invalid', credentialRef: credentialRef, problems: problems };
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
status: 'configured',
|
|
58
|
+
credentialRef: credentialRef,
|
|
59
|
+
settings: {
|
|
60
|
+
host: host,
|
|
61
|
+
port: port,
|
|
62
|
+
email: user,
|
|
63
|
+
// the password is NOT trimmed: surrounding spaces may be part of it
|
|
64
|
+
pass: String(env[`${credentialRef}_PASS`] ?? ''),
|
|
65
|
+
senderName: read(`${credentialRef}_SENDER_NAME`) || user,
|
|
66
|
+
rootPath: ref.rootPath,
|
|
67
|
+
templateComponents: ref.templateComponents,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Creates the `DyNTS_EmailService` ONLY when the account resolves; otherwise returns `null` with the resolution, and
|
|
73
|
+
* logs WHICH keys are missing / wrong (names, never values). The service is not registered anywhere — the caller
|
|
74
|
+
* decides (e.g. its email-service collection).
|
|
75
|
+
*/
|
|
76
|
+
static createEmailService(ref) {
|
|
77
|
+
const resolution = DyNTS_EmailAccount_Util.resolve(ref);
|
|
78
|
+
if (resolution.status !== 'configured') {
|
|
79
|
+
fsm_dynamo_1.DyFM_Log.warn(`[DyNTS email-account] "${resolution.credentialRef}" is not usable (${resolution.status}): `
|
|
80
|
+
+ DyNTS_EmailAccount_Util.describe(resolution));
|
|
81
|
+
return { service: null, resolution: resolution };
|
|
82
|
+
}
|
|
83
|
+
return { service: new email_service_1.DyNTS_EmailService(resolution.settings), resolution: resolution };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The degraded-mode error for a caller that needs the account NOW: 503, with the key NAMES the operator has to set in
|
|
87
|
+
* the Keystore (no value). `configured` → `null`.
|
|
88
|
+
*/
|
|
89
|
+
static unavailableError(resolution) {
|
|
90
|
+
if (resolution.status === 'configured') {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return new fsm_dynamo_1.DyFM_Error({
|
|
94
|
+
status: 503,
|
|
95
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-EMAIL-ACCOUNT-${resolution.status.toUpperCase()}`,
|
|
96
|
+
message: `SMTP account "${resolution.credentialRef}" is ${resolution.status}: `
|
|
97
|
+
+ DyNTS_EmailAccount_Util.describe(resolution),
|
|
98
|
+
userMessage: 'E-mail sending is not available at the moment. Please try again later.',
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/** Key names / problems only — the one text that may reach a log or an error. */
|
|
102
|
+
static describe(resolution) {
|
|
103
|
+
if (resolution.status === 'absent') {
|
|
104
|
+
return `missing Keystore keys: ${resolution.missingKeys.join(', ')}`;
|
|
105
|
+
}
|
|
106
|
+
if (resolution.status === 'invalid') {
|
|
107
|
+
return resolution.problems.join('; ');
|
|
108
|
+
}
|
|
109
|
+
return 'configured';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.DyNTS_EmailAccount_Util = DyNTS_EmailAccount_Util;
|
|
113
|
+
//# sourceMappingURL=email-account.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-account.util.js","sourceRoot":"","sources":["../../src/_collections/email-account.util.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -51,6 +51,7 @@ export * from './_collections/load-shed.util';
|
|
|
51
51
|
export * from './_collections/database-unavailable.util';
|
|
52
52
|
export * from './_collections/db-error-detail.util';
|
|
53
53
|
export * from './_collections/db-plain-data.util';
|
|
54
|
+
export * from './_collections/email-account.util';
|
|
54
55
|
export * from './_collections/secret-redaction.util';
|
|
55
56
|
export * from './_collections/dependency-host-guard.util';
|
|
56
57
|
export * from './_collections/safe-remote-fetch.util';
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -80,6 +80,7 @@ tslib_1.__exportStar(require("./_collections/load-shed.util"), exports);
|
|
|
80
80
|
tslib_1.__exportStar(require("./_collections/database-unavailable.util"), exports);
|
|
81
81
|
tslib_1.__exportStar(require("./_collections/db-error-detail.util"), exports);
|
|
82
82
|
tslib_1.__exportStar(require("./_collections/db-plain-data.util"), exports);
|
|
83
|
+
tslib_1.__exportStar(require("./_collections/email-account.util"), exports);
|
|
83
84
|
tslib_1.__exportStar(require("./_collections/secret-redaction.util"), exports);
|
|
84
85
|
tslib_1.__exportStar(require("./_collections/dependency-host-guard.util"), exports);
|
|
85
86
|
tslib_1.__exportStar(require("./_collections/safe-remote-fetch.util"), exports);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,+EAAqD;AACrD,8EAAoD;AACpD,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,iFAAuD;AACvD,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,kGAAwE;AACxE,4FAAkE;AAClE,6FAAmE;AACnE,8FAAoE;AACpE,gGAAsE;AACtE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,kGAAwE;AACxE,gGAAsE;AACtE,uFAA6D;AAC7D,mGAAyE;AACzE,qGAA2E;AAC3E,oGAA0E;AAC1E,oGAA0E;AAC1E,0FAAgE;AAChE,wFAA8D;AAC9D,yFAA+D;AAC/D,oGAA0E;AAC1E,+EAAqD;AACrD,iFAAuD;AACvD,4EAAkD;AAClD,mFAAyD;AACzD,oFAA0D;AAC1D,yEAA+C;AAC/C,gFAAsD;AACtD,2EAAiD;AACjD,6EAAmD;AACnD,8EAAoD;AACpD,4EAAkD;AAClD,8FAAoE;AACpE,wEAA8C;AAC9C,mFAAyD;AACzD,8EAAoD;AACpD,4EAAkD;AAClD,+EAAqD;AACrD,oFAA0D;AAC1D,gFAAsD;AACtD,6EAAmD;AACnD,mFAAyD;AACzD,kFAAwD;AACxD,4EAAkD;AAClD,+EAAqD;AAErD,wBAAwB;AACxB,iGAAuE;AACvE,yGAA+E;AAC/E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAE/C,qBAAqB;AACrB,4FAAkE;AAGlE,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AACtD,6FAAmE;AAEnE,sFAA4D;AAC5D,oFAA0D;AAC1D,6FAAmE;AAEnE,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAC9C,wFAA8D;AAC9D,kFAAwD;AAExD,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,+EAAqD;AACrD,8EAAoD;AACpD,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,iFAAuD;AACvD,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,kGAAwE;AACxE,4FAAkE;AAClE,6FAAmE;AACnE,8FAAoE;AACpE,gGAAsE;AACtE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,kGAAwE;AACxE,gGAAsE;AACtE,uFAA6D;AAC7D,mGAAyE;AACzE,qGAA2E;AAC3E,oGAA0E;AAC1E,oGAA0E;AAC1E,0FAAgE;AAChE,wFAA8D;AAC9D,yFAA+D;AAC/D,oGAA0E;AAC1E,+EAAqD;AACrD,iFAAuD;AACvD,4EAAkD;AAClD,mFAAyD;AACzD,oFAA0D;AAC1D,yEAA+C;AAC/C,gFAAsD;AACtD,2EAAiD;AACjD,6EAAmD;AACnD,8EAAoD;AACpD,4EAAkD;AAClD,8FAAoE;AACpE,wEAA8C;AAC9C,mFAAyD;AACzD,8EAAoD;AACpD,4EAAkD;AAClD,4EAAkD;AAClD,+EAAqD;AACrD,oFAA0D;AAC1D,gFAAsD;AACtD,6EAAmD;AACnD,mFAAyD;AACzD,kFAAwD;AACxD,4EAAkD;AAClD,+EAAqD;AAErD,wBAAwB;AACxB,iGAAuE;AACvE,yGAA+E;AAC/E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAE/C,qBAAqB;AACrB,4FAAkE;AAGlE,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AACtD,6FAAmE;AAEnE,sFAA4D;AAC5D,oFAA0D;AAC1D,6FAAmE;AAEnE,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAC9C,wFAA8D;AAC9D,kFAAwD;AAExD,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/nts-dynamo",
|
|
3
|
-
"version": "01.15.
|
|
3
|
+
"version": "01.15.359",
|
|
4
4
|
"description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
|
|
5
5
|
"DyBu_settings": {
|
|
6
6
|
"packageType": "server-package",
|
|
@@ -512,8 +512,8 @@
|
|
|
512
512
|
}
|
|
513
513
|
},
|
|
514
514
|
"devDependencies": {
|
|
515
|
-
"@futdevpro/fsm-dynamo": "1.20.
|
|
516
|
-
"@futdevpro/dynamo-eslint": "1.20.
|
|
515
|
+
"@futdevpro/fsm-dynamo": "1.20.107",
|
|
516
|
+
"@futdevpro/dynamo-eslint": "1.20.57",
|
|
517
517
|
"@discordjs/opus": "^0.10.0",
|
|
518
518
|
"@discordjs/voice": "^0.18.0",
|
|
519
519
|
"@types/jasmine": "~4.3.5",
|