veloce-ts 0.2.6 → 0.3.2
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/CHANGELOG.md +501 -240
- package/README.md +141 -1
- package/dist/cjs/src/cli/index.js +125 -74
- package/dist/cjs/src/cli/index.js.map +4 -4
- package/dist/cjs/src/index.js +66 -25
- package/dist/cjs/src/index.js.map +112 -10
- package/dist/cjs/src/middleware/index.js +28 -2
- package/dist/cjs/src/middleware/index.js.map +79 -4
- package/dist/cjs/src/plugins/index.js +49 -23
- package/dist/cjs/src/plugins/index.js.map +74 -4
- package/dist/cjs/src/testing/index.js +30 -4
- package/dist/cjs/src/testing/index.js.map +80 -7
- package/dist/cjs/src/websocket/index.js +3 -3
- package/dist/cjs/src/websocket/index.js.map +1 -1
- package/dist/esm/src/cli/index.js +561 -22
- package/dist/esm/src/cli/index.js.map +8 -4
- package/dist/esm/src/docs/index.js +6 -6
- package/dist/esm/src/docs/index.js.map +10 -3
- package/dist/esm/src/errors/index.js +3 -2
- package/dist/esm/src/errors/index.js.map +7 -3
- package/dist/esm/src/graphql/index.js +82 -2
- package/dist/esm/src/graphql/index.js.map +18 -3
- package/dist/esm/src/index.js +165 -3
- package/dist/esm/src/index.js.map +202 -6
- package/dist/esm/src/middleware/index.js +28 -2
- package/dist/esm/src/middleware/index.js.map +81 -3
- package/dist/esm/src/plugins/index.js +113 -3
- package/dist/esm/src/plugins/index.js.map +131 -4
- package/dist/esm/src/testing/index.js +42 -2
- package/dist/esm/src/testing/index.js.map +97 -7
- package/dist/esm/src/types/index.js +2 -2
- package/dist/esm/src/types/index.js.map +10 -3
- package/dist/esm/src/validation/index.js +2 -2
- package/dist/esm/src/validation/index.js.map +13 -3
- package/dist/esm/src/websocket/index.js +15 -2
- package/dist/esm/src/websocket/index.js.map +9 -4
- package/dist/types/adapters/base.d.ts +10 -2
- package/dist/types/adapters/base.d.ts.map +1 -1
- package/dist/types/adapters/hono.d.ts +2 -2
- package/dist/types/adapters/hono.d.ts.map +1 -1
- package/dist/types/auth/permissions.d.ts +10 -10
- package/dist/types/auth/session.d.ts +2 -2
- package/dist/types/cache/index.d.ts +9 -0
- package/dist/types/cache/index.d.ts.map +1 -0
- package/dist/types/cache/manager.d.ts +75 -0
- package/dist/types/cache/manager.d.ts.map +1 -0
- package/dist/types/cache/memory-store.d.ts +55 -0
- package/dist/types/cache/memory-store.d.ts.map +1 -0
- package/dist/types/cache/redis-store.d.ts +55 -0
- package/dist/types/cache/redis-store.d.ts.map +1 -0
- package/dist/types/cache/types.d.ts +92 -0
- package/dist/types/cache/types.d.ts.map +1 -0
- package/dist/types/cli/commands/new.d.ts.map +1 -1
- package/dist/types/context/request-context.d.ts +66 -0
- package/dist/types/context/request-context.d.ts.map +1 -0
- package/dist/types/core/application.d.ts +11 -0
- package/dist/types/core/application.d.ts.map +1 -1
- package/dist/types/core/router-compiler.d.ts +1 -1
- package/dist/types/core/router-compiler.d.ts.map +1 -1
- package/dist/types/decorators/cache.d.ts +56 -0
- package/dist/types/decorators/cache.d.ts.map +1 -0
- package/dist/types/decorators/params.d.ts +24 -0
- package/dist/types/decorators/params.d.ts.map +1 -1
- package/dist/types/dependencies/container.d.ts +1 -1
- package/dist/types/dependencies/container.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/logging/index.d.ts +10 -0
- package/dist/types/logging/index.d.ts.map +1 -0
- package/dist/types/logging/logger.d.ts +25 -0
- package/dist/types/logging/logger.d.ts.map +1 -0
- package/dist/types/logging/middleware.d.ts +15 -0
- package/dist/types/logging/middleware.d.ts.map +1 -0
- package/dist/types/logging/types.d.ts +22 -0
- package/dist/types/logging/types.d.ts.map +1 -0
- package/dist/types/middleware/cache.d.ts +54 -0
- package/dist/types/middleware/cache.d.ts.map +1 -0
- package/dist/types/middleware/index.d.ts +3 -0
- package/dist/types/middleware/index.d.ts.map +1 -1
- package/dist/types/middleware/request-context.d.ts +55 -0
- package/dist/types/middleware/request-context.d.ts.map +1 -0
- package/dist/types/orm/base-repository.d.ts +77 -0
- package/dist/types/orm/base-repository.d.ts.map +1 -0
- package/dist/types/orm/decorators.d.ts +35 -0
- package/dist/types/orm/decorators.d.ts.map +1 -0
- package/dist/types/orm/drizzle/index.d.ts +6 -0
- package/dist/types/orm/drizzle/index.d.ts.map +1 -0
- package/dist/types/orm/drizzle/plugin.d.ts +165 -0
- package/dist/types/orm/drizzle/plugin.d.ts.map +1 -0
- package/dist/types/orm/drizzle/repository.d.ts +61 -0
- package/dist/types/orm/drizzle/repository.d.ts.map +1 -0
- package/dist/types/orm/drizzle/schema-converter.d.ts +53 -0
- package/dist/types/orm/drizzle/schema-converter.d.ts.map +1 -0
- package/dist/types/orm/drizzle/transaction-manager.d.ts +58 -0
- package/dist/types/orm/drizzle/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/drizzle/types.d.ts +121 -0
- package/dist/types/orm/drizzle/types.d.ts.map +1 -0
- package/dist/types/orm/index.d.ts +16 -0
- package/dist/types/orm/index.d.ts.map +1 -0
- package/dist/types/orm/pagination.d.ts +147 -0
- package/dist/types/orm/pagination.d.ts.map +1 -0
- package/dist/types/orm/prisma/index.d.ts +6 -0
- package/dist/types/orm/prisma/index.d.ts.map +1 -0
- package/dist/types/orm/prisma/plugin.d.ts +68 -0
- package/dist/types/orm/prisma/plugin.d.ts.map +1 -0
- package/dist/types/orm/prisma/repository.d.ts +70 -0
- package/dist/types/orm/prisma/repository.d.ts.map +1 -0
- package/dist/types/orm/prisma/schema-generator.d.ts +45 -0
- package/dist/types/orm/prisma/schema-generator.d.ts.map +1 -0
- package/dist/types/orm/prisma/transaction-manager.d.ts +32 -0
- package/dist/types/orm/prisma/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/prisma/types.d.ts +67 -0
- package/dist/types/orm/prisma/types.d.ts.map +1 -0
- package/dist/types/orm/query-builder.d.ts +129 -0
- package/dist/types/orm/query-builder.d.ts.map +1 -0
- package/dist/types/orm/repository-factory.d.ts +130 -0
- package/dist/types/orm/repository-factory.d.ts.map +1 -0
- package/dist/types/orm/transaction-events.d.ts +122 -0
- package/dist/types/orm/transaction-events.d.ts.map +1 -0
- package/dist/types/orm/transaction-interceptor.d.ts +30 -0
- package/dist/types/orm/transaction-interceptor.d.ts.map +1 -0
- package/dist/types/orm/transaction-manager.d.ts +64 -0
- package/dist/types/orm/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/transaction-plugin.d.ts +117 -0
- package/dist/types/orm/transaction-plugin.d.ts.map +1 -0
- package/dist/types/orm/transaction-propagation.d.ts +49 -0
- package/dist/types/orm/transaction-propagation.d.ts.map +1 -0
- package/dist/types/orm/typeorm/decorators.d.ts +40 -0
- package/dist/types/orm/typeorm/decorators.d.ts.map +1 -0
- package/dist/types/orm/typeorm/index.d.ts +6 -0
- package/dist/types/orm/typeorm/index.d.ts.map +1 -0
- package/dist/types/orm/typeorm/plugin.d.ts +100 -0
- package/dist/types/orm/typeorm/plugin.d.ts.map +1 -0
- package/dist/types/orm/typeorm/repository.d.ts +58 -0
- package/dist/types/orm/typeorm/repository.d.ts.map +1 -0
- package/dist/types/orm/typeorm/transaction-manager.d.ts +48 -0
- package/dist/types/orm/typeorm/transaction-manager.d.ts.map +1 -0
- package/dist/types/orm/typeorm/types.d.ts +139 -0
- package/dist/types/orm/typeorm/types.d.ts.map +1 -0
- package/dist/types/plugins/health.d.ts +75 -0
- package/dist/types/plugins/health.d.ts.map +1 -0
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/plugins/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +15 -2
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/websocket/index.d.ts +1 -1
- package/dist/types/websocket/index.d.ts.map +1 -1
- package/package.json +22 -2
- package/dist/esm/chunk-2100y16g.js +0 -5
- package/dist/esm/chunk-2100y16g.js.map +0 -10
- package/dist/esm/chunk-5q75d71c.js +0 -4
- package/dist/esm/chunk-5q75d71c.js.map +0 -16
- package/dist/esm/chunk-8dpc6an2.js +0 -7
- package/dist/esm/chunk-8dpc6an2.js.map +0 -10
- package/dist/esm/chunk-9v7atckx.js +0 -5
- package/dist/esm/chunk-9v7atckx.js.map +0 -10
- package/dist/esm/chunk-bvstdn0t.js +0 -60
- package/dist/esm/chunk-bvstdn0t.js.map +0 -10
- package/dist/esm/chunk-ctwpr5gr.js +0 -430
- package/dist/esm/chunk-ctwpr5gr.js.map +0 -10
- package/dist/esm/chunk-dtw2tbsd.js +0 -5
- package/dist/esm/chunk-dtw2tbsd.js.map +0 -12
- package/dist/esm/chunk-ef0vfd27.js +0 -72
- package/dist/esm/chunk-ef0vfd27.js.map +0 -13
- package/dist/esm/chunk-k66rn4fj.js +0 -18
- package/dist/esm/chunk-k66rn4fj.js.map +0 -10
- package/dist/esm/chunk-mky5qqg0.js +0 -5
- package/dist/esm/chunk-mky5qqg0.js.map +0 -10
- package/dist/esm/chunk-mznkhz9c.js +0 -5
- package/dist/esm/chunk-mznkhz9c.js.map +0 -12
- package/dist/esm/chunk-s5z0wb7e.js +0 -5
- package/dist/esm/chunk-s5z0wb7e.js.map +0 -10
- package/dist/esm/chunk-vh4sxcpe.js +0 -6
- package/dist/esm/chunk-vh4sxcpe.js.map +0 -10
- package/dist/esm/chunk-xa333k40.js +0 -7
- package/dist/esm/chunk-xa333k40.js.map +0 -10
- package/dist/esm/chunk-y262e56g.js +0 -5
- package/dist/esm/chunk-y262e56g.js.map +0 -9
- package/dist/esm/chunk-yq3gf9ts.js +0 -5
- package/dist/esm/chunk-yq3gf9ts.js.map +0 -10
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\src\\middleware\\cors.ts", "..\\..\\src\\middleware\\rate-limit.ts", "..\\..\\src\\middleware\\compression.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import type { Context, Middleware, CorsOptions } from '../types';\r\n\r\n/**\r\n * Create CORS middleware with configurable options\r\n * Handles preflight requests and adds appropriate CORS headers\r\n */\r\nexport function createCorsMiddleware(options?: CorsOptions): Middleware {\r\n const {\r\n origin = '*',\r\n methods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],\r\n allowedHeaders = ['Content-Type', 'Authorization'],\r\n exposedHeaders = [],\r\n credentials = false,\r\n maxAge = 86400 // 24 hours default\r\n } = options || {};\r\n\r\n return async (c: Context, next) => {\r\n const requestOrigin = c.req.header('origin');\r\n const requestMethod = c.req.method;\r\n\r\n // Determine if origin is allowed\r\n let allowedOrigin: string | null = null;\r\n\r\n if (typeof origin === 'string') {\r\n allowedOrigin = origin;\r\n } else if (Array.isArray(origin)) {\r\n if (requestOrigin && origin.includes(requestOrigin)) {\r\n allowedOrigin = requestOrigin;\r\n }\r\n } else if (typeof origin === 'function') {\r\n if (requestOrigin && origin(requestOrigin)) {\r\n allowedOrigin = requestOrigin;\r\n }\r\n }\r\n\r\n // Set CORS headers\r\n if (allowedOrigin) {\r\n c.header('Access-Control-Allow-Origin', allowedOrigin);\r\n }\r\n\r\n if (credentials) {\r\n c.header('Access-Control-Allow-Credentials', 'true');\r\n }\r\n\r\n if (exposedHeaders.length > 0) {\r\n c.header('Access-Control-Expose-Headers', exposedHeaders.join(', '));\r\n }\r\n\r\n // Handle preflight requests\r\n if (requestMethod === 'OPTIONS') {\r\n c.header('Access-Control-Allow-Methods', methods.join(', '));\r\n c.header('Access-Control-Allow-Headers', allowedHeaders.join(', '));\r\n c.header('Access-Control-Max-Age', maxAge.toString());\r\n \r\n return c.body(null, 204);\r\n }\r\n\r\n // Continue to next middleware/handler\r\n await next();\r\n };\r\n}\r\n",
|
|
6
|
-
"import type { Context, Middleware, RateLimitOptions } from '../types';\r\n\r\n/**\r\n * Rate limit record for tracking requests\r\n */\r\ninterface RateLimitRecord {\r\n count: number;\r\n resetTime: number;\r\n}\r\n\r\n/**\r\n * Create rate limiting middleware\r\n * Tracks requests per IP/key and returns 429 when limit exceeded\r\n */\r\nexport function createRateLimitMiddleware(options: RateLimitOptions): Middleware {\r\n const {\r\n windowMs = 60000, // 1 minute default\r\n max = 100, // 100 requests per window default\r\n keyGenerator = (c: Context) => {\r\n // Default: use X-Forwarded-For header or fallback to 'unknown'\r\n return c.req.header('x-forwarded-for') || \r\n c.req.header('x-real-ip') || \r\n 'unknown';\r\n }\r\n } = options;\r\n\r\n // In-memory storage for rate limit records\r\n const requests = new Map<string, RateLimitRecord>();\r\n\r\n // Cleanup old entries periodically to prevent memory leaks\r\n const cleanupInterval = setInterval(() => {\r\n const now = Date.now();\r\n for (const [key, record] of requests.entries()) {\r\n if (now > record.resetTime) {\r\n requests.delete(key);\r\n }\r\n }\r\n }, windowMs);\r\n\r\n // Cleanup on process exit (if supported)\r\n if (typeof process !== 'undefined' && process.on) {\r\n process.on('exit', () => clearInterval(cleanupInterval));\r\n }\r\n\r\n return async (c: Context, next) => {\r\n const key = keyGenerator(c);\r\n const now = Date.now();\r\n const record = requests.get(key);\r\n\r\n if (!record || now > record.resetTime) {\r\n // New window - reset counter\r\n requests.set(key, { \r\n count: 1, \r\n resetTime: now + windowMs \r\n });\r\n\r\n // Add rate limit headers\r\n c.header('X-RateLimit-Limit', max.toString());\r\n c.header('X-RateLimit-Remaining', (max - 1).toString());\r\n c.header('X-RateLimit-Reset', new Date(now + windowMs).toISOString());\r\n\r\n await next();\r\n } else if (record.count < max) {\r\n // Within limit - increment counter\r\n record.count++;\r\n\r\n // Add rate limit headers\r\n c.header('X-RateLimit-Limit', max.toString());\r\n c.header('X-RateLimit-Remaining', (max - record.count).toString());\r\n c.header('X-RateLimit-Reset', new Date(record.resetTime).toISOString());\r\n\r\n await next();\r\n } else {\r\n // Rate limit exceeded\r\n const retryAfter = Math.ceil((record.resetTime - now) / 1000);\r\n\r\n c.header('X-RateLimit-Limit', max.toString());\r\n c.header('X-RateLimit-Remaining', '0');\r\n c.header('X-RateLimit-Reset', new Date(record.resetTime).toISOString());\r\n c.header('Retry-After', retryAfter.toString());\r\n\r\n return c.json(\r\n {\r\n error: 'Too Many Requests',\r\n message: `Rate limit exceeded. Please try again in ${retryAfter} seconds.`,\r\n retryAfter\r\n },\r\n 429\r\n );\r\n }\r\n };\r\n}\r\n",
|
|
7
|
-
"import type { Context, Middleware, CompressionOptions } from '../types';\r\n\r\n/**\r\n * Create compression middleware\r\n * Compresses responses with gzip or brotli based on Accept-Encoding header\r\n */\r\nexport function createCompressionMiddleware(options?: CompressionOptions): Middleware {\r\n const {\r\n threshold = 1024, // Only compress responses larger than 1KB\r\n level = 6 // Compression level (1-9 for gzip, 0-11 for brotli)\r\n } = options || {};\r\n\r\n return async (c: Context, next) => {\r\n // Continue to next middleware/handler first\r\n await next();\r\n\r\n // Get the response\r\n const response = c.res;\r\n if (!response) {\r\n return;\r\n }\r\n\r\n // Check if response should be compressed\r\n const contentType = response.headers.get('content-type') || '';\r\n const contentLength = response.headers.get('content-length');\r\n const acceptEncoding = c.req.header('accept-encoding') || '';\r\n\r\n // Skip compression for certain content types\r\n const compressibleTypes = [\r\n 'text/',\r\n 'application/json',\r\n 'application/javascript',\r\n 'application/xml',\r\n 'application/x-www-form-urlencoded'\r\n ];\r\n\r\n const isCompressible = compressibleTypes.some(type => \r\n contentType.toLowerCase().includes(type)\r\n );\r\n\r\n if (!isCompressible) {\r\n return;\r\n }\r\n\r\n // Skip if response is too small\r\n if (contentLength && parseInt(contentLength) < threshold) {\r\n return;\r\n }\r\n\r\n // Skip if already encoded\r\n if (response.headers.get('content-encoding')) {\r\n return;\r\n }\r\n\r\n // Get response body\r\n const body = await response.arrayBuffer();\r\n \r\n // Skip if body is too small\r\n if (body.byteLength < threshold) {\r\n return;\r\n }\r\n\r\n // Determine compression method\r\n let compressed: Uint8Array | null = null;\r\n let encoding: string | null = null;\r\n\r\n // Try brotli first (better compression)\r\n if (acceptEncoding.includes('br') && typeof CompressionStream !== 'undefined') {\r\n try {\r\n const stream = new CompressionStream('deflate');\r\n const writer = stream.writable.getWriter();\r\n writer.write(new Uint8Array(body));\r\n writer.close();\r\n \r\n const reader = stream.readable.getReader();\r\n const chunks: Uint8Array[] = [];\r\n \r\n while (true) {\r\n const { done, value } = await reader.read();\r\n if (done) break;\r\n chunks.push(value);\r\n }\r\n \r\n const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const chunk of chunks) {\r\n result.set(chunk, offset);\r\n offset += chunk.length;\r\n }\r\n \r\n compressed = result;\r\n encoding = 'deflate';\r\n } catch (error) {\r\n // Fallback to gzip\r\n compressed = null;\r\n }\r\n }\r\n\r\n // Try gzip if brotli not available or failed\r\n if (!compressed && acceptEncoding.includes('gzip') && typeof CompressionStream !== 'undefined') {\r\n try {\r\n const stream = new CompressionStream('gzip');\r\n const writer = stream.writable.getWriter();\r\n writer.write(new Uint8Array(body));\r\n writer.close();\r\n \r\n const reader = stream.readable.getReader();\r\n const chunks: Uint8Array[] = [];\r\n \r\n while (true) {\r\n const { done, value } = await reader.read();\r\n if (done) break;\r\n chunks.push(value);\r\n }\r\n \r\n const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const chunk of chunks) {\r\n result.set(chunk, offset);\r\n offset += chunk.length;\r\n }\r\n \r\n compressed = result;\r\n encoding = 'gzip';\r\n } catch (error) {\r\n // Compression failed, use original\r\n compressed = null;\r\n }\r\n }\r\n\r\n // If compression succeeded and resulted in smaller size, use it\r\n if (compressed && encoding && compressed.byteLength < body.byteLength) {\r\n // Create new response with compressed body\r\n const headers = new Headers(response.headers);\r\n headers.set('content-encoding', encoding);\r\n headers.set('content-length', compressed.byteLength.toString());\r\n headers.delete('content-length'); // Let the runtime set it\r\n \r\n // Update the response\r\n const newResponse = new Response(compressed, {\r\n status: response.status,\r\n statusText: response.statusText,\r\n headers\r\n });\r\n\r\n // Replace the response in context\r\n // Note: This is a workaround since Hono's context doesn't allow direct response replacement\r\n // In practice, this middleware should be used with Hono's compress middleware\r\n return newResponse;\r\n }\r\n };\r\n}\r\n"
|
|
8
|
-
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "2E3D970A175650DA64756E2164756E21",
|
|
11
|
-
"names": []
|
|
12
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{ia as R}from"./chunk-k66rn4fj.js";import{ja as x}from"./chunk-mky5qqg0.js";import{ta as D}from"./chunk-y262e56g.js";var z=D(R(),1),F=Symbol("graphql:resolver"),V=Symbol("graphql:field"),M=Symbol("graphql:args");function A(w){return(J)=>{let U={target:J,name:w||J.name};Reflect.defineMetadata(F,U,J)}}function S(w,J){return H("query",w,J)}function _(w,J){return H("mutation",w,J)}function v(w,J){return H("subscription",w,J)}function H(w,J,U){return($,W)=>{let X={target:$.constructor,propertyKey:W,type:w,name:J||W,description:U?.description,deprecated:U?.deprecated,deprecationReason:U?.deprecationReason},Z=Reflect.getMetadata(V,$.constructor)||[];Z.push(X),Reflect.defineMetadata(V,Z,$.constructor),Reflect.defineMetadata(V,X,$,W)}}function Q(w,J,U){return($,W,X)=>{if(!W)return;let Z=Reflect.getMetadata(M,$,W)||[],B={index:X,name:w,schema:J,description:U?.description,defaultValue:U?.defaultValue,nullable:U?.nullable};Z[X]=B,Reflect.defineMetadata(M,Z,$,W)}}function G(){return(w,J,U)=>{if(!J)return;let $=Reflect.getMetadata(M,w,J)||[],W={index:U,name:"__context__",nullable:!1};$[U]=W,Reflect.defineMetadata(M,$,w,J)}}function K(w){return Reflect.getMetadata(F,w)}function L(w){return Reflect.getMetadata(V,w)||[]}function T(w,J){return Reflect.getMetadata(V,w,J)}function I(w,J){return Reflect.getMetadata(M,w,J)||[]}function u(w){return Reflect.hasMetadata(F,w)}function h(w,J){return Reflect.hasMetadata(V,w,J)}function j(w){let J=w._def.typeName;if(J==="ZodString")return"String";if(J==="ZodNumber"){if(w._def.checks?.some(($)=>$.kind==="int"))return"Int";return"Float"}if(J==="ZodBoolean")return"Boolean";if(J==="ZodArray")return`[${j(w._def.type)}]`;if(J==="ZodObject")return"JSON";if(J==="ZodOptional")return j(w._def.innerType);if(J==="ZodNullable")return j(w._def.innerType);if(J==="ZodDefault")return j(w._def.innerType);if(J==="ZodEnum")return"String";if(J==="ZodUnion"){let U=w._def.options;if(U&&U.length>0)return j(U[0])}if(J==="ZodLiteral"){let U=w._def.value;if(typeof U==="string")return"String";if(typeof U==="number")return"Float";if(typeof U==="boolean")return"Boolean"}if(J==="ZodDate")return"String";return"String"}function q(w){let J=w._def.typeName;if(J==="ZodOptional"||J==="ZodNullable")return!0;if(J==="ZodDefault")return q(w._def.innerType);return!1}function Y(w){let J=w._def.typeName;if(J==="ZodDefault")return w._def.defaultValue();if(J==="ZodOptional"||J==="ZodNullable"){let U=w._def.innerType;if(U)return Y(U)}return}function m(w,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let $=J._def.shape(),W=[];for(let[X,Z]of Object.entries($)){let B=Z,k=j(B),C=q(B)?k:`${k}!`;W.push(` ${X}: ${C}`)}return`type ${w} {
|
|
3
|
-
${W.join(`
|
|
4
|
-
`)}
|
|
5
|
-
}`}function g(w,J){if(J._def.typeName!=="ZodObject")throw Error("Schema must be a ZodObject");let $=J._def.shape(),W=[];for(let[X,Z]of Object.entries($)){let B=Z,k=j(B),O=q(B),C=Y(B),N=O?k:`${k}!`;if(C!==void 0){let b=JSON.stringify(C);N+=` = ${b}`}W.push(` ${X}: ${N}`)}return`input ${w} {
|
|
6
|
-
${W.join(`
|
|
7
|
-
`)}
|
|
8
|
-
}`}class P{metadata;container;validationEngine;customTypes=new Map;constructor(w,J){this.metadata=w;this.container=J;this.validationEngine=new x}build(){let w=this.metadata.getGraphQLResolvers(),J=[],U=[],$=[],W=[];for(let B of w){let k=this.metadata.getGraphQLFieldsByResolver(B.target);for(let O of k){let C=this.buildFieldDefinition(O);switch(O.type){case"query":J.push(C);break;case"mutation":U.push(C);break;case"subscription":$.push(C);break}}}let X="";if(this.customTypes.size>0)X+=Array.from(this.customTypes.values()).join(`
|
|
9
|
-
|
|
10
|
-
`)+`
|
|
11
|
-
|
|
12
|
-
`;if(J.length>0)X+=`type Query {
|
|
13
|
-
`,X+=J.map((B)=>` ${B}`).join(`
|
|
14
|
-
`),X+=`
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
`;if(U.length>0)X+=`type Mutation {
|
|
18
|
-
`,X+=U.map((B)=>` ${B}`).join(`
|
|
19
|
-
`),X+=`
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
`;if($.length>0)X+=`type Subscription {
|
|
23
|
-
`,X+=$.map((B)=>` ${B}`).join(`
|
|
24
|
-
`),X+=`
|
|
25
|
-
}
|
|
26
|
-
`;let Z=this.buildResolvers();return{typeDefs:X.trim(),resolvers:Z}}buildFieldDefinition(w){let J=I(w.target.prototype,w.propertyKey),U=[];for(let Z of J){if(Z.name==="__context__")continue;let B="String";if(Z.schema){if(B=j(Z.schema),!q(Z.schema)&&!Z.nullable)B+="!"}let k=`${Z.name}: ${B}`;if(Z.defaultValue!==void 0)k+=` = ${JSON.stringify(Z.defaultValue)}`;U.push(k)}let $=U.length>0?`(${U.join(", ")})`:"",W="String",X=`${w.name}${$}: ${W}`;if(w.deprecated){let Z=w.deprecationReason||"No longer supported";X+=` @deprecated(reason: "${Z}")`}return X}buildResolvers(){let w=this.metadata.getGraphQLResolvers(),J={Query:{},Mutation:{},Subscription:{}};for(let U of w){let $=this.metadata.getGraphQLFieldsByResolver(U.target);for(let W of $){let X=this.createResolverFunction(U.target,W);switch(W.type){case"query":J.Query[W.name]=X;break;case"mutation":J.Mutation[W.name]=X;break;case"subscription":J.Subscription[W.name]=X;break}}}return J}createResolverFunction(w,J){return async(U,$,W,X)=>{try{let Z=I(w.prototype,J.propertyKey),B=[];for(let C of Z)if(C.name==="__context__")B[C.index]=W;else{let N=$[C.name];if(N===void 0&&C.defaultValue!==void 0)N=C.defaultValue;if(C.schema)N=await this.validationEngine.validate(N,C.schema);B[C.index]=N}return await(await this.container.resolve(w,{scope:"request",context:W.request}))[J.propertyKey](...B)}catch(Z){throw Z}}}}class E{name="graphql";version="1.0.0";options;schema;constructor(w){this.options={path:w?.path||"/graphql",playgroundPath:w?.playgroundPath||"/graphql/playground",playground:w?.playground!==!1,context:w?.context||((J)=>({request:J}))}}async install(w){let J=w.getMetadata(),U=w.getContainer(),$=new P(J,U);if(this.schema=$.build(),w.post(this.options.path,{handler:async(W)=>{return this.handleGraphQLRequest(W)},docs:{summary:"GraphQL endpoint",description:"Execute GraphQL queries and mutations",tags:["GraphQL"]}}),w.get(this.options.path,{handler:async(W)=>{let X=W.req.query("query"),Z=W.req.query("variables"),B=W.req.query("operationName");if(!X)return W.json({error:"Query parameter is required"},400);return this.executeGraphQL(W,{query:X,variables:Z?JSON.parse(Z):void 0,operationName:B})},docs:{summary:"GraphQL endpoint (GET)",description:"Execute GraphQL queries via GET request",tags:["GraphQL"]}}),this.options.playground)w.get(this.options.playgroundPath,{handler:async(W)=>{return W.html(this.renderPlayground())},docs:{summary:"GraphQL Playground",description:"Interactive GraphQL IDE",tags:["GraphQL"]}})}async handleGraphQLRequest(w){try{let J=await w.req.json();return this.executeGraphQL(w,J)}catch(J){return w.json({errors:[{message:"Invalid JSON in request body",extensions:{code:"BAD_REQUEST"}}]},400)}}async executeGraphQL(w,J){if(!this.schema)return w.json({errors:[{message:"GraphQL schema not initialized",extensions:{code:"INTERNAL_SERVER_ERROR"}}]},500);try{let{query:U,variables:$,operationName:W}=J,X=await this.options.context(w),Z=await this.executeOperation(U,$,X,W);return w.json(Z)}catch(U){return w.json({errors:[{message:U.message||"Internal server error",extensions:{code:"INTERNAL_SERVER_ERROR",...{stack:U.stack}}}]},500)}}async executeOperation(w,J,U,$){return{data:null,errors:[{message:"GraphQL execution not fully implemented. Use a GraphQL library like graphql-js for full support.",extensions:{code:"NOT_IMPLEMENTED"}}]}}renderPlayground(){return`
|
|
27
|
-
<!DOCTYPE html>
|
|
28
|
-
<html lang="en">
|
|
29
|
-
<head>
|
|
30
|
-
<meta charset="UTF-8">
|
|
31
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
32
|
-
<title>GraphQL Playground</title>
|
|
33
|
-
<link rel="stylesheet" href="https://unpkg.com/graphql-playground-react/build/static/css/index.css" />
|
|
34
|
-
<link rel="shortcut icon" href="https://unpkg.com/graphql-playground-react/build/favicon.png" />
|
|
35
|
-
<script src="https://unpkg.com/graphql-playground-react/build/static/js/middleware.js"></script>
|
|
36
|
-
<style>
|
|
37
|
-
body {
|
|
38
|
-
margin: 0;
|
|
39
|
-
padding: 0;
|
|
40
|
-
font-family: 'Open Sans', sans-serif;
|
|
41
|
-
overflow: hidden;
|
|
42
|
-
}
|
|
43
|
-
#root {
|
|
44
|
-
height: 100vh;
|
|
45
|
-
}
|
|
46
|
-
</style>
|
|
47
|
-
</head>
|
|
48
|
-
<body>
|
|
49
|
-
<div id="root"></div>
|
|
50
|
-
<script>
|
|
51
|
-
window.addEventListener('load', function (event) {
|
|
52
|
-
GraphQLPlayground.init(document.getElementById('root'), {
|
|
53
|
-
endpoint: '${this.options.path}',
|
|
54
|
-
settings: {
|
|
55
|
-
'editor.theme': 'light',
|
|
56
|
-
'editor.cursorShape': 'line',
|
|
57
|
-
'editor.reuseHeaders': true,
|
|
58
|
-
'tracing.hideTracingResponse': true,
|
|
59
|
-
'queryPlan.hideQueryPlanResponse': true,
|
|
60
|
-
'editor.fontSize': 14,
|
|
61
|
-
'editor.fontFamily': "'Source Code Pro', 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace",
|
|
62
|
-
'request.credentials': 'include'
|
|
63
|
-
}
|
|
64
|
-
})
|
|
65
|
-
})
|
|
66
|
-
</script>
|
|
67
|
-
</body>
|
|
68
|
-
</html>
|
|
69
|
-
`.trim()}getSchema(){return this.schema}}
|
|
70
|
-
export{A as R,S,_ as T,v as U,Q as V,G as W,K as X,L as Y,T as Z,I as _,u as $,h as aa,j as ba,q as ca,Y as da,m as ea,g as fa,P as ga,E as ha};
|
|
71
|
-
|
|
72
|
-
//# debugId=B4358717307B642764756E2164756E21
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\src\\decorators\\graphql.ts", "..\\..\\src\\graphql\\zod-to-graphql.ts", "..\\..\\src\\graphql\\schema-builder.ts", "..\\..\\src\\graphql\\plugin.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"// GraphQL decorators for Veloce-TS\r\nimport 'reflect-metadata';\r\nimport type { ZodSchema } from 'zod';\r\nimport type {\r\n GraphQLResolverMetadata,\r\n GraphQLFieldMetadata,\r\n GraphQLArgumentMetadata,\r\n GraphQLOperationType\r\n} from '../types';\r\n\r\n// Metadata keys for reflect-metadata\r\nconst GRAPHQL_RESOLVER_KEY = Symbol('graphql:resolver');\r\nconst GRAPHQL_FIELD_KEY = Symbol('graphql:field');\r\nconst GRAPHQL_ARGS_KEY = Symbol('graphql:args');\r\n\r\n/**\r\n * @Resolver decorator - Marks a class as a GraphQL resolver\r\n * \r\n * @example\r\n * ```typescript\r\n * @Resolver()\r\n * class UserResolver {\r\n * @Query()\r\n * async getUser(@Arg('id', z.string()) id: string) {\r\n * return { id, name: 'John' };\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport function Resolver(name?: string): ClassDecorator {\r\n return (target: any) => {\r\n const metadata: GraphQLResolverMetadata = {\r\n target,\r\n name: name || target.name\r\n };\r\n\r\n Reflect.defineMetadata(GRAPHQL_RESOLVER_KEY, metadata, target);\r\n };\r\n}\r\n\r\n/**\r\n * @GQLQuery decorator - Marks a method as a GraphQL query\r\n * \r\n * @example\r\n * ```typescript\r\n * @GQLQuery()\r\n * async getUser(@Arg('id', z.string()) id: string) {\r\n * return { id, name: 'John' };\r\n * }\r\n * ```\r\n */\r\nexport function GQLQuery(name?: string, options?: {\r\n description?: string;\r\n deprecated?: boolean;\r\n deprecationReason?: string;\r\n}): MethodDecorator {\r\n return createFieldDecorator('query', name, options);\r\n}\r\n\r\n// Alias for convenience\r\nexport { GQLQuery as GraphQLQuery };\r\n\r\n/**\r\n * @GQLMutation decorator - Marks a method as a GraphQL mutation\r\n * \r\n * @example\r\n * ```typescript\r\n * @GQLMutation()\r\n * async createUser(@Arg('input', CreateUserSchema) input: CreateUserInput) {\r\n * return { id: '1', ...input };\r\n * }\r\n * ```\r\n */\r\nexport function GQLMutation(name?: string, options?: {\r\n description?: string;\r\n deprecated?: boolean;\r\n deprecationReason?: string;\r\n}): MethodDecorator {\r\n return createFieldDecorator('mutation', name, options);\r\n}\r\n\r\n// Alias for convenience\r\nexport { GQLMutation as GraphQLMutation };\r\nexport { GQLMutation as Mutation };\r\n\r\n/**\r\n * @GQLSubscription decorator - Marks a method as a GraphQL subscription\r\n * \r\n * @example\r\n * ```typescript\r\n * @GQLSubscription()\r\n * async onUserCreated() {\r\n * return pubsub.asyncIterator('USER_CREATED');\r\n * }\r\n * ```\r\n */\r\nexport function GQLSubscription(name?: string, options?: {\r\n description?: string;\r\n deprecated?: boolean;\r\n deprecationReason?: string;\r\n}): MethodDecorator {\r\n return createFieldDecorator('subscription', name, options);\r\n}\r\n\r\n// Alias for convenience\r\nexport { GQLSubscription as GraphQLSubscription };\r\nexport { GQLSubscription as Subscription };\r\n\r\n/**\r\n * Helper function to create field decorators\r\n */\r\nfunction createFieldDecorator(\r\n type: GraphQLOperationType,\r\n name?: string,\r\n options?: {\r\n description?: string;\r\n deprecated?: boolean;\r\n deprecationReason?: string;\r\n }\r\n): MethodDecorator {\r\n return (target: any, propertyKey: string | symbol) => {\r\n const metadata: GraphQLFieldMetadata = {\r\n target: target.constructor,\r\n propertyKey: propertyKey as string,\r\n type,\r\n name: name || (propertyKey as string),\r\n description: options?.description,\r\n deprecated: options?.deprecated,\r\n deprecationReason: options?.deprecationReason\r\n };\r\n\r\n // Store field metadata\r\n const existingFields = Reflect.getMetadata(GRAPHQL_FIELD_KEY, target.constructor) || [];\r\n existingFields.push(metadata);\r\n Reflect.defineMetadata(GRAPHQL_FIELD_KEY, existingFields, target.constructor);\r\n\r\n // Also store on the method itself for easy access\r\n Reflect.defineMetadata(GRAPHQL_FIELD_KEY, metadata, target, propertyKey);\r\n };\r\n}\r\n\r\n/**\r\n * @Arg decorator - Marks a parameter as a GraphQL argument with validation\r\n * \r\n * @example\r\n * ```typescript\r\n * @Query()\r\n * async getUser(\r\n * @Arg('id', z.string().uuid()) id: string,\r\n * @Arg('includeProfile', z.boolean().optional()) includeProfile?: boolean\r\n * ) {\r\n * return { id, name: 'John' };\r\n * }\r\n * ```\r\n */\r\nexport function Arg<T extends ZodSchema>(\r\n name: string,\r\n schema?: T,\r\n options?: {\r\n description?: string;\r\n defaultValue?: any;\r\n nullable?: boolean;\r\n }\r\n): ParameterDecorator {\r\n return (target: any, propertyKey: string | symbol | undefined, parameterIndex: number) => {\r\n if (!propertyKey) return;\r\n \r\n const existingArgs = Reflect.getMetadata(GRAPHQL_ARGS_KEY, target, propertyKey) || [];\r\n\r\n const metadata: GraphQLArgumentMetadata = {\r\n index: parameterIndex,\r\n name,\r\n schema,\r\n description: options?.description,\r\n defaultValue: options?.defaultValue,\r\n nullable: options?.nullable\r\n };\r\n\r\n existingArgs[parameterIndex] = metadata;\r\n Reflect.defineMetadata(GRAPHQL_ARGS_KEY, existingArgs, target, propertyKey);\r\n };\r\n}\r\n\r\n/**\r\n * @GQLContext decorator - Injects GraphQL context into a parameter\r\n * \r\n * @example\r\n * ```typescript\r\n * @GQLQuery()\r\n * async getCurrentUser(@GQLContext() ctx: GraphQLContext) {\r\n * return ctx.user;\r\n * }\r\n * ```\r\n */\r\nexport function GQLContext(): ParameterDecorator {\r\n return (target: any, propertyKey: string | symbol | undefined, parameterIndex: number) => {\r\n if (!propertyKey) return;\r\n \r\n const existingArgs = Reflect.getMetadata(GRAPHQL_ARGS_KEY, target, propertyKey) || [];\r\n\r\n const metadata: GraphQLArgumentMetadata = {\r\n index: parameterIndex,\r\n name: '__context__', // Special marker for context injection\r\n nullable: false\r\n };\r\n\r\n existingArgs[parameterIndex] = metadata;\r\n Reflect.defineMetadata(GRAPHQL_ARGS_KEY, existingArgs, target, propertyKey);\r\n };\r\n}\r\n\r\n// Alias for convenience (note: GraphQLContext type is exported from graphql module)\r\nexport { GQLContext as GraphQLCtx };\r\n\r\n// ============================================================================\r\n// Helper functions to retrieve metadata\r\n// ============================================================================\r\n\r\n/**\r\n * Get resolver metadata from a class\r\n */\r\nexport function getResolverMetadata(target: any): GraphQLResolverMetadata | undefined {\r\n return Reflect.getMetadata(GRAPHQL_RESOLVER_KEY, target);\r\n}\r\n\r\n/**\r\n * Get all field metadata from a resolver class\r\n */\r\nexport function getFieldsMetadata(target: any): GraphQLFieldMetadata[] {\r\n return Reflect.getMetadata(GRAPHQL_FIELD_KEY, target) || [];\r\n}\r\n\r\n/**\r\n * Get field metadata from a specific method\r\n */\r\nexport function getFieldMetadata(target: any, propertyKey: string): GraphQLFieldMetadata | undefined {\r\n return Reflect.getMetadata(GRAPHQL_FIELD_KEY, target, propertyKey);\r\n}\r\n\r\n/**\r\n * Get argument metadata from a method\r\n */\r\nexport function getArgumentsMetadata(target: any, propertyKey: string): GraphQLArgumentMetadata[] {\r\n return Reflect.getMetadata(GRAPHQL_ARGS_KEY, target, propertyKey) || [];\r\n}\r\n\r\n/**\r\n * Check if a class has resolver metadata\r\n */\r\nexport function hasResolverMetadata(target: any): boolean {\r\n return Reflect.hasMetadata(GRAPHQL_RESOLVER_KEY, target);\r\n}\r\n\r\n/**\r\n * Check if a method has field metadata\r\n */\r\nexport function hasFieldMetadata(target: any, propertyKey: string): boolean {\r\n return Reflect.hasMetadata(GRAPHQL_FIELD_KEY, target, propertyKey);\r\n}\r\n",
|
|
6
|
-
"// Convert Zod schemas to GraphQL types\r\nimport type { ZodSchema, ZodTypeAny } from 'zod';\r\nimport { z } from 'zod';\r\n\r\n/**\r\n * Convert a Zod schema to a GraphQL type string\r\n */\r\nexport function zodToGraphQLType(schema: ZodSchema): string {\r\n const zodType = (schema as any)._def.typeName;\r\n\r\n // Handle ZodString\r\n if (zodType === 'ZodString') {\r\n return 'String';\r\n }\r\n\r\n // Handle ZodNumber\r\n if (zodType === 'ZodNumber') {\r\n const def = (schema as any)._def;\r\n if (def.checks?.some((check: any) => check.kind === 'int')) {\r\n return 'Int';\r\n }\r\n return 'Float';\r\n }\r\n\r\n // Handle ZodBoolean\r\n if (zodType === 'ZodBoolean') {\r\n return 'Boolean';\r\n }\r\n\r\n // Handle ZodArray\r\n if (zodType === 'ZodArray') {\r\n const elementType = zodToGraphQLType((schema as any)._def.type);\r\n return `[${elementType}]`;\r\n }\r\n\r\n // Handle ZodObject\r\n if (zodType === 'ZodObject') {\r\n // For objects, we'll need to generate a custom type\r\n // Return a placeholder that will be replaced with the actual type name\r\n return 'JSON'; // GraphQL scalar for generic objects\r\n }\r\n\r\n // Handle ZodOptional\r\n if (zodType === 'ZodOptional') {\r\n return zodToGraphQLType((schema as any)._def.innerType);\r\n }\r\n\r\n // Handle ZodNullable\r\n if (zodType === 'ZodNullable') {\r\n return zodToGraphQLType((schema as any)._def.innerType);\r\n }\r\n\r\n // Handle ZodDefault\r\n if (zodType === 'ZodDefault') {\r\n return zodToGraphQLType((schema as any)._def.innerType);\r\n }\r\n\r\n // Handle ZodEnum\r\n if (zodType === 'ZodEnum') {\r\n // For enums, we'll need to generate a custom enum type\r\n return 'String'; // Fallback to String\r\n }\r\n\r\n // Handle ZodUnion\r\n if (zodType === 'ZodUnion') {\r\n // GraphQL doesn't support unions of scalars directly\r\n // We'll use the first option as fallback\r\n const options = (schema as any)._def.options;\r\n if (options && options.length > 0) {\r\n return zodToGraphQLType(options[0]);\r\n }\r\n }\r\n\r\n // Handle ZodLiteral\r\n if (zodType === 'ZodLiteral') {\r\n const value = (schema as any)._def.value;\r\n if (typeof value === 'string') return 'String';\r\n if (typeof value === 'number') return 'Float';\r\n if (typeof value === 'boolean') return 'Boolean';\r\n }\r\n\r\n // Handle ZodDate\r\n if (zodType === 'ZodDate') {\r\n return 'String'; // ISO date string\r\n }\r\n\r\n // Default fallback\r\n return 'String';\r\n}\r\n\r\n/**\r\n * Check if a Zod schema is nullable/optional\r\n */\r\nexport function isNullable(schema: ZodSchema): boolean {\r\n const zodType = (schema as any)._def.typeName;\r\n \r\n if (zodType === 'ZodOptional' || zodType === 'ZodNullable') {\r\n return true;\r\n }\r\n\r\n if (zodType === 'ZodDefault') {\r\n return isNullable((schema as any)._def.innerType);\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Get the default value from a Zod schema\r\n */\r\nexport function getDefaultValue(schema: ZodSchema): any {\r\n const zodType = (schema as any)._def.typeName;\r\n\r\n if (zodType === 'ZodDefault') {\r\n return (schema as any)._def.defaultValue();\r\n }\r\n\r\n if (zodType === 'ZodOptional' || zodType === 'ZodNullable') {\r\n const innerType = (schema as any)._def.innerType;\r\n if (innerType) {\r\n return getDefaultValue(innerType);\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Generate GraphQL object type definition from Zod object schema\r\n */\r\nexport function zodObjectToGraphQLType(name: string, schema: ZodSchema): string {\r\n const zodType = (schema as any)._def.typeName;\r\n\r\n if (zodType !== 'ZodObject') {\r\n throw new Error('Schema must be a ZodObject');\r\n }\r\n\r\n const shape = (schema as any)._def.shape();\r\n const fields: string[] = [];\r\n\r\n for (const [key, value] of Object.entries(shape)) {\r\n const fieldSchema = value as ZodTypeAny;\r\n const fieldType = zodToGraphQLType(fieldSchema);\r\n const nullable = isNullable(fieldSchema);\r\n const typeString = nullable ? fieldType : `${fieldType}!`;\r\n fields.push(` ${key}: ${typeString}`);\r\n }\r\n\r\n return `type ${name} {\\n${fields.join('\\n')}\\n}`;\r\n}\r\n\r\n/**\r\n * Generate GraphQL input type definition from Zod object schema\r\n */\r\nexport function zodObjectToGraphQLInput(name: string, schema: ZodSchema): string {\r\n const zodType = (schema as any)._def.typeName;\r\n\r\n if (zodType !== 'ZodObject') {\r\n throw new Error('Schema must be a ZodObject');\r\n }\r\n\r\n const shape = (schema as any)._def.shape();\r\n const fields: string[] = [];\r\n\r\n for (const [key, value] of Object.entries(shape)) {\r\n const fieldSchema = value as ZodTypeAny;\r\n const fieldType = zodToGraphQLType(fieldSchema);\r\n const nullable = isNullable(fieldSchema);\r\n const defaultValue = getDefaultValue(fieldSchema);\r\n \r\n let typeString = nullable ? fieldType : `${fieldType}!`;\r\n \r\n if (defaultValue !== undefined) {\r\n const defaultStr = JSON.stringify(defaultValue);\r\n typeString += ` = ${defaultStr}`;\r\n }\r\n \r\n fields.push(` ${key}: ${typeString}`);\r\n }\r\n\r\n return `input ${name} {\\n${fields.join('\\n')}\\n}`;\r\n}\r\n",
|
|
7
|
-
"// GraphQL Schema Builder for Veloce-TS\r\nimport type { MetadataRegistry } from '../core/metadata';\r\nimport type { DIContainer } from '../dependencies/container';\r\nimport type { GraphQLFieldMetadata, GraphQLArgumentMetadata, Context } from '../types';\r\nimport { getArgumentsMetadata } from '../decorators/graphql';\r\nimport { zodToGraphQLType, isNullable } from './zod-to-graphql';\r\nimport { ValidationEngine } from '../validation/validator';\r\n\r\n/**\r\n * GraphQL Schema Builder\r\n * Generates GraphQL schema from decorator metadata\r\n */\r\nexport class GraphQLSchemaBuilder {\r\n private validationEngine: ValidationEngine;\r\n private customTypes: Map<string, string> = new Map();\r\n\r\n constructor(\r\n private metadata: MetadataRegistry,\r\n private container: DIContainer\r\n ) {\r\n this.validationEngine = new ValidationEngine();\r\n }\r\n\r\n /**\r\n * Build the complete GraphQL schema\r\n */\r\n build(): GraphQLSchemaDefinition {\r\n const resolvers = this.metadata.getGraphQLResolvers();\r\n \r\n const queries: string[] = [];\r\n const mutations: string[] = [];\r\n const subscriptions: string[] = [];\r\n const types: string[] = [];\r\n\r\n // Process each resolver\r\n for (const resolver of resolvers) {\r\n const fields = this.metadata.getGraphQLFieldsByResolver(resolver.target);\r\n\r\n for (const field of fields) {\r\n const fieldDef = this.buildFieldDefinition(field);\r\n\r\n switch (field.type) {\r\n case 'query':\r\n queries.push(fieldDef);\r\n break;\r\n case 'mutation':\r\n mutations.push(fieldDef);\r\n break;\r\n case 'subscription':\r\n subscriptions.push(fieldDef);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Build type definitions\r\n let typeDefs = '';\r\n\r\n // Add custom types\r\n if (this.customTypes.size > 0) {\r\n typeDefs += Array.from(this.customTypes.values()).join('\\n\\n') + '\\n\\n';\r\n }\r\n\r\n // Add Query type\r\n if (queries.length > 0) {\r\n typeDefs += 'type Query {\\n';\r\n typeDefs += queries.map(q => ` ${q}`).join('\\n');\r\n typeDefs += '\\n}\\n\\n';\r\n }\r\n\r\n // Add Mutation type\r\n if (mutations.length > 0) {\r\n typeDefs += 'type Mutation {\\n';\r\n typeDefs += mutations.map(m => ` ${m}`).join('\\n');\r\n typeDefs += '\\n}\\n\\n';\r\n }\r\n\r\n // Add Subscription type\r\n if (subscriptions.length > 0) {\r\n typeDefs += 'type Subscription {\\n';\r\n typeDefs += subscriptions.map(s => ` ${s}`).join('\\n');\r\n typeDefs += '\\n}\\n';\r\n }\r\n\r\n // Build resolvers object\r\n const resolversObj = this.buildResolvers();\r\n\r\n return {\r\n typeDefs: typeDefs.trim(),\r\n resolvers: resolversObj\r\n };\r\n }\r\n\r\n /**\r\n * Build a field definition string\r\n */\r\n private buildFieldDefinition(field: GraphQLFieldMetadata): string {\r\n const args = getArgumentsMetadata(field.target.prototype, field.propertyKey);\r\n const argStrings: string[] = [];\r\n\r\n // Build arguments\r\n for (const arg of args) {\r\n if (arg.name === '__context__') continue; // Skip context injection\r\n\r\n let argType = 'String'; // Default type\r\n \r\n if (arg.schema) {\r\n argType = zodToGraphQLType(arg.schema);\r\n const nullable = isNullable(arg.schema);\r\n if (!nullable && !arg.nullable) {\r\n argType += '!';\r\n }\r\n }\r\n\r\n let argStr = `${arg.name}: ${argType}`;\r\n \r\n if (arg.defaultValue !== undefined) {\r\n argStr += ` = ${JSON.stringify(arg.defaultValue)}`;\r\n }\r\n\r\n argStrings.push(argStr);\r\n }\r\n\r\n const argsStr = argStrings.length > 0 ? `(${argStrings.join(', ')})` : '';\r\n \r\n // For now, default return type to String (can be enhanced with type inference)\r\n const returnType = 'String';\r\n\r\n let fieldStr = `${field.name}${argsStr}: ${returnType}`;\r\n\r\n // Add deprecation\r\n if (field.deprecated) {\r\n const reason = field.deprecationReason || 'No longer supported';\r\n fieldStr += ` @deprecated(reason: \"${reason}\")`;\r\n }\r\n\r\n return fieldStr;\r\n }\r\n\r\n /**\r\n * Build resolvers object with validation and DI\r\n */\r\n private buildResolvers(): GraphQLResolvers {\r\n const resolvers = this.metadata.getGraphQLResolvers();\r\n const resolversObj: GraphQLResolvers = {\r\n Query: {},\r\n Mutation: {},\r\n Subscription: {}\r\n };\r\n\r\n for (const resolver of resolvers) {\r\n const fields = this.metadata.getGraphQLFieldsByResolver(resolver.target);\r\n\r\n for (const field of fields) {\r\n const resolverFn = this.createResolverFunction(resolver.target, field);\r\n\r\n switch (field.type) {\r\n case 'query':\r\n resolversObj.Query![field.name!] = resolverFn;\r\n break;\r\n case 'mutation':\r\n resolversObj.Mutation![field.name!] = resolverFn;\r\n break;\r\n case 'subscription':\r\n resolversObj.Subscription![field.name!] = resolverFn;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return resolversObj;\r\n }\r\n\r\n /**\r\n * Create a resolver function with validation and DI\r\n */\r\n private createResolverFunction(\r\n target: any,\r\n field: GraphQLFieldMetadata\r\n ): GraphQLResolverFn {\r\n return async (parent: any, args: any, context: GraphQLContext, info: any) => {\r\n try {\r\n // Get argument metadata\r\n const argsMetadata = getArgumentsMetadata(target.prototype, field.propertyKey);\r\n const resolvedArgs: any[] = [];\r\n\r\n // Validate and resolve arguments\r\n for (const argMeta of argsMetadata) {\r\n if (argMeta.name === '__context__') {\r\n // Inject context\r\n resolvedArgs[argMeta.index] = context;\r\n } else {\r\n let value = args[argMeta.name];\r\n\r\n // Apply default value if not provided\r\n if (value === undefined && argMeta.defaultValue !== undefined) {\r\n value = argMeta.defaultValue;\r\n }\r\n\r\n // Validate with Zod schema\r\n if (argMeta.schema) {\r\n value = await this.validationEngine.validate(value, argMeta.schema);\r\n }\r\n\r\n resolvedArgs[argMeta.index] = value;\r\n }\r\n }\r\n\r\n // Resolve the resolver instance (with DI support)\r\n const instance: any = await this.container.resolve(target, {\r\n scope: 'request',\r\n context: context.request\r\n });\r\n\r\n // Execute the resolver method\r\n const result = await instance[field.propertyKey](...resolvedArgs);\r\n\r\n return result;\r\n } catch (error) {\r\n // Re-throw for GraphQL error handling\r\n throw error;\r\n }\r\n };\r\n }\r\n}\r\n\r\n// ============================================================================\r\n// Types\r\n// ============================================================================\r\n\r\nexport interface GraphQLSchemaDefinition {\r\n typeDefs: string;\r\n resolvers: GraphQLResolvers;\r\n}\r\n\r\nexport interface GraphQLResolvers {\r\n Query?: Record<string, GraphQLResolverFn>;\r\n Mutation?: Record<string, GraphQLResolverFn>;\r\n Subscription?: Record<string, GraphQLResolverFn>;\r\n}\r\n\r\nexport type GraphQLResolverFn = (\r\n parent: any,\r\n args: any,\r\n context: GraphQLContext,\r\n info: any\r\n) => any | Promise<any>;\r\n\r\nexport interface GraphQLContext {\r\n request: Context;\r\n user?: any;\r\n [key: string]: any;\r\n}\r\n",
|
|
8
|
-
"// GraphQL Plugin - Enables GraphQL support for Veloce-TS\r\nimport type { Plugin } from '../core/plugin';\r\nimport type { VeloceTS } from '../core/application';\r\nimport { GraphQLSchemaBuilder } from './schema-builder';\r\nimport type { GraphQLContext } from './schema-builder';\r\n\r\n/**\r\n * GraphQL Plugin Options\r\n */\r\nexport interface GraphQLPluginOptions {\r\n /** Path to serve GraphQL endpoint (default: /graphql) */\r\n path?: string;\r\n \r\n /** Path to serve GraphQL Playground (default: /graphql/playground) */\r\n playgroundPath?: string;\r\n \r\n /** Enable GraphQL Playground in development (default: true) */\r\n playground?: boolean;\r\n \r\n /** Custom context factory function */\r\n context?: (request: any) => Promise<any> | any;\r\n}\r\n\r\n/**\r\n * GraphQLPlugin enables GraphQL support with decorators and Zod validation\r\n * \r\n * @example\r\n * ```typescript\r\n * const app = new VeloceTS();\r\n * app.usePlugin(new GraphQLPlugin({\r\n * path: '/graphql',\r\n * playground: true\r\n * }));\r\n * ```\r\n */\r\nexport class GraphQLPlugin implements Plugin {\r\n name = 'graphql';\r\n version = '1.0.0';\r\n\r\n private options: Required<GraphQLPluginOptions>;\r\n private schema?: { typeDefs: string; resolvers: any };\r\n\r\n constructor(options?: GraphQLPluginOptions) {\r\n this.options = {\r\n path: options?.path || '/graphql',\r\n playgroundPath: options?.playgroundPath || '/graphql/playground',\r\n playground: options?.playground !== false,\r\n context: options?.context || ((request: any) => ({ request }))\r\n };\r\n }\r\n\r\n async install(app: VeloceTS): Promise<void> {\r\n // Build GraphQL schema from metadata\r\n const metadata = app.getMetadata();\r\n const container = app.getContainer();\r\n \r\n const schemaBuilder = new GraphQLSchemaBuilder(metadata, container);\r\n this.schema = schemaBuilder.build();\r\n\r\n // Register GraphQL endpoint\r\n app.post(this.options.path, {\r\n handler: async (c) => {\r\n return this.handleGraphQLRequest(c);\r\n },\r\n docs: {\r\n summary: 'GraphQL endpoint',\r\n description: 'Execute GraphQL queries and mutations',\r\n tags: ['GraphQL']\r\n }\r\n });\r\n\r\n // Also support GET for queries (useful for GraphQL Playground)\r\n app.get(this.options.path, {\r\n handler: async (c) => {\r\n const query = c.req.query('query');\r\n const variables = c.req.query('variables');\r\n const operationName = c.req.query('operationName');\r\n\r\n if (!query) {\r\n return c.json({ error: 'Query parameter is required' }, 400);\r\n }\r\n\r\n return this.executeGraphQL(c, {\r\n query,\r\n variables: variables ? JSON.parse(variables) : undefined,\r\n operationName\r\n });\r\n },\r\n docs: {\r\n summary: 'GraphQL endpoint (GET)',\r\n description: 'Execute GraphQL queries via GET request',\r\n tags: ['GraphQL']\r\n }\r\n });\r\n\r\n // Register GraphQL Playground endpoint if enabled\r\n if (this.options.playground) {\r\n app.get(this.options.playgroundPath, {\r\n handler: async (c) => {\r\n return c.html(this.renderPlayground());\r\n },\r\n docs: {\r\n summary: 'GraphQL Playground',\r\n description: 'Interactive GraphQL IDE',\r\n tags: ['GraphQL']\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Handle GraphQL POST request\r\n */\r\n private async handleGraphQLRequest(c: any) {\r\n try {\r\n const body = await c.req.json();\r\n return this.executeGraphQL(c, body);\r\n } catch (error) {\r\n return c.json({\r\n errors: [{\r\n message: 'Invalid JSON in request body',\r\n extensions: { code: 'BAD_REQUEST' }\r\n }]\r\n }, 400);\r\n }\r\n }\r\n\r\n /**\r\n * Execute a GraphQL operation\r\n */\r\n private async executeGraphQL(c: any, request: GraphQLRequest) {\r\n if (!this.schema) {\r\n return c.json({\r\n errors: [{\r\n message: 'GraphQL schema not initialized',\r\n extensions: { code: 'INTERNAL_SERVER_ERROR' }\r\n }]\r\n }, 500);\r\n }\r\n\r\n try {\r\n // Parse the query (simple implementation - in production use graphql-js)\r\n const { query, variables, operationName } = request;\r\n\r\n // Create context\r\n const context: GraphQLContext = await this.options.context(c);\r\n\r\n // Execute the operation\r\n const result = await this.executeOperation(\r\n query,\r\n variables,\r\n context,\r\n operationName\r\n );\r\n\r\n return c.json(result);\r\n } catch (error: any) {\r\n return c.json({\r\n errors: [{\r\n message: error.message || 'Internal server error',\r\n extensions: {\r\n code: 'INTERNAL_SERVER_ERROR',\r\n ...(process.env.NODE_ENV === 'development' && { stack: error.stack })\r\n }\r\n }]\r\n }, 500);\r\n }\r\n }\r\n\r\n /**\r\n * Execute a GraphQL operation (simplified implementation)\r\n * In production, this should use graphql-js or similar library\r\n */\r\n private async executeOperation(\r\n query: string,\r\n variables: any,\r\n context: GraphQLContext,\r\n operationName?: string\r\n ): Promise<GraphQLResponse> {\r\n // This is a simplified implementation\r\n // In a real implementation, you would use graphql-js to parse and execute\r\n \r\n // For now, return a placeholder response\r\n // The actual execution would happen through the resolvers we built\r\n return {\r\n data: null,\r\n errors: [{\r\n message: 'GraphQL execution not fully implemented. Use a GraphQL library like graphql-js for full support.',\r\n extensions: { code: 'NOT_IMPLEMENTED' }\r\n }]\r\n };\r\n }\r\n\r\n /**\r\n * Render GraphQL Playground HTML\r\n */\r\n private renderPlayground(): string {\r\n return `\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n <meta charset=\"UTF-8\">\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <title>GraphQL Playground</title>\r\n <link rel=\"stylesheet\" href=\"https://unpkg.com/graphql-playground-react/build/static/css/index.css\" />\r\n <link rel=\"shortcut icon\" href=\"https://unpkg.com/graphql-playground-react/build/favicon.png\" />\r\n <script src=\"https://unpkg.com/graphql-playground-react/build/static/js/middleware.js\"></script>\r\n <style>\r\n body {\r\n margin: 0;\r\n padding: 0;\r\n font-family: 'Open Sans', sans-serif;\r\n overflow: hidden;\r\n }\r\n #root {\r\n height: 100vh;\r\n }\r\n </style>\r\n</head>\r\n<body>\r\n <div id=\"root\"></div>\r\n <script>\r\n window.addEventListener('load', function (event) {\r\n GraphQLPlayground.init(document.getElementById('root'), {\r\n endpoint: '${this.options.path}',\r\n settings: {\r\n 'editor.theme': 'light',\r\n 'editor.cursorShape': 'line',\r\n 'editor.reuseHeaders': true,\r\n 'tracing.hideTracingResponse': true,\r\n 'queryPlan.hideQueryPlanResponse': true,\r\n 'editor.fontSize': 14,\r\n 'editor.fontFamily': \"'Source Code Pro', 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace\",\r\n 'request.credentials': 'include'\r\n }\r\n })\r\n })\r\n </script>\r\n</body>\r\n</html>\r\n `.trim();\r\n }\r\n\r\n /**\r\n * Get the generated schema (useful for testing)\r\n */\r\n getSchema() {\r\n return this.schema;\r\n }\r\n}\r\n\r\n// ============================================================================\r\n// Types\r\n// ============================================================================\r\n\r\ninterface GraphQLRequest {\r\n query: string;\r\n variables?: Record<string, any>;\r\n operationName?: string;\r\n}\r\n\r\ninterface GraphQLResponse {\r\n data?: any;\r\n errors?: Array<{\r\n message: string;\r\n locations?: Array<{ line: number; column: number }>;\r\n path?: Array<string | number>;\r\n extensions?: Record<string, any>;\r\n }>;\r\n}\r\n"
|
|
9
|
-
],
|
|
10
|
-
"mappings": "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",
|
|
11
|
-
"debugId": "B4358717307B642764756E2164756E21",
|
|
12
|
-
"names": []
|
|
13
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{va as vJ}from"./chunk-y262e56g.js";var cJ=vJ(()=>{/*! *****************************************************************************
|
|
3
|
-
Copyright (C) Microsoft. All rights reserved.
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
5
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
6
|
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
|
|
8
|
-
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
9
|
-
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
10
|
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
11
|
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
12
|
-
|
|
13
|
-
See the Apache Version 2.0 License for specific language governing permissions
|
|
14
|
-
and limitations under the License.
|
|
15
|
-
***************************************************************************** */var LJ;(function(O){(function(R){var V=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:v(),h=w(O);if(typeof V.Reflect<"u")h=w(V.Reflect,h);if(R(h,V),typeof V.Reflect>"u")V.Reflect=O;function w(_,k){return function(j,b){if(Object.defineProperty(_,j,{configurable:!0,writable:!0,value:b}),k)k(j,b)}}function f(){try{return Function("return this;")()}catch(_){}}function C(){try{return(0,eval)("(function() { return this; })()")}catch(_){}}function v(){return f()||C()}})(function(R,V){var h=Object.prototype.hasOwnProperty,w=typeof Symbol==="function",f=w&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",C=w&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",v=typeof Object.create==="function",_={__proto__:[]}instanceof Array,k=!v&&!_,j={create:v?function(){return l(Object.create(null))}:_?function(){return l({__proto__:null})}:function(){return l({})},has:k?function(J,Q){return h.call(J,Q)}:function(J,Q){return Q in J},get:k?function(J,Q){return h.call(J,Q)?J[Q]:void 0}:function(J,Q){return J[Q]}},b=Object.getPrototypeOf(Function),I=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:xJ(),P=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:kJ(),g=typeof WeakMap==="function"?WeakMap:bJ(),U=w?Symbol.for("@reflect-metadata:registry"):void 0,c=_J(),n=UJ(c);function qJ(J,Q,X,Y){if(!B(X)){if(!t(J))throw TypeError();if(!H(Q))throw TypeError();if(!H(Y)&&!B(Y)&&!S(Y))throw TypeError();if(S(Y))Y=void 0;return X=T(X),RJ(J,Q,X,Y)}else{if(!t(J))throw TypeError();if(!e(Q))throw TypeError();return VJ(J,Q)}}R("decorate",qJ);function FJ(J,Q){function X(Y,F){if(!H(Y))throw TypeError();if(!B(F)&&!wJ(F))throw TypeError();d(J,Q,Y,F)}return X}R("metadata",FJ);function BJ(J,Q,X,Y){if(!H(X))throw TypeError();if(!B(Y))Y=T(Y);return d(J,Q,X,Y)}R("defineMetadata",BJ);function ZJ(J,Q,X){if(!H(Q))throw TypeError();if(!B(X))X=T(X);return s(J,Q,X)}R("hasMetadata",ZJ);function EJ(J,Q,X){if(!H(Q))throw TypeError();if(!B(X))X=T(X);return u(J,Q,X)}R("hasOwnMetadata",EJ);function NJ(J,Q,X){if(!H(Q))throw TypeError();if(!B(X))X=T(X);return i(J,Q,X)}R("getMetadata",NJ);function HJ(J,Q,X){if(!H(Q))throw TypeError();if(!B(X))X=T(X);return y(J,Q,X)}R("getOwnMetadata",HJ);function zJ(J,Q){if(!H(J))throw TypeError();if(!B(Q))Q=T(Q);return p(J,Q)}R("getMetadataKeys",zJ);function DJ(J,Q){if(!H(J))throw TypeError();if(!B(Q))Q=T(Q);return o(J,Q)}R("getOwnMetadataKeys",DJ);function WJ(J,Q,X){if(!H(Q))throw TypeError();if(!B(X))X=T(X);if(!H(Q))throw TypeError();if(!B(X))X=T(X);var Y=m(Q,X,!1);if(B(Y))return!1;return Y.OrdinaryDeleteMetadata(J,Q,X)}R("deleteMetadata",WJ);function VJ(J,Q){for(var X=J.length-1;X>=0;--X){var Y=J[X],F=Y(Q);if(!B(F)&&!S(F)){if(!e(F))throw TypeError();Q=F}}return Q}function RJ(J,Q,X,Y){for(var F=J.length-1;F>=0;--F){var z=J[F],W=z(Q,X,Y);if(!B(W)&&!S(W)){if(!H(W))throw TypeError();Y=W}}return Y}function s(J,Q,X){var Y=u(J,Q,X);if(Y)return!0;var F=M(Q);if(!S(F))return s(J,F,X);return!1}function u(J,Q,X){var Y=m(Q,X,!1);if(B(Y))return!1;return r(Y.OrdinaryHasOwnMetadata(J,Q,X))}function i(J,Q,X){var Y=u(J,Q,X);if(Y)return y(J,Q,X);var F=M(Q);if(!S(F))return i(J,F,X);return}function y(J,Q,X){var Y=m(Q,X,!1);if(B(Y))return;return Y.OrdinaryGetOwnMetadata(J,Q,X)}function d(J,Q,X,Y){var F=m(X,Y,!0);F.OrdinaryDefineOwnMetadata(J,Q,X,Y)}function p(J,Q){var X=o(J,Q),Y=M(J);if(Y===null)return X;var F=p(Y,Q);if(F.length<=0)return X;if(X.length<=0)return F;var z=new P,W=[];for(var Z=0,$=X;Z<$.length;Z++){var A=$[Z],L=z.has(A);if(!L)z.add(A),W.push(A)}for(var q=0,E=F;q<E.length;q++){var A=E[q],L=z.has(A);if(!L)z.add(A),W.push(A)}return W}function o(J,Q){var X=m(J,Q,!1);if(!X)return[];return X.OrdinaryOwnMetadataKeys(J,Q)}function a(J){if(J===null)return 1;switch(typeof J){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return J===null?1:6;default:return 6}}function B(J){return J===void 0}function S(J){return J===null}function GJ(J){return typeof J==="symbol"}function H(J){return typeof J==="object"?J!==null:typeof J==="function"}function TJ(J,Q){switch(a(J)){case 0:return J;case 1:return J;case 2:return J;case 3:return J;case 4:return J;case 5:return J}var X=Q===3?"string":Q===5?"number":"default",Y=JJ(J,f);if(Y!==void 0){var F=Y.call(J,X);if(H(F))throw TypeError();return F}return jJ(J,X==="default"?"number":X)}function jJ(J,Q){if(Q==="string"){var X=J.toString;if(x(X)){var Y=X.call(J);if(!H(Y))return Y}var F=J.valueOf;if(x(F)){var Y=F.call(J);if(!H(Y))return Y}}else{var F=J.valueOf;if(x(F)){var Y=F.call(J);if(!H(Y))return Y}var z=J.toString;if(x(z)){var Y=z.call(J);if(!H(Y))return Y}}throw TypeError()}function r(J){return!!J}function hJ(J){return""+J}function T(J){var Q=TJ(J,3);if(GJ(Q))return Q;return hJ(Q)}function t(J){return Array.isArray?Array.isArray(J):J instanceof Object?J instanceof Array:Object.prototype.toString.call(J)==="[object Array]"}function x(J){return typeof J==="function"}function e(J){return typeof J==="function"}function wJ(J){switch(a(J)){case 3:return!0;case 4:return!0;default:return!1}}function K(J,Q){return J===Q||J!==J&&Q!==Q}function JJ(J,Q){var X=J[Q];if(X===void 0||X===null)return;if(!x(X))throw TypeError();return X}function QJ(J){var Q=JJ(J,C);if(!x(Q))throw TypeError();var X=Q.call(J);if(!H(X))throw TypeError();return X}function XJ(J){return J.value}function YJ(J){var Q=J.next();return Q.done?!1:Q}function $J(J){var Q=J.return;if(Q)Q.call(J)}function M(J){var Q=Object.getPrototypeOf(J);if(typeof J!=="function"||J===b)return Q;if(Q!==b)return Q;var X=J.prototype,Y=X&&Object.getPrototypeOf(X);if(Y==null||Y===Object.prototype)return Q;var F=Y.constructor;if(typeof F!=="function")return Q;if(F===J)return Q;return F}function CJ(){var J;if(!B(U)&&typeof V.Reflect<"u"&&!(U in V.Reflect)&&typeof V.Reflect.defineMetadata==="function")J=SJ(V.Reflect);var Q,X,Y,F=new g,z={registerProvider:W,getProvider:$,setProvider:L};return z;function W(q){if(!Object.isExtensible(z))throw Error("Cannot add provider to a frozen registry.");switch(!0){case J===q:break;case B(Q):Q=q;break;case Q===q:break;case B(X):X=q;break;case X===q:break;default:if(Y===void 0)Y=new P;Y.add(q);break}}function Z(q,E){if(!B(Q)){if(Q.isProviderFor(q,E))return Q;if(!B(X)){if(X.isProviderFor(q,E))return Q;if(!B(Y)){var N=QJ(Y);while(!0){var D=YJ(N);if(!D)return;var G=XJ(D);if(G.isProviderFor(q,E))return $J(N),G}}}}if(!B(J)&&J.isProviderFor(q,E))return J;return}function $(q,E){var N=F.get(q),D;if(!B(N))D=N.get(E);if(!B(D))return D;if(D=Z(q,E),!B(D)){if(B(N))N=new I,F.set(q,N);N.set(E,D)}return D}function A(q){if(B(q))throw TypeError();return Q===q||X===q||!B(Y)&&Y.has(q)}function L(q,E,N){if(!A(N))throw Error("Metadata provider not registered.");var D=$(q,E);if(D!==N){if(!B(D))return!1;var G=F.get(q);if(B(G))G=new I,F.set(q,G);G.set(E,N)}return!0}}function _J(){var J;if(!B(U)&&H(V.Reflect)&&Object.isExtensible(V.Reflect))J=V.Reflect[U];if(B(J))J=CJ();if(!B(U)&&H(V.Reflect)&&Object.isExtensible(V.Reflect))Object.defineProperty(V.Reflect,U,{enumerable:!1,configurable:!1,writable:!1,value:J});return J}function UJ(J){var Q=new g,X={isProviderFor:function(A,L){var q=Q.get(A);if(B(q))return!1;return q.has(L)},OrdinaryDefineOwnMetadata:W,OrdinaryHasOwnMetadata:F,OrdinaryGetOwnMetadata:z,OrdinaryOwnMetadataKeys:Z,OrdinaryDeleteMetadata:$};return c.registerProvider(X),X;function Y(A,L,q){var E=Q.get(A),N=!1;if(B(E)){if(!q)return;E=new I,Q.set(A,E),N=!0}var D=E.get(L);if(B(D)){if(!q)return;if(D=new I,E.set(L,D),!J.setProvider(A,L,X)){if(E.delete(L),N)Q.delete(A);throw Error("Wrong provider for target.")}}return D}function F(A,L,q){var E=Y(L,q,!1);if(B(E))return!1;return r(E.has(A))}function z(A,L,q){var E=Y(L,q,!1);if(B(E))return;return E.get(A)}function W(A,L,q,E){var N=Y(q,E,!0);N.set(A,L)}function Z(A,L){var q=[],E=Y(A,L,!1);if(B(E))return q;var N=E.keys(),D=QJ(N),G=0;while(!0){var AJ=YJ(D);if(!AJ)return q.length=G,q;var IJ=XJ(AJ);try{q[G]=IJ}catch(mJ){try{$J(D)}finally{throw mJ}}G++}}function $(A,L,q){var E=Y(L,q,!1);if(B(E))return!1;if(!E.delete(A))return!1;if(E.size===0){var N=Q.get(L);if(!B(N)){if(N.delete(q),N.size===0)Q.delete(N)}}return!0}}function SJ(J){var{defineMetadata:Q,hasOwnMetadata:X,getOwnMetadata:Y,getOwnMetadataKeys:F,deleteMetadata:z}=J,W=new g,Z={isProviderFor:function($,A){var L=W.get($);if(!B(L)&&L.has(A))return!0;if(F($,A).length){if(B(L))L=new P,W.set($,L);return L.add(A),!0}return!1},OrdinaryDefineOwnMetadata:Q,OrdinaryHasOwnMetadata:X,OrdinaryGetOwnMetadata:Y,OrdinaryOwnMetadataKeys:F,OrdinaryDeleteMetadata:z};return Z}function m(J,Q,X){var Y=c.getProvider(J,Q);if(!B(Y))return Y;if(X){if(c.setProvider(J,Q,n))return n;throw Error("Illegal state.")}return}function xJ(){var J={},Q=[],X=function(){function Z($,A,L){this._index=0,this._keys=$,this._values=A,this._selector=L}return Z.prototype["@@iterator"]=function(){return this},Z.prototype[C]=function(){return this},Z.prototype.next=function(){var $=this._index;if($>=0&&$<this._keys.length){var A=this._selector(this._keys[$],this._values[$]);if($+1>=this._keys.length)this._index=-1,this._keys=Q,this._values=Q;else this._index++;return{value:A,done:!1}}return{value:void 0,done:!0}},Z.prototype.throw=function($){if(this._index>=0)this._index=-1,this._keys=Q,this._values=Q;throw $},Z.prototype.return=function($){if(this._index>=0)this._index=-1,this._keys=Q,this._values=Q;return{value:$,done:!0}},Z}(),Y=function(){function Z(){this._keys=[],this._values=[],this._cacheKey=J,this._cacheIndex=-2}return Object.defineProperty(Z.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),Z.prototype.has=function($){return this._find($,!1)>=0},Z.prototype.get=function($){var A=this._find($,!1);return A>=0?this._values[A]:void 0},Z.prototype.set=function($,A){var L=this._find($,!0);return this._values[L]=A,this},Z.prototype.delete=function($){var A=this._find($,!1);if(A>=0){var L=this._keys.length;for(var q=A+1;q<L;q++)this._keys[q-1]=this._keys[q],this._values[q-1]=this._values[q];if(this._keys.length--,this._values.length--,K($,this._cacheKey))this._cacheKey=J,this._cacheIndex=-2;return!0}return!1},Z.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=J,this._cacheIndex=-2},Z.prototype.keys=function(){return new X(this._keys,this._values,F)},Z.prototype.values=function(){return new X(this._keys,this._values,z)},Z.prototype.entries=function(){return new X(this._keys,this._values,W)},Z.prototype["@@iterator"]=function(){return this.entries()},Z.prototype[C]=function(){return this.entries()},Z.prototype._find=function($,A){if(!K(this._cacheKey,$)){this._cacheIndex=-1;for(var L=0;L<this._keys.length;L++)if(K(this._keys[L],$)){this._cacheIndex=L;break}}if(this._cacheIndex<0&&A)this._cacheIndex=this._keys.length,this._keys.push($),this._values.push(void 0);return this._cacheIndex},Z}();return Y;function F(Z,$){return Z}function z(Z,$){return $}function W(Z,$){return[Z,$]}}function kJ(){var J=function(){function Q(){this._map=new I}return Object.defineProperty(Q.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),Q.prototype.has=function(X){return this._map.has(X)},Q.prototype.add=function(X){return this._map.set(X,X),this},Q.prototype.delete=function(X){return this._map.delete(X)},Q.prototype.clear=function(){this._map.clear()},Q.prototype.keys=function(){return this._map.keys()},Q.prototype.values=function(){return this._map.keys()},Q.prototype.entries=function(){return this._map.entries()},Q.prototype["@@iterator"]=function(){return this.keys()},Q.prototype[C]=function(){return this.keys()},Q}();return J}function bJ(){var J=16,Q=j.create(),X=Y();return function(){function $(){this._key=Y()}return $.prototype.has=function(A){var L=F(A,!1);return L!==void 0?j.has(L,this._key):!1},$.prototype.get=function(A){var L=F(A,!1);return L!==void 0?j.get(L,this._key):void 0},$.prototype.set=function(A,L){var q=F(A,!0);return q[this._key]=L,this},$.prototype.delete=function(A){var L=F(A,!1);return L!==void 0?delete L[this._key]:!1},$.prototype.clear=function(){this._key=Y()},$}();function Y(){var $;do $="@@WeakMap@@"+Z();while(j.has(Q,$));return Q[$]=!0,$}function F($,A){if(!h.call($,X)){if(!A)return;Object.defineProperty($,X,{value:j.create()})}return $[X]}function z($,A){for(var L=0;L<A;++L)$[L]=Math.random()*255|0;return $}function W($){if(typeof Uint8Array==="function"){var A=new Uint8Array($);if(typeof crypto<"u")crypto.getRandomValues(A);else if(typeof msCrypto<"u")msCrypto.getRandomValues(A);else z(A,$);return A}return z(Array($),$)}function Z(){var $=W(J);$[6]=$[6]&79|64,$[8]=$[8]&191|128;var A="";for(var L=0;L<J;++L){var q=$[L];if(L===4||L===6||L===8)A+="-";if(q<16)A+="0";A+=q.toString(16).toLowerCase()}return A}}function l(J){return J.__=void 0,delete J.__,J}})})(LJ||(LJ={}))});
|
|
16
|
-
export{cJ as ia};
|
|
17
|
-
|
|
18
|
-
//# debugId=12A7248494F29E6564756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\node_modules\\reflect-metadata\\Reflect.js"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof globalThis === \"object\" ? globalThis :\n typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n sloppyModeThis();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect !== \"undefined\") {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter, root);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n function makeExporter(target, previous) {\n return function (key, value) {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n if (previous)\n previous(key, value);\n };\n }\n function functionThis() {\n try {\n return Function(\"return this;\")();\n }\n catch (_) { }\n }\n function indirectEvalThis() {\n try {\n return (void 0, eval)(\"(function() { return this; })()\");\n }\n catch (_) { }\n }\n function sloppyModeThis() {\n return functionThis() || indirectEvalThis();\n }\n })(function (exporter, root) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var _Map = typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n var registrySymbol = supportsSymbol ? Symbol.for(\"@reflect-metadata:registry\") : undefined;\n var metadataRegistry = GetOrCreateMetadataRegistry();\n var metadataProvider = CreateMetadataProvider(metadataRegistry);\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var provider = GetMetadataProvider(target, propertyKey, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return false;\n return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ false);\n if (IsUndefined(provider))\n return;\n return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var provider = GetMetadataProvider(O, P, /*Create*/ true);\n provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var provider = GetMetadataProvider(O, P, /*create*/ false);\n if (!provider) {\n return [];\n }\n return provider.OrdinaryOwnMetadataKeys(O, P);\n }\n // 6 ECMAScript Data Types and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n function SameValueZero(x, y) {\n return x === y || x !== x && y !== y;\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // Global metadata registry\n // - Allows `import \"reflect-metadata\"` and `import \"reflect-metadata/no-conflict\"` to interoperate.\n // - Uses isolated metadata if `Reflect` is frozen before the registry can be installed.\n /**\n * Creates a registry used to allow multiple `reflect-metadata` providers.\n */\n function CreateMetadataRegistry() {\n var fallback;\n if (!IsUndefined(registrySymbol) &&\n typeof root.Reflect !== \"undefined\" &&\n !(registrySymbol in root.Reflect) &&\n typeof root.Reflect.defineMetadata === \"function\") {\n // interoperate with older version of `reflect-metadata` that did not support a registry.\n fallback = CreateFallbackProvider(root.Reflect);\n }\n var first;\n var second;\n var rest;\n var targetProviderMap = new _WeakMap();\n var registry = {\n registerProvider: registerProvider,\n getProvider: getProvider,\n setProvider: setProvider,\n };\n return registry;\n function registerProvider(provider) {\n if (!Object.isExtensible(registry)) {\n throw new Error(\"Cannot add provider to a frozen registry.\");\n }\n switch (true) {\n case fallback === provider: break;\n case IsUndefined(first):\n first = provider;\n break;\n case first === provider: break;\n case IsUndefined(second):\n second = provider;\n break;\n case second === provider: break;\n default:\n if (rest === undefined)\n rest = new _Set();\n rest.add(provider);\n break;\n }\n }\n function getProviderNoCache(O, P) {\n if (!IsUndefined(first)) {\n if (first.isProviderFor(O, P))\n return first;\n if (!IsUndefined(second)) {\n if (second.isProviderFor(O, P))\n return first;\n if (!IsUndefined(rest)) {\n var iterator = GetIterator(rest);\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n return undefined;\n }\n var provider = IteratorValue(next);\n if (provider.isProviderFor(O, P)) {\n IteratorClose(iterator);\n return provider;\n }\n }\n }\n }\n }\n if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) {\n return fallback;\n }\n return undefined;\n }\n function getProvider(O, P) {\n var providerMap = targetProviderMap.get(O);\n var provider;\n if (!IsUndefined(providerMap)) {\n provider = providerMap.get(P);\n }\n if (!IsUndefined(provider)) {\n return provider;\n }\n provider = getProviderNoCache(O, P);\n if (!IsUndefined(provider)) {\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return provider;\n }\n function hasProvider(provider) {\n if (IsUndefined(provider))\n throw new TypeError();\n return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider);\n }\n function setProvider(O, P, provider) {\n if (!hasProvider(provider)) {\n throw new Error(\"Metadata provider not registered.\");\n }\n var existingProvider = getProvider(O, P);\n if (existingProvider !== provider) {\n if (!IsUndefined(existingProvider)) {\n return false;\n }\n var providerMap = targetProviderMap.get(O);\n if (IsUndefined(providerMap)) {\n providerMap = new _Map();\n targetProviderMap.set(O, providerMap);\n }\n providerMap.set(P, provider);\n }\n return true;\n }\n }\n /**\n * Gets or creates the shared registry of metadata providers.\n */\n function GetOrCreateMetadataRegistry() {\n var metadataRegistry;\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n metadataRegistry = root.Reflect[registrySymbol];\n }\n if (IsUndefined(metadataRegistry)) {\n metadataRegistry = CreateMetadataRegistry();\n }\n if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) {\n Object.defineProperty(root.Reflect, registrySymbol, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: metadataRegistry\n });\n }\n return metadataRegistry;\n }\n function CreateMetadataProvider(registry) {\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var metadata = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var targetMetadata = metadata.get(O);\n if (IsUndefined(targetMetadata))\n return false;\n return targetMetadata.has(P);\n },\n OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata,\n OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata,\n OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata,\n OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys,\n OrdinaryDeleteMetadata: OrdinaryDeleteMetadata,\n };\n metadataRegistry.registerProvider(provider);\n return provider;\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = metadata.get(O);\n var createdTargetMetadata = false;\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n metadata.set(O, targetMetadata);\n createdTargetMetadata = true;\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n if (!registry.setProvider(O, P, provider)) {\n targetMetadata.delete(P);\n if (createdTargetMetadata) {\n metadata.delete(O);\n }\n throw new Error(\"Wrong provider for target.\");\n }\n }\n return metadataMap;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n function OrdinaryDeleteMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(MetadataKey))\n return false;\n if (metadataMap.size === 0) {\n var targetMetadata = metadata.get(O);\n if (!IsUndefined(targetMetadata)) {\n targetMetadata.delete(P);\n if (targetMetadata.size === 0) {\n metadata.delete(targetMetadata);\n }\n }\n }\n return true;\n }\n }\n function CreateFallbackProvider(reflect) {\n var defineMetadata = reflect.defineMetadata, hasOwnMetadata = reflect.hasOwnMetadata, getOwnMetadata = reflect.getOwnMetadata, getOwnMetadataKeys = reflect.getOwnMetadataKeys, deleteMetadata = reflect.deleteMetadata;\n var metadataOwner = new _WeakMap();\n var provider = {\n isProviderFor: function (O, P) {\n var metadataPropertySet = metadataOwner.get(O);\n if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) {\n return true;\n }\n if (getOwnMetadataKeys(O, P).length) {\n if (IsUndefined(metadataPropertySet)) {\n metadataPropertySet = new _Set();\n metadataOwner.set(O, metadataPropertySet);\n }\n metadataPropertySet.add(P);\n return true;\n }\n return false;\n },\n OrdinaryDefineOwnMetadata: defineMetadata,\n OrdinaryHasOwnMetadata: hasOwnMetadata,\n OrdinaryGetOwnMetadata: getOwnMetadata,\n OrdinaryOwnMetadataKeys: getOwnMetadataKeys,\n OrdinaryDeleteMetadata: deleteMetadata,\n };\n return provider;\n }\n /**\n * Gets the metadata provider for an object. If the object has no metadata provider and this is for a create operation,\n * then this module's metadata provider is assigned to the object.\n */\n function GetMetadataProvider(O, P, Create) {\n var registeredProvider = metadataRegistry.getProvider(O, P);\n if (!IsUndefined(registeredProvider)) {\n return registeredProvider;\n }\n if (Create) {\n if (metadataRegistry.setProvider(O, P, metadataProvider)) {\n return metadataProvider;\n }\n throw new Error(\"Illegal state.\");\n }\n return undefined;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n var Map = /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (SameValueZero(key, this._cacheKey)) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (!SameValueZero(this._cacheKey, key)) {\n this._cacheIndex = -1;\n for (var i = 0; i < this._keys.length; i++) {\n if (SameValueZero(this._keys[i], key)) {\n this._cacheIndex = i;\n break;\n }\n }\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n return Map;\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n var Set = /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.keys(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n return Set;\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n var array = new Uint8Array(size);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(array);\n }\n else if (typeof msCrypto !== \"undefined\") {\n msCrypto.getRandomValues(array);\n }\n else {\n FillRandomBytes(array, size);\n }\n return array;\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "12A7248494F29E6564756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{ka as D}from"./chunk-yq3gf9ts.js";import{qa as B}from"./chunk-5q75d71c.js";class F{schemaCache=new WeakMap;stats={hits:0,misses:0,validations:0};async validate(A,q){this.stats.validations++;try{let b=this.schemaCache.get(q);if(!b)this.stats.misses++,b={schema:q,resultCache:new WeakMap},this.schemaCache.set(q,b);else this.stats.hits++;return await b.schema.parseAsync(A)}catch(b){if(b instanceof B)throw new D(b);throw b}}validateSync(A,q){this.stats.validations++;try{let b=this.schemaCache.get(q);if(!b)this.stats.misses++,b={schema:q,resultCache:new WeakMap},this.schemaCache.set(q,b);else this.stats.hits++;return b.schema.parse(A)}catch(b){if(b instanceof B)throw new D(b);throw b}}getCacheStats(){let A=this.stats.validations>0?this.stats.hits/this.stats.validations*100:0;return{...this.stats,hitRate:Math.round(A*100)/100}}resetStats(){this.stats={hits:0,misses:0,validations:0}}clearCache(){this.schemaCache=new WeakMap,this.resetStats()}}
|
|
3
|
-
export{F as ja};
|
|
4
|
-
|
|
5
|
-
//# debugId=92C7C0808754441064756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\src\\validation\\validator.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import { ZodSchema, ZodError } from 'zod';\r\nimport { ValidationException } from './exceptions.js';\r\n\r\n/**\r\n * Cached schema wrapper that stores parsed schema and validation results\r\n */\r\ninterface CachedSchema<T = any> {\r\n schema: ZodSchema<T>;\r\n // Cache for successful validation results (optional optimization)\r\n // Using WeakMap to allow garbage collection of validated data\r\n resultCache?: WeakMap<any, T>;\r\n}\r\n\r\n/**\r\n * ValidationEngine handles validation of data against Zod schemas\r\n * with built-in caching for performance optimization\r\n * \r\n * Performance optimizations:\r\n * - WeakMap-based schema caching to reuse parsed schemas\r\n * - Optional result caching for identical input objects\r\n * - Efficient error handling with minimal overhead\r\n */\r\nexport class ValidationEngine {\r\n // Primary schema cache using WeakMap for automatic garbage collection\r\n private schemaCache: WeakMap<ZodSchema, CachedSchema> = new WeakMap();\r\n \r\n // Statistics for monitoring cache effectiveness (optional, for debugging)\r\n private stats = {\r\n hits: 0,\r\n misses: 0,\r\n validations: 0\r\n };\r\n\r\n /**\r\n * Validates data asynchronously against a Zod schema\r\n * Uses cached schema for improved performance on repeated validations\r\n * \r\n * @param data - The data to validate\r\n * @param schema - The Zod schema to validate against\r\n * @returns The validated and typed data\r\n * @throws ValidationException if validation fails\r\n */\r\n async validate<T>(data: unknown, schema: ZodSchema<T>): Promise<T> {\r\n this.stats.validations++;\r\n \r\n try {\r\n // Get or create cached schema\r\n let cached = this.schemaCache.get(schema);\r\n \r\n if (!cached) {\r\n this.stats.misses++;\r\n // First time seeing this schema - cache it\r\n cached = {\r\n schema: schema,\r\n resultCache: new WeakMap()\r\n };\r\n this.schemaCache.set(schema, cached);\r\n } else {\r\n this.stats.hits++;\r\n }\r\n \r\n // Use the cached schema for validation\r\n return await cached.schema.parseAsync(data);\r\n } catch (error) {\r\n if (error instanceof ZodError) {\r\n throw new ValidationException(error);\r\n }\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Validates data synchronously against a Zod schema\r\n * Uses cached schema for improved performance on repeated validations\r\n * \r\n * @param data - The data to validate\r\n * @param schema - The Zod schema to validate against\r\n * @returns The validated and typed data\r\n * @throws ValidationException if validation fails\r\n */\r\n validateSync<T>(data: unknown, schema: ZodSchema<T>): T {\r\n this.stats.validations++;\r\n \r\n try {\r\n // Get or create cached schema\r\n let cached = this.schemaCache.get(schema);\r\n \r\n if (!cached) {\r\n this.stats.misses++;\r\n // First time seeing this schema - cache it\r\n cached = {\r\n schema: schema,\r\n resultCache: new WeakMap()\r\n };\r\n this.schemaCache.set(schema, cached);\r\n } else {\r\n this.stats.hits++;\r\n }\r\n \r\n // Use the cached schema for validation\r\n return cached.schema.parse(data);\r\n } catch (error) {\r\n if (error instanceof ZodError) {\r\n throw new ValidationException(error);\r\n }\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Get cache statistics (useful for monitoring and debugging)\r\n * Returns hit rate and total validations performed\r\n */\r\n getCacheStats(): { hits: number; misses: number; validations: number; hitRate: number } {\r\n const hitRate = this.stats.validations > 0 \r\n ? (this.stats.hits / this.stats.validations) * 100 \r\n : 0;\r\n \r\n return {\r\n ...this.stats,\r\n hitRate: Math.round(hitRate * 100) / 100 // Round to 2 decimal places\r\n };\r\n }\r\n\r\n /**\r\n * Reset cache statistics (useful for testing)\r\n */\r\n resetStats(): void {\r\n this.stats = {\r\n hits: 0,\r\n misses: 0,\r\n validations: 0\r\n };\r\n }\r\n\r\n /**\r\n * Clear the schema cache (useful for testing or memory management)\r\n * Note: WeakMap doesn't have a clear method, so we create a new instance\r\n */\r\n clearCache(): void {\r\n this.schemaCache = new WeakMap();\r\n this.resetStats();\r\n }\r\n}\r\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": ";wFAsBO,AAAM,CAAiB,CAEpB,YAAgD,IAAI,QAGpD,MAAQ,CACd,KAAM,EACN,OAAQ,EACR,YAAa,CACf,OAWM,SAAW,CAAC,EAAe,EAAkC,CACjE,KAAK,MAAM,cAEX,GAAI,CAEF,IAAI,EAAS,KAAK,YAAY,IAAI,CAAM,EAExC,GAAI,CAAC,EACH,KAAK,MAAM,SAEX,EAAS,CACP,OAAQ,EACR,YAAa,IAAI,OACnB,EACA,KAAK,YAAY,IAAI,EAAQ,CAAM,EAEnC,UAAK,MAAM,OAIb,OAAO,MAAM,EAAO,OAAO,WAAW,CAAI,EAC1C,MAAO,EAAO,CACd,GAAI,aAAiB,EACnB,MAAM,IAAI,EAAoB,CAAK,EAErC,MAAM,GAaV,YAAe,CAAC,EAAe,EAAyB,CACtD,KAAK,MAAM,cAEX,GAAI,CAEF,IAAI,EAAS,KAAK,YAAY,IAAI,CAAM,EAExC,GAAI,CAAC,EACH,KAAK,MAAM,SAEX,EAAS,CACP,OAAQ,EACR,YAAa,IAAI,OACnB,EACA,KAAK,YAAY,IAAI,EAAQ,CAAM,EAEnC,UAAK,MAAM,OAIb,OAAO,EAAO,OAAO,MAAM,CAAI,EAC/B,MAAO,EAAO,CACd,GAAI,aAAiB,EACnB,MAAM,IAAI,EAAoB,CAAK,EAErC,MAAM,GAQV,aAAa,EAA2E,CACtF,IAAM,EAAU,KAAK,MAAM,YAAc,EACpC,KAAK,MAAM,KAAO,KAAK,MAAM,YAAe,IAC7C,EAEJ,MAAO,IACF,KAAK,MACR,QAAS,KAAK,MAAM,EAAU,GAAG,EAAI,GACvC,EAMF,UAAU,EAAS,CACjB,KAAK,MAAQ,CACX,KAAM,EACN,OAAQ,EACR,YAAa,CACf,EAOF,UAAU,EAAS,CACjB,KAAK,YAAc,IAAI,QACvB,KAAK,WAAW,EAEpB",
|
|
8
|
-
"debugId": "92C7C0808754441064756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
class B{manager;id;_ws;constructor(j,q,x){this.manager=q;this._ws=j,this.id=x||crypto.randomUUID()}send(j){if(!this._ws||this._ws.readyState!==WebSocket.OPEN)return;let q=typeof j==="string"?j:JSON.stringify(j);this._ws.send(q)}broadcast(j,q){this.manager.broadcast(j,q)}join(j){this.manager.joinRoom(this.id,j)}leave(j){this.manager.leaveRoom(this.id,j)}close(j,q){if(this._ws&&this._ws.readyState===WebSocket.OPEN)this._ws.close(j,q)}get native(){return this._ws}get isOpen(){return this._ws!==null&&this._ws.readyState===WebSocket.OPEN}_markClosed(){this._ws=null}}class E{connections=new Map;rooms=new Map;connectionsByRoom=new Map;handleConnection(j,q){let x=new B(j,this);if(this.connections.set(x.id,x),q.onConnect)this.executeHandler(q,q.onConnect,x);return j.addEventListener("message",async(y)=>{await this.handleMessage(y,x,q)}),j.addEventListener("close",()=>{this.handleDisconnect(x,q)}),j.addEventListener("error",(y)=>{console.error(`WebSocket error for connection ${x.id}:`,y)}),x}async handleMessage(j,q,x){if(!x.onMessage)return;let y;try{if(y=typeof j.data==="string"?JSON.parse(j.data):j.data,x.messageSchema)y=await x.messageSchema.parseAsync(y);await this.executeHandler(x,x.onMessage,q,y)}catch(z){q.send({error:"Invalid message format",details:z instanceof Error?z.message:"Unknown error"})}}handleDisconnect(j,q){if(Array.from(this.connectionsByRoom.entries()).forEach(([x,y])=>{if(y.delete(j),y.size===0)this.connectionsByRoom.delete(x)}),Array.from(this.rooms.entries()).forEach(([x,y])=>{if(y.delete(j.id),y.size===0)this.rooms.delete(x)}),this.connections.delete(j.id),j._markClosed(),q.onDisconnect)this.executeHandler(q,q.onDisconnect,j)}async executeHandler(j,q,x,y){try{let z=new j.target,A=z[q];if(typeof A==="function")if(y!==void 0)await A.call(z,x,y);else await A.call(z,x)}catch(z){console.error(`Error executing WebSocket handler ${q}:`,z)}}broadcast(j,q){let x=q?this.getConnectionsInRoom(q):Array.from(this.connections.values()),y=typeof j==="string"?j:JSON.stringify(j);for(let z of x)if(z.isOpen)z.send(y)}joinRoom(j,q){let x=this.connections.get(j);if(!x)return;if(!this.rooms.has(q))this.rooms.set(q,new Set);if(this.rooms.get(q).add(j),!this.connectionsByRoom.has(q))this.connectionsByRoom.set(q,new Set);this.connectionsByRoom.get(q).add(x)}leaveRoom(j,q){let x=this.connections.get(j);if(!x)return;let y=this.rooms.get(q);if(y){if(y.delete(j),y.size===0)this.rooms.delete(q)}let z=this.connectionsByRoom.get(q);if(z){if(z.delete(x),z.size===0)this.connectionsByRoom.delete(q)}}getConnectionsInRoom(j){let q=this.connectionsByRoom.get(j);return q?Array.from(q):[]}getConnection(j){return this.connections.get(j)}getAllConnections(){return Array.from(this.connections.values())}getConnectionCount(){return this.connections.size}getRooms(){return Array.from(this.rooms.keys())}getRoomSize(j){return this.rooms.get(j)?.size||0}}class F{name="websocket";version="1.0.0";manager;constructor(){this.manager=new E}async install(j){let x=j.getMetadata().getWebSockets();for(let y of x)this.registerWebSocket(j,y)}registerWebSocket(j,q){j.getHono().get(q.path,async(y)=>{if(y.req.header("upgrade")?.toLowerCase()!=="websocket")return y.text("Expected WebSocket upgrade",426);return this.handleUpgrade(y,q)})}handleUpgrade(j,q){if(typeof Bun<"u")return this.handleBunUpgrade(j,q);else if(typeof globalThis.Deno<"u")return this.handleDenoUpgrade(j,q);else return this.handleNodeUpgrade(j,q)}handleBunUpgrade(j,q){if(!j.env?.upgrade?.(j.req.raw))return j.text("WebSocket upgrade failed",500);return new Response(null,{status:101})}handleDenoUpgrade(j,q){let x=globalThis.Deno,{socket:y,response:z}=x.upgradeWebSocket(j.req.raw);return y.onopen=()=>{this.manager.handleConnection(y,q)},z}handleNodeUpgrade(j,q){return j.text("WebSocket support requires Bun or Deno runtime",501)}getManager(){return this.manager}broadcast(j,q){this.manager.broadcast(j,q)}getConnectionCount(){return this.manager.getConnectionCount()}getRooms(){return this.manager.getRooms()}}
|
|
3
|
-
export{B as f,E as g,F as h};
|
|
4
|
-
|
|
5
|
-
//# debugId=D74F9FB3372F544E64756E2164756E21
|