@forinda/kickjs 9.2.0 → 10.1.0

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.
Files changed (164) hide show
  1. package/dist/{adapter-DjfRMob8.d.mts → adapter-ClEh-Oos.d.mts} +24 -2
  2. package/dist/adapter-ClEh-Oos.d.mts.map +1 -0
  3. package/dist/application-Dv514EeR.mjs +12 -0
  4. package/dist/application-Dv514EeR.mjs.map +1 -0
  5. package/dist/{application-CGxZCYl1.d.mts → application-oIPzgjfk.d.mts} +38 -11
  6. package/dist/application-oIPzgjfk.d.mts.map +1 -0
  7. package/dist/bootstrap-BdyBlBMe.mjs +12 -0
  8. package/dist/bootstrap-BdyBlBMe.mjs.map +1 -0
  9. package/dist/{client-ip-pcINkkPr.mjs → client-ip-BbLDp03S.mjs} +2 -2
  10. package/dist/{client-ip-pcINkkPr.mjs.map → client-ip-BbLDp03S.mjs.map} +1 -1
  11. package/dist/config/index.mjs +2 -2
  12. package/dist/{config-DmGiAIuH.mjs → config-CJiGeOca.mjs} +3 -3
  13. package/dist/{config-DmGiAIuH.mjs.map → config-CJiGeOca.mjs.map} +1 -1
  14. package/dist/{container-CAPN7pBG.mjs → container-CS9v9UFU.mjs} +4 -4
  15. package/dist/{container-CAPN7pBG.mjs.map → container-CS9v9UFU.mjs.map} +1 -1
  16. package/dist/context-CtL9RxXp.mjs +12 -0
  17. package/dist/context-CtL9RxXp.mjs.map +1 -0
  18. package/dist/{context-errors-DYJjhalQ.mjs → context-errors-7C5TBYn7.mjs} +2 -2
  19. package/dist/{context-errors-DYJjhalQ.mjs.map → context-errors-7C5TBYn7.mjs.map} +1 -1
  20. package/dist/contributor-runner-DBpRR5dl.mjs +12 -0
  21. package/dist/{contributor-runner-vk9XlOED.mjs.map → contributor-runner-DBpRR5dl.mjs.map} +1 -1
  22. package/dist/core/adapter.d.mts +1 -1
  23. package/dist/core/adapter.mjs +1 -1
  24. package/dist/core/app-module.mjs +1 -1
  25. package/dist/core/cache.mjs +2 -2
  26. package/dist/core/cache.mjs.map +1 -1
  27. package/dist/core/container.mjs +2 -2
  28. package/dist/core/cron.mjs +2 -2
  29. package/dist/core/cron.mjs.map +1 -1
  30. package/dist/core/decorators.mjs +2 -2
  31. package/dist/core/decorators.mjs.map +1 -1
  32. package/dist/core/errors.mjs +1 -1
  33. package/dist/core/interfaces.mjs +2 -2
  34. package/dist/core/interfaces.mjs.map +1 -1
  35. package/dist/core/logger.mjs +2 -2
  36. package/dist/core/logger.mjs.map +1 -1
  37. package/dist/core/path.mjs +1 -1
  38. package/dist/core/plugin.d.mts +1 -1
  39. package/dist/core/plugin.mjs +1 -1
  40. package/dist/core/reactivity.mjs +2 -2
  41. package/dist/core/reactivity.mjs.map +1 -1
  42. package/dist/core-B0JmdBvX.mjs +12 -0
  43. package/dist/{core-DKrKVLfj.mjs.map → core-B0JmdBvX.mjs.map} +1 -1
  44. package/dist/{csrf-CxJItZVa.mjs → csrf--1t4qDov.mjs} +3 -3
  45. package/dist/{csrf-CxJItZVa.mjs.map → csrf--1t4qDov.mjs.map} +1 -1
  46. package/dist/{decorate-DfH1NIqV.mjs → decorate-BHkdkV4l.mjs} +1 -1
  47. package/dist/{define-adapter-C6lFhCL-.mjs → define-adapter-BLKlUbSL.mjs} +2 -2
  48. package/dist/{define-adapter-C6lFhCL-.mjs.map → define-adapter-BLKlUbSL.mjs.map} +1 -1
  49. package/dist/disposables-CuY2S3bw.mjs +12 -0
  50. package/dist/{disposables-NlW6Mibk.mjs.map → disposables-CuY2S3bw.mjs.map} +1 -1
  51. package/dist/env-BwzF9MkZ.mjs +13 -0
  52. package/dist/env-BwzF9MkZ.mjs.map +1 -0
  53. package/dist/{error-handler-itG65lj0.d.mts → error-handler-BB9wAElm.d.mts} +2 -2
  54. package/dist/{error-handler-itG65lj0.d.mts.map → error-handler-BB9wAElm.d.mts.map} +1 -1
  55. package/dist/handler-zKfIgNo4.mjs +13 -0
  56. package/dist/handler-zKfIgNo4.mjs.map +1 -0
  57. package/dist/http/application.d.mts +1 -1
  58. package/dist/http/application.mjs +2 -2
  59. package/dist/http/bootstrap.d.mts +1 -1
  60. package/dist/http/bootstrap.mjs +2 -2
  61. package/dist/http/context.d.mts +1 -1
  62. package/dist/http/context.mjs +2 -2
  63. package/dist/http/middleware/cors.mjs +2 -2
  64. package/dist/http/middleware/cors.mjs.map +1 -1
  65. package/dist/http/middleware/csrf.mjs +2 -2
  66. package/dist/http/middleware/error-handler.d.mts +1 -1
  67. package/dist/http/middleware/error-handler.mjs +2 -2
  68. package/dist/http/middleware/helmet.mjs +1 -1
  69. package/dist/http/middleware/rate-limit.mjs +2 -2
  70. package/dist/http/middleware/rate-limit.mjs.map +1 -1
  71. package/dist/http/middleware/request-id.mjs +1 -1
  72. package/dist/http/middleware/request-logger.mjs +2 -2
  73. package/dist/http/middleware/session.d.mts +1 -1
  74. package/dist/http/middleware/session.mjs +2 -2
  75. package/dist/http/middleware/session.mjs.map +1 -1
  76. package/dist/http/middleware/spa.d.mts +1 -1
  77. package/dist/http/middleware/spa.mjs +2 -2
  78. package/dist/http/middleware/spa.mjs.map +1 -1
  79. package/dist/http/middleware/upload.d.mts +1 -1
  80. package/dist/http/middleware/upload.mjs +2 -2
  81. package/dist/http/middleware/validate.mjs +1 -1
  82. package/dist/http/middleware/views.d.mts +1 -1
  83. package/dist/http/middleware/views.mjs +2 -2
  84. package/dist/http/middleware/views.mjs.map +1 -1
  85. package/dist/http/query/index.mjs +2 -2
  86. package/dist/http/router-builder.d.mts +1 -1
  87. package/dist/http/router-builder.mjs +2 -2
  88. package/dist/http/runtimes/fastify.d.mts +2 -1
  89. package/dist/http/runtimes/fastify.d.mts.map +1 -1
  90. package/dist/http/runtimes/fastify.mjs +3 -3
  91. package/dist/http/runtimes/fastify.mjs.map +1 -1
  92. package/dist/http/runtimes/h3-web.d.mts +2 -49
  93. package/dist/http/runtimes/h3-web.mjs +2 -3
  94. package/dist/http/runtimes/h3.d.mts +48 -18
  95. package/dist/http/runtimes/h3.d.mts.map +1 -1
  96. package/dist/http/runtimes/h3.mjs +2 -2
  97. package/dist/http/runtimes/h3.mjs.map +1 -1
  98. package/dist/index.d.mts +8 -8
  99. package/dist/index.mjs +2 -2
  100. package/dist/index.mjs.map +1 -1
  101. package/dist/jobs-BQ4t3TAb.mjs +12 -0
  102. package/dist/{jobs-BmpeFvi0.mjs.map → jobs-BQ4t3TAb.mjs.map} +1 -1
  103. package/dist/{kv-stores-BZTe23Tw.d.mts → kv-stores-Co5k2PYA.d.mts} +21 -6
  104. package/dist/kv-stores-Co5k2PYA.d.mts.map +1 -0
  105. package/dist/kv-stores-DsfVy2fk.mjs +12 -0
  106. package/dist/{kv-stores-DJwxntyw.mjs.map → kv-stores-DsfVy2fk.mjs.map} +1 -1
  107. package/dist/{metadata-CzzRUnAx.mjs → metadata-zvd6AWkE.mjs} +3 -3
  108. package/dist/{metadata-CzzRUnAx.mjs.map → metadata-zvd6AWkE.mjs.map} +1 -1
  109. package/dist/{module-registry-BnmRNy-3.mjs → module-registry-Daf_P2oD.mjs} +2 -2
  110. package/dist/{module-registry-BnmRNy-3.mjs.map → module-registry-Daf_P2oD.mjs.map} +1 -1
  111. package/dist/{observers-COlQfinD.mjs → observers-DZgs48UM.mjs} +2 -2
  112. package/dist/{observers-COlQfinD.mjs.map → observers-DZgs48UM.mjs.map} +1 -1
  113. package/dist/query-B_k9qn0R.mjs +12 -0
  114. package/dist/{query-B5DTq_4W.mjs.map → query-B_k9qn0R.mjs.map} +1 -1
  115. package/dist/reply-BDK9xt7Z.mjs +12 -0
  116. package/dist/{reply-CbTYIj_e.mjs.map → reply-BDK9xt7Z.mjs.map} +1 -1
  117. package/dist/{respond-wbMSqHYo.mjs → respond-DFRj2-7q.mjs} +3 -3
  118. package/dist/{respond-wbMSqHYo.mjs.map → respond-DFRj2-7q.mjs.map} +1 -1
  119. package/dist/route-flag-BWuvJsGZ.mjs +12 -0
  120. package/dist/{route-flag-Bb7n9Mnp.mjs.map → route-flag-BWuvJsGZ.mjs.map} +1 -1
  121. package/dist/route-policy-B3vM6bSf.mjs +12 -0
  122. package/dist/{route-policy-C_Wsc-b1.mjs.map → route-policy-B3vM6bSf.mjs.map} +1 -1
  123. package/dist/router-builder-JvMTp50k.mjs +12 -0
  124. package/dist/{router-builder-DawnRzlp.mjs.map → router-builder-JvMTp50k.mjs.map} +1 -1
  125. package/dist/{router-builder-CDkW88KQ.d.mts → router-builder-zWuVIOmd.d.mts} +2 -2
  126. package/dist/{router-builder-CDkW88KQ.d.mts.map → router-builder-zWuVIOmd.d.mts.map} +1 -1
  127. package/dist/{session-4Tb6q0Ny.d.mts → session-B4hOZj90.d.mts} +13 -4
  128. package/dist/session-B4hOZj90.d.mts.map +1 -0
  129. package/dist/{upload-Cy7qQy7M.d.mts → upload-CiMtdXWD.d.mts} +2 -2
  130. package/dist/upload-CiMtdXWD.d.mts.map +1 -0
  131. package/dist/{upload-config-D01Ty40f.mjs → upload-config-Dz2INCaa.mjs} +2 -2
  132. package/dist/{upload-config-D01Ty40f.mjs.map → upload-config-Dz2INCaa.mjs.map} +1 -1
  133. package/dist/web.d.mts +9 -7
  134. package/dist/web.d.mts.map +1 -1
  135. package/dist/web.mjs +2 -2
  136. package/dist/web.mjs.map +1 -1
  137. package/package.json +7 -8
  138. package/dist/adapter-DjfRMob8.d.mts.map +0 -1
  139. package/dist/application-BSJpaiSY.mjs +0 -12
  140. package/dist/application-BSJpaiSY.mjs.map +0 -1
  141. package/dist/application-CGxZCYl1.d.mts.map +0 -1
  142. package/dist/bootstrap-CbTF6xvv.mjs +0 -12
  143. package/dist/bootstrap-CbTF6xvv.mjs.map +0 -1
  144. package/dist/context-gpvcMlG5.mjs +0 -12
  145. package/dist/context-gpvcMlG5.mjs.map +0 -1
  146. package/dist/contributor-runner-vk9XlOED.mjs +0 -12
  147. package/dist/core-DKrKVLfj.mjs +0 -12
  148. package/dist/disposables-NlW6Mibk.mjs +0 -12
  149. package/dist/env-__fzPsHD.mjs +0 -13
  150. package/dist/env-__fzPsHD.mjs.map +0 -1
  151. package/dist/handler-DnZbcleS.mjs +0 -13
  152. package/dist/handler-DnZbcleS.mjs.map +0 -1
  153. package/dist/http/runtimes/h3-web.d.mts.map +0 -1
  154. package/dist/http/runtimes/h3-web.mjs.map +0 -1
  155. package/dist/jobs-BmpeFvi0.mjs +0 -12
  156. package/dist/kv-stores-BZTe23Tw.d.mts.map +0 -1
  157. package/dist/kv-stores-DJwxntyw.mjs +0 -12
  158. package/dist/query-B5DTq_4W.mjs +0 -12
  159. package/dist/reply-CbTYIj_e.mjs +0 -12
  160. package/dist/route-flag-Bb7n9Mnp.mjs +0 -12
  161. package/dist/route-policy-C_Wsc-b1.mjs +0 -12
  162. package/dist/router-builder-DawnRzlp.mjs +0 -12
  163. package/dist/session-4Tb6q0Ny.d.mts.map +0 -1
  164. package/dist/upload-Cy7qQy7M.d.mts.map +0 -1
@@ -1,12 +0,0 @@
1
- /**
2
- * @forinda/kickjs v9.2.0
3
- *
4
- * Copyright (c) Felix Orinda
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- import{METADATA}from"./core/interfaces.mjs";import{createLogger}from"./core/logger.mjs";import{n as getClassMetaOrUndefined}from"./metadata-CzzRUnAx.mjs";import{HttpException}from"./core/errors.mjs";import{d as requestStore}from"./context-gpvcMlG5.mjs";function normalizeMediaType(contentType){return((Array.isArray(contentType)?contentType[0]:contentType)??``).split(`;`)[0].trim().toLowerCase()}function isJsonMediaType(mediaType){return mediaType===`application/json`||/^application\/[\w.+-]+\+json$/.test(mediaType)}function classifyMediaType(contentType){let mediaType=normalizeMediaType(contentType);return mediaType?isJsonMediaType(mediaType)?`json`:mediaType===`application/x-www-form-urlencoded`?`urlencoded`:mediaType.startsWith(`multipart/`)?`multipart`:mediaType.startsWith(`text/`)?`text`:`unsupported`:`unsupported`}const EXPRESS_JSON_TYPES=[`application/json`,`application/*+json`],SUPPORTED_BODY_TYPES=[`application/json`,`application/*+json`,`application/x-www-form-urlencoded`,`text/*`,`multipart/form-data`];function unsupportedMediaTypeError(contentType){let mediaType=normalizeMediaType(contentType);return new HttpException(415,mediaType?`Unsupported Media Type: ${mediaType}`:`Unsupported Media Type: request has a body but no Content-Type`,void 0,{Accept:SUPPORTED_BODY_TYPES.join(`, `)})}const BODY_METHODS=new Set([`POST`,`PUT`,`PATCH`,`DELETE`]);function rejectUnsupportedBody(){return(req,_res,next)=>{if(!BODY_METHODS.has((req.method??`GET`).toUpperCase())||classifyMediaType(req.headers?.[`content-type`])!==`unsupported`)return next();let reject=()=>next(unsupportedMediaTypeError(req.headers?.[`content-type`])),length=req.headers?.[`content-length`];if(length!==void 0)return length===`0`?next():reject();if(req.headers?.[`transfer-encoding`]===void 0)return next();let decided=!1,settle=fn=>()=>{decided||(decided=!0,req.off?.(`data`,onData),req.off?.(`end`,onEnd),fn())},onData=settle(reject),onEnd=settle(()=>next());req.on?.(`data`,onData),req.on?.(`end`,onEnd)}}const log=createLogger(`RequestScope`),preDestroyCache=new Map;function preDestroyMethod(ctor){let method=preDestroyCache.get(ctor);return method===void 0&&(method=getClassMetaOrUndefined(METADATA.PRE_DESTROY,ctor.prototype)??null,preDestroyCache.set(ctor,method)),method}function disposeRequestStore(store){if(!store.disposed&&(store.disposed=!0,store.instances.size!==0)){for(let instance of store.instances.values()){if(typeof instance!=`object`||!instance)continue;let method=preDestroyMethod(instance.constructor);if(method&&typeof instance[method]==`function`)try{let result=instance[method]();result&&typeof result.then==`function`&&result.catch(err=>log.error(err,`@PreDestroy on ${instance.constructor.name} rejected`))}catch(err){log.error(err,`@PreDestroy on ${instance.constructor.name} threw`)}}store.instances.clear()}}const REQUEST_SCOPE_MIDDLEWARE_MARKER=Symbol.for(`@kickjs/requestScopeMiddleware`);function createRequestStore(requestId){return{requestId:requestId||crypto.randomUUID(),instances:new Map,values:new Map}}function requestScopeMiddleware(){let mw=(req,res,next)=>{let requestIdHeader=req.headers[`x-request-id`],requestId=(Array.isArray(requestIdHeader)?requestIdHeader[0]:requestIdHeader)||crypto.randomUUID(),store=createRequestStore(requestId);req.requestId=requestId,res.once(`close`,()=>disposeRequestStore(store)),requestStore.run(store,next)};return mw[REQUEST_SCOPE_MIDDLEWARE_MARKER]=!0,mw}function isRequestScopeMiddleware(value){return typeof value==`function`&&value[REQUEST_SCOPE_MIDDLEWARE_MARKER]===!0}const REPLY_BRAND=Symbol.for(`kickjs.reply`);function reply(status,body){return{[REPLY_BRAND]:!0,status,body}}reply.ok=body=>reply(200,body),reply.created=body=>reply(201,body),reply.accepted=body=>reply(202,body),reply.noContent=()=>reply(204,void 0);function isReply(value){return typeof value==`object`&&!!value&&value[REPLY_BRAND]===!0}function applyHandlerResult(ctx,result){return result===void 0?!1:isReply(result)?result.status===204?(ctx.noContent(),!0):(ctx.json(result.body,result.status),!0):(ctx.json(result),!0)}export{disposeRequestStore as a,EXPRESS_JSON_TYPES as c,unsupportedMediaTypeError as d,createRequestStore as i,classifyMediaType as l,isReply as n,isRequestScopeMiddleware as o,reply as r,requestScopeMiddleware as s,applyHandlerResult as t,rejectUnsupportedBody as u};
12
- //# sourceMappingURL=reply-CbTYIj_e.mjs.map
@@ -1,12 +0,0 @@
1
- /**
2
- * @forinda/kickjs v9.2.0
3
- *
4
- * Copyright (c) Felix Orinda
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- import{METADATA}from"./core/interfaces.mjs";import{a as getMethodMeta,c as pushClassMeta,l as pushMethodMeta,t as getClassMeta}from"./metadata-CzzRUnAx.mjs";const FLAG_UNSET=Symbol(`kick.flagUnset`);function isDecoratorApplication(args){let[target,propertyKey]=args;return typeof propertyKey==`string`||typeof propertyKey==`symbol`||args.length===1&&typeof target==`function`}function defineRouteFlag(name){if(name.startsWith(`!`))throw Error(`defineRouteFlag('${name}'): a flag name cannot start with '!' — that prefix is reserved for negated tests ('!${name.slice(1)}' means "does not carry ${name.slice(1)}"). Rename the flag.`);function apply(value,target,propertyKey){let declaration={name,value};if(propertyKey===void 0){pushClassMeta(METADATA.CLASS_FLAGS,target,declaration);return}pushMethodMeta(METADATA.METHOD_FLAGS,target.constructor,String(propertyKey),declaration)}let flag=(...args)=>{if(isDecoratorApplication(args)){apply(!0,args[0],args[1]);return}let value=args[0];return(target,propertyKey)=>{apply(value,target,propertyKey)}};return Object.defineProperty(flag,"flagName",{value:name,enumerable:!0}),Object.defineProperty(flag,"off",{value:(target,propertyKey)=>{apply(FLAG_UNSET,target,propertyKey)},enumerable:!0}),flag}function resolveRouteFlags(classDeclarations,methodDeclarations,mountDeclarations=[]){let resolved=new Map;for(let{name,value}of[...mountDeclarations,...classDeclarations,...methodDeclarations]){if(value===FLAG_UNSET){resolved.delete(name);continue}resolved.set(name,value)}return resolved}function matchesFlagTest(test,flags,route){let resolved=flags??EMPTY_FLAGS;if(typeof test==`function`)return test({flags:resolved,route});if(typeof test==`string`)return isNegated(test)?!resolved.has(stripNegation(test)):resolved.has(test);if(test.length===0)return!1;let negated=isNegated(test[0]);if(test.some(name=>isNegated(name)!==negated))throw Error(`Route flag test mixes polarities: [${test.map(n=>`'${n}'`).join(`, `)}]. A list is either all names ("carries any of these") or all negated ("carries none of these") — for anything else, pass a predicate.`);return negated?test.every(name=>!resolved.has(stripNegation(name))):test.some(name=>resolved.has(name))}function assertFlagTest(test,site){if(typeof test==`function`||typeof test==`string`||test.length===0)return;let negated=isNegated(test[0]);if(test.some(name=>isNegated(name)!==negated))throw Error(`${site}: route flag test mixes polarities: [${test.map(n=>`'${n}'`).join(`, `)}]. A list is either all names ("carries any of these") or all negated ("carries none of these") — for anything else, pass a predicate.`)}const isNegated=name=>name.startsWith(`!`),stripNegation=name=>name.slice(1),EMPTY_FLAGS=new Map,ROUTE_SLOT=Symbol.for(`kick.route`);function getRouteFlags(controllerClass,handlerName){return resolveRouteFlags(getClassFlagDeclarations(controllerClass),getMethodFlagDeclarations(controllerClass,handlerName),getMountFlagDeclarations(controllerClass))}function getClassFlagDeclarations(controllerClass){return getClassMeta(METADATA.CLASS_FLAGS,controllerClass,[])}function getMethodFlagDeclarations(controllerClass,handlerName){return getMethodMeta(METADATA.METHOD_FLAGS,controllerClass,handlerName,[])}function toFlagDeclarations(flags,site){return flags?(Array.isArray(flags)?flags.map(name=>[name,!0]):Object.entries(flags)).map(([name,value])=>{if(name.startsWith(`!`))throw Error(`${site}: a flag name cannot start with '!' — that prefix is reserved for negated tests, and a declaration has no negative form. Remove the flag instead of declaring '${name}'.`);return{name,value}}):[]}const MOUNT_FLAGS=new WeakMap;function registerMountFlags(controllerClass,declarations){if(declarations.length===0){MOUNT_FLAGS.delete(controllerClass);return}MOUNT_FLAGS.set(controllerClass,[...declarations])}function getMountFlagDeclarations(controllerClass){return MOUNT_FLAGS.get(controllerClass)??[]}export{getMethodFlagDeclarations as a,registerMountFlags as c,getClassFlagDeclarations as i,resolveRouteFlags as l,assertFlagTest as n,getRouteFlags as o,defineRouteFlag as r,matchesFlagTest as s,ROUTE_SLOT as t,toFlagDeclarations as u};
12
- //# sourceMappingURL=route-flag-Bb7n9Mnp.mjs.map
@@ -1,12 +0,0 @@
1
- /**
2
- * @forinda/kickjs v9.2.0
3
- *
4
- * Copyright (c) Felix Orinda
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- const EMPTY=new Map;function compile(path){let source=path.replace(/[.+?^${}()|[\]\\]/g,`\\$&`).replace(/\/:[^/]+/g,`/([^/]+)`).replace(/\*/g,`.*`);return RegExp(`^${source}/?$`)}var RoutePolicyTable=class{byMethod=new Map;add(method,path,flags){if(!flags||flags.size===0)return;let verb=method.toUpperCase(),bucket=this.byMethod.get(verb)??[];bucket.push({pattern:compile(path),flags}),this.byMethod.set(verb,bucket)}lookup(method,pathname){let bucket=this.byMethod.get(method.toUpperCase());if(!bucket)return EMPTY;for(let entry of bucket)if(entry.pattern.test(pathname))return entry.flags;return EMPTY}clear(){this.byMethod.clear()}get size(){let total=0;for(let bucket of this.byMethod.values())total+=bucket.length;return total}};const ROUTE_POLICY_SLOT=Symbol.for(`kick.routePolicy`);function bindRoutePolicy(handler,receive){return Object.defineProperty(handler,ROUTE_POLICY_SLOT,{value:receive,enumerable:!1}),handler}function offerRoutePolicy(handler,table){let receive=handler?.[ROUTE_POLICY_SLOT];typeof receive==`function`&&receive(table)}export{bindRoutePolicy as n,offerRoutePolicy as r,RoutePolicyTable as t};
12
- //# sourceMappingURL=route-policy-C_Wsc-b1.mjs.map
@@ -1,12 +0,0 @@
1
- /**
2
- * @forinda/kickjs v9.2.0
3
- *
4
- * Copyright (c) Felix Orinda
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- import{METADATA}from"./core/interfaces.mjs";import{o as duplicateRouteError,t as Container}from"./container-CAPN7pBG.mjs";import{a as getMethodMeta,o as getMethodMetaOrUndefined,t as getClassMeta}from"./metadata-CzzRUnAx.mjs";import{a as getMethodFlagDeclarations,c as registerMountFlags,i as getClassFlagDeclarations,l as resolveRouteFlags,u as toFlagDeclarations}from"./route-flag-Bb7n9Mnp.mjs";import{i as MissingContributorError,n as DuplicateContributorError,t as ContributorCycleError}from"./context-errors-DYJjhalQ.mjs";import{t as runContributors}from"./contributor-runner-vk9XlOED.mjs";const PRECEDENCE_ORDER=[`method`,`class`,`module`,`adapter`,`global`];function buildPipeline(sources,options={}){let route=options.route,bySource=new Map;for(let src of PRECEDENCE_ORDER)bySource.set(src,[]);for(let entry of sources)bySource.get(entry.source).push(entry);let winners=new Map;for(let src of PRECEDENCE_ORDER){let rows=bySource.get(src),keysAtThisLevel=new Map;for(let row of rows){let key=row.registration.key,existing=keysAtThisLevel.get(key)??[];existing.push(row),keysAtThisLevel.set(key,existing)}for(let[key,rowsForKey]of keysAtThisLevel){if(rowsForKey.length>1){let labels=rowsForKey.map((r,i)=>r.label??`${src}#${i}`);throw new DuplicateContributorError(key,labels)}winners.has(key)||winners.set(key,rowsForKey[0])}}let survivors=[...winners.values()].map(r=>r.registration),allKeys=new Set(survivors.map(r=>r.key));for(let reg of survivors)for(let dep of reg.dependsOn)if(!allKeys.has(dep))throw new MissingContributorError(dep,reg.key,route,reg.definedAt);let sorted=topoSort(survivors,route);return Object.freeze({contributors:Object.freeze(sorted),keys:allKeys})}function splitBeforeValidation(pipeline,route){let early=pipeline.contributors.filter(reg=>reg.beforeValidation);if(early.length===0)return{early:null,late:pipeline};let earlyKeys=new Set(early.map(reg=>reg.key));for(let reg of early){let lateDep=reg.dependsOn.find(dep=>!earlyKeys.has(dep));if(lateDep!==void 0)throw Error(`Contributor '${reg.key}'${route?` on ${route}`:``} sets beforeValidation but depends on '${lateDep}', which runs after validation. Set beforeValidation on '${lateDep}' too, or remove it from '${reg.key}'.`)}let late=pipeline.contributors.filter(reg=>!reg.beforeValidation);return{early:Object.freeze({contributors:Object.freeze(early),keys:earlyKeys}),late:late.length===0?null:Object.freeze({contributors:Object.freeze(late),keys:new Set(late.map(reg=>reg.key))})}}function topoSort(registrations,route){let indegree=new Map,dependents=new Map,byKey=new Map;for(let reg of registrations)indegree.set(reg.key,reg.dependsOn.length),byKey.set(reg.key,reg);for(let reg of registrations)for(let dep of reg.dependsOn){let list=dependents.get(dep)??[];list.push(reg),dependents.set(dep,list)}let queue=[];for(let reg of registrations)indegree.get(reg.key)===0&&queue.push(reg);let sorted=[];for(;queue.length>0;){let node=queue.shift();sorted.push(node);for(let dependent of dependents.get(node.key)??[]){let next=(indegree.get(dependent.key)??0)-1;indegree.set(dependent.key,next),next===0&&queue.push(dependent)}}if(sorted.length!==registrations.length){let remaining=registrations.filter(r=>(indegree.get(r.key)??0)>0);throw new ContributorCycleError(reconstructCycle(remaining,byKey),route)}return sorted}function reconstructCycle(residual,byKey){let residualKeys=new Set(residual.map(r=>r.key)),start=residual[0].key,path=[start],seen=new Set([start]),cursor=start;for(;;){let nextDep=byKey.get(cursor).dependsOn.find(d=>residualKeys.has(d));if(nextDep===void 0)break;if(seen.has(nextDep)){let cycleStart=path.indexOf(nextDep);return[...path.slice(cycleStart),nextDep]}path.push(nextDep),seen.add(nextDep),cursor=nextDep}return path}let _externalContributorSources=[];function _setExternalContributorSources(sources){_externalContributorSources=sources}function assertRouteUnique(registry,method,fullPath,owner){let key=`${method.toUpperCase()} ${fullPath.replace(/:[^/]+/g,`:*`)}`,prior=registry.get(key);if(prior!==void 0)throw duplicateRouteError(method.toUpperCase(),fullPath,owner,prior);registry.set(key,owner)}function buildRouteTable(controllerClass,options={}){let container=Container.getInstance(),externalSources=options.externalSources??_externalContributorSources,routes=getClassMeta(METADATA.ROUTES,controllerClass,[]),classMiddlewares=getClassMeta(METADATA.CLASS_MIDDLEWARES,controllerClass,[]),classContributors=getClassMeta(METADATA.CLASS_CONTRIBUTORS,controllerClass,[]),classFlagDeclarations=getClassFlagDeclarations(controllerClass),mountFlagDeclarations=toFlagDeclarations(options.mountFlags,`${controllerClass?.name??`controller`} mount flags`);registerMountFlags(controllerClass,mountFlagDeclarations);let entries=[];for(let route of routes){let method=route.method.toUpperCase(),fullPath=route.path||`/`,methodMiddlewares=getMethodMeta(METADATA.METHOD_MIDDLEWARES,controllerClass,route.handlerName,[]),fileUploadConfig=getMethodMetaOrUndefined(METADATA.FILE_UPLOAD,controllerClass,route.handlerName),methodContributors=getMethodMeta(METADATA.METHOD_CONTRIBUTORS,controllerClass,route.handlerName,[]),flags=resolveRouteFlags(classFlagDeclarations,getMethodFlagDeclarations(controllerClass,route.handlerName),mountFlagDeclarations),contributorRunner=null,earlyContributorRunner=null;if(classContributors.length>0||methodContributors.length>0||externalSources.length>0){let sources=[...methodContributors.map((registration,i)=>({source:`method`,registration,label:`${controllerClass.name}.${String(route.handlerName)}#${i}(${registration.key})`})),...classContributors.map((registration,i)=>({source:`class`,registration,label:`${controllerClass.name}.@class#${i}(${registration.key})`})),...externalSources],routeLabel=`${method} ${fullPath}`,{early,late}=splitBeforeValidation(buildPipeline(sources,{route:routeLabel}),routeLabel);early&&(earlyContributorRunner=ctx=>runContributors({pipeline:early,ctx,container,flags})),late&&(contributorRunner=ctx=>runContributors({pipeline:late,ctx,container,flags}))}let handler=ctx=>container.resolve(controllerClass)[route.handlerName](ctx);entries.push({method,path:fullPath,middlewares:[...classMiddlewares,...methodMiddlewares],contributorRunner,earlyContributorRunner,handler,meta:{controller:controllerClass,handlerName:route.handlerName,validation:route.validation,upload:fileUploadConfig,flags}})}return entries}export{buildPipeline as i,assertRouteUnique as n,buildRouteTable as r,_setExternalContributorSources as t};
12
- //# sourceMappingURL=router-builder-DawnRzlp.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-4Tb6q0Ny.d.mts","names":[],"sources":["../src/http/middleware/session.ts"],"mappings":";;;;;;;;;;;;;UAgBiB;GACd;;UAGc;EACf,IAAI,cAAc,QAAQ;EAC1B,IAAI,aAAa,MAAM,aAAa,iBAAiB;EACrD,QAAQ,cAAc;EACtB,OAAO,aAAa,iBAAiB;;UAGtB;EACf;EACA,MAAM;EACN,cAAc;EACd,WAAW;EACX,QAAQ;;UAGO;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;IACE;IACA;IACA;IACA;IACA;;;EAGF,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiHM,QAAQ,SAAS,kBAAc,KAoB1B,SAAO,KAAO,UAAQ,MAAQ,iBAAY"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-Cy7qQy7M.d.mts","names":[],"sources":["../src/http/middleware/upload-config.ts","../src/http/middleware/upload.ts"],"mappings":";;;;;;;;;;;;;;;;iBAuEgB,iBAAiB;;;;;;;;iBAcjB,oBACd,cAAc,mCACd,gBAAgB,0BACd,kBAAkB;;UAYL;EACf;EACA;EACA;EACA;EACA;EACA,QAAQ;;;UAIO;EACf;EACA;EACA;EACA,QAAQ;;;;;;;;;iBAYM,kBACd,OAAO,iBACP,QAAQ;EACL,OAAO;EAAkB,QAAQ;;;;;;;;;UC/ErB,sBAAsB;;EAErC,UAAU;;EAEV;;iBAwGO,OAAO,mBAAmB,UAAS,gBAAqB;;;;iBAQxD,MAAM,mBAAmB,mBAAe,UAAS,gBAAqB;;;;iBAUtE,KAAK,UAAS,gBAAqB;;;;;;;;;;;;;;;iBAmB5B,iBAAY,KACb,SAAO,KAAO,UAAQ,MAAQ;;;;;;iBA+B7B,sBAAsB,QAAQ,mBAAmB;;cAmBpD"}