@forinda/kickjs-cli 8.11.0 → 8.12.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.
- package/dist/{agent-docs-DUxCvCBc.mjs → agent-docs-CuD2-X3w.mjs} +2 -2
- package/dist/{agent-docs-DGE_9641.mjs → agent-docs-ykxoPqXX.mjs} +3 -3
- package/dist/{agent-docs-DGE_9641.mjs.map → agent-docs-ykxoPqXX.mjs.map} +1 -1
- package/dist/{build-BUFgk6Ss.mjs → build-C-AsmCh1.mjs} +2 -2
- package/dist/{build-BQiF63pu.mjs → build-DQnV0GCD.mjs} +3 -3
- package/dist/{build-BQiF63pu.mjs.map → build-DQnV0GCD.mjs.map} +1 -1
- package/dist/{builtins-CaOnJmm8.mjs → builtins-BsYCQU80.mjs} +2 -2
- package/dist/{builtins-d9YrHyb1.mjs → builtins-Cjp9FT1m.mjs} +107 -107
- package/dist/cli.mjs +2 -2
- package/dist/config-DMFwBdWg.mjs +12 -0
- package/dist/config-DbnBakh8.mjs +13 -0
- package/dist/config-DbnBakh8.mjs.map +1 -0
- package/dist/{doctor-CYnItgYt.mjs → doctor-rEbeoAoO.mjs} +21 -21
- package/dist/doctor-rEbeoAoO.mjs.map +1 -0
- package/dist/{fullstack-D6ikgPKw.mjs → fullstack-DdSScENL.mjs} +3 -3
- package/dist/{fullstack--utMEADY.mjs → fullstack-XhuwRQEb.mjs} +4 -4
- package/dist/{fullstack--utMEADY.mjs.map → fullstack-XhuwRQEb.mjs.map} +1 -1
- package/dist/index.d.mts +8 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/package-manager-C8ekNwsa.mjs +11 -0
- package/dist/package-manager-DvXi-NGm.mjs +12 -0
- package/dist/package-manager-DvXi-NGm.mjs.map +1 -0
- package/dist/{plugin-C7ybMh21.mjs → plugin--9hxxgsD.mjs} +2 -2
- package/dist/{plugin-DS5g6A5U.mjs → plugin-CvlUt9NG.mjs} +2 -2
- package/dist/{project-CGCAZsQV.mjs → project-BN1DnrN3.mjs} +5 -5
- package/dist/{project-CGCAZsQV.mjs.map → project-BN1DnrN3.mjs.map} +1 -1
- package/dist/{project-CDUJMeIr.mjs → project-DBmrFgdd.mjs} +4 -4
- package/dist/{project-root-Da2aMneY.mjs → project-root-BXmtd-te.mjs} +2 -2
- package/dist/{project-root-ThZdP1t_.mjs → project-root-FMt83NHV.mjs} +3 -3
- package/dist/{project-root-ThZdP1t_.mjs.map → project-root-FMt83NHV.mjs.map} +1 -1
- package/dist/{prompts-Pzk_Seut.mjs → prompts-DJBDNwHt.mjs} +2 -2
- package/dist/{prompts-Pzk_Seut.mjs.map → prompts-DJBDNwHt.mjs.map} +1 -1
- package/dist/{rolldown-runtime-DAPeToCs.mjs → rolldown-runtime-C4d34LEE.mjs} +1 -1
- package/dist/{run-plugins-Du6FlB7_.mjs → run-plugins-9tjbMqS6.mjs} +80 -80
- package/dist/run-plugins-9tjbMqS6.mjs.map +1 -0
- package/dist/{typegen-9tepCLIZ.mjs → typegen-AGdhxyRc.mjs} +5 -5
- package/dist/{typegen-9tepCLIZ.mjs.map → typegen-AGdhxyRc.mjs.map} +1 -1
- package/dist/{typegen-BkpCnSQ3.mjs → typegen-Lf0UPhdl.mjs} +4 -4
- package/dist/{types-DJXxhn43.mjs → types-B5dY2mTz.mjs} +1 -1
- package/package.json +3 -3
- package/templates/base/files/tsconfig.json +3 -1
- package/templates/template-inertia/feature.json +1 -1
- package/templates/template-inertia/files/tsconfig.json +3 -1
- package/templates/template-inertia/files/vite.config.ts +3 -2
- package/dist/config-CcsYA02N.mjs +0 -13
- package/dist/config-CcsYA02N.mjs.map +0 -1
- package/dist/config-DhzyaY1S.mjs +0 -12
- package/dist/doctor-CYnItgYt.mjs.map +0 -1
- package/dist/package-manager-BaXE6gY_.mjs +0 -12
- package/dist/package-manager-BaXE6gY_.mjs.map +0 -1
- package/dist/package-manager-Ogog_AHE.mjs +0 -11
- package/dist/run-plugins-Du6FlB7_.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @forinda/kickjs-cli v8.
|
|
2
|
+
* @forinda/kickjs-cli v8.12.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Felix Orinda
|
|
5
5
|
*
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
import{t as e}from"./rolldown-runtime-DAPeToCs.mjs";import{basename as t,dirname as n,join as r,relative as i,resolve as a,sep as o}from"node:path";import{statSync as s}from"node:fs";import{mkdir as c,readFile as l,readdir as u,stat as d,unlink as f,writeFile as p}from"node:fs/promises";import{parseSync as m}from"oxc-parser";import{globSync as h}from"glob";import{groupAssetKeys as g}from"@forinda/kickjs";const _=[`classes`,`tokens`,`injects`,`pluginsAndAdapters`,`contextKeys`,`routeFlags`,`routes`,`moduleMounts`,`globPatterns`];function v(e){if(!e||typeof e!=`object`)return!1;let t=e;return _.every(e=>Array.isArray(t[e]))}var y=class e{path;prev;next=/* @__PURE__ */ new Map;nextSig=/* @__PURE__ */ new Map;constructor(e,t){this.path=e,this.prev=t}static async load(t){let n=r(t,`scan.json`),i=/* @__PURE__ */ new Map;try{let e=await l(n,`utf-8`),t=JSON.parse(e);if(t.version===3&&t.files)for(let[e,n]of Object.entries(t.files))n&&typeof n.sig==`string`&&v(n.extract)&&i.set(e,n)}catch{}return new e(n,i)}static async signature(e){try{let t=await d(e);return`${t.mtimeMs}:${t.size}`}catch{return null}}get(e,t){let n=this.prev.get(e);return n&&n.sig===t?n.extract:null}set(e,t,n){this.next.set(e,n),this.nextSig.set(e,t)}cachedFiles(){return[...this.prev.keys()]}peek(e){return this.prev.get(e)?.extract??null}carry(e){let t=this.prev.get(e);return t?(this.next.set(e,t.extract),this.nextSig.set(e,t.sig),!0):!1}async save(){let e={};for(let[t,n]of this.next){let r=this.nextSig.get(t);r&&(e[t]={sig:r,extract:n})}let t={version:3,files:e};try{await c(n(this.path),{recursive:!0}),await p(this.path,JSON.stringify(t),`utf-8`)}catch{}}};let b=null;function ee(){return b??=new Set(L),b}const x=/* @__PURE__ */ new Set([`Get`,`Post`,`Put`,`Delete`,`Patch`]);function S(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}function C(e,t){if(Array.isArray(e))for(let n of e)C(n,t);else if(S(e)){t(e);for(let n of Object.keys(e)){if(n===`type`)continue;let r=e[n];typeof r==`object`&&r&&C(r,t)}}}function w(e){if(!S(e))return null;if(e.type===`Literal`&&typeof e.value==`string`)return e.value;if(e.type===`TemplateLiteral`){let t=e.quasis,n=e.expressions;if(t?.length===1&&(n?.length??0)===0){let e=t[0].value?.cooked;return typeof e==`string`?e:null}}return null}function T(e){return S(e)&&e.type===`Identifier`?e.name:null}function E(e){return T(e.callee)}function D(e,t){if(!e||e.type!==`ObjectExpression`)return null;for(let n of e.properties??[]){if(n.type!==`Property`)continue;let e=n.key;if((T(e)??(e.type===`Literal`?String(e.value):w(e)))===t)return n.value}return null}function O(e){let t=e.arguments?.[0];return S(t)&&t.type===`ObjectExpression`?t:null}function k(e,t){let n=D(e,t);if(!S(n)||n.type!==`ArrayExpression`)return[];let r=[];for(let e of n.elements??[]){let t=w(e);t!==null&&r.push(t)}return r}function te(e,t){return i(t,e).split(o).join(`/`)}function ne(e){return(e.match(/:([a-zA-Z_]\w*)/g)??[]).map(e=>e.slice(1))}function re(e,t){for(let n of e.implements??[]){let e=n.expression??n;if(T(e)===t)return!0;if(e.type===`TSQualifiedName`||e.type===`MemberExpression`){let n=e.right??e.property;if(n&&T(n)===t)return!0}}return!1}function A(e){return e.decorators??[]}function j(e){let t=e.expression;if(!S(t)||t.type!==`CallExpression`)return null;let n=E(t);return n?{name:n,call:t}:null}function ie(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Set,r=/* @__PURE__ */ new Set;for(let i of e.body??[]){if(i.type===`ExportNamedDeclaration`&&!i.source)for(let e of i.specifiers??[]){let t=T(e.local);t&&t===T(e.exported)&&r.add(t)}if(i.type===`ImportDeclaration`){let e=w(i.source)??``;for(let n of i.specifiers??[]){let r=T(n.local);r&&t.set(r,{source:e})}continue}let e=i.type===`VariableDeclaration`?i:i.type===`ExportNamedDeclaration`&&S(i.declaration)?i.declaration:null;if(S(e)&&e.type===`VariableDeclaration`)for(let t of e.declarations??[]){let a=T(t.id);a&&n.add(a),a&&i!==e&&r.add(a)}}return{imports:t,topLevelConsts:n,exported:r}}function M(e,t){let n=t.imports.get(e);return n?{identifier:e,source:n.source}:t.topLevelConsts.has(e)?t.exported.has(e)?{identifier:e,source:``}:{identifier:e,source:null,unexported:!0}:{identifier:e,source:null}}function ae(e,t){let n=[];for(let r of e){let e=j(r),i=e?e.name:T(r.expression);if(!i||x.has(i))continue;let a=t.imports.get(i);n.push({identifier:i,source:a?a.source:t.topLevelConsts.has(i)?``:null})}return n}const N=/* @__PURE__ */ new Set([`bootstrap`,`createWebApp`,`Application`]);function oe(e,t){if(!N.has(e))return!1;let n=t.imports.get(e)?.source;return n===`@forinda/kickjs`||(n?.startsWith(`@forinda/kickjs/`)??!1)}function se(e,t){let n={refs:[],resolved:!1},r=P(e);if(!r||r.type!==`ArrayExpression`)return n;let i=[];for(let e of r.elements??[]){if(!S(e)||e.type!==`MemberExpression`||T(e.property)!==`registration`)return n;let r=e.object,a=T(r);if(!a&&S(r)&&r.type===`CallExpression`){let e=r.callee;S(e)&&e.type===`MemberExpression`&&T(e.property)===`with`&&(a=T(e.object))}if(!a)return n;let o=t.imports.get(a);i.push({identifier:a,source:o?o.source:t.topLevelConsts.has(a)?``:null})}return{refs:i,resolved:!0}}function P(e){let t=e.value??e;if(!S(t))return null;if(t.type===`ArrayExpression`)return t;let n=t.body;if(!S(n))return null;if(n.type!==`BlockStatement`)return n;let r=(n.body??[]).filter(e=>e.type===`ReturnStatement`);if(r.length!==1)return null;let i=r[0].argument;return S(i)?i:null}function F(e,t,n){let r=T(D(e,t));return r?M(r,n):null}function ce(e,t){for(let n of e){let e=j(n);if(!e||e.name!==`ApiQueryParams`)continue;let r=e.call.arguments?.[0],i=null;if(S(r)&&r.type===`ObjectExpression`)i=r;else{let e=T(r);if(e){let n=t.get(e);n&&n.type===`ObjectExpression`&&(i=n)}}return{filterable:k(i,`filterable`),sortable:k(i,`sortable`),searchable:k(i,`searchable`)}}return null}function I(e,t,n){let r;try{let n=m(t,e);if(n.errors.length>0)return null;r=n.program}catch{return null}let i=te(t,n),a=ie(r),o=[],s=[],c=[],l=[],u=[],d=[],f=/* @__PURE__ */ new Set,p=[],h=[],g=[],_=/* @__PURE__ */ new Set,v=/* @__PURE__ */ new Set,y=/* @__PURE__ */ new Map;C(r,e=>{if(e.type!==`VariableDeclarator`)return;let t=T(e.id),n=e.init;t&&S(n)&&y.set(n,t)});let b=/* @__PURE__ */ new Set,k=/* @__PURE__ */ new Map;for(let e of r.body??[]){let t=e.type===`VariableDeclaration`?e:e.type===`ExportNamedDeclaration`&&S(e.declaration)?e.declaration:null;if(S(t)&&t.type===`VariableDeclaration`)for(let e of t.declarations??[]){let t=T(e.id);t&&S(e.init)&&k.set(t,e.init)}}let M=[];for(let e of r.body??[])if(e.type===`ExportNamedDeclaration`&&S(e.declaration)){let t=e.declaration;t.type===`ClassDeclaration`&&M.push({cls:t,isDefault:!1})}else if(e.type===`ExportDefaultDeclaration`&&S(e.declaration)){let t=e.declaration;t.type===`ClassDeclaration`&&M.push({cls:t,isDefault:!0})}for(let{cls:e,isDefault:n}of M){let r=T(e.id);if(!r)continue;let a=null;for(let t of A(e)){let e=j(t);if(e&&ee().has(e.name)){a=e.name;break}}a?o.push({className:r,decorator:a,filePath:t,relativePath:i,isDefault:n}):re(e,`AppModule`)&&o.push({className:r,decorator:`Module`,filePath:t,relativePath:i,isDefault:n})}for(let e of r.body??[]){if(e.type!==`ExportNamedDeclaration`||!S(e.declaration))continue;let n=e.declaration;if(n.type===`VariableDeclaration`)for(let e of n.declarations??[]){let n=T(e.id),r=e.init;n&&S(r)&&r.type===`CallExpression`&&E(r)===`defineModule`&&(o.some(e=>e.className===n)||o.push({className:n,decorator:`Module`,filePath:t,relativePath:i,isDefault:!1}))}}C(r,n=>{if(n.type===`VariableDeclarator`){let e=n.init;if(S(e)&&e.type===`CallExpression`&&E(e)===`createToken`){let r=w(e.arguments?.[0]);r!==null&&(b.add(e),s.push({name:r,variable:T(n.id),filePath:t,relativePath:i}))}return}if(n.type!==`CallExpression`){if(n.type===`Decorator`){let e=j(n);if(e?.name===`Inject`){let n=w(e.call.arguments?.[0]);n!==null&&c.push({name:n,filePath:t,relativePath:i})}}return}let r=n.callee,a=E(n);if(a===`createToken`&&!b.has(n)){let e=w(n.arguments?.[0]);e!==null&&s.push({name:e,variable:null,filePath:t,relativePath:i})}else if(a===`defineAdapter`||a===`definePlugin`){let e=w(D(O(n),`name`));if(e!==null){let n=a===`definePlugin`?`plugin`:`adapter`,r=`${a}::${e}::${t}`;_.has(r)||(_.add(r),l.push({kind:n,name:e,filePath:t,relativePath:i}))}}else if(a===`defineRouteFlag`){let r=w(n.arguments?.[0]);if(r!==null&&!f.has(r)){f.add(r);let a=n.typeArguments,o=a?e.slice(a.start,a.end):null;d.push({name:r,valueType:o?o.slice(1,-1).trim():null,filePath:t,relativePath:i})}}else if(a===`defineContextDecorator`||a===`defineHttpContextDecorator`){let e=w(D(O(n),`key`));e!==null&&!v.has(e)&&(v.add(e),u.push({key:e,exportName:y.get(n)??null,filePath:t,relativePath:i}))}else if(S(r)&&r.type===`CallExpression`){let e=r.callee;if(S(e)&&e.type===`MemberExpression`&&T(e.property)===`withParams`){let r=T(e.object);if(r===`defineContextDecorator`||r===`defineHttpContextDecorator`){let e=w(D(O(n),`key`));e!==null&&!v.has(e)&&(v.add(e),u.push({key:e,exportName:y.get(n)??null,filePath:t,relativePath:i}))}}}else if(S(r)&&r.type===`MemberExpression`&&T(r.property)===`glob`){let e=r.object;S(e)&&e.type===`MetaProperty`&&C(n.arguments,e=>{let t=w(e);t!==null&&g.push(t)})}});let N=[];C(r,e=>{if(e.type===`ClassDeclaration`||e.type===`ClassExpression`){let t=T(e.id);t&&N.push({cls:e,className:t})}});for(let{cls:e,className:n}of N){let r=o.find(e=>e.className===n),s=e.body?.body;if(re(e,`AppAdapter`))for(let e of s??[]){if(e.type!==`PropertyDefinition`||T(e.key)!==`name`)continue;let n=w(e.value);if(n===null)continue;let r=`class::${n}::${t}`;_.has(r)||(_.add(r),l.push({kind:`adapter`,name:n,filePath:t,relativePath:i}));break}for(let o of s??[]){if(o.type!==`MethodDefinition`)continue;let s=T(o.key);if(!s)continue;if(s===`routes`){le(o.value,h);continue}if(!r)continue;let c=A(o),l=ce(c,k),u=[...ae(A(e),a),...ae(c,a)];for(let e of c){let o=j(e);if(!o||!x.has(o.name))continue;let c=o.call.arguments??[],d=w(c[0]),f=d&&d.length>0?d:`/`,m=S(c[1])&&c[1].type===`ObjectExpression`?c[1]:null;p.push({controller:n,method:s,httpMethod:o.name.toUpperCase(),path:f,pathParams:ne(f),queryFilterable:l?.filterable??null,querySortable:l?.sortable??null,querySearchable:l?.searchable??null,bodySchema:F(m,`body`,a),querySchema:F(m,`query`,a),paramsSchema:F(m,`params`,a),responseSchema:F(m,`response`,a),filePath:t,relativePath:i,controllerIsDefaultExport:r.isDefault,appliedDecorators:u,mountedPath:f})}}}C(r,e=>{if(e.type!==`Property`||T(e.key)!==`routes`)return;let t=e.value;S(t)&&(t.type===`FunctionExpression`||t.type===`ArrowFunctionExpression`)&&le(t,h)});let P=/* @__PURE__ */ new Set,I=/* @__PURE__ */ new Set;C(r,e=>{let t=e.type===`Property`&&T(e.key)===`contributors`,n=e.type===`MethodDefinition`&&T(e.key)===`contributors`;(t||n)&&I.add(e)});let L=e=>e.properties??e.body?.body??[];C(r,e=>{if(e.type!==`ObjectExpression`&&e.type!==`ClassDeclaration`)return;let t=L(e);if(t.map(e=>T(e.key)).includes(`routes`))for(let e of t)T(e.key)===`contributors`&&P.add(e)});let R=/* @__PURE__ */ new Set;C(r,e=>{let t=e.type===`CallExpression`?E(e):e.type===`NewExpression`?T(e.callee):null;if(t===null||!oe(t,a))return;let n=O(e);if(n)for(let e of n.properties??[])e.type===`Property`&&T(e.key)===`contributors`&&R.add(e)});let z=e=>{if(e.size===0)return null;let n=[],r=!0;for(let t of e){let e=se(t,a);e.resolved||(r=!1),n.push(...e.refs)}return{refs:n,resolved:r,filePath:t}},B=z(P),V=z(R);return{classes:o,tokens:s,injects:c,pluginsAndAdapters:l,contextKeys:u,routeFlags:d,routes:p,moduleMounts:h,globPatterns:/\.module\.[mc]?[tj]sx?$/.test(t)?g:[],moduleContributors:B,appContributors:V,hasNonDecoratorContributors:I.size>P.size+R.size}}function le(e,t){let n=[],r=[];C(e.body,e=>{if(e.type!==`Property`)return;let t=T(e.key);if(t===`path`){let t=w(e.value);t!==null&&n.push(t)}else if(t===`controller`){let t=T(e.value);t&&/^[A-Z]/.test(t)&&r.push(t)}});let i=Math.min(n.length,r.length);for(let e=0;e<i;e++)t.push({controller:r[e],mountPath:n[e]})}const L=[`Service`,`Controller`,`Repository`,`Injectable`,`Component`,`Module`],R=[`.ts`,`.tsx`,`.mts`,`.cts`],z=[`node_modules`,`.kickjs`,`dist`,`build`,`.test.`,`.spec.`,`.d.ts`],B=new RegExp(String.raw`@(${L.join(`|`)})\s*\([^)]*\)`+String.raw`(?:\s*@[A-Z]\w*(?:\s*\([^)]*\))?)*`+String.raw`\s*export\s+(default\s+)?(?:abstract\s+)?class\s+(\w+)`,`g`),V=new RegExp(String.raw`export\s+(default\s+)?(?:abstract\s+)?class\s+(\w+)`+String.raw`(?:\s+extends\s+\w+(?:<[^>]*>)?)?`+String.raw`\s+implements\s+[^{]*\bAppModule\b`,`g`),ue=/export\s+const\s+(\w+)\s*(?::\s*[^=]+)?=\s*defineModule\s*(?:<[^>]*>)?\s*\(/g,de=/(?:export\s+)?const\s+(\w+)\s*(?::\s*[^=]+)?=\s*createToken\s*(?:<[^>]*>)?\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,fe=/createToken\s*(?:<[^>]*>)?\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,pe=/@Inject\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,H=/\b(defineAdapter|definePlugin)\s*(?:<[^>]*>)?\s*\(/g,U=/(?:(?:export\s+)?(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*(?::[^=]+)?=\s*)?\b(?:defineContextDecorator|defineHttpContextDecorator)\s*(?:\.withParams\s*<(?:[^<>]|<[^<>]*>)*>\s*\(\s*\))?\s*(?:<(?:[^<>]|<[^<>]*>)*>)?\s*\(/g,me=new RegExp(String.raw`export\s+(?:default\s+)?(?:abstract\s+)?class\s+(\w+)`+String.raw`(?:\s+extends\s+\w+(?:<[^>]*>)?)?`+String.raw`\s+implements\s+[^{]*\bAppAdapter\b`,`g`),he=/\bname\s*(?::\s*[^=]+)?=\s*['"`]([^'"`]+)['"`]/,W=new RegExp(String.raw`@(${[`Get`,`Post`,`Put`,`Delete`,`Patch`].join(`|`)})\s*\(`,`g`);function G(e,t){let n=1;for(let r=t+1;r<e.length;r++){let t=e[r];if(t===`(`)n++;else if(t===`)`&&(n--,n===0))return r}return-1}function ge(e,t){let n=t;for(;n<e.length;){for(;n<e.length&&/\s/.test(e[n]);)n++;if(e[n]!==`@`)break;let t=e.slice(n).match(/^@([A-Z]\w*)/);if(!t)break;for(n+=t[0].length;n<e.length&&/\s/.test(e[n]);)n++;if(e[n]===`(`){let t=G(e,n);if(t<0)return null;n=t+1}}for(;n<e.length&&/\s/.test(e[n]);)n++;for(let t of[`public`,`private`,`protected`])if(e.slice(n,n+t.length)===t&&/\s/.test(e.charAt(n+t.length))){for(n+=t.length;n<e.length&&/\s/.test(e[n]);)n++;break}if(e.slice(n,n+5)===`async`&&/\s/.test(e.charAt(n+5)))for(n+=5;n<e.length&&/\s/.test(e[n]);)n++;let r=e.slice(n).match(/^([a-zA-Z_]\w*)\s*\(/);return r?{methodName:r[1],endPos:n+r[0].length}:null}function _e(e){return(e.match(/:([a-zA-Z_]\w*)/g)??[]).map(e=>e.slice(1))}function ve(e,t){let n=e.endsWith(`/`)?e.slice(0,-1):e;return!t||t===`/`?n||`/`:n+(t.startsWith(`/`)?t:`/`+t)||`/`}const ye=/\b(?:public\s+|private\s+|protected\s+)?routes\s*\([^)]*\)\s*(?::\s*[A-Za-z_][\w<>[\]\s,|]*\s*)?\{/g,be=/\bpath\s*:\s*['"`]([^'"`]*)['"`]/g,xe=/\bcontroller\s*:\s*([A-Z]\w*)\b/g,K=/\bimport\.meta\.glob\s*\(/g;function Se(e){let t=[];for(K.lastIndex=0;K.exec(e)!==null;){let n=K.lastIndex-1,r=G(e,n);if(r<0)continue;let i=e.slice(n+1,r),a=/['"`]([^'"`]+)['"`]/g,o;for(;(o=a.exec(i))!==null;)t.push(o[1])}return t}function Ce(e){let t=e.replace(/[.+^$()|[\]\\]/g,`\\$&`).replace(/\?/g,`.`).replace(/\*\*\//g,`___DOUBLESTAR_SLASH___`).replace(/\*\*/g,`___DOUBLESTAR___`).replace(/\*/g,`[^/]*`).replace(/___DOUBLESTAR_SLASH___/g,`(?:.+/)?`).replace(/___DOUBLESTAR___/g,`.*`);return RegExp(`^`+t+`$`)}function we(e,t){let n=e.startsWith(`./`)?e:`./`+e,r=!1;for(let e of t){let t=e.startsWith(`!`);Ce(t?e.slice(1):e).test(n)&&(r=!t)}return r}function Te(e){let t=[];ye.lastIndex=0;let n;for(;(n=ye.exec(e))!==null;){let r=e.indexOf(`{`,n.index+n[0].length-1);if(r<0)continue;let i=Ie(e,r);if(i<0)continue;let a=e.slice(r+1,i),o=[];be.lastIndex=0;let s;for(;(s=be.exec(a))!==null;)o.push(s[1]??``);let c=[];xe.lastIndex=0;let l;for(;(l=xe.exec(a))!==null;)c.push(l[1]);let u=Math.min(o.length,c.length);for(let e=0;e<u;e++)t.push({controller:c[e],mountPath:o[e]})}return t}function q(e,t){let n=new RegExp(String.raw`\b${t}\s*:\s*([A-Za-z_$][\w$]*)`,`g`).exec(e);return n?n[1]:null}function J(e,t){let n=Ee(e,t);return n===null?new RegExp(String.raw`(?:^|\n)\s*const\s+${t}\b`).test(e)?{identifier:t,source:null,unexported:!0}:{identifier:t,source:null}:{identifier:t,source:n}}function Ee(e,t){let n=new RegExp(String.raw`import\s*(?:type\s+)?\{[^}]*\b${t}\b[^}]*\}\s*from\s*['"\`]([^'"\`]+)['"\`]`).exec(e);if(n)return n[1];let r=new RegExp(String.raw`import\s+(?:type\s+)?${t}\s+from\s*['"\`]([^'"\`]+)['"\`]`).exec(e);if(r)return r[1];let i=new RegExp(String.raw`import\s*\*\s*as\s+${t}\s+from\s*['"\`]([^'"\`]+)['"\`]`).exec(e);return i?i[1]:new RegExp(String.raw`(?:^|\n)\s*export\s+const\s+${t}\b|export\s*\{[^}]*(?<!\bas\s+)\b${t}\b(?!\s+as\b)[^}]*\}(?!\s*from)`).test(e)?``:null}function De(e,t){let n=/@ApiQueryParams\s*\(\s*([\s\S]*?)\s*\)\s*$/.exec(e);if(!n){let n=/@ApiQueryParams\s*\(([\s\S]*?)\)/.exec(e);return n?Oe(n[1].trim(),t):null}return Oe(n[1].trim(),t)}function Oe(e,t){if(e.startsWith(`{`))return Ae(e);let n=/^([A-Za-z_]\w*)/.exec(e);if(n){let e=n[1],r=new RegExp(String.raw`const\s+${e}\s*(?::\s*[^=]+)?=\s*(\{[\s\S]*?\n\})`,`m`).exec(t);if(r)return Ae(r[1])}return{filterable:[],sortable:[],searchable:[]}}function ke(e,t){let n=new RegExp(String.raw`${t}\s*:\s*\[([\s\S]*?)\]`).exec(e);return n?Array.from(n[1].matchAll(/['"`]([^'"`]+)['"`]/g)).map(e=>e[1]):[]}function Ae(e){return{filterable:ke(e,`filterable`),sortable:ke(e,`sortable`),searchable:ke(e,`searchable`)}}async function je(e,t){let n=t.extensions??R,a=t.exclude??z,o=[],s;try{s=await u(e,{withFileTypes:!0,encoding:`utf-8`})}catch{return o}for(let c of s){let s=r(e,c.name),l=i(t.cwd,s);a.some(e=>l.includes(e))||(c.isDirectory()?o.push(...await je(s,t)):c.isFile()&&n.some(e=>c.name.endsWith(e))&&o.push(s))}return o}function Y(e,t){return i(t,e).split(o).join(`/`)}function Me(e,t,n){let r=[],i=Y(t,n);B.lastIndex=0;let a;for(;(a=B.exec(e))!==null;){let[,e,n,o]=a;r.push({className:o,decorator:e,filePath:t,relativePath:i,isDefault:!!n})}V.lastIndex=0;let o;for(;(o=V.exec(e))!==null;){let[,e,n]=o;r.some(e=>e.className===n&&e.filePath===t)||r.push({className:n,decorator:`Module`,filePath:t,relativePath:i,isDefault:!!e})}ue.lastIndex=0;let s;for(;(s=ue.exec(e))!==null;){let[,e]=s;r.some(n=>n.className===e&&n.filePath===t)||r.push({className:e,decorator:`Module`,filePath:t,relativePath:i,isDefault:!1})}return r}function Ne(e,t,n){let r=[],i=Y(t,n),a=/* @__PURE__ */ new Set;de.lastIndex=0;let o;for(;(o=de.exec(e))!==null;){let[e,n,s]=o;a.add(e),r.push({name:s,variable:n,filePath:t,relativePath:i})}for(fe.lastIndex=0;(o=fe.exec(e))!==null;)a.has(o[0])||r.push({name:o[1],variable:null,filePath:t,relativePath:i});return r}function Pe(e,t,n,r,i=/* @__PURE__ */ new Map){let a=[];if(r.length===0)return a;let o=Y(t,n),s=[];for(let t of r){let n=new RegExp(String.raw`class\s+${t.className}\b`).exec(e);n?.index!==void 0&&s.push({cls:t,start:n.index})}s.sort((e,t)=>e.start-t.start);for(let n=0;n<s.length;n++){let{cls:r,start:c}=s[n],l=n+1<s.length?s[n+1].start:e.length,u=e.slice(c,l);W.lastIndex=0;let d;for(;(d=W.exec(u))!==null;){let n=d[1],s=d.index,c=W.lastIndex-1,l=G(u,c);if(l<0)continue;let f=u.slice(c+1,l),p=f.match(/^\s*['"`]([^'"`]*)['"`]/),m=p&&p[1].length>0?p[1]:`/`,h=ge(u,l+1);if(!h)continue;let{methodName:g,endPos:_}=h;W.lastIndex=_;let v=De(u.slice(s,_),e),y=q(f,`body`),b=q(f,`query`),ee=q(f,`params`),x=q(f,`response`),S=i.get(r.className)??``,C=S?ve(S,m):m;a.push({controller:r.className,method:g,httpMethod:n.toUpperCase(),path:m,pathParams:_e(C),queryFilterable:v?.filterable??null,querySortable:v?.sortable??null,querySearchable:v?.searchable??null,bodySchema:y?J(e,y):null,querySchema:b?J(e,b):null,paramsSchema:ee?J(e,ee):null,responseSchema:x?J(e,x):null,filePath:t,relativePath:o,controllerIsDefaultExport:r.isDefault,mountedPath:C})}}return a}function Fe(e,t,n){let r=[],i=Y(t,n);pe.lastIndex=0;let a;for(;(a=pe.exec(e))!==null;)r.push({name:a[1],filePath:t,relativePath:i});return r}function Ie(e,t){let n=1;for(let r=t+1;r<e.length;r++){let t=e[r];if(t===`{`)n++;else if(t===`}`&&(n--,n===0))return r}return-1}function Le(e,t,n){let r=[],i=Y(t,n),a=/* @__PURE__ */ new Set;H.lastIndex=0;let o;for(;(o=H.exec(e))!==null;){let n=o[1],s=H.lastIndex-1,c=G(e,s);if(c<0)continue;let l=e.slice(s+1,c),u=/\bname\s*:\s*['"`]([^'"`]+)['"`]/.exec(l);if(!u)continue;let d=u[1],f=`${n}::${d}::${t}`;a.has(f)||(a.add(f),r.push({kind:n===`definePlugin`?`plugin`:`adapter`,name:d,filePath:t,relativePath:i}))}me.lastIndex=0;let s;for(;(s=me.exec(e))!==null;){let n=s.index,o=e.indexOf(`{`,n);if(o<0)continue;let c=Ie(e,o);if(c<0)continue;let l=e.slice(o+1,c),u=he.exec(l);if(!u)continue;let d=u[1],f=`class::${d}::${t}`;a.has(f)||(a.add(f),r.push({kind:`adapter`,name:d,filePath:t,relativePath:i}))}return r}function Re(e,t,n){let r=[],i=Y(t,n),a=/* @__PURE__ */ new Set;U.lastIndex=0;let o;for(;(o=U.exec(e))!==null;){let n=U.lastIndex-1,s=G(e,n);if(s<0)continue;let c=e.slice(n+1,s),l=/\bkey\s*:\s*['"`]([^'"`]+)['"`]/.exec(c);if(!l)continue;let u=l[1];a.has(u)||(a.add(u),r.push({key:u,exportName:o[1]??null,filePath:t,relativePath:i}))}return r}const ze=[`src/config/index.ts`,`src/config/env.ts`,`src/config.ts`,`src/env.ts`];async function Be(e,t){let n=t===`src/env.ts`?ze:[t];for(let t of n){let n=a(e,t),r;try{r=await l(n,`utf-8`)}catch{continue}if((/\bdefineEnv\s*\(/.test(r)||/\bfrom(Zod|Valibot|Yup)\s*\(/.test(r))&&/export\s+default\b/.test(r)&&!/export\s+default\s+loadEnvFromSchema\s*\(/.test(r))return{filePath:n,relativePath:Y(n,e)}}return null}function Ve(e){let t=/* @__PURE__ */ new Map;for(let n of e){let e=t.get(n.className)??[];e.push(n),t.set(n.className,e)}let n=[];for(let[e,r]of t)new Set(r.map(e=>e.filePath)).size>1&&n.push({className:e,classes:r});return n.sort((e,t)=>e.className.localeCompare(t.className)),n}const He=/* @__PURE__ */ new Set([`Controller`,`Service`,`Repository`,`Injectable`,`Component`,`Module`,`Middleware`,`ApiQueryParams`,`Public`,`Roles`,`Cron`,`Cacheable`,`CacheEvict`,`FileUpload`,`Asset`,`Builder`,`PostConstruct`,`PreDestroy`,`Value`,`Inject`,`Autowired`]);function X(e){return e.split(o).join(`/`).replace(/\.[mc]?[tj]sx?$/,``)}function Ue(e,t,r){let i=X(r);if(t===``)return i===X(e);if(t.startsWith(`.`)){let r=X(a(n(e),t));return i===r||i===`${r}/index`}let o=t.replace(/^[@~#]\//,``);if(o===t&&t.startsWith(`@`))return!1;let s=X(o);return i===s||i.endsWith(`/${s}`)}function We(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map;for(let t of e)if(t)for(let{controller:e}of t.moduleMounts)n.set(e,(n.get(e)??0)+1);for(let r of e)if(r?.moduleContributors)for(let{controller:e}of r.moduleMounts){if((n.get(e)??0)>1){t.set(e,`ambiguous`);continue}let i=t.get(e);t.set(e,i===void 0?r.moduleContributors:`ambiguous`)}return t}function Ge(e,t,n,r=/* @__PURE__ */ new Map,i=[]){if(n){for(let t of e)t.contextKeys=null;return}let a=/* @__PURE__ */ new Map;for(let e of t){if(!e.exportName)continue;let t=a.get(e.exportName);t?t.push(e):a.set(e.exportName,[e])}for(let t of e){let e=t.appliedDecorators;if(!e){t.contextKeys=null;continue}let n=/* @__PURE__ */ new Set,o=!0,s=(e,t)=>{if(t.source===null)return null;let n=(a.get(t.identifier)??[]).filter(n=>Ue(e,t.source,n.filePath));return n.length===1?n[0].key:null};for(let r of e){if(He.has(r.identifier))continue;let e=s(t.filePath,r);if(e===null){o=!1;break}n.add(e)}if(o)for(let e of i){if(!e.resolved){o=!1;break}for(let t of e.refs){let r=s(e.filePath,t);if(r===null){o=!1;break}n.add(r)}if(!o)break}if(o){let e=r.get(t.controller);if(e===`ambiguous`)o=!1;else if(e){if(!e.resolved)o=!1;else for(let t of e.refs){let r=s(e.filePath,t);if(r===null){o=!1;break}n.add(r)}}}t.contextKeys=o?[...n].toSorted():null}}const Ke=/\bcontributors\s*(?::|\()/;function qe(e,t,n){return I(e,t,n)||{...Je(e,t,n),hasNonDecoratorContributors:Ke.test(e)}}function Je(e,t,n){let r=Me(e,t,n);return{classes:r,tokens:Ne(e,t,n),injects:Fe(e,t,n),pluginsAndAdapters:Le(e,t,n),routeFlags:[],contextKeys:Re(e,t,n),routes:Pe(e,t,n,r,/* @__PURE__ */ new Map),moduleMounts:Te(e),globPatterns:/\.module\.[mc]?[tj]sx?$/.test(t)?Se(e):[],hasNonDecoratorContributors:!1}}async function Ye(e,t,n){let r=n?await y.signature(e):null;if(n&&r){let t=n.get(e,r);if(t)return n.set(e,r,t),t}let i;try{i=await l(e,`utf-8`)}catch{return null}let a=qe(i,e,t);return n&&r&&n.set(e,r,a),a}async function Xe(e,t,n){let r=[],i=0,a=Array.from({length:Math.min(t,e.length)},async()=>{for(;;){let t=i++;if(t>=e.length)return;r[t]=await n(e[t],t)}});return await Promise.all(a),r}async function Z(e){let t=(await je(a(e.root),e)).toSorted(),n=e.cacheDir?await y.load(e.cacheDir):null,r=$e(t,await Xe(t,16,t=>Ye(t,e.cwd,n))),i=await Be(e.cwd,e.envFile??`src/env.ts`);return n&&await n.save(),{...r,env:i}}function Ze(e,t,n){let r=n.extensions??R,a=n.exclude??z;if(!e.startsWith(t+o)&&e!==t||!r.some(t=>e.endsWith(t)))return!1;let s=i(n.cwd,e);return!a.some(e=>s.includes(e))}async function Qe(e,t){if(!e.cacheDir)return Z(e);let n=a(e.root),r=await y.load(e.cacheDir),i=r.cachedFiles();if(i.length===0)return Z(e);let o=new Set(t.removed.map(t=>a(e.cwd,t))),s=t.changed.map(t=>a(e.cwd,t)).filter(t=>!o.has(t)&&Ze(t,n,e)),c=new Set(s),u=new Set(i);for(let e of c)u.add(e);for(let e of o)u.delete(e);let d=/* @__PURE__ */ new Map;await Xe(s,16,async t=>{if(!u.has(t))return;let n=await y.signature(t),i;try{i=await l(t,`utf-8`)}catch{u.delete(t);return}let a=qe(i,t,e.cwd);d.set(t,a),n&&r.set(t,n,a)});let f=[...u].toSorted(),p=$e(f,f.map(e=>d.get(e)||(r.carry(e),r.peek(e)))),m=await Be(e.cwd,e.envFile??`src/env.ts`);return await r.save(),{...p,env:m}}function $e(e,t){let n=[],r=[],i=[],a=[],s=[],c=[],l=[],u=/* @__PURE__ */ new Map;for(let e of t)if(e)for(let{controller:t,mountPath:n}of e.moduleMounts)u.has(t)||u.set(t,n);let d=/* @__PURE__ */ new Map;for(let o=0;o<e.length;o++){let f=t[o];if(f){n.push(...f.classes),i.push(...f.tokens),a.push(...f.injects),s.push(...f.pluginsAndAdapters),c.push(...f.contextKeys),l.push(...f.routeFlags),f.globPatterns.length>0&&d.set(e[o],f.globPatterns);for(let e of f.routes){let t=u.get(e.controller);if(t){let n=ve(t,e.path);r.push({...e,pathParams:_e(n),mountedPath:n})}else r.push({...e,mountedPath:e.mountedPath??e.path})}}}Ge(r,c,t.some(e=>e?.hasNonDecoratorContributors===!0),We(t),t.flatMap(e=>e?.appContributors?[e.appContributors]:[]));let f=[];for(let[e,t]of d){if(!/\.module\.[mc]?[tj]sx?$/.test(e)||t.length===0)continue;let r=e.replaceAll(o,`/`),i=r.slice(0,r.lastIndexOf(`/`));for(let a of n){if(a.decorator===`Module`)continue;let n=a.filePath.replaceAll(o,`/`);n.startsWith(i+`/`)&&n!==r&&(we(n.slice(i.length+1),t)||f.push({className:a.className,filePath:a.filePath,relativePath:a.relativePath,moduleFilePath:e,decorator:a.decorator}))}}n.sort((e,t)=>e.className===t.className?e.relativePath.localeCompare(t.relativePath):e.className.localeCompare(t.className)),i.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath)),a.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath)),r.sort((e,t)=>e.controller.localeCompare(t.controller)||e.method.localeCompare(t.method)),s.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath)),c.sort((e,t)=>e.key.localeCompare(t.key)||e.relativePath.localeCompare(t.relativePath));let p=Ve(n);return f.sort((e,t)=>e.relativePath.localeCompare(t.relativePath)||e.className.localeCompare(t.className)),{classes:n,routes:r,tokens:i,injects:a,collisions:p,pluginsAndAdapters:s,contextKeys:c,routeFlags:l,orphanedClasses:f}}function et(e){let t=e.lastIndexOf(`.`);return t<=0?{stem:e,ext:``}:{stem:e.slice(0,t),ext:e.slice(t+1)}}function tt(e){let t=e.replaceAll(`\\`,`/`),{stem:n,ext:r}=et(t.slice(t.lastIndexOf(`/`)+1)),i=r||`ts`,a=n.lastIndexOf(`.`);return a>0?`./**/*.${n.slice(a+1)}.${i}`:`./**/*.${i}`}function nt(e){let t=/* @__PURE__ */ new Set;for(let n of e)t.add(tt(n.relativePath));return[...t].toSorted()}function rt(e,t){let n=0,r=null;for(let i=t;i<e.length;i++){let t=e[i];if(r){if(t===`\\`){i++;continue}t===r&&(r=null)}else if(t===`'`||t===`"`||t==="`")r=t;else if(t===`(`)n++;else if(t===`)`&&(n--,n===0))return i}return-1}function it(e,t,n,r){let i=null;for(let a=n;a<r;a++){let n=e[a];if(i){if(n===`\\`){a++;continue}n===i&&(i=null)}else if(n===`'`||n===`"`||n==="`")i=n;else if(n===t)return a}return-1}function at(e,t){let n=0,r=null;for(let i=t;i<e.length;i++){let t=e[i];if(r){if(t===`\\`){i++;continue}t===r&&(r=null)}else if(t===`'`||t===`"`||t==="`")r=t;else if(t===`[`)n++;else if(t===`]`&&(n--,n===0))return i}return-1}function ot(e){let t=/\bimport\.meta\.glob\s*\(/g,n=[],r;for(;(r=t.exec(e))!==null;){let t=e.indexOf(`(`,r.index);if(t<0)continue;let i=rt(e,t);i<0||n.push({start:r.index,open:t,close:i})}return n}function st(e,t){let n=ot(e);if(n.length===0)return null;let r=n.find(t=>/\beager\s*:\s*true\b/.test(e.slice(t.open,t.close+1)))??n[0],i=e.slice(r.start,r.close+1),a=new Set(Se(i).map(e=>e.startsWith(`!`)?e.slice(1):e)),o=t.filter(e=>!a.has(e));if(o.length===0)return null;let s=o.map(e=>`'${e}'`).join(`, `),c=it(e,`[`,r.open,r.close);if(c>=0){let t=at(e,c);if(t<0||t>r.close)return null;let n=e.slice(0,t);return n+(/[[,]\s*$/.test(n)?``:`, `)+s+e.slice(t)}let l=/(['"`])((?:\\.|(?!\1).)*)\1/,u=e.slice(r.open+1,r.close),d=l.exec(u);if(!d)return null;let f=r.open+1+d.index,p=f+d[0].length;return e.slice(0,f)+`[${d[0]}, ${s}]`+e.slice(p)}const Q="/* eslint-disable */\n// AUTO-GENERATED by `kick typegen`. DO NOT EDIT.\n// Re-run with `kick typegen` or rely on `kick dev` to refresh.\n",ct=/* @__PURE__ */ new Set([`Service`,`Repository`,`Injectable`,`Component`]);var lt=class extends Error{collisions;constructor(e){super(ut(e)),this.name=`TokenCollisionError`,this.collisions=e}};function ut(e){let t=[`kick typegen: token collision detected`];for(let n of e){t.push(``),t.push(` ${n.classes.length} classes named '${n.className}':`);for(let e of n.classes)t.push(` - ${e.relativePath}`)}return t.push(``),t.push(`Resolutions:`),t.push(` (a) Rename one of the classes`),t.push(` (b) Use createToken<T>('namespaced/Name') and import the token explicitly — see @forinda/kickjs`),t.push(` (c) Pass --allow-duplicates to namespace the registry keys automatically`),t.push(` (e.g. 'modules/users/UserService' instead of 'UserService')`),t.join(`
|
|
11
|
+
import{t as e}from"./rolldown-runtime-C4d34LEE.mjs";import{basename as t,dirname as n,join as r,relative as i,resolve as a,sep as o}from"node:path";import{statSync as s}from"node:fs";import{mkdir as c,readFile as l,readdir as u,stat as d,unlink as f,writeFile as p}from"node:fs/promises";import{parseSync as m}from"oxc-parser";import{globSync as h}from"glob";import{groupAssetKeys as g}from"@forinda/kickjs";const _=[`classes`,`tokens`,`injects`,`pluginsAndAdapters`,`contextKeys`,`routeFlags`,`routes`,`moduleMounts`,`globPatterns`];function v(e){if(!e||typeof e!=`object`)return!1;let t=e;return _.every(e=>Array.isArray(t[e]))}var y=class e{path;prev;next=/* @__PURE__ */ new Map;nextSig=/* @__PURE__ */ new Map;constructor(e,t){this.path=e,this.prev=t}static async load(t){let n=r(t,`scan.json`),i=/* @__PURE__ */ new Map;try{let e=await l(n,`utf-8`),t=JSON.parse(e);if(t.version===3&&t.files)for(let[e,n]of Object.entries(t.files))n&&typeof n.sig==`string`&&v(n.extract)&&i.set(e,n)}catch{}return new e(n,i)}static async signature(e){try{let t=await d(e);return`${t.mtimeMs}:${t.size}`}catch{return null}}get(e,t){let n=this.prev.get(e);return n&&n.sig===t?n.extract:null}set(e,t,n){this.next.set(e,n),this.nextSig.set(e,t)}cachedFiles(){return[...this.prev.keys()]}peek(e){return this.prev.get(e)?.extract??null}carry(e){let t=this.prev.get(e);return t?(this.next.set(e,t.extract),this.nextSig.set(e,t.sig),!0):!1}async save(){let e={};for(let[t,n]of this.next){let r=this.nextSig.get(t);r&&(e[t]={sig:r,extract:n})}let t={version:3,files:e};try{await c(n(this.path),{recursive:!0}),await p(this.path,JSON.stringify(t),`utf-8`)}catch{}}};let b=null;function ee(){return b??=new Set(L),b}const x=/* @__PURE__ */ new Set([`Get`,`Post`,`Put`,`Delete`,`Patch`]);function S(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}function C(e,t){if(Array.isArray(e))for(let n of e)C(n,t);else if(S(e)){t(e);for(let n of Object.keys(e)){if(n===`type`)continue;let r=e[n];typeof r==`object`&&r&&C(r,t)}}}function w(e){if(!S(e))return null;if(e.type===`Literal`&&typeof e.value==`string`)return e.value;if(e.type===`TemplateLiteral`){let t=e.quasis,n=e.expressions;if(t?.length===1&&(n?.length??0)===0){let e=t[0].value?.cooked;return typeof e==`string`?e:null}}return null}function T(e){return S(e)&&e.type===`Identifier`?e.name:null}function E(e){return T(e.callee)}function D(e,t){if(!e||e.type!==`ObjectExpression`)return null;for(let n of e.properties??[]){if(n.type!==`Property`)continue;let e=n.key;if((T(e)??(e.type===`Literal`?String(e.value):w(e)))===t)return n.value}return null}function O(e){let t=e.arguments?.[0];return S(t)&&t.type===`ObjectExpression`?t:null}function k(e,t){let n=D(e,t);if(!S(n)||n.type!==`ArrayExpression`)return[];let r=[];for(let e of n.elements??[]){let t=w(e);t!==null&&r.push(t)}return r}function te(e,t){return i(t,e).split(o).join(`/`)}function ne(e){return(e.match(/:([a-zA-Z_]\w*)/g)??[]).map(e=>e.slice(1))}function re(e,t){for(let n of e.implements??[]){let e=n.expression??n;if(T(e)===t)return!0;if(e.type===`TSQualifiedName`||e.type===`MemberExpression`){let n=e.right??e.property;if(n&&T(n)===t)return!0}}return!1}function A(e){return e.decorators??[]}function j(e){let t=e.expression;if(!S(t)||t.type!==`CallExpression`)return null;let n=E(t);return n?{name:n,call:t}:null}function ie(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Set,r=/* @__PURE__ */ new Set;for(let i of e.body??[]){if(i.type===`ExportNamedDeclaration`&&!i.source)for(let e of i.specifiers??[]){let t=T(e.local);t&&t===T(e.exported)&&r.add(t)}if(i.type===`ImportDeclaration`){let e=w(i.source)??``;for(let n of i.specifiers??[]){let r=T(n.local);r&&t.set(r,{source:e})}continue}let e=i.type===`VariableDeclaration`?i:i.type===`ExportNamedDeclaration`&&S(i.declaration)?i.declaration:null;if(S(e)&&e.type===`VariableDeclaration`)for(let t of e.declarations??[]){let a=T(t.id);a&&n.add(a),a&&i!==e&&r.add(a)}}return{imports:t,topLevelConsts:n,exported:r}}function M(e,t){let n=t.imports.get(e);return n?{identifier:e,source:n.source}:t.topLevelConsts.has(e)?t.exported.has(e)?{identifier:e,source:``}:{identifier:e,source:null,unexported:!0}:{identifier:e,source:null}}function ae(e,t){let n=[];for(let r of e){let e=j(r),i=e?e.name:T(r.expression);if(!i||x.has(i))continue;let a=t.imports.get(i);n.push({identifier:i,source:a?a.source:t.topLevelConsts.has(i)?``:null})}return n}const N=/* @__PURE__ */ new Set([`bootstrap`,`createWebApp`,`Application`]);function oe(e,t){if(!N.has(e))return!1;let n=t.imports.get(e)?.source;return n===`@forinda/kickjs`||(n?.startsWith(`@forinda/kickjs/`)??!1)}function se(e,t){let n={refs:[],resolved:!1},r=P(e);if(!r||r.type!==`ArrayExpression`)return n;let i=[];for(let e of r.elements??[]){if(!S(e)||e.type!==`MemberExpression`||T(e.property)!==`registration`)return n;let r=e.object,a=T(r);if(!a&&S(r)&&r.type===`CallExpression`){let e=r.callee;S(e)&&e.type===`MemberExpression`&&T(e.property)===`with`&&(a=T(e.object))}if(!a)return n;let o=t.imports.get(a);i.push({identifier:a,source:o?o.source:t.topLevelConsts.has(a)?``:null})}return{refs:i,resolved:!0}}function P(e){let t=e.value??e;if(!S(t))return null;if(t.type===`ArrayExpression`)return t;let n=t.body;if(!S(n))return null;if(n.type!==`BlockStatement`)return n;let r=(n.body??[]).filter(e=>e.type===`ReturnStatement`);if(r.length!==1)return null;let i=r[0].argument;return S(i)?i:null}function F(e,t,n){let r=T(D(e,t));return r?M(r,n):null}function ce(e,t){for(let n of e){let e=j(n);if(!e||e.name!==`ApiQueryParams`)continue;let r=e.call.arguments?.[0],i=null;if(S(r)&&r.type===`ObjectExpression`)i=r;else{let e=T(r);if(e){let n=t.get(e);n&&n.type===`ObjectExpression`&&(i=n)}}return{filterable:k(i,`filterable`),sortable:k(i,`sortable`),searchable:k(i,`searchable`)}}return null}function I(e,t,n){let r;try{let n=m(t,e);if(n.errors.length>0)return null;r=n.program}catch{return null}let i=te(t,n),a=ie(r),o=[],s=[],c=[],l=[],u=[],d=[],f=/* @__PURE__ */ new Set,p=[],h=[],g=[],_=/* @__PURE__ */ new Set,v=/* @__PURE__ */ new Set,y=/* @__PURE__ */ new Map;C(r,e=>{if(e.type!==`VariableDeclarator`)return;let t=T(e.id),n=e.init;t&&S(n)&&y.set(n,t)});let b=/* @__PURE__ */ new Set,k=/* @__PURE__ */ new Map;for(let e of r.body??[]){let t=e.type===`VariableDeclaration`?e:e.type===`ExportNamedDeclaration`&&S(e.declaration)?e.declaration:null;if(S(t)&&t.type===`VariableDeclaration`)for(let e of t.declarations??[]){let t=T(e.id);t&&S(e.init)&&k.set(t,e.init)}}let M=[];for(let e of r.body??[])if(e.type===`ExportNamedDeclaration`&&S(e.declaration)){let t=e.declaration;t.type===`ClassDeclaration`&&M.push({cls:t,isDefault:!1})}else if(e.type===`ExportDefaultDeclaration`&&S(e.declaration)){let t=e.declaration;t.type===`ClassDeclaration`&&M.push({cls:t,isDefault:!0})}for(let{cls:e,isDefault:n}of M){let r=T(e.id);if(!r)continue;let a=null;for(let t of A(e)){let e=j(t);if(e&&ee().has(e.name)){a=e.name;break}}a?o.push({className:r,decorator:a,filePath:t,relativePath:i,isDefault:n}):re(e,`AppModule`)&&o.push({className:r,decorator:`Module`,filePath:t,relativePath:i,isDefault:n})}for(let e of r.body??[]){if(e.type!==`ExportNamedDeclaration`||!S(e.declaration))continue;let n=e.declaration;if(n.type===`VariableDeclaration`)for(let e of n.declarations??[]){let n=T(e.id),r=e.init;n&&S(r)&&r.type===`CallExpression`&&E(r)===`defineModule`&&(o.some(e=>e.className===n)||o.push({className:n,decorator:`Module`,filePath:t,relativePath:i,isDefault:!1}))}}C(r,n=>{if(n.type===`VariableDeclarator`){let e=n.init;if(S(e)&&e.type===`CallExpression`&&E(e)===`createToken`){let r=w(e.arguments?.[0]);r!==null&&(b.add(e),s.push({name:r,variable:T(n.id),filePath:t,relativePath:i}))}return}if(n.type!==`CallExpression`){if(n.type===`Decorator`){let e=j(n);if(e?.name===`Inject`){let n=w(e.call.arguments?.[0]);n!==null&&c.push({name:n,filePath:t,relativePath:i})}}return}let r=n.callee,a=E(n);if(a===`createToken`&&!b.has(n)){let e=w(n.arguments?.[0]);e!==null&&s.push({name:e,variable:null,filePath:t,relativePath:i})}else if(a===`defineAdapter`||a===`definePlugin`){let e=w(D(O(n),`name`));if(e!==null){let n=a===`definePlugin`?`plugin`:`adapter`,r=`${a}::${e}::${t}`;_.has(r)||(_.add(r),l.push({kind:n,name:e,filePath:t,relativePath:i}))}}else if(a===`defineRouteFlag`){let r=w(n.arguments?.[0]);if(r!==null&&!f.has(r)){f.add(r);let a=n.typeArguments,o=a?e.slice(a.start,a.end):null;d.push({name:r,valueType:o?o.slice(1,-1).trim():null,filePath:t,relativePath:i})}}else if(a===`defineContextDecorator`||a===`defineHttpContextDecorator`){let e=w(D(O(n),`key`));e!==null&&!v.has(e)&&(v.add(e),u.push({key:e,exportName:y.get(n)??null,filePath:t,relativePath:i}))}else if(S(r)&&r.type===`CallExpression`){let e=r.callee;if(S(e)&&e.type===`MemberExpression`&&T(e.property)===`withParams`){let r=T(e.object);if(r===`defineContextDecorator`||r===`defineHttpContextDecorator`){let e=w(D(O(n),`key`));e!==null&&!v.has(e)&&(v.add(e),u.push({key:e,exportName:y.get(n)??null,filePath:t,relativePath:i}))}}}else if(S(r)&&r.type===`MemberExpression`&&T(r.property)===`glob`){let e=r.object;S(e)&&e.type===`MetaProperty`&&C(n.arguments,e=>{let t=w(e);t!==null&&g.push(t)})}});let N=[];C(r,e=>{if(e.type===`ClassDeclaration`||e.type===`ClassExpression`){let t=T(e.id);t&&N.push({cls:e,className:t})}});for(let{cls:e,className:n}of N){let r=o.find(e=>e.className===n),s=e.body?.body;if(re(e,`AppAdapter`))for(let e of s??[]){if(e.type!==`PropertyDefinition`||T(e.key)!==`name`)continue;let n=w(e.value);if(n===null)continue;let r=`class::${n}::${t}`;_.has(r)||(_.add(r),l.push({kind:`adapter`,name:n,filePath:t,relativePath:i}));break}for(let o of s??[]){if(o.type!==`MethodDefinition`)continue;let s=T(o.key);if(!s)continue;if(s===`routes`){le(o.value,h);continue}if(!r)continue;let c=A(o),l=ce(c,k),u=[...ae(A(e),a),...ae(c,a)];for(let e of c){let o=j(e);if(!o||!x.has(o.name))continue;let c=o.call.arguments??[],d=w(c[0]),f=d&&d.length>0?d:`/`,m=S(c[1])&&c[1].type===`ObjectExpression`?c[1]:null;p.push({controller:n,method:s,httpMethod:o.name.toUpperCase(),path:f,pathParams:ne(f),queryFilterable:l?.filterable??null,querySortable:l?.sortable??null,querySearchable:l?.searchable??null,bodySchema:F(m,`body`,a),querySchema:F(m,`query`,a),paramsSchema:F(m,`params`,a),responseSchema:F(m,`response`,a),filePath:t,relativePath:i,controllerIsDefaultExport:r.isDefault,appliedDecorators:u,mountedPath:f})}}}C(r,e=>{if(e.type!==`Property`||T(e.key)!==`routes`)return;let t=e.value;S(t)&&(t.type===`FunctionExpression`||t.type===`ArrowFunctionExpression`)&&le(t,h)});let P=/* @__PURE__ */ new Set,I=/* @__PURE__ */ new Set;C(r,e=>{let t=e.type===`Property`&&T(e.key)===`contributors`,n=e.type===`MethodDefinition`&&T(e.key)===`contributors`;(t||n)&&I.add(e)});let L=e=>e.properties??e.body?.body??[];C(r,e=>{if(e.type!==`ObjectExpression`&&e.type!==`ClassDeclaration`)return;let t=L(e);if(t.map(e=>T(e.key)).includes(`routes`))for(let e of t)T(e.key)===`contributors`&&P.add(e)});let R=/* @__PURE__ */ new Set;C(r,e=>{let t=e.type===`CallExpression`?E(e):e.type===`NewExpression`?T(e.callee):null;if(t===null||!oe(t,a))return;let n=O(e);if(n)for(let e of n.properties??[])e.type===`Property`&&T(e.key)===`contributors`&&R.add(e)});let z=e=>{if(e.size===0)return null;let n=[],r=!0;for(let t of e){let e=se(t,a);e.resolved||(r=!1),n.push(...e.refs)}return{refs:n,resolved:r,filePath:t}},B=z(P),V=z(R);return{classes:o,tokens:s,injects:c,pluginsAndAdapters:l,contextKeys:u,routeFlags:d,routes:p,moduleMounts:h,globPatterns:/\.module\.[mc]?[tj]sx?$/.test(t)?g:[],moduleContributors:B,appContributors:V,hasNonDecoratorContributors:I.size>P.size+R.size}}function le(e,t){let n=[],r=[];C(e.body,e=>{if(e.type!==`Property`)return;let t=T(e.key);if(t===`path`){let t=w(e.value);t!==null&&n.push(t)}else if(t===`controller`){let t=T(e.value);t&&/^[A-Z]/.test(t)&&r.push(t)}});let i=Math.min(n.length,r.length);for(let e=0;e<i;e++)t.push({controller:r[e],mountPath:n[e]})}const L=[`Service`,`Controller`,`Repository`,`Injectable`,`Component`,`Module`],R=[`.ts`,`.tsx`,`.mts`,`.cts`],z=[`node_modules`,`.kickjs`,`dist`,`build`,`.test.`,`.spec.`,`.d.ts`],B=new RegExp(String.raw`@(${L.join(`|`)})\s*\([^)]*\)`+String.raw`(?:\s*@[A-Z]\w*(?:\s*\([^)]*\))?)*`+String.raw`\s*export\s+(default\s+)?(?:abstract\s+)?class\s+(\w+)`,`g`),V=new RegExp(String.raw`export\s+(default\s+)?(?:abstract\s+)?class\s+(\w+)`+String.raw`(?:\s+extends\s+\w+(?:<[^>]*>)?)?`+String.raw`\s+implements\s+[^{]*\bAppModule\b`,`g`),ue=/export\s+const\s+(\w+)\s*(?::\s*[^=]+)?=\s*defineModule\s*(?:<[^>]*>)?\s*\(/g,de=/(?:export\s+)?const\s+(\w+)\s*(?::\s*[^=]+)?=\s*createToken\s*(?:<[^>]*>)?\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,fe=/createToken\s*(?:<[^>]*>)?\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,pe=/@Inject\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,H=/\b(defineAdapter|definePlugin)\s*(?:<[^>]*>)?\s*\(/g,U=/(?:(?:export\s+)?(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*(?::[^=]+)?=\s*)?\b(?:defineContextDecorator|defineHttpContextDecorator)\s*(?:\.withParams\s*<(?:[^<>]|<[^<>]*>)*>\s*\(\s*\))?\s*(?:<(?:[^<>]|<[^<>]*>)*>)?\s*\(/g,me=new RegExp(String.raw`export\s+(?:default\s+)?(?:abstract\s+)?class\s+(\w+)`+String.raw`(?:\s+extends\s+\w+(?:<[^>]*>)?)?`+String.raw`\s+implements\s+[^{]*\bAppAdapter\b`,`g`),he=/\bname\s*(?::\s*[^=]+)?=\s*['"`]([^'"`]+)['"`]/,W=new RegExp(String.raw`@(${[`Get`,`Post`,`Put`,`Delete`,`Patch`].join(`|`)})\s*\(`,`g`);function G(e,t){let n=1;for(let r=t+1;r<e.length;r++){let t=e[r];if(t===`(`)n++;else if(t===`)`&&(n--,n===0))return r}return-1}function ge(e,t){let n=t;for(;n<e.length;){for(;n<e.length&&/\s/.test(e[n]);)n++;if(e[n]!==`@`)break;let t=e.slice(n).match(/^@([A-Z]\w*)/);if(!t)break;for(n+=t[0].length;n<e.length&&/\s/.test(e[n]);)n++;if(e[n]===`(`){let t=G(e,n);if(t<0)return null;n=t+1}}for(;n<e.length&&/\s/.test(e[n]);)n++;for(let t of[`public`,`private`,`protected`])if(e.slice(n,n+t.length)===t&&/\s/.test(e.charAt(n+t.length))){for(n+=t.length;n<e.length&&/\s/.test(e[n]);)n++;break}if(e.slice(n,n+5)===`async`&&/\s/.test(e.charAt(n+5)))for(n+=5;n<e.length&&/\s/.test(e[n]);)n++;let r=e.slice(n).match(/^([a-zA-Z_]\w*)\s*\(/);return r?{methodName:r[1],endPos:n+r[0].length}:null}function _e(e){return(e.match(/:([a-zA-Z_]\w*)/g)??[]).map(e=>e.slice(1))}function ve(e,t){let n=e.endsWith(`/`)?e.slice(0,-1):e;return!t||t===`/`?n||`/`:n+(t.startsWith(`/`)?t:`/`+t)||`/`}const ye=/\b(?:public\s+|private\s+|protected\s+)?routes\s*\([^)]*\)\s*(?::\s*[A-Za-z_][\w<>[\]\s,|]*\s*)?\{/g,be=/\bpath\s*:\s*['"`]([^'"`]*)['"`]/g,xe=/\bcontroller\s*:\s*([A-Z]\w*)\b/g,K=/\bimport\.meta\.glob\s*\(/g;function Se(e){let t=[];for(K.lastIndex=0;K.exec(e)!==null;){let n=K.lastIndex-1,r=G(e,n);if(r<0)continue;let i=e.slice(n+1,r),a=/['"`]([^'"`]+)['"`]/g,o;for(;(o=a.exec(i))!==null;)t.push(o[1])}return t}function Ce(e){let t=e.replace(/[.+^$()|[\]\\]/g,`\\$&`).replace(/\?/g,`.`).replace(/\*\*\//g,`___DOUBLESTAR_SLASH___`).replace(/\*\*/g,`___DOUBLESTAR___`).replace(/\*/g,`[^/]*`).replace(/___DOUBLESTAR_SLASH___/g,`(?:.+/)?`).replace(/___DOUBLESTAR___/g,`.*`);return RegExp(`^`+t+`$`)}function we(e,t){let n=e.startsWith(`./`)?e:`./`+e,r=!1;for(let e of t){let t=e.startsWith(`!`);Ce(t?e.slice(1):e).test(n)&&(r=!t)}return r}function Te(e){let t=[];ye.lastIndex=0;let n;for(;(n=ye.exec(e))!==null;){let r=e.indexOf(`{`,n.index+n[0].length-1);if(r<0)continue;let i=Ie(e,r);if(i<0)continue;let a=e.slice(r+1,i),o=[];be.lastIndex=0;let s;for(;(s=be.exec(a))!==null;)o.push(s[1]??``);let c=[];xe.lastIndex=0;let l;for(;(l=xe.exec(a))!==null;)c.push(l[1]);let u=Math.min(o.length,c.length);for(let e=0;e<u;e++)t.push({controller:c[e],mountPath:o[e]})}return t}function q(e,t){let n=new RegExp(String.raw`\b${t}\s*:\s*([A-Za-z_$][\w$]*)`,`g`).exec(e);return n?n[1]:null}function J(e,t){let n=Ee(e,t);return n===null?new RegExp(String.raw`(?:^|\n)\s*const\s+${t}\b`).test(e)?{identifier:t,source:null,unexported:!0}:{identifier:t,source:null}:{identifier:t,source:n}}function Ee(e,t){let n=new RegExp(String.raw`import\s*(?:type\s+)?\{[^}]*\b${t}\b[^}]*\}\s*from\s*['"\`]([^'"\`]+)['"\`]`).exec(e);if(n)return n[1];let r=new RegExp(String.raw`import\s+(?:type\s+)?${t}\s+from\s*['"\`]([^'"\`]+)['"\`]`).exec(e);if(r)return r[1];let i=new RegExp(String.raw`import\s*\*\s*as\s+${t}\s+from\s*['"\`]([^'"\`]+)['"\`]`).exec(e);return i?i[1]:new RegExp(String.raw`(?:^|\n)\s*export\s+const\s+${t}\b|export\s*\{[^}]*(?<!\bas\s+)\b${t}\b(?!\s+as\b)[^}]*\}(?!\s*from)`).test(e)?``:null}function De(e,t){let n=/@ApiQueryParams\s*\(\s*([\s\S]*?)\s*\)\s*$/.exec(e);if(!n){let n=/@ApiQueryParams\s*\(([\s\S]*?)\)/.exec(e);return n?Oe(n[1].trim(),t):null}return Oe(n[1].trim(),t)}function Oe(e,t){if(e.startsWith(`{`))return Ae(e);let n=/^([A-Za-z_]\w*)/.exec(e);if(n){let e=n[1],r=new RegExp(String.raw`const\s+${e}\s*(?::\s*[^=]+)?=\s*(\{[\s\S]*?\n\})`,`m`).exec(t);if(r)return Ae(r[1])}return{filterable:[],sortable:[],searchable:[]}}function ke(e,t){let n=new RegExp(String.raw`${t}\s*:\s*\[([\s\S]*?)\]`).exec(e);return n?Array.from(n[1].matchAll(/['"`]([^'"`]+)['"`]/g)).map(e=>e[1]):[]}function Ae(e){return{filterable:ke(e,`filterable`),sortable:ke(e,`sortable`),searchable:ke(e,`searchable`)}}async function je(e,t){let n=t.extensions??R,a=t.exclude??z,o=[],s;try{s=await u(e,{withFileTypes:!0,encoding:`utf-8`})}catch{return o}for(let c of s){let s=r(e,c.name),l=i(t.cwd,s);a.some(e=>l.includes(e))||(c.isDirectory()?o.push(...await je(s,t)):c.isFile()&&n.some(e=>c.name.endsWith(e))&&o.push(s))}return o}function Y(e,t){return i(t,e).split(o).join(`/`)}function Me(e,t,n){let r=[],i=Y(t,n);B.lastIndex=0;let a;for(;(a=B.exec(e))!==null;){let[,e,n,o]=a;r.push({className:o,decorator:e,filePath:t,relativePath:i,isDefault:!!n})}V.lastIndex=0;let o;for(;(o=V.exec(e))!==null;){let[,e,n]=o;r.some(e=>e.className===n&&e.filePath===t)||r.push({className:n,decorator:`Module`,filePath:t,relativePath:i,isDefault:!!e})}ue.lastIndex=0;let s;for(;(s=ue.exec(e))!==null;){let[,e]=s;r.some(n=>n.className===e&&n.filePath===t)||r.push({className:e,decorator:`Module`,filePath:t,relativePath:i,isDefault:!1})}return r}function Ne(e,t,n){let r=[],i=Y(t,n),a=/* @__PURE__ */ new Set;de.lastIndex=0;let o;for(;(o=de.exec(e))!==null;){let[e,n,s]=o;a.add(e),r.push({name:s,variable:n,filePath:t,relativePath:i})}for(fe.lastIndex=0;(o=fe.exec(e))!==null;)a.has(o[0])||r.push({name:o[1],variable:null,filePath:t,relativePath:i});return r}function Pe(e,t,n,r,i=/* @__PURE__ */ new Map){let a=[];if(r.length===0)return a;let o=Y(t,n),s=[];for(let t of r){let n=new RegExp(String.raw`class\s+${t.className}\b`).exec(e);n?.index!==void 0&&s.push({cls:t,start:n.index})}s.sort((e,t)=>e.start-t.start);for(let n=0;n<s.length;n++){let{cls:r,start:c}=s[n],l=n+1<s.length?s[n+1].start:e.length,u=e.slice(c,l);W.lastIndex=0;let d;for(;(d=W.exec(u))!==null;){let n=d[1],s=d.index,c=W.lastIndex-1,l=G(u,c);if(l<0)continue;let f=u.slice(c+1,l),p=f.match(/^\s*['"`]([^'"`]*)['"`]/),m=p&&p[1].length>0?p[1]:`/`,h=ge(u,l+1);if(!h)continue;let{methodName:g,endPos:_}=h;W.lastIndex=_;let v=De(u.slice(s,_),e),y=q(f,`body`),b=q(f,`query`),ee=q(f,`params`),x=q(f,`response`),S=i.get(r.className)??``,C=S?ve(S,m):m;a.push({controller:r.className,method:g,httpMethod:n.toUpperCase(),path:m,pathParams:_e(C),queryFilterable:v?.filterable??null,querySortable:v?.sortable??null,querySearchable:v?.searchable??null,bodySchema:y?J(e,y):null,querySchema:b?J(e,b):null,paramsSchema:ee?J(e,ee):null,responseSchema:x?J(e,x):null,filePath:t,relativePath:o,controllerIsDefaultExport:r.isDefault,mountedPath:C})}}return a}function Fe(e,t,n){let r=[],i=Y(t,n);pe.lastIndex=0;let a;for(;(a=pe.exec(e))!==null;)r.push({name:a[1],filePath:t,relativePath:i});return r}function Ie(e,t){let n=1;for(let r=t+1;r<e.length;r++){let t=e[r];if(t===`{`)n++;else if(t===`}`&&(n--,n===0))return r}return-1}function Le(e,t,n){let r=[],i=Y(t,n),a=/* @__PURE__ */ new Set;H.lastIndex=0;let o;for(;(o=H.exec(e))!==null;){let n=o[1],s=H.lastIndex-1,c=G(e,s);if(c<0)continue;let l=e.slice(s+1,c),u=/\bname\s*:\s*['"`]([^'"`]+)['"`]/.exec(l);if(!u)continue;let d=u[1],f=`${n}::${d}::${t}`;a.has(f)||(a.add(f),r.push({kind:n===`definePlugin`?`plugin`:`adapter`,name:d,filePath:t,relativePath:i}))}me.lastIndex=0;let s;for(;(s=me.exec(e))!==null;){let n=s.index,o=e.indexOf(`{`,n);if(o<0)continue;let c=Ie(e,o);if(c<0)continue;let l=e.slice(o+1,c),u=he.exec(l);if(!u)continue;let d=u[1],f=`class::${d}::${t}`;a.has(f)||(a.add(f),r.push({kind:`adapter`,name:d,filePath:t,relativePath:i}))}return r}function Re(e,t,n){let r=[],i=Y(t,n),a=/* @__PURE__ */ new Set;U.lastIndex=0;let o;for(;(o=U.exec(e))!==null;){let n=U.lastIndex-1,s=G(e,n);if(s<0)continue;let c=e.slice(n+1,s),l=/\bkey\s*:\s*['"`]([^'"`]+)['"`]/.exec(c);if(!l)continue;let u=l[1];a.has(u)||(a.add(u),r.push({key:u,exportName:o[1]??null,filePath:t,relativePath:i}))}return r}const ze=[`src/config/index.ts`,`src/config/env.ts`,`src/config.ts`,`src/env.ts`];async function Be(e,t){let n=t===`src/env.ts`?ze:[t];for(let t of n){let n=a(e,t),r;try{r=await l(n,`utf-8`)}catch{continue}if((/\bdefineEnv\s*\(/.test(r)||/\bfrom(Zod|Valibot|Yup)\s*\(/.test(r))&&/export\s+default\b/.test(r)&&!/export\s+default\s+loadEnvFromSchema\s*\(/.test(r))return{filePath:n,relativePath:Y(n,e)}}return null}function Ve(e){let t=/* @__PURE__ */ new Map;for(let n of e){let e=t.get(n.className)??[];e.push(n),t.set(n.className,e)}let n=[];for(let[e,r]of t)new Set(r.map(e=>e.filePath)).size>1&&n.push({className:e,classes:r});return n.sort((e,t)=>e.className.localeCompare(t.className)),n}const He=/* @__PURE__ */ new Set([`Controller`,`Service`,`Repository`,`Injectable`,`Component`,`Module`,`Middleware`,`ApiQueryParams`,`Public`,`Roles`,`Cron`,`Cacheable`,`CacheEvict`,`FileUpload`,`Asset`,`Builder`,`PostConstruct`,`PreDestroy`,`Value`,`Inject`,`Autowired`]);function X(e){return e.split(o).join(`/`).replace(/\.[mc]?[tj]sx?$/,``)}function Ue(e,t,r){let i=X(r);if(t===``)return i===X(e);if(t.startsWith(`.`)){let r=X(a(n(e),t));return i===r||i===`${r}/index`}let o=t.replace(/^[@~#]\//,``);if(o===t&&t.startsWith(`@`))return!1;let s=X(o);return i===s||i.endsWith(`/${s}`)}function We(e){let t=/* @__PURE__ */ new Map,n=/* @__PURE__ */ new Map;for(let t of e)if(t)for(let{controller:e}of t.moduleMounts)n.set(e,(n.get(e)??0)+1);for(let r of e)if(r?.moduleContributors)for(let{controller:e}of r.moduleMounts){if((n.get(e)??0)>1){t.set(e,`ambiguous`);continue}let i=t.get(e);t.set(e,i===void 0?r.moduleContributors:`ambiguous`)}return t}function Ge(e,t,n,r=/* @__PURE__ */ new Map,i=[]){if(n){for(let t of e)t.contextKeys=null;return}let a=/* @__PURE__ */ new Map;for(let e of t){if(!e.exportName)continue;let t=a.get(e.exportName);t?t.push(e):a.set(e.exportName,[e])}for(let t of e){let e=t.appliedDecorators;if(!e){t.contextKeys=null;continue}let n=/* @__PURE__ */ new Set,o=!0,s=(e,t)=>{if(t.source===null)return null;let n=(a.get(t.identifier)??[]).filter(n=>Ue(e,t.source,n.filePath));return n.length===1?n[0].key:null};for(let r of e){if(He.has(r.identifier))continue;let e=s(t.filePath,r);if(e===null){o=!1;break}n.add(e)}if(o)for(let e of i){if(!e.resolved){o=!1;break}for(let t of e.refs){let r=s(e.filePath,t);if(r===null){o=!1;break}n.add(r)}if(!o)break}if(o){let e=r.get(t.controller);if(e===`ambiguous`)o=!1;else if(e){if(!e.resolved)o=!1;else for(let t of e.refs){let r=s(e.filePath,t);if(r===null){o=!1;break}n.add(r)}}}t.contextKeys=o?[...n].toSorted():null}}const Ke=/\bcontributors\s*(?::|\()/;function qe(e,t,n){return I(e,t,n)||{...Je(e,t,n),hasNonDecoratorContributors:Ke.test(e)}}function Je(e,t,n){let r=Me(e,t,n);return{classes:r,tokens:Ne(e,t,n),injects:Fe(e,t,n),pluginsAndAdapters:Le(e,t,n),routeFlags:[],contextKeys:Re(e,t,n),routes:Pe(e,t,n,r,/* @__PURE__ */ new Map),moduleMounts:Te(e),globPatterns:/\.module\.[mc]?[tj]sx?$/.test(t)?Se(e):[],hasNonDecoratorContributors:!1}}async function Ye(e,t,n){let r=n?await y.signature(e):null;if(n&&r){let t=n.get(e,r);if(t)return n.set(e,r,t),t}let i;try{i=await l(e,`utf-8`)}catch{return null}let a=qe(i,e,t);return n&&r&&n.set(e,r,a),a}async function Xe(e,t,n){let r=[],i=0,a=Array.from({length:Math.min(t,e.length)},async()=>{for(;;){let t=i++;if(t>=e.length)return;r[t]=await n(e[t],t)}});return await Promise.all(a),r}async function Z(e){let t=(await je(a(e.root),e)).toSorted(),n=e.cacheDir?await y.load(e.cacheDir):null,r=$e(t,await Xe(t,16,t=>Ye(t,e.cwd,n))),i=await Be(e.cwd,e.envFile??`src/env.ts`);return n&&await n.save(),{...r,env:i}}function Ze(e,t,n){let r=n.extensions??R,a=n.exclude??z;if(!e.startsWith(t+o)&&e!==t||!r.some(t=>e.endsWith(t)))return!1;let s=i(n.cwd,e);return!a.some(e=>s.includes(e))}async function Qe(e,t){if(!e.cacheDir)return Z(e);let n=a(e.root),r=await y.load(e.cacheDir),i=r.cachedFiles();if(i.length===0)return Z(e);let o=new Set(t.removed.map(t=>a(e.cwd,t))),s=t.changed.map(t=>a(e.cwd,t)).filter(t=>!o.has(t)&&Ze(t,n,e)),c=new Set(s),u=new Set(i);for(let e of c)u.add(e);for(let e of o)u.delete(e);let d=/* @__PURE__ */ new Map;await Xe(s,16,async t=>{if(!u.has(t))return;let n=await y.signature(t),i;try{i=await l(t,`utf-8`)}catch{u.delete(t);return}let a=qe(i,t,e.cwd);d.set(t,a),n&&r.set(t,n,a)});let f=[...u].toSorted(),p=$e(f,f.map(e=>d.get(e)||(r.carry(e),r.peek(e)))),m=await Be(e.cwd,e.envFile??`src/env.ts`);return await r.save(),{...p,env:m}}function $e(e,t){let n=[],r=[],i=[],a=[],s=[],c=[],l=[],u=/* @__PURE__ */ new Map;for(let e of t)if(e)for(let{controller:t,mountPath:n}of e.moduleMounts)u.has(t)||u.set(t,n);let d=/* @__PURE__ */ new Map;for(let o=0;o<e.length;o++){let f=t[o];if(f){n.push(...f.classes),i.push(...f.tokens),a.push(...f.injects),s.push(...f.pluginsAndAdapters),c.push(...f.contextKeys),l.push(...f.routeFlags),f.globPatterns.length>0&&d.set(e[o],f.globPatterns);for(let e of f.routes){let t=u.get(e.controller);if(t){let n=ve(t,e.path);r.push({...e,pathParams:_e(n),mountedPath:n})}else r.push({...e,mountedPath:e.mountedPath??e.path})}}}Ge(r,c,t.some(e=>e?.hasNonDecoratorContributors===!0),We(t),t.flatMap(e=>e?.appContributors?[e.appContributors]:[]));let f=[];for(let[e,t]of d){if(!/\.module\.[mc]?[tj]sx?$/.test(e)||t.length===0)continue;let r=e.replaceAll(o,`/`),i=r.slice(0,r.lastIndexOf(`/`));for(let a of n){if(a.decorator===`Module`)continue;let n=a.filePath.replaceAll(o,`/`);n.startsWith(i+`/`)&&n!==r&&(we(n.slice(i.length+1),t)||f.push({className:a.className,filePath:a.filePath,relativePath:a.relativePath,moduleFilePath:e,decorator:a.decorator}))}}n.sort((e,t)=>e.className===t.className?e.relativePath.localeCompare(t.relativePath):e.className.localeCompare(t.className)),i.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath)),a.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath)),r.sort((e,t)=>e.controller.localeCompare(t.controller)||e.method.localeCompare(t.method)),s.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath)),c.sort((e,t)=>e.key.localeCompare(t.key)||e.relativePath.localeCompare(t.relativePath));let p=Ve(n);return f.sort((e,t)=>e.relativePath.localeCompare(t.relativePath)||e.className.localeCompare(t.className)),{classes:n,routes:r,tokens:i,injects:a,collisions:p,pluginsAndAdapters:s,contextKeys:c,routeFlags:l,orphanedClasses:f}}function et(e){let t=e.lastIndexOf(`.`);return t<=0?{stem:e,ext:``}:{stem:e.slice(0,t),ext:e.slice(t+1)}}function tt(e){let t=e.replaceAll(`\\`,`/`),{stem:n,ext:r}=et(t.slice(t.lastIndexOf(`/`)+1)),i=r||`ts`,a=n.lastIndexOf(`.`);return a>0?`./**/*.${n.slice(a+1)}.${i}`:`./**/*.${i}`}function nt(e){let t=/* @__PURE__ */ new Set;for(let n of e)t.add(tt(n.relativePath));return[...t].toSorted()}function rt(e,t){let n=0,r=null;for(let i=t;i<e.length;i++){let t=e[i];if(r){if(t===`\\`){i++;continue}t===r&&(r=null)}else if(t===`'`||t===`"`||t==="`")r=t;else if(t===`(`)n++;else if(t===`)`&&(n--,n===0))return i}return-1}function it(e,t,n,r){let i=null;for(let a=n;a<r;a++){let n=e[a];if(i){if(n===`\\`){a++;continue}n===i&&(i=null)}else if(n===`'`||n===`"`||n==="`")i=n;else if(n===t)return a}return-1}function at(e,t){let n=0,r=null;for(let i=t;i<e.length;i++){let t=e[i];if(r){if(t===`\\`){i++;continue}t===r&&(r=null)}else if(t===`'`||t===`"`||t==="`")r=t;else if(t===`[`)n++;else if(t===`]`&&(n--,n===0))return i}return-1}function ot(e){let t=/\bimport\.meta\.glob\s*\(/g,n=[],r;for(;(r=t.exec(e))!==null;){let t=e.indexOf(`(`,r.index);if(t<0)continue;let i=rt(e,t);i<0||n.push({start:r.index,open:t,close:i})}return n}function st(e,t){let n=ot(e);if(n.length===0)return null;let r=n.find(t=>/\beager\s*:\s*true\b/.test(e.slice(t.open,t.close+1)))??n[0],i=e.slice(r.start,r.close+1),a=new Set(Se(i).map(e=>e.startsWith(`!`)?e.slice(1):e)),o=t.filter(e=>!a.has(e));if(o.length===0)return null;let s=o.map(e=>`'${e}'`).join(`, `),c=it(e,`[`,r.open,r.close);if(c>=0){let t=at(e,c);if(t<0||t>r.close)return null;let n=e.slice(0,t);return n+(/[[,]\s*$/.test(n)?``:`, `)+s+e.slice(t)}let l=/(['"`])((?:\\.|(?!\1).)*)\1/,u=e.slice(r.open+1,r.close),d=l.exec(u);if(!d)return null;let f=r.open+1+d.index,p=f+d[0].length;return e.slice(0,f)+`[${d[0]}, ${s}]`+e.slice(p)}const Q="/* eslint-disable */\n// AUTO-GENERATED by `kick typegen`. DO NOT EDIT.\n// Re-run with `kick typegen` or rely on `kick dev` to refresh.\n",ct=/* @__PURE__ */ new Set([`Service`,`Repository`,`Injectable`,`Component`]);var lt=class extends Error{collisions;constructor(e){super(ut(e)),this.name=`TokenCollisionError`,this.collisions=e}};function ut(e){let t=[`kick typegen: token collision detected`];for(let n of e){t.push(``),t.push(` ${n.classes.length} classes named '${n.className}':`);for(let e of n.classes)t.push(` - ${e.relativePath}`)}return t.push(``),t.push(`Resolutions:`),t.push(` (a) Rename one of the classes`),t.push(` (b) Use createToken<T>('namespaced/Name') and import the token explicitly — see @forinda/kickjs`),t.push(` (c) Pass --allow-duplicates to namespace the registry keys automatically`),t.push(` (e.g. 'modules/users/UserService' instead of 'UserService')`),t.join(`
|
|
12
12
|
`)}function dt(e,t){let r=n(t),a=i(r,e).split(o).join(`/`);return a=a.replace(/\.(ts|tsx|mts|cts)$/i,``),a.startsWith(`.`)||(a=`./`+a),a}function ft(e){let t=e.relativePath.replace(/^src\//,``).replace(/\.(ts|tsx|mts|cts)$/i,``).split(`/`);t.pop();let n=t.join(`/`);return n?`${n}/${e.className}`:e.className}function pt(e,t,n){let r=/* @__PURE__ */ new Set,i=[];for(let a of e){if(!ct.has(a.decorator))continue;let e=n.has(a.className)?ft(a):a.className;if(r.has(e))continue;r.add(e);let o=dt(a.filePath,t),s=a.isDefault?`import('${o}').default`:`import('${o}').${a.className}`;i.push(` '${e}': ${s}`)}let a=i.length?i.join(`
|
|
13
13
|
`):" // (no services discovered yet — run `kick g service <name>` to add one)";return`${Q}
|
|
14
14
|
declare module '@forinda/kickjs' {
|
|
@@ -99,9 +99,9 @@ ${At(n,` `)}
|
|
|
99
99
|
|
|
100
100
|
export {}
|
|
101
101
|
`}const kt=Symbol(`asset-leaf`);function At(e,t){let n=Object.keys(e).toSorted(),r=[];for(let i of n){let n=e[i],a=jt(i)?i:JSON.stringify(i);n===kt?r.push(`${t}${a}: () => string`):(r.push(`${t}${a}: {`),r.push(At(n,`${t} `)),r.push(`${t}}`))}return r.join(`
|
|
102
|
-
`)}function jt(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function Mt(e){try{return s(e).isDirectory()}catch{return!1}}var Nt=/* @__PURE__ */ e({runTypegen:()=>Ft,sweepStaleTypegen:()=>zt,watchTypegen:()=>Rt,writeTypegenArtifacts:()=>$});function Pt(e){let t=e.cwd??process.cwd();return{cwd:t,srcDir:a(t,e.srcDir??`src`),outDir:a(t,e.outDir??`.kickjs/types`),silent:e.silent??!1,allowDuplicates:e.allowDuplicates??!1,schemaValidator:e.schemaValidator??!1,envFile:e.envFile??`src/env.ts`}}async function Ft(e={}){let{cwd:t,srcDir:n,outDir:r,silent:i,allowDuplicates:o,envFile:s}=Pt(e),c=Date.now(),l={root:n,cwd:t,cacheDir:e.noCache?void 0:a(t,`.kickjs`,`cache`),envFile:s===!1?void 0:s},u=e.changedFiles?await Qe(l,e.changedFiles):await Z(l);if(u.collisions.length>0&&!o)throw new lt(u.collisions);let d=Dt(e.assetMap,t),f=[],p=[];if(e.runPlugins!==!1){try{let{runAllPluginTypegens:n}=await import(`./run-plugins-
|
|
102
|
+
`)}function jt(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function Mt(e){try{return s(e).isDirectory()}catch{return!1}}var Nt=/* @__PURE__ */ e({runTypegen:()=>Ft,sweepStaleTypegen:()=>zt,watchTypegen:()=>Rt,writeTypegenArtifacts:()=>$});function Pt(e){let t=e.cwd??process.cwd();return{cwd:t,srcDir:a(t,e.srcDir??`src`),outDir:a(t,e.outDir??`.kickjs/types`),silent:e.silent??!1,allowDuplicates:e.allowDuplicates??!1,schemaValidator:e.schemaValidator??!1,envFile:e.envFile??`src/env.ts`}}async function Ft(e={}){let{cwd:t,srcDir:n,outDir:r,silent:i,allowDuplicates:o,envFile:s}=Pt(e),c=Date.now(),l={root:n,cwd:t,cacheDir:e.noCache?void 0:a(t,`.kickjs`,`cache`),envFile:s===!1?void 0:s},u=e.changedFiles?await Qe(l,e.changedFiles):await Z(l);if(u.collisions.length>0&&!o)throw new lt(u.collisions);let d=Dt(e.assetMap,t),f=[],p=[];if(e.runPlugins!==!1){try{let{runAllPluginTypegens:n}=await import(`./run-plugins-9tjbMqS6.mjs`).then(e=>e.n),{loadKickConfig:r}=await import(`./config-DbnBakh8.mjs`).then(e=>e.n);f=await n({cwd:t,config:await r(t),silent:!0,changedFiles:e.changedFiles})}catch(e){if(!i){let t=e instanceof Error?e.message:String(e);console.warn(` kick typegen: plugin pipeline failed (${t}) — continuing`)}}p.push(...await $(r,f,i))}let m=Tt(u.tokens),h=Lt(u,d.count,p),g=Date.now()-c;if(!i){let e=r.replace(t+`/`,``),n=h.resolvedCollisions>0?`, ${h.resolvedCollisions} collisions namespaced`:``,i=h.envWritten?`, env typed`:``,a=h.pluginEntries>0?`, ${h.pluginEntries} plugins/adapters`:``,o=h.assetEntries>0?`, ${h.assetEntries} assets`:``;if(console.log(` kick typegen → ${h.serviceTokens} services, ${h.routeEntries} routes, ${h.moduleTokens} modules${a}${o}${i}${n} → ${e} (${g}ms)`),m.length>0){console.warn(` kick typegen: ${m.length} token(s) don't match the <scope>/<area>/<key> convention:`);for(let e of m){let t=e.variable?` [${e.variable}]`:``;console.warn(` '${e.token}' (${e.filePath})${t} — ${e.reason}`),e.suggestion&&console.warn(` → suggestion: ${e.suggestion}`)}}}return u.orphanedClasses.length>0&&await It(u.orphanedClasses,{fix:e.fix??!1,silent:i}),{scan:u,result:h,tokenWarnings:m}}async function It(e,{fix:t,silent:n}){let r=/* @__PURE__ */ new Map;for(let t of e){let e=r.get(t.moduleFilePath)??[];e.push(t),r.set(t.moduleFilePath,e)}if(t){let e=0,t=[];for(let[i,a]of r){let r=nt(a);try{let a=await l(i,`utf-8`),o=st(a,r);o&&o!==a?(await p(i,o),e++,n||console.log(` kick typegen --fix: patched ${i}\n + ${r.join(`, `)}`)):t.push(i)}catch{t.push(i)}}if(!n&&(e>0&&console.log(` kick typegen --fix: updated ${e} module glob(s) — re-run typegen to pick up the now-loaded classes.`),t.length>0)){console.warn(` kick typegen --fix: could not auto-patch ${t.length} module(s) (no import.meta.glob() call found) — add the patterns by hand:`);for(let e of t){let t=r.get(e)??[];console.warn(` ${e}: ${nt(t).join(`, `)}`)}}}else if(!n){console.warn(` kick typegen: ${e.length} decorated class(es) not matched by any module's import.meta.glob():`);for(let[e,t]of r){for(let e of t)console.warn(` @${e.decorator} ${e.className} (${e.relativePath})`);let n=nt(t);console.warn(` → add to import.meta.glob([...]) in ${e}:`),console.warn(` ${n.map(e=>`'${e}'`).join(`, `)}`)}console.warn(" → or run `kick typegen --fix` to apply these automatically.")}}function Lt(e,t,n){let r=new Set(e.collisions.map(e=>e.className)),i=e.classes.filter(e=>ct.has(e.decorator)),a=_t(e.classes,e.tokens,e.injects,r);return{registryEntries:i.length,serviceTokens:new Set(a).size,moduleTokens:vt(e.classes).length,routeEntries:e.routes.length,pluginEntries:new Set(e.pluginsAndAdapters.map(e=>e.name)).size,assetEntries:t,envWritten:e.env!==null,written:n,resolvedCollisions:e.collisions.length}}async function $(e,t,i){await c(e,{recursive:!0}),await p(r(n(e),`.gitignore`),`# Auto-generated by kick typegen
|
|
103
103
|
*
|
|
104
|
-
`,`utf-8`);let a=t.filter(e=>e.outFile).map(e=>e.outFile);return await zt(e,a,t,i),a}async function Rt(e={}){let t=Pt(e),{srcDir:n,silent:r,cwd:i}=t,a={...t,allowDuplicates:!0,runPlugins:!1,noCache:e.noCache},o=process.env.KICKJS_WATCH_POLLING===`1`||process.env.KICKJS_WATCH_POLLING===`true`,[{runAllPluginTypegens:s},{loadKickConfig:c}]=await Promise.all([import(`./run-plugins-
|
|
104
|
+
`,`utf-8`);let a=t.filter(e=>e.outFile).map(e=>e.outFile);return await zt(e,a,t,i),a}async function Rt(e={}){let t=Pt(e),{srcDir:n,silent:r,cwd:i}=t,a={...t,allowDuplicates:!0,runPlugins:!1,noCache:e.noCache},o=process.env.KICKJS_WATCH_POLLING===`1`||process.env.KICKJS_WATCH_POLLING===`true`,[{runAllPluginTypegens:s},{loadKickConfig:c}]=await Promise.all([import(`./run-plugins-9tjbMqS6.mjs`).then(e=>e.n),import(`./config-DbnBakh8.mjs`).then(e=>e.n)]),l=await c(i),u=async()=>{try{await Ft({...a})}catch(e){if(r)return;if(e instanceof lt)console.error(`
|
|
105
105
|
`+e.message+`
|
|
106
106
|
`);else{let t=e instanceof Error?e.message:String(e);console.error(` kick typegen failed: ${t}`)}}},d=async()=>{try{let e=await s({cwd:i,config:l,silent:!0,watch:!0});await $(t.outDir,e,!0)}catch{}};await u(),await d();let{watch:f}=await import(`node:fs`),p=null,m=e=>{e&&/\.(ts|tsx|mts|cts)$/.test(e)&&(e.includes(`.kickjs`)||e.endsWith(`.d.ts`)||(p&&clearTimeout(p),p=setTimeout(()=>{u().then(d)},100)))};if(o){r||console.log(` kick typegen: polling mode (KICKJS_WATCH_POLLING)`);let e=setInterval(()=>{u().then(d)},2e3);return()=>clearInterval(e)}let h;try{h=f(n,{recursive:!0},(e,t)=>{m(t)})}catch(e){r||console.warn(` kick typegen: watch mode unavailable (${e?.message??e}). Falling back to polling.`);let t=setInterval(()=>{u().then(d)},2e3);return()=>clearInterval(t)}return()=>{p&&clearTimeout(p),h.close()}}async function zt(e,n,r,i){let o=/* @__PURE__ */ new Set;for(let e of n)o.add(t(e));for(let e of r)e.outFile&&o.add(t(e.outFile));let s;try{s=await u(e)}catch{return[]}let c=[];for(let t of s){if(!Bt.has(t)||o.has(t))continue;let n=a(e,t);try{if(!(await d(n)).isFile())continue;await f(n),c.push(t)}catch{}}return c.length>0&&!i&&console.log(` kick typegen: swept ${c.length} stale file(s): ${c.join(`, `)}`),c}const Bt=/* @__PURE__ */ new Set([`assets.d.ts`,`env.ts`,`routes.ts`,`registry.d.ts`,`services.d.ts`,`modules.d.ts`,`plugins.d.ts`,`augmentations.d.ts`,`index.d.ts`,`kick__augmentations.d.ts`]);export{w as C,S,j as _,Dt as a,D as b,vt as c,Ct as d,pt as f,Qe as g,Z as h,$ as i,_t as l,gt as m,Nt as n,Ot as o,St as p,Rt as r,lt as s,Ft as t,ht as u,A as v,C as w,T as x,O as y};
|
|
107
|
-
//# sourceMappingURL=typegen-
|
|
107
|
+
//# sourceMappingURL=typegen-AGdhxyRc.mjs.map
|