@c9up/ream 0.2.29 → 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 +8 -0
- package/dist/Codemods.d.ts.map +1 -1
- package/dist/Codemods.js +29 -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 +5 -0
- package/dist/Ignitor.d.ts.map +1 -1
- package/dist/Ignitor.js +12 -1
- 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 +38 -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 +10 -0
- package/dist/bodyparser/qsParse.d.ts.map +1 -1
- package/dist/bodyparser/qsParse.js +27 -12
- package/dist/bodyparser/qsParse.js.map +1 -1
- 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 +77 -11
- 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/HttpContext.d.ts +20 -2
- package/dist/http/HttpContext.d.ts.map +1 -1
- package/dist/http/HttpContext.js +10 -4
- package/dist/http/HttpContext.js.map +1 -1
- package/dist/http/RedirectBuilder.d.ts.map +1 -1
- package/dist/http/RedirectBuilder.js +4 -0
- package/dist/http/RedirectBuilder.js.map +1 -1
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +15 -29
- 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/permissions.d.ts +14 -8
- package/dist/http/permissions.d.ts.map +1 -1
- package/dist/http/permissions.js +26 -16
- package/dist/http/permissions.js.map +1 -1
- package/dist/index.d.ts +2 -2
- 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.js +1 -1
- package/dist/middleware/Pipeline.js.map +1 -1
- package/dist/native/generated.d.ts +16 -30
- 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/RpcRouter.js +3 -3
- 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/security/CookieSigner.d.ts.map +1 -1
- package/dist/security/CookieSigner.js +15 -5
- package/dist/security/CookieSigner.js.map +1 -1
- package/dist/security/SignedUrl.d.ts.map +1 -1
- package/dist/security/SignedUrl.js +10 -18
- package/dist/security/SignedUrl.js.map +1 -1
- package/dist/server/Server.d.ts +4 -1
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/Server.js.map +1 -1
- package/dist/server/nativeLimits.d.ts +9 -1
- package/dist/server/nativeLimits.d.ts.map +1 -1
- package/dist/server/nativeLimits.js +8 -0
- package/dist/server/nativeLimits.js.map +1 -1
- 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/drivers/MemoryDriver.d.ts.map +1 -1
- package/dist/session/drivers/MemoryDriver.js +14 -2
- package/dist/session/drivers/MemoryDriver.js.map +1 -1
- package/dist/storage/StaticMiddleware.d.ts.map +1 -1
- package/dist/storage/StaticMiddleware.js +20 -9
- 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 +1 -2
- 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 +49 -3
- package/src/HttpKernel.ts +18 -7
- package/src/Ignitor.ts +21 -4
- package/src/bodyparser/BodyParserMiddleware.ts +42 -16
- package/src/bodyparser/MultipartFile.ts +46 -67
- package/src/bodyparser/parseSize.ts +17 -17
- package/src/bodyparser/qsParse.ts +28 -13
- 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 +89 -13
- 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/HttpContext.ts +20 -4
- package/src/http/RedirectBuilder.ts +3 -0
- package/src/http/Request.ts +15 -29
- package/src/http/Response.ts +15 -7
- package/src/http/permissions.ts +31 -15
- package/src/index.ts +2 -1
- package/src/middleware/Pipeline.ts +1 -1
- package/src/native/generated.ts +18 -42
- 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/RpcRouter.ts +4 -4
- package/src/scheduler/Scheduler.ts +1 -1
- package/src/security/CookieSigner.ts +13 -5
- package/src/security/SignedUrl.ts +12 -16
- package/src/server/Server.ts +4 -1
- package/src/server/nativeLimits.ts +18 -1
- package/src/session/Session.ts +13 -4
- package/src/session/drivers/MemoryDriver.ts +15 -2
- package/src/storage/StaticMiddleware.ts +18 -9
- 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
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* for as long as the tab is, never sits in the middle of an unfinished profile.
|
|
13
13
|
*/
|
|
14
14
|
import { PROFILER_TOKEN_HEADER } from './Profiler.js';
|
|
15
|
+
import { isSecretKey, preview, REDACTED } from './preview.js';
|
|
15
16
|
export function profileRequest(profiler) {
|
|
16
17
|
return async (ctx, next) => {
|
|
17
18
|
await profiler.profile({ method: ctx.request.method(), url: ctx.request.url() }, async (scope) => {
|
|
@@ -26,7 +27,7 @@ export function profileRequest(profiler) {
|
|
|
26
27
|
// After routing, because this runs ahead of it: the pattern and the
|
|
27
28
|
// controller are only on the context once a route has matched. In a
|
|
28
29
|
// `finally`, because a request that threw still matched one.
|
|
29
|
-
|
|
30
|
+
describeRequest(profiler.current('request'), ctx);
|
|
30
31
|
}
|
|
31
32
|
}, (error) => ({ status: statusOf(ctx, error) }));
|
|
32
33
|
};
|
|
@@ -50,18 +51,89 @@ function statusOf(ctx, error) {
|
|
|
50
51
|
return 500;
|
|
51
52
|
}
|
|
52
53
|
/**
|
|
53
|
-
*
|
|
54
|
+
* The request and its answer, as the request panel shows them.
|
|
55
|
+
*
|
|
56
|
+
* Each part is read on its own: one accessor that throws (a body the parser
|
|
57
|
+
* refused, a session store that is down) costs its own row, not the panel.
|
|
58
|
+
*/
|
|
59
|
+
function describeRequest(bag, ctx) {
|
|
60
|
+
if (bag === undefined)
|
|
61
|
+
return;
|
|
62
|
+
const request = ctx.request;
|
|
63
|
+
attempt(() => {
|
|
64
|
+
const safe = request.serializeSafe();
|
|
65
|
+
bag.headers = safe.headers;
|
|
66
|
+
bag.query = preview(safe.qs);
|
|
67
|
+
bag.params = preview(safe.params);
|
|
68
|
+
});
|
|
69
|
+
attempt(() => {
|
|
70
|
+
bag.path = request.path();
|
|
71
|
+
bag.ip = request.ip();
|
|
72
|
+
bag.ajax = request.ajax();
|
|
73
|
+
const id = request.id();
|
|
74
|
+
if (id !== undefined)
|
|
75
|
+
bag.requestId = id;
|
|
76
|
+
});
|
|
77
|
+
attempt(() => {
|
|
78
|
+
// Names only: a cookie's value is a session id or a signed token.
|
|
79
|
+
bag.cookies = Object.keys(request.cookiesList());
|
|
80
|
+
});
|
|
81
|
+
attempt(() => {
|
|
82
|
+
const body = request.body();
|
|
83
|
+
const sent = request.hasBody() ||
|
|
84
|
+
(typeof body === 'string'
|
|
85
|
+
? body !== ''
|
|
86
|
+
: typeof body === 'object' && body !== null && Object.keys(body).length > 0);
|
|
87
|
+
if (sent)
|
|
88
|
+
bag.body = preview(body);
|
|
89
|
+
});
|
|
90
|
+
attempt(() => {
|
|
91
|
+
const session = ctx.session;
|
|
92
|
+
if (session !== undefined)
|
|
93
|
+
bag.session = preview(session.all());
|
|
94
|
+
});
|
|
95
|
+
attempt(() => {
|
|
96
|
+
const response = ctx.response;
|
|
97
|
+
const headers = {};
|
|
98
|
+
for (const [name, value] of Object.entries(response.getHeaders())) {
|
|
99
|
+
headers[name] = name === 'set-cookie' || isSecretKey(name) ? REDACTED : value;
|
|
100
|
+
}
|
|
101
|
+
const contentType = response.getHeader('content-type');
|
|
102
|
+
bag.response = {
|
|
103
|
+
status: response.getStatus(),
|
|
104
|
+
headers,
|
|
105
|
+
...(contentType === undefined ? {} : { contentType }),
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
describeRoute(bag, ctx);
|
|
109
|
+
}
|
|
110
|
+
function attempt(read) {
|
|
111
|
+
try {
|
|
112
|
+
read();
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// One unreadable part of the request; the rest of the panel still shows.
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* What matched.
|
|
54
120
|
*
|
|
55
121
|
* Read off the context rather than passed in, and every field optional: a 404
|
|
56
122
|
* matched nothing, and an inline handler has no controller to name.
|
|
57
123
|
*/
|
|
58
124
|
function describeRoute(bag, ctx) {
|
|
59
|
-
|
|
60
|
-
|
|
125
|
+
const user = ctx.auth?.user;
|
|
126
|
+
if (typeof user === 'object' && user !== null) {
|
|
127
|
+
const id = Reflect.get(user, 'id');
|
|
128
|
+
if (typeof id === 'string' || typeof id === 'number')
|
|
129
|
+
bag.userId = String(id);
|
|
130
|
+
bag.user = preview(user);
|
|
131
|
+
}
|
|
61
132
|
const route = ctx.route;
|
|
62
133
|
if (route === undefined)
|
|
63
134
|
return;
|
|
64
135
|
bag.route = route.name ?? route.pattern;
|
|
136
|
+
bag.pattern = route.pattern;
|
|
65
137
|
const controller = route.controller;
|
|
66
138
|
if (controller !== undefined && route.action !== undefined) {
|
|
67
139
|
// `route.controller` is the PROTOTYPE, not the class — that is what the
|
|
@@ -69,11 +141,5 @@ function describeRoute(bag, ctx) {
|
|
|
69
141
|
const name = Reflect.get(Reflect.get(controller, 'constructor') ?? {}, 'name');
|
|
70
142
|
bag.controller = `${typeof name === 'string' ? name : 'Controller'}.${route.action}`;
|
|
71
143
|
}
|
|
72
|
-
const user = ctx.auth?.user;
|
|
73
|
-
if (typeof user === 'object' && user !== null) {
|
|
74
|
-
const id = Reflect.get(user, 'id');
|
|
75
|
-
if (typeof id === 'string' || typeof id === 'number')
|
|
76
|
-
bag.userId = String(id);
|
|
77
|
-
}
|
|
78
144
|
}
|
|
79
145
|
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/profiler/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,qBAAqB,EAAiB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/profiler/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A bounded, redacted copy of a value, for a profiler panel.
|
|
3
|
+
*
|
|
4
|
+
* What the profiler keeps crosses a wire and sits in memory for the rest of the
|
|
5
|
+
* dev session, so a payload is never stored as given: an event can carry a
|
|
6
|
+
* whole model graph, a session a megabyte of flash data, a body an upload.
|
|
7
|
+
* Depth, keys, items and string length are all capped, cycles are cut, and the
|
|
8
|
+
* value of a key that names a secret is replaced rather than shown — the
|
|
9
|
+
* profiler is the page a developer screenshares.
|
|
10
|
+
*/
|
|
11
|
+
/** What a redacted value becomes. */
|
|
12
|
+
export declare const REDACTED = "[redacted]";
|
|
13
|
+
/** Whether a key's value is hidden. */
|
|
14
|
+
export declare function isSecretKey(key: string): boolean;
|
|
15
|
+
/** A JSON-safe preview of `value`. */
|
|
16
|
+
export declare function preview(value: unknown): unknown;
|
|
17
|
+
//# sourceMappingURL=preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/profiler/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,qCAAqC;AACrC,eAAO,MAAM,QAAQ,eAAe,CAAA;AAEpC,uCAAuC;AACvC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,sCAAsC;AACtC,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/C"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A bounded, redacted copy of a value, for a profiler panel.
|
|
3
|
+
*
|
|
4
|
+
* What the profiler keeps crosses a wire and sits in memory for the rest of the
|
|
5
|
+
* dev session, so a payload is never stored as given: an event can carry a
|
|
6
|
+
* whole model graph, a session a megabyte of flash data, a body an upload.
|
|
7
|
+
* Depth, keys, items and string length are all capped, cycles are cut, and the
|
|
8
|
+
* value of a key that names a secret is replaced rather than shown — the
|
|
9
|
+
* profiler is the page a developer screenshares.
|
|
10
|
+
*/
|
|
11
|
+
/** A key whose value is never shown: credentials, and what carries them. */
|
|
12
|
+
const SECRET_KEY = /pass(word|phrase)?|secret|token|authorization|cookie|api[-_]?key|private[-_]?key|csrf|xsrf|credential/i;
|
|
13
|
+
const MAX_DEPTH = 4;
|
|
14
|
+
const MAX_KEYS = 40;
|
|
15
|
+
const MAX_ITEMS = 25;
|
|
16
|
+
const MAX_STRING = 400;
|
|
17
|
+
/** What a redacted value becomes. */
|
|
18
|
+
export const REDACTED = '[redacted]';
|
|
19
|
+
/** Whether a key's value is hidden. */
|
|
20
|
+
export function isSecretKey(key) {
|
|
21
|
+
return SECRET_KEY.test(key);
|
|
22
|
+
}
|
|
23
|
+
/** A JSON-safe preview of `value`. */
|
|
24
|
+
export function preview(value) {
|
|
25
|
+
return walk(value, 0, new WeakSet());
|
|
26
|
+
}
|
|
27
|
+
function walk(value, depth, seen) {
|
|
28
|
+
if (value === null || value === undefined)
|
|
29
|
+
return value ?? null;
|
|
30
|
+
switch (typeof value) {
|
|
31
|
+
case 'string':
|
|
32
|
+
return value.length > MAX_STRING
|
|
33
|
+
? `${value.slice(0, MAX_STRING)}… (${value.length} chars)`
|
|
34
|
+
: value;
|
|
35
|
+
case 'number':
|
|
36
|
+
return Number.isFinite(value) ? value : String(value);
|
|
37
|
+
case 'boolean':
|
|
38
|
+
return value;
|
|
39
|
+
case 'bigint':
|
|
40
|
+
return `${value}n`;
|
|
41
|
+
case 'symbol':
|
|
42
|
+
return value.toString();
|
|
43
|
+
case 'function':
|
|
44
|
+
return `[function ${value.name || 'anonymous'}]`;
|
|
45
|
+
}
|
|
46
|
+
if (typeof value !== 'object')
|
|
47
|
+
return String(value);
|
|
48
|
+
if (value instanceof Date)
|
|
49
|
+
return Number.isNaN(value.getTime()) ? 'Invalid Date' : value.toISOString();
|
|
50
|
+
if (value instanceof Error)
|
|
51
|
+
return { name: value.name, message: value.message };
|
|
52
|
+
if (Buffer.isBuffer(value))
|
|
53
|
+
return `[Buffer ${value.length} bytes]`;
|
|
54
|
+
if (seen.has(value))
|
|
55
|
+
return '[circular]';
|
|
56
|
+
if (depth >= MAX_DEPTH)
|
|
57
|
+
return Array.isArray(value) ? `[array ${value.length}]` : `[${typeName(value)}]`;
|
|
58
|
+
seen.add(value);
|
|
59
|
+
if (Array.isArray(value)) {
|
|
60
|
+
const items = value.slice(0, MAX_ITEMS).map((item) => walk(item, depth + 1, seen));
|
|
61
|
+
if (value.length > MAX_ITEMS)
|
|
62
|
+
items.push(`… ${value.length - MAX_ITEMS} more`);
|
|
63
|
+
return items;
|
|
64
|
+
}
|
|
65
|
+
if (value instanceof Map) {
|
|
66
|
+
return walk(Object.fromEntries([...value.entries()].map(([k, v]) => [String(k), v])), depth, seen);
|
|
67
|
+
}
|
|
68
|
+
if (value instanceof Set)
|
|
69
|
+
return walk([...value], depth, seen);
|
|
70
|
+
// A model or entity usually serialises itself the way it wants to be seen.
|
|
71
|
+
const toJSON = Reflect.get(value, 'toJSON');
|
|
72
|
+
const source = typeof toJSON === 'function' ? safeCall(() => toJSON.call(value)) : value;
|
|
73
|
+
if (source !== value)
|
|
74
|
+
return walk(source, depth, seen);
|
|
75
|
+
const out = {};
|
|
76
|
+
const name = typeName(value);
|
|
77
|
+
if (name !== 'Object')
|
|
78
|
+
out['@type'] = name;
|
|
79
|
+
const keys = Object.keys(value);
|
|
80
|
+
for (const key of keys.slice(0, MAX_KEYS)) {
|
|
81
|
+
out[key] = isSecretKey(key) ? REDACTED : walk(Reflect.get(value, key), depth + 1, seen);
|
|
82
|
+
}
|
|
83
|
+
if (keys.length > MAX_KEYS)
|
|
84
|
+
out['…'] = `${keys.length - MAX_KEYS} more keys`;
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
function typeName(value) {
|
|
88
|
+
const ctor = Reflect.get(value, 'constructor');
|
|
89
|
+
const name = typeof ctor === 'function' ? Reflect.get(ctor, 'name') : undefined;
|
|
90
|
+
return typeof name === 'string' && name !== '' ? name : 'Object';
|
|
91
|
+
}
|
|
92
|
+
function safeCall(fn) {
|
|
93
|
+
try {
|
|
94
|
+
return fn();
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return '[unserialisable]';
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/profiler/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The tag that loads the debug toolbar into an HTML page.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* A `<script src>` with the request's profile token in a data attribute, and
|
|
5
|
+
* nothing inline. The bar itself — `client/toolbar.js` and `client/toolbar.css`
|
|
6
|
+
* — is served by the profiler endpoint from the same origin, so a policy of
|
|
7
|
+
* `script-src 'self'` / `style-src 'self'` runs and styles it, and a
|
|
8
|
+
* nonce-only policy runs it through the nonce stamped here. An inline script,
|
|
9
|
+
* which is what this used to be, needed the nonce and nothing else would do.
|
|
7
10
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* its own history.
|
|
12
|
-
*
|
|
13
|
-
* A string rather than a stringified function, as the hot-reload script is:
|
|
14
|
-
* this package compiles without the DOM library, deliberately — it is a server
|
|
15
|
-
* — so browser code here is text, and its only inputs are escaped below.
|
|
16
|
-
*
|
|
17
|
-
* It styles its nodes through the CSSOM — `node.style.cssText` — rather than
|
|
18
|
-
* with a `<style>` element. Under a CSP with `style-src 'self'` (or only a
|
|
19
|
-
* `default-src`, which is the common case) a stylesheet inserted at runtime is
|
|
20
|
-
* inline style and is dropped, with no error anywhere: the bar renders as a
|
|
21
|
-
* stack of grey text and nothing says why. Setting properties on an element is
|
|
22
|
-
* not inline style and is never blocked, which is also how the host below has
|
|
23
|
-
* always been positioned.
|
|
11
|
+
* The token travels in the page rather than being read off the response: a
|
|
12
|
+
* script cannot see the headers of the navigation that delivered it. Symfony
|
|
13
|
+
* injects its token for the same reason.
|
|
24
14
|
*/
|
|
15
|
+
/** Where the toolbar's own files are served, under the profiler's path. */
|
|
16
|
+
export declare const PROFILER_ASSETS_PATH = "/__ream/profiler/_assets";
|
|
25
17
|
/**
|
|
26
18
|
* The `<script>` to append to an HTML response.
|
|
27
19
|
*
|
|
28
20
|
* `token` is generated by the profiler (hex) and `nonce` by the response, so
|
|
29
|
-
* neither is user input; both are still
|
|
30
|
-
*
|
|
31
|
-
*
|
|
21
|
+
* neither is user input; both are still attribute-escaped, because "cannot
|
|
22
|
+
* contain a quote" is an invariant that holds until someone changes how one of
|
|
23
|
+
* them is made.
|
|
32
24
|
*/
|
|
33
25
|
export declare function toolbarScript(token: string, nonce?: string): string;
|
|
34
26
|
//# sourceMappingURL=toolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../src/profiler/toolbar.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../src/profiler/toolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,6BAA6B,CAAA;AAE9D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnE"}
|
package/dist/profiler/toolbar.js
CHANGED
|
@@ -1,104 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The tag that loads the debug toolbar into an HTML page.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* A `<script src>` with the request's profile token in a data attribute, and
|
|
5
|
+
* nothing inline. The bar itself — `client/toolbar.js` and `client/toolbar.css`
|
|
6
|
+
* — is served by the profiler endpoint from the same origin, so a policy of
|
|
7
|
+
* `script-src 'self'` / `style-src 'self'` runs and styles it, and a
|
|
8
|
+
* nonce-only policy runs it through the nonce stamped here. An inline script,
|
|
9
|
+
* which is what this used to be, needed the nonce and nothing else would do.
|
|
7
10
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* its own history.
|
|
12
|
-
*
|
|
13
|
-
* A string rather than a stringified function, as the hot-reload script is:
|
|
14
|
-
* this package compiles without the DOM library, deliberately — it is a server
|
|
15
|
-
* — so browser code here is text, and its only inputs are escaped below.
|
|
16
|
-
*
|
|
17
|
-
* It styles its nodes through the CSSOM — `node.style.cssText` — rather than
|
|
18
|
-
* with a `<style>` element. Under a CSP with `style-src 'self'` (or only a
|
|
19
|
-
* `default-src`, which is the common case) a stylesheet inserted at runtime is
|
|
20
|
-
* inline style and is dropped, with no error anywhere: the bar renders as a
|
|
21
|
-
* stack of grey text and nothing says why. Setting properties on an element is
|
|
22
|
-
* not inline style and is never blocked, which is also how the host below has
|
|
23
|
-
* always been positioned.
|
|
11
|
+
* The token travels in the page rather than being read off the response: a
|
|
12
|
+
* script cannot see the headers of the navigation that delivered it. Symfony
|
|
13
|
+
* injects its token for the same reason.
|
|
24
14
|
*/
|
|
25
15
|
import { PROFILER_PATH } from './Profiler.js';
|
|
16
|
+
/** Where the toolbar's own files are served, under the profiler's path. */
|
|
17
|
+
export const PROFILER_ASSETS_PATH = `${PROFILER_PATH}/_assets`;
|
|
26
18
|
/**
|
|
27
19
|
* The `<script>` to append to an HTML response.
|
|
28
20
|
*
|
|
29
21
|
* `token` is generated by the profiler (hex) and `nonce` by the response, so
|
|
30
|
-
* neither is user input; both are still
|
|
31
|
-
*
|
|
32
|
-
*
|
|
22
|
+
* neither is user input; both are still attribute-escaped, because "cannot
|
|
23
|
+
* contain a quote" is an invariant that holds until someone changes how one of
|
|
24
|
+
* them is made.
|
|
33
25
|
*/
|
|
34
26
|
export function toolbarScript(token, nonce) {
|
|
35
|
-
const attribute = nonce === undefined ? '' : ` nonce="${nonce
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
const attribute = nonce === undefined ? '' : ` nonce="${escapeAttribute(nonce)}"`;
|
|
28
|
+
return (`<script src="${PROFILER_ASSETS_PATH}/toolbar.js" data-token="${escapeAttribute(token)}"` +
|
|
29
|
+
` data-path="${PROFILER_PATH}"${attribute}></script>`);
|
|
30
|
+
}
|
|
31
|
+
function escapeAttribute(value) {
|
|
32
|
+
return value
|
|
33
|
+
.replaceAll('&', '&')
|
|
34
|
+
.replaceAll('"', '"')
|
|
35
|
+
.replaceAll('<', '<')
|
|
36
|
+
.replaceAll('>', '>');
|
|
38
37
|
}
|
|
39
|
-
/**
|
|
40
|
-
* The bar, as it runs in the browser.
|
|
41
|
-
*
|
|
42
|
-
* Kept on one indented block so what ships is readable in a page's source —
|
|
43
|
-
* someone will open the inspector and find this, and a minified blob would
|
|
44
|
-
* tell them nothing about where it came from.
|
|
45
|
-
*/
|
|
46
|
-
const BAR = `function(c){
|
|
47
|
-
var host=document.createElement('div');
|
|
48
|
-
host.style.cssText='position:fixed;left:0;right:0;bottom:0;z-index:2147483000';
|
|
49
|
-
var root=host.attachShadow({mode:'closed'});
|
|
50
|
-
document.body.appendChild(host);
|
|
51
|
-
var bar=document.createElement('div');
|
|
52
|
-
bar.style.cssText='display:flex;align-items:stretch;background:#14161a;color:#e6e6e6;'
|
|
53
|
-
+'font:12px/1 ui-monospace,Menlo,monospace;border-top:1px solid #262a31;'
|
|
54
|
-
+'box-shadow:0 -2px 8px rgba(0,0,0,.4)';
|
|
55
|
-
root.appendChild(bar);
|
|
56
|
-
var page=c.path+'/'+c.token;
|
|
57
|
-
var COLOR={bad:'#ff7b72',warn:'#f0883e',ok:'#7ee787'};
|
|
58
|
-
function cell(label,value,tone,plain){
|
|
59
|
-
var node=document.createElement('div');
|
|
60
|
-
node.style.cssText='padding:7px 11px;white-space:nowrap;'
|
|
61
|
-
+(plain?'flex:1;overflow:hidden;text-overflow:ellipsis;cursor:default'
|
|
62
|
-
:'border-right:1px solid #21252c;cursor:pointer');
|
|
63
|
-
if(label){
|
|
64
|
-
var tag=document.createElement('span');
|
|
65
|
-
tag.style.cssText='color:#8b949e;margin-right:6px';
|
|
66
|
-
tag.textContent=label;
|
|
67
|
-
node.appendChild(tag);
|
|
68
|
-
}
|
|
69
|
-
var text=document.createElement('span');
|
|
70
|
-
if(tone){text.style.color=COLOR[tone];}
|
|
71
|
-
text.textContent=value;
|
|
72
|
-
node.appendChild(text);
|
|
73
|
-
if(!plain){
|
|
74
|
-
node.addEventListener('mouseenter',function(){node.style.background='#1b1f25'});
|
|
75
|
-
node.addEventListener('mouseleave',function(){node.style.background=''});
|
|
76
|
-
node.addEventListener('click',function(){window.open(page,'_blank')});
|
|
77
|
-
}
|
|
78
|
-
bar.appendChild(node);
|
|
79
|
-
}
|
|
80
|
-
function panel(data,name){
|
|
81
|
-
var value=data&&data[name];
|
|
82
|
-
return (value&&typeof value==='object')?value:null;
|
|
83
|
-
}
|
|
84
|
-
fetch(page+'.json',{headers:{accept:'application/json'}})
|
|
85
|
-
.then(function(r){return r.ok?r.json():null})
|
|
86
|
-
.then(function(p){
|
|
87
|
-
if(!p){host.remove();return}
|
|
88
|
-
var status=Number(p.status||0);
|
|
89
|
-
cell('',String(status),status>=500?'bad':status>=400?'warn':'ok');
|
|
90
|
-
cell('time',Number(p.duration||0).toFixed(1)+' ms');
|
|
91
|
-
var db=panel(p.data,'database');
|
|
92
|
-
if(db){
|
|
93
|
-
var total=Number(db.total||0);
|
|
94
|
-
cell('db',total+' \u00b7 '+Number(db.duration||0).toFixed(1)+' ms',total>=50?'warn':'');
|
|
95
|
-
}
|
|
96
|
-
var mem=panel(p.data,'memory');
|
|
97
|
-
if(mem){cell('mem',Number(mem.usedMb||0).toFixed(1)+' MB');}
|
|
98
|
-
var err=panel(p.data,'exception');
|
|
99
|
-
if(err&&typeof err.message==='string'){cell('',err.message,'bad');}
|
|
100
|
-
cell('',String(p.url||''),'',true);
|
|
101
|
-
})
|
|
102
|
-
.catch(function(){host.remove()});
|
|
103
|
-
}`;
|
|
104
38
|
//# sourceMappingURL=toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/profiler/toolbar.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/profiler/toolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,aAAa,UAAU,CAAA;AAE9D;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,KAAc;IACzD,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,eAAe,CAAC,KAAK,CAAC,GAAG,CAAA;IACjF,OAAO,CACL,gBAAgB,oBAAoB,4BAA4B,eAAe,CAAC,KAAK,CAAC,GAAG;QACzF,eAAe,aAAa,IAAI,SAAS,YAAY,CACtD,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC"}
|
package/dist/profiler/types.d.ts
CHANGED
|
@@ -41,8 +41,13 @@ export type ProfileSummary = Omit<Profile, 'data'> & {
|
|
|
41
41
|
*/
|
|
42
42
|
export interface CollectionScope {
|
|
43
43
|
token: string;
|
|
44
|
-
/**
|
|
44
|
+
/** When the request arrived, epoch milliseconds. */
|
|
45
45
|
readonly startedAt: number;
|
|
46
|
+
/**
|
|
47
|
+
* Milliseconds since the request arrived, on the monotonic clock. What a
|
|
48
|
+
* collector stamps an entry with, so the timeline can place it.
|
|
49
|
+
*/
|
|
50
|
+
elapsed(): number;
|
|
46
51
|
}
|
|
47
52
|
/**
|
|
48
53
|
* A source of data about a request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profiler/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACpC;AAED,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG;IACnD,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profiler/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACpC;AAED,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG;IACnD,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,OAAO,IAAI,MAAM,CAAA;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB,CAAC,GAAG,GAAG,OAAO;IAC9C,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAA;IACnD,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAA;IAClC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,GAAG,aAAa,CAAA;CACxD;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACxC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAAA;IACxC,KAAK,IAAI,IAAI,CAAA;CACd"}
|
package/dist/router/Router.d.ts
CHANGED
|
@@ -130,6 +130,12 @@ export type MatchedParams = Record<string, string | string[]>;
|
|
|
130
130
|
export interface MatchResult {
|
|
131
131
|
route: RouteDefinition;
|
|
132
132
|
params: MatchedParams;
|
|
133
|
+
/**
|
|
134
|
+
* The values a parameterised domain captured from the host —
|
|
135
|
+
* `{ tenant: 'acme' }` for `:tenant.app.test` on `acme.app.test`. Empty for
|
|
136
|
+
* an exact or wildcard domain, and for a route without one.
|
|
137
|
+
*/
|
|
138
|
+
subdomains: Record<string, string>;
|
|
133
139
|
}
|
|
134
140
|
export declare const matchers: {
|
|
135
141
|
/** Match numeric params only, and hand the handler a number. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAID;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAA;AAEhE;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEvE,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAA;AAE9D,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAEvD,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,qBAAqB,CAAA;CAAE,CAAC,CAAA;AAEpF,gEAAgE;AAChE,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,MAAM,CAAA;AAElG;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN;IACE,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;CAClC,CAAA;AAEL,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACpC,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,gBAAgB,EAAE,kBAAkB,EAAE,CAAA;IACtC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACtC,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,cAAc,CAAC,EAAE;QAAE,MAAM,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACjE;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CACnD;AAoDD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAE7D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;CACtB;AAID,eAAO,MAAM,QAAQ;IACnB,gEAAgE;cACtD,YAAY;IAGtB,iCAAiC;YACzB,YAAY;IAQpB,iEAAiE;YACzD,YAAY;CAGrB,CAAA;AA8CD;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,SAAS;;gBAG7B,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE;IAsBvD,0DAA0D;IAC1D,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtB,iFAAiF;IACjF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B,4BAA4B;IAC5B,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMpC,uCAAuC;IACvC,GAAG,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAMtC,iCAAiC;IACjC,KAAK,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAMhC,8BAA8B;IAC9B,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAM9B,oCAAoC;IACpC,UAAU,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAM1C,gFAAgF;IAChF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAOnE;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMjC,uBAAuB;IACvB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAMxB,qCAAqC;IACrC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAMvB,0BAA0B;IAC1B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMhE,8EAA8E;IAC9E,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,6DAA6D;IAC7D,UAAU,IAAI,MAAM;IAIpB,qEAAqE;IACrE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjC,oFAAoF;IACpF,aAAa,IAAI,IAAI;IAMrB,8EAA8E;IAC9E,SAAS,IAAI,OAAO;IAIpB,yDAAyD;IACzD,aAAa,IAAI,eAAe;IAIhC;;;;;OAKG;IACH,UAAU,IAAI,oBAAoB,GAAG;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKtF;;;;OAIG;IACH,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAKnD;;;;;OAKG;IACH,MAAM,IAAI;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,OAAO,EAAE,oBAAoB,GAAG;YAAE,MAAM,EAAE,cAAc,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;QACjF,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;KACvC;CAYF;AAID,iEAAiE;AACjE,qBAAa,YAAa,SAAQ,SAAS;;gBAG7B,MAAM,EAAE,eAAe,EAAE;IAKrC;;;;;OAKG;IACH,IAAI,MAAM,IAAI,SAAS,eAAe,EAAE,CAEvC;IAED,kDAAkD;IAClD,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOvB,iDAAiD;IACjD,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAOpC,wDAAwD;IACxD,GAAG,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAOtC,6CAA6C;IAC7C,KAAK,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAOhC;;;;OAIG;IACH,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAY5B,8CAA8C;IAC9C,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAOvB,oDAAoD;IACpD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;CASpE;AAID,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;AAElG,oFAAoF;AACpF,KAAK,kBAAkB,GAAG,MAAM,GAAG,kBAAkB,CAAA;AAErD;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,SAAS;;IAU1C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAK;gBAExB,OAAO,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAA;QACxC,SAAS,EAAE,MAAM,IAAI,CAAA;KACtB;IAwDD,2EAA2E;IAC3E,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAOnC,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAMrC,8EAA8E;IAC9E,OAAO,IAAI,IAAI;IAIf,+EAA+E;IAC/E,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAKjE;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAClD,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAgB9F,2EAA2E;IAC3E,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAe/C;;;OAGG;IACH,GAAG,CACD,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,GAAG,EAChD,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GACpD,IAAI;IAaP,mEAAmE;IACnE,UAAU,CACR,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,GAAG,EAChD,UAAU,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GACpD,IAAI;IAIP;;;OAGG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,UAAO,GAAG,IAAI;CAU7C;AAmBD,2EAA2E;AAC3E,qBAAa,cAAc;;gBAMb,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAKxC;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;IAelE;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,SAAM,GAAG,YAAY;IAOnF,sEAAsE;IACtE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,YAAY;IAO1D;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,YAAY;IAKvD;;;OAGG;IACH,IAAI,KAAK,IAAI,YAAY,GAAG,SAAS,CAEpC;CACF;AAID,mBAAmB;AACnB,qBAAa,MAAO,SAAQ,SAAS;;IAmBnC,iCAAiC;IACjC,QAAQ,CAAC,QAAQ;QA3qBjB,gEAAgE;kBACtD,YAAY;QAGtB,iCAAiC;gBACzB,YAAY;QAQpB,iEAAiE;gBACzD,YAAY;MA6pBQ;IAI5B;;;;;;;;;;OAUG;IACH,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,EAAE,GAAG,IAAI;IAO/D;;;;;;;;;;;;OAYG;IACH,KAAK,CACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAC1C,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,kBAAkB,CAAC;IAWzD;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,IAAI;IAQ5D,6CAA6C;IAC7C,mBAAmB,IAAI,kBAAkB,EAAE;IAI3C,sCAAsC;IACtC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAMhE;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAWvF,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAItD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAIvD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAItD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAIxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAIzD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAIvD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAI1D,6CAA6C;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAMtD;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,aAAa;IAetE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,aAAa;IAiB7E;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,YAAY;IACzC,KAAK,CACH,MAAM,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;KACvB,EACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACjC,IAAI;IAyCP,6CAA6C;IAC7C,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAMhC,0DAA0D;IAC1D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IA6EnE,+EAA+E;IAC/E,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IA4D3E;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAmC7D;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAI9D,oFAAoF;IACpF,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAchG;;;;;;OAMG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IASvC;;;;;;OAMG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IASlE;;;;;;OAMG;IACH,aAAa,IAAI,MAAM;IAqBvB;;;OAGG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAOhD,qFAAqF;IACrF,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAM/C,uFAAuF;IACvF,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAMhC,uFAAuF;IACvF,SAAS,IAAI,eAAe,EAAE;IAI9B;;;;;;;;;;;OAWG;IACH,OAAO,IAAI,UAAU;IAIrB,mDAAmD;IACnD,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAI5C;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAQzE;;;;;;OAMG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IAW3C;;;;OAIG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;;;;OAMG;IACH,MAAM,IAAI,IAAI;IAId,qEAAqE;IACrE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IASb,IAAI,UAAU,IAAI,MAAM,CAEvB;CA2BF;AAyFD;;;;;;GAMG;AACH,qBAAa,UAAU;;gBAOT,MAAM,EAAE,MAAM;IAI1B,6BAA6B;IAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK5C,qDAAqD;IACrD,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAKpC,qEAAqE;IACrE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;;OAGG;IACH,kBAAkB,IAAI,IAAI;IAK1B,eAAe;IACf,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAMhC;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;CAOnE"}
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"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"}
|