@c9up/ream 0.2.28 → 0.2.30
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/README.md +5 -6
- package/dist/Codemods.d.ts +24 -0
- package/dist/Codemods.d.ts.map +1 -1
- package/dist/Codemods.js +211 -1
- package/dist/Codemods.js.map +1 -1
- package/dist/HttpKernel.d.ts.map +1 -1
- package/dist/HttpKernel.js +17 -5
- package/dist/HttpKernel.js.map +1 -1
- package/dist/Ignitor.d.ts +15 -2
- package/dist/Ignitor.d.ts.map +1 -1
- package/dist/Ignitor.js +33 -23
- package/dist/Ignitor.js.map +1 -1
- package/dist/bodyparser/BodyParserMiddleware.d.ts +4 -4
- package/dist/bodyparser/BodyParserMiddleware.d.ts.map +1 -1
- package/dist/bodyparser/BodyParserMiddleware.js +41 -11
- package/dist/bodyparser/BodyParserMiddleware.js.map +1 -1
- package/dist/bodyparser/MultipartFile.d.ts +21 -15
- package/dist/bodyparser/MultipartFile.d.ts.map +1 -1
- package/dist/bodyparser/MultipartFile.js +40 -58
- package/dist/bodyparser/MultipartFile.js.map +1 -1
- package/dist/bodyparser/parseSize.d.ts +7 -4
- package/dist/bodyparser/parseSize.d.ts.map +1 -1
- package/dist/bodyparser/parseSize.js +12 -17
- package/dist/bodyparser/parseSize.js.map +1 -1
- package/dist/bodyparser/qsParse.d.ts +20 -1
- package/dist/bodyparser/qsParse.d.ts.map +1 -1
- package/dist/bodyparser/qsParse.js +78 -25
- package/dist/bodyparser/qsParse.js.map +1 -1
- package/dist/codemods/source.d.ts +57 -0
- package/dist/codemods/source.d.ts.map +1 -0
- package/dist/codemods/source.js +282 -0
- package/dist/codemods/source.js.map +1 -0
- package/dist/console/prompts.d.ts.map +1 -1
- package/dist/console/prompts.js +3 -1
- package/dist/console/prompts.js.map +1 -1
- package/dist/container/Container.d.ts.map +1 -1
- package/dist/container/Container.js +61 -71
- package/dist/container/Container.js.map +1 -1
- package/dist/events/Emitter.d.ts +12 -0
- package/dist/events/Emitter.d.ts.map +1 -1
- package/dist/events/Emitter.js +36 -9
- package/dist/events/Emitter.js.map +1 -1
- package/dist/events/helix/helpers.d.ts.map +1 -1
- package/dist/events/helix/helpers.js +19 -9
- package/dist/events/helix/helpers.js.map +1 -1
- package/dist/graphql/GraphQLEngine.d.ts +8 -0
- package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
- package/dist/graphql/GraphQLEngine.js +79 -12
- package/dist/graphql/GraphQLEngine.js.map +1 -1
- package/dist/helpers/MessageBuilder.d.ts +4 -2
- package/dist/helpers/MessageBuilder.d.ts.map +1 -1
- package/dist/helpers/MessageBuilder.js +4 -2
- package/dist/helpers/MessageBuilder.js.map +1 -1
- package/dist/helpers/errors.d.ts +11 -0
- package/dist/helpers/errors.d.ts.map +1 -0
- package/dist/helpers/errors.js +17 -0
- package/dist/helpers/errors.js.map +1 -0
- package/dist/helpers/napi-loader.d.ts.map +1 -1
- package/dist/helpers/napi-loader.js +3 -2
- package/dist/helpers/napi-loader.js.map +1 -1
- package/dist/http/Exception.d.ts +14 -1
- package/dist/http/Exception.d.ts.map +1 -1
- package/dist/http/Exception.js +10 -2
- package/dist/http/Exception.js.map +1 -1
- package/dist/http/HttpContext.d.ts +31 -2
- package/dist/http/HttpContext.d.ts.map +1 -1
- package/dist/http/HttpContext.js +12 -5
- package/dist/http/HttpContext.js.map +1 -1
- package/dist/http/RedirectBuilder.d.ts +9 -3
- package/dist/http/RedirectBuilder.d.ts.map +1 -1
- package/dist/http/RedirectBuilder.js +43 -37
- package/dist/http/RedirectBuilder.js.map +1 -1
- package/dist/http/Request.d.ts +42 -17
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +80 -58
- package/dist/http/Request.js.map +1 -1
- package/dist/http/Response.d.ts +7 -4
- package/dist/http/Response.d.ts.map +1 -1
- package/dist/http/Response.js +14 -6
- package/dist/http/Response.js.map +1 -1
- package/dist/http/SseStream.js +6 -7
- package/dist/http/SseStream.js.map +1 -1
- package/dist/http/permissions.d.ts +25 -0
- package/dist/http/permissions.d.ts.map +1 -0
- package/dist/http/permissions.js +38 -0
- package/dist/http/permissions.js.map +1 -0
- package/dist/http-client/HttpClient.d.ts +111 -0
- package/dist/http-client/HttpClient.d.ts.map +1 -0
- package/dist/http-client/HttpClient.js +386 -0
- package/dist/http-client/HttpClient.js.map +1 -0
- package/dist/http-client/addresses.d.ts +14 -0
- package/dist/http-client/addresses.d.ts.map +1 -0
- package/dist/http-client/addresses.js +57 -0
- package/dist/http-client/addresses.js.map +1 -0
- package/dist/http-client/fake.d.ts +50 -0
- package/dist/http-client/fake.d.ts.map +1 -0
- package/dist/http-client/fake.js +95 -0
- package/dist/http-client/fake.js.map +1 -0
- package/dist/http-client/index.d.ts +7 -0
- package/dist/http-client/index.d.ts.map +1 -0
- package/dist/http-client/index.js +7 -0
- package/dist/http-client/index.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/Pipeline.d.ts.map +1 -1
- package/dist/middleware/Pipeline.js +6 -3
- package/dist/middleware/Pipeline.js.map +1 -1
- package/dist/native/generated.d.ts +93 -36
- package/dist/native/generated.d.ts.map +1 -1
- package/dist/profiler/Profiler.d.ts.map +1 -1
- package/dist/profiler/Profiler.js +4 -1
- package/dist/profiler/Profiler.js.map +1 -1
- package/dist/profiler/client.generated.d.ts +5 -0
- package/dist/profiler/client.generated.d.ts.map +1 -0
- package/dist/profiler/client.generated.js +6 -0
- package/dist/profiler/client.generated.js.map +1 -0
- package/dist/profiler/collectors.d.ts +92 -13
- package/dist/profiler/collectors.d.ts.map +1 -1
- package/dist/profiler/collectors.js +106 -19
- package/dist/profiler/collectors.js.map +1 -1
- package/dist/profiler/endpoint.d.ts +2 -1
- package/dist/profiler/endpoint.d.ts.map +1 -1
- package/dist/profiler/endpoint.js +25 -1
- package/dist/profiler/endpoint.js.map +1 -1
- package/dist/profiler/index.d.ts +8 -4
- package/dist/profiler/index.d.ts.map +1 -1
- package/dist/profiler/index.js +11 -4
- package/dist/profiler/index.js.map +1 -1
- package/dist/profiler/middleware.d.ts.map +1 -1
- package/dist/profiler/middleware.js +76 -10
- package/dist/profiler/middleware.js.map +1 -1
- package/dist/profiler/preview.d.ts +17 -0
- package/dist/profiler/preview.d.ts.map +1 -0
- package/dist/profiler/preview.js +100 -0
- package/dist/profiler/preview.js.map +1 -0
- package/dist/profiler/toolbar.d.ts +15 -23
- package/dist/profiler/toolbar.d.ts.map +1 -1
- package/dist/profiler/toolbar.js +25 -91
- package/dist/profiler/toolbar.js.map +1 -1
- package/dist/profiler/types.d.ts +6 -1
- package/dist/profiler/types.d.ts.map +1 -1
- package/dist/router/Router.d.ts +6 -0
- package/dist/router/Router.d.ts.map +1 -1
- package/dist/router/Router.js +115 -12
- package/dist/router/Router.js.map +1 -1
- package/dist/rpc/RpcProvider.d.ts +6 -0
- package/dist/rpc/RpcProvider.d.ts.map +1 -1
- package/dist/rpc/RpcProvider.js +4 -1
- package/dist/rpc/RpcProvider.js.map +1 -1
- package/dist/rpc/RpcRouter.d.ts +27 -14
- package/dist/rpc/RpcRouter.d.ts.map +1 -1
- package/dist/rpc/RpcRouter.js +97 -40
- package/dist/rpc/RpcRouter.js.map +1 -1
- package/dist/scheduler/Scheduler.js +1 -1
- package/dist/scheduler/Scheduler.js.map +1 -1
- package/dist/scheduler/locks/RedisLockBackend.d.ts.map +1 -1
- package/dist/scheduler/locks/RedisLockBackend.js +13 -2
- package/dist/scheduler/locks/RedisLockBackend.js.map +1 -1
- package/dist/security/CookieSigner.d.ts.map +1 -1
- package/dist/security/CookieSigner.js +32 -8
- package/dist/security/CookieSigner.js.map +1 -1
- package/dist/security/SignedUrl.d.ts.map +1 -1
- package/dist/security/SignedUrl.js +16 -19
- package/dist/security/SignedUrl.js.map +1 -1
- package/dist/server/Server.d.ts +44 -12
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/Server.js +31 -10
- package/dist/server/Server.js.map +1 -1
- package/dist/server/nativeGrpc.d.ts +27 -0
- package/dist/server/nativeGrpc.d.ts.map +1 -0
- package/dist/server/nativeGrpc.js +47 -0
- package/dist/server/nativeGrpc.js.map +1 -0
- package/dist/server/nativeLimits.d.ts +57 -0
- package/dist/server/nativeLimits.d.ts.map +1 -0
- package/dist/server/nativeLimits.js +75 -0
- package/dist/server/nativeLimits.js.map +1 -0
- package/dist/session/Session.d.ts +12 -0
- package/dist/session/Session.d.ts.map +1 -1
- package/dist/session/Session.js +13 -4
- package/dist/session/Session.js.map +1 -1
- package/dist/session/SessionMiddleware.d.ts.map +1 -1
- package/dist/session/SessionMiddleware.js +28 -9
- package/dist/session/SessionMiddleware.js.map +1 -1
- package/dist/session/config.d.ts +5 -0
- package/dist/session/config.d.ts.map +1 -1
- package/dist/session/config.js +8 -0
- package/dist/session/config.js.map +1 -1
- package/dist/session/drivers/MemoryDriver.d.ts.map +1 -1
- package/dist/session/drivers/MemoryDriver.js +26 -7
- package/dist/session/drivers/MemoryDriver.js.map +1 -1
- package/dist/session/errors.d.ts +17 -0
- package/dist/session/errors.d.ts.map +1 -1
- package/dist/session/errors.js +21 -0
- package/dist/session/errors.js.map +1 -1
- package/dist/session/templateTags.d.ts +14 -0
- package/dist/session/templateTags.d.ts.map +1 -1
- package/dist/session/templateTags.js +45 -17
- package/dist/session/templateTags.js.map +1 -1
- package/dist/storage/StaticMiddleware.d.ts.map +1 -1
- package/dist/storage/StaticMiddleware.js +49 -27
- package/dist/storage/StaticMiddleware.js.map +1 -1
- package/dist/testing/ApiResponse.d.ts.map +1 -1
- package/dist/testing/ApiResponse.js +7 -1
- package/dist/testing/ApiResponse.js.map +1 -1
- package/dist/testing/TestClient.d.ts.map +1 -1
- package/dist/testing/TestClient.js +16 -4
- package/dist/testing/TestClient.js.map +1 -1
- package/dist/utils/Macroable.d.ts +1 -1
- package/dist/utils/Macroable.js +2 -2
- package/dist/utils/Macroable.js.map +1 -1
- 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 +11 -3
- 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/Codemods.ts +314 -3
- package/src/HttpKernel.ts +18 -7
- package/src/Ignitor.ts +58 -26
- package/src/bodyparser/BodyParserMiddleware.ts +45 -16
- package/src/bodyparser/MultipartFile.ts +46 -67
- package/src/bodyparser/parseSize.ts +17 -17
- package/src/bodyparser/qsParse.ts +96 -26
- package/src/codemods/source.ts +303 -0
- package/src/console/prompts.ts +3 -1
- package/src/container/Container.ts +97 -81
- package/src/events/Emitter.ts +37 -10
- package/src/events/helix/helpers.ts +24 -19
- package/src/graphql/GraphQLEngine.ts +91 -14
- package/src/helpers/MessageBuilder.ts +4 -2
- package/src/helpers/errors.ts +16 -0
- package/src/helpers/napi-loader.ts +3 -2
- package/src/http/Exception.ts +17 -2
- package/src/http/HttpContext.ts +34 -5
- package/src/http/RedirectBuilder.ts +51 -37
- package/src/http/Request.ts +102 -58
- package/src/http/Response.ts +15 -7
- package/src/http/SseStream.ts +6 -7
- package/src/http/permissions.ts +47 -0
- package/src/http-client/HttpClient.ts +505 -0
- package/src/http-client/addresses.ts +58 -0
- package/src/http-client/fake.ts +141 -0
- package/src/http-client/index.ts +21 -0
- package/src/index.ts +6 -1
- package/src/middleware/Pipeline.ts +7 -3
- package/src/native/generated.ts +106 -48
- package/src/profiler/Profiler.ts +4 -1
- package/src/profiler/client/toolbar.css +595 -0
- package/src/profiler/client/toolbar.js +1299 -0
- package/src/profiler/client.generated.ts +7 -0
- package/src/profiler/collectors.ts +156 -19
- package/src/profiler/endpoint.ts +27 -1
- package/src/profiler/index.ts +17 -3
- package/src/profiler/middleware.ts +74 -9
- package/src/profiler/preview.ts +104 -0
- package/src/profiler/toolbar.ts +28 -91
- package/src/profiler/types.ts +6 -1
- package/src/router/Router.ts +136 -13
- package/src/rpc/RpcProvider.ts +10 -1
- package/src/rpc/RpcRouter.ts +129 -45
- package/src/scheduler/Scheduler.ts +1 -1
- package/src/scheduler/locks/RedisLockBackend.ts +12 -4
- package/src/security/CookieSigner.ts +30 -8
- package/src/security/SignedUrl.ts +18 -17
- package/src/server/Server.ts +60 -12
- package/src/server/nativeGrpc.ts +59 -0
- package/src/server/nativeLimits.ts +111 -0
- package/src/session/Session.ts +29 -4
- package/src/session/SessionMiddleware.ts +30 -10
- package/src/session/config.ts +7 -0
- package/src/session/drivers/MemoryDriver.ts +26 -7
- package/src/session/errors.ts +31 -0
- package/src/session/templateTags.ts +57 -0
- package/src/storage/StaticMiddleware.ts +46 -27
- package/src/testing/ApiResponse.ts +7 -1
- package/src/testing/TestClient.ts +14 -5
- package/src/utils/Macroable.ts +2 -2
- package/scripts/build-napi-types.mjs +0 -69
- package/scripts/copy-napi.mjs +0 -121
- package/scripts/generate-mime.mjs +0 -119
- package/scripts/generate-napi-types.mjs +0 -187
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Just enough of a TypeScript scanner for the configure codemods: find a
|
|
3
|
+
* call or an object/array literal in CODE (never inside a string, a template
|
|
4
|
+
* or a comment), split a literal into its top-level entries, and append to
|
|
5
|
+
* one. Upstream does this with a full AST; ream ships no compiler, and the
|
|
6
|
+
* files these codemods edit (`start/env.ts`, `reamrc.ts`) are object and
|
|
7
|
+
* array literals.
|
|
8
|
+
*
|
|
9
|
+
* Not handled: regular-expression literals (a quote inside one reads as the
|
|
10
|
+
* start of a string). Neither file has a reason to contain one.
|
|
11
|
+
*/
|
|
12
|
+
const CLOSERS = { '{': '}', '[': ']', '(': ')' };
|
|
13
|
+
function isIdentifierChar(char) {
|
|
14
|
+
return char !== undefined && /[A-Za-z0-9_$]/.test(char);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The index just past the string, template or comment starting at `i`, or
|
|
18
|
+
* `i` itself when none starts there. An unterminated one runs to the end.
|
|
19
|
+
*/
|
|
20
|
+
function skipNonCode(src, i) {
|
|
21
|
+
const char = src[i];
|
|
22
|
+
const next = src[i + 1];
|
|
23
|
+
if (char === '/' && next === '/') {
|
|
24
|
+
const end = src.indexOf('\n', i);
|
|
25
|
+
return end === -1 ? src.length : end;
|
|
26
|
+
}
|
|
27
|
+
if (char === '/' && next === '*') {
|
|
28
|
+
const end = src.indexOf('*/', i + 2);
|
|
29
|
+
return end === -1 ? src.length : end + 2;
|
|
30
|
+
}
|
|
31
|
+
if (char === "'" || char === '"') {
|
|
32
|
+
let j = i + 1;
|
|
33
|
+
while (j < src.length && src[j] !== char && src[j] !== '\n') {
|
|
34
|
+
j += src[j] === '\\' ? 2 : 1;
|
|
35
|
+
}
|
|
36
|
+
return j + 1;
|
|
37
|
+
}
|
|
38
|
+
if (char === '`') {
|
|
39
|
+
let j = i + 1;
|
|
40
|
+
while (j < src.length && src[j] !== '`') {
|
|
41
|
+
if (src[j] === '\\') {
|
|
42
|
+
j += 2;
|
|
43
|
+
}
|
|
44
|
+
else if (src[j] === '$' && src[j + 1] === '{') {
|
|
45
|
+
const close = matchClose(src, j + 1);
|
|
46
|
+
j = close === -1 ? src.length : close + 1;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
j += 1;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return j + 1;
|
|
53
|
+
}
|
|
54
|
+
return i;
|
|
55
|
+
}
|
|
56
|
+
/** Whether the string, template or block comment starting at `i` is closed. */
|
|
57
|
+
function isTerminated(src, i) {
|
|
58
|
+
const char = src[i];
|
|
59
|
+
if (char === '/')
|
|
60
|
+
return src.indexOf('*/', i + 2) !== -1;
|
|
61
|
+
const end = skipNonCode(src, i);
|
|
62
|
+
return end <= src.length && end - 1 > i && src[end - 1] === char;
|
|
63
|
+
}
|
|
64
|
+
/** Index of the bracket closing the one at `open`, or -1. */
|
|
65
|
+
export function matchClose(src, open) {
|
|
66
|
+
const first = CLOSERS[src[open] ?? ''];
|
|
67
|
+
if (first === undefined)
|
|
68
|
+
return -1;
|
|
69
|
+
const stack = [first];
|
|
70
|
+
let i = open + 1;
|
|
71
|
+
while (i < src.length) {
|
|
72
|
+
const skipped = skipNonCode(src, i);
|
|
73
|
+
if (skipped !== i) {
|
|
74
|
+
i = skipped;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const char = src[i] ?? '';
|
|
78
|
+
const closer = CLOSERS[char];
|
|
79
|
+
if (closer !== undefined) {
|
|
80
|
+
stack.push(closer);
|
|
81
|
+
}
|
|
82
|
+
else if (char === stack[stack.length - 1]) {
|
|
83
|
+
stack.pop();
|
|
84
|
+
if (stack.length === 0)
|
|
85
|
+
return i;
|
|
86
|
+
}
|
|
87
|
+
else if (char === '}' || char === ']' || char === ')') {
|
|
88
|
+
return -1;
|
|
89
|
+
}
|
|
90
|
+
i += 1;
|
|
91
|
+
}
|
|
92
|
+
return -1;
|
|
93
|
+
}
|
|
94
|
+
/** First code character at or after `i` (before `end`), skipping whitespace and comments. */
|
|
95
|
+
function firstCode(src, i, end) {
|
|
96
|
+
let j = i;
|
|
97
|
+
while (j < end) {
|
|
98
|
+
const char = src[j] ?? '';
|
|
99
|
+
if (/\s/.test(char)) {
|
|
100
|
+
j += 1;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (char === '/' && (src[j + 1] === '/' || src[j + 1] === '*')) {
|
|
104
|
+
j = skipNonCode(src, j);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
return j;
|
|
108
|
+
}
|
|
109
|
+
return end;
|
|
110
|
+
}
|
|
111
|
+
/** Split `src[start, end)` on its top-level commas. */
|
|
112
|
+
export function segments(src, start, end) {
|
|
113
|
+
const out = [];
|
|
114
|
+
let segmentStart = start;
|
|
115
|
+
let codeEnd = start;
|
|
116
|
+
let depth = 0;
|
|
117
|
+
let i = start;
|
|
118
|
+
const close = (at) => {
|
|
119
|
+
const codeStart = firstCode(src, segmentStart, at);
|
|
120
|
+
out.push({ start: segmentStart, end: at, codeStart, codeEnd: Math.max(codeEnd, codeStart) });
|
|
121
|
+
};
|
|
122
|
+
while (i < end) {
|
|
123
|
+
const char = src[i] ?? '';
|
|
124
|
+
if (char === '/' && (src[i + 1] === '/' || src[i + 1] === '*')) {
|
|
125
|
+
i = skipNonCode(src, i);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const skipped = skipNonCode(src, i);
|
|
129
|
+
if (skipped !== i) {
|
|
130
|
+
i = skipped;
|
|
131
|
+
codeEnd = i;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (char === ',' && depth === 0) {
|
|
135
|
+
close(i);
|
|
136
|
+
segmentStart = i + 1;
|
|
137
|
+
codeEnd = i + 1;
|
|
138
|
+
i += 1;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (CLOSERS[char] !== undefined)
|
|
142
|
+
depth += 1;
|
|
143
|
+
else if (char === '}' || char === ']' || char === ')')
|
|
144
|
+
depth -= 1;
|
|
145
|
+
if (!/\s/.test(char))
|
|
146
|
+
codeEnd = i + 1;
|
|
147
|
+
i += 1;
|
|
148
|
+
}
|
|
149
|
+
close(end);
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Whether `code` is one complete expression that cannot reach outside the
|
|
154
|
+
* slot it is written into: brackets balanced and never closing past where
|
|
155
|
+
* they opened, strings and comments terminated, no top-level comma.
|
|
156
|
+
*/
|
|
157
|
+
export function isSingleExpression(code) {
|
|
158
|
+
if (code.trim() === '')
|
|
159
|
+
return false;
|
|
160
|
+
let depth = 0;
|
|
161
|
+
let i = 0;
|
|
162
|
+
while (i < code.length) {
|
|
163
|
+
const skipped = skipNonCode(code, i);
|
|
164
|
+
if (skipped !== i) {
|
|
165
|
+
// A line comment would swallow the comma written after the value.
|
|
166
|
+
const lineComment = code[i] === '/' && code[i + 1] === '/';
|
|
167
|
+
if (lineComment || !isTerminated(code, i))
|
|
168
|
+
return false;
|
|
169
|
+
i = skipped;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
const char = code[i] ?? '';
|
|
173
|
+
if (CLOSERS[char] !== undefined)
|
|
174
|
+
depth += 1;
|
|
175
|
+
else if (char === '}' || char === ']' || char === ')') {
|
|
176
|
+
depth -= 1;
|
|
177
|
+
if (depth < 0)
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
else if (char === ',' && depth === 0)
|
|
181
|
+
return false;
|
|
182
|
+
i += 1;
|
|
183
|
+
}
|
|
184
|
+
return depth === 0;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Index of the `(` of the first call to `callee` in code, or -1. A mention
|
|
188
|
+
* inside a string or a comment, or as the tail of a longer name
|
|
189
|
+
* (`MyEnv.create`), does not count.
|
|
190
|
+
*/
|
|
191
|
+
export function findCall(src, callee) {
|
|
192
|
+
let i = 0;
|
|
193
|
+
while (i < src.length) {
|
|
194
|
+
const skipped = skipNonCode(src, i);
|
|
195
|
+
if (skipped !== i) {
|
|
196
|
+
i = skipped;
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const before = src[i - 1];
|
|
200
|
+
if (src.startsWith(callee, i) && !isIdentifierChar(before) && before !== '.') {
|
|
201
|
+
const paren = firstCode(src, i + callee.length, src.length);
|
|
202
|
+
if (src[paren] === '(')
|
|
203
|
+
return paren;
|
|
204
|
+
}
|
|
205
|
+
i += 1;
|
|
206
|
+
}
|
|
207
|
+
return -1;
|
|
208
|
+
}
|
|
209
|
+
/** Index of the `{` after the first `export default` in code, or -1. */
|
|
210
|
+
export function findExportDefaultObject(src) {
|
|
211
|
+
let i = 0;
|
|
212
|
+
while (i < src.length) {
|
|
213
|
+
const skipped = skipNonCode(src, i);
|
|
214
|
+
if (skipped !== i) {
|
|
215
|
+
i = skipped;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
if (src.startsWith('export', i) && !isIdentifierChar(src[i - 1])) {
|
|
219
|
+
const word = firstCode(src, i + 'export'.length, src.length);
|
|
220
|
+
if (src.startsWith('default', word) && !isIdentifierChar(src[word + 'default'.length])) {
|
|
221
|
+
const brace = firstCode(src, word + 'default'.length, src.length);
|
|
222
|
+
return src[brace] === '{' ? brace : -1;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
i += 1;
|
|
226
|
+
}
|
|
227
|
+
return -1;
|
|
228
|
+
}
|
|
229
|
+
/** The `key: value` entries of the object literal opening at `open`. */
|
|
230
|
+
export function properties(src, open, close) {
|
|
231
|
+
const out = [];
|
|
232
|
+
for (const segment of segments(src, open + 1, close)) {
|
|
233
|
+
if (segment.codeStart >= segment.end)
|
|
234
|
+
continue;
|
|
235
|
+
const text = src.slice(segment.codeStart, segment.end);
|
|
236
|
+
const match = /^(?:([A-Za-z_$][\w$]*)|'([^'\\\n]*)'|"([^"\\\n]*)")\s*:/.exec(text);
|
|
237
|
+
if (match === null)
|
|
238
|
+
continue;
|
|
239
|
+
const key = match[1] ?? match[2] ?? match[3] ?? '';
|
|
240
|
+
const valueStart = firstCode(src, segment.codeStart + match[0].length, segment.end);
|
|
241
|
+
out.push({ key, valueStart, valueEnd: segment.codeEnd });
|
|
242
|
+
}
|
|
243
|
+
return out;
|
|
244
|
+
}
|
|
245
|
+
/** Leading whitespace of the line holding `index`. */
|
|
246
|
+
function lineIndent(src, index) {
|
|
247
|
+
const lineStart = src.lastIndexOf('\n', index - 1) + 1;
|
|
248
|
+
return /^[ \t]*/.exec(src.slice(lineStart))?.[0] ?? '';
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Append entries to the literal `src[open..close]` and return the new text.
|
|
252
|
+
*
|
|
253
|
+
* `build` receives the indentation of the existing entries (or one level
|
|
254
|
+
* deeper than the closing bracket when there are none) and returns the lines
|
|
255
|
+
* to add, each already ending with its comma. `blankLine` separates the new
|
|
256
|
+
* entries from existing ones. A missing comma after the last existing entry
|
|
257
|
+
* is added.
|
|
258
|
+
*/
|
|
259
|
+
export function appendToLiteral(src, open, close, eol, build, blankLine = false) {
|
|
260
|
+
const all = segments(src, open + 1, close);
|
|
261
|
+
const entries = all.filter((s) => s.codeStart < s.end);
|
|
262
|
+
const first = entries[0];
|
|
263
|
+
const closeIndent = lineIndent(src, close);
|
|
264
|
+
const firstOnOwnLine = first !== undefined &&
|
|
265
|
+
/^[ \t]*$/.test(src.slice(src.lastIndexOf('\n', first.codeStart - 1) + 1, first.codeStart));
|
|
266
|
+
const indent = first !== undefined && firstOnOwnLine ? lineIndent(src, first.codeStart) : `${closeIndent} `;
|
|
267
|
+
const lines = build(indent);
|
|
268
|
+
const separator = blankLine && entries.length > 0 ? eol : '';
|
|
269
|
+
const closeLineStart = src.lastIndexOf('\n', close - 1) + 1;
|
|
270
|
+
const closeOnOwnLine = /^[ \t]*$/.test(src.slice(closeLineStart, close));
|
|
271
|
+
let out = closeOnOwnLine
|
|
272
|
+
? `${src.slice(0, closeLineStart)}${separator}${lines.join(eol)}${eol}${src.slice(closeLineStart)}`
|
|
273
|
+
: `${src.slice(0, close)}${eol}${separator}${lines.join(eol)}${eol}${closeIndent}${src.slice(close)}`;
|
|
274
|
+
// The comma goes in last, as it sits before every insertion point above.
|
|
275
|
+
// No comma after the last entry when it is also the last segment.
|
|
276
|
+
const last = entries[entries.length - 1];
|
|
277
|
+
if (last !== undefined && all[all.length - 1] === last) {
|
|
278
|
+
out = `${out.slice(0, last.codeEnd)},${out.slice(last.codeEnd)}`;
|
|
279
|
+
}
|
|
280
|
+
return out;
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/codemods/source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/console/prompts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/console/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAErF;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;IACzE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAA;IAC7E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAA;CACvC;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM;IACvC,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAA;IACrE,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAA;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;CACzB;AAED;;;;;GAKG;AACH,qBAAa,UAAU;;gBAGT,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAI7C,mDAAmD;IACnD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B,+CAA+C;IAC/C,MAAM,IAAI,IAAI;IAId,8CAA8C;IAC9C,MAAM,IAAI,IAAI;IAId,6DAA6D;IAC7D,YAAY,CAAC,KAAK,SAAI,GAAG,IAAI;IAI7B,qCAAqC;IACrC,aAAa,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;CAGhD;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO,CAC/C,SAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACzD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAA;CAC/B;AAOD,qBAAa,MAAM;;IAGjB;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAM9B,0EAA0E;IAC1E,IAAI,YAAY,IAAI,MAAM,EAAE,CAE3B;IAEK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE,8CAA8C;IACxC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1E,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK/E,8DAA8D;IACxD,MAAM,CACV,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,OAAO,CAAC;IACb,MAAM,CAAC,CAAC,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC7C,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAgDb,0CAA0C;IACpC,MAAM,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC;IAKnB,iDAAiD;IAC3C,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,GAAE,mBAAmB,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACrD,OAAO,CAAC,OAAO,CAAC;IA0OnB;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAyCnE"}
|
package/dist/console/prompts.js
CHANGED
|
@@ -335,7 +335,9 @@ export class Prompt {
|
|
|
335
335
|
if (masked)
|
|
336
336
|
stdout.write('\n');
|
|
337
337
|
rl.close();
|
|
338
|
-
|
|
338
|
+
// A secret is returned as typed: a password may begin or end with a
|
|
339
|
+
// space, and trimming it would store or compare a different one.
|
|
340
|
+
resolve(masked ? answer : answer.trim());
|
|
339
341
|
});
|
|
340
342
|
});
|
|
341
343
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/console/prompts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/console/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,10 @@ import { ContextualBindingsBuilder } from './ContextualBindingsBuilder.js';
|
|
|
21
21
|
* as a prototype-pollution vector.
|
|
22
22
|
*/
|
|
23
23
|
const RESERVED_TOKEN_NAMES = new Set(['__proto__', 'constructor', 'prototype']);
|
|
24
|
+
/** A chain with nothing in it yet. */
|
|
25
|
+
function openChain(extra = {}) {
|
|
26
|
+
return { stack: [], set: new Set(), scopedReads: { count: 0 }, ...extra };
|
|
27
|
+
}
|
|
24
28
|
export class Container {
|
|
25
29
|
#bindings = new Map();
|
|
26
30
|
#singletons = new Map();
|
|
@@ -244,7 +248,7 @@ export class Container {
|
|
|
244
248
|
// it and nothing outside it does.
|
|
245
249
|
const chain = this.#chain.getStore();
|
|
246
250
|
if (chain === undefined) {
|
|
247
|
-
return this.#chain.run(
|
|
251
|
+
return this.#chain.run(openChain(), () => this.resolve(token, runtimeValues));
|
|
248
252
|
}
|
|
249
253
|
if (chain.set.has(key)) {
|
|
250
254
|
const cycle = [...chain.stack, key].map(describeToken).join(' → ');
|
|
@@ -253,15 +257,14 @@ export class Container {
|
|
|
253
257
|
context: { chain: cycle },
|
|
254
258
|
});
|
|
255
259
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
}
|
|
260
|
+
// On a copy: see `ResolutionChain`. What this resolution triggers sees the
|
|
261
|
+
// key above it; a sibling running at the same time does not.
|
|
262
|
+
const own = {
|
|
263
|
+
...chain,
|
|
264
|
+
stack: [...chain.stack, key],
|
|
265
|
+
set: new Set(chain.set).add(key),
|
|
266
|
+
};
|
|
267
|
+
return this.#chain.run(own, () => this.#resolveInner(key, token, runtimeValues));
|
|
265
268
|
}
|
|
266
269
|
/**
|
|
267
270
|
* Call a method on an instance with dependency injection.
|
|
@@ -279,55 +282,50 @@ export class Container {
|
|
|
279
282
|
// its own with nobody in it.
|
|
280
283
|
const chain = this.#chain.getStore();
|
|
281
284
|
if (chain === undefined) {
|
|
282
|
-
return this.#chain.run({
|
|
283
|
-
}
|
|
284
|
-
const outerParent = chain.parent;
|
|
285
|
-
// Declared outside the try so the call below can still read it: only the
|
|
286
|
-
// RESOLUTION is guarded, because that is what can throw with the parent
|
|
287
|
-
// installed.
|
|
288
|
-
const args = [];
|
|
289
|
-
chain.parent = target;
|
|
290
|
-
try {
|
|
291
|
-
const paramTypes = Reflect.getMetadata('design:paramtypes', target.prototype, method) ?? [];
|
|
292
|
-
// `@Inject('token')` on a method parameter — a named binding the reflected
|
|
293
|
-
// type cannot express (an interface, or a class registered under a name).
|
|
294
|
-
const injectTokens = getMethodInjectTokens(target.prototype, method);
|
|
295
|
-
// `@Inject` counts towards the parameter span too: a method may carry named
|
|
296
|
-
// tokens without `design:paramtypes` being emitted for it, and computing the
|
|
297
|
-
// span from the reflected types alone left the loop at zero iterations —
|
|
298
|
-
// the tokens were read and then never used.
|
|
299
|
-
const injectSpan = injectTokens.size === 0 ? 0 : Math.max(...injectTokens.keys()) + 1;
|
|
300
|
-
const len = Math.max(paramTypes.length, runtimeValues?.length ?? 0, injectSpan);
|
|
301
|
-
// Sequential resolution keeps the shared cycle-detection stack consistent.
|
|
302
|
-
for (let index = 0; index < len; index += 1) {
|
|
303
|
-
// Runtime values take precedence (and fill slots beyond paramTypes).
|
|
304
|
-
if (runtimeValues && index < runtimeValues.length) {
|
|
305
|
-
args.push(runtimeValues[index]);
|
|
306
|
-
continue;
|
|
307
|
-
}
|
|
308
|
-
const named = injectTokens.get(index);
|
|
309
|
-
if (named !== undefined) {
|
|
310
|
-
args.push(await this.resolve(named));
|
|
311
|
-
continue;
|
|
312
|
-
}
|
|
313
|
-
const type = paramTypes[index];
|
|
314
|
-
args.push(isInjectableClass(type) ? await this.resolve(type) : undefined);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
finally {
|
|
318
|
-
// RESTORED whatever happened. Without the `finally`, a parameter that
|
|
319
|
-
// failed to resolve left the called class installed as the parent, so a
|
|
320
|
-
// caller that caught the error saw its contextual bindings applied to
|
|
321
|
-
// every later resolution — a binding meant for one handler leaking into
|
|
322
|
-
// the whole application.
|
|
323
|
-
chain.parent = outerParent;
|
|
285
|
+
return this.#chain.run(openChain({ parent: target }), () => this.call(instance, method, runtimeValues));
|
|
324
286
|
}
|
|
287
|
+
// The parameters are resolved with `target` as the parent, on a copy of
|
|
288
|
+
// the chain (see `ResolutionChain`), so nothing outside them sees it: not
|
|
289
|
+
// the caller once they are resolved, whatever happened, and not a task
|
|
290
|
+
// running beside them. The method itself runs on the caller's chain.
|
|
291
|
+
const args = await this.#chain.run({ ...chain, parent: target }, () => this.#methodArgs(target, method, runtimeValues));
|
|
325
292
|
const member = instance[method];
|
|
326
293
|
if (!isCallable(member)) {
|
|
327
294
|
throw new Error(`Container.call: '${method}' is not a callable method`);
|
|
328
295
|
}
|
|
329
296
|
return member.apply(instance, args);
|
|
330
297
|
}
|
|
298
|
+
/** The arguments `call()` passes to `target.prototype[method]`. */
|
|
299
|
+
async #methodArgs(target, method, runtimeValues) {
|
|
300
|
+
const args = [];
|
|
301
|
+
const paramTypes = Reflect.getMetadata('design:paramtypes', target.prototype, method) ?? [];
|
|
302
|
+
// `@Inject('token')` on a method parameter — a named binding the reflected
|
|
303
|
+
// type cannot express (an interface, or a class registered under a name).
|
|
304
|
+
const injectTokens = getMethodInjectTokens(target.prototype, method);
|
|
305
|
+
// `@Inject` counts towards the parameter span too: a method may carry named
|
|
306
|
+
// tokens without `design:paramtypes` being emitted for it, and computing the
|
|
307
|
+
// span from the reflected types alone left the loop at zero iterations —
|
|
308
|
+
// the tokens were read and then never used.
|
|
309
|
+
const injectSpan = injectTokens.size === 0 ? 0 : Math.max(...injectTokens.keys()) + 1;
|
|
310
|
+
const len = Math.max(paramTypes.length, runtimeValues?.length ?? 0, injectSpan);
|
|
311
|
+
// One at a time, in parameter order: a factory with side effects runs
|
|
312
|
+
// in the order the signature reads.
|
|
313
|
+
for (let index = 0; index < len; index += 1) {
|
|
314
|
+
// Runtime values take precedence (and fill slots beyond paramTypes).
|
|
315
|
+
if (runtimeValues && index < runtimeValues.length) {
|
|
316
|
+
args.push(runtimeValues[index]);
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
const named = injectTokens.get(index);
|
|
320
|
+
if (named !== undefined) {
|
|
321
|
+
args.push(await this.resolve(named));
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
const type = paramTypes[index];
|
|
325
|
+
args.push(isInjectableClass(type) ? await this.resolve(type) : undefined);
|
|
326
|
+
}
|
|
327
|
+
return args;
|
|
328
|
+
}
|
|
331
329
|
/**
|
|
332
330
|
* A resolver whose {@link ContainerResolver.bindValue} values are isolated
|
|
333
331
|
* from this container (AdonisJS `container.createResolver()`).
|
|
@@ -347,7 +345,7 @@ export class Container {
|
|
|
347
345
|
*/
|
|
348
346
|
runWithScopedValues(values, fn) {
|
|
349
347
|
const chain = this.#chain.getStore();
|
|
350
|
-
return this.#chain.run(chain === undefined ? {
|
|
348
|
+
return this.#chain.run(chain === undefined ? openChain({ values }) : { ...chain, values }, fn);
|
|
351
349
|
}
|
|
352
350
|
/** @internal Validate a token and hand back the value the container keys on. */
|
|
353
351
|
keyFor(token) {
|
|
@@ -362,7 +360,7 @@ export class Container {
|
|
|
362
360
|
if (parent === null)
|
|
363
361
|
return this.make(token, runtimeValues);
|
|
364
362
|
const chain = this.#chain.getStore();
|
|
365
|
-
return this.#chain.run(chain === undefined ? {
|
|
363
|
+
return this.#chain.run(chain === undefined ? openChain({ parent }) : { ...chain, parent }, () => this.make(token, runtimeValues));
|
|
366
364
|
}
|
|
367
365
|
// ─── Introspection ────────────────────────────────────────
|
|
368
366
|
/**
|
|
@@ -467,7 +465,7 @@ export class Container {
|
|
|
467
465
|
// resolves in (`resolveFor`: swaps, resolver values, container values).
|
|
468
466
|
// No `resolving` hooks: the value was not constructed here.
|
|
469
467
|
if (store?.values?.has(key)) {
|
|
470
|
-
store.scopedReads
|
|
468
|
+
store.scopedReads.count += 1;
|
|
471
469
|
return store.values.get(key);
|
|
472
470
|
}
|
|
473
471
|
// 4. Check cached singletons
|
|
@@ -495,7 +493,7 @@ export class Container {
|
|
|
495
493
|
if (this.#wasPublished(key, shared))
|
|
496
494
|
return shared;
|
|
497
495
|
}
|
|
498
|
-
const readsBefore = store?.scopedReads ?? 0;
|
|
496
|
+
const readsBefore = store?.scopedReads.count ?? 0;
|
|
499
497
|
const building = (async () => {
|
|
500
498
|
const instance = binding.factory ? await binding.factory(this) : undefined;
|
|
501
499
|
// Only cache while this is still the binding that started the build.
|
|
@@ -599,7 +597,7 @@ export class Container {
|
|
|
599
597
|
}
|
|
600
598
|
// Same rule as the explicit bindings: see `ResolutionChain.scopedReads`.
|
|
601
599
|
const store = this.#chain.getStore();
|
|
602
|
-
const readsBefore = store?.scopedReads ?? 0;
|
|
600
|
+
const readsBefore = store?.scopedReads.count ?? 0;
|
|
603
601
|
const building = (async () => {
|
|
604
602
|
const instance = await this.#autoConstruct(target, runtimeValues);
|
|
605
603
|
await this.#runResolvingHooks(key, instance);
|
|
@@ -619,19 +617,11 @@ export class Container {
|
|
|
619
617
|
}
|
|
620
618
|
async #autoConstruct(target, runtimeValues) {
|
|
621
619
|
// Everything resolved inside is a dependency OF `target`, which is what a
|
|
622
|
-
// contextual binding keys on.
|
|
623
|
-
//
|
|
624
|
-
|
|
625
|
-
const
|
|
626
|
-
|
|
627
|
-
store.parent = target;
|
|
628
|
-
try {
|
|
629
|
-
return await this.#constructWithDeps(target, runtimeValues);
|
|
630
|
-
}
|
|
631
|
-
finally {
|
|
632
|
-
if (store !== undefined)
|
|
633
|
-
store.parent = outerParent;
|
|
634
|
-
}
|
|
620
|
+
// contextual binding keys on. On a copy of the chain (see
|
|
621
|
+
// `ResolutionChain`): nothing to restore on any of the construction's
|
|
622
|
+
// exits, and a construction running beside this one keeps its own parent.
|
|
623
|
+
const store = this.#chain.getStore() ?? openChain();
|
|
624
|
+
return this.#chain.run({ ...store, parent: target }, () => this.#constructWithDeps(target, runtimeValues));
|
|
635
625
|
}
|
|
636
626
|
async #constructWithDeps(target, runtimeValues) {
|
|
637
627
|
// The class itself, not `target.name`: two classes called `Service` share a
|
|
@@ -745,7 +735,7 @@ export class Container {
|
|
|
745
735
|
#cacheIfAppWide(scope, key, instance, store, readsBefore) {
|
|
746
736
|
if (scope !== 'singleton')
|
|
747
737
|
return;
|
|
748
|
-
if ((store?.scopedReads ?? 0) !== readsBefore)
|
|
738
|
+
if ((store?.scopedReads.count ?? 0) !== readsBefore)
|
|
749
739
|
return;
|
|
750
740
|
this.#singletons.set(key, instance);
|
|
751
741
|
}
|