@venizia/ignis-helpers 0.1.1-12 → 0.1.1-13
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/dist/modules/secrets/factory.d.ts.map +1 -1
- package/dist/modules/secrets/factory.js +19 -4
- package/dist/modules/secrets/factory.js.map +1 -1
- package/dist/utilities/module.utility.d.ts +13 -1
- package/dist/utilities/module.utility.d.ts.map +1 -1
- package/dist/utilities/module.utility.js +14 -4
- package/dist/utilities/module.utility.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/modules/secrets/factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI3F,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,oBAAoB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/modules/secrets/factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI3F,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,oBAAoB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,cAAc,CAAC,CA2CzB"}
|
|
@@ -12,19 +12,34 @@ async function createSecretsHelper(opts) {
|
|
|
12
12
|
cacheTtlSeconds: opts.cacheTtlSeconds,
|
|
13
13
|
renewBeforeRatio: opts.renewBeforeRatio,
|
|
14
14
|
};
|
|
15
|
+
const config = opts.config;
|
|
15
16
|
switch (opts.provider) {
|
|
16
17
|
case common_1.SecretProviders.SYSTEM_ENVS: {
|
|
17
18
|
return new system_envs_1.SystemEnvsHelper({ identifier: opts.identifier });
|
|
18
19
|
}
|
|
19
20
|
case common_1.SecretProviders.HASHICORP_VAULT: {
|
|
20
|
-
|
|
21
|
+
// `client` is the injected escape: the helper never reaches for the peer, so demanding it here would defeat the escape.
|
|
22
|
+
if (!config?.client) {
|
|
23
|
+
module_utility_1.ModuleUtility.assertInstalled({
|
|
24
|
+
scope: 'HashiCorpVaultHelper',
|
|
25
|
+
modules: ['node-vault'],
|
|
26
|
+
allowRegistered: true,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
21
29
|
const { HashiCorpVaultHelper } = (await import('./hashicorp/index.js'));
|
|
22
|
-
return new HashiCorpVaultHelper({ ...
|
|
30
|
+
return new HashiCorpVaultHelper({ ...config, ...shared });
|
|
23
31
|
}
|
|
24
32
|
case common_1.SecretProviders.DOTENV_VAULT: {
|
|
25
|
-
|
|
33
|
+
// `decode` is the injected escape - same reasoning as `client` above.
|
|
34
|
+
if (!config?.decode) {
|
|
35
|
+
module_utility_1.ModuleUtility.assertInstalled({
|
|
36
|
+
scope: 'DotenvVaultHelper',
|
|
37
|
+
modules: ['@dotenvx/dotenvx'],
|
|
38
|
+
allowRegistered: true,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
26
41
|
const { DotenvVaultHelper } = (await import('./dotenv/index.js'));
|
|
27
|
-
return new DotenvVaultHelper({ ...
|
|
42
|
+
return new DotenvVaultHelper({ ...config, ...shared });
|
|
28
43
|
}
|
|
29
44
|
default: {
|
|
30
45
|
throw (0, error_1.getError)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/modules/secrets/factory.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/modules/secrets/factory.ts"],"names":[],"mappings":";;AAOA,kDA6CC;AAnDD,2CAA2C;AAC3C,+DAA2D;AAC3D,qCAA2F;AAC3F,+CAAiD;AAEjD,0RAA0R;AACnR,KAAK,UAAU,mBAAmB,CACvC,IAAoD;IAEpD,MAAM,MAAM,GAAG;QACb,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiB,CAAC;IAEtC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,wBAAe,CAAC,WAAW,CAAC,CAAC,CAAC;YACjC,OAAO,IAAI,8BAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,wBAAe,CAAC,eAAe,CAAC,CAAC,CAAC;YACrC,wHAAwH;YACxH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACpB,8BAAa,CAAC,eAAe,CAAC;oBAC5B,KAAK,EAAE,sBAAsB;oBAC7B,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,eAAe,EAAE,IAAI;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,EAAE,oBAAoB,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAY,CAAC;YACnF,OAAO,IAAI,oBAAoB,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,wBAAe,CAAC,YAAY,CAAC,CAAC,CAAC;YAClC,sEAAsE;YACtE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACpB,8BAAa,CAAC,eAAe,CAAC;oBAC5B,KAAK,EAAE,mBAAmB;oBAC1B,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,eAAe,EAAE,IAAI;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAY,CAAC;YAC7E,OAAO,IAAI,iBAAiB,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAA,gBAAQ,EAAC;gBACb,OAAO,EAAE,sDAAsD,IAAI,CAAC,QAAQ,EAAE;aAC/E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -11,6 +11,10 @@ export declare class ModuleUtility {
|
|
|
11
11
|
* A `bun build --compile` binary ships without `node_modules`, which leaves runtime resolution
|
|
12
12
|
* nothing to resolve against: the application imports such a peer statically - that import is
|
|
13
13
|
* what gets it into the binary - and registers it here before the consuming component boots.
|
|
14
|
+
*
|
|
15
|
+
* Deliberately does not log. It runs at the entrypoint of exactly the deployment that has no
|
|
16
|
+
* logger provider yet, where `LoggerFactory` throws - and a throw mid-loop would drop every
|
|
17
|
+
* module after the first.
|
|
14
18
|
*/
|
|
15
19
|
static register(opts: {
|
|
16
20
|
modules: Record<string, AnyType>;
|
|
@@ -23,10 +27,18 @@ export declare class ModuleUtility {
|
|
|
23
27
|
static loadSync<T = AnyType>(opts: {
|
|
24
28
|
module: string;
|
|
25
29
|
}): T;
|
|
26
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Presence check only - throws naming what to install, without executing the module.
|
|
32
|
+
*
|
|
33
|
+
* `allowRegistered` must be set only where {@link load} or {@link loadSync} is what finally loads
|
|
34
|
+
* the module. Where the consumer resolves the specifier itself - `pino.transport()` inside a
|
|
35
|
+
* worker thread, or any caller with its own `createRequire` - the registry cannot reach it, and
|
|
36
|
+
* counting a registration as installed would replace this precise error with an opaque one.
|
|
37
|
+
*/
|
|
27
38
|
static assertInstalled(opts: {
|
|
28
39
|
modules: Array<string>;
|
|
29
40
|
scope?: string;
|
|
41
|
+
allowRegistered?: boolean;
|
|
30
42
|
}): void;
|
|
31
43
|
}
|
|
32
44
|
//# sourceMappingURL=module.utility.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAM9C,4LAA4L;AAC5L,qBAAa,aAAa;IACxB,sGAAsG;IACtG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAEhE,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB,OAAO,CAAC,MAAM,CAAC,IAAI;IAanB
|
|
1
|
+
{"version":3,"file":"module.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAM9C,4LAA4L;AAC5L,qBAAa,aAAa;IACxB,sGAAsG;IACtG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAEhE,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB,OAAO,CAAC,MAAM,CAAC,IAAI;IAanB;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI;IAMjE,sFAAsF;WACzE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAcpE,kFAAkF;IAClF,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC;IAczD;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,IAAI;CAgBT"}
|
|
@@ -30,11 +30,14 @@ class ModuleUtility {
|
|
|
30
30
|
* A `bun build --compile` binary ships without `node_modules`, which leaves runtime resolution
|
|
31
31
|
* nothing to resolve against: the application imports such a peer statically - that import is
|
|
32
32
|
* what gets it into the binary - and registers it here before the consuming component boots.
|
|
33
|
+
*
|
|
34
|
+
* Deliberately does not log. It runs at the entrypoint of exactly the deployment that has no
|
|
35
|
+
* logger provider yet, where `LoggerFactory` throws - and a throw mid-loop would drop every
|
|
36
|
+
* module after the first.
|
|
33
37
|
*/
|
|
34
38
|
static register(opts) {
|
|
35
39
|
for (const [module, value] of Object.entries(opts.modules)) {
|
|
36
40
|
this.registered.set(module, value);
|
|
37
|
-
logger.for(this.register.name).debug("Registered module: '%s'", module);
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
/** Loads the module. Use this everywhere except a constructor, which cannot await. */
|
|
@@ -63,12 +66,19 @@ class ModuleUtility {
|
|
|
63
66
|
throw this.fail({ method: 'loadSync', module, error });
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* Presence check only - throws naming what to install, without executing the module.
|
|
71
|
+
*
|
|
72
|
+
* `allowRegistered` must be set only where {@link load} or {@link loadSync} is what finally loads
|
|
73
|
+
* the module. Where the consumer resolves the specifier itself - `pino.transport()` inside a
|
|
74
|
+
* worker thread, or any caller with its own `createRequire` - the registry cannot reach it, and
|
|
75
|
+
* counting a registration as installed would replace this precise error with an opaque one.
|
|
76
|
+
*/
|
|
67
77
|
static assertInstalled(opts) {
|
|
68
|
-
const { modules, scope } = opts;
|
|
78
|
+
const { modules, scope, allowRegistered = false } = opts;
|
|
69
79
|
const appRequire = this.appRequire();
|
|
70
80
|
for (const module of modules) {
|
|
71
|
-
if (this.registered.has(module)) {
|
|
81
|
+
if (allowRegistered && this.registered.has(module)) {
|
|
72
82
|
continue;
|
|
73
83
|
}
|
|
74
84
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.utility.js","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,0DAA6B;AAE7B,6CAAiD;AACjD,2CAA2C;AAE3C,MAAM,MAAM,GAAG,sBAAa,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAE1D,4LAA4L;AAC5L,MAAa,aAAa;IACxB,sGAAsG;aAC9E,eAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEhE,8FAA8F;IACtF,MAAM,CAAC,UAAU;QACvB,OAAO,IAAA,2BAAa,EAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,MAAM,CAAC,IAAI,CAAC,IAAwE;QAC1F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,iCAAiC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE5E,OAAO,IAAA,gBAAQ,EAAC;YACd,OAAO,EAAE,kBAAkB,MAAM,KAAK,MAAM,eAC1C,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAC5B,qBAAqB,MAAM,cAAc,MAAM,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"module.utility.js","sourceRoot":"","sources":["../../src/utilities/module.utility.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,0DAA6B;AAE7B,6CAAiD;AACjD,2CAA2C;AAE3C,MAAM,MAAM,GAAG,sBAAa,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAE1D,4LAA4L;AAC5L,MAAa,aAAa;IACxB,sGAAsG;aAC9E,eAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEhE,8FAA8F;IACtF,MAAM,CAAC,UAAU;QACvB,OAAO,IAAA,2BAAa,EAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,MAAM,CAAC,IAAI,CAAC,IAAwE;QAC1F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,iCAAiC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE5E,OAAO,IAAA,gBAAQ,EAAC;YACd,OAAO,EAAE,kBAAkB,MAAM,KAAK,MAAM,eAC1C,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAC5B,qBAAqB,MAAM,cAAc,MAAM,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CAAC,IAA0C;QACxD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAc,IAAwB;QACrD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAM,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAM,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,MAAM,CAAC,QAAQ,CAAc,IAAwB;QACnD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAM,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAM,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,IAItB;QACC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAErC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;;AA/FH,sCAgGC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-helpers",
|
|
3
|
-
"version": "0.1.1-
|
|
3
|
+
"version": "0.1.1-13",
|
|
4
4
|
"description": "Production-ready TypeScript utility library: pluggable logging (winston or pino behind one ILogger contract), Redis single/cluster/sentinel with pub/sub, BullMQ/MQTT/Kafka message queues, MinIO/Disk/Bun-S3 object storage, AES-256/RSA/ECDH cryptography, Snowflake UID generation, cron scheduling, Socket.IO/WebSocket, TCP/TLS/UDP networking, HTTP clients, secrets/Vault, worker thread pools, and environment management. Sub-path imports isolate optional peer dependencies so the root barrel never forces a peer into your bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aes",
|