@forinda/kickjs-cli 5.7.0 → 5.8.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/{builtins-BIpoT6cb.mjs → builtins-CYSzLo7U.mjs} +2 -2
- package/dist/cli.mjs +116 -116
- package/dist/{config-BQUzGk6m.mjs → config-ierHW69f.mjs} +3 -3
- package/dist/{config-BQUzGk6m.mjs.map → config-ierHW69f.mjs.map} +1 -1
- package/dist/{generator-extension-Cd2DU_XX.mjs → generator-extension-BXLt3Tp_.mjs} +60 -60
- package/dist/{generator-extension-Cd2DU_XX.mjs.map → generator-extension-BXLt3Tp_.mjs.map} +1 -1
- package/dist/index.d.mts +41 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/{plugin-B6ANfh7O.mjs → plugin-D_nBy6VP.mjs} +3 -3
- package/dist/{plugin-B6ANfh7O.mjs.map → plugin-D_nBy6VP.mjs.map} +1 -1
- package/dist/{project-root-Dsxhm7OL.mjs → project-root-CqGZOrRR.mjs} +3 -3
- package/dist/{project-root-Dsxhm7OL.mjs.map → project-root-CqGZOrRR.mjs.map} +1 -1
- package/dist/{rolldown-runtime-jjtMmVBF.mjs → rolldown-runtime-B8-Ifyj3.mjs} +1 -1
- package/dist/{run-plugins-DaO1FtZb.mjs → run-plugins-Cvgyo_th.mjs} +6 -6
- package/dist/run-plugins-Cvgyo_th.mjs.map +1 -0
- package/dist/{typegen-D-1Q9yBD.mjs → typegen-C3G375CR.mjs} +4 -4
- package/dist/{typegen-D-1Q9yBD.mjs.map → typegen-C3G375CR.mjs.map} +1 -1
- package/dist/{types-Du3p7CZ5.mjs → types-Kj2ldTnQ.mjs} +2 -2
- package/dist/types-Kj2ldTnQ.mjs.map +1 -0
- package/package.json +5 -5
- package/dist/run-plugins-DaO1FtZb.mjs.map +0 -1
- package/dist/types-Du3p7CZ5.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @forinda/kickjs-cli v5.
|
|
2
|
+
* @forinda/kickjs-cli v5.8.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-
|
|
11
|
+
import{t as e}from"./rolldown-runtime-B8-Ifyj3.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{globSync as m}from"glob";import{groupAssetKeys as h}from"@forinda/kickjs";const g=[`Service`,`Controller`,`Repository`,`Injectable`,`Component`,`Module`],_=[`.ts`,`.tsx`,`.mts`,`.cts`],v=[`node_modules`,`.kickjs`,`dist`,`build`,`.test.`,`.spec.`,`.d.ts`],y=new RegExp(String.raw`@(${g.join(`|`)})\s*\([^)]*\)`+String.raw`(?:\s*@[A-Z]\w*(?:\s*\([^)]*\))?)*`+String.raw`\s*export\s+(default\s+)?(?:abstract\s+)?class\s+(\w+)`,`g`),b=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`),x=/(?:export\s+)?const\s+(\w+)\s*(?::\s*[^=]+)?=\s*createToken\s*(?:<[^>]*>)?\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,S=/createToken\s*(?:<[^>]*>)?\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,C=/@Inject\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g,w=/\b(defineAdapter|definePlugin)\s*(?:<[^>]*>)?\s*\(/g,T=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`),ee=/\bname\s*(?::\s*[^=]+)?=\s*['"`]([^'"`]+)['"`]/,E=/\bdefineAugmentation\s*\(\s*['"`]([^'"`]+)['"`]\s*(,\s*\{)?/g,D=new RegExp(String.raw`@(${[`Get`,`Post`,`Put`,`Delete`,`Patch`].join(`|`)})\s*\(`,`g`);function O(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 te(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=O(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 ne(e){return(e.match(/:([a-zA-Z_]\w*)/g)??[]).map(e=>e.slice(1))}function k(e,t){let n=e.endsWith(`/`)?e.slice(0,-1):e;return!t||t===`/`?n||`/`:n+(t.startsWith(`/`)?t:`/`+t)||`/`}const A=/\b(?:public\s+|private\s+|protected\s+)?routes\s*\([^)]*\)\s*(?::\s*[A-Za-z_][\w<>[\]\s,|]*\s*)?\{/g,j=/\bpath\s*:\s*['"`]([^'"`]*)['"`]/g,M=/\bcontroller\s*:\s*([A-Z]\w*)\b/g,N=/\bimport\.meta\.glob\s*\(/g;function P(e){let t=[];for(N.lastIndex=0;N.exec(e)!==null;){let n=N.lastIndex-1,r=O(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 re(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 ie(e,t){let n=e.startsWith(`./`)?e:`./`+e,r=!1;for(let e of t){let t=e.startsWith(`!`);re(t?e.slice(1):e).test(n)&&(r=!t)}return r}function ae(e){let t=[];A.lastIndex=0;let n;for(;(n=A.exec(e))!==null;){let r=e.indexOf(`{`,n.index+n[0].length-1);if(r<0)continue;let i=H(e,r);if(i<0)continue;let a=e.slice(r+1,i),o=[];j.lastIndex=0;let s;for(;(s=j.exec(a))!==null;)o.push(s[1]??``);let c=[];M.lastIndex=0;let l;for(;(l=M.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 F(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 I(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`).test(e)?``:null}function oe(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?L(n[1].trim(),t):null}return L(n[1].trim(),t)}function L(e,t){if(e.startsWith(`{`))return z(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 z(r[1])}return{filterable:[],sortable:[],searchable:[]}}function R(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 z(e){return{filterable:R(e,`filterable`),sortable:R(e,`sortable`),searchable:R(e,`searchable`)}}async function B(e,t){let n=t.extensions??_,a=t.exclude??v,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 B(s,t)):c.isFile()&&n.some(e=>c.name.endsWith(e))&&o.push(s))}return o}function V(e,t){return i(t,e).split(o).join(`/`)}function se(e,t,n){let r=[],i=V(t,n);y.lastIndex=0;let a;for(;(a=y.exec(e))!==null;){let[,e,n,o]=a;r.push({className:o,decorator:e,filePath:t,relativePath:i,isDefault:!!n})}b.lastIndex=0;let o;for(;(o=b.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})}return r}function ce(e,t,n){let r=[],i=V(t,n),a=new Set;x.lastIndex=0;let o;for(;(o=x.exec(e))!==null;){let[e,n,s]=o;a.add(e),r.push({name:s,variable:n,filePath:t,relativePath:i})}for(S.lastIndex=0;(o=S.exec(e))!==null;)a.has(o[0])||r.push({name:o[1],variable:null,filePath:t,relativePath:i});return r}function le(e,t,n,r,i=new Map){let a=[];if(r.length===0)return a;let o=V(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);D.lastIndex=0;let d;for(;(d=D.exec(u))!==null;){let n=d[1],s=d.index,c=D.lastIndex-1,l=O(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=te(u,l+1);if(!h)continue;let{methodName:g,endPos:_}=h;D.lastIndex=_;let v=oe(u.slice(s,_),e),y=F(f,`body`),b=F(f,`query`),x=F(f,`params`),S=i.get(r.className)??``,C=S?k(S,m):m;a.push({controller:r.className,method:g,httpMethod:n.toUpperCase(),path:m,pathParams:ne(C),queryFilterable:v?.filterable??null,querySortable:v?.sortable??null,querySearchable:v?.searchable??null,bodySchema:y?{identifier:y,source:I(e,y)}:null,querySchema:b?{identifier:b,source:I(e,b)}:null,paramsSchema:x?{identifier:x,source:I(e,x)}:null,filePath:t,relativePath:o})}}return a}function ue(e,t,n){let r=[],i=V(t,n);C.lastIndex=0;let a;for(;(a=C.exec(e))!==null;)r.push({name:a[1],filePath:t,relativePath:i});return r}function H(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 de(e,t,n){let r=[],i=V(t,n),a=new Set;w.lastIndex=0;let o;for(;(o=w.exec(e))!==null;){let n=o[1],s=w.lastIndex-1,c=O(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}))}T.lastIndex=0;let s;for(;(s=T.exec(e))!==null;){let n=s.index,o=e.indexOf(`{`,n);if(o<0)continue;let c=H(e,o);if(c<0)continue;let l=e.slice(o+1,c),u=ee.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 fe(e,t,n){let r=[],i=V(t,n);E.lastIndex=0;let a;for(;(a=E.exec(e))!==null;){let n=a[1],o=null,s=null;if(a[2]){let t=e.indexOf(`{`,a.index+a[0].length-1);if(t>=0){let n=H(e,t);if(n>=0){let r=e.slice(t+1,n);o=U(r,`description`),s=U(r,`example`)}}}r.push({name:n,description:o,example:s,filePath:t,relativePath:i})}return r}function U(e,t){let n=RegExp(`\\b${t}\\s*:\\s*(['"\`])`,`g`).exec(e);if(!n)return null;let r=n[1],i=n.index+n[0].length,a=i,o=null;for(;a<e.length;){let t=e[a];if(t===`\\`){a+=2;continue}if(t===r){o=e.slice(i,a);break}a++}return o===null?null:o.replace(/\\(.)/g,(e,t)=>t===`n`?`
|
|
12
12
|
`:t===`t`?` `:t===`r`?`\r`:t)}const pe=[`src/config/index.ts`,`src/config/env.ts`,`src/config.ts`,`src/env.ts`];async function me(e,t){let n=t===`src/env.ts`?pe:[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)&&/export\s+default\b/.test(r))return{filePath:n,relativePath:V(n,e)}}return null}function he(e){let t=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}async function W(e){let t=await B(a(e.root),e),n=[],r=[],i=[],s=[],c=[],u=[],d=new Map;for(let r of t){let t;try{t=await l(r,`utf-8`)}catch{continue}d.set(r,t),n.push(...se(t,r,e.cwd)),i.push(...ce(t,r,e.cwd)),s.push(...ue(t,r,e.cwd)),c.push(...de(t,r,e.cwd)),u.push(...fe(t,r,e.cwd))}let f=new Map;for(let[,e]of d)for(let{controller:t,mountPath:n}of ae(e))f.has(t)||f.set(t,n);for(let[t,i]of d){let a=n.filter(e=>e.filePath===t);r.push(...le(i,t,e.cwd,a,f))}let p=[];for(let[e,t]of d){if(!/\.module\.[mc]?[tj]sx?$/.test(e))continue;let r=P(t);if(r.length===0)continue;let i=e.replaceAll(o,`/`),a=i.slice(0,i.lastIndexOf(`/`));for(let t of n){if(t.decorator===`Module`)continue;let n=t.filePath.replaceAll(o,`/`);n.startsWith(a+`/`)&&n!==i&&(ie(n.slice(a.length+1),r)||p.push({className:t.className,filePath:t.filePath,relativePath:t.relativePath,moduleFilePath:e,decorator:t.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)),s.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)),c.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath)),u.sort((e,t)=>e.name.localeCompare(t.name)||e.relativePath.localeCompare(t.relativePath));let m=he(n),h=await me(e.cwd,e.envFile??`src/env.ts`);return p.sort((e,t)=>e.relativePath.localeCompare(t.relativePath)||e.className.localeCompare(t.className)),{classes:n,routes:r,tokens:i,injects:s,collisions:m,env:h,pluginsAndAdapters:c,augmentations:u,orphanedClasses:p}}const G="/* 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",K=new Set([`Service`,`Repository`,`Injectable`,`Component`]);var q=class extends Error{collisions;constructor(e){super(ge(e)),this.name=`TokenCollisionError`,this.collisions=e}};function ge(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(`
|
|
13
13
|
`)}function _e(e,t){let r=i(n(t),e).split(o).join(`/`);return r=r.replace(/\.(ts|tsx|mts|cts)$/i,``),r.startsWith(`.`)||(r=`./`+r),r}function J(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 ve(e,t,n){let r=new Set,i=[];for(let a of e){if(!K.has(a.decorator))continue;let e=n.has(a.className)?J(a):a.className;if(r.has(e))continue;r.add(e);let o=_e(a.filePath,t),s=a.isDefault?`import('${o}').default`:`import('${o}').${a.className}`;i.push(` '${e}': ${s}`)}return`${G}
|
|
14
14
|
declare module '@forinda/kickjs' {
|
|
@@ -109,9 +109,9 @@ ${De(n,` `)}
|
|
|
109
109
|
|
|
110
110
|
export {}
|
|
111
111
|
`}const Z=Symbol(`asset-leaf`);function De(e,t){let n=Object.keys(e).toSorted(),r=[];for(let i of n){let n=e[i],a=Oe(i)?i:JSON.stringify(i);n===Z?r.push(`${t}${a}: () => string`):(r.push(`${t}${a}: {`),r.push(De(n,`${t} `)),r.push(`${t}}`))}return r.join(`
|
|
112
|
-
`)}function Oe(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function ke(e){try{return s(e).isDirectory()}catch{return!1}}var Ae=e({runTypegen:()=>Q,sweepStaleTypegen:()=>$,watchTypegen:()=>Me});function je(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 Q(e={}){let{cwd:t,srcDir:n,outDir:r,silent:i,allowDuplicates:a,schemaValidator:o,envFile:s}=je(e),c=Date.now(),l=await W({root:n,cwd:t,envFile:s===!1?void 0:s}),u=X(e.assetMap,t),d=await Se({classes:l.classes,routes:l.routes,tokens:l.tokens,injects:l.injects,collisions:l.collisions,env:s===!1?null:l.env,pluginsAndAdapters:l.pluginsAndAdapters,augmentations:l.augmentations,assets:u,outDir:r,allowDuplicates:a,schemaValidator:o}),f=[];if(e.runPlugins!==!1)try{let{runAllPluginTypegens:e}=await import(`./run-plugins-
|
|
112
|
+
`)}function Oe(e){return/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)}function ke(e){try{return s(e).isDirectory()}catch{return!1}}var Ae=e({runTypegen:()=>Q,sweepStaleTypegen:()=>$,watchTypegen:()=>Me});function je(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 Q(e={}){let{cwd:t,srcDir:n,outDir:r,silent:i,allowDuplicates:a,schemaValidator:o,envFile:s}=je(e),c=Date.now(),l=await W({root:n,cwd:t,envFile:s===!1?void 0:s}),u=X(e.assetMap,t),d=await Se({classes:l.classes,routes:l.routes,tokens:l.tokens,injects:l.injects,collisions:l.collisions,env:s===!1?null:l.env,pluginsAndAdapters:l.pluginsAndAdapters,augmentations:l.augmentations,assets:u,outDir:r,allowDuplicates:a,schemaValidator:o}),f=[];if(e.runPlugins!==!1)try{let{runAllPluginTypegens:e}=await import(`./run-plugins-Cvgyo_th.mjs`),{loadKickConfig:n}=await import(`./config-ierHW69f.mjs`).then(e=>e.n);f=await e({cwd:t,config:await n(t),silent:!0})}catch(e){if(!i){let t=e instanceof Error?e.message:String(e);console.warn(` kick typegen: plugin pipeline failed (${t}) — continuing`)}}e.runPlugins!==!1&&await $(r,d.written,f,i);let p=we(l.tokens),m=Date.now()-c;if(!i){let e=r.replace(t+`/`,``),n=d.resolvedCollisions>0?`, ${d.resolvedCollisions} collisions namespaced`:``,i=d.envWritten?`, env typed`:``,a=d.pluginEntries>0?`, ${d.pluginEntries} plugins/adapters`:``,o=d.augmentationEntries>0?`, ${d.augmentationEntries} augmentations`:``,s=d.assetEntries>0?`, ${d.assetEntries} assets`:``;if(console.log(` kick typegen → ${d.serviceTokens} services, ${d.routeEntries} routes, ${d.moduleTokens} modules${a}${o}${s}${i}${n} → ${e} (${m}ms)`),p.length>0){console.warn(` kick typegen: ${p.length} token(s) don't match the §22.2 convention:`);for(let e of p){let t=e.variable?` [${e.variable}]`:``;console.warn(` '${e.token}' (${e.filePath})${t} — ${e.reason}`),e.suggestion&&console.warn(` → suggestion: ${e.suggestion}`)}}if(l.orphanedClasses.length>0){console.warn(` kick typegen: ${l.orphanedClasses.length} decorated class(es) not matched by any module's import.meta.glob():`);for(let e of l.orphanedClasses)console.warn(` @${e.decorator} ${e.className} (${e.relativePath})`),console.warn(` → not picked up by any glob in ${e.moduleFilePath}`)}}return{scan:l,result:d,tokenWarnings:p}}async function Me(e={}){let t=je(e),{srcDir:n,silent:r,cwd:i}=t,a={...t,allowDuplicates:!0,runPlugins:!1},o=process.env.KICKJS_WATCH_POLLING===`1`||process.env.KICKJS_WATCH_POLLING===`true`,[{runAllPluginTypegens:s},{loadKickConfig:c}]=await Promise.all([import(`./run-plugins-Cvgyo_th.mjs`),import(`./config-ierHW69f.mjs`).then(e=>e.n)]),l=await c(i),u=[],d=async()=>{try{u=(await Q({...a})).result.written}catch(e){if(r)return;if(e instanceof q)console.error(`
|
|
113
113
|
`+e.message+`
|
|
114
114
|
`);else{let t=e instanceof Error?e.message:String(e);console.error(` kick typegen failed: ${t}`)}}},f=async()=>{try{let e=await s({cwd:i,config:l,silent:!0});await $(t.outDir,u,e,!0)}catch{}};await d(),await f();let{watch:p}=await import(`node:fs`),m=null,h=e=>{e&&/\.(ts|tsx|mts|cts)$/.test(e)&&(e.includes(`.kickjs`)||e.endsWith(`.d.ts`)||(m&&clearTimeout(m),m=setTimeout(()=>{d().then(f)},100)))};if(o){r||console.log(` kick typegen: polling mode (KICKJS_WATCH_POLLING)`);let e=setInterval(()=>{Ne({...a,silent:!0},!0)},2e3);return()=>clearInterval(e)}let g;try{g=p(n,{recursive:!0},(e,t)=>{h(t)})}catch(e){r||console.warn(` kick typegen: watch mode unavailable (${e?.message??e}). Falling back to polling.`);let t=setInterval(()=>{Ne({...a,silent:!0},!0)},2e3);return()=>clearInterval(t)}return()=>{m&&clearTimeout(m),g.close()}}async function Ne(e,t){try{await Q(e)}catch(e){if(t)return;if(e instanceof q)console.error(`
|
|
115
115
|
`+e.message+`
|
|
116
116
|
`);else{let t=e instanceof Error?e.message:String(e);console.error(` kick typegen failed: ${t}`)}}}async function $(e,n,r,i){let o=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(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}export{X as a,W as c,Me as i,$ as n,Ee as o,Ae as r,q as s,Q as t};
|
|
117
|
-
//# sourceMappingURL=typegen-
|
|
117
|
+
//# sourceMappingURL=typegen-C3G375CR.mjs.map
|