@engjts/nexus 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced/playground/generatePlaygroundHTML.d.ts.map +1 -1
- package/dist/advanced/playground/generatePlaygroundHTML.js +107 -0
- package/dist/advanced/playground/generatePlaygroundHTML.js.map +1 -1
- package/dist/advanced/playground/playground.d.ts +19 -0
- package/dist/advanced/playground/playground.d.ts.map +1 -1
- package/dist/advanced/playground/playground.js +70 -0
- package/dist/advanced/playground/playground.js.map +1 -1
- package/dist/advanced/playground/types.d.ts +20 -0
- package/dist/advanced/playground/types.d.ts.map +1 -1
- package/dist/core/application.d.ts +14 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/application.js +173 -71
- package/dist/core/application.js.map +1 -1
- package/dist/core/context-pool.d.ts +2 -13
- package/dist/core/context-pool.d.ts.map +1 -1
- package/dist/core/context-pool.js +7 -45
- package/dist/core/context-pool.js.map +1 -1
- package/dist/core/context.d.ts +108 -5
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +449 -53
- package/dist/core/context.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +9 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/middleware.d.ts +6 -0
- package/dist/core/middleware.d.ts.map +1 -1
- package/dist/core/middleware.js +83 -84
- package/dist/core/middleware.js.map +1 -1
- package/dist/core/performance/fast-json.d.ts +149 -0
- package/dist/core/performance/fast-json.d.ts.map +1 -0
- package/dist/core/performance/fast-json.js +473 -0
- package/dist/core/performance/fast-json.js.map +1 -0
- package/dist/core/router/file-router.d.ts +20 -7
- package/dist/core/router/file-router.d.ts.map +1 -1
- package/dist/core/router/file-router.js +41 -13
- package/dist/core/router/file-router.js.map +1 -1
- package/dist/core/router/index.d.ts +6 -0
- package/dist/core/router/index.d.ts.map +1 -1
- package/dist/core/router/index.js +33 -6
- package/dist/core/router/index.js.map +1 -1
- package/dist/core/router/radix-tree.d.ts +4 -1
- package/dist/core/router/radix-tree.d.ts.map +1 -1
- package/dist/core/router/radix-tree.js +7 -3
- package/dist/core/router/radix-tree.js.map +1 -1
- package/dist/core/serializer.d.ts +251 -0
- package/dist/core/serializer.d.ts.map +1 -0
- package/dist/core/serializer.js +290 -0
- package/dist/core/serializer.js.map +1 -0
- package/dist/core/types.d.ts +39 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/documentation/01-getting-started.md +0 -240
- package/documentation/02-context.md +0 -335
- package/documentation/03-routing.md +0 -397
- package/documentation/04-middleware.md +0 -483
- package/documentation/05-validation.md +0 -514
- package/documentation/06-error-handling.md +0 -465
- package/documentation/07-performance.md +0 -364
- package/documentation/08-adapters.md +0 -470
- package/documentation/09-api-reference.md +0 -548
- package/documentation/10-examples.md +0 -582
- package/documentation/11-deployment.md +0 -477
- package/documentation/12-sentry.md +0 -620
- package/documentation/13-sentry-data-storage.md +0 -996
- package/documentation/14-sentry-data-reference.md +0 -457
- package/documentation/15-sentry-summary.md +0 -409
- package/documentation/16-alerts-system.md +0 -745
- package/documentation/17-alert-adapters.md +0 -696
- package/documentation/18-alerts-implementation-summary.md +0 -385
- package/documentation/19-class-based-routing.md +0 -840
- package/documentation/20-websocket-realtime.md +0 -813
- package/documentation/21-cache-system.md +0 -510
- package/documentation/22-job-queue.md +0 -772
- package/documentation/23-sentry-plugin.md +0 -551
- package/documentation/24-testing-utilities.md +0 -1287
- package/documentation/25-api-versioning.md +0 -533
- package/documentation/26-context-store.md +0 -607
- package/documentation/27-dependency-injection.md +0 -329
- package/documentation/28-lifecycle-hooks.md +0 -521
- package/documentation/29-package-structure.md +0 -196
- package/documentation/30-plugin-system.md +0 -414
- package/documentation/31-jwt-authentication.md +0 -597
- package/documentation/32-cli.md +0 -268
- package/documentation/ALERTS-COMPLETE-SUMMARY.md +0 -429
- package/documentation/ALERTS-INDEX.md +0 -330
- package/documentation/ALERTS-QUICK-REFERENCE.md +0 -286
- package/documentation/README.md +0 -178
- package/documentation/index.html +0 -34
- package/modern_framework_paper.md +0 -1870
- package/public/css/style.css +0 -87
- package/public/index.html +0 -34
- package/public/js/app.js +0 -27
- package/src/advanced/cache/InMemoryCacheStore.ts +0 -68
- package/src/advanced/cache/MultiTierCache.ts +0 -194
- package/src/advanced/cache/RedisCacheStore.ts +0 -341
- package/src/advanced/cache/index.ts +0 -5
- package/src/advanced/cache/types.ts +0 -40
- package/src/advanced/graphql/SimpleDataLoader.ts +0 -42
- package/src/advanced/graphql/index.ts +0 -22
- package/src/advanced/graphql/server.ts +0 -252
- package/src/advanced/graphql/types.ts +0 -42
- package/src/advanced/jobs/InMemoryQueueStore.ts +0 -68
- package/src/advanced/jobs/JobQueue.ts +0 -556
- package/src/advanced/jobs/RedisQueueStore.ts +0 -367
- package/src/advanced/jobs/index.ts +0 -5
- package/src/advanced/jobs/types.ts +0 -70
- package/src/advanced/observability/APMManager.ts +0 -163
- package/src/advanced/observability/AlertManager.ts +0 -109
- package/src/advanced/observability/MetricRegistry.ts +0 -151
- package/src/advanced/observability/ObservabilityCenter.ts +0 -304
- package/src/advanced/observability/StructuredLogger.ts +0 -154
- package/src/advanced/observability/TracingManager.ts +0 -117
- package/src/advanced/observability/adapters.ts +0 -304
- package/src/advanced/observability/createObservabilityMiddleware.ts +0 -63
- package/src/advanced/observability/index.ts +0 -11
- package/src/advanced/observability/types.ts +0 -174
- package/src/advanced/playground/extractPathParams.ts +0 -6
- package/src/advanced/playground/generateFieldExample.ts +0 -31
- package/src/advanced/playground/generatePlaygroundHTML.ts +0 -1849
- package/src/advanced/playground/generateSummary.ts +0 -19
- package/src/advanced/playground/getTagFromPath.ts +0 -9
- package/src/advanced/playground/index.ts +0 -8
- package/src/advanced/playground/playground.ts +0 -170
- package/src/advanced/playground/types.ts +0 -20
- package/src/advanced/playground/zodToExample.ts +0 -16
- package/src/advanced/playground/zodToParams.ts +0 -15
- package/src/advanced/postman/buildAuth.ts +0 -31
- package/src/advanced/postman/buildBody.ts +0 -15
- package/src/advanced/postman/buildQueryParams.ts +0 -27
- package/src/advanced/postman/buildRequestItem.ts +0 -36
- package/src/advanced/postman/buildResponses.ts +0 -11
- package/src/advanced/postman/buildUrl.ts +0 -33
- package/src/advanced/postman/capitalize.ts +0 -4
- package/src/advanced/postman/generateCollection.ts +0 -59
- package/src/advanced/postman/generateEnvironment.ts +0 -34
- package/src/advanced/postman/generateExampleFromZod.ts +0 -21
- package/src/advanced/postman/generateFieldExample.ts +0 -45
- package/src/advanced/postman/generateName.ts +0 -20
- package/src/advanced/postman/generateUUID.ts +0 -11
- package/src/advanced/postman/getTagFromPath.ts +0 -10
- package/src/advanced/postman/index.ts +0 -28
- package/src/advanced/postman/postman.ts +0 -156
- package/src/advanced/postman/slugify.ts +0 -7
- package/src/advanced/postman/types.ts +0 -140
- package/src/advanced/realtime/index.ts +0 -18
- package/src/advanced/realtime/websocket.ts +0 -231
- package/src/advanced/sentry/index.ts +0 -1236
- package/src/advanced/sentry/types.ts +0 -355
- package/src/advanced/static/generateDirectoryListing.ts +0 -47
- package/src/advanced/static/generateETag.ts +0 -7
- package/src/advanced/static/getMimeType.ts +0 -9
- package/src/advanced/static/index.ts +0 -32
- package/src/advanced/static/isSafePath.ts +0 -13
- package/src/advanced/static/publicDir.ts +0 -21
- package/src/advanced/static/serveStatic.ts +0 -225
- package/src/advanced/static/spa.ts +0 -24
- package/src/advanced/static/types.ts +0 -159
- package/src/advanced/swagger/SwaggerGenerator.ts +0 -66
- package/src/advanced/swagger/buildOperation.ts +0 -61
- package/src/advanced/swagger/buildParameters.ts +0 -61
- package/src/advanced/swagger/buildRequestBody.ts +0 -21
- package/src/advanced/swagger/buildResponses.ts +0 -54
- package/src/advanced/swagger/capitalize.ts +0 -5
- package/src/advanced/swagger/convertPath.ts +0 -9
- package/src/advanced/swagger/createSwagger.ts +0 -12
- package/src/advanced/swagger/generateOperationId.ts +0 -21
- package/src/advanced/swagger/generateSpec.ts +0 -105
- package/src/advanced/swagger/generateSummary.ts +0 -24
- package/src/advanced/swagger/generateSwaggerUI.ts +0 -70
- package/src/advanced/swagger/generateThemeCss.ts +0 -53
- package/src/advanced/swagger/index.ts +0 -25
- package/src/advanced/swagger/swagger.ts +0 -237
- package/src/advanced/swagger/types.ts +0 -206
- package/src/advanced/swagger/zodFieldToOpenAPI.ts +0 -94
- package/src/advanced/swagger/zodSchemaToOpenAPI.ts +0 -50
- package/src/advanced/swagger/zodToOpenAPI.ts +0 -22
- package/src/advanced/testing/factory.ts +0 -509
- package/src/advanced/testing/harness.ts +0 -612
- package/src/advanced/testing/index.ts +0 -430
- package/src/advanced/testing/load-test.ts +0 -618
- package/src/advanced/testing/mock-server.ts +0 -498
- package/src/advanced/testing/mock.ts +0 -670
- package/src/cli/bin.ts +0 -9
- package/src/cli/cli.ts +0 -158
- package/src/cli/commands/add.ts +0 -178
- package/src/cli/commands/build.ts +0 -73
- package/src/cli/commands/create.ts +0 -166
- package/src/cli/commands/dev.ts +0 -85
- package/src/cli/commands/generate.ts +0 -99
- package/src/cli/commands/help.ts +0 -95
- package/src/cli/commands/init.ts +0 -91
- package/src/cli/commands/version.ts +0 -38
- package/src/cli/index.ts +0 -6
- package/src/cli/templates/generators.ts +0 -359
- package/src/cli/templates/index.ts +0 -680
- package/src/cli/utils/exec.ts +0 -52
- package/src/cli/utils/file-system.ts +0 -78
- package/src/cli/utils/logger.ts +0 -111
- package/src/core/adapter.ts +0 -88
- package/src/core/application.ts +0 -1335
- package/src/core/context-pool.ts +0 -127
- package/src/core/context.ts +0 -412
- package/src/core/index.ts +0 -80
- package/src/core/middleware.ts +0 -262
- package/src/core/performance/buffer-pool.ts +0 -108
- package/src/core/performance/middleware-optimizer.ts +0 -162
- package/src/core/plugin/PluginManager.ts +0 -435
- package/src/core/plugin/builder.ts +0 -358
- package/src/core/plugin/index.ts +0 -50
- package/src/core/plugin/types.ts +0 -214
- package/src/core/router/file-router.ts +0 -594
- package/src/core/router/index.ts +0 -227
- package/src/core/router/radix-tree.ts +0 -226
- package/src/core/store/index.ts +0 -30
- package/src/core/store/registry.ts +0 -178
- package/src/core/store/request-store.ts +0 -240
- package/src/core/store/types.ts +0 -233
- package/src/core/types.ts +0 -574
- package/src/database/adapter.ts +0 -35
- package/src/database/adapters/index.ts +0 -1
- package/src/database/adapters/mysql.ts +0 -669
- package/src/database/database.ts +0 -70
- package/src/database/dialect.ts +0 -388
- package/src/database/index.ts +0 -12
- package/src/database/migrations.ts +0 -86
- package/src/database/optimizer.ts +0 -125
- package/src/database/query-builder.ts +0 -404
- package/src/database/realtime.ts +0 -53
- package/src/database/schema.ts +0 -71
- package/src/database/transactions.ts +0 -56
- package/src/database/types.ts +0 -87
- package/src/deployment/cluster.ts +0 -471
- package/src/deployment/config.ts +0 -454
- package/src/deployment/docker.ts +0 -599
- package/src/deployment/graceful-shutdown.ts +0 -373
- package/src/deployment/index.ts +0 -56
- package/src/index.ts +0 -264
- package/src/security/adapter.ts +0 -318
- package/src/security/auth/JWTPlugin.ts +0 -234
- package/src/security/auth/JWTProvider.ts +0 -316
- package/src/security/auth/adapter.ts +0 -12
- package/src/security/auth/jwt.ts +0 -234
- package/src/security/auth/middleware.ts +0 -188
- package/src/security/csrf.ts +0 -220
- package/src/security/headers.ts +0 -108
- package/src/security/index.ts +0 -60
- package/src/security/rate-limit/adapter.ts +0 -7
- package/src/security/rate-limit/memory.ts +0 -108
- package/src/security/rate-limit/middleware.ts +0 -181
- package/src/security/sanitization.ts +0 -75
- package/src/security/types.ts +0 -240
- package/src/security/utils.ts +0 -52
- package/tsconfig.json +0 -39
|
@@ -1,355 +0,0 @@
|
|
|
1
|
-
// ============================================
|
|
2
|
-
// Types & Interfaces
|
|
3
|
-
// ============================================
|
|
4
|
-
|
|
5
|
-
import { Context } from "../../core/types";
|
|
6
|
-
|
|
7
|
-
export type SeverityLevel = 'fatal' | 'error' | 'warning' | 'info' | 'debug';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export interface SentryUser {
|
|
11
|
-
id?: string;
|
|
12
|
-
email?: string;
|
|
13
|
-
username?: string;
|
|
14
|
-
ip_address?: string;
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface SentryBreadcrumb {
|
|
19
|
-
type?: 'default' | 'http' | 'navigation' | 'error' | 'debug' | 'query' | 'info';
|
|
20
|
-
category?: string;
|
|
21
|
-
message?: string;
|
|
22
|
-
data?: Record<string, any>;
|
|
23
|
-
level?: SeverityLevel;
|
|
24
|
-
timestamp?: number;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface SentryException {
|
|
28
|
-
type: string;
|
|
29
|
-
value: string;
|
|
30
|
-
stacktrace?: {
|
|
31
|
-
frames: SentryStackFrame[];
|
|
32
|
-
};
|
|
33
|
-
mechanism?: {
|
|
34
|
-
type: string;
|
|
35
|
-
handled: boolean;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export interface SentryStackFrame {
|
|
40
|
-
filename?: string;
|
|
41
|
-
function?: string;
|
|
42
|
-
module?: string;
|
|
43
|
-
lineno?: number;
|
|
44
|
-
colno?: number;
|
|
45
|
-
abs_path?: string;
|
|
46
|
-
context_line?: string;
|
|
47
|
-
pre_context?: string[];
|
|
48
|
-
post_context?: string[];
|
|
49
|
-
in_app?: boolean;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export interface SentryEvent {
|
|
53
|
-
event_id: string;
|
|
54
|
-
timestamp: number;
|
|
55
|
-
platform: string;
|
|
56
|
-
level: SeverityLevel;
|
|
57
|
-
logger?: string;
|
|
58
|
-
transaction?: string;
|
|
59
|
-
server_name?: string;
|
|
60
|
-
release?: string;
|
|
61
|
-
environment?: string;
|
|
62
|
-
message?: string;
|
|
63
|
-
exception?: {
|
|
64
|
-
values: SentryException[];
|
|
65
|
-
};
|
|
66
|
-
user?: SentryUser;
|
|
67
|
-
tags?: Record<string, string>;
|
|
68
|
-
extra?: Record<string, any>;
|
|
69
|
-
contexts?: Record<string, any>;
|
|
70
|
-
breadcrumbs?: SentryBreadcrumb[];
|
|
71
|
-
request?: {
|
|
72
|
-
url?: string;
|
|
73
|
-
method?: string;
|
|
74
|
-
headers?: Record<string, string>;
|
|
75
|
-
query_string?: string;
|
|
76
|
-
data?: any;
|
|
77
|
-
};
|
|
78
|
-
fingerprint?: string[];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export interface SentryTransaction {
|
|
82
|
-
trace_id: string;
|
|
83
|
-
span_id: string;
|
|
84
|
-
parent_span_id?: string;
|
|
85
|
-
name: string;
|
|
86
|
-
op: string;
|
|
87
|
-
status: 'ok' | 'cancelled' | 'unknown' | 'invalid_argument' | 'deadline_exceeded' |
|
|
88
|
-
'not_found' | 'already_exists' | 'permission_denied' | 'resource_exhausted' |
|
|
89
|
-
'failed_precondition' | 'aborted' | 'out_of_range' | 'unimplemented' |
|
|
90
|
-
'internal_error' | 'unavailable' | 'data_loss' | 'unauthenticated';
|
|
91
|
-
start_timestamp: number;
|
|
92
|
-
timestamp?: number;
|
|
93
|
-
tags?: Record<string, string>;
|
|
94
|
-
data?: Record<string, any>;
|
|
95
|
-
spans?: SentrySpan[];
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export interface SentrySpan {
|
|
99
|
-
trace_id: string;
|
|
100
|
-
span_id: string;
|
|
101
|
-
parent_span_id?: string;
|
|
102
|
-
op: string;
|
|
103
|
-
description?: string;
|
|
104
|
-
status?: string;
|
|
105
|
-
start_timestamp: number;
|
|
106
|
-
timestamp?: number;
|
|
107
|
-
tags?: Record<string, string>;
|
|
108
|
-
data?: Record<string, any>;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* APM (Application Performance Monitoring) Options
|
|
113
|
-
* Integrated into Sentry for unified monitoring
|
|
114
|
-
*/
|
|
115
|
-
export interface APMOptions {
|
|
116
|
-
/**
|
|
117
|
-
* Enable APM features
|
|
118
|
-
* @default true when Sentry is enabled
|
|
119
|
-
*/
|
|
120
|
-
enabled?: boolean;
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Slow query threshold in milliseconds
|
|
124
|
-
* @default 1000
|
|
125
|
-
*/
|
|
126
|
-
slowQueryThreshold?: number;
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Maximum slow queries to store
|
|
130
|
-
* @default 100
|
|
131
|
-
*/
|
|
132
|
-
maxSlowQueries?: number;
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Memory leak detection options
|
|
136
|
-
*/
|
|
137
|
-
memoryLeakDetection?: {
|
|
138
|
-
/**
|
|
139
|
-
* Enable memory monitoring
|
|
140
|
-
* @default true
|
|
141
|
-
*/
|
|
142
|
-
enabled?: boolean;
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Check interval in milliseconds
|
|
146
|
-
* @default 60000 (1 minute)
|
|
147
|
-
*/
|
|
148
|
-
interval?: number;
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Growth threshold to trigger warning (0.5 = 50%)
|
|
152
|
-
* @default 0.5
|
|
153
|
-
*/
|
|
154
|
-
growthThreshold?: number;
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Number of snapshots to keep
|
|
158
|
-
* @default 60
|
|
159
|
-
*/
|
|
160
|
-
maxSnapshots?: number;
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Callback when memory leak is detected
|
|
165
|
-
*/
|
|
166
|
-
onMemoryLeak?: (stats: MemoryLeakStats) => void;
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Callback when slow query is detected
|
|
170
|
-
*/
|
|
171
|
-
onSlowQuery?: (query: SlowQueryRecord) => void;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export interface MemoryLeakStats {
|
|
175
|
-
growth: number;
|
|
176
|
-
growthPercent: string;
|
|
177
|
-
fromMB: string;
|
|
178
|
-
toMB: string;
|
|
179
|
-
snapshots: MemorySnapshot[];
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export interface MemorySnapshot {
|
|
183
|
-
timestamp: number;
|
|
184
|
-
heapUsed: number;
|
|
185
|
-
heapTotal: number;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
export interface SlowQueryRecord {
|
|
189
|
-
query: string;
|
|
190
|
-
duration: number;
|
|
191
|
-
timestamp: number;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
export interface SentryOptions {
|
|
195
|
-
/**
|
|
196
|
-
* Sentry DSN (Data Source Name)
|
|
197
|
-
* Format: https://<key>@<organization>.ingest.sentry.io/<project>
|
|
198
|
-
*/
|
|
199
|
-
dsn: string;
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Environment name (e.g., 'production', 'staging', 'development')
|
|
203
|
-
*/
|
|
204
|
-
environment?: string;
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Release version
|
|
208
|
-
*/
|
|
209
|
-
release?: string;
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Server name for identification
|
|
213
|
-
*/
|
|
214
|
-
serverName?: string;
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Sample rate for error events (0.0 to 1.0)
|
|
218
|
-
* @default 1.0 (100%)
|
|
219
|
-
*/
|
|
220
|
-
sampleRate?: number;
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Sample rate for performance/transaction events (0.0 to 1.0)
|
|
224
|
-
* @default 0.1 (10%)
|
|
225
|
-
*/
|
|
226
|
-
tracesSampleRate?: number;
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Enable performance monitoring
|
|
230
|
-
* @default true
|
|
231
|
-
*/
|
|
232
|
-
enableTracing?: boolean;
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* Maximum breadcrumbs to store
|
|
236
|
-
* @default 100
|
|
237
|
-
*/
|
|
238
|
-
maxBreadcrumbs?: number;
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Debug mode - logs Sentry operations
|
|
242
|
-
* @default false
|
|
243
|
-
*/
|
|
244
|
-
debug?: boolean;
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Attach stack traces to all messages
|
|
248
|
-
* @default false
|
|
249
|
-
*/
|
|
250
|
-
attachStacktrace?: boolean;
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Send default PII (Personally Identifiable Information)
|
|
254
|
-
* @default false
|
|
255
|
-
*/
|
|
256
|
-
sendDefaultPii?: boolean;
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Before send hook - allows modifying or dropping events
|
|
260
|
-
*/
|
|
261
|
-
beforeSend?: (event: SentryEvent, hint?: { originalException?: Error }) => SentryEvent | null;
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Before send transaction hook
|
|
265
|
-
*/
|
|
266
|
-
beforeSendTransaction?: (transaction: SentryTransaction) => SentryTransaction | null;
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Tags to add to all events
|
|
270
|
-
*/
|
|
271
|
-
tags?: Record<string, string>;
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Extra context to add to all events
|
|
275
|
-
*/
|
|
276
|
-
extra?: Record<string, any>;
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Paths to ignore (no error reporting)
|
|
280
|
-
*/
|
|
281
|
-
ignorePaths?: string[];
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Error types to ignore
|
|
285
|
-
*/
|
|
286
|
-
ignoreErrors?: (string | RegExp)[];
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* Request timeout in ms
|
|
290
|
-
* @default 5000
|
|
291
|
-
*/
|
|
292
|
-
timeout?: number;
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Integrations to enable
|
|
296
|
-
*/
|
|
297
|
-
integrations?: {
|
|
298
|
-
http?: boolean;
|
|
299
|
-
console?: boolean;
|
|
300
|
-
unhandledRejection?: boolean;
|
|
301
|
-
uncaughtException?: boolean;
|
|
302
|
-
};
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* APM (Application Performance Monitoring) options
|
|
306
|
-
* Includes memory leak detection and slow query tracking
|
|
307
|
-
*/
|
|
308
|
-
apm?: APMOptions;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
export interface ParsedDSN {
|
|
312
|
-
protocol: string;
|
|
313
|
-
publicKey: string;
|
|
314
|
-
host: string;
|
|
315
|
-
projectId: string;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
// ============================================
|
|
320
|
-
// Nexus Middleware Integration
|
|
321
|
-
// ============================================
|
|
322
|
-
|
|
323
|
-
export interface SentryMiddlewareOptions {
|
|
324
|
-
/**
|
|
325
|
-
* Include request body in error reports
|
|
326
|
-
* @default false
|
|
327
|
-
*/
|
|
328
|
-
includeRequestBody?: boolean;
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Include request headers
|
|
332
|
-
* @default true
|
|
333
|
-
*/
|
|
334
|
-
includeHeaders?: boolean;
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Headers to exclude (e.g., 'authorization', 'cookie')
|
|
338
|
-
*/
|
|
339
|
-
excludeHeaders?: string[];
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* Paths to ignore
|
|
343
|
-
*/
|
|
344
|
-
ignorePaths?: string[];
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Extract user from context
|
|
348
|
-
*/
|
|
349
|
-
extractUser?: (ctx: Context) => SentryUser | null;
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* Extract transaction name
|
|
353
|
-
*/
|
|
354
|
-
getTransactionName?: (ctx: Context) => string;
|
|
355
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { readdir } from 'fs/promises';
|
|
2
|
-
import { join } from 'path/posix';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Generate HTML for directory listing
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export async function generateDirectoryListing(
|
|
9
|
-
dirPath: string,
|
|
10
|
-
urlPath: string
|
|
11
|
-
): Promise<string> {
|
|
12
|
-
const entries = await readdir(dirPath, { withFileTypes: true });
|
|
13
|
-
|
|
14
|
-
const items = entries
|
|
15
|
-
.filter(e => !e.name.startsWith('.'))
|
|
16
|
-
.map(entry => {
|
|
17
|
-
const isDir = entry.isDirectory();
|
|
18
|
-
const name = isDir ? `${entry.name}/` : entry.name;
|
|
19
|
-
const href = join(urlPath, entry.name);
|
|
20
|
-
const icon = isDir ? '📁' : '📄';
|
|
21
|
-
return `<li><a href="${href}">${icon} ${name}</a></li>`;
|
|
22
|
-
})
|
|
23
|
-
.join('\n');
|
|
24
|
-
|
|
25
|
-
return `<!DOCTYPE html>
|
|
26
|
-
<html lang="en">
|
|
27
|
-
<head>
|
|
28
|
-
<meta charset="UTF-8">
|
|
29
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
30
|
-
<title>Index of ${urlPath}</title>
|
|
31
|
-
<style>
|
|
32
|
-
body { font-family: system-ui, sans-serif; max-width: 800px; margin: 40px auto; padding: 20px; }
|
|
33
|
-
h1 { color: #333; border-bottom: 1px solid #eee; padding-bottom: 10px; }
|
|
34
|
-
ul { list-style: none; padding: 0; }
|
|
35
|
-
li { padding: 8px 0; border-bottom: 1px solid #f0f0f0; }
|
|
36
|
-
a { color: #0066cc; text-decoration: none; }
|
|
37
|
-
a:hover { text-decoration: underline; }
|
|
38
|
-
.parent { margin-bottom: 20px; }
|
|
39
|
-
</style>
|
|
40
|
-
</head>
|
|
41
|
-
<body>
|
|
42
|
-
<h1>Index of ${urlPath}</h1>
|
|
43
|
-
${urlPath !== '/' ? `<div class="parent"><a href="${join(urlPath, '..')}">📁 ..</a></div>` : ''}
|
|
44
|
-
<ul>${items}</ul>
|
|
45
|
-
</body>
|
|
46
|
-
</html>`;
|
|
47
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static File Serving Feature
|
|
3
|
-
*
|
|
4
|
-
* Serve static files from a directory (public folder)
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { createApp, serveStatic } from 'nexus';
|
|
9
|
-
*
|
|
10
|
-
* const app = createApp();
|
|
11
|
-
*
|
|
12
|
-
* // Basic usage - serve from ./public
|
|
13
|
-
* app.plugin(serveStatic());
|
|
14
|
-
*
|
|
15
|
-
* // Custom directory
|
|
16
|
-
* app.plugin(serveStatic({ root: './assets' }));
|
|
17
|
-
*
|
|
18
|
-
* // With prefix
|
|
19
|
-
* app.plugin(serveStatic({
|
|
20
|
-
* root: './public',
|
|
21
|
-
* prefix: '/static' // /static/image.png → ./public/image.png
|
|
22
|
-
* }));
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import { serveStatic } from './serveStatic';
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Alias for serveStatic
|
|
30
|
-
*/
|
|
31
|
-
export const staticFiles = serveStatic;
|
|
32
|
-
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { normalize, resolve } from 'path/posix';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Check if path is safe (no directory traversal)
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export function isSafePath(requestPath: string, root: string): boolean {
|
|
8
|
-
const normalizedPath = normalize(requestPath);
|
|
9
|
-
const fullPath = resolve(root, normalizedPath);
|
|
10
|
-
const normalizedRoot = resolve(root);
|
|
11
|
-
|
|
12
|
-
return fullPath.startsWith(normalizedRoot);
|
|
13
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Plugin } from '../../core/types';
|
|
2
|
-
import { serveStatic } from './serveStatic';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Create a public directory feature with sensible defaults
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* app.plugin(publicDir()); // ./public
|
|
10
|
-
* app.plugin(publicDir('./assets')); // ./assets
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
export function publicDir(root = './public'): Plugin {
|
|
15
|
-
return serveStatic({
|
|
16
|
-
root,
|
|
17
|
-
maxAge: 86400,
|
|
18
|
-
etag: true,
|
|
19
|
-
lastModified: true
|
|
20
|
-
});
|
|
21
|
-
}
|