@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
|
@@ -7,13 +7,19 @@ import type { AuthState } from './HttpContext.js';
|
|
|
7
7
|
* Whether the request's identity holds every permission in `required` — what
|
|
8
8
|
* the route, RPC and GraphQL `.permission()` gates ask.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
10
|
+
* When the auth state exposes `hasAllPermissions` (the auth layer resolves
|
|
11
|
+
* permissions itself, as warden does through its rights resolver), its
|
|
12
|
+
* answer decides: a permission granted only by the resolver passes, one left
|
|
13
|
+
* only in the payload does not. Anything but `true` denies, and an error from
|
|
14
|
+
* the resolver propagates rather than grants. Only an auth state without that
|
|
15
|
+
* method falls back to the payload: top-level `auth.permissions`, or
|
|
16
|
+
* `auth.user.permissions`.
|
|
17
|
+
*
|
|
18
|
+
* When the request was authenticated with a token, each permission must ALSO
|
|
19
|
+
* be allowed by `auth.user.currentAccessToken`: an intersection, never a
|
|
20
|
+
* union. A token scope named like a permission grants nothing the user
|
|
21
|
+
* lacks, and a token limited to `profile` does not carry every permission of
|
|
22
|
+
* its user. A token whose `allows` cannot be called denies.
|
|
17
23
|
*/
|
|
18
|
-
export declare function holdsPermissions(auth: AuthState | undefined, required: readonly string[]): boolean
|
|
24
|
+
export declare function holdsPermissions(auth: AuthState | undefined, required: readonly string[]): Promise<boolean>;
|
|
19
25
|
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/http/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/http/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAAC,OAAO,CAAC,CAOlB"}
|
package/dist/http/permissions.js
CHANGED
|
@@ -6,23 +6,33 @@
|
|
|
6
6
|
* Whether the request's identity holds every permission in `required` — what
|
|
7
7
|
* the route, RPC and GraphQL `.permission()` gates ask.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
9
|
+
* When the auth state exposes `hasAllPermissions` (the auth layer resolves
|
|
10
|
+
* permissions itself, as warden does through its rights resolver), its
|
|
11
|
+
* answer decides: a permission granted only by the resolver passes, one left
|
|
12
|
+
* only in the payload does not. Anything but `true` denies, and an error from
|
|
13
|
+
* the resolver propagates rather than grants. Only an auth state without that
|
|
14
|
+
* method falls back to the payload: top-level `auth.permissions`, or
|
|
15
|
+
* `auth.user.permissions`.
|
|
16
|
+
*
|
|
17
|
+
* When the request was authenticated with a token, each permission must ALSO
|
|
18
|
+
* be allowed by `auth.user.currentAccessToken`: an intersection, never a
|
|
19
|
+
* union. A token scope named like a permission grants nothing the user
|
|
20
|
+
* lacks, and a token limited to `profile` does not carry every permission of
|
|
21
|
+
* its user. A token whose `allows` cannot be called denies.
|
|
16
22
|
*/
|
|
17
|
-
export function holdsPermissions(auth, required) {
|
|
18
|
-
|
|
23
|
+
export async function holdsPermissions(auth, required) {
|
|
24
|
+
if (!(await userHolds(auth, required)))
|
|
25
|
+
return false;
|
|
19
26
|
const token = auth?.user?.currentAccessToken;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
if (token === undefined || token === null)
|
|
28
|
+
return true;
|
|
29
|
+
return required.every((permission) => typeof token.allows === 'function' && token.allows(permission) === true);
|
|
30
|
+
}
|
|
31
|
+
async function userHolds(auth, required) {
|
|
32
|
+
if (typeof auth?.hasAllPermissions === 'function') {
|
|
33
|
+
return (await auth.hasAllPermissions(required)) === true;
|
|
34
|
+
}
|
|
35
|
+
const granted = auth?.permissions ?? auth?.user?.permissions ?? [];
|
|
36
|
+
return required.every((permission) => granted.includes(permission));
|
|
27
37
|
}
|
|
28
38
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/http/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/http/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA2B,EAC3B,QAA2B;IAE3B,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACpD,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAA;IAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACtD,OAAO,QAAQ,CAAC,KAAK,CACnB,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CACxF,CAAA;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,IAA2B,EAC3B,QAA2B;IAE3B,IAAI,OAAO,IAAI,EAAE,iBAAiB,KAAK,UAAU,EAAE,CAAC;QAClD,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAA;IAC1D,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAA;IAClE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AACrE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -97,7 +97,7 @@ export { errors } from './errors/aggregate.js';
|
|
|
97
97
|
export type { AppContext, ConfigReader, ProviderContract } from './Provider.js';
|
|
98
98
|
export { Provider } from './Provider.js';
|
|
99
99
|
export type { AuthenticatorName, Authenticators, ContainerBinding, ContainerBindings, } from './types/index.js';
|
|
100
|
-
export { type Codemods, createCodemods, type EnvValidationNode, type GeneratedStub, type PreloadEnvironment, type StubState, } from './Codemods.js';
|
|
100
|
+
export { type Codemods, createCodemods, type EnvValidationNode, type GeneratedStub, type MiddlewarePosition, type PreloadEnvironment, type StubState, } from './Codemods.js';
|
|
101
101
|
export { compile as compileStub, escapeHtml, generate as generateStub, render as renderStub, type StubBlock, StubSyntaxError, type StubValue, type TemplateOptions, } from './stubs/template.js';
|
|
102
102
|
export type { ErrorEmitter, ErrorEvent, ErrorSeverity } from './ErrorBoundary.js';
|
|
103
103
|
export { ErrorBoundary } from './ErrorBoundary.js';
|
|
@@ -123,5 +123,5 @@ export { BaseEvent, Emitter, type EmitterResolver, type ListenerClass, } from '.
|
|
|
123
123
|
export { type BufferedEvent, type BufferedEventName, type EventFinder, EventsBuffer, } from './events/EventsBuffer.js';
|
|
124
124
|
export type { ErrorReporter, LockBackend, LockBackendFactory, LockRedisClient, LockRedisResolver, RunTaskOutcome, ScheduleEvent, ScheduleEventSink, ScheduleInvocation, ScheduleMetadata, ScheduleProviderOptions, SchedulerConfig, SchedulerOptions, ScheduleTaskCompletedEvent, ScheduleTaskFailedEvent, ScheduleTaskSkippedEvent, ScheduleTaskStartedEvent, TaskInfo, TaskStats, } from './scheduler/index.js';
|
|
125
125
|
export { defineSchedulerConfig, getScheduleMetadata, locks, MemoryLockBackend, RedisLockBackend, SCHEDULE_METADATA_KEY, Schedule, ScheduleProvider, Scheduler, StatsTracker, } from './scheduler/index.js';
|
|
126
|
-
export declare const VERSION = "0.2.
|
|
126
|
+
export declare const VERSION = "0.2.30";
|
|
127
127
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -95,5 +95,5 @@ export { defineConfig as defineEventsConfig } from './events/config.js';
|
|
|
95
95
|
export { BaseEvent, Emitter, } from './events/Emitter.js';
|
|
96
96
|
export { EventsBuffer, } from './events/EventsBuffer.js';
|
|
97
97
|
export { defineSchedulerConfig, getScheduleMetadata, locks, MemoryLockBackend, RedisLockBackend, SCHEDULE_METADATA_KEY, Schedule, ScheduleProvider, Scheduler, StatsTracker, } from './scheduler/index.js';
|
|
98
|
-
export const VERSION = '0.2.
|
|
98
|
+
export const VERSION = '0.2.30';
|
|
99
99
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -164,7 +164,7 @@ function createGuardMiddleware(guards, roles, permissions) {
|
|
|
164
164
|
}
|
|
165
165
|
// A token-authenticated request also needs the token to allow each one.
|
|
166
166
|
if (permissions && permissions.length > 0) {
|
|
167
|
-
if (!holdsPermissions(ctx.auth, permissions)) {
|
|
167
|
+
if (!(await holdsPermissions(ctx.auth, permissions))) {
|
|
168
168
|
throw new E_FORBIDDEN('Insufficient permissions', permissions);
|
|
169
169
|
}
|
|
170
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pipeline.js","sourceRoot":"","sources":["../../src/middleware/Pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Pipeline.js","sourceRoot":"","sources":["../../src/middleware/Pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,7 +92,18 @@ export interface NapiBodyLimits {
|
|
|
92
92
|
json?: NapiBodyLimit;
|
|
93
93
|
form?: NapiBodyLimit;
|
|
94
94
|
raw?: NapiBodyLimit;
|
|
95
|
-
multipart?:
|
|
95
|
+
multipart?: NapiMultipartLimit;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The multipart section: its size limit and types, and how many fields
|
|
99
|
+
* and files a body may carry (default 1000 each), enforced while the body
|
|
100
|
+
* is parsed.
|
|
101
|
+
*/
|
|
102
|
+
export interface NapiMultipartLimit {
|
|
103
|
+
limit?: number;
|
|
104
|
+
types?: Array<string>;
|
|
105
|
+
maxFields?: number;
|
|
106
|
+
maxFiles?: number;
|
|
96
107
|
}
|
|
97
108
|
/**
|
|
98
109
|
* Timeouts (milliseconds) and the connection cap, named after the Node
|
|
@@ -138,9 +149,10 @@ export declare class EventBus {
|
|
|
138
149
|
/** NAPI-exposed Hyper HTTP server. */
|
|
139
150
|
export declare class HyperServer {
|
|
140
151
|
/**
|
|
141
|
-
* `host` is the bind address: an IPv4 literal (`0.0.0.0`
|
|
142
|
-
* every interface
|
|
143
|
-
* the safe default for a dev
|
|
152
|
+
* `host` is the bind address: an IPv4 or IPv6 literal (`0.0.0.0` or `::`
|
|
153
|
+
* to accept from every interface, a bracketed `[::1]` too) or the
|
|
154
|
+
* `localhost` alias. Omitted → loopback only, the safe default for a dev
|
|
155
|
+
* machine.
|
|
144
156
|
*/
|
|
145
157
|
constructor(port?: number | undefined | null, host?: string | undefined | null);
|
|
146
158
|
/**
|
|
@@ -299,32 +311,6 @@ export declare class RustScheduler {
|
|
|
299
311
|
/** Return the next fire time in ms epoch, or `null` if the task is unknown. */
|
|
300
312
|
nextRun(name: string): number | null;
|
|
301
313
|
}
|
|
302
|
-
/**
|
|
303
|
-
* Sign a JWT payload with HMAC-SHA256 (Rust-native).
|
|
304
|
-
* Returns the complete JWT token string.
|
|
305
|
-
*/
|
|
306
|
-
export declare function jwtSign(payload: string, secret: string): string;
|
|
307
|
-
/**
|
|
308
|
-
* Verify a JWT token and return the decoded payload JSON string.
|
|
309
|
-
* Validates signature (constant-time), exp, and nbf claims.
|
|
310
|
-
*/
|
|
311
|
-
export declare function jwtVerify(token: string, secret: string): string;
|
|
312
|
-
/**
|
|
313
|
-
* Hash a password with Argon2id (Rust-native).
|
|
314
|
-
* Returns the PHC-formatted hash string.
|
|
315
|
-
*/
|
|
316
|
-
export declare function argon2Hash(password: string): string;
|
|
317
|
-
/** Verify a password against an Argon2id hash. */
|
|
318
|
-
export declare function argon2Verify(password: string, hash: string): boolean;
|
|
319
|
-
/**
|
|
320
|
-
* Hash a password with bcrypt (Rust-native).
|
|
321
|
-
* `rounds` defaults to 12 when not supplied — matches the previous
|
|
322
|
-
* warden-engine default and the OWASP-recommended cost floor enforced
|
|
323
|
-
* by `sigil-engine`.
|
|
324
|
-
*/
|
|
325
|
-
export declare function bcryptHash(password: string, rounds?: number | undefined | null): string;
|
|
326
|
-
/** Verify a password against a bcrypt hash. */
|
|
327
|
-
export declare function bcryptVerify(password: string, hash: string): boolean;
|
|
328
314
|
/** Constant-time string comparison. */
|
|
329
315
|
export declare function constantTimeEq(a: string, b: string): boolean;
|
|
330
316
|
/** HMAC-SHA256 sign. Returns base64url signature. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/native/generated.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACvC,0CAA0C;IAC1C,OAAO,EAAE,UAAU,CAAA;IACnB,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,OAAO,CAAA;CACxB;AAED;;;;GAIG;AAEH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACtB;AAED;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,GAAG,CAAC,EAAE,aAAa,CAAA;IACnB,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/native/generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Profiler.d.ts","sourceRoot":"","sources":["../../src/profiler/Profiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAW,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAS3F,0DAA0D;AAC1D,eAAO,MAAM,aAAa,qBAAqB,CAAA;AAE/C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,kBAAkB,CAAA;AAEpD,qBAAa,QAAQ;;gBAKP,UAAU,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,EAAE,YAAY;IAKzE,IAAI,KAAK,IAAI,YAAY,CAExB;IAED,IAAI,UAAU,IAAI,SAAS,iBAAiB,EAAE,CAE7C;IAED;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,CAAC,EACb,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EACxC,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAChD,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Profiler.d.ts","sourceRoot":"","sources":["../../src/profiler/Profiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAW,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAS3F,0DAA0D;AAC1D,eAAO,MAAM,aAAa,qBAAqB,CAAA;AAE/C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,kBAAkB,CAAA;AAEpD,qBAAa,QAAQ;;gBAKP,UAAU,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,EAAE,YAAY;IAKzE,IAAI,KAAK,IAAI,YAAY,CAExB;IAED,IAAI,UAAU,IAAI,SAAS,iBAAiB,EAAE,CAE7C;IAED;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,CAAC,EACb,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EACxC,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EAC5C,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAChD,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA2DxC;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAOhD,qDAAqD;IACrD,IAAI,MAAM,IAAI,OAAO,CAEpB;CACF"}
|
|
@@ -48,7 +48,10 @@ export class Profiler {
|
|
|
48
48
|
const token = newToken();
|
|
49
49
|
const startedAt = Date.now();
|
|
50
50
|
const started = performance.now();
|
|
51
|
-
const active = {
|
|
51
|
+
const active = {
|
|
52
|
+
scope: { token, startedAt, elapsed: () => performance.now() - started },
|
|
53
|
+
bags: new Map(),
|
|
54
|
+
};
|
|
52
55
|
for (const collector of this.#collectors) {
|
|
53
56
|
// A collector that throws while starting must not fail the request it was
|
|
54
57
|
// only meant to watch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Profiler.js","sourceRoot":"","sources":["../../src/profiler/Profiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAUzC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAA;AAE/C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAA;AAEpD,MAAM,OAAO,QAAQ;IACV,QAAQ,GAAG,IAAI,iBAAiB,EAAiB,CAAA;IACjD,WAAW,CAA8B;IACzC,MAAM,CAAc;IAE7B,YAAY,UAAwC,EAAE,KAAmB;QACvE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,CACX,OAAwC,EACxC,IAA4C,EAC5C,QAAiD;QAEjD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACjC,MAAM,MAAM,GAAkB,
|
|
1
|
+
{"version":3,"file":"Profiler.js","sourceRoot":"","sources":["../../src/profiler/Profiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** The debug toolbar's script, served at /__ream/profiler/_assets/toolbar.js. */
|
|
2
|
+
export declare const TOOLBAR_JS: string;
|
|
3
|
+
/** The debug toolbar's stylesheet, served at /__ream/profiler/_assets/toolbar.css. */
|
|
4
|
+
export declare const TOOLBAR_CSS: string;
|
|
5
|
+
//# sourceMappingURL=client.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.generated.d.ts","sourceRoot":"","sources":["../../src/profiler/client.generated.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,eAAO,MAAM,UAAU,EAAE,MAA6wyC,CAAA;AAEtyyC,sFAAsF;AACtF,eAAO,MAAM,WAAW,EAAE,MAAs8S,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Generated by scripts/build-profiler-client.mjs from src/profiler/client/. Do not edit.
|
|
2
|
+
/** The debug toolbar's script, served at /__ream/profiler/_assets/toolbar.js. */
|
|
3
|
+
export const TOOLBAR_JS = "/*\n * The debug toolbar, as it runs in the browser.\n *\n * Served from /__ream/profiler/_assets/toolbar.js and loaded by a <script src>\n * that carries the request's profile token in data attributes: no inline code,\n * so a `script-src 'self'` policy runs it, and a nonce-only one runs it through\n * the nonce the server stamps on the tag.\n *\n * Built with the DOM API and `textContent` only. Everything it shows came from\n * a request — a URL, SQL, a log message — and none of it is ever parsed as\n * markup.\n *\n * Plain readable JS, on purpose: someone will open the inspector and land\n * here.\n */\n;(() => {\n const script = document.currentScript\n if (!script || window.__reamProfiler) return\n const base = script.dataset.path || '/__ream/profiler'\n const pageToken = script.dataset.token || ''\n const nonce = script.nonce || script.getAttribute('nonce') || ''\n const TOKEN = /^[A-Za-z0-9_-]{1,64}$/\n const STORE = 'ream/profiler/toolbar'\n const BAR = 34\n\n // ── State ───────────────────────────────────────────────\n\n const saved = read()\n const state = {\n closed: saved.closed === true,\n open: saved.open === true,\n tab: typeof saved.tab === 'string' ? saved.tab : 'request',\n height: clampHeight(typeof saved.height === 'number' ? saved.height : 320),\n /** Every request this page knows: itself first, then each fetch/XHR. */\n requests: [],\n /** The one the bar shows. */\n current: null,\n filters: {\n query: '',\n onlyDuplicates: false,\n sortBySlowest: false,\n levels: {},\n logText: '',\n eventText: '',\n },\n }\n window.__reamProfiler = { state }\n\n function read() {\n try {\n const value = JSON.parse(localStorage.getItem(STORE) || '{}')\n return value && typeof value === 'object' ? value : {}\n } catch {\n return {}\n }\n }\n\n function persist() {\n try {\n localStorage.setItem(\n STORE,\n JSON.stringify({\n closed: state.closed,\n open: state.open,\n tab: state.tab,\n height: state.height,\n }),\n )\n } catch {\n // Private mode or storage disabled: the bar still works, it just forgets.\n }\n }\n\n function clampHeight(value) {\n const max = Math.max(160, window.innerHeight - BAR - 60)\n return Math.min(Math.max(value, 120), max)\n }\n\n // ── Requests made by the page after it loaded ───────────\n\n function track(entry) {\n state.requests.push(entry)\n if (state.requests.length > 100) state.requests.splice(1, 1)\n if (entry.token) load(entry)\n else render()\n }\n\n function own(url) {\n try {\n return new URL(url, location.href).pathname.startsWith(base)\n } catch {\n return false\n }\n }\n\n const originalFetch = window.fetch\n if (typeof originalFetch === 'function') {\n window.fetch = function (...args) {\n const [input, init] = args\n const url = typeof input === 'string' ? input : input?.url || String(input)\n const method = (init?.method || input?.method || 'GET').toUpperCase()\n const started = performance.now()\n const promise = originalFetch.apply(this, args)\n if (own(url)) return promise\n promise.then(\n (response) =>\n track({\n kind: 'fetch',\n method,\n url,\n status: response.status,\n duration: performance.now() - started,\n token: response.headers.get('x-debug-token') || '',\n }),\n () =>\n track({\n kind: 'fetch',\n method,\n url,\n status: 0,\n duration: performance.now() - started,\n token: '',\n }),\n )\n return promise\n }\n }\n\n const xhrOpen = XMLHttpRequest.prototype.open\n XMLHttpRequest.prototype.open = function (...args) {\n const [method, url] = args\n if (!own(String(url))) {\n const started = performance.now()\n this.addEventListener('loadend', () => {\n // Only read a header the response actually exposes: asking for one it\n // does not prints \"Refused to get unsafe header\" in the console.\n const has = /^x-debug-token:/im.test(this.getAllResponseHeaders())\n track({\n kind: 'xhr',\n method: String(method).toUpperCase(),\n url: String(url),\n status: this.status,\n duration: performance.now() - started,\n token: has ? this.getResponseHeader('x-debug-token') || '' : '',\n })\n })\n }\n return xhrOpen.apply(this, args)\n }\n\n /** Fetch one profile; the server may still be saving it, so retry a little. */\n function load(entry, attempt = 0) {\n if (!TOKEN.test(entry.token)) return render()\n originalFetch\n .call(window, `${base}/${entry.token}.json`, { headers: { accept: 'application/json' } })\n .then((response) => {\n if (response.status === 404 && attempt < 5) {\n setTimeout(() => load(entry, attempt + 1), 120 * (attempt + 1))\n return null\n }\n return response.ok ? response.json() : null\n })\n .then((profile) => {\n if (profile) {\n entry.profile = profile\n entry.status = profile.status\n // The page's own load is timed by the server, not by an interceptor.\n if (entry.kind === 'page') entry.duration = profile.duration\n if (state.current === null && entry.kind === 'page') state.current = entry\n }\n render()\n })\n .catch(() => render())\n }\n\n // ── DOM helpers ─────────────────────────────────────────\n\n function h(tag, props, ...children) {\n const node = document.createElement(tag)\n for (const [key, value] of Object.entries(props || {})) {\n if (value === undefined || value === null || value === false) continue\n if (key === 'text') node.textContent = String(value)\n else if (key === 'class') node.className = value\n // Through the CSSOM: a `style` attribute is inline style, which a\n // `style-src` policy without 'unsafe-inline' silently drops.\n else if (key === 'style') node.style.cssText = value\n else if (key.startsWith('on')) node.addEventListener(key.slice(2), value)\n else if (key === 'dataset') Object.assign(node.dataset, value)\n else node.setAttribute(key, value === true ? '' : String(value))\n }\n for (const child of children.flat(Infinity)) {\n if (child === null || child === undefined || child === false) continue\n node.append(child instanceof Node ? child : document.createTextNode(String(child)))\n }\n return node\n }\n\n function ms(value) {\n const n = Number(value) || 0\n if (n < 1) return `${n.toFixed(2)} ms`\n if (n < 100) return `${n.toFixed(1)} ms`\n return `${Math.round(n)} ms`\n }\n\n function mb(value) {\n return `${(Number(value) || 0).toFixed(1)} MB`\n }\n\n function json(value) {\n try {\n return JSON.stringify(value, null, 2)\n } catch {\n return String(value)\n }\n }\n\n function statusTone(status) {\n if (!status || status >= 500) return 'bad'\n if (status >= 400) return 'warn'\n if (status >= 300) return 'warn'\n return 'ok'\n }\n\n function row(label, value) {\n if (value === undefined || value === null || value === '') return null\n return h('div', { class: 'row' }, h('b', { text: label }), h('span', { text: String(value) }))\n }\n\n function copy(text, button) {\n const done = () => {\n button.textContent = 'copied'\n setTimeout(() => {\n button.textContent = 'copy'\n }, 1500)\n }\n if (navigator.clipboard?.writeText) navigator.clipboard.writeText(text).then(done, () => {})\n }\n\n // ── What each panel derives from a profile ──────────────\n\n function panelOf(profile, name) {\n const value = profile?.data?.[name]\n return value && typeof value === 'object' ? value : {}\n }\n\n function queriesOf(profile) {\n const db = panelOf(profile, 'database')\n const queries = Array.isArray(db.queries) ? db.queries : []\n const counts = new Map()\n for (const query of queries) {\n const key = `${query.sql}\\u0000${JSON.stringify(query.bindings)}\\u0000${query.connection || ''}`\n query.key = key\n counts.set(key, (counts.get(key) || 0) + 1)\n }\n let duplicates = 0\n for (const query of queries) {\n query.copies = counts.get(query.key) || 1\n if (query.copies > 1) duplicates += 1\n }\n return {\n total: Number(db.total) || 0,\n failed: Number(db.failed) || 0,\n duration: Number(db.duration) || 0,\n capped: db.capped === true,\n queries,\n duplicates,\n unique: counts.size,\n slowest: queries.reduce((max, query) => Math.max(max, Number(query.duration) || 0), 0),\n }\n }\n\n function eventsOf(profile) {\n const panel = panelOf(profile, 'events')\n return Array.isArray(panel.events) ? panel.events : []\n }\n\n function cacheOf(profile) {\n const ops = eventsOf(profile).filter((event) => event.name.startsWith('cache:'))\n const count = (suffix) => ops.filter((event) => event.name === `cache:${suffix}`).length\n return { ops, hits: count('hit'), misses: count('miss'), writes: count('written') }\n }\n\n function mailsOf(profile) {\n return eventsOf(profile).filter((event) => /^mail[:.]/.test(event.name))\n }\n\n function logsOf(profile) {\n const panel = panelOf(profile, 'logs')\n return {\n total: Number(panel.total) || 0,\n errors: Number(panel.errors) || 0,\n warnings: Number(panel.warnings) || 0,\n lines: Array.isArray(panel.lines) ? panel.lines : [],\n }\n }\n\n // ── The shell ───────────────────────────────────────────\n\n const host = h('div', { 'data-ream-profiler': '' })\n host.style.cssText = 'all:initial'\n const root = host.attachShadow({ mode: 'open' })\n root.append(\n h('link', {\n rel: 'stylesheet',\n href: `${base}/_assets/toolbar.css`,\n nonce: nonce || undefined,\n }),\n )\n const shell = h('div', { class: 'rp', role: 'region', 'aria-label': 'Debug toolbar' })\n const panel = h('div', { class: 'panel' })\n const grip = h('div', { class: 'grip', title: 'Drag to resize' })\n const tabs = h('nav', { class: 'tabs' })\n const body = h('div', { class: 'body' })\n const bar = h('div', { class: 'bar', role: 'toolbar' })\n const restore = h('button', {\n class: 'restore',\n text: 'R',\n title: 'Show the debug toolbar',\n onclick: () => {\n state.closed = false\n persist()\n render()\n },\n })\n panel.append(grip, tabs, body)\n shell.append(panel, bar, restore)\n root.append(shell)\n\n // ── Keeping the page visible ────────────────────────────\n\n // The page keeps its own bottom padding; the bar adds its height to it, so\n // nothing at the bottom of the page ends up underneath.\n let originalPadding = null\n function offsetPage() {\n if (!document.body) return\n if (originalPadding === null) {\n originalPadding = Number.parseFloat(getComputedStyle(document.body).paddingBottom) || 0\n }\n const covered = state.closed ? 0 : shell.getBoundingClientRect().height\n document.body.style.paddingBottom = covered > 0 ? `${originalPadding + covered}px` : ''\n }\n\n // ── Resizing ────────────────────────────────────────────\n\n grip.addEventListener('mousedown', (start) => {\n start.preventDefault()\n const startY = start.clientY\n const startHeight = state.height\n const move = (event) => {\n state.height = clampHeight(startHeight + (startY - event.clientY))\n panel.style.height = `${state.height}px`\n offsetPage()\n }\n const up = () => {\n document.removeEventListener('mousemove', move)\n document.removeEventListener('mouseup', up)\n persist()\n }\n document.addEventListener('mousemove', move)\n document.addEventListener('mouseup', up)\n })\n\n document.addEventListener('keydown', (event) => {\n if (event.key === 'Escape' && state.open) {\n state.open = false\n persist()\n render()\n }\n })\n\n function openTab(name) {\n if (state.open && state.tab === name) state.open = false\n else {\n state.open = true\n state.tab = name\n }\n persist()\n render()\n }\n\n // ── The bar ─────────────────────────────────────────────\n\n function item(opts) {\n return h(\n 'div',\n {\n class: 'item',\n tabindex: '0',\n role: 'button',\n dataset: {\n tone: opts.tone || '',\n ...(state.open && state.tab === opts.tab ? { active: '' } : {}),\n },\n onclick: () => opts.tab && openTab(opts.tab),\n onkeydown: (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n if (opts.tab) openTab(opts.tab)\n }\n },\n },\n opts.lead || null,\n opts.label ? h('span', { class: 'label', text: opts.label }) : null,\n h('span', { class: 'value', text: opts.value }),\n opts.info\n ? h('div', { class: 'info', onclick: (event) => event.stopPropagation() }, opts.info)\n : null,\n )\n }\n\n function renderBar(profile, entry) {\n const items = []\n const request = panelOf(profile, 'request')\n const status = Number(profile.status) || 0\n items.push(\n item({\n tab: 'request',\n lead: h('span', {\n class: 'status',\n dataset: { tone: statusTone(status) },\n text: String(status),\n }),\n value: `${profile.method} ${request.route || request.path || profile.url}`,\n info: [\n row('Status', status),\n row('Method', profile.method),\n row('URL', profile.url),\n row('Route', request.route),\n row('Pattern', request.pattern),\n row('Controller', request.controller),\n row('User', request.userId),\n row('Session', request.session ? 'yes' : 'no'),\n row('Content type', request.response?.contentType),\n ],\n }),\n )\n\n const duration = Number(profile.duration) || 0\n const q = queriesOf(profile)\n items.push(\n item({\n tab: 'timeline',\n label: 'time',\n value: ms(duration),\n tone: duration > 1000 ? 'warn' : '',\n info: [\n row('Total time', ms(duration)),\n row(\n 'In SQL',\n `${ms(q.duration)} (${duration > 0 ? Math.round((q.duration / duration) * 100) : 0}%)`,\n ),\n row('Profile', profile.token),\n ],\n }),\n )\n\n const memory = panelOf(profile, 'memory')\n items.push(\n item({\n tab: 'timeline',\n label: 'mem',\n value: mb(memory.usedMb),\n tone: memory.usedMb > 512 ? 'warn' : '',\n info: [\n row('Heap used', mb(memory.usedMb)),\n row('Heap total', mb(memory.totalMb)),\n row('Resident', mb(memory.rssMb)),\n row('During request', `${memory.deltaMb >= 0 ? '+' : ''}${mb(memory.deltaMb)}`),\n ],\n }),\n )\n\n items.push(\n item({\n tab: 'queries',\n label: 'db',\n value: `${q.total} · ${ms(q.duration)}`,\n tone: q.failed > 0 ? 'bad' : q.duplicates > 0 || q.total >= 50 ? 'warn' : '',\n info: [\n row('Statements', q.total),\n row('Duplicated', q.duplicates > 0 ? `${q.duplicates} (${q.unique} unique)` : 'none'),\n row('Failed', q.failed || 'none'),\n row('Total time', ms(q.duration)),\n row('Slowest', q.total > 0 ? ms(q.slowest) : ''),\n ],\n }),\n )\n\n const logs = logsOf(profile)\n if (logs.total > 0) {\n items.push(\n item({\n tab: 'logs',\n label: 'logs',\n value: String(logs.errors || logs.warnings || logs.total),\n tone: logs.errors > 0 ? 'bad' : logs.warnings > 0 ? 'warn' : '',\n info: [\n row('Errors', logs.errors),\n row('Warnings', logs.warnings),\n row('Lines', logs.total),\n ],\n }),\n )\n }\n\n const events = eventsOf(profile)\n if (events.length > 0) {\n const names = new Map()\n for (const event of events) names.set(event.name, (names.get(event.name) || 0) + 1)\n items.push(\n item({\n tab: 'events',\n label: 'events',\n value: String(panelOf(profile, 'events').total || events.length),\n info: [...names.entries()].slice(0, 12).map(([name, count]) => row(name, `× ${count}`)),\n }),\n )\n }\n\n const cache = cacheOf(profile)\n if (cache.ops.length > 0) {\n const reads = cache.hits + cache.misses\n items.push(\n item({\n tab: 'cache',\n label: 'cache',\n value: String(cache.ops.length),\n info: [\n row('Operations', cache.ops.length),\n row(\n 'Hits',\n reads > 0\n ? `${cache.hits} / ${reads} (${Math.round((cache.hits / reads) * 100)}%)`\n : 0,\n ),\n row('Misses', cache.misses),\n row('Writes', cache.writes),\n ],\n }),\n )\n }\n\n const mails = mailsOf(profile)\n if (mails.length > 0) {\n items.push(item({ tab: 'mail', label: 'mail', value: String(mails.length) }))\n }\n\n const exception = panelOf(profile, 'exception')\n if (typeof exception.message === 'string') {\n items.push(\n item({\n tab: 'exception',\n tone: 'bad',\n value: `${exception.name || 'Error'}`,\n info: [row('Message', exception.message), row('Code', exception.code)],\n }),\n )\n }\n\n const ajax = state.requests.filter((r) => r.kind !== 'page')\n if (ajax.length > 0) {\n const failed = ajax.slice(-4).some((r) => !r.status || r.status >= 400)\n items.push(\n item({\n tab: 'ajax',\n label: 'ajax',\n value: String(ajax.length),\n tone: failed ? 'bad' : '',\n info: ajax\n .slice(-8)\n .reverse()\n .map((r) => row(`${r.method} ${r.status || '—'}`, `${r.url} · ${ms(r.duration)}`)),\n }),\n )\n }\n\n const spacer = h('div', { class: 'spacer' }, profile.url || '')\n if (entry && entry.kind !== 'page') {\n spacer.append(\n h('button', {\n class: 'viewing',\n text: `viewing ${entry.kind} · back to page`,\n onclick: () => {\n state.current = state.requests[0] || null\n render()\n },\n }),\n )\n }\n\n const app = panelOf(profile, 'app')\n const appItem = item({\n tab: 'app',\n value: app.ream ? `ream ${app.ream}` : 'ream',\n info: [\n row('ream', app.ream),\n row('Node.js', app.node),\n row('Environment', app.environment),\n row('Platform', app.platform),\n row('Process', app.pid),\n row('Uptime', app.uptime !== undefined ? `${app.uptime} s` : ''),\n ],\n })\n\n const full = h('a', {\n class: 'tool',\n href: TOKEN.test(profile.token) ? `${base}/${profile.token}` : base,\n target: '_blank',\n rel: 'noopener',\n title: 'Open the full profile',\n text: '↗',\n })\n const toggle = h('button', {\n class: 'tool',\n title: state.open ? 'Collapse the panel' : 'Expand the panel',\n text: state.open ? '▾' : '▴',\n onclick: () => openTab(state.tab),\n })\n const close = h('button', {\n class: 'tool',\n title: 'Hide the toolbar',\n text: '✕',\n onclick: () => {\n state.closed = true\n state.open = false\n persist()\n render()\n },\n })\n\n bar.replaceChildren(...items, spacer, appItem, full, toggle, close)\n }\n\n // ── The panel ───────────────────────────────────────────\n\n const TABS = [\n { name: 'request', label: 'Request' },\n { name: 'queries', label: 'Queries', count: (p) => queriesOf(p).total, tone: (p) => dbTone(p) },\n { name: 'logs', label: 'Logs', count: (p) => logsOf(p).total, tone: (p) => logTone(p) },\n { name: 'events', label: 'Events', count: (p) => eventsOf(p).length },\n { name: 'timeline', label: 'Timeline' },\n { name: 'cache', label: 'Cache', count: (p) => cacheOf(p).ops.length, hideEmpty: true },\n { name: 'mail', label: 'Mail', count: (p) => mailsOf(p).length, hideEmpty: true },\n {\n name: 'exception',\n label: 'Exception',\n count: (p) => (typeof panelOf(p, 'exception').message === 'string' ? 1 : 0),\n tone: () => 'bad',\n hideEmpty: true,\n },\n { name: 'ajax', label: 'AJAX', count: () => state.requests.length - 1, hideEmpty: true },\n { name: 'app', label: 'App' },\n ]\n\n function dbTone(profile) {\n const q = queriesOf(profile)\n return q.failed > 0 ? 'bad' : q.duplicates > 0 ? 'warn' : ''\n }\n\n function logTone(profile) {\n const logs = logsOf(profile)\n return logs.errors > 0 ? 'bad' : logs.warnings > 0 ? 'warn' : ''\n }\n\n function renderPanel(profile) {\n panel.style.height = `${state.height}px`\n const visible = TABS.filter((tab) => !tab.hideEmpty || (tab.count?.(profile) || 0) > 0)\n if (!visible.some((tab) => tab.name === state.tab)) state.tab = 'request'\n tabs.replaceChildren(\n ...visible.map((tab) => {\n const count = tab.count ? tab.count(profile) : undefined\n return h(\n 'button',\n {\n class: 'tab',\n dataset: state.tab === tab.name ? { active: '' } : {},\n onclick: () => {\n state.tab = tab.name\n persist()\n render()\n },\n },\n tab.label,\n count\n ? h('span', {\n class: 'count',\n dataset: { tone: tab.tone?.(profile) || '' },\n text: count,\n })\n : null,\n )\n }),\n )\n const view = VIEWS[state.tab] || VIEWS.request\n // replaceChildren would print a null as the text \"null\".\n body.replaceChildren(\n ...[view(profile)].flat(Infinity).filter((node) => node !== null && node !== undefined),\n )\n }\n\n function table(rows) {\n const present = rows.filter(\n ([, value]) => value !== undefined && value !== null && value !== '',\n )\n if (present.length === 0) return h('div', { class: 'empty', text: 'Nothing.' })\n return h(\n 'table',\n null,\n present.map(([key, value]) =>\n h(\n 'tr',\n null,\n h('td', { class: 'key', text: key }),\n h(\n 'td',\n null,\n value instanceof Node\n ? value\n : typeof value === 'object'\n ? h('pre', { text: json(value) })\n : h('span', { text: String(value) }),\n ),\n ),\n ),\n )\n }\n\n function objectTable(value) {\n if (!value || typeof value !== 'object' || Object.keys(value).length === 0) {\n return h('div', { class: 'empty', text: 'Empty.' })\n }\n return table(Object.entries(value))\n }\n\n function searchBox(value, onInput, placeholder) {\n const input = h('input', { type: 'search', placeholder, value })\n input.addEventListener('input', () => {\n onInput(input.value)\n const at = input.selectionStart\n render()\n const again = body.querySelector('input[type=search]')\n if (again) {\n again.focus()\n again.setSelectionRange(at, at)\n }\n })\n return input\n }\n\n const VIEWS = {\n request(profile) {\n const r = panelOf(profile, 'request')\n return [\n h('h3', { text: 'Route' }),\n table([\n ['Name', r.route],\n ['Pattern', r.pattern],\n ['Controller', r.controller],\n ['Params', r.params && Object.keys(r.params).length ? r.params : undefined],\n ]),\n h('h3', { text: 'Request' }),\n table([\n ['Method', profile.method],\n ['URL', profile.url],\n ['Path', r.path],\n ['IP', r.ip],\n ['Request id', r.requestId],\n ['AJAX', r.ajax ? 'yes' : undefined],\n ['Time', new Date(profile.time).toLocaleString()],\n ]),\n h('h3', { text: 'Query string' }),\n objectTable(r.query),\n h('h3', { text: 'Body' }),\n r.body === undefined\n ? h('div', { class: 'empty', text: 'No body.' })\n : h('pre', { text: json(r.body) }),\n h('h3', { text: 'Headers' }),\n objectTable(r.headers),\n h('h3', { text: 'Cookies' }),\n r.cookies?.length\n ? h(\n 'div',\n null,\n r.cookies.map((name) => [h('span', { class: 'chip', text: name }), ' ']),\n )\n : h('div', { class: 'empty', text: 'None.' }),\n h('h3', { text: 'Session' }),\n r.session === undefined\n ? h('div', { class: 'empty', text: 'No session.' })\n : objectTable(r.session),\n h('h3', { text: 'User' }),\n r.user === undefined\n ? h('div', { class: 'empty', text: 'Guest.' })\n : h('pre', { text: json(r.user) }),\n h('h3', { text: 'Response' }),\n table([\n ['Status', profile.status],\n ['Content type', r.response?.contentType],\n ['Duration', ms(profile.duration)],\n ]),\n r.response ? objectTable(r.response.headers) : null,\n ]\n },\n\n queries(profile) {\n const q = queriesOf(profile)\n const f = state.filters\n if (q.total === 0) {\n return h('div', {\n class: 'empty',\n text: 'No query reached the profiler for this request. A data layer reports statements as `db:query` on the application emitter.',\n })\n }\n let rows = q.queries.slice()\n if (f.onlyDuplicates) rows = rows.filter((query) => query.copies > 1)\n if (f.query) {\n const needle = f.query.toLowerCase()\n rows = rows.filter((query) =>\n `${query.sql} ${JSON.stringify(query.bindings)}`.toLowerCase().includes(needle),\n )\n }\n if (f.sortBySlowest) rows.sort((a, b) => b.duration - a.duration)\n const max = Math.max(q.slowest, 0.0001)\n return [\n h(\n 'div',\n { class: 'toolbar' },\n h('span', {\n text: `${q.total} statements · ${q.unique} unique · ${q.duplicates} duplicated · ${q.failed} failed · ${ms(q.duration)}`,\n }),\n q.capped\n ? h('span', {\n class: 'chip',\n dataset: { tone: 'warn' },\n text: `listing stopped at ${q.queries.length}`,\n })\n : null,\n searchBox(\n f.query,\n (value) => {\n f.query = value\n },\n 'Filter SQL',\n ),\n h('button', {\n class: 'btn',\n dataset: f.onlyDuplicates ? { on: '' } : {},\n text: 'Only duplicates',\n onclick: () => {\n f.onlyDuplicates = !f.onlyDuplicates\n render()\n },\n }),\n h('button', {\n class: 'btn',\n dataset: f.sortBySlowest ? { on: '' } : {},\n text: 'Slowest first',\n onclick: () => {\n f.sortBySlowest = !f.sortBySlowest\n render()\n },\n }),\n ),\n h(\n 'div',\n { class: 'list' },\n rows.map((query) => {\n const copyButton = h('button', {\n class: 'btn',\n text: 'copy',\n onclick: (event) => {\n event.stopPropagation()\n copy(query.sql, copyButton)\n },\n })\n return h(\n 'div',\n {\n class: 'entry',\n dataset: { tone: query.error ? 'bad' : query.copies > 1 ? 'warn' : '' },\n onclick: (event) => {\n if (getSelection()?.type === 'Range') return\n event.currentTarget.toggleAttribute('data-expanded')\n },\n },\n h(\n 'div',\n { class: 'num' },\n ms(query.duration),\n h('div', {\n class: 'meter',\n style: `width:${Math.max(4, (query.duration / max) * 100)}%`,\n }),\n ),\n h(\n 'div',\n null,\n h('div', { class: 'sql', text: query.sql }),\n query.error ? h('div', { class: 'bad', text: query.error }) : null,\n h(\n 'div',\n { class: 'meta' },\n query.bindings?.length\n ? h('span', { class: 'mono', text: JSON.stringify(query.bindings) })\n : null,\n ),\n ),\n h(\n 'div',\n null,\n query.copies > 1\n ? [\n h('span', {\n class: 'chip',\n dataset: { tone: 'warn' },\n text: `× ${query.copies}`,\n }),\n ' ',\n ]\n : null,\n query.model ? [h('span', { class: 'chip', text: query.model }), ' '] : null,\n query.method ? [h('span', { class: 'chip', text: query.method }), ' '] : null,\n query.inTransaction ? [h('span', { class: 'chip', text: 'trx' }), ' '] : null,\n query.connection\n ? [h('span', { class: 'chip', text: query.connection }), ' ']\n : null,\n copyButton,\n ),\n h(\n 'div',\n { class: 'extra' },\n table([\n ['Started at', `+${ms(query.at)}`],\n ['Bindings', query.bindings],\n ['Copies', query.copies > 1 ? query.copies : undefined],\n ]),\n ),\n )\n }),\n ),\n ]\n },\n\n logs(profile) {\n const logs = logsOf(profile)\n const f = state.filters\n if (logs.total === 0)\n return h('div', { class: 'empty', text: 'Nothing was logged during this request.' })\n const levels = [...new Set(logs.lines.map((line) => line.level))]\n let lines = logs.lines.filter((line) => f.levels[line.level] !== false)\n if (f.logText) {\n const needle = f.logText.toLowerCase()\n lines = lines.filter((line) => line.message.toLowerCase().includes(needle))\n }\n const tone = (level) =>\n level === 'error' || level === 'fatal' ? 'bad' : level === 'warn' ? 'warn' : ''\n return [\n h(\n 'div',\n { class: 'toolbar' },\n searchBox(\n f.logText,\n (value) => {\n f.logText = value\n },\n 'Filter messages',\n ),\n levels.map((level) =>\n h('button', {\n class: 'chip',\n dataset: { tone: tone(level), ...(f.levels[level] === false ? { off: '' } : {}) },\n text: level,\n onclick: () => {\n f.levels[level] = f.levels[level] === false\n render()\n },\n }),\n ),\n ),\n h(\n 'div',\n { class: 'list' },\n lines.map((line) =>\n h(\n 'div',\n {\n class: 'entry',\n dataset: { tone: tone(line.level) },\n onclick: (event) => {\n if (getSelection()?.type === 'Range') return\n event.currentTarget.toggleAttribute('data-expanded')\n },\n },\n h('div', { class: 'num', text: `+${ms(line.at)}` }),\n h('div', { class: 'sql', text: line.message }),\n h('span', { class: 'chip', dataset: { tone: tone(line.level) }, text: line.level }),\n line.context\n ? h('div', { class: 'extra' }, h('pre', { text: json(line.context) }))\n : null,\n ),\n ),\n ),\n ]\n },\n\n events(profile) {\n const events = eventsOf(profile)\n const f = state.filters\n if (events.length === 0)\n return h('div', { class: 'empty', text: 'No event was emitted during this request.' })\n const shown = f.eventText\n ? events.filter((event) => event.name.toLowerCase().includes(f.eventText.toLowerCase()))\n : events\n return [\n h(\n 'div',\n { class: 'toolbar' },\n h('span', { text: `${panelOf(profile, 'events').total || events.length} events` }),\n searchBox(\n f.eventText,\n (value) => {\n f.eventText = value\n },\n 'Filter by name',\n ),\n ),\n h(\n 'div',\n { class: 'list' },\n shown.map((event) =>\n h(\n 'div',\n {\n class: 'entry',\n onclick: (e) => {\n if (getSelection()?.type === 'Range') return\n e.currentTarget.toggleAttribute('data-expanded')\n },\n },\n h('div', { class: 'num', text: `+${ms(event.at)}` }),\n h('div', { class: 'mono', text: event.name }),\n h('span', null),\n h('div', { class: 'extra' }, h('pre', { text: json(event.data) })),\n ),\n ),\n ),\n ]\n },\n\n timeline(profile) {\n const total = Math.max(Number(profile.duration) || 0, 0.001)\n const lanes = [\n { kind: 'request', name: `${profile.method} ${profile.url}`, at: 0, duration: total },\n ]\n for (const query of queriesOf(profile).queries) {\n lanes.push({ kind: 'query', name: query.sql, at: query.at, duration: query.duration })\n }\n for (const line of logsOf(profile).lines) {\n lanes.push({\n kind: 'log',\n name: `${line.level}: ${line.message}`,\n at: line.at,\n duration: 0,\n })\n }\n for (const event of eventsOf(profile)) {\n lanes.push({ kind: 'event', name: event.name, at: event.at, duration: 0 })\n }\n lanes.sort((a, b) => a.at - b.at || (a.kind === 'request' ? -1 : 1))\n return [\n h(\n 'div',\n { class: 'toolbar' },\n ['request', 'query', 'log', 'event'].map((kind) =>\n h('span', { class: 'chip legend', dataset: { kind }, text: kind }),\n ),\n h('span', { text: `total ${ms(total)}` }),\n ),\n lanes.map((lane) =>\n h(\n 'div',\n { class: 'lane' },\n h('div', {\n class: lane.kind === 'query' ? 'name mono' : 'name',\n text: lane.name,\n title: lane.name,\n }),\n h(\n 'div',\n { class: 'track' },\n h('div', {\n class: 'span',\n dataset: { kind: lane.kind },\n style: `left:${Math.min(100, (lane.at / total) * 100)}%;width:${Math.min(100, (lane.duration / total) * 100)}%`,\n }),\n ),\n h('div', {\n class: 'num meta',\n text: lane.duration > 0 ? ms(lane.duration) : `+${ms(lane.at)}`,\n }),\n ),\n ),\n ]\n },\n\n cache(profile) {\n const cache = cacheOf(profile)\n return [\n h(\n 'div',\n { class: 'toolbar' },\n h('span', {\n text: `${cache.hits} hits · ${cache.misses} misses · ${cache.writes} writes`,\n }),\n ),\n h(\n 'table',\n null,\n h(\n 'tr',\n null,\n h('th', { text: 'At' }),\n h('th', { text: 'Operation' }),\n h('th', { text: 'Key' }),\n h('th', { text: 'Store' }),\n ),\n cache.ops.map((op) =>\n h(\n 'tr',\n null,\n h('td', { class: 'meta', text: `+${ms(op.at)}` }),\n h('td', { text: op.name.slice('cache:'.length) }),\n h('td', { class: 'mono', text: op.data?.key ?? '' }),\n h('td', { class: 'meta', text: op.data?.store ?? '' }),\n ),\n ),\n ),\n ]\n },\n\n mail(profile) {\n return h(\n 'div',\n { class: 'list' },\n mailsOf(profile).map((event) =>\n h(\n 'div',\n { class: 'entry', onclick: (e) => e.currentTarget.toggleAttribute('data-expanded') },\n h('div', { class: 'num', text: `+${ms(event.at)}` }),\n h('div', { class: 'mono', text: event.name }),\n h('span', null),\n h('div', { class: 'extra' }, h('pre', { text: json(event.data) })),\n ),\n ),\n )\n },\n\n exception(profile) {\n const e = panelOf(profile, 'exception')\n return [\n h('h3', { text: e.name || 'Error' }),\n h('div', { class: 'bad', text: e.message || '' }),\n e.code ? h('div', { class: 'meta', text: `code ${e.code}` }) : null,\n e.stack ? h('pre', { text: e.stack }) : null,\n ]\n },\n\n ajax() {\n return [\n h(\n 'div',\n { class: 'toolbar' },\n h('span', { text: `${state.requests.length - 1} requests made by this page` }),\n h('button', {\n class: 'btn',\n text: 'Clear',\n onclick: () => {\n state.requests.splice(1)\n state.current = state.requests[0] || null\n render()\n },\n }),\n ),\n h(\n 'table',\n null,\n h(\n 'tr',\n null,\n ['#', 'Method', 'URL', 'Status', 'Time', 'Type', 'Profile'].map((label) =>\n h('th', { text: label }),\n ),\n ),\n state.requests.map((r, index) =>\n h(\n 'tr',\n {\n class: r.profile ? 'pick' : '',\n dataset: state.current === r ? { active: '' } : {},\n onclick: () => {\n if (!r.profile) return\n state.current = r\n state.tab = 'request'\n render()\n },\n },\n h('td', { class: 'meta', text: index === 0 ? 'page' : String(index) }),\n h('td', { text: r.method }),\n h('td', { class: 'mono', text: r.url }),\n h(\n 'td',\n null,\n h('span', {\n class: 'chip',\n dataset: { tone: statusTone(r.status) },\n text: r.status || '—',\n }),\n ),\n h('td', { class: 'meta', text: ms(r.duration) }),\n h('td', { class: 'meta', text: r.kind }),\n h(\n 'td',\n null,\n TOKEN.test(r.token || '')\n ? h('a', {\n href: `${base}/${r.token}`,\n target: '_blank',\n rel: 'noopener',\n text: r.token,\n onclick: (e) => e.stopPropagation(),\n })\n : h('span', { class: 'meta', text: 'n/a' }),\n ),\n ),\n ),\n ),\n ]\n },\n\n app(profile) {\n const app = panelOf(profile, 'app')\n const memory = panelOf(profile, 'memory')\n return [\n h('h3', { text: 'Application' }),\n table([\n ['ream', app.ream],\n ['Environment', app.environment],\n ['Profile token', profile.token],\n ['All profiles', h('a', { href: base, target: '_blank', rel: 'noopener', text: base })],\n ]),\n h('h3', { text: 'Runtime' }),\n table([\n ['Node.js', app.node],\n ['Platform', app.platform],\n ['Process id', app.pid],\n ['Uptime', app.uptime !== undefined ? `${app.uptime} s` : undefined],\n ['Heap used', mb(memory.usedMb)],\n ['Heap total', mb(memory.totalMb)],\n ['Resident', mb(memory.rssMb)],\n ]),\n ]\n },\n }\n\n // ── Render ──────────────────────────────────────────────\n\n function render() {\n const entry = state.current\n const profile = entry?.profile\n // Nothing to show until the page's profile has arrived.\n shell.style.display = profile || state.closed ? '' : 'none'\n shell.toggleAttribute('data-closed', state.closed)\n shell.toggleAttribute('data-open', Boolean(state.open && profile && !state.closed))\n if (profile) {\n renderBar(profile, entry)\n if (state.open && !state.closed) renderPanel(profile)\n }\n offsetPage()\n }\n\n function mount() {\n document.body.append(host)\n state.requests.unshift({\n kind: 'page',\n method: 'GET',\n url: location.pathname + location.search,\n token: pageToken,\n duration: 0,\n })\n load(state.requests[0])\n window.addEventListener('resize', () => {\n state.height = clampHeight(state.height)\n render()\n })\n }\n\n if (document.body) mount()\n else document.addEventListener('DOMContentLoaded', mount, { once: true })\n})()\n";
|
|
4
|
+
/** The debug toolbar's stylesheet, served at /__ream/profiler/_assets/toolbar.css. */
|
|
5
|
+
export const TOOLBAR_CSS = "/*\n * The debug toolbar's stylesheet. Loaded into the bar's shadow root from\n * /__ream/profiler/_assets/toolbar.css: a same-origin stylesheet passes a\n * `style-src 'self'` policy, where an inline one would be dropped.\n */\n\n:host {\n all: initial;\n}\n\n* {\n box-sizing: border-box;\n}\n\n.rp {\n --bg: #17191d;\n --bg-2: #1f2228;\n --bg-3: #272b33;\n --line: #2f343d;\n --text: #e6e8eb;\n --muted: #8b939e;\n --accent: #6cb6ff;\n --ok: #3fb950;\n --warn: #d29922;\n --bad: #f85149;\n --bar: 34px;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2147483000;\n display: flex;\n flex-direction: column;\n color: var(--text);\n font:\n 12px / 1.45 ui-sans-serif,\n system-ui,\n -apple-system,\n \"Segoe UI\",\n sans-serif;\n text-align: left;\n}\n\n.rp[data-closed] {\n left: auto;\n right: 8px;\n bottom: 8px;\n}\n\n.mono,\n.sql,\npre,\ncode {\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 12px;\n}\n\nbutton {\n font: inherit;\n color: inherit;\n background: none;\n border: 0;\n cursor: pointer;\n padding: 0;\n}\n\n/* The closed state: one small button in the corner. */\n.restore {\n display: none;\n width: 34px;\n height: 34px;\n border-radius: 8px;\n background: var(--bg);\n border: 1px solid var(--line);\n color: var(--accent);\n font-weight: 700;\n box-shadow: 0 2px 10px rgb(0 0 0 / 0.4);\n}\n\n.rp[data-closed] .restore {\n display: block;\n}\n\n/* ── The bar ─────────────────────────────────────────────── */\n\n.bar {\n display: flex;\n align-items: stretch;\n height: var(--bar);\n background: var(--bg);\n border-top: 1px solid var(--line);\n box-shadow: 0 -2px 10px rgb(0 0 0 / 0.35);\n}\n\n.item {\n position: relative;\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 11px;\n border-right: 1px solid var(--line);\n white-space: nowrap;\n cursor: pointer;\n}\n\n.item:hover,\n.item:focus-visible,\n.item[data-active] {\n background: var(--bg-2);\n outline: none;\n}\n\n.item .label {\n color: var(--muted);\n}\n\n.item .value {\n font-weight: 600;\n}\n\n.item[data-tone=\"ok\"] .value {\n color: var(--ok);\n}\n\n.item[data-tone=\"warn\"] {\n box-shadow: inset 0 -3px 0 var(--warn);\n}\n\n.item[data-tone=\"warn\"] .value {\n color: var(--warn);\n}\n\n.item[data-tone=\"bad\"] {\n box-shadow: inset 0 -3px 0 var(--bad);\n}\n\n.item[data-tone=\"bad\"] .value {\n color: var(--bad);\n}\n\n.status {\n display: inline-block;\n min-width: 34px;\n padding: 2px 6px;\n border-radius: 4px;\n text-align: center;\n font-weight: 700;\n color: #fff;\n background: #238636;\n}\n\n.status[data-tone=\"warn\"] {\n background: #9e6a03;\n}\n\n.status[data-tone=\"bad\"] {\n background: #b62324;\n}\n\n.spacer {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n padding: 0 10px;\n color: var(--muted);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.viewing {\n margin-left: 8px;\n padding: 1px 8px;\n border-radius: 999px;\n background: #1f3a5f;\n color: var(--accent);\n}\n\n.tool {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n border-left: 1px solid var(--line);\n color: var(--muted);\n}\n\n.tool:hover {\n color: var(--text);\n background: var(--bg-2);\n}\n\na {\n color: var(--accent);\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/* ── Hover summaries ─────────────────────────────────────── */\n\n.info {\n display: none;\n position: absolute;\n bottom: calc(100% + 1px);\n left: 0;\n min-width: 240px;\n max-width: 520px;\n max-height: 420px;\n overflow: auto;\n padding: 8px 10px;\n background: var(--bg-2);\n border: 1px solid var(--line);\n border-radius: 6px 6px 0 0;\n box-shadow: 0 -4px 14px rgb(0 0 0 / 0.4);\n cursor: default;\n white-space: normal;\n}\n\n.item:hover .info,\n.item:focus-within .info {\n display: block;\n}\n\n.rp[data-open] .item .info {\n display: none;\n}\n\n.row {\n display: flex;\n gap: 12px;\n padding: 3px 0;\n}\n\n.row b {\n flex: 0 0 130px;\n color: var(--muted);\n font-weight: 500;\n}\n\n.row span {\n overflow-wrap: anywhere;\n}\n\n/* ── The panel ───────────────────────────────────────────── */\n\n.panel {\n display: none;\n flex-direction: column;\n background: var(--bg);\n border-top: 1px solid var(--line);\n box-shadow: 0 -4px 16px rgb(0 0 0 / 0.4);\n}\n\n.rp[data-open] .panel {\n display: flex;\n}\n\n.rp[data-closed] .bar,\n.rp[data-closed] .panel {\n display: none;\n}\n\n.grip {\n height: 5px;\n cursor: row-resize;\n background: var(--bg-3);\n}\n\n.grip:hover {\n background: var(--accent);\n}\n\n.tabs {\n display: flex;\n gap: 2px;\n padding: 0 6px;\n border-bottom: 1px solid var(--line);\n background: var(--bg-2);\n overflow-x: auto;\n}\n\n.tab {\n padding: 7px 12px;\n color: var(--muted);\n border-bottom: 2px solid transparent;\n white-space: nowrap;\n}\n\n.tab:hover {\n color: var(--text);\n}\n\n.tab[data-active] {\n color: var(--text);\n border-bottom-color: var(--accent);\n}\n\n.tab .count {\n margin-left: 6px;\n padding: 0 6px;\n border-radius: 999px;\n background: var(--bg-3);\n color: var(--text);\n font-size: 11px;\n}\n\n.tab .count[data-tone=\"warn\"] {\n background: #5c4106;\n}\n\n.tab .count[data-tone=\"bad\"] {\n background: #6e1a1b;\n}\n\n.body {\n flex: 1;\n overflow: auto;\n padding: 10px 12px 14px;\n}\n\n.toolbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n margin-bottom: 10px;\n color: var(--muted);\n}\n\n.toolbar input[type=\"search\"] {\n min-width: 220px;\n padding: 4px 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--bg-2);\n color: var(--text);\n font: inherit;\n}\n\n.chip {\n display: inline-block;\n padding: 1px 7px;\n border-radius: 999px;\n background: var(--bg-3);\n color: var(--muted);\n font-size: 11px;\n}\n\nbutton.chip[data-off] {\n text-decoration: line-through;\n opacity: 0.55;\n}\n\n.chip[data-tone=\"warn\"] {\n background: #5c4106;\n color: #f2cc60;\n}\n\n.chip[data-tone=\"bad\"] {\n background: #6e1a1b;\n color: #ffa198;\n}\n\n.chip[data-tone=\"ok\"] {\n background: #133d20;\n color: #7ee787;\n}\n\n.btn {\n padding: 3px 9px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--bg-2);\n}\n\n.btn:hover,\n.btn[data-on] {\n border-color: var(--accent);\n color: var(--accent);\n}\n\n.list {\n border-top: 1px solid var(--line);\n}\n\n.entry {\n display: grid;\n grid-template-columns: 78px 1fr auto;\n gap: 10px;\n padding: 6px 4px;\n border-bottom: 1px solid var(--line);\n cursor: pointer;\n}\n\n.entry:hover {\n background: var(--bg-2);\n}\n\n.entry[data-tone=\"warn\"] {\n box-shadow: inset 3px 0 0 var(--warn);\n}\n\n.entry[data-tone=\"bad\"] {\n box-shadow: inset 3px 0 0 var(--bad);\n}\n\n.entry .num {\n color: var(--muted);\n text-align: right;\n}\n\n.entry .meter {\n height: 3px;\n margin-top: 4px;\n background: var(--accent);\n border-radius: 2px;\n opacity: 0.6;\n}\n\n.entry .extra {\n display: none;\n grid-column: 2 / 4;\n}\n\n.entry[data-expanded] .extra {\n display: block;\n}\n\n.sql {\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n.meta {\n color: var(--muted);\n}\n\n.bad {\n color: var(--bad);\n}\n\npre {\n margin: 6px 0 0;\n padding: 8px;\n max-height: 320px;\n overflow: auto;\n border-radius: 4px;\n background: var(--bg-2);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\nh3 {\n margin: 14px 0 6px;\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--muted);\n}\n\nh3:first-child {\n margin-top: 0;\n}\n\ntable {\n width: 100%;\n border-collapse: collapse;\n}\n\ntd,\nth {\n padding: 4px 8px;\n border-bottom: 1px solid var(--line);\n text-align: left;\n vertical-align: top;\n}\n\nth {\n color: var(--muted);\n font-weight: 500;\n}\n\ntd.key {\n width: 200px;\n color: var(--muted);\n}\n\ntr.pick {\n cursor: pointer;\n}\n\ntr.pick:hover,\ntr.pick[data-active] {\n background: var(--bg-2);\n}\n\n.empty {\n padding: 18px 4px;\n color: var(--muted);\n}\n\n/* ── Timeline ────────────────────────────────────────────── */\n\n.lane {\n display: grid;\n grid-template-columns: 260px 1fr 70px;\n align-items: center;\n gap: 10px;\n padding: 3px 0;\n}\n\n.lane .name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.track {\n position: relative;\n height: 12px;\n background: var(--bg-2);\n border-radius: 2px;\n}\n\n.span {\n position: absolute;\n top: 0;\n bottom: 0;\n min-width: 2px;\n border-radius: 2px;\n background: var(--accent);\n}\n\n.legend::before {\n content: \"\";\n display: inline-block;\n width: 8px;\n height: 8px;\n margin-right: 5px;\n border-radius: 2px;\n background: var(--accent);\n}\n\n.legend[data-kind=\"request\"]::before {\n background: #3b4250;\n}\n\n.legend[data-kind=\"query\"]::before {\n background: #a371f7;\n}\n\n.legend[data-kind=\"log\"]::before {\n background: var(--warn);\n}\n\n.legend[data-kind=\"event\"]::before {\n background: var(--ok);\n}\n\n.span[data-kind=\"request\"] {\n background: #3b4250;\n}\n\n.span[data-kind=\"query\"] {\n background: #a371f7;\n}\n\n.span[data-kind=\"log\"] {\n background: var(--warn);\n}\n\n.span[data-kind=\"event\"] {\n background: var(--ok);\n}\n\n@media (max-width: 760px) {\n .item .label {\n display: none;\n }\n\n .lane {\n grid-template-columns: 140px 1fr 56px;\n }\n}\n\n@media print {\n .rp {\n display: none;\n }\n}\n";
|
|
6
|
+
//# sourceMappingURL=client.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.generated.js","sourceRoot":"","sources":["../../src/profiler/client.generated.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,iFAAiF;AACjF,MAAM,CAAC,MAAM,UAAU,GAAW,owyCAAowyC,CAAA;AAEtyyC,sFAAsF;AACtF,MAAM,CAAC,MAAM,WAAW,GAAW,67SAA67S,CAAA"}
|