@c9up/ream 0.2.12 → 0.2.14
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/Application.d.ts +9 -0
- package/dist/Application.d.ts.map +1 -1
- package/dist/Application.js +11 -0
- package/dist/Application.js.map +1 -1
- package/dist/GracefulShutdown.js +6 -5
- package/dist/GracefulShutdown.js.map +1 -1
- package/dist/bodyparser/MultipartFile.d.ts +33 -7
- package/dist/bodyparser/MultipartFile.d.ts.map +1 -1
- package/dist/bodyparser/MultipartFile.js +54 -9
- package/dist/bodyparser/MultipartFile.js.map +1 -1
- package/dist/container/Container.d.ts +19 -3
- package/dist/container/Container.d.ts.map +1 -1
- package/dist/container/Container.js +83 -30
- package/dist/container/Container.js.map +1 -1
- package/dist/container/ContainerResolver.js.map +1 -1
- package/dist/errors/PipelineStageError.d.ts +10 -4
- package/dist/errors/PipelineStageError.d.ts.map +1 -1
- package/dist/errors/PipelineStageError.js +12 -6
- package/dist/errors/PipelineStageError.js.map +1 -1
- package/dist/http/Response.d.ts.map +1 -1
- package/dist/http/Response.js +4 -9
- package/dist/http/Response.js.map +1 -1
- package/dist/http/SseStream.d.ts.map +1 -1
- package/dist/http/SseStream.js +10 -1
- package/dist/http/SseStream.js.map +1 -1
- package/dist/http/etag.d.ts +44 -0
- package/dist/http/etag.d.ts.map +1 -0
- package/dist/http/etag.js +65 -0
- package/dist/http/etag.js.map +1 -0
- package/dist/http/mime.d.ts +33 -0
- package/dist/http/mime.d.ts.map +1 -0
- package/dist/http/mime.js +1346 -0
- package/dist/http/mime.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/storage/StaticMiddleware.d.ts.map +1 -1
- package/dist/storage/StaticMiddleware.js +78 -59
- package/dist/storage/StaticMiddleware.js.map +1 -1
- package/events.win32-x64-msvc.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +3 -5
- package/scheduler.win32-x64-msvc.node +0 -0
- package/scripts/generate-mime.mjs +119 -0
- package/src/Application.ts +12 -0
- package/src/GracefulShutdown.ts +5 -5
- package/src/bodyparser/MultipartFile.ts +87 -13
- package/src/container/Container.ts +106 -52
- package/src/container/ContainerResolver.ts +1 -1
- package/src/errors/PipelineStageError.ts +13 -7
- package/src/http/Response.ts +4 -8
- package/src/http/SseStream.ts +16 -7
- package/src/http/etag.ts +68 -0
- package/src/http/mime.ts +1346 -0
- package/src/index.ts +3 -3
- package/src/storage/StaticMiddleware.ts +81 -66
package/dist/Application.d.ts
CHANGED
|
@@ -284,5 +284,14 @@ export declare class Application implements AppContext {
|
|
|
284
284
|
onShutdown(callback: () => Promise<void> | void): void;
|
|
285
285
|
get isBooted(): boolean;
|
|
286
286
|
get providerCount(): number;
|
|
287
|
+
/**
|
|
288
|
+
* The registered providers, in registration order.
|
|
289
|
+
*
|
|
290
|
+
* Read-only, and the reason it exists: `ream inspect` reported `0 providers`
|
|
291
|
+
* on an application running twelve of them, because it read a property that
|
|
292
|
+
* had never been added. A count alone does not answer the question inspect
|
|
293
|
+
* is opened for — which provider is wired — so the list is what it returns.
|
|
294
|
+
*/
|
|
295
|
+
get providers(): readonly ProviderContract[];
|
|
287
296
|
}
|
|
288
297
|
//# sourceMappingURL=Application.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,KAAK,eAAe,EAAqC,MAAM,kBAAkB,CAAA;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGjE;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAE5E;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,WAAW,GACX,QAAQ,GACR,OAAO,GACP,aAAa,GACb,YAAY,CAAA;AAEhB,qBAAa,WAAY,YAAW,UAAU;;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;;IAmB5B;;;;;;;;;;;;OAYG;IACH,OAAO,IAAI,eAAe;IAI1B;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAcpC,4EAA4E;IAC5E,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAI3B,6EAA6E;IAC7E,IAAI,OAAO,IAAI,GAAG,GAAG,SAAS,CAE7B;IAED,2DAA2D;IAC3D,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpC;;;OAGG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG;IAMhC,wEAAwE;IACxE,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAa1C;;;;OAIG;IACH,IAAI,WAAW,IAAI,eAAe,CAEjC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;KAAE,GAAG,IAAI;IAgBnE,oDAAoD;IACpD,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAItC,iEAAiE;IACjE,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI1C,iDAAiD;IACjD,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAInC,oDAAoD;IACpD,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAItC,uDAAuD;IACvD,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIzC,gEAAgE;IAChE,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIzC,8DAA8D;IAC9D,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIvC,4DAA4D;IAC5D,iBAAiB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI7C,6DAA6D;IAC7D,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIrC,mDAAmD;IACnD,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIrC,uDAAuD;IACvD,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIzC,6DAA6D;IAC7D,mBAAmB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI/C,wDAAwD;IACxD,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAItC,0DAA0D;IAC1D,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxC,4DAA4D;IAC5D,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI1C,yDAAyD;IACzD,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIvC,uDAAuD;IACvD,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIrC,4DAA4D;IAC5D,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI1C,0DAA0D;IAC1D,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxC,4DAA4D;IAC5D,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI1C,sDAAsD;IACtD,YAAY,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxC,wDAAwD;IACxD,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAItC,2DAA2D;IAC3D,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIzC,8DAA8D;IAC9D,gBAAgB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI5C,4EAA4E;IAC5E,mBAAmB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAI/C,4EAA4E;IAC5E,mBAAmB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAM/C,sCAAsC;IACtC,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,qCAAqC;IACrC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,+BAA+B;IAC/B,IAAI,YAAY,IAAI,OAAO,CAE1B;IAID;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAInD;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAsBlD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAK1D;;;;;OAKG;IACH,cAAc,IAAI,cAAc;IAIhC;;;;;;OAMG;IACH,cAAc,CAAC,WAAW,EAAE,cAAc,GAAG,IAAI;IAUjD,kEAAkE;IAClE,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,uEAAuE;IACvE,QAAQ,IAAI,gBAAgB;IAI5B,+EAA+E;IAC/E,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,wEAAwE;IACxE,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,kEAAkE;IAClE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,qEAAqE;IACrE,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,wEAAwE;IACxE,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED;;;OAGG;IACH,MAAM,IAAI;QACR,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,WAAW,EAAE,cAAc,CAAA;QAC3B,eAAe,EAAE,MAAM,CAAA;QACvB,KAAK,EAAE,gBAAgB,CAAA;QACvB,OAAO,EAAE,OAAO,CAAA;QAChB,aAAa,EAAE,OAAO,CAAA;KACvB;IAYD;;;;;;;OAOG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAQ9D,iFAAiF;IACjF,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpF;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;IAaxE;;;;;;OAMG;IACG,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAmC9F;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMhF;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAOhC,oCAAoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAO1C,gEAAgE;IAC1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;;;;;;;;;OAUG;IACH,SAAS,IAAI,IAAI;IAIjB;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC/B,gCAAgC;IAChC,UAAU,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAItD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;CACF"}
|
|
1
|
+
{"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
|
package/dist/Application.js
CHANGED
|
@@ -559,5 +559,16 @@ export class Application {
|
|
|
559
559
|
get providerCount() {
|
|
560
560
|
return this.#providers.length;
|
|
561
561
|
}
|
|
562
|
+
/**
|
|
563
|
+
* The registered providers, in registration order.
|
|
564
|
+
*
|
|
565
|
+
* Read-only, and the reason it exists: `ream inspect` reported `0 providers`
|
|
566
|
+
* on an application running twelve of them, because it read a property that
|
|
567
|
+
* had never been added. A count alone does not answer the question inspect
|
|
568
|
+
* is opened for — which provider is wired — so the list is what it returns.
|
|
569
|
+
*/
|
|
570
|
+
get providers() {
|
|
571
|
+
return [...this.#providers];
|
|
572
|
+
}
|
|
562
573
|
}
|
|
563
574
|
//# sourceMappingURL=Application.js.map
|
package/dist/Application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":"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"}
|
package/dist/GracefulShutdown.js
CHANGED
|
@@ -41,12 +41,13 @@ export function installGracefulShutdown(options) {
|
|
|
41
41
|
// Second signal while draining — escalate immediately.
|
|
42
42
|
logger.error('Forced exit: second signal received during shutdown');
|
|
43
43
|
process.exit(1);
|
|
44
|
-
return;
|
|
45
44
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
else {
|
|
46
|
+
shutdown().catch((err) => {
|
|
47
|
+
logger.error(`Fatal: ${err}`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
50
51
|
};
|
|
51
52
|
const onSigterm = handleSignal;
|
|
52
53
|
const onSigint = handleSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GracefulShutdown.js","sourceRoot":"","sources":["../src/GracefulShutdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAA;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;IACpE,IAAI,kBAAkB,GAAG,KAAK,CAAA;IAE9B,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,kBAAkB;YAAE,OAAM;QAC9B,kBAAkB,GAAG,IAAI,CAAA;QAEzB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAE7C,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,aAAwD,CAAA;QAE5D,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtD,QAAQ,GAAG,IAAI,CAAA;YACf,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrF,CAAC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,QAAQ,GAAG,IAAI,CAAA;gBACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,wBAAwB,CAAC,CAAA;gBAC7E,OAAO,EAAE,CAAA;YACX,CAAC,EAAE,YAAY,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;QAClD,IAAI,aAAa;YAAE,YAAY,CAAC,aAAa,CAAC,CAAA;QAE9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAChC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,kBAAkB,EAAE,CAAC;YACvB,uDAAuD;YACvD,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"GracefulShutdown.js","sourceRoot":"","sources":["../src/GracefulShutdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAA;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;IACpE,IAAI,kBAAkB,GAAG,KAAK,CAAA;IAE9B,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,kBAAkB;YAAE,OAAM;QAC9B,kBAAkB,GAAG,IAAI,CAAA;QAEzB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QAE7C,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,aAAwD,CAAA;QAE5D,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtD,QAAQ,GAAG,IAAI,CAAA;YACf,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrF,CAAC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,QAAQ,GAAG,IAAI,CAAA;gBACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,wBAAwB,CAAC,CAAA;gBAC7E,OAAO,EAAE,CAAA;YACX,CAAC,EAAE,YAAY,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;QAClD,IAAI,aAAa;YAAE,YAAY,CAAC,aAAa,CAAC,CAAA;QAE9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAChC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,kBAAkB,EAAE,CAAC;YACvB,uDAAuD;YACvD,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,YAAY,CAAA;IAC9B,MAAM,QAAQ,GAAG,YAAY,CAAA;IAE7B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE9B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACvC,CAAC"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The top-level mime types IANA registers.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Closed on purpose. Typing {@link MultipartFile.type} as a bare `string` let
|
|
5
|
+
* `file.type === 'image/png'` compile and quietly never match — a mime filter
|
|
6
|
+
* that passes everything, which is the shape a comment used to warn about and
|
|
7
|
+
* a compiler can simply refuse. Against this union that comparison is an
|
|
8
|
+
* error, and {@link MultipartFile.mime} is what a full-mime check wants.
|
|
9
|
+
*
|
|
10
|
+
* A top-level type outside this list is malformed: an unregistered format
|
|
11
|
+
* belongs under one of these trees, `application/x-…` rather than `x-foo/bar`.
|
|
12
|
+
*
|
|
13
|
+
* Additive, not a replacement: {@link MultipartFile.type} keeps upstream's
|
|
14
|
+
* `string` and its raw segment, and {@link MultipartFile.registeredType}
|
|
15
|
+
* narrows it here for callers who want `=== 'image/png'` refused at compile
|
|
16
|
+
* time. Nothing a valid AdonisJS call site does stops compiling, and no type
|
|
17
|
+
* outside this set is swallowed — closing `type` itself would have done both.
|
|
7
18
|
*/
|
|
19
|
+
export type MimeType = 'application' | 'audio' | 'example' | 'font' | 'image' | 'message' | 'model' | 'multipart' | 'text' | 'video';
|
|
8
20
|
import { Readable } from 'node:stream';
|
|
9
21
|
export interface FileValidationOptions {
|
|
10
22
|
size?: string;
|
|
@@ -24,11 +36,25 @@ export declare class MultipartFile {
|
|
|
24
36
|
* `image/png` would otherwise sail through a mime allowlist. A renamed file
|
|
25
37
|
* reports what it actually is.
|
|
26
38
|
*
|
|
27
|
-
* BREAKING as of 0.2.0: it used to hold the whole `image/png`.
|
|
28
|
-
*
|
|
29
|
-
*
|
|
39
|
+
* BREAKING as of 0.2.0: it used to hold the whole `image/png`. A comparison
|
|
40
|
+
* against a full mime — `file.type === 'image/png'` — compiles and never
|
|
41
|
+
* matches, which is what {@link mime} exists for, and what
|
|
42
|
+
* {@link registeredType} refuses at compile time for callers who want that.
|
|
43
|
+
*
|
|
44
|
+
* `string` and the raw segment, as upstream: a type outside the registered
|
|
45
|
+
* set is still reported rather than swallowed.
|
|
30
46
|
*/
|
|
31
47
|
get type(): string | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* The same primary type, narrowed to what IANA registers.
|
|
50
|
+
*
|
|
51
|
+
* Additive, and the point of it: against a closed union
|
|
52
|
+
* `file.registeredType === 'image/png'` is a compile error instead of a
|
|
53
|
+
* comparison that always fails. `undefined` where {@link type} holds
|
|
54
|
+
* something outside the set — a malformed or unregistered tree — so the two
|
|
55
|
+
* disagree exactly there and nowhere else.
|
|
56
|
+
*/
|
|
57
|
+
get registeredType(): MimeType | undefined;
|
|
32
58
|
/** The mime SUBTYPE — `png` for `image/png`. Same source as {@link type}. */
|
|
33
59
|
get subtype(): string | undefined;
|
|
34
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultipartFile.d.ts","sourceRoot":"","sources":["../../src/bodyparser/MultipartFile.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MultipartFile.d.ts","sourceRoot":"","sources":["../../src/bodyparser/MultipartFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
const MIME_TYPES = new Set([
|
|
2
|
+
'application',
|
|
3
|
+
'audio',
|
|
4
|
+
'example',
|
|
5
|
+
'font',
|
|
6
|
+
'image',
|
|
7
|
+
'message',
|
|
8
|
+
'model',
|
|
9
|
+
'multipart',
|
|
10
|
+
'text',
|
|
11
|
+
'video',
|
|
12
|
+
]);
|
|
13
|
+
/** Whether a parsed top-level type is one IANA registers. */
|
|
14
|
+
function isMimeType(value) {
|
|
15
|
+
return MIME_TYPES.has(value);
|
|
16
|
+
}
|
|
1
17
|
/**
|
|
2
18
|
* MultipartFile — represents an uploaded file.
|
|
3
19
|
*
|
|
@@ -20,13 +36,30 @@ export class MultipartFile {
|
|
|
20
36
|
* `image/png` would otherwise sail through a mime allowlist. A renamed file
|
|
21
37
|
* reports what it actually is.
|
|
22
38
|
*
|
|
23
|
-
* BREAKING as of 0.2.0: it used to hold the whole `image/png`.
|
|
24
|
-
*
|
|
25
|
-
*
|
|
39
|
+
* BREAKING as of 0.2.0: it used to hold the whole `image/png`. A comparison
|
|
40
|
+
* against a full mime — `file.type === 'image/png'` — compiles and never
|
|
41
|
+
* matches, which is what {@link mime} exists for, and what
|
|
42
|
+
* {@link registeredType} refuses at compile time for callers who want that.
|
|
43
|
+
*
|
|
44
|
+
* `string` and the raw segment, as upstream: a type outside the registered
|
|
45
|
+
* set is still reported rather than swallowed.
|
|
26
46
|
*/
|
|
27
47
|
get type() {
|
|
28
48
|
return this.#mimeParts()[0];
|
|
29
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* The same primary type, narrowed to what IANA registers.
|
|
52
|
+
*
|
|
53
|
+
* Additive, and the point of it: against a closed union
|
|
54
|
+
* `file.registeredType === 'image/png'` is a compile error instead of a
|
|
55
|
+
* comparison that always fails. `undefined` where {@link type} holds
|
|
56
|
+
* something outside the set — a malformed or unregistered tree — so the two
|
|
57
|
+
* disagree exactly there and nowhere else.
|
|
58
|
+
*/
|
|
59
|
+
get registeredType() {
|
|
60
|
+
const type = this.#mimeParts()[0];
|
|
61
|
+
return type !== undefined && isMimeType(type) ? type : undefined;
|
|
62
|
+
}
|
|
30
63
|
/** The mime SUBTYPE — `png` for `image/png`. Same source as {@link type}. */
|
|
31
64
|
get subtype() {
|
|
32
65
|
return this.#mimeParts()[1];
|
|
@@ -248,21 +281,33 @@ export class MultipartFile {
|
|
|
248
281
|
* passing `file.clientName` straight through.
|
|
249
282
|
*/
|
|
250
283
|
async move(location, options) {
|
|
251
|
-
const { mkdir, writeFile
|
|
284
|
+
const { mkdir, writeFile } = await import('node:fs/promises');
|
|
252
285
|
const { join } = await import('node:path');
|
|
253
286
|
const name = options?.name ?? `${randomBytes(16).toString('hex')}.${this.extname || 'unknown'}`;
|
|
254
287
|
if (!isSafeFilename(name)) {
|
|
255
288
|
throw new Error(`MultipartFile.move: 'name' must be a plain filename (no path separators, '.', or '..'). Got: ${JSON.stringify(name)}`);
|
|
256
289
|
}
|
|
257
290
|
const filePath = join(location, name);
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
291
|
+
await mkdir(location, { recursive: true });
|
|
292
|
+
// NAMED DEVIATION — the refusal is ATOMIC where upstream's is not.
|
|
293
|
+
//
|
|
294
|
+
// Upstream checks `pathExists` and then renames, so two uploads landing on
|
|
295
|
+
// the same name both see nothing and both succeed: the second silently
|
|
296
|
+
// replaces the first, which is the one thing `overwrite: false` exists to
|
|
297
|
+
// prevent. `wx` is O_EXCL — the kernel decides, and exactly one of the two
|
|
298
|
+
// writes wins.
|
|
299
|
+
//
|
|
300
|
+
// The message is upstream's, word for word: a caller matching on it keeps
|
|
301
|
+
// working, and only the race is gone.
|
|
302
|
+
try {
|
|
303
|
+
await writeFile(filePath, this.content, options?.overwrite === false ? { flag: 'wx' } : {});
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
if (error.code === 'EEXIST') {
|
|
261
307
|
throw new Error(`"${name}" already exists at "${location}". Set "overwrite = true" to overwrite it`);
|
|
262
308
|
}
|
|
309
|
+
throw error;
|
|
263
310
|
}
|
|
264
|
-
await mkdir(location, { recursive: true });
|
|
265
|
-
await writeFile(filePath, this.content);
|
|
266
311
|
this.markAsMoved(name, filePath);
|
|
267
312
|
}
|
|
268
313
|
/** Record that the file now lives on disk. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultipartFile.js","sourceRoot":"","sources":["../../src/bodyparser/MultipartFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultipartFile.js","sourceRoot":"","sources":["../../src/bodyparser/MultipartFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,15 +109,31 @@ export declare class Container {
|
|
|
109
109
|
* Reuses an open chain rather than starting a second one, so cycle detection
|
|
110
110
|
* still spans the whole resolution when a resolver is used inside a factory.
|
|
111
111
|
*/
|
|
112
|
-
runWithScopedValues<T>(values: ReadonlyMap<
|
|
113
|
-
/** @internal
|
|
114
|
-
keyFor(token: ServiceToken):
|
|
112
|
+
runWithScopedValues<T>(values: ReadonlyMap<ServiceToken, unknown>, fn: () => Promise<T>): Promise<T>;
|
|
113
|
+
/** @internal Validate a token and hand back the value the container keys on. */
|
|
114
|
+
keyFor(token: ServiceToken): ServiceToken;
|
|
115
115
|
/**
|
|
116
116
|
* Resolve `token` as if `parent` had asked for it, so `parent`'s contextual
|
|
117
117
|
* bindings apply (AdonisJS `resolveFor`). `parent: null` means nobody asked —
|
|
118
118
|
* identical to {@link make}.
|
|
119
119
|
*/
|
|
120
120
|
resolveFor<T>(parent: (new (...args: never[]) => unknown) | null, token: ServiceToken, runtimeValues?: unknown[]): Promise<T>;
|
|
121
|
+
/**
|
|
122
|
+
* Every token the container holds, sorted, with the kind beside it.
|
|
123
|
+
*
|
|
124
|
+
* `ream inspect` advertised a section for these and rendered none, because
|
|
125
|
+
* nothing could enumerate them — `has()` answers about one token you already
|
|
126
|
+
* know the name of, which is no help when the question is what is in there.
|
|
127
|
+
*
|
|
128
|
+
* These are bindings, not every `@inject()`-decorated class: a decorated
|
|
129
|
+
* class is discovered when it is resolved, and nothing registers it before
|
|
130
|
+
* that, so no complete list of those exists to return.
|
|
131
|
+
*/
|
|
132
|
+
get bindings(): ReadonlyArray<{
|
|
133
|
+
token: string;
|
|
134
|
+
scope: string;
|
|
135
|
+
target?: string;
|
|
136
|
+
}>;
|
|
121
137
|
/** Check if a token is registered or resolvable. */
|
|
122
138
|
has(token: ServiceToken): boolean;
|
|
123
139
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,kBAAkB,CAAA;AAUzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,KAAK,EAAW,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AA+CvE,qBAAa,SAAS;;IAwCpB,kEAAkE;IAClE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAKjE,+DAA+D;IAC/D,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAK5D,uCAAuC;IACvC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAMjD;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EACzC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,cAAc,GACtB,IAAI;IAMP;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAAG,yBAAyB;IAI1E;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAItD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAcxF;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IASxD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhD,+DAA+D;IAC/D,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAUnC;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI;IAqBzC;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAInE;;;;;OAKG;IACG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAqD5E;;;;OAIG;IACG,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EACtC,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,CAAC,EACT,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,OAAO,CAAC,OAAO,CAAC;IAwDnB;;;;;;;OAOG;IACH,cAAc,IAAI,iBAAiB;IAInC;;;;;OAKG;IACH,mBAAmB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -211,7 +211,7 @@ export class Container {
|
|
|
211
211
|
resolvedToken = target;
|
|
212
212
|
key = this.#tokenToKey(target);
|
|
213
213
|
if (seenAliases.has(key)) {
|
|
214
|
-
const cycle = [...seenAliases, key].join(' → ');
|
|
214
|
+
const cycle = [...seenAliases, key].map(describeToken).join(' → ');
|
|
215
215
|
throw new ReamError('E_CIRCULAR_DEPENDENCY', `Circular alias detected: ${cycle}`, {
|
|
216
216
|
hint: 'An alias chain must end at a real binding — remove one of the aliases.',
|
|
217
217
|
context: { chain: cycle },
|
|
@@ -227,7 +227,7 @@ export class Container {
|
|
|
227
227
|
return this.#chain.run({ stack: [], set: new Set() }, () => this.resolve(token, runtimeValues));
|
|
228
228
|
}
|
|
229
229
|
if (chain.set.has(key)) {
|
|
230
|
-
const cycle = [...chain.stack, key].join(' → ');
|
|
230
|
+
const cycle = [...chain.stack, key].map(describeToken).join(' → ');
|
|
231
231
|
throw new ReamError('E_CIRCULAR_DEPENDENCY', `Circular dependency detected: ${cycle}`, {
|
|
232
232
|
hint: 'Break the cycle by resolving one dependency lazily inside a method (`await container.make(Dep)`) instead of injecting it in the constructor.',
|
|
233
233
|
context: { chain: cycle },
|
|
@@ -317,7 +317,7 @@ export class Container {
|
|
|
317
317
|
const chain = this.#chain.getStore();
|
|
318
318
|
return this.#chain.run(chain === undefined ? { stack: [], set: new Set(), values } : { ...chain, values }, fn);
|
|
319
319
|
}
|
|
320
|
-
/** @internal
|
|
320
|
+
/** @internal Validate a token and hand back the value the container keys on. */
|
|
321
321
|
keyFor(token) {
|
|
322
322
|
return this.#tokenToKey(token);
|
|
323
323
|
}
|
|
@@ -333,6 +333,42 @@ export class Container {
|
|
|
333
333
|
return this.#chain.run(chain === undefined ? { stack: [], set: new Set(), parent } : { ...chain, parent }, () => this.make(token, runtimeValues));
|
|
334
334
|
}
|
|
335
335
|
// ─── Introspection ────────────────────────────────────────
|
|
336
|
+
/**
|
|
337
|
+
* Every token the container holds, sorted, with the kind beside it.
|
|
338
|
+
*
|
|
339
|
+
* `ream inspect` advertised a section for these and rendered none, because
|
|
340
|
+
* nothing could enumerate them — `has()` answers about one token you already
|
|
341
|
+
* know the name of, which is no help when the question is what is in there.
|
|
342
|
+
*
|
|
343
|
+
* These are bindings, not every `@inject()`-decorated class: a decorated
|
|
344
|
+
* class is discovered when it is resolved, and nothing registers it before
|
|
345
|
+
* that, so no complete list of those exists to return.
|
|
346
|
+
*/
|
|
347
|
+
get bindings() {
|
|
348
|
+
const seen = new Map();
|
|
349
|
+
for (const [key, binding] of this.#bindings)
|
|
350
|
+
seen.set(key, { scope: binding.scope });
|
|
351
|
+
for (const key of this.#singletons.keys()) {
|
|
352
|
+
if (!seen.has(key))
|
|
353
|
+
seen.set(key, { scope: 'value' });
|
|
354
|
+
}
|
|
355
|
+
// Aliases LAST and overwriting, because that is the order `resolve()` uses:
|
|
356
|
+
// it follows an alias before it ever looks at a binding. Reporting the
|
|
357
|
+
// binding for a token that also has an alias showed a definition nobody
|
|
358
|
+
// gets — `service` listed as transient while resolving it hands back
|
|
359
|
+
// `target`. Where both exist the alias is what runs, and the binding it
|
|
360
|
+
// shadows is named beside it rather than dropped.
|
|
361
|
+
for (const [key, target] of this.#aliases) {
|
|
362
|
+
const shadowed = seen.get(key);
|
|
363
|
+
seen.set(key, {
|
|
364
|
+
scope: shadowed === undefined ? 'alias' : `alias (shadows ${shadowed.scope})`,
|
|
365
|
+
target: describeToken(target),
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
return [...seen.entries()]
|
|
369
|
+
.map(([token, entry]) => ({ token: describeToken(token), ...entry }))
|
|
370
|
+
.sort((a, b) => a.token.localeCompare(b.token));
|
|
371
|
+
}
|
|
336
372
|
/** Check if a token is registered or resolvable. */
|
|
337
373
|
has(token) {
|
|
338
374
|
const key = this.#tokenToKey(token);
|
|
@@ -365,7 +401,7 @@ export class Container {
|
|
|
365
401
|
/** Auto-register all @Service() decorated classes from the global registry. */
|
|
366
402
|
autoRegister() {
|
|
367
403
|
for (const [target, metadata] of getServiceRegistry()) {
|
|
368
|
-
const key = metadata.as ?? target
|
|
404
|
+
const key = metadata.as ?? target;
|
|
369
405
|
if (!this.#bindings.has(key)) {
|
|
370
406
|
const targetClass = target;
|
|
371
407
|
this.#bindings.set(key, {
|
|
@@ -446,9 +482,10 @@ export class Container {
|
|
|
446
482
|
return instance;
|
|
447
483
|
}
|
|
448
484
|
// 7. Not found
|
|
449
|
-
const
|
|
450
|
-
const
|
|
451
|
-
|
|
485
|
+
const name = describeToken(key);
|
|
486
|
+
const allKeys = [...this.#bindings.keys(), ...this.#overrides.keys()].map(describeToken);
|
|
487
|
+
const suggestion = didYouMean(name, allKeys);
|
|
488
|
+
throw new ReamError('E_CONTAINER_NOT_FOUND', `No binding found for '${name}'.${suggestion ? ` ${suggestion}` : ''}`, {
|
|
452
489
|
hint: 'Register it with container.singleton() or decorate with @inject().',
|
|
453
490
|
});
|
|
454
491
|
}
|
|
@@ -479,7 +516,9 @@ export class Container {
|
|
|
479
516
|
async #constructWithDeps(target, runtimeValues) {
|
|
480
517
|
const metadata = getServiceMetadata(target);
|
|
481
518
|
const scope = metadata?.scope ?? 'transient';
|
|
482
|
-
|
|
519
|
+
// The class itself, not `target.name`: two classes called `Service` share a
|
|
520
|
+
// name and must not share a singleton cache entry.
|
|
521
|
+
const key = metadata?.as ?? target;
|
|
483
522
|
if (scope === 'singleton' && this.#singletons.has(key)) {
|
|
484
523
|
return this.#singletons.get(key);
|
|
485
524
|
}
|
|
@@ -576,32 +615,33 @@ export class Container {
|
|
|
576
615
|
return;
|
|
577
616
|
this.#singletons.set(key, instance);
|
|
578
617
|
}
|
|
618
|
+
/**
|
|
619
|
+
* Validate a token and hand back the value every map keys on: the token.
|
|
620
|
+
*
|
|
621
|
+
* Fold's stores are `Map<string | symbol | AbstractConstructor, …>`, so a
|
|
622
|
+
* token IS its own key and identity is preserved. Deriving a string key
|
|
623
|
+
* instead cost exactly what identity buys: `Symbol.for('cache')` became
|
|
624
|
+
* `"Symbol(cache)"` and collided with the plain string `"Symbol(cache)"`,
|
|
625
|
+
* and a unique `Symbol()` had to be refused because its description is all a
|
|
626
|
+
* string key can carry. Both go away when the token is the key.
|
|
627
|
+
*/
|
|
579
628
|
#tokenToKey(token) {
|
|
580
|
-
if (typeof token === 'string')
|
|
581
|
-
this.#assertNotReserved(token
|
|
582
|
-
|
|
583
|
-
}
|
|
584
|
-
if (typeof token === 'symbol') {
|
|
585
|
-
// Reject unique `Symbol(x)` — two `Symbol("foo")` calls create distinct
|
|
586
|
-
// symbols, so an override registered with one would be invisible to a
|
|
587
|
-
// resolver holding the other. Force callers onto `Symbol.for(x)` which
|
|
588
|
-
// is the global registry and round-trips across modules.
|
|
589
|
-
if (Symbol.keyFor(token) === undefined) {
|
|
590
|
-
throw new ReamError('E_CONTAINER_INVALID_TOKEN', `Unique Symbol() tokens are not supported — use Symbol.for("${token.description ?? 'name'}") so different modules see the same symbol.`);
|
|
591
|
-
}
|
|
592
|
-
const desc = token.description;
|
|
593
|
-
if (desc === undefined) {
|
|
594
|
-
throw new ReamError('E_CONTAINER_INVALID_TOKEN', 'Symbol tokens must have a description.');
|
|
595
|
-
}
|
|
596
|
-
this.#assertNotReserved(desc, 'symbol description');
|
|
597
|
-
return `Symbol(${desc})`;
|
|
598
|
-
}
|
|
599
|
-
return token.name;
|
|
629
|
+
if (typeof token === 'string')
|
|
630
|
+
this.#assertNotReserved(token);
|
|
631
|
+
return token;
|
|
600
632
|
}
|
|
601
|
-
|
|
633
|
+
/**
|
|
634
|
+
* NAMED DEVIATION from Fold, kept deliberately.
|
|
635
|
+
*
|
|
636
|
+
* These three read as prototype keys, and a token named after one is far
|
|
637
|
+
* likelier to be a mistake than a deliberate binding. Nothing indexes tokens
|
|
638
|
+
* on a plain object any more — every store above is a `Map` — so this is a
|
|
639
|
+
* tripwire for a caller error, not a pollution guard.
|
|
640
|
+
*/
|
|
641
|
+
#assertNotReserved(name) {
|
|
602
642
|
if (RESERVED_TOKEN_NAMES.has(name)) {
|
|
603
643
|
throw new ReamError('E_CONTAINER_RESERVED_TOKEN', `Reserved container token name '${name}'.`, {
|
|
604
|
-
hint: `'${name}'
|
|
644
|
+
hint: `'${name}' reads as an Object.prototype key. Pick a different token name.`,
|
|
605
645
|
});
|
|
606
646
|
}
|
|
607
647
|
}
|
|
@@ -625,6 +665,19 @@ const NON_INJECTABLE_CONSTRUCTORS = new Set([
|
|
|
625
665
|
Promise,
|
|
626
666
|
Error,
|
|
627
667
|
]);
|
|
668
|
+
/**
|
|
669
|
+
* A token as it reads in an error message or in `ream inspect`.
|
|
670
|
+
*
|
|
671
|
+
* Display only — the container keys on the token itself, so two distinct
|
|
672
|
+
* classes that share a name are two bindings that happen to print alike.
|
|
673
|
+
*/
|
|
674
|
+
function describeToken(token) {
|
|
675
|
+
if (typeof token === 'string')
|
|
676
|
+
return token;
|
|
677
|
+
if (typeof token === 'symbol')
|
|
678
|
+
return token.toString();
|
|
679
|
+
return token.name === '' ? 'AnonymousClass' : token.name;
|
|
680
|
+
}
|
|
628
681
|
/** True for a real, injectable class token (excludes native primitive constructors). */
|
|
629
682
|
function isInjectableClass(value) {
|
|
630
683
|
return typeof value === 'function' && !NON_INJECTABLE_CONSTRUCTORS.has(value);
|