@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePlaygroundHTML.d.ts","sourceRoot":"","sources":["../../../src/advanced/playground/generatePlaygroundHTML.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI3C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generatePlaygroundHTML.d.ts","sourceRoot":"","sources":["../../../src/advanced/playground/generatePlaygroundHTML.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI3C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+5DxF"}
|
|
@@ -515,6 +515,39 @@ function generatePlaygroundHTML(config, baseUrl) {
|
|
|
515
515
|
line-height: 1.5;
|
|
516
516
|
}
|
|
517
517
|
|
|
518
|
+
.info-curl-section {
|
|
519
|
+
margin-bottom: 16px;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
.info-curl-btn {
|
|
523
|
+
width: 100%;
|
|
524
|
+
padding: 10px 16px;
|
|
525
|
+
background: var(--bg-tertiary);
|
|
526
|
+
color: var(--text-primary);
|
|
527
|
+
border: 1px solid var(--border-color);
|
|
528
|
+
border-radius: 6px;
|
|
529
|
+
font-size: 12px;
|
|
530
|
+
font-weight: 500;
|
|
531
|
+
cursor: pointer;
|
|
532
|
+
transition: all 0.2s;
|
|
533
|
+
display: flex;
|
|
534
|
+
align-items: center;
|
|
535
|
+
justify-content: center;
|
|
536
|
+
gap: 8px;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
.info-curl-btn:hover {
|
|
540
|
+
background: var(--accent-color);
|
|
541
|
+
border-color: var(--accent-color);
|
|
542
|
+
color: #fff;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.info-curl-btn.copied {
|
|
546
|
+
background: var(--success-color);
|
|
547
|
+
border-color: var(--success-color);
|
|
548
|
+
color: #fff;
|
|
549
|
+
}
|
|
550
|
+
|
|
518
551
|
/* Resizer */
|
|
519
552
|
.resizer {
|
|
520
553
|
height: 6px;
|
|
@@ -1400,6 +1433,13 @@ function generatePlaygroundHTML(config, baseUrl) {
|
|
|
1400
1433
|
html += '<span class="path">' + ep.path + '</span>';
|
|
1401
1434
|
html += '</div>';
|
|
1402
1435
|
|
|
1436
|
+
// Copy as CURL button
|
|
1437
|
+
html += '<div class="info-curl-section">';
|
|
1438
|
+
html += '<button class="info-curl-btn" onclick="copyAsCurl()" id="curlCopyBtn">';
|
|
1439
|
+
html += '<span>📋</span> Copy as CURL';
|
|
1440
|
+
html += '</button>';
|
|
1441
|
+
html += '</div>';
|
|
1442
|
+
|
|
1403
1443
|
// Deprecated warning
|
|
1404
1444
|
if (ep.deprecated) {
|
|
1405
1445
|
html += '<div class="info-section">';
|
|
@@ -1549,6 +1589,73 @@ function generatePlaygroundHTML(config, baseUrl) {
|
|
|
1549
1589
|
saveCurrentTabState();
|
|
1550
1590
|
}
|
|
1551
1591
|
|
|
1592
|
+
function copyAsCurl() {
|
|
1593
|
+
const method = document.getElementById('methodSelect').value;
|
|
1594
|
+
const url = document.getElementById('urlInput').value;
|
|
1595
|
+
const body = requestEditor ? requestEditor.getValue() : '{}';
|
|
1596
|
+
|
|
1597
|
+
// Build CURL command
|
|
1598
|
+
let curl = 'curl';
|
|
1599
|
+
|
|
1600
|
+
// Add method
|
|
1601
|
+
if (method !== 'GET') {
|
|
1602
|
+
curl += ' -X ' + method;
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
// Add URL (with query params)
|
|
1606
|
+
let fullUrl = url;
|
|
1607
|
+
const enabledParams = params.filter(p => p.enabled && p.key);
|
|
1608
|
+
if (enabledParams.length > 0) {
|
|
1609
|
+
const queryString = enabledParams
|
|
1610
|
+
.map(p => encodeURIComponent(p.key) + '=' + encodeURIComponent(p.value))
|
|
1611
|
+
.join('&');
|
|
1612
|
+
fullUrl += (fullUrl.includes('?') ? '&' : '?') + queryString;
|
|
1613
|
+
}
|
|
1614
|
+
curl += " '" + fullUrl + "'";
|
|
1615
|
+
|
|
1616
|
+
// Add headers
|
|
1617
|
+
headers.filter(h => h.enabled && h.key).forEach(h => {
|
|
1618
|
+
curl += " -H '" + h.key + ": " + h.value + "'";
|
|
1619
|
+
});
|
|
1620
|
+
|
|
1621
|
+
// Add body for non-GET requests
|
|
1622
|
+
if (method !== 'GET' && method !== 'DELETE') {
|
|
1623
|
+
try {
|
|
1624
|
+
// Check if body is valid JSON and not empty
|
|
1625
|
+
const parsedBody = JSON.parse(body);
|
|
1626
|
+
if (Object.keys(parsedBody).length > 0) {
|
|
1627
|
+
// Escape single quotes in body for shell
|
|
1628
|
+
const escapedBody = body.replace(/'/g, "'\\''");
|
|
1629
|
+
curl += " -d '" + escapedBody + "'";
|
|
1630
|
+
}
|
|
1631
|
+
} catch (e) {
|
|
1632
|
+
// If not valid JSON but has content, still include it
|
|
1633
|
+
if (body && body.trim() !== '' && body.trim() !== '{}') {
|
|
1634
|
+
const escapedBody = body.replace(/'/g, "'\\''");
|
|
1635
|
+
curl += " -d '" + escapedBody + "'";
|
|
1636
|
+
}
|
|
1637
|
+
}
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
// Copy to clipboard
|
|
1641
|
+
navigator.clipboard.writeText(curl).then(() => {
|
|
1642
|
+
// Visual feedback
|
|
1643
|
+
const btn = document.getElementById('curlCopyBtn');
|
|
1644
|
+
if (btn) {
|
|
1645
|
+
const originalText = btn.innerHTML;
|
|
1646
|
+
btn.innerHTML = '<span>✓</span> Copied!';
|
|
1647
|
+
btn.classList.add('copied');
|
|
1648
|
+
setTimeout(() => {
|
|
1649
|
+
btn.innerHTML = originalText;
|
|
1650
|
+
btn.classList.remove('copied');
|
|
1651
|
+
}, 2000);
|
|
1652
|
+
}
|
|
1653
|
+
}).catch(err => {
|
|
1654
|
+
console.error('Failed to copy CURL:', err);
|
|
1655
|
+
alert('Failed to copy CURL to clipboard');
|
|
1656
|
+
});
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1552
1659
|
function switchTab(tab) {
|
|
1553
1660
|
document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
|
|
1554
1661
|
document.querySelectorAll('.editor-wrapper').forEach(w => w.classList.remove('active'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePlaygroundHTML.js","sourceRoot":"","sources":["../../../src/advanced/playground/generatePlaygroundHTML.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"generatePlaygroundHTML.js","sourceRoot":"","sources":["../../../src/advanced/playground/generatePlaygroundHTML.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { Plugin } from '../../core/types';
|
|
2
2
|
import { PlaygroundConfig } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* API Playground Plugin
|
|
5
|
+
* Provides an interactive API explorer with authentication and development-mode security
|
|
6
|
+
*
|
|
7
|
+
* @param config - Configuration options for the playground
|
|
8
|
+
* @returns Plugin instance
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* app.use(playground({
|
|
13
|
+
* path: '/playground',
|
|
14
|
+
* developmentOnly: true,
|
|
15
|
+
* auth: {
|
|
16
|
+
* username: 'admin',
|
|
17
|
+
* password: 'secret123'
|
|
18
|
+
* }
|
|
19
|
+
* }));
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
3
22
|
export declare function playground(config?: PlaygroundConfig): Plugin;
|
|
4
23
|
//# sourceMappingURL=playground.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../../../src/advanced/playground/playground.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoC,MAAM,EAA2B,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAC;AAGxD,wBAAgB,UAAU,CAAC,MAAM,GAAE,gBAAqB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../../../src/advanced/playground/playground.ts"],"names":[],"mappings":"AAOA,OAAO,EAAoC,MAAM,EAA2B,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAC;AAGxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,gBAAqB,GAAG,MAAM,CA0KhE"}
|
|
@@ -7,6 +7,25 @@ const zodToExample_1 = require("./zodToExample");
|
|
|
7
7
|
const getTagFromPath_1 = require("./getTagFromPath");
|
|
8
8
|
const generateSummary_1 = require("./generateSummary");
|
|
9
9
|
const generatePlaygroundHTML_1 = require("./generatePlaygroundHTML");
|
|
10
|
+
/**
|
|
11
|
+
* API Playground Plugin
|
|
12
|
+
* Provides an interactive API explorer with authentication and development-mode security
|
|
13
|
+
*
|
|
14
|
+
* @param config - Configuration options for the playground
|
|
15
|
+
* @returns Plugin instance
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* app.use(playground({
|
|
20
|
+
* path: '/playground',
|
|
21
|
+
* developmentOnly: true,
|
|
22
|
+
* auth: {
|
|
23
|
+
* username: 'admin',
|
|
24
|
+
* password: 'secret123'
|
|
25
|
+
* }
|
|
26
|
+
* }));
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
10
29
|
function playground(config = {}) {
|
|
11
30
|
const resolvedConfig = {
|
|
12
31
|
path: '/playground',
|
|
@@ -15,6 +34,7 @@ function playground(config = {}) {
|
|
|
15
34
|
enableHistory: true,
|
|
16
35
|
maxHistory: 50,
|
|
17
36
|
enableVariables: true,
|
|
37
|
+
developmentOnly: true,
|
|
18
38
|
defaultHeaders: { 'Content-Type': 'application/json' },
|
|
19
39
|
variables: { baseUrl: 'http://localhost:3000', token: '' },
|
|
20
40
|
...config
|
|
@@ -26,6 +46,11 @@ function playground(config = {}) {
|
|
|
26
46
|
name: 'playground',
|
|
27
47
|
version: '1.0.0',
|
|
28
48
|
install(app) {
|
|
49
|
+
// Check if playground should be disabled in production
|
|
50
|
+
if (resolvedConfig.developmentOnly && process.env.NODE_ENV === 'production') {
|
|
51
|
+
console.warn('⚠️ API Playground is disabled in production mode');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
29
54
|
appInstance = app;
|
|
30
55
|
const originalRoute = app.route.bind(app);
|
|
31
56
|
const originalGet = app.get.bind(app);
|
|
@@ -71,7 +96,48 @@ function playground(config = {}) {
|
|
|
71
96
|
app.delete = wrapMethod('DELETE', originalDelete);
|
|
72
97
|
app.patch = wrapMethod('PATCH', originalPatch);
|
|
73
98
|
const basePath = resolvedConfig.path;
|
|
99
|
+
/**
|
|
100
|
+
* Authentication middleware for playground routes
|
|
101
|
+
* Implements HTTP Basic Authentication when auth config is provided
|
|
102
|
+
*/
|
|
103
|
+
const authMiddleware = (ctx) => {
|
|
104
|
+
if (!resolvedConfig.auth) {
|
|
105
|
+
return true; // No auth required
|
|
106
|
+
}
|
|
107
|
+
const authHeader = ctx.raw?.req?.headers?.authorization || ctx.headers?.get?.('authorization');
|
|
108
|
+
if (!authHeader || !authHeader.startsWith('Basic ')) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const base64Credentials = authHeader.substring(6);
|
|
113
|
+
const credentials = Buffer.from(base64Credentials, 'base64').toString('utf-8');
|
|
114
|
+
const [username, password] = credentials.split(':');
|
|
115
|
+
return (username === resolvedConfig.auth.username &&
|
|
116
|
+
password === resolvedConfig.auth.password);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Returns 401 Unauthorized response with WWW-Authenticate header
|
|
124
|
+
* This triggers the browser's native authentication dialog
|
|
125
|
+
*/
|
|
126
|
+
const unauthorizedResponse = () => {
|
|
127
|
+
return {
|
|
128
|
+
statusCode: 401,
|
|
129
|
+
headers: {
|
|
130
|
+
'WWW-Authenticate': 'Basic realm="API Playground"',
|
|
131
|
+
'Content-Type': 'text/plain'
|
|
132
|
+
},
|
|
133
|
+
body: 'Unauthorized'
|
|
134
|
+
};
|
|
135
|
+
};
|
|
74
136
|
originalGet(basePath, async (ctx) => {
|
|
137
|
+
// Check authentication
|
|
138
|
+
if (!authMiddleware(ctx)) {
|
|
139
|
+
return unauthorizedResponse();
|
|
140
|
+
}
|
|
75
141
|
if (!detectedBaseUrl && ctx.raw?.req) {
|
|
76
142
|
const req = ctx.raw.req;
|
|
77
143
|
const protocol = req.headers['x-forwarded-proto'] || 'http';
|
|
@@ -85,6 +151,10 @@ function playground(config = {}) {
|
|
|
85
151
|
};
|
|
86
152
|
});
|
|
87
153
|
originalGet(basePath + '/api/routes', async (ctx) => {
|
|
154
|
+
// Check authentication
|
|
155
|
+
if (!authMiddleware(ctx)) {
|
|
156
|
+
return unauthorizedResponse();
|
|
157
|
+
}
|
|
88
158
|
// Combine intercepted routes with routes from router (for file-based routing)
|
|
89
159
|
const allRoutes = getAllRoutes(routes, appInstance, basePath);
|
|
90
160
|
const routesData = allRoutes.map(r => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playground.js","sourceRoot":"","sources":["../../../src/advanced/playground/playground.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"playground.js","sourceRoot":"","sources":["../../../src/advanced/playground/playground.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
import { HTTPMethod, RouteMeta, SchemaConfig } from "../../core/types";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration options for the API Playground
|
|
4
|
+
*/
|
|
2
5
|
export interface PlaygroundConfig {
|
|
6
|
+
/** URL path where the playground will be accessible (default: '/playground') */
|
|
3
7
|
path?: string;
|
|
8
|
+
/** Title displayed in the playground UI (default: 'API Playground') */
|
|
4
9
|
title?: string;
|
|
10
|
+
/** Color theme for the playground interface (default: 'dark') */
|
|
5
11
|
theme?: 'dark' | 'light';
|
|
12
|
+
/** Default HTTP headers to include in API requests */
|
|
6
13
|
defaultHeaders?: Record<string, string>;
|
|
14
|
+
/** Enable/disable request history tracking (default: true) */
|
|
7
15
|
enableHistory?: boolean;
|
|
16
|
+
/** Maximum number of requests to keep in history (default: 50) */
|
|
8
17
|
maxHistory?: number;
|
|
18
|
+
/** Enable/disable variable substitution in requests (default: true) */
|
|
9
19
|
enableVariables?: boolean;
|
|
20
|
+
/** Predefined variables for use in requests (e.g., {{baseUrl}}, {{token}}) */
|
|
10
21
|
variables?: Record<string, string>;
|
|
22
|
+
/** Enable only in development mode (default: true) */
|
|
23
|
+
developmentOnly?: boolean;
|
|
24
|
+
/** Basic authentication configuration to protect playground access */
|
|
25
|
+
auth?: {
|
|
26
|
+
/** Username for basic authentication */
|
|
27
|
+
username: string;
|
|
28
|
+
/** Password for basic authentication */
|
|
29
|
+
password: string;
|
|
30
|
+
};
|
|
11
31
|
}
|
|
12
32
|
export interface StoredRoute {
|
|
13
33
|
method: HTTPMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/advanced/playground/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/advanced/playground/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,sEAAsE;IACtE,IAAI,CAAC,EAAE;QACH,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAGD,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB"}
|
|
@@ -490,14 +490,28 @@ export declare class Application<TDeps extends DependencyContainer = {}> {
|
|
|
490
490
|
} | number | string): HTTPServer;
|
|
491
491
|
/**
|
|
492
492
|
* Handle incoming HTTP request
|
|
493
|
+
* Optimized hot path for maximum performance
|
|
493
494
|
*/
|
|
494
495
|
private handleRequest;
|
|
496
|
+
/**
|
|
497
|
+
* Execute handler directly without middleware (fast path)
|
|
498
|
+
*/
|
|
499
|
+
private executeHandlerDirect;
|
|
500
|
+
/**
|
|
501
|
+
* Cleanup request resources
|
|
502
|
+
*/
|
|
503
|
+
private cleanupRequest;
|
|
504
|
+
/**
|
|
505
|
+
* Handle errors
|
|
506
|
+
*/
|
|
507
|
+
private handleError;
|
|
495
508
|
/**
|
|
496
509
|
* Check if value is a Response object
|
|
497
510
|
*/
|
|
498
511
|
private isResponse;
|
|
499
512
|
/**
|
|
500
513
|
* Send HTTP response
|
|
514
|
+
* Optimized for minimal overhead - key for benchmark performance
|
|
501
515
|
*/
|
|
502
516
|
private sendResponse;
|
|
503
517
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"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"}
|