@c9up/ream 0.1.25 → 0.1.26
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/ConfigLoader.d.ts +46 -5
- package/dist/ConfigLoader.d.ts.map +1 -1
- package/dist/ConfigLoader.js +60 -9
- package/dist/ConfigLoader.js.map +1 -1
- package/dist/HttpKernel.d.ts.map +1 -1
- package/dist/HttpKernel.js +46 -6
- package/dist/HttpKernel.js.map +1 -1
- package/dist/Ignitor.d.ts.map +1 -1
- package/dist/Ignitor.js +21 -3
- package/dist/Ignitor.js.map +1 -1
- package/dist/container/Container.d.ts +23 -3
- package/dist/container/Container.d.ts.map +1 -1
- package/dist/container/Container.js +139 -60
- package/dist/container/Container.js.map +1 -1
- package/dist/env/Env.d.ts +29 -4
- package/dist/env/Env.d.ts.map +1 -1
- package/dist/env/Env.js +27 -4
- package/dist/env/Env.js.map +1 -1
- package/dist/env/Secret.d.ts +11 -0
- package/dist/env/Secret.d.ts.map +1 -0
- package/dist/env/Secret.js +36 -0
- package/dist/env/Secret.js.map +1 -0
- package/dist/env/interpolate.d.ts +26 -0
- package/dist/env/interpolate.d.ts.map +1 -0
- package/dist/env/interpolate.js +48 -0
- package/dist/env/interpolate.js.map +1 -0
- package/dist/env/loadEnvFiles.d.ts.map +1 -1
- package/dist/env/loadEnvFiles.js +14 -4
- package/dist/env/loadEnvFiles.js.map +1 -1
- package/dist/env/schema.d.ts +23 -6
- package/dist/env/schema.d.ts.map +1 -1
- package/dist/env/schema.js +67 -33
- package/dist/env/schema.js.map +1 -1
- package/dist/events/Emitter.d.ts +1 -1
- package/dist/events/Emitter.d.ts.map +1 -1
- package/dist/events/Emitter.js +1 -1
- package/dist/events/Emitter.js.map +1 -1
- package/dist/events/EventsProvider.d.ts +2 -2
- package/dist/events/EventsProvider.d.ts.map +1 -1
- package/dist/events/EventsProvider.js +3 -3
- package/dist/events/EventsProvider.js.map +1 -1
- package/dist/graphql/GraphQLEngine.d.ts +1 -1
- package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
- package/dist/graphql/GraphQLEngine.js +2 -2
- package/dist/graphql/GraphQLEngine.js.map +1 -1
- package/dist/graphql/GraphQLProvider.d.ts.map +1 -1
- package/dist/graphql/GraphQLProvider.js +7 -3
- package/dist/graphql/GraphQLProvider.js.map +1 -1
- package/dist/http/Exception.d.ts +63 -1
- package/dist/http/Exception.d.ts.map +1 -1
- package/dist/http/Exception.js +185 -48
- package/dist/http/Exception.js.map +1 -1
- package/dist/http/HttpContext.d.ts +53 -7
- package/dist/http/HttpContext.d.ts.map +1 -1
- package/dist/http/HttpContext.js +56 -15
- package/dist/http/HttpContext.js.map +1 -1
- package/dist/http/RedirectBuilder.d.ts.map +1 -1
- package/dist/http/RedirectBuilder.js +4 -1
- package/dist/http/RedirectBuilder.js.map +1 -1
- package/dist/http/Request.d.ts +141 -10
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +244 -34
- package/dist/http/Request.js.map +1 -1
- package/dist/http/Response.d.ts +176 -9
- package/dist/http/Response.d.ts.map +1 -1
- package/dist/http/Response.js +404 -16
- package/dist/http/Response.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/middleware/Pipeline.js +1 -1
- package/dist/middleware/Pipeline.js.map +1 -1
- package/dist/openapi/OpenApiProvider.js +4 -4
- package/dist/openapi/OpenApiProvider.js.map +1 -1
- package/dist/router/Router.d.ts +223 -31
- package/dist/router/Router.d.ts.map +1 -1
- package/dist/router/Router.js +520 -102
- package/dist/router/Router.js.map +1 -1
- package/dist/rpc/RpcProvider.d.ts +1 -0
- package/dist/rpc/RpcProvider.d.ts.map +1 -1
- package/dist/rpc/RpcProvider.js +7 -3
- package/dist/rpc/RpcProvider.js.map +1 -1
- package/dist/rpc/RpcRouter.d.ts +2 -2
- package/dist/rpc/RpcRouter.d.ts.map +1 -1
- package/dist/rpc/RpcRouter.js +5 -4
- package/dist/rpc/RpcRouter.js.map +1 -1
- package/dist/scheduler/ScheduleProvider.d.ts.map +1 -1
- package/dist/scheduler/ScheduleProvider.js +7 -15
- package/dist/scheduler/ScheduleProvider.js.map +1 -1
- package/dist/server/Server.d.ts +17 -4
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/Server.js +41 -7
- package/dist/server/Server.js.map +1 -1
- package/dist/session/SessionMiddleware.js +3 -3
- package/dist/session/SessionMiddleware.js.map +1 -1
- package/dist/storage/StaticProvider.js +1 -1
- package/dist/storage/StaticProvider.js.map +1 -1
- package/dist/testing/RequestBuilder.d.ts +60 -0
- package/dist/testing/RequestBuilder.d.ts.map +1 -1
- package/dist/testing/RequestBuilder.js +180 -1
- package/dist/testing/RequestBuilder.js.map +1 -1
- package/dist/testing/TestClient.d.ts +22 -1
- package/dist/testing/TestClient.d.ts.map +1 -1
- package/dist/testing/TestClient.js +40 -0
- package/dist/testing/TestClient.js.map +1 -1
- package/dist/utils/Macroable.d.ts +30 -0
- package/dist/utils/Macroable.d.ts.map +1 -0
- package/dist/utils/Macroable.js +43 -0
- package/dist/utils/Macroable.js.map +1 -0
- package/dist/utils/inflect.d.ts +17 -0
- package/dist/utils/inflect.d.ts.map +1 -0
- package/dist/utils/inflect.js +32 -0
- package/dist/utils/inflect.js.map +1 -0
- package/dist/utils/objectPath.d.ts +57 -0
- package/dist/utils/objectPath.d.ts.map +1 -0
- package/dist/utils/objectPath.js +141 -0
- package/dist/utils/objectPath.js.map +1 -0
- package/events.darwin-arm64.node +0 -0
- package/events.darwin-x64.node +0 -0
- package/events.linux-arm64-gnu.node +0 -0
- package/events.linux-x64-gnu.node +0 -0
- package/events.win32-x64-msvc.node +0 -0
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +6 -1
- package/scheduler.darwin-arm64.node +0 -0
- package/scheduler.darwin-x64.node +0 -0
- package/scheduler.linux-arm64-gnu.node +0 -0
- package/scheduler.linux-x64-gnu.node +0 -0
- package/scheduler.win32-x64-msvc.node +0 -0
- package/src/ConfigLoader.ts +72 -9
- package/src/HttpKernel.ts +53 -15
- package/src/Ignitor.ts +24 -3
- package/src/container/Container.ts +145 -61
- package/src/env/Env.ts +49 -5
- package/src/env/Secret.ts +41 -0
- package/src/env/interpolate.ts +54 -0
- package/src/env/loadEnvFiles.ts +12 -4
- package/src/env/schema.ts +109 -35
- package/src/events/Emitter.ts +2 -2
- package/src/events/EventsProvider.ts +5 -5
- package/src/graphql/GraphQLEngine.ts +4 -4
- package/src/graphql/GraphQLProvider.ts +7 -3
- package/src/http/Exception.ts +214 -37
- package/src/http/HttpContext.ts +87 -18
- package/src/http/RedirectBuilder.ts +4 -1
- package/src/http/Request.ts +264 -34
- package/src/http/Response.ts +478 -27
- package/src/index.ts +11 -2
- package/src/middleware/Pipeline.ts +1 -1
- package/src/openapi/OpenApiProvider.ts +4 -4
- package/src/router/Router.ts +631 -113
- package/src/rpc/RpcProvider.ts +6 -2
- package/src/rpc/RpcRouter.ts +7 -6
- package/src/scheduler/ScheduleProvider.ts +7 -15
- package/src/server/Server.ts +49 -10
- package/src/session/SessionMiddleware.ts +4 -4
- package/src/storage/StaticProvider.ts +1 -1
- package/src/testing/RequestBuilder.ts +218 -1
- package/src/testing/TestClient.ts +57 -1
- package/src/utils/Macroable.ts +54 -0
- package/src/utils/inflect.ts +29 -0
- package/src/utils/objectPath.ts +142 -0
- package/dist/decorators/Lazy.d.ts +0 -19
- package/dist/decorators/Lazy.d.ts.map +0 -1
- package/dist/decorators/Lazy.js +0 -53
- package/dist/decorators/Lazy.js.map +0 -1
- package/src/decorators/Lazy.ts +0 -57
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
* @implements FR11, FR12, FR14, FR16
|
|
10
10
|
*/
|
|
11
11
|
import 'reflect-metadata';
|
|
12
|
-
import { createLazyProxy, getLazyParams } from '../decorators/Lazy.js';
|
|
13
12
|
import { getInjectTokens, getServiceMetadata, getServiceRegistry } from '../decorators/Service.js';
|
|
14
13
|
import { didYouMean } from '../errors/FuzzyMatcher.js';
|
|
15
14
|
import { ReamError } from '../errors/ReamError.js';
|
|
@@ -30,6 +29,10 @@ export class Container {
|
|
|
30
29
|
* pointing at the same object after the test ends.
|
|
31
30
|
*/
|
|
32
31
|
#singletonBackup = new Map();
|
|
32
|
+
/** Alias key → the token it forwards to (AdonisJS `container.alias`). */
|
|
33
|
+
#aliases = new Map();
|
|
34
|
+
/** token key → post-resolution callbacks (AdonisJS `container.resolving`). */
|
|
35
|
+
#resolvingHooks = new Map();
|
|
33
36
|
#resolutionStack = [];
|
|
34
37
|
#resolutionSet = new Set();
|
|
35
38
|
// ─── Explicit bindings ────────────────────────────────────
|
|
@@ -49,6 +52,34 @@ export class Container {
|
|
|
49
52
|
this.#singletons.set(key, value);
|
|
50
53
|
this.#bindings.set(key, { token, factory: () => value, scope: 'singleton', dependencies: [] });
|
|
51
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Register an alias — resolving `alias` forwards to `target` (AdonisJS
|
|
57
|
+
* `container.alias('db', Database)`). The target may be a class, string, or
|
|
58
|
+
* symbol that itself resolves to a binding or an auto-constructable class.
|
|
59
|
+
*/
|
|
60
|
+
alias(alias, target) {
|
|
61
|
+
this.#aliases.set(this.#tokenToKey(alias), target);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Register a callback that runs each time `token` is constructed (AdonisJS
|
|
65
|
+
* `container.resolving`) — for lazy init (`db.connect()`) or decorating the
|
|
66
|
+
* resolved instance. Runs after construction of a binding/auto-constructed
|
|
67
|
+
* class; NOT for raw `bindValue` values or an already-cached singleton.
|
|
68
|
+
*/
|
|
69
|
+
resolving(token, callback) {
|
|
70
|
+
const key = this.#tokenToKey(token);
|
|
71
|
+
const hooks = this.#resolvingHooks.get(key);
|
|
72
|
+
if (hooks)
|
|
73
|
+
hooks.push(callback);
|
|
74
|
+
else
|
|
75
|
+
this.#resolvingHooks.set(key, [callback]);
|
|
76
|
+
}
|
|
77
|
+
async #runResolvingHooks(key, value) {
|
|
78
|
+
const hooks = this.#resolvingHooks.get(key);
|
|
79
|
+
if (hooks)
|
|
80
|
+
for (const hook of hooks)
|
|
81
|
+
await hook(value);
|
|
82
|
+
}
|
|
52
83
|
// ─── Testing ──────────────────────────────────────────────
|
|
53
84
|
/**
|
|
54
85
|
* Replace a binding's factory for testing (AdonisJS-compatible swap).
|
|
@@ -100,23 +131,32 @@ export class Container {
|
|
|
100
131
|
* 4. Auto-construct if class has @inject() or @Service()
|
|
101
132
|
* 5. Auto-construct any class (plain `new Class()`) as fallback
|
|
102
133
|
*/
|
|
103
|
-
make(token) {
|
|
104
|
-
return this.resolve(token);
|
|
134
|
+
make(token, runtimeValues) {
|
|
135
|
+
return this.resolve(token, runtimeValues);
|
|
105
136
|
}
|
|
106
|
-
/**
|
|
107
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Resolve/construct a class or binding (AdonisJS `container.make` — async, so
|
|
139
|
+
* factories, providers and `resolving` hooks may be async). `runtimeValues`
|
|
140
|
+
* fill the resolved class's constructor slots by index (`make(Class, [req,
|
|
141
|
+
* res])`); only the `undefined` slots are container-resolved, top-level only.
|
|
142
|
+
*/
|
|
143
|
+
async resolve(token, runtimeValues) {
|
|
144
|
+
// Dereference an alias to its target before anything else.
|
|
145
|
+
const aliasTarget = this.#aliases.get(this.#tokenToKey(token));
|
|
146
|
+
if (aliasTarget !== undefined)
|
|
147
|
+
return this.resolve(aliasTarget, runtimeValues);
|
|
108
148
|
const key = this.#tokenToKey(token);
|
|
109
149
|
if (this.#resolutionSet.has(key)) {
|
|
110
150
|
const cycle = [...this.#resolutionStack, key].join(' → ');
|
|
111
151
|
throw new ReamError('CIRCULAR_DEPENDENCY', `Circular dependency detected: ${cycle}`, {
|
|
112
|
-
hint: '
|
|
152
|
+
hint: 'Break the cycle by resolving one dependency lazily inside a method (`await container.make(Dep)`) instead of injecting it in the constructor.',
|
|
113
153
|
context: { chain: cycle },
|
|
114
154
|
});
|
|
115
155
|
}
|
|
116
156
|
this.#resolutionStack.push(key);
|
|
117
157
|
this.#resolutionSet.add(key);
|
|
118
158
|
try {
|
|
119
|
-
return this.#resolveInner(key, token);
|
|
159
|
+
return await this.#resolveInner(key, token, runtimeValues);
|
|
120
160
|
}
|
|
121
161
|
finally {
|
|
122
162
|
this.#resolutionStack.pop();
|
|
@@ -134,15 +174,17 @@ export class Container {
|
|
|
134
174
|
const target = Object.getPrototypeOf(instance).constructor;
|
|
135
175
|
const paramTypes = Reflect.getMetadata('design:paramtypes', target.prototype, method) ?? [];
|
|
136
176
|
const len = Math.max(paramTypes.length, runtimeValues?.length ?? 0);
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
177
|
+
// Sequential resolution keeps the shared cycle-detection stack consistent.
|
|
178
|
+
const args = [];
|
|
179
|
+
for (let index = 0; index < len; index += 1) {
|
|
180
|
+
// Runtime values take precedence (and fill slots beyond paramTypes).
|
|
181
|
+
if (runtimeValues && index < runtimeValues.length) {
|
|
182
|
+
args.push(runtimeValues[index]);
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
141
185
|
const type = paramTypes[index];
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return undefined;
|
|
145
|
-
});
|
|
186
|
+
args.push(isInjectableClass(type) ? await this.resolve(type) : undefined);
|
|
187
|
+
}
|
|
146
188
|
const member = instance[method];
|
|
147
189
|
if (!isCallable(member)) {
|
|
148
190
|
throw new Error(`Container.call: '${method}' is not a callable method`);
|
|
@@ -156,8 +198,13 @@ export class Container {
|
|
|
156
198
|
return (this.#bindings.has(key) ||
|
|
157
199
|
this.#overrides.has(key) ||
|
|
158
200
|
this.#singletons.has(key) ||
|
|
201
|
+
this.#aliases.has(key) ||
|
|
159
202
|
(typeof token === 'function' && getServiceMetadata(token) !== undefined));
|
|
160
203
|
}
|
|
204
|
+
/** True only when EVERY token is registered/resolvable (AdonisJS `hasAllBindings`). */
|
|
205
|
+
hasAllBindings(tokens) {
|
|
206
|
+
return tokens.every((token) => this.has(token));
|
|
207
|
+
}
|
|
161
208
|
get size() {
|
|
162
209
|
return this.#bindings.size;
|
|
163
210
|
}
|
|
@@ -177,31 +224,32 @@ export class Container {
|
|
|
177
224
|
}
|
|
178
225
|
}
|
|
179
226
|
// ─── Internal resolution ──────────────────────────────────
|
|
180
|
-
#resolveInner(key, token) {
|
|
181
|
-
// 1. Check swaps (test overrides)
|
|
227
|
+
async #resolveInner(key, token, runtimeValues) {
|
|
228
|
+
// 1. Check swaps (test overrides) — a swap factory may be async.
|
|
182
229
|
if (this.#overrides.has(key)) {
|
|
183
|
-
|
|
184
|
-
return
|
|
230
|
+
const swapped = await this.#overrides.get(key)?.();
|
|
231
|
+
return swapped;
|
|
185
232
|
}
|
|
186
233
|
// 2. Check cached singletons
|
|
187
234
|
if (this.#singletons.has(key)) {
|
|
188
|
-
// biome-ignore lint/suspicious/noExplicitAny: IoC singleton stored as unknown; caller brands via T
|
|
189
235
|
return this.#singletons.get(key);
|
|
190
236
|
}
|
|
191
|
-
// 3. Check explicit bindings
|
|
237
|
+
// 3. Check explicit bindings — the factory may be async.
|
|
192
238
|
const binding = this.#bindings.get(key);
|
|
193
239
|
if (binding) {
|
|
194
|
-
const instance = binding.factory ? binding.factory() : undefined;
|
|
240
|
+
const instance = binding.factory ? await binding.factory() : undefined;
|
|
195
241
|
if (binding.scope === 'singleton') {
|
|
196
242
|
this.#singletons.set(key, instance);
|
|
197
243
|
}
|
|
198
|
-
|
|
244
|
+
await this.#runResolvingHooks(key, instance);
|
|
245
|
+
// Boundary cast from `unknown` — the caller brands the resolved type via T.
|
|
199
246
|
return instance;
|
|
200
247
|
}
|
|
201
248
|
// 4. Auto-construct if it's a class
|
|
202
249
|
if (typeof token === 'function') {
|
|
203
|
-
|
|
204
|
-
|
|
250
|
+
const instance = (await this.#autoConstruct(token, runtimeValues));
|
|
251
|
+
await this.#runResolvingHooks(key, instance);
|
|
252
|
+
return instance;
|
|
205
253
|
}
|
|
206
254
|
// 5. Not found
|
|
207
255
|
const allKeys = [...this.#bindings.keys(), ...this.#overrides.keys()];
|
|
@@ -218,46 +266,58 @@ export class Container {
|
|
|
218
266
|
* 2. Reflect.getMetadata('design:paramtypes') — decorator metadata (requires SWC/tsc)
|
|
219
267
|
* 3. No params → plain `new Class()`
|
|
220
268
|
*/
|
|
221
|
-
#autoConstruct(target) {
|
|
269
|
+
async #autoConstruct(target, runtimeValues) {
|
|
222
270
|
const metadata = getServiceMetadata(target);
|
|
223
271
|
const scope = metadata?.scope ?? 'transient';
|
|
224
272
|
const key = metadata?.as ?? target.name;
|
|
225
273
|
if (scope === 'singleton' && this.#singletons.has(key)) {
|
|
226
274
|
return this.#singletons.get(key);
|
|
227
275
|
}
|
|
276
|
+
// A runtime value at this index (from `make(Class, [req, res])`) wins over
|
|
277
|
+
// container resolution for that constructor slot.
|
|
278
|
+
const runtimeAt = (index) => runtimeValues?.[index];
|
|
228
279
|
// 1. Check static containerInjections (AdonisJS Fold-compatible, works
|
|
229
|
-
// without emitDecoratorMetadata).
|
|
230
|
-
// field to `unknown`, then `readContainerInjectionDeps` validates the
|
|
231
|
-
// shape at runtime — no type-level cast required.
|
|
280
|
+
// without emitDecoratorMetadata).
|
|
232
281
|
const explicitDeps = readContainerInjectionDeps(target);
|
|
233
282
|
// 2. Fallback to reflect-metadata
|
|
234
283
|
const paramTypes = explicitDeps ?? Reflect.getMetadata('design:paramtypes', target) ?? [];
|
|
235
284
|
const injectTokens = getInjectTokens(target);
|
|
236
|
-
const lazyIndices = getLazyParams(target);
|
|
237
285
|
// No `design:paramtypes` (a dev transpiler may not emit decorator metadata —
|
|
238
286
|
// esbuild / tsx don't). Recover what we can, and NEVER construct with
|
|
239
287
|
// silently-undefined deps (that masked a whole DI outage in dev):
|
|
240
288
|
if (paramTypes.length === 0) {
|
|
241
289
|
// (a) `@Inject(token)` records its tokens INDEPENDENTLY of decorator
|
|
242
290
|
// metadata, so even without `design:paramtypes` we can resolve the
|
|
243
|
-
// constructor from that map alone.
|
|
291
|
+
// constructor from that map alone. Deps resolve SEQUENTIALLY so the
|
|
292
|
+
// shared cycle-detection stack stays consistent.
|
|
244
293
|
if (injectTokens.size > 0) {
|
|
245
|
-
const maxIndex = Math.max(...injectTokens.keys());
|
|
246
|
-
const deps =
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
294
|
+
const maxIndex = Math.max(...injectTokens.keys(), (runtimeValues?.length ?? 0) - 1);
|
|
295
|
+
const deps = [];
|
|
296
|
+
for (let index = 0; index <= maxIndex; index += 1) {
|
|
297
|
+
const rt = runtimeAt(index);
|
|
298
|
+
if (rt !== undefined) {
|
|
299
|
+
deps.push(rt);
|
|
300
|
+
continue;
|
|
252
301
|
}
|
|
253
|
-
|
|
254
|
-
|
|
302
|
+
const depToken = injectTokens.get(index);
|
|
303
|
+
deps.push(depToken ? await this.resolve(depToken) : undefined);
|
|
304
|
+
}
|
|
305
|
+
const instance = new target(...deps);
|
|
306
|
+
if (scope === 'singleton')
|
|
307
|
+
this.#singletons.set(key, instance);
|
|
308
|
+
return instance;
|
|
309
|
+
}
|
|
310
|
+
// (b) No @Inject/metadata, but the caller supplied runtime values — build
|
|
311
|
+
// from those (the `make(Controller, [req, res])` pattern with a plain
|
|
312
|
+
// constructor). Slots beyond the runtime values stay undefined.
|
|
313
|
+
if (target.length > 0 && (runtimeValues?.length ?? 0) > 0) {
|
|
314
|
+
const deps = Array.from({ length: target.length }, (_value, index) => runtimeAt(index));
|
|
255
315
|
const instance = new target(...deps);
|
|
256
316
|
if (scope === 'singleton')
|
|
257
317
|
this.#singletons.set(key, instance);
|
|
258
318
|
return instance;
|
|
259
319
|
}
|
|
260
|
-
// (
|
|
320
|
+
// (c) The constructor declares parameters but we have no way to resolve
|
|
261
321
|
// them (no metadata, no @Inject, no containerInjections). Fail LOUDLY
|
|
262
322
|
// instead of `new target()` with undefined deps.
|
|
263
323
|
if (target.length > 0) {
|
|
@@ -265,26 +325,28 @@ export class Container {
|
|
|
265
325
|
hint: 'Enable decorator metadata (swc/tsc emitDecoratorMetadata), annotate constructor params with @Inject(token), or declare static containerInjections.',
|
|
266
326
|
});
|
|
267
327
|
}
|
|
268
|
-
// (
|
|
328
|
+
// (d) Genuine zero-argument class.
|
|
269
329
|
const instance = new target();
|
|
270
330
|
if (scope === 'singleton')
|
|
271
331
|
this.#singletons.set(key, instance);
|
|
272
332
|
return instance;
|
|
273
333
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
if (lazyIndices.includes(index)) {
|
|
283
|
-
// biome-ignore lint/suspicious/noExplicitAny: lazy proxy target must be object; IoC resolution returns unknown
|
|
284
|
-
return createLazyProxy(() => this.resolve(depToken));
|
|
334
|
+
// Resolve constructor deps SEQUENTIALLY (the cycle-detection stack is
|
|
335
|
+
// instance-shared, so parallel Promise.all would interleave and corrupt it).
|
|
336
|
+
const deps = [];
|
|
337
|
+
for (let index = 0; index < paramTypes.length; index += 1) {
|
|
338
|
+
const rt = runtimeAt(index);
|
|
339
|
+
if (rt !== undefined) {
|
|
340
|
+
deps.push(rt);
|
|
341
|
+
continue;
|
|
285
342
|
}
|
|
286
|
-
|
|
287
|
-
|
|
343
|
+
const namedToken = injectTokens.get(index);
|
|
344
|
+
const type = paramTypes[index];
|
|
345
|
+
// A native primitive constructor (String/Number/Boolean/…) is NOT
|
|
346
|
+
// injectable — leave the slot undefined so a constructor default can fill it.
|
|
347
|
+
const depToken = namedToken ?? (isInjectableClass(type) ? type : undefined);
|
|
348
|
+
deps.push(depToken ? await this.resolve(depToken) : undefined);
|
|
349
|
+
}
|
|
288
350
|
const instance = new target(...deps);
|
|
289
351
|
if (scope === 'singleton')
|
|
290
352
|
this.#singletons.set(key, instance);
|
|
@@ -320,11 +382,28 @@ export class Container {
|
|
|
320
382
|
}
|
|
321
383
|
}
|
|
322
384
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
385
|
+
/**
|
|
386
|
+
* Native constructors emitDecoratorMetadata uses for primitive / `any` /
|
|
387
|
+
* `unknown` parameters. They are NOT injectable — resolving them would try to
|
|
388
|
+
* auto-construct `String`/`Number`/… (or silently inject `undefined`), so we
|
|
389
|
+
* skip them and let a constructor default fill the slot instead.
|
|
390
|
+
*/
|
|
391
|
+
const NON_INJECTABLE_CONSTRUCTORS = new Set([
|
|
392
|
+
Object,
|
|
393
|
+
String,
|
|
394
|
+
Number,
|
|
395
|
+
Boolean,
|
|
396
|
+
Array,
|
|
397
|
+
Function,
|
|
398
|
+
Symbol,
|
|
399
|
+
Date,
|
|
400
|
+
RegExp,
|
|
401
|
+
Promise,
|
|
402
|
+
Error,
|
|
403
|
+
]);
|
|
404
|
+
/** True for a real, injectable class token (excludes native primitive constructors). */
|
|
405
|
+
function isInjectableClass(value) {
|
|
406
|
+
return typeof value === 'function' && !NON_INJECTABLE_CONSTRUCTORS.has(value);
|
|
328
407
|
}
|
|
329
408
|
function isCallable(value) {
|
|
330
409
|
return typeof value === 'function';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
|
package/dist/env/Env.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type IdentifierResolver } from './interpolate.js';
|
|
1
2
|
import { type SchemaNode } from './schema.js';
|
|
2
3
|
/**
|
|
3
4
|
* Type-safe environment access — mirrors `@adonisjs/core/env`:
|
|
@@ -37,11 +38,22 @@ export declare class Env<Values extends Record<string, unknown>> {
|
|
|
37
38
|
static readonly schema: {
|
|
38
39
|
string: ((options?: import("./schema.js").StringOptions) => import("./schema.js").RequiredNode<string>) & {
|
|
39
40
|
optional(options?: import("./schema.js").StringOptions): SchemaNode<string | undefined>;
|
|
41
|
+
optionalWhen(condition: import("./schema.js").OptionalCondition, options?: import("./schema.js").StringOptions): SchemaNode<string | undefined>;
|
|
42
|
+
};
|
|
43
|
+
number: (options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<number>;
|
|
44
|
+
boolean: (options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<boolean>;
|
|
45
|
+
enum: <V extends readonly string[]>(values: V, options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<V[number]>;
|
|
46
|
+
secret: ((options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<import("./Secret.js").Secret<string>>) & {
|
|
47
|
+
optional(options?: import("./schema.js").SchemaFnOptions): SchemaNode<import("./Secret.js").Secret<string> | undefined>;
|
|
48
|
+
optionalWhen(condition: import("./schema.js").OptionalCondition, options?: import("./schema.js").SchemaFnOptions): SchemaNode<import("./Secret.js").Secret<string> | undefined>;
|
|
40
49
|
};
|
|
41
|
-
number: () => import("./schema.js").RequiredNode<number>;
|
|
42
|
-
boolean: () => import("./schema.js").RequiredNode<boolean>;
|
|
43
|
-
enum: <V extends readonly string[]>(values: V) => import("./schema.js").RequiredNode<V[number]>;
|
|
44
50
|
};
|
|
51
|
+
/** Register an interpolation identifier (AdonisJS `Env.defineIdentifier`). */
|
|
52
|
+
static defineIdentifier(name: string, resolver: IdentifierResolver): void;
|
|
53
|
+
/** Register an identifier only if the name is free (AdonisJS `defineIdentifierIfMissing`). */
|
|
54
|
+
static defineIdentifierIfMissing(name: string, resolver: IdentifierResolver): void;
|
|
55
|
+
/** Remove a registered interpolation identifier (AdonisJS `Env.removeIdentifier`). */
|
|
56
|
+
static removeIdentifier(name: string): void;
|
|
45
57
|
private constructor();
|
|
46
58
|
/**
|
|
47
59
|
* Load `.env*` files, validate `process.env` against `schema`, and return a
|
|
@@ -49,9 +61,22 @@ export declare class Env<Values extends Record<string, unknown>> {
|
|
|
49
61
|
* failure) if validation fails.
|
|
50
62
|
*/
|
|
51
63
|
static create<S extends Record<string, SchemaNode<unknown>>>(appRoot: URL, schema: S): Promise<Env<EnvRecord<S>>>;
|
|
52
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Read a variable. Validated keys are typed; for any other key the raw
|
|
66
|
+
* `process.env` value is returned as a fallback (AdonisJS `env.get`
|
|
67
|
+
* semantics). Required keys are always present; optional keys may be
|
|
68
|
+
* `undefined`. The second argument is the default when nothing is found.
|
|
69
|
+
*/
|
|
53
70
|
get<K extends keyof Values>(key: K): Values[K];
|
|
54
71
|
get<K extends keyof Values>(key: K, fallback: Values[K]): Values[K];
|
|
72
|
+
get(key: string): string | undefined;
|
|
73
|
+
get(key: string, fallback: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Set/override a variable at runtime (AdonisJS `env.set`). Updates the cache
|
|
76
|
+
* AND `process.env`. The value is NOT re-validated — pass the correct type.
|
|
77
|
+
*/
|
|
78
|
+
set<K extends keyof Values>(key: K, value: Values[K]): void;
|
|
79
|
+
set(key: string, value: string): void;
|
|
55
80
|
}
|
|
56
81
|
export {};
|
|
57
82
|
//# sourceMappingURL=Env.d.ts.map
|
package/dist/env/Env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/env/Env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/env/Env.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,KAAK,UAAU,EAAU,MAAM,aAAa,CAAA;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,yDAAyD;AACzD,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE7D,kEAAkE;AAClE,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI;KAC7D,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,CAAA;AAED,qEAAqE;AACrE,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,QAAQ,EAAE,MAAM,EAAE;CAK/B;AAED,qBAAa,GAAG,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IACrD,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;MAAS;IAE/B,8EAA8E;IAC9E,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIzE,8FAA8F;IAC9F,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIlF,sFAAsF;IACtF,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3C,OAAO;IAIP;;;;OAIG;WACU,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAC/D,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAqB7B;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACnE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IACpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAU1C;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAC3D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAOtC"}
|
package/dist/env/Env.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { defineIdentifier, defineIdentifierIfMissing, removeIdentifier, } from './interpolate.js';
|
|
1
2
|
import { loadEnvFiles } from './loadEnvFiles.js';
|
|
2
3
|
import { schema } from './schema.js';
|
|
3
4
|
/** Raised when one or more environment variables fail validation. */
|
|
@@ -13,6 +14,18 @@ export class EnvValidationException extends Error {
|
|
|
13
14
|
export class Env {
|
|
14
15
|
/** The validation schema surface — `Env.schema.string()`, `.number()`, … */
|
|
15
16
|
static schema = schema;
|
|
17
|
+
/** Register an interpolation identifier (AdonisJS `Env.defineIdentifier`). */
|
|
18
|
+
static defineIdentifier(name, resolver) {
|
|
19
|
+
defineIdentifier(name, resolver);
|
|
20
|
+
}
|
|
21
|
+
/** Register an identifier only if the name is free (AdonisJS `defineIdentifierIfMissing`). */
|
|
22
|
+
static defineIdentifierIfMissing(name, resolver) {
|
|
23
|
+
defineIdentifierIfMissing(name, resolver);
|
|
24
|
+
}
|
|
25
|
+
/** Remove a registered interpolation identifier (AdonisJS `Env.removeIdentifier`). */
|
|
26
|
+
static removeIdentifier(name) {
|
|
27
|
+
removeIdentifier(name);
|
|
28
|
+
}
|
|
16
29
|
#values;
|
|
17
30
|
constructor(values) {
|
|
18
31
|
this.#values = values;
|
|
@@ -43,10 +56,20 @@ export class Env {
|
|
|
43
56
|
return new Env(collected);
|
|
44
57
|
}
|
|
45
58
|
get(key, fallback) {
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
return
|
|
49
|
-
|
|
59
|
+
const cached = this.#values[key];
|
|
60
|
+
if (cached !== undefined)
|
|
61
|
+
return cached;
|
|
62
|
+
// Fallback to raw process.env for keys outside the validated schema.
|
|
63
|
+
const fromEnv = process.env[key];
|
|
64
|
+
if (fromEnv !== undefined && fromEnv !== '')
|
|
65
|
+
return fromEnv;
|
|
66
|
+
return fallback;
|
|
67
|
+
}
|
|
68
|
+
set(key, value) {
|
|
69
|
+
// Reflect.set writes to the generic-typed cache without a cast (a direct
|
|
70
|
+
// `this.#values[key] = value` is rejected: a generic type is read-only-indexed).
|
|
71
|
+
Reflect.set(this.#values, key, value);
|
|
72
|
+
process.env[key] = String(value);
|
|
50
73
|
}
|
|
51
74
|
}
|
|
52
75
|
//# sourceMappingURL=Env.js.map
|
package/dist/env/Env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Env.js","sourceRoot":"","sources":["../../src/env/Env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAmB,MAAM,EAAE,MAAM,aAAa,CAAA;AA+BrD,qEAAqE;AACrE,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,sFAAsF;IAC7E,IAAI,CAAQ;IACrB,YAAY,QAAkB;QAC5B,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACF;AAED,MAAM,OAAO,GAAG;IACd,4EAA4E;IAC5E,MAAM,CAAU,MAAM,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Env.js","sourceRoot":"","sources":["../../src/env/Env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class Secret<T> {
|
|
2
|
+
#private;
|
|
3
|
+
constructor(value: T, redactedKeyword?: string);
|
|
4
|
+
/** Redacted placeholder (so `JSON.stringify` never emits the secret). */
|
|
5
|
+
toJSON(): string;
|
|
6
|
+
/** Redacted placeholder for string coercion + template literals. */
|
|
7
|
+
toString(): string;
|
|
8
|
+
/** Release the underlying value — the one deliberate way to read the secret. */
|
|
9
|
+
release(): T;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../src/env/Secret.ts"],"names":[],"mappings":"AAYA,qBAAa,MAAM,CAAC,CAAC;;gBAIP,KAAK,EAAE,CAAC,EAAE,eAAe,GAAE,MAAiB;IAKxD,yEAAyE;IACzE,MAAM,IAAI,MAAM;IAIhB,oEAAoE;IACpE,QAAQ,IAAI,MAAM;IASlB,gFAAgF;IAChF,OAAO,IAAI,CAAC;CAGb"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret — wraps a sensitive value so it never leaks through logs, JSON, or
|
|
3
|
+
* `util.inspect`. Mirrors `@poppinss/utils`'s `Secret` (zero-dep here). Read the
|
|
4
|
+
* underlying value explicitly with {@link release}.
|
|
5
|
+
*
|
|
6
|
+
* const key = env.get('APP_KEY') // Secret<string> when declared via schema.secret
|
|
7
|
+
* key.toString() // '[redacted]'
|
|
8
|
+
* JSON.stringify({ key }) // '{"key":"[redacted]"}'
|
|
9
|
+
* key.release() // the real value — only when you deliberately need it
|
|
10
|
+
*/
|
|
11
|
+
const REDACTED = '[redacted]';
|
|
12
|
+
export class Secret {
|
|
13
|
+
#value;
|
|
14
|
+
#keyword;
|
|
15
|
+
constructor(value, redactedKeyword = REDACTED) {
|
|
16
|
+
this.#value = value;
|
|
17
|
+
this.#keyword = redactedKeyword;
|
|
18
|
+
}
|
|
19
|
+
/** Redacted placeholder (so `JSON.stringify` never emits the secret). */
|
|
20
|
+
toJSON() {
|
|
21
|
+
return this.#keyword;
|
|
22
|
+
}
|
|
23
|
+
/** Redacted placeholder for string coercion + template literals. */
|
|
24
|
+
toString() {
|
|
25
|
+
return this.#keyword;
|
|
26
|
+
}
|
|
27
|
+
/** Redacted placeholder for `console.log` / `util.inspect`. */
|
|
28
|
+
[Symbol.for('nodejs.util.inspect.custom')]() {
|
|
29
|
+
return this.#keyword;
|
|
30
|
+
}
|
|
31
|
+
/** Release the underlying value — the one deliberate way to read the secret. */
|
|
32
|
+
release() {
|
|
33
|
+
return this.#value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=Secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Secret.js","sourceRoot":"","sources":["../../src/env/Secret.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,QAAQ,GAAG,YAAY,CAAA;AAE7B,MAAM,OAAO,MAAM;IACR,MAAM,CAAG;IACT,QAAQ,CAAQ;IAEzB,YAAY,KAAQ,EAAE,kBAA0B,QAAQ;QACtD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAA;IACjC,CAAC;IAED,yEAAyE;IACzE,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,oEAAoE;IACpE,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,+DAA+D;IAC/D,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,gFAAgF;IAChF,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Env value interpolation — AdonisJS-style variable substitution + identifiers,
|
|
3
|
+
* applied by {@link loadEnvFiles} as each `.env` value is loaded.
|
|
4
|
+
*
|
|
5
|
+
* - `$VAR` / `${VAR}` are replaced with the value of `VAR` (looked up against
|
|
6
|
+
* the values already loaded + `process.env`). A missing reference expands to
|
|
7
|
+
* an empty string. `\$` is a literal dollar sign (escape).
|
|
8
|
+
* - `identifier:rest` — when `identifier` was registered via
|
|
9
|
+
* {@link defineIdentifier}, the registered callback transforms `rest`
|
|
10
|
+
* (e.g. a `base64:` decoder). Unregistered prefixes (like `postgres://…`)
|
|
11
|
+
* are left untouched.
|
|
12
|
+
*/
|
|
13
|
+
/** Transform the remainder of an `identifier:rest` value into its final form. */
|
|
14
|
+
export type IdentifierResolver = (value: string) => string;
|
|
15
|
+
/** Register an identifier resolver (AdonisJS `Env.defineIdentifier`). */
|
|
16
|
+
export declare function defineIdentifier(name: string, resolver: IdentifierResolver): void;
|
|
17
|
+
/** Register an identifier resolver only if the name is free (AdonisJS `defineIdentifierIfMissing`). */
|
|
18
|
+
export declare function defineIdentifierIfMissing(name: string, resolver: IdentifierResolver): void;
|
|
19
|
+
/** Remove a registered identifier (AdonisJS `Env.removeIdentifier`). */
|
|
20
|
+
export declare function removeIdentifier(name: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Expand `$VAR` / `${VAR}` references and apply an identifier prefix. `lookup`
|
|
23
|
+
* resolves a referenced variable name to its current value (or undefined).
|
|
24
|
+
*/
|
|
25
|
+
export declare function interpolate(value: string, lookup: (name: string) => string | undefined): string;
|
|
26
|
+
//# sourceMappingURL=interpolate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolate.d.ts","sourceRoot":"","sources":["../../src/env/interpolate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;AAI1D,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAEjF;AAED,uGAAuG;AACvG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAE1F;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnD;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,MAAM,CAc/F"}
|