veloce-ts 0.3.0 → 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 +55 -1
- package/dist/cjs/src/cli/index.js +122 -71
- package/dist/cjs/src/cli/index.js.map +4 -4
- package/dist/cjs/src/index.js +17 -17
- package/dist/cjs/src/index.js.map +2 -2
- package/dist/cjs/src/middleware/index.js +2 -2
- package/dist/cjs/src/middleware/index.js.map +2 -2
- package/dist/cjs/src/plugins/index.js +2 -2
- package/dist/cjs/src/plugins/index.js.map +2 -2
- package/dist/cjs/src/testing/index.js +2 -2
- package/dist/cjs/src/testing/index.js.map +2 -2
- 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 +161 -14
- package/dist/esm/src/index.js.map +178 -5
- package/dist/esm/src/middleware/index.js +28 -2
- package/dist/esm/src/middleware/index.js.map +79 -3
- package/dist/esm/src/plugins/index.js +113 -3
- package/dist/esm/src/plugins/index.js.map +129 -3
- package/dist/esm/src/testing/index.js +42 -2
- package/dist/esm/src/testing/index.js.map +93 -3
- 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/cli/commands/new.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 +1 -1
- package/dist/esm/chunk-0st10wcn.js +0 -5
- package/dist/esm/chunk-0st10wcn.js.map +0 -10
- package/dist/esm/chunk-17vq2krv.js +0 -4
- package/dist/esm/chunk-17vq2krv.js.map +0 -16
- package/dist/esm/chunk-39f1dm0q.js +0 -60
- package/dist/esm/chunk-39f1dm0q.js.map +0 -10
- package/dist/esm/chunk-3q5xefez.js +0 -72
- package/dist/esm/chunk-3q5xefez.js.map +0 -13
- package/dist/esm/chunk-6ft6xkhc.js +0 -5
- package/dist/esm/chunk-6ft6xkhc.js.map +0 -10
- package/dist/esm/chunk-79b0bm4k.js +0 -5
- package/dist/esm/chunk-79b0bm4k.js.map +0 -10
- package/dist/esm/chunk-8kakv20e.js +0 -7
- package/dist/esm/chunk-8kakv20e.js.map +0 -10
- package/dist/esm/chunk-b2pdghf7.js +0 -5
- package/dist/esm/chunk-b2pdghf7.js.map +0 -11
- package/dist/esm/chunk-b7yr0p26.js +0 -5
- package/dist/esm/chunk-b7yr0p26.js.map +0 -10
- package/dist/esm/chunk-fzj3j2tz.js +0 -5
- package/dist/esm/chunk-fzj3j2tz.js.map +0 -10
- package/dist/esm/chunk-g0e0m30h.js +0 -6
- package/dist/esm/chunk-g0e0m30h.js.map +0 -10
- package/dist/esm/chunk-gzkpxw50.js +0 -5
- package/dist/esm/chunk-gzkpxw50.js.map +0 -10
- package/dist/esm/chunk-k4346bxd.js +0 -30
- package/dist/esm/chunk-k4346bxd.js.map +0 -78
- package/dist/esm/chunk-k9p1edmj.js +0 -5
- package/dist/esm/chunk-k9p1edmj.js.map +0 -10
- package/dist/esm/chunk-keyvhe4h.js +0 -5
- package/dist/esm/chunk-keyvhe4h.js.map +0 -9
- package/dist/esm/chunk-npcmt5ay.js +0 -430
- package/dist/esm/chunk-npcmt5ay.js.map +0 -10
- package/dist/esm/chunk-nyqav7az.js +0 -18
- package/dist/esm/chunk-nyqav7az.js.map +0 -10
- package/dist/esm/chunk-nzg49r1w.js +0 -7
- package/dist/esm/chunk-nzg49r1w.js.map +0 -10
- package/dist/esm/chunk-sk8amac2.js +0 -5
- package/dist/esm/chunk-sk8amac2.js.map +0 -10
- package/dist/esm/chunk-sz3bj4rp.js +0 -5
- package/dist/esm/chunk-sz3bj4rp.js.map +0 -12
- package/dist/esm/chunk-x1mvjab1.js +0 -5
- package/dist/esm/chunk-x1mvjab1.js.map +0 -12
|
@@ -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": "808DD9082B7D70A564756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import"./chunk-keyvhe4h.js";import{existsSync as c}from"fs";import{join as u}from"path";import{rm as m,mkdir as l}from"fs/promises";function B(e){e.command("build").description("Build project for production").option("-m, --minify","Minify output",!1).option("-s, --sourcemap","Generate sourcemaps",!0).option("-o, --outdir <dir>","Output directory","dist").option("-f, --format <format>","Output format (esm, cjs, both)","both").action(async(i)=>{await f(i)})}async function f(e){let i=u(process.cwd(),"src","index.ts");if(!c(i))console.error("Error: src/index.ts not found"),console.error("Make sure you are in a VeloceTS project directory"),process.exit(1);console.log("Building project for production..."),console.log(`Format: ${e.format||"both"}`),console.log(`Minify: ${e.minify?"yes":"no"}`),console.log(`Sourcemap: ${e.sourcemap?"yes":"no"}`);let o=e.outdir||"dist";try{if(c(o))await m(o,{recursive:!0,force:!0});await l(o,{recursive:!0});let t=e.format||"both",s=t==="both"?["esm","cjs"]:[t];for(let r of s)console.log(`
|
|
3
|
-
Building ${r.toUpperCase()}...`),await p(i,o,r,e);console.log(`
|
|
4
|
-
\u2713 Build completed successfully!`),console.log(`
|
|
5
|
-
Output directory: ${o}`)}catch(t){console.error("Build failed:",t),process.exit(1)}}async function p(e,i,o,t){let s=u(i,o);await l(s,{recursive:!0});let r=await Bun.build({entrypoints:[e],outdir:s,target:"bun",format:o==="esm"?"esm":"cjs",minify:t.minify||!1,sourcemap:t.sourcemap!==!1?"external":"none",splitting:o==="esm",external:["hono","zod","reflect-metadata","commander","zod-to-json-schema"]});if(!r.success){console.error(`Failed to build ${o}:`);for(let n of r.logs)console.error(n);throw Error(`Build failed for ${o}`)}console.log(` \u2713 ${o.toUpperCase()} build complete`),console.log(` Files: ${r.outputs.length}`);let a=r.outputs.reduce((n,d)=>n+d.size,0);console.log(` Size: ${(a/1024).toFixed(2)} KB`)}export{B as registerBuildCommand};
|
|
6
|
-
|
|
7
|
-
//# debugId=77FE8158DC8EB3FF64756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\src\\cli\\commands\\build.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import { Command } from 'commander';\r\nimport { existsSync } from 'fs';\r\nimport { join } from 'path';\r\nimport { rm, mkdir } from 'fs/promises';\r\n\r\ninterface BuildOptions {\r\n minify?: boolean;\r\n sourcemap?: boolean;\r\n outdir?: string;\r\n format?: 'esm' | 'cjs' | 'both';\r\n}\r\n\r\nexport function registerBuildCommand(program: Command): void {\r\n program\r\n .command('build')\r\n .description('Build project for production')\r\n .option('-m, --minify', 'Minify output', false)\r\n .option('-s, --sourcemap', 'Generate sourcemaps', true)\r\n .option('-o, --outdir <dir>', 'Output directory', 'dist')\r\n .option('-f, --format <format>', 'Output format (esm, cjs, both)', 'both')\r\n .action(async (options: BuildOptions) => {\r\n await buildProject(options);\r\n });\r\n}\r\n\r\nasync function buildProject(options: BuildOptions): Promise<void> {\r\n const entryPoint = join(process.cwd(), 'src', 'index.ts');\r\n\r\n // Check if entry point exists\r\n if (!existsSync(entryPoint)) {\r\n console.error('Error: src/index.ts not found');\r\n console.error('Make sure you are in a VeloceTS project directory');\r\n process.exit(1);\r\n }\r\n\r\n console.log('Building project for production...');\r\n console.log(`Format: ${options.format || 'both'}`);\r\n console.log(`Minify: ${options.minify ? 'yes' : 'no'}`);\r\n console.log(`Sourcemap: ${options.sourcemap ? 'yes' : 'no'}`);\r\n\r\n const outdir = options.outdir || 'dist';\r\n\r\n try {\r\n // Clean output directory\r\n if (existsSync(outdir)) {\r\n await rm(outdir, { recursive: true, force: true });\r\n }\r\n await mkdir(outdir, { recursive: true });\r\n\r\n const format = options.format || 'both';\r\n const formats = format === 'both' ? ['esm', 'cjs'] : [format];\r\n\r\n for (const fmt of formats) {\r\n console.log(`\\nBuilding ${fmt.toUpperCase()}...`);\r\n await buildFormat(entryPoint, outdir, fmt as 'esm' | 'cjs', options);\r\n }\r\n\r\n console.log('\\n✓ Build completed successfully!');\r\n console.log(`\\nOutput directory: ${outdir}`);\r\n } catch (error) {\r\n console.error('Build failed:', error);\r\n process.exit(1);\r\n }\r\n}\r\n\r\nasync function buildFormat(\r\n entryPoint: string,\r\n outdir: string,\r\n format: 'esm' | 'cjs',\r\n options: BuildOptions\r\n): Promise<void> {\r\n const outputDir = join(outdir, format);\r\n await mkdir(outputDir, { recursive: true });\r\n\r\n const buildResult = await Bun.build({\r\n entrypoints: [entryPoint],\r\n outdir: outputDir,\r\n target: 'bun',\r\n format: format === 'esm' ? 'esm' : 'cjs',\r\n minify: options.minify || false,\r\n sourcemap: options.sourcemap !== false ? 'external' : 'none',\r\n splitting: format === 'esm',\r\n external: [\r\n 'hono',\r\n 'zod',\r\n 'reflect-metadata',\r\n 'commander',\r\n 'zod-to-json-schema',\r\n ],\r\n });\r\n\r\n if (!buildResult.success) {\r\n console.error(`Failed to build ${format}:`);\r\n for (const log of buildResult.logs) {\r\n console.error(log);\r\n }\r\n throw new Error(`Build failed for ${format}`);\r\n }\r\n\r\n console.log(` ✓ ${format.toUpperCase()} build complete`);\r\n console.log(` Files: ${buildResult.outputs.length}`);\r\n \r\n const totalSize = buildResult.outputs.reduce((sum, output) => sum + output.size, 0);\r\n console.log(` Size: ${(totalSize / 1024).toFixed(2)} KB`);\r\n}\r\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": ";4BACA,qBAAS,WACT,eAAS,aACT,aAAS,WAAI,oBASN,SAAS,CAAoB,CAAC,EAAwB,CAC3D,EACG,QAAQ,OAAO,EACf,YAAY,8BAA8B,EAC1C,OAAO,eAAgB,gBAAiB,EAAK,EAC7C,OAAO,kBAAmB,sBAAuB,EAAI,EACrD,OAAO,qBAAsB,mBAAoB,MAAM,EACvD,OAAO,wBAAyB,iCAAkC,MAAM,EACxE,OAAO,MAAO,IAA0B,CACvC,MAAM,EAAa,CAAO,EAC3B,EAGL,eAAe,CAAY,CAAC,EAAsC,CAChE,IAAM,EAAa,EAAK,QAAQ,IAAI,EAAG,MAAO,UAAU,EAGxD,GAAI,CAAC,EAAW,CAAU,EACxB,QAAQ,MAAM,+BAA+B,EAC7C,QAAQ,MAAM,mDAAmD,EACjE,QAAQ,KAAK,CAAC,EAGhB,QAAQ,IAAI,oCAAoC,EAChD,QAAQ,IAAI,WAAW,EAAQ,QAAU,QAAQ,EACjD,QAAQ,IAAI,WAAW,EAAQ,OAAS,MAAQ,MAAM,EACtD,QAAQ,IAAI,cAAc,EAAQ,UAAY,MAAQ,MAAM,EAE5D,IAAM,EAAS,EAAQ,QAAU,OAEjC,GAAI,CAEF,GAAI,EAAW,CAAM,EACnB,MAAM,EAAG,EAAQ,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAEnD,MAAM,EAAM,EAAQ,CAAE,UAAW,EAAK,CAAC,EAEvC,IAAM,EAAS,EAAQ,QAAU,OAC3B,EAAU,IAAW,OAAS,CAAC,MAAO,KAAK,EAAI,CAAC,CAAM,EAE5D,QAAW,KAAO,EAChB,QAAQ,IAAI;AAAA,WAAc,EAAI,YAAY,MAAM,EAChD,MAAM,EAAY,EAAY,EAAQ,EAAsB,CAAO,EAGrE,QAAQ,IAAI;AAAA,qCAAkC,EAC9C,QAAQ,IAAI;AAAA,oBAAuB,GAAQ,EAC3C,MAAO,EAAO,CACd,QAAQ,MAAM,gBAAiB,CAAK,EACpC,QAAQ,KAAK,CAAC,GAIlB,eAAe,CAAW,CACxB,EACA,EACA,EACA,EACe,CACf,IAAM,EAAY,EAAK,EAAQ,CAAM,EACrC,MAAM,EAAM,EAAW,CAAE,UAAW,EAAK,CAAC,EAE1C,IAAM,EAAc,MAAM,IAAI,MAAM,CAClC,YAAa,CAAC,CAAU,EACxB,OAAQ,EACR,OAAQ,MACR,OAAQ,IAAW,MAAQ,MAAQ,MACnC,OAAQ,EAAQ,QAAU,GAC1B,UAAW,EAAQ,YAAc,GAAQ,WAAa,OACtD,UAAW,IAAW,MACtB,SAAU,CACR,OACA,MACA,mBACA,YACA,oBACF,CACF,CAAC,EAED,GAAI,CAAC,EAAY,QAAS,CACxB,QAAQ,MAAM,mBAAmB,IAAS,EAC1C,QAAW,KAAO,EAAY,KAC5B,QAAQ,MAAM,CAAG,EAEnB,MAAU,MAAM,oBAAoB,GAAQ,EAG9C,QAAQ,IAAI,YAAM,EAAO,YAAY,kBAAkB,EACvD,QAAQ,IAAI,cAAc,EAAY,QAAQ,QAAQ,EAEtD,IAAM,EAAY,EAAY,QAAQ,OAAO,CAAC,EAAK,IAAW,EAAM,EAAO,KAAM,CAAC,EAClF,QAAQ,IAAI,cAAc,EAAY,MAAM,QAAQ,CAAC,MAAM",
|
|
8
|
-
"debugId": "77FE8158DC8EB3FF64756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import"./chunk-keyvhe4h.js";function B(){if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();return`${Date.now()}-${Math.random().toString(36).substring(2,15)}-${Math.random().toString(36).substring(2,15)}`}function j(h){return h.get("veloce:request-context")||null}function D(h,f){h.set("veloce:request-context",f)}function E(h,f){let z=f?.requestId||B(),w=new AbortController,A={requestId:z,startTime:Date.now(),abortSignal:w.signal,abortController:w,timeout:f?.timeout,metadata:{}};if(f?.timeout&&f.timeout>0)A.timeoutId=setTimeout(()=>{w.abort()},f.timeout);return D(h,A),A}function F(h){return j(h)?.requestId||null}function G(h){return j(h)?.abortSignal||null}function H(h){let f=j(h);if(f?.abortController&&!f.abortSignal.aborted)f.abortController.abort()}function J(h,f,z){let w=j(h);if(w)w.metadata[f]=z}function K(h,f){return j(h)?.metadata[f]}function L(h){let f=j(h);if(!f)return null;return Date.now()-f.startTime}function M(h){let f=j(h);if(f?.timeoutId)clearTimeout(f.timeoutId)}export{J as setRequestMetadata,D as setRequestContext,E as initializeRequestContext,K as getRequestMetadata,F as getRequestId,L as getRequestDuration,j as getRequestContext,G as getAbortSignal,B as generateRequestId,M as cleanupRequestContext,H as abortRequest};
|
|
3
|
-
export{B as F,j as G,D as H,E as I,F as J,G as K,H as L,J as M,K as N,L as O,M as P};
|
|
4
|
-
|
|
5
|
-
//# debugId=AA0C13AB4823560564756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\src\\context\\request-context.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/**\r\n * Request Context for tracking request lifecycle\r\n * Provides Request ID, AbortSignal, timeouts, and shared context across middleware and handlers\r\n */\r\n\r\nimport type { Context } from '../types';\r\n\r\n/**\r\n * Request Context stored in Hono's context\r\n */\r\nexport interface RequestContext {\r\n requestId: string;\r\n startTime: number;\r\n abortSignal: AbortSignal;\r\n abortController: AbortController;\r\n timeout?: number;\r\n timeoutId?: ReturnType<typeof setTimeout>;\r\n metadata: Record<string, any>;\r\n}\r\n\r\nconst REQUEST_CONTEXT_KEY = 'veloce:request-context';\r\n\r\n/**\r\n * Generate a unique request ID\r\n */\r\nexport function generateRequestId(): string {\r\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\r\n return crypto.randomUUID();\r\n }\r\n // Fallback for environments without crypto.randomUUID\r\n return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}-${Math.random().toString(36).substring(2, 15)}`;\r\n}\r\n\r\n/**\r\n * Get request context from Hono context\r\n */\r\nexport function getRequestContext(c: Context): RequestContext | null {\r\n return c.get(REQUEST_CONTEXT_KEY) || null;\r\n}\r\n\r\n/**\r\n * Set request context in Hono context\r\n */\r\nexport function setRequestContext(c: Context, context: RequestContext): void {\r\n c.set(REQUEST_CONTEXT_KEY, context);\r\n}\r\n\r\n/**\r\n * Initialize request context for a new request\r\n * Creates a UUID, AbortSignal, and optionally sets up timeout\r\n */\r\nexport function initializeRequestContext(\r\n c: Context,\r\n options?: {\r\n requestId?: string;\r\n timeout?: number;\r\n }\r\n): RequestContext {\r\n const requestId = options?.requestId || generateRequestId();\r\n const abortController = new AbortController();\r\n \r\n const context: RequestContext = {\r\n requestId,\r\n startTime: Date.now(),\r\n abortSignal: abortController.signal,\r\n abortController,\r\n timeout: options?.timeout,\r\n metadata: {}\r\n };\r\n\r\n // Set up timeout if provided\r\n if (options?.timeout && options.timeout > 0) {\r\n context.timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n }, options.timeout);\r\n }\r\n\r\n setRequestContext(c, context);\r\n return context;\r\n}\r\n\r\n/**\r\n * Get request ID from context\r\n */\r\nexport function getRequestId(c: Context): string | null {\r\n const ctx = getRequestContext(c);\r\n return ctx?.requestId || null;\r\n}\r\n\r\n/**\r\n * Get AbortSignal from context\r\n */\r\nexport function getAbortSignal(c: Context): AbortSignal | null {\r\n const ctx = getRequestContext(c);\r\n return ctx?.abortSignal || null;\r\n}\r\n\r\n/**\r\n * Abort the current request\r\n */\r\nexport function abortRequest(c: Context): void {\r\n const ctx = getRequestContext(c);\r\n if (ctx?.abortController && !ctx.abortSignal.aborted) {\r\n ctx.abortController.abort();\r\n }\r\n}\r\n\r\n/**\r\n * Set metadata in request context\r\n */\r\nexport function setRequestMetadata(c: Context, key: string, value: any): void {\r\n const ctx = getRequestContext(c);\r\n if (ctx) {\r\n ctx.metadata[key] = value;\r\n }\r\n}\r\n\r\n/**\r\n * Get metadata from request context\r\n */\r\nexport function getRequestMetadata(c: Context, key: string): any {\r\n const ctx = getRequestContext(c);\r\n return ctx?.metadata[key];\r\n}\r\n\r\n/**\r\n * Get request duration in milliseconds\r\n */\r\nexport function getRequestDuration(c: Context): number | null {\r\n const ctx = getRequestContext(c);\r\n if (!ctx) return null;\r\n return Date.now() - ctx.startTime;\r\n}\r\n\r\n/**\r\n * Clean up request context (clear timeout, etc.)\r\n */\r\nexport function cleanupRequestContext(c: Context): void {\r\n const ctx = getRequestContext(c);\r\n if (ctx?.timeoutId) {\r\n clearTimeout(ctx.timeoutId);\r\n }\r\n}\r\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": ";4BAyBO,SAAS,CAAiB,EAAW,CAC1C,GAAI,OAAO,OAAW,KAAe,OAAO,WAC1C,OAAO,OAAO,WAAW,EAG3B,MAAO,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,KAAK,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,IAM5G,SAAS,CAAiB,CAAC,EAAmC,CACnE,OAAO,EAAE,IAjBiB,wBAiBM,GAAK,KAMhC,SAAS,CAAiB,CAAC,EAAY,EAA+B,CAC3E,EAAE,IAxBwB,yBAwBC,CAAO,EAO7B,SAAS,CAAwB,CACtC,EACA,EAIgB,CAChB,IAAM,EAAY,GAAS,WAAa,EAAkB,EACpD,EAAkB,IAAI,gBAEtB,EAA0B,CAC9B,YACA,UAAW,KAAK,IAAI,EACpB,YAAa,EAAgB,OAC7B,kBACA,QAAS,GAAS,QAClB,SAAU,CAAC,CACb,EAGA,GAAI,GAAS,SAAW,EAAQ,QAAU,EACxC,EAAQ,UAAY,WAAW,IAAM,CACnC,EAAgB,MAAM,GACrB,EAAQ,OAAO,EAIpB,OADA,EAAkB,EAAG,CAAO,EACrB,EAMF,SAAS,CAAY,CAAC,EAA2B,CAEtD,OADY,EAAkB,CAAC,GACnB,WAAa,KAMpB,SAAS,CAAc,CAAC,EAAgC,CAE7D,OADY,EAAkB,CAAC,GACnB,aAAe,KAMtB,SAAS,CAAY,CAAC,EAAkB,CAC7C,IAAM,EAAM,EAAkB,CAAC,EAC/B,GAAI,GAAK,iBAAmB,CAAC,EAAI,YAAY,QAC3C,EAAI,gBAAgB,MAAM,EAOvB,SAAS,CAAkB,CAAC,EAAY,EAAa,EAAkB,CAC5E,IAAM,EAAM,EAAkB,CAAC,EAC/B,GAAI,EACF,EAAI,SAAS,GAAO,EAOjB,SAAS,CAAkB,CAAC,EAAY,EAAkB,CAE/D,OADY,EAAkB,CAAC,GACnB,SAAS,GAMhB,SAAS,CAAkB,CAAC,EAA2B,CAC5D,IAAM,EAAM,EAAkB,CAAC,EAC/B,GAAI,CAAC,EAAK,OAAO,KACjB,OAAO,KAAK,IAAI,EAAI,EAAI,UAMnB,SAAS,CAAqB,CAAC,EAAkB,CACtD,IAAM,EAAM,EAAkB,CAAC,EAC/B,GAAI,GAAK,UACP,aAAa,EAAI,SAAS",
|
|
8
|
-
"debugId": "AA0C13AB4823560564756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
function E($){let{origin:F="*",methods:Q=["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:Z=["Content-Type","Authorization"],exposedHeaders:S=[],credentials:K=!1,maxAge:j=86400}=$||{};return async(z,U)=>{let N=z.req.header("origin"),P=z.req.method,B=null;if(typeof F==="string")B=F;else if(Array.isArray(F)){if(N&&F.includes(N))B=N}else if(typeof F==="function"){if(N&&F(N))B=N}if(B)z.header("Access-Control-Allow-Origin",B);if(K)z.header("Access-Control-Allow-Credentials","true");if(S.length>0)z.header("Access-Control-Expose-Headers",S.join(", "));if(P==="OPTIONS")return z.header("Access-Control-Allow-Methods",Q.join(", ")),z.header("Access-Control-Allow-Headers",Z.join(", ")),z.header("Access-Control-Max-Age",j.toString()),z.body(null,204);await U()}}function v($){let{windowMs:F=60000,max:Q=100,keyGenerator:Z=(j)=>{return j.req.header("x-forwarded-for")||j.req.header("x-real-ip")||"unknown"}}=$,S=new Map,K=setInterval(()=>{let j=Date.now();for(let[z,U]of S.entries())if(j>U.resetTime)S.delete(z)},F);if(typeof process<"u"&&process.on)process.on("exit",()=>clearInterval(K));return async(j,z)=>{let U=Z(j),N=Date.now(),P=S.get(U);if(!P||N>P.resetTime)S.set(U,{count:1,resetTime:N+F}),j.header("X-RateLimit-Limit",Q.toString()),j.header("X-RateLimit-Remaining",(Q-1).toString()),j.header("X-RateLimit-Reset",new Date(N+F).toISOString()),await z();else if(P.count<Q)P.count++,j.header("X-RateLimit-Limit",Q.toString()),j.header("X-RateLimit-Remaining",(Q-P.count).toString()),j.header("X-RateLimit-Reset",new Date(P.resetTime).toISOString()),await z();else{let B=Math.ceil((P.resetTime-N)/1000);return j.header("X-RateLimit-Limit",Q.toString()),j.header("X-RateLimit-Remaining","0"),j.header("X-RateLimit-Reset",new Date(P.resetTime).toISOString()),j.header("Retry-After",B.toString()),j.json({error:"Too Many Requests",message:`Rate limit exceeded. Please try again in ${B} seconds.`,retryAfter:B},429)}}}function L($){let{threshold:F=1024,level:Q=6}=$||{};return async(Z,S)=>{await S();let K=Z.res;if(!K)return;let j=K.headers.get("content-type")||"",z=K.headers.get("content-length"),U=Z.req.header("accept-encoding")||"";if(!["text/","application/json","application/javascript","application/xml","application/x-www-form-urlencoded"].some((D)=>j.toLowerCase().includes(D)))return;if(z&&parseInt(z)<F)return;if(K.headers.get("content-encoding"))return;let B=await K.arrayBuffer();if(B.byteLength<F)return;let V=null,R=null;if(U.includes("br")&&typeof CompressionStream<"u")try{let D=new CompressionStream("deflate"),_=D.writable.getWriter();_.write(new Uint8Array(B)),_.close();let T=D.readable.getReader(),X=[];while(!0){let{done:J,value:Y}=await T.read();if(J)break;X.push(Y)}let W=X.reduce((J,Y)=>J+Y.length,0),C=new Uint8Array(W),G=0;for(let J of X)C.set(J,G),G+=J.length;V=C,R="deflate"}catch(D){V=null}if(!V&&U.includes("gzip")&&typeof CompressionStream<"u")try{let D=new CompressionStream("gzip"),_=D.writable.getWriter();_.write(new Uint8Array(B)),_.close();let T=D.readable.getReader(),X=[];while(!0){let{done:J,value:Y}=await T.read();if(J)break;X.push(Y)}let W=X.reduce((J,Y)=>J+Y.length,0),C=new Uint8Array(W),G=0;for(let J of X)C.set(J,G),G+=J.length;V=C,R="gzip"}catch(D){V=null}if(V&&R&&V.byteLength<B.byteLength){let D=new Headers(K.headers);return D.set("content-encoding",R),D.set("content-length",V.byteLength.toString()),D.delete("content-length"),new Response(V,{status:K.status,statusText:K.statusText,headers:D})}}}
|
|
3
|
-
export{E as la,v as ma,L as na};
|
|
4
|
-
|
|
5
|
-
//# debugId=45CD6DD775CAB5BF64756E2164756E21
|
|
@@ -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": "45CD6DD775CAB5BF64756E2164756E21",
|
|
11
|
-
"names": []
|
|
12
|
-
}
|
|
@@ -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 h,E as i,F as j};
|
|
4
|
-
|
|
5
|
-
//# debugId=3C3A0CC9CBE2490D64756E2164756E21
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["..\\..\\src\\websocket\\connection.ts", "..\\..\\src\\websocket\\manager.ts", "..\\..\\src\\websocket\\plugin.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"// WebSocket connection wrapper\r\nimport type { WebSocketManager } from './manager';\r\n\r\n/**\r\n * WebSocketConnection wraps a native WebSocket with helper methods\r\n * for sending messages, broadcasting, and managing rooms\r\n */\r\nexport class WebSocketConnection {\r\n public readonly id: string;\r\n private _ws: WebSocket | null;\r\n\r\n constructor(\r\n ws: WebSocket,\r\n private manager: WebSocketManager,\r\n id?: string\r\n ) {\r\n this._ws = ws;\r\n this.id = id || crypto.randomUUID();\r\n }\r\n\r\n /**\r\n * Send a message to this specific connection\r\n * @param data - Data to send (will be JSON stringified)\r\n */\r\n send(data: any): void {\r\n if (!this._ws || this._ws.readyState !== WebSocket.OPEN) {\r\n return;\r\n }\r\n\r\n const message = typeof data === 'string' ? data : JSON.stringify(data);\r\n this._ws.send(message);\r\n }\r\n\r\n /**\r\n * Broadcast a message to all connections in a room (or all connections if no room specified)\r\n * @param data - Data to broadcast\r\n * @param room - Optional room name to broadcast to\r\n */\r\n broadcast(data: any, room?: string): void {\r\n this.manager.broadcast(data, room);\r\n }\r\n\r\n /**\r\n * Join a room\r\n * @param room - Room name to join\r\n */\r\n join(room: string): void {\r\n this.manager.joinRoom(this.id, room);\r\n }\r\n\r\n /**\r\n * Leave a room\r\n * @param room - Room name to leave\r\n */\r\n leave(room: string): void {\r\n this.manager.leaveRoom(this.id, room);\r\n }\r\n\r\n /**\r\n * Close the WebSocket connection\r\n * @param code - Optional close code\r\n * @param reason - Optional close reason\r\n */\r\n close(code?: number, reason?: string): void {\r\n if (this._ws && this._ws.readyState === WebSocket.OPEN) {\r\n this._ws.close(code, reason);\r\n }\r\n }\r\n\r\n /**\r\n * Get the native WebSocket instance\r\n */\r\n get native(): WebSocket | null {\r\n return this._ws;\r\n }\r\n\r\n /**\r\n * Check if the connection is open\r\n */\r\n get isOpen(): boolean {\r\n return this._ws !== null && this._ws.readyState === WebSocket.OPEN;\r\n }\r\n\r\n /**\r\n * Internal method to mark connection as closed\r\n */\r\n _markClosed(): void {\r\n this._ws = null;\r\n }\r\n}\r\n",
|
|
6
|
-
"// WebSocket manager for connection tracking and room management\r\nimport type { WebSocketMetadata, Class } from '../types';\r\nimport { WebSocketConnection } from './connection';\r\n\r\n/**\r\n * WebSocketManager handles WebSocket connection lifecycle,\r\n * connection tracking, and room-based broadcasting\r\n */\r\nexport class WebSocketManager {\r\n private connections: Map<string, WebSocketConnection> = new Map();\r\n private rooms: Map<string, Set<string>> = new Map();\r\n private connectionsByRoom: Map<string, Set<WebSocketConnection>> = new Map();\r\n\r\n /**\r\n * Register a new WebSocket connection\r\n * @param ws - Native WebSocket instance\r\n * @param metadata - WebSocket route metadata\r\n * @returns The created WebSocketConnection\r\n */\r\n handleConnection(ws: WebSocket, metadata: WebSocketMetadata): WebSocketConnection {\r\n const connection = new WebSocketConnection(ws, this);\r\n this.connections.set(connection.id, connection);\r\n\r\n // Execute onConnect handler if defined\r\n if (metadata.onConnect) {\r\n this.executeHandler(metadata, metadata.onConnect, connection);\r\n }\r\n\r\n // Set up message handler\r\n ws.addEventListener('message', async (event) => {\r\n await this.handleMessage(event, connection, metadata);\r\n });\r\n\r\n // Set up close handler\r\n ws.addEventListener('close', () => {\r\n this.handleDisconnect(connection, metadata);\r\n });\r\n\r\n // Set up error handler\r\n ws.addEventListener('error', (error) => {\r\n console.error(`WebSocket error for connection ${connection.id}:`, error);\r\n });\r\n\r\n return connection;\r\n }\r\n\r\n /**\r\n * Handle incoming WebSocket message\r\n */\r\n private async handleMessage(\r\n event: MessageEvent,\r\n connection: WebSocketConnection,\r\n metadata: WebSocketMetadata\r\n ): Promise<void> {\r\n if (!metadata.onMessage) {\r\n return;\r\n }\r\n\r\n let data: any;\r\n\r\n try {\r\n // Parse message data\r\n data = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\r\n\r\n // Validate with schema if provided\r\n if (metadata.messageSchema) {\r\n data = await metadata.messageSchema.parseAsync(data);\r\n }\r\n\r\n // Execute onMessage handler\r\n await this.executeHandler(metadata, metadata.onMessage, connection, data);\r\n } catch (error) {\r\n // Send error back to client without closing connection\r\n connection.send({\r\n error: 'Invalid message format',\r\n details: error instanceof Error ? error.message : 'Unknown error'\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Handle WebSocket disconnection\r\n */\r\n private handleDisconnect(connection: WebSocketConnection, metadata: WebSocketMetadata): void {\r\n // Remove from all rooms\r\n Array.from(this.connectionsByRoom.entries()).forEach(([room, connections]) => {\r\n connections.delete(connection);\r\n if (connections.size === 0) {\r\n this.connectionsByRoom.delete(room);\r\n }\r\n });\r\n\r\n // Remove from rooms tracking\r\n Array.from(this.rooms.entries()).forEach(([room, connectionIds]) => {\r\n connectionIds.delete(connection.id);\r\n if (connectionIds.size === 0) {\r\n this.rooms.delete(room);\r\n }\r\n });\r\n\r\n // Remove from connections map\r\n this.connections.delete(connection.id);\r\n connection._markClosed();\r\n\r\n // Execute onDisconnect handler if defined\r\n if (metadata.onDisconnect) {\r\n this.executeHandler(metadata, metadata.onDisconnect, connection);\r\n }\r\n }\r\n\r\n /**\r\n * Execute a handler method on the target class\r\n */\r\n private async executeHandler(\r\n metadata: WebSocketMetadata,\r\n methodName: string,\r\n connection: WebSocketConnection,\r\n data?: any\r\n ): Promise<void> {\r\n try {\r\n const instance = new metadata.target();\r\n const method = (instance as any)[methodName];\r\n\r\n if (typeof method === 'function') {\r\n if (data !== undefined) {\r\n await method.call(instance, connection, data);\r\n } else {\r\n await method.call(instance, connection);\r\n }\r\n }\r\n } catch (error) {\r\n console.error(`Error executing WebSocket handler ${methodName}:`, error);\r\n }\r\n }\r\n\r\n /**\r\n * Broadcast a message to all connections or connections in a specific room\r\n * @param message - Message to broadcast\r\n * @param room - Optional room name\r\n */\r\n broadcast(message: any, room?: string): void {\r\n const connections = room\r\n ? this.getConnectionsInRoom(room)\r\n : Array.from(this.connections.values());\r\n\r\n const data = typeof message === 'string' ? message : JSON.stringify(message);\r\n\r\n for (const connection of connections) {\r\n if (connection.isOpen) {\r\n connection.send(data);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add a connection to a room\r\n * @param connectionId - Connection ID\r\n * @param room - Room name\r\n */\r\n joinRoom(connectionId: string, room: string): void {\r\n const connection = this.connections.get(connectionId);\r\n if (!connection) {\r\n return;\r\n }\r\n\r\n // Add to rooms map (connectionId -> room)\r\n if (!this.rooms.has(room)) {\r\n this.rooms.set(room, new Set());\r\n }\r\n this.rooms.get(room)!.add(connectionId);\r\n\r\n // Add to connectionsByRoom map (room -> connections)\r\n if (!this.connectionsByRoom.has(room)) {\r\n this.connectionsByRoom.set(room, new Set());\r\n }\r\n this.connectionsByRoom.get(room)!.add(connection);\r\n }\r\n\r\n /**\r\n * Remove a connection from a room\r\n * @param connectionId - Connection ID\r\n * @param room - Room name\r\n */\r\n leaveRoom(connectionId: string, room: string): void {\r\n const connection = this.connections.get(connectionId);\r\n if (!connection) {\r\n return;\r\n }\r\n\r\n // Remove from rooms map\r\n const roomConnections = this.rooms.get(room);\r\n if (roomConnections) {\r\n roomConnections.delete(connectionId);\r\n if (roomConnections.size === 0) {\r\n this.rooms.delete(room);\r\n }\r\n }\r\n\r\n // Remove from connectionsByRoom map\r\n const connections = this.connectionsByRoom.get(room);\r\n if (connections) {\r\n connections.delete(connection);\r\n if (connections.size === 0) {\r\n this.connectionsByRoom.delete(room);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get all connections in a specific room\r\n * @param room - Room name\r\n * @returns Array of connections in the room\r\n */\r\n private getConnectionsInRoom(room: string): WebSocketConnection[] {\r\n const connections = this.connectionsByRoom.get(room);\r\n return connections ? Array.from(connections) : [];\r\n }\r\n\r\n /**\r\n * Get a connection by ID\r\n * @param connectionId - Connection ID\r\n * @returns The connection or undefined\r\n */\r\n getConnection(connectionId: string): WebSocketConnection | undefined {\r\n return this.connections.get(connectionId);\r\n }\r\n\r\n /**\r\n * Get all active connections\r\n * @returns Array of all connections\r\n */\r\n getAllConnections(): WebSocketConnection[] {\r\n return Array.from(this.connections.values());\r\n }\r\n\r\n /**\r\n * Get the number of active connections\r\n * @returns Number of connections\r\n */\r\n getConnectionCount(): number {\r\n return this.connections.size;\r\n }\r\n\r\n /**\r\n * Get all room names\r\n * @returns Array of room names\r\n */\r\n getRooms(): string[] {\r\n return Array.from(this.rooms.keys());\r\n }\r\n\r\n /**\r\n * Get the number of connections in a room\r\n * @param room - Room name\r\n * @returns Number of connections in the room\r\n */\r\n getRoomSize(room: string): number {\r\n return this.rooms.get(room)?.size || 0;\r\n }\r\n}\r\n",
|
|
7
|
-
"// WebSocket Plugin\r\nimport type { Plugin } from '../core/plugin';\r\nimport type { VeloceTS } from '../core/application';\r\nimport { WebSocketManager } from './manager';\r\n\r\n/**\r\n * WebSocketPlugin adds WebSocket support to Veloce-TS\r\n * Registers WebSocket routes and handles connection upgrades\r\n */\r\nexport class WebSocketPlugin implements Plugin {\r\n name = 'websocket';\r\n version = '1.0.0';\r\n\r\n private manager: WebSocketManager;\r\n\r\n constructor() {\r\n this.manager = new WebSocketManager();\r\n }\r\n\r\n async install(app: VeloceTS): Promise<void> {\r\n const metadata = app.getMetadata();\r\n const websockets = metadata.getWebSockets();\r\n\r\n // Register each WebSocket handler\r\n for (const ws of websockets) {\r\n this.registerWebSocket(app, ws);\r\n }\r\n }\r\n\r\n /**\r\n * Register a WebSocket route with the application\r\n */\r\n private registerWebSocket(app: VeloceTS, metadata: any): void {\r\n const hono = app.getHono();\r\n\r\n // Register WebSocket upgrade endpoint\r\n hono.get(metadata.path, async (c) => {\r\n // Check if this is a WebSocket upgrade request\r\n const upgrade = c.req.header('upgrade');\r\n \r\n if (upgrade?.toLowerCase() !== 'websocket') {\r\n return c.text('Expected WebSocket upgrade', 426);\r\n }\r\n\r\n // Handle WebSocket upgrade based on runtime\r\n return this.handleUpgrade(c, metadata);\r\n });\r\n }\r\n\r\n /**\r\n * Handle WebSocket upgrade for different runtimes\r\n */\r\n private handleUpgrade(c: any, metadata: any): Response {\r\n // Detect runtime and handle accordingly\r\n if (typeof Bun !== 'undefined') {\r\n return this.handleBunUpgrade(c, metadata);\r\n } else if (typeof (globalThis as any).Deno !== 'undefined') {\r\n return this.handleDenoUpgrade(c, metadata);\r\n } else {\r\n // Node.js or other runtimes\r\n return this.handleNodeUpgrade(c, metadata);\r\n }\r\n }\r\n\r\n /**\r\n * Handle WebSocket upgrade for Bun runtime\r\n */\r\n private handleBunUpgrade(c: any, metadata: any): Response {\r\n const success = (c.env as any)?.upgrade?.(c.req.raw);\r\n \r\n if (!success) {\r\n return c.text('WebSocket upgrade failed', 500);\r\n }\r\n\r\n return new Response(null, { status: 101 });\r\n }\r\n\r\n /**\r\n * Handle WebSocket upgrade for Deno runtime\r\n */\r\n private handleDenoUpgrade(c: any, metadata: any): Response {\r\n const Deno = (globalThis as any).Deno;\r\n const { socket, response } = Deno.upgradeWebSocket(c.req.raw);\r\n \r\n // Set up WebSocket handlers\r\n socket.onopen = () => {\r\n this.manager.handleConnection(socket as any, metadata);\r\n };\r\n\r\n return response;\r\n }\r\n\r\n /**\r\n * Handle WebSocket upgrade for Node.js runtime\r\n */\r\n private handleNodeUpgrade(c: any, metadata: any): Response {\r\n // For Node.js, we need to handle this differently\r\n // This is a simplified version - in production, you'd use a library like 'ws'\r\n return c.text('WebSocket support requires Bun or Deno runtime', 501);\r\n }\r\n\r\n /**\r\n * Get the WebSocket manager instance\r\n */\r\n getManager(): WebSocketManager {\r\n return this.manager;\r\n }\r\n\r\n /**\r\n * Broadcast a message to all connections or a specific room\r\n */\r\n broadcast(message: any, room?: string): void {\r\n this.manager.broadcast(message, room);\r\n }\r\n\r\n /**\r\n * Get connection count\r\n */\r\n getConnectionCount(): number {\r\n return this.manager.getConnectionCount();\r\n }\r\n\r\n /**\r\n * Get all active rooms\r\n */\r\n getRooms(): string[] {\r\n return this.manager.getRooms();\r\n }\r\n}\r\n"
|
|
8
|
-
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "3C3A0CC9CBE2490D64756E2164756E21",
|
|
11
|
-
"names": []
|
|
12
|
-
}
|