@cxl/build 1.0.0-beta.6 → 1.0.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/README.md CHANGED
@@ -6,9 +6,9 @@ A flexible build system that executes configurable build tasks producing output
6
6
 
7
7
  ## Project Details
8
8
 
9
- - Branch Version: [1.0.0-beta.6](https://npmjs.com/package/@cxl/build/v/1.0.0-beta.6)
9
+ - Branch Version: [1.0.0](https://npmjs.com/package/@cxl/build/v/1.0.0)
10
10
  - License: GPL-3.0
11
- - Documentation: [Link](https://cxlio.github.io/cxl/build)
11
+ - Documentation: [Link](https://cxlio.github.io/docs/@cxl/build)
12
12
  - Report Issues: [Github](https://github.com/cxlio/open/issues)
13
13
 
14
14
  ## Installation
package/audit.d.ts CHANGED
@@ -1 +1 @@
1
- export default function (): Promise<void>;
1
+ export declare function audit(): Promise<void>;
package/builder.d.ts CHANGED
@@ -15,5 +15,5 @@ export declare const appLog: (...args: unknown[]) => void;
15
15
  export declare const require: NodeJS.Require;
16
16
  export declare function resolveRequire<T>(mod: string): T;
17
17
  export declare function build(...targets: BuildConfiguration[]): Promise<void>;
18
- export declare function exec(cmd: string, options?: SpawnOptions): Observable<never, "none">;
19
- export declare function shell(cmd: string, options?: SpawnOptions): Observable<Buffer<ArrayBufferLike>, "none">;
18
+ export declare function exec(cmd: string, options?: SpawnOptions): Observable<never, "none" | "emit1">;
19
+ export declare function shell(cmd: string, options?: SpawnOptions): Observable<Buffer<ArrayBufferLike>, "none" | "emit1">;
@@ -0,0 +1 @@
1
+ var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports),n=(b,a)=>{for(var c in a)e(b,c,{get:a[c],enumerable:!0})},l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c};
@@ -0,0 +1,44 @@
1
+ import{e as we}from"./chunk-X2FGYCN3.js";import{a as b,b as ge,c as x,d as he,e as xe,l as ye}from"./chunk-Z5ZAKSCR.js";import{basename as an,join as pe}from"path";import{existsSync as ln,readFileSync as me}from"fs";var S={},un=Symbol("terminator");function mt(e,t){let r=!1,n={error:o,unsubscribe:s,get closed(){return r},signal:new w,next(i){if(!r)try{e.next?.(i)}catch(c){o(c)}},complete(){if(!r)try{e.complete?.()}finally{s()}}};e.signal?.subscribe(s);function o(i){if(r)throw i;if(!e.error)throw s(),i;try{e.error(i)}finally{s()}}function s(){r||(r=!0,n.signal.next())}try{t?.(n)}catch(i){o(i)}return n}function $e(...e){return t=>e.reduce((r,n)=>n(r),t)}var f=class{__subscribe;constructor(t){this.__subscribe=t}then(t,r){return gt(this).then(t,r)}pipe(...t){return t.reduce((r,n)=>n(r),this)}subscribe(t){return mt(!t||typeof t=="function"?{next:t}:t,this.__subscribe)}},A=class extends f{closed=!1;signal=new w;observers=new Set;constructor(){super(t=>this.onSubscribe(t))}next(t){if(!this.closed)for(let r of Array.from(this.observers))r.closed||r.next(t)}error(t){if(!this.closed){this.closed=!0;let r=!1,n;for(let o of Array.from(this.observers))try{o.error(t)}catch(s){r=!0,n=s}if(r)throw n}}complete(){this.closed||(this.closed=!0,Array.from(this.observers).forEach(t=>t.complete()),this.observers.clear())}onSubscribe(t){this.closed?t.complete():(this.observers.add(t),t.signal.subscribe(()=>this.observers.delete(t)))}},w=class extends f{closed=!1;observers=new Set;constructor(){super(t=>{this.closed?(t.next(),t.complete()):this.observers.add(t)})}next(){if(!this.closed){this.closed=!0;for(let t of Array.from(this.observers))t.closed||(t.next(),t.complete());this.observers.clear()}}};var H=class extends A{bufferSize;buffer=[];hasError=!1;lastError;constructor(t=1/0){super(),this.bufferSize=t}error(t){this.hasError=!0,this.lastError=t,super.error(t)}next(t){return this.buffer.length===this.bufferSize&&this.buffer.shift(),this.buffer.push(t),super.next(t)}onSubscribe(t){this.observers.add(t),this.buffer.forEach(r=>t.next(r)),this.hasError?t.error(this.lastError):this.closed&&t.complete(),t.signal.subscribe(()=>this.observers.delete(t))}},Y=class extends A{$value=S;get hasValue(){return this.$value!==S}get value(){if(this.$value===S)throw new Error("Reference not initialized");return this.$value}next(t){return this.$value=t,super.next(t)}onSubscribe(t){!this.closed&&this.$value!==S&&t.next(this.$value),super.onSubscribe(t)}},K=class extends Error{message="No elements in sequence"};function ve(...e){return new f(t=>{let r=0,n;function o(){let s=e[r++];s&&!t.closed?(n?.next(),s.subscribe({next:t.next,error:t.error,complete:o,signal:n=new w})):t.complete()}t.signal.subscribe(()=>n?.next()),o()})}function I(e){return new f(t=>{e().subscribe(t)})}function Ee(e){return new f(t=>{e.then(r=>{t.closed||t.next(r),t.complete()}).catch(r=>t.error(r))})}function y(e){return I(()=>Ee(e()))}function Se(e){return new f(t=>{for(let r of e)t.closed||t.next(r);t.complete()})}function R(e){return e instanceof f?e:e instanceof Promise?Ee(e):Se(e)}function B(...e){return Se(e)}function dt(e){return new Promise((t,r)=>{let n=S;e.subscribe({next:o=>n=o,error:o=>r(o),complete:()=>t(n)})})}function gt(e){return dt(e).then(t=>t===S?void 0:t)}function P(e,t){return j(r=>({next:e(r),unsubscribe:t}))}function j(e){return t=>new f(r=>{let n=e(r,t);n.unsubscribe&&r.signal.subscribe(()=>n.unsubscribe?.()),n.error||(n.error=r.error),n.complete||(n.complete=r.complete),n.signal=r.signal,t.subscribe(n)})}function X(e){return P(t=>r=>t.next(e(r)))}function ht(e){let t=S;return P(r=>n=>{let o=e(n);o!==t&&(t=o,r.next(o))})}function Q(e,t){return j(r=>{let n=t,o=0;return{next(s){n=e(n,s,o++)},complete(){r.next(n),r.complete()}}})}function xt(e){return j(t=>{let r=!0,n;return{next(o){r&&(r=!1,t.next(o),n=setTimeout(()=>r=!0,e))},unsubscribe:()=>clearTimeout(n)}})}function wt(e){return new f(t=>{let r=setTimeout(()=>{t.next(),t.complete()},e);t.signal.subscribe(()=>clearTimeout(r))})}function yt(e,t=wt){return je(r=>t(e).map(()=>r))}function je(e){return t=>T(r=>{let n=!1,o=!1,s,i=()=>{s?.next(),n=!1,o&&r.complete()},c=new w;r.signal.subscribe(()=>{i(),c.next()}),t.subscribe({next(u){i(),s=new w,n=!0,R(e(u)).subscribe({next:r.next,error:r.error,complete:i,signal:s})},error:r.error,complete(){o=!0,n||r.complete()},signal:c})})}function bt(e){return t=>T(r=>{let n=r.signal,o=0,s=0,i=!1;t.subscribe({next:c=>{o++,R(e(c)).subscribe({next:r.next,error:r.error,complete:()=>{s++,i&&s===o&&r.complete()},signal:n})},error:r.error,complete(){i=!0,s===o&&r.complete()},signal:n})})}function $t(e){return j(t=>{let r=new w,n,o,s=[],i=!1,c=!1,u=()=>{n?.next(),n=void 0,o=void 0,c=!1,s.length&&!t.closed?a(s.shift()):i&&t.complete()},a=l=>{c=!0,n=new w,o=R(e(l)).subscribe({next:t.next,error:t.error,complete:u,signal:n})};return t.signal.subscribe(()=>{n?.next(),r.next()}),{next(l){c?s.push(l):a(l)},error:t.error,complete(){i=!0,!c&&s.length===0&&t.complete()},signal:r,unsubscribe:()=>o?.unsubscribe()}})}function vt(e){return j(t=>{let r=!0;return{next(n){r&&(r=!1,R(e(n)).subscribe({next:t.next,error:t.error,complete:()=>r=!0,signal:t.signal}))}}})}function V(e){return P(t=>r=>{e(r)&&t.next(r)})}function Et(e){return P(t=>r=>{e-- >0&&!t.closed&&t.next(r),(e<=0||t.closed)&&t.complete()})}function St(e){return P(t=>r=>{!t.closed&&e(r)?t.next(r):t.complete()})}function jt(){let e=!1;return j(t=>({next(r){e||(e=!0,t.next(r),t.complete())},complete(){t.closed||t.error(new K)}}))}function Z(e){return P(t=>r=>{e(r),t.next(r)})}function kt(e){return j((t,r)=>{let n,o={next:t.next,error(s){try{if(t.closed)return;let i=e(s,r);n?.next(),n=new w,i.subscribe({...o,signal:n})}catch(i){t.error(i)}},unsubscribe:()=>n?.next()};return o})}function Dt(){return P(e=>{let t=S;return r=>{r!==t&&(t=r,e.next(r))}})}function Ct(){return e=>{let t=new H(1),r=!1;return T(n=>{t.subscribe(n),r||(r=!0,e.subscribe(t))})}}function Nt(){return e=>{let t,r=0;function n(){--r===0&&t.signal.next()}return T(o=>{o.signal.subscribe(n),r++===0?(t=It(),t.subscribe(o),e.subscribe(t)):t.subscribe(o)})}}function Pt(){return e=>{let t=new A,r,n,o=!1,s=!1;return T(i=>{s?(i.next(n),i.complete()):t.subscribe(i),r??=e.subscribe({next:c=>{o=!0,n=c},error:i.error,complete(){s=!0,o&&t.next(n),t.complete()},signal:i.signal})})}}function ke(...e){return e.length===1?e[0]:new f(t=>{let r=e.length;for(let n of e)t.closed||n.subscribe({next:t.next,error:t.error,complete(){r--===1&&t.complete()},signal:t.signal})})}function Tt(e){return j(t=>({next:t.next,unsubscribe:e}))}function Ft(){return V(()=>!1)}var J=new f(e=>e.complete());function T(e){return new f(e)}function It(){return new Y}var be={catchError:kt,concatMap:$t,debounceTime:yt,distinctUntilChanged:Dt,exhaustMap:vt,filter:V,finalize:Tt,first:jt,ignoreElements:Ft,map:X,mergeMap:bt,publishLast:Pt,reduce:Q,select:ht,share:Nt,shareLatest:Ct,switchMap:je,take:Et,takeWhile:St,tap:Z,throttleTime:xt};for(let e in be)f.prototype[e]=function(...t){return this.pipe(be[e](...t))};import{dirname as zt,relative as Ht,resolve as Yt}from"path";import{existsSync as Kt,utimesSync as Xt,writeFileSync as Qt}from"fs";import{spawn as Zt,execSync as Le}from"child_process";import{createRequire as er}from"module";import{existsSync as At,readFileSync as Ie}from"fs";import{join as Bt,resolve as Jt}from"path";import{promises as G,readFileSync as Rt}from"fs";import{basename as Ce,dirname as Ot,resolve as M}from"path";function hn(e){return new f(t=>{G.readdir(e).then(r=>{for(let n of r)t.next(M(e,n));t.complete()},r=>t.error(r))})}async function Ne(e){let t=await G.readFile(e);return{path:e,source:t}}function xn(e){return e=M(e),V(t=>M(t.path).startsWith(e))}function F(e,t){return I(()=>R(Ne(e).then(r=>({path:t||M(e),source:r.source}))))}function wn(e){return Z(t=>t.path=(e||"")+Ce(t.path))}function yn(e,t=`
2
+ `){return $e(Q((r,n)=>`${r}${t}${n.source}`,""),X(r=>({path:e,source:Buffer.from(r)})))}function bn(e){return new f(t=>{Promise.all(e.map(Ne)).then(r=>{r.forEach(n=>t.next(n)),t.complete()},r=>t.error(r))})}function Lt(e,t){return Promise.all([G.stat(e),G.stat(t)]).then(([r,n])=>r.mtime.getTime()>n.mtime.getTime(),()=>!0)}function $n(e,t){return y(()=>Lt(e,t)).filter(r=>r)}function Pe(e,t,r=""){return q(`mkdir -p ${t} && rsync -au -i --delete ${e}/${r} ${t}`)}function vn(e){let t=e.source.toString(),r=/\/\/# sourceMappingURL=(.+)/.exec(t),n=r?.[1]?M(Ot(e.path),r[1]):null;if(n)return{path:Ce(n),source:Rt(n)}}function En(e,t,r){return De(`zip - ${e.join(" ")}`,{cwd:r}).map(n=>({path:t,source:n}))}import{execSync as Mt}from"child_process";import*as Re from"esbuild";var Ut=process.cwd(),O=Mt("npm prefix",{cwd:Ut}).toString().trim(),_t={"GPL-3.0":"license-GPL-3.0.md","GPL-3.0-only":"license-GPL-3.0.md","Apache-2.0":"license-Apache-2.0.md","SEE LICENSE IN LICENSE.md":"",UNLICENSED:""};function Te(e,t,r){for(let n of e)if(!t[n])throw new Error(`Field "${n}" missing in "${r}"`)}function Fe(e,t={}){for(let r in e)t[r]=`/${r}`;return t}function ee(e,t){let r={};return e.devDependencies&&Fe(e.devDependencies,r),t.dependencies&&Fe(t.dependencies,r),r}function te(e){return new f(t=>{Re.build({minify:!0,bundle:!0,splitting:!0,format:"esm",tsconfig:"tsconfig.json",platform:"browser",define:{CXL_DEBUG:"false"},...e}).then(()=>t.complete(),r=>t.error(r))})}function W(e=O){let t=Jt(e,"package.json");if(!At(t))throw new Error(`"${t}" not found`);let r=JSON.parse(Ie(t,"utf8"));return Te(["name","version","description"],r,t),r.private||Te(["license"],r,t),r}function Vt(e,t){return B({path:"package.json",source:Buffer.from(JSON.stringify({name:e.name,version:e.version,description:e.description,private:e.private,license:e.license,files:e.files??["*.js","*.d.ts","*.css","LICENSE.md","*.md"],main:t??e.main??"index.js",exports:e.exports,browser:e.browser,homepage:e.homepage,bugs:e.bugs,bin:e.bin,sideEffects:e.sideEffects,repository:e.repository,dependencies:e.dependencies,peerDependencies:e.peerDependencies,bundledDependencies:e.bundledDependencies,type:e.type},null,2))})}function Gt(e){if(e==="UNLICENSED"||e==="SEE LICENSE IN LICENSE.md")return J;let t=_t[e];if(!t)throw new Error(`Invalid license: "${e}"`);return F(Bt(import.meta.dirname,t),"LICENSE")}function qt(e,t){return`https://npmjs.com/package/${e}/v/${t}`}function Wt(e){try{return Ie(e,"utf8")}catch{return""}}function Oe(){return I(()=>{let e=W(O),t=Wt("USAGE.md"),r=encodeURIComponent(e.name);return B({path:"README.md",source:Buffer.from(`# ${e.name}
3
+
4
+ [![npm version](https://badge.fury.io/js/${r}.svg)](https://badge.fury.io/js/${r})
5
+
6
+ ${e.description}
7
+
8
+ ## Project Details
9
+
10
+ - Branch Version: [${e.version}](${qt(e.name,e.version)})
11
+ - License: ${e.license}
12
+ - Documentation: [Link](${e.homepage})
13
+ - Report Issues: [Github](${e.bugs})
14
+
15
+ ## Installation
16
+
17
+ npm install ${e.name}
18
+
19
+ ${t}`)})})}function re(e){return I(()=>{let t=W(),r=t.license,n=[Vt(t,e)];return r&&n.push(Gt(r)),ke(...n)})}var tr=b.green("build"),k=he.bind(null,tr),Ae=er(import.meta.dirname);function rr(e){return(e/1e3).toFixed(2)+"kb"}function nr(e){let t=Number(e)/1e9,r=t.toFixed(4)+"s";return t>.1?t>.5?b.red(r):b.yellow(r):r}function z(e){return Ae(Ae.resolve(e,{paths:[process.cwd(),import.meta.dirname]}))}async function Be(...e){if(!e.length)throw new Error("Invalid configuration");O!==process.cwd()&&(process.chdir(O),k(`chdir "${O}"`));let t=W();k(`${t.name} ${t.version}`);let r=[void 0,...process.argv];try{for(let n of r)for(let o of e)o.target===n&&await new ne(k,o).build()}catch(n){console.error(n),process.exit(1)}}function q(e,t){return new f(r=>{k(`sh ${e}`),ge(xe(e,t)).then(n=>{k(`sh ${e}`,nr(n.time)),n.result&&console.log(n.result),r.complete()},n=>{r.error(n)})})}function De(e,t={}){return new f(r=>{let n=Zt(e,[],{shell:!0,...t}),o,s;n.stdout?.on("data",i=>o=o?Buffer.concat([o,Buffer.from(i)]):Buffer.from(i)),n.stderr?.on("data",i=>s=s?Buffer.concat([s,Buffer.from(i)]):Buffer.from(i)),n.on("close",i=>{i?r.error(s||o):(o&&r.next(o),r.complete())})})}var ne=class{log;config;outputDir;constructor(t,r){this.log=t,this.config=r,this.outputDir=r.outputDir||"."}async build(){try{let t=this.config.target||"";t&&this.log(`target ${t}`),Le(`mkdir -p ${this.outputDir}`),await Promise.all(this.config.tasks.map(r=>this.runTask(r)))}catch(t){throw console.log("BUILD: ",t),"Build finished with errors"}}async runTask(t){await t.tap(r=>{let n=Yt(this.outputDir,r.path),o=r.source,s=zt(n);Kt(s)||Le(`mkdir -p ${s}`),Qt(n,o),r.mtime&&Xt(n,r.mtime,r.mtime);let i=Ht(process.cwd(),n);this.log(`${i} ${rr(o.length)}`)})}};import{relative as or,join as sr}from"path";import{readFile as ir}from"fs/promises";function cr(e){let t=[],r=!1;for(let{errorCount:n,filePath:o,messages:s}of e){let i=or(process.cwd(),o);k(`eslint ${i}`),n&&(r=!0,s.forEach(c=>console.error(`${i}#${c.line}:${c.column}: ${c.message} (${c.ruleId})`)))}if(r)throw new Error("eslint errors found.");return t}function ar(e=["**/*.ts?(x)"],t){return new f(r=>{let{ESLint:n}=z("eslint");k(`eslint ${n.version}`),new n({cache:!0,cwd:process.cwd(),overrideConfigFile:sr(import.meta.dirname,"eslint-config.js"),...t}).lintFiles(e).then(cr).then(()=>r.complete(),s=>r.error(s))})}function Je(e="tsconfig.json"){return y(async()=>typeof e=="string"?JSON.parse(await ir(e,"utf8")):e).switchMap(t=>ar(t.files??t.include,{ignorePatterns:[...t.exclude??[],"*.js"],errorOnUnmatchedPattern:!1}))}import{relative as lr}from"path";var h=z("typescript"),{readDirectory:ur,getCurrentDirectory:Me,fileExists:fr,readFile:pr}=h.sys,mr={useCaseSensitiveFileNames:!0,readDirectory:ur,getCurrentDirectory:Me,fileExists:fr,readFile:pr,onUnRecoverableConfigFileDiagnostic(e){throw e}},dr={getCurrentDirectory:Me,getNewLine:()=>`
20
+ `,getCanonicalFileName:e=>e},zn=h.version;function gr(e){return[...e.getConfigFileParsingDiagnostics(),...e.getOptionsDiagnostics(),...e.getGlobalDiagnostics(),...e.getDeclarationDiagnostics()]}function Ue(e,t=dr){throw console.error(h.formatDiagnosticsWithColorAndContext(e,t)),new Error("Typescript compilation failed")}function hr(e="tsconfig.json",t={module:h.ModuleKind.CommonJS}){let r=h.createSolutionBuilderHost(h.sys),n=oe(e);n.errors.length&&Ue(n.errors);let o=n.options.outDir;if(!o)throw new Error(`No outDir field set in ${e}`);let s=h.createSolutionBuilder(r,[e],t);return{outputDir:o,builder:s,options:n}}function xr(e="tsconfig.json",t,r={module:h.ModuleKind.CommonJS}){let{outputDir:n,builder:o}=hr(e,r),s,i="";function c(u,a){i&&u.startsWith(i)?(u=lr(n,u),t.next({path:u,source:Buffer.from(a)})):console.warn(`File "${u}" is outside of outDir. Ignoring.`)}for(;s=o.getNextInvalidatedProject();){if(s.kind===h.InvalidatedProjectKind.Build){let a=s.getProgram();if(i=s.getCompilerOptions().outDir??"",a){let l=gr(a);l.length&&Ue(l)}}if(s.done(void 0,c)!==h.ExitStatus.Success)throw`${s.project}: Typescript compilation failed`}}function _e(e="tsconfig.json",t){return new f(r=>{xr(e,r,t),r.complete()})}function oe(e){let t;try{t=h.getParsedCommandLineOfConfigFile(e,{},mr)}catch(r){if(r instanceof Error)throw r;let n=r?.message??r?.messageText;throw new Error(n??"Unknown Error")}if(!t)throw console.log(process.cwd()),new Error(`Could not parse config file "${e}"`);return t}function Ve(e){return T(t=>{we({clean:!0,summary:!0,markdown:!0,markdownSummary:!0,cxlExtensions:!0,...e},async r=>{t.next({path:r.name,source:Buffer.from(r.content)})}).then(()=>t.complete(),r=>t.error(r))})}import{readFileSync as le}from"fs";import{join as ot}from"path";import{resolve as br,dirname as $r}from"path";import*as D from"inspector";function wr(e){let t=[];for(let r of e){let n=0,o=0;for(let s of r.functions)for(let i of s.ranges){let c=i.endOffset-i.startOffset;n+=c,i.count&&(o+=c)}t.push({url:r.url,functions:r.functions,blockTotal:n,blockCovered:o})}return t}async function yr(e){let t=[],r=/\/node_modules\//;for(let n of e){let o=n.url;r.test(o)||t.push({url:o,functions:n.functions})}return wr(t)}function Ge(e){let t=0,r=e.results.map(o=>(o.success===!1&&t++,{message:o.message,success:o.success,data:o.data,stack:o.stack})),n=(e.only.length?e.only:e.tests).map(o=>{let s=Ge(o);return t+=s.failureCount,s});return r.length===0&&e.tests.length===0&&(t++,r.push({success:!1,message:"No assertions found"})),{name:e.name,failureCount:t,results:r,tests:n,runTime:e.runTime,timeout:e.timeout}}async function U(e,t){let r=Ge(e),n=t&&await yr(t);return{success:r.failureCount===0,testReport:r,coverage:n}}function _(e,t,r={}){return new Promise((n,o)=>{e.post(t,r,(s,i)=>s?o(s):n(i))})}async function vr(e,t,r){await _(e,"Profiler.enable"),await _(e,"Profiler.startPreciseCoverage",{detailed:!0});let n=await t(),o=await _(e,"Profiler.takePreciseCoverage");return await _(e,"Profiler.stopPreciseCoverage"),await _(e,"Profiler.disable"),{coverage:o.result.flatMap(s=>{if(!s.url||s.url.startsWith("node:"))return[];if(s.url.startsWith("file:///")){let i=s.url.slice(7);if(!i.startsWith(r))return[];s.url=i.slice(r.length+1)}return[s]}),result:n}}async function se(e){async function t(){let s=(await import(o)).default;return s.run().then(()=>s)}let r=e.entryFile,n=new D.Session;e.log(`Runner: Node ${process.version}`);let o=br(r);if(e.log(`Suite: ${o}`),e.inspect&&(D.open(),console.log(`Waiting for debugger (${D.url()})`),D.waitForDebugger()),n.connect(),e.ignoreCoverage){let s=await t();return U(s)}else{let{result:s,coverage:i}=await vr(n,t,$r(o));return process.argv.includes("--inspect")&&(console.log("Press any key to continue"),await new Promise(c=>process.stdin.once("data",c))),U(s,i)}}import*as Xe from"puppeteer";import{readFile as Qe,writeFile as ze,mkdir as He}from"fs/promises";import{basename as kr,resolve as Dr,relative as Ze,join as et,extname as Cr}from"path";import{readFileSync as Er}from"fs";import{join as C}from"path";function qe(e,t){let r=e.split("/"),n=r[0]?.startsWith("@"),o=n?`${r[0]}/${r[1]}`:r[0]??"",s=r.slice(n?2:1),i=s.length?"./"+s.join("/"):".",c=C(t,"node_modules",o),u;try{u=JSON.parse(Er(C(c,"package.json"),"utf8"))}catch{return}let a=u.exports;if(!a){if(i==="."){let l=u.main||"index.js";return C(c,l)}return C(c,i)}if(typeof a=="string")return i!=="."?void 0:C(c,a);for(let l in a){let m=a[l];if(!m)throw new Error(`Invalid export ${l}`);if(!l.includes("*")&&l===i)return Sr(m,c);let v=l.indexOf("*");if(v!==-1){let E=l.slice(0,v),N=l.slice(v+1);if(i.startsWith(E)&&i.endsWith(N)){let g=i.slice(E.length,i.length-N.length);return jr(m,g,c)}}}}function We(e,t){return C(t,e.import??e.default??"")}function Sr(e,t){if(typeof e=="string")return C(t,e);if(typeof e=="object")return We(e,t);throw new Error("No import target available")}function jr(e,t,r){if(typeof e=="string")return C(r,e.replace("*",t));if(typeof e=="object")return We(e,r);throw new Error("No import target available")}async function Nr(e){await Promise.all([e.coverage.startJSCoverage({reportAnonymousScripts:!0})])}async function Pr(e,t){let r=e.type(),{url:n,lineNumber:o}=e.location(),s=o!==void 0?` (${o})`:"";t.log(`console ${r}: ${n}${s}`);for(let i of e.args())try{console.log(await i.evaluate(c=>c instanceof Error?{message:c.message,stack:c.stack}:JSON.stringify(c,null,2)))}catch{console.log(i.toString())}}async function Tr(e){return await(await e.createBrowserContext()).newPage()}async function Fr(e,t,r){function n(a){let l=a.type;if(l==="figure")try{return Br(s,a,e)}catch(m){return{success:!1,message:String(m)||"Unknown Error"}}else{if(l==="hover"||l==="tap"||l==="click")return s.$(a.element).then(m=>{if(!m)throw new Error(`Element for selector "${a.element}" not found.`);return m[l]()}).then(()=>({success:!0,message:"Element"}));if(l==="type"||l==="press")return s.$(a.element).then(m=>{if(!m)throw new Error(`Element for selector "${a.element}" not found.`);return m[l](a.value)}).then(()=>({success:!0,message:"Element"}));if(l==="testElement")return{success:!0,message:"testElement supported"};if(l==="concurrency")return{success:!0,message:"Concurrency",concurrency:r}}return{success:!1,message:`Feature not supported: ${l}`}}let o=[],s=await Tr(t),i=e.vfsRoot?`./${Ze(e.vfsRoot,e.entryFile)}`:e.entryFile;s.on("console",a=>{Pr(a,e).catch(l=>console.error(l))}),s.on("pageerror",a=>{e.log(a),o.push({success:!1,message:String(a)})}),s.on("requestfailed",a=>{e.log(`requestfailed: ${a.method()} ${a.url()} ${a.failure()?.errorText}`)}),await s.exposeFunction("__cxlRunner",n),await Nr(s),e.browserUrl&&await tt(e,s,e.browserUrl),await s.bringToFront();let c=await Rr(s,e,i);o.length&&c.results.push(...o);let u=e.ignoreCoverage?void 0:await Lr(s,e);return{suite:c,coverage:u}}function Ir(e,t){let r=t.vfsRoot?Dr(t.vfsRoot):process.cwd();t.vfsRoot&&t.log(`vfsRoot: ${r} (cwd: ${process.cwd()})`);function n(s){try{let i=s.slice(1),c=qe(i,`${r}/`);if(c)return Ze(r,c)}catch(i){console.log(i)}return s}async function o(s){try{let i=new URL(s.url());if(s.method()==="GET"&&i.hostname==="cxl-tester"){if(i.pathname==="/"||i.pathname==="/favicon.ico")return s.respond({status:200,body:""});let c=n(i.pathname);if(c!==i.pathname)return s.respond({status:301,headers:{location:"/"+c}});let u=await Qe(et(r,c),"utf8"),a=Cr(c);a===".js"&&!t.sources.has(i.href)&&t.sources.set(i.href,{path:c,source:u}),await s.respond({status:200,contentType:a===".js"?"text/javascript":"text/plain",body:u})}else await s.continue()}catch(i){t.log(`Error handling request ${s.method()} ${s.url()}`),console.error(i),await s.respond({status:500})}}e.on("request",s=>{o(s).catch(i=>console.error(i))})}function tt(e,t,r){return t.goto(r)}async function Rr(e,t,r){return await e.setRequestInterception(!0),Ir(e,t),await tt(t,e,"https://cxl-tester"),await e.setContent(`<base href="https://cxl-tester/${r}">`),t.importmap&&await e.addScriptTag({type:"importmap",content:t.importmap}),e.evaluate(`(async entry => {
21
+ const r = (await import(entry)).default;
22
+ await r.run();
23
+ return r.toJSON();
24
+ })('./${kr(r)}')`)}function ie(e,t,r){return{startOffset:e,endOffset:t,count:r}}function Or(e){let t=[],r=0;for(let n of e.ranges)n.start>r&&t.push(ie(r,n.start,0)),t.push(ie(n.start,n.end,1)),r=n.end;return r<e.text.length&&t.push(ie(r,e.text.length,0)),t}async function Lr(e,t){return(await e.coverage.stopJSCoverage()).flatMap(n=>{let o=t.sources.get(n.url);return o?{url:o.path,functions:[{functionName:"",ranges:Or(n),isBlockCoverage:!0}]}:[]})}var Ye=Promise.resolve();async function Ke(e){let t=(await import("pngjs")).PNG;return new Promise((r,n)=>{new t().parse(Buffer.from(e),(s,i)=>{s?n(s):r(i)})})}function Ar(e,t,r){return new Promise((n,o)=>{let s=`#${t}`;Ye=Ye.then(()=>e.$eval(s,(i,c)=>{i.innerHTML=c,i.style.zIndex="10",i.getRootNode()?.activeElement?.blur()},r).then(async()=>(await e.waitForNetworkIdle({idleTime:120,timeout:5e3}),await e.waitForFunction("document.fonts?.ready"),await e.mouse.move(350,-100),(await e.$(s))?.screenshot({type:"png",encoding:"binary"}))).then(i=>{ArrayBuffer.isView(i)?n(i):o("Invalid value returned by screenshot()")},i=>o(i)))})}async function Br(e,t,r){let{name:n,domId:o,html:s}=t,i=t.baseline=et(r.baselinePath??"spec",`${n}.png`),c=`spec/${n}.png`,[u,a]=await Promise.all([Qe(i).catch(()=>{}),Ar(e,o,s)]);if(await He("spec").catch(()=>!1),await ze(c,a),(!u||r.updateBaselines)&&r.baselinePath)await He(r.baselinePath).catch(()=>!1),await ze(i,a);else if(u&&r.baselinePath){let[l,m]=await Promise.all([Ke(u),Ke(a)]),v=l.data,E=m.data,N=v.length;if(N!==E.length)return{success:!1,message:`Screenshot should match baseline: Different Size (${l.width}x${l.height} vs ${m.width}x${m.height})`,data:t};for(let g=0;g<N;g++)if(v.readUInt8(g)!==E.readUInt8(g))return{success:!1,message:"Screenshot should match baseline",data:t}}return{success:!0,message:"Screenshot should match baseline",data:t}}async function ce(e){let t=["--no-sandbox","--disable-setuid-sandbox","--disable-gpu","--font-render-hinting=none","--disable-font-subpixel-positioning","--animation-duration-scale=0","--force-device-scale-factor=1","--window-size=1280,1024","--disable-infobars","--hide-scrollbars","--blink-settings=imagesEnabled=true","--enable-font-antialiasing","--ignore-certificate-errors","--disable-features=Translate,BackForwardCache,ColorPicker,SharedArrayBuffer,InterestCohort,NotificationIndicator,Prerender2","--disable-background-timer-throttling","--disable-backgrounding-occluded-windows","--disable-renderer-backgrounding","--mute-audio","--disable-extensions"];e.disableSecurity&&t.push("--disable-web-security");let r=await Xe.launch({headless:!0,args:t,timeout:5e3});try{e.log(`Puppeteer ${await r.version()}`);let{suite:n,coverage:o}=await Fr(e,r,0);return U(n,o)}finally{await r.close()}}function rt(e){return e.node?se(e):ce(e)}function Jr(e,t){let r=t.message;console.error(e,b.red(r)),t.stack&&console.error(t.stack)}function nt(e){let t="",r=e.results.filter(o=>(t+=o.success?b.green("."):b.red("X"),o.success===!1)),n=e.runTime>e.timeout?"brightYellow":e.runTime>e.timeout/2?"yellow":"gray";return console.group(`${e.name} ${b[n](`(${e.runTime.toFixed(2)} ms)`)} ${t}`),r.forEach(o=>Jr(e.name,o)),e.tests.forEach(nt),console.groupEnd(),r}function Mr(e){console.log("Coverage Report:");for(let t of e){let r=(t.blockCovered/t.blockTotal*100).toFixed(2);console.log(`${t.url}: ${r}% (${t.blockTotal}/${t.blockCovered})`)}}function ae(e){e.coverage&&Mr(e.coverage),nt(e.testReport)}var Ur;function _r(e,t,r,n){return Buffer.from(`<!DOCTYPE html>
25
+ <title>${t} Test Suite</title>
26
+ <script type="importmap">${n}</script>
27
+ <script type="module">
28
+ import suite from '${r}';
29
+ ${Ur??=le(ot(import.meta.dirname,"spec-browser.js"),"utf8")}
30
+ __cxlRunner({ type: 'run', suites: [suite], baselinePath: '../../${e}/spec' })
31
+ </script>`)}function Vr(e,t,r){let n=ee(e,t);for(let o in n)n[`${o}/`]=`/${o}/`;return e.importmap&&Object.assign(n,e.importmap),JSON.stringify({imports:n})}function Gr(e,t){let r=ee(e,t);for(let n in r)r[`${n}/`]=`../../node_modules${r[n]}/`;return r["@cxl/spec"]="../../node_modules/@cxl/spec/index.js",e.importmap&&Object.assign(r,e.importmap),JSON.stringify({imports:r})}function ue({appId:e,pkgJson:t,rootPkg:r,testFile:n="./test.js",outFile:o="test.html"}){return B({path:o,source:_r(e,t.name,n,Gr(r,t))})}function fe({appId:e,outputDir:t,node:r,entryFile:n="./test.js",ignoreCoverage:o}){return y(async()=>{let s=process.cwd(),i=JSON.parse(le("package.json","utf8")),c=JSON.parse(le("../package.json","utf8")),u=oe(ot(s,"tsconfig.json"));try{process.chdir(t);let a=await rt({node:r,mjs:!0,vfsRoot:"../../",entryFile:n,ignoreCoverage:o,baselinePath:`../../${e}/spec`,importmap:r?void 0:Vr(c,i,u),sources:new Map,log:console.log.bind(console)});if(ae(a),!a.success)throw new Error("Tests failed")}finally{process.chdir(s)}}).ignoreElements()}import*as $ from"path";import{promises as d}from"fs";import*as it from"child_process";var qr="https://github.com/cxlio/cxl/issues",st=$.resolve("."),Wr=["name","version","description","license","homepage","bugs"],zr=["build","test"],Hr=["GPL-3.0","GPL-3.0-only","Apache-2.0","UNLICENSED","SEE LICENSE IN LICENSE.md"];async function Yr({projectPath:e,rootPkg:t}){let r=`${e}/package.json`,n=await x(r),o=JSON.stringify(n,null," ");for(let i in n.dependencies){let c=t.devDependencies?.[i]??t.dependencies?.[i];c&&n.dependencies[i]!==c&&(n.dependencies[i]=c)}let s=JSON.stringify(n,null," ");o!==s&&await d.writeFile(r,s)}async function Kr({projectPath:e,name:t}){let r=`${e}/package.json`,n=await x(r),o=await x(`${e}/tsconfig.json`,!1),s=JSON.stringify(n,null," ");o||(o={extends:"../tsconfig.json",compilerOptions:{outDir:`../dist/${t}`},files:[],references:[]},await d.writeFile(`${e}/tsconfig.json`,JSON.stringify(o,null," ")));let i=JSON.stringify(n,null," ");s!==i&&await d.writeFile(r,i)}async function Xr({projectPath:e,name:t}){let r=$.join(e,"tsconfig.test.json"),n=!1;await L(r)||await d.writeFile(r,`{
32
+ "extends": "./tsconfig.json",
33
+ "include": ["test.ts"],
34
+ "references": [{ "path": "." }, { "path": "../spec" }]
35
+ }
36
+ `);let o=$.join(e,"test.ts"),s=await x(`${e}/tsconfig.test.json`,null)??{};(!s.extends||s.extends!=="./tsconfig.json")&&(s.extends="./tsconfig.json",n=!0),s.compilerOptions&&(delete s.compilerOptions,n=!0),n&&await d.writeFile(`${e}/tsconfig.test.json`,JSON.stringify(s,null," ")),!await L(o)&&!await L($.join(e,"test.tsx"))&&await d.writeFile(o,`import { spec } from '@cxl/spec';
37
+ import { } from './index.js';
38
+
39
+ export default spec('${t}', s => {
40
+ s.test('should load', a => {
41
+ a.ok(get);
42
+ });
43
+ });
44
+ `)}function L(e){return d.stat(e).catch(()=>!1)}function p(e,t){return{valid:e,message:t}}async function Qr({projectPath:e,name:t,rootPkg:r}){let n=`${e}/package.json`,o=await x(n),s=JSON.stringify(o,null," "),i=r.devDependencies?.["@cxl/build"]?"cxl-build":"node ../dist/build",c="npm run build test",u="./index.bundle.js",a=r.homepage&&new URL(o.name,r.homepage).href;o.scripts??={},o.scripts.test||(o.scripts.test=c),o.scripts.build||(o.scripts.build=i),a&&(!o.homepage||o.homepage!==a)&&(o.homepage=a),o.license||(o.license="GPL-3.0"),(!o.bugs||o.bugs!==r.bugs)&&(o.bugs=r.bugs||qr),!o.browser&&o.devDependencies&&delete o.devDependencies,o.browser&&(o.browser=u),!o.repository&&r.repository&&(typeof r.repository=="string"&&(r.repository={type:"git",url:r.repository}),o.repository={...r.repository,directory:t}),o.type="module",o.scripts.test!==c&&(o.scripts.test=c);let l=JSON.stringify(o,null," ");s!==l&&await d.writeFile(n,l)}async function Zr({pkg:e,name:t,rootPkg:r}){let n=Wr.map(i=>p(i in e,`Field "${i}" required in package.json`)),o="./index.bundle.js";if(e.scripts){let i=e.scripts;n.push(...zr.map(c=>p(c in i,`Script "${c}" required in package.json`)))}else n.push(p("scripts"in e,'Field "scripts" required in package.json'));return n.push(p(!!e.license&&Hr.includes(e.license),`"${e.license}" is not a valid license.`),p(!!e.browser||!e.devDependencies,"Package should not have devDependencies."),p(!!r.homepage,"Root package must contain a valid homepage field."),p(!!r.homepage&&e.homepage===new URL(e.name,r.homepage).href,"Package should inherit homepage field from root package.json"),p(!e.browser||e.browser===o,`Package "browser" property should be "${o}"`),p(e.bugs===r.bugs,`Package "bugs" property must match root package "${r.bugs}"`),p(e.scripts?.test==="npm run build test","Valid test script in package.json"),p(!!e.repository,'Package "repository" field must be set'),p(typeof e.repository!="string",'"repository" must be an object'),p(e.type==="module",'Package "type" must be "module".')),{id:"package",project:t,fix:Qr,rules:n}}async function en({projectPath:e}){let t=await x(`${e}/tsconfig.test.json`);return{id:"test",fix:Xr,project:e,rules:[p(!!await L(`${e}/tsconfig.test.json`),'Missing "tsconfig.test.json" file.'),p(t.extends==="./tsconfig.json",'tsconfig.test.json extends should be "./tsconfig.json"'),p(!!(await L(`${e}/test.ts`)||await L(`${e}/test.tsx`)),'Missing "test.ts" file.'),p(!t.compilerOptions,"tsconfig.test.json should not have compilerOptions")]}}async function tn({name:e,rootPkg:t,pkg:r}){let n=[];for(let o in r.dependencies){let s=r.dependencies[o],i=t.devDependencies?.[o]||t.dependencies?.[o];n.push(p(!!(o.startsWith(t.name)||i),`Dependency "${o}" must be included in root package.json`),p(s!=="*",`Dependency "${o}" must be a valid version. pkg:${s}`),p(o.startsWith(t.name)||i===s,`Conflicting versions "${o}". root: ${i}, dep: ${s}`))}return{id:"dependencies",project:e,fix:Yr,rules:n}}async function rn({projectPath:e,name:t}){let r=await x(`${e}/tsconfig.json`,null),n=[p(!!r,"tsconfig.json should be present"),p(!!r?.compilerOptions,"tsconfig.json should have compilerOptions"),p(r?.compilerOptions?.outDir===`../dist/${t}`,"tsconfig.json should have a valid outDir compiler option")];return{id:"tsconfig",project:t,fix:Kr,rules:n}}var nn=/(.+):(.+)/g;async function on({name:e}){let r=it.spawnSync("git",["grep",`"from '\\.\\.\\/"`,e],{encoding:"utf8"}).stdout.trim(),n=[],o;for(;o=nn.exec(r);){let[,s,i]=o,c=i?.replace(/'\.\.\/([^/]+)\/index\.js/,"'@cxl/$1");if(s&&i&&c&&c!==i){n.push({file:s,line:i,newLine:c});let u=await d.readFile(s,"utf8");await d.writeFile(s,u.replace(i,c))}}return{id:"imports",project:e,rules:[p(n.length===0,"Should not have local imports")],async fix(){for(let s of n){let i=await d.readFile(s.file,"utf8");await d.writeFile(s.file,i.replace(s.line,s.newLine))}}}}var sn=[Zr,en,tn,rn,on];async function cn(e){let t=st,r=await d.stat(t),n=$.basename(t);if(!r.isDirectory())return[];let o=await x($.join(t,"package.json"),!1);if(!o)return[];let s={projectPath:t,name:n,pkg:o,rootPkg:e,baseDir:st},i=(await Promise.all(sn.map(c=>c(s)))).flat();return i.forEach(c=>c.data=s),i}async function ct(){function e(s,i){console.error(`${s}: ${i}`)}let t=await x("../package.json"),r=await cn(t),n=!1,o=[];for(let s of r){for(let i of s.rules)i.valid||(s.hasErrors=n=!0,e(s.data?.name||"root",i.message));if(s.hasErrors&&s.fix&&s.data){let{data:i,fix:c}=s;o.push(()=>(console.log(`${s.data?.name}: Attempting fix for "${s.id}"`),c(i)))}}for(let s of o)await s();if(n)throw new Error("Errors detected, check logs for details.")}function Jo(...e){let t=process.cwd(),r=JSON.parse(me(t+"/tsconfig.json","utf8")),n=r.compilerOptions?.outDir;if(!n)throw new Error("Invalid tsconfig file");let o=an(n),s=pe(n,"package"),i=JSON.parse(me("package.json","utf8")),c=JSON.parse(me("../package.json","utf8")),u=!!i.browser,a=u?i.browser??i.exports?.["."]??"./index.bundle.js":"./index.js",l=i.browser==="./index.bundle.js"&&i.exports&&i.exports["."]!==i.browser,m=[...Object.keys(i.dependencies??{}),...Object.keys(i.peerDependencies??{})],v=ln("./test-screenshot.ts"),E=[{out:u?"index.bundle":"index",in:pe(n,"index.js")}],N=i.exports?Object.values(i.exports).flatMap(g=>g?[pe(n,g)]:[]):E;return Be({outputDir:n,tasks:[F("test-screenshot.html","test-screenshot.html").catchError(()=>J),F("test.html","test.html").catchError(()=>ue({appId:o,pkgJson:i,rootPkg:c})),_e("tsconfig.test.json"),re("index.js")]},{target:"test",outputDir:n,tasks:[fe({appId:o,outputDir:n,node:!u})]},...v?[{target:"test",outputDir:n,tasks:[ue({appId:o,pkgJson:i,rootPkg:c,testFile:"./test-screenshot.js"}),ve(y(async()=>{let{buildDts:g}=await import("./render-A7IJMLQH.js"),{renderJson:at,findExamples:lt}=await import("./render-summary-RXMLD7DO.js"),ut=await g({clean:!1,outputDir:n,noHtml:!0},i),de=at(ut),ft=de.index.flatMap(pt=>lt(pt));return{path:"test-screenshot.json",source:Buffer.from(JSON.stringify({index:de.index,examples:ft}))}}),fe({appId:o,outputDir:n,entryFile:"./test-screenshot.js",ignoreCoverage:!0}))]}]:[],{target:"audit",outputDir:n,tasks:[y(ct).ignoreElements()]},{target:"docs",outputDir:`../docs/${i.name}`,tasks:[Ve({outputDir:`../docs/${i.name}`})]},{target:"package",outputDir:".",tasks:[Oe(),Je(r),q(`rm -rf ${s}`)]},{target:"package",outputDir:s,tasks:[F("README.md","README.md"),F("LICENSE.md","LICENSE.md").catchError(()=>J),re(a),Pe(n,s,"*.d.ts"),te({entryPoints:N,platform:u?"browser":"node",outdir:s,external:m}),...l?[te({entryPoints:E,platform:"browser",outdir:s,external:m})]:[]]},{target:"publish",outputDir:n,tasks:[y(async()=>{await ye(".",s)}).ignoreElements()]},...e)}export{te as a,W as b,Oe as c,re as d,Be as e,q as f,De as g,hn as h,Ne as i,xn as j,F as k,wn as l,yn as m,bn as n,Lt as o,$n as p,Pe as q,vn as r,En as s,ar as t,Je as u,_e as v,Ve as w,_r as x,ue as y,fe as z,ct as A,Jo as B};
@@ -0,0 +1,3 @@
1
+ import{relative as Y,resolve as Z}from"path";import{createRequire as ve}from"module";var a;(function(e){e[e.Unknown=0]="Unknown",e[e.Variable=1]="Variable",e[e.TypeAlias=2]="TypeAlias",e[e.TypeParameter=3]="TypeParameter",e[e.Interface=4]="Interface",e[e.TypeUnion=5]="TypeUnion",e[e.Reference=6]="Reference",e[e.Module=7]="Module",e[e.Class=8]="Class",e[e.Parameter=9]="Parameter",e[e.Property=10]="Property",e[e.Method=11]="Method",e[e.Getter=12]="Getter",e[e.Setter=13]="Setter",e[e.Constructor=14]="Constructor",e[e.Array=15]="Array",e[e.Function=16]="Function",e[e.FunctionType=17]="FunctionType",e[e.ConditionalType=18]="ConditionalType",e[e.Parenthesized=19]="Parenthesized",e[e.Infer=20]="Infer",e[e.IndexedType=21]="IndexedType",e[e.Enum=22]="Enum",e[e.Literal=23]="Literal",e[e.IndexSignature=24]="IndexSignature",e[e.Export=25]="Export",e[e.Keyof=26]="Keyof",e[e.Typeof=27]="Typeof",e[e.ConstructorType=28]="ConstructorType",e[e.Tuple=29]="Tuple",e[e.ThisType=30]="ThisType",e[e.Constant=31]="Constant",e[e.BaseType=32]="BaseType",e[e.ClassType=33]="ClassType",e[e.ObjectType=34]="ObjectType",e[e.Component=35]="Component",e[e.Attribute=36]="Attribute",e[e.Namespace=37]="Namespace",e[e.CallSignature=38]="CallSignature",e[e.ConstructSignature=39]="ConstructSignature",e[e.MappedType=40]="MappedType",e[e.TypeIntersection=41]="TypeIntersection",e[e.ReadonlyKeyword=42]="ReadonlyKeyword",e[e.UnknownType=43]="UnknownType",e[e.Event=44]="Event",e[e.Spread=45]="Spread",e[e.ImportType=46]="ImportType",e[e.Symbol=47]="Symbol"})(a||(a={}));var c;(function(e){e[e.None=0]="None",e[e.Export=1]="Export",e[e.Ambient=2]="Ambient",e[e.Public=4]="Public",e[e.Private=8]="Private",e[e.Protected=16]="Protected",e[e.Static=32]="Static",e[e.Readonly=64]="Readonly",e[e.Abstract=128]="Abstract",e[e.Async=256]="Async",e[e.Default=512]="Default",e[e.Deprecated=8192]="Deprecated",e[e.Overload=16384]="Overload",e[e.External=32768]="External",e[e.DefaultLibrary=65536]="DefaultLibrary",e[e.DeclarationMerge=131072]="DeclarationMerge",e[e.Rest=262144]="Rest",e[e.Optional=524288]="Optional",e[e.Internal=1048576]="Internal"})(c||(c={}));var ee=ve(import.meta.dirname),Fe=ee.resolve("typescript",{paths:[".",import.meta.dirname]}),l=ee(Fe),{getParsedCommandLineOfConfigFile:ke,NodeFlags:G,sys:A}=l,n=l.SyntaxKind,f=l.TypeFlags,te={[n.Unknown]:a.Unknown,[n.VariableDeclaration]:a.Variable,[n.TypeAliasDeclaration]:a.TypeAlias,[n.TypeParameter]:a.TypeParameter,[n.InterfaceDeclaration]:a.Interface,[n.UnionType]:a.TypeUnion,[n.TypeReference]:a.Reference,[n.SourceFile]:a.Module,[n.ClassDeclaration]:a.Class,[n.Parameter]:a.Parameter,[n.PropertyDeclaration]:a.Property,[n.MethodDeclaration]:a.Method,[n.GetAccessor]:a.Getter,[n.SetAccessor]:a.Setter,[n.Constructor]:a.Constructor,[n.ArrayType]:a.Array,[n.FunctionDeclaration]:a.Function,[n.FunctionType]:a.FunctionType,[n.ConditionalType]:a.ConditionalType,[n.ParenthesizedType]:a.Parenthesized,[n.InferType]:a.Infer,[n.IndexedAccessType]:a.IndexedType,[n.EnumDeclaration]:a.Enum,[n.LiteralType]:a.Literal,[n.TemplateLiteralType]:a.Literal,[n.IndexSignature]:a.IndexSignature,[n.ExportSpecifier]:a.Export,[n.KeyOfKeyword]:a.Keyof,[n.TypeQuery]:a.Typeof,[n.ConstructorType]:a.ConstructorType,[n.TupleType]:a.Tuple,[n.ThisType]:a.ThisType,[n.ModuleDeclaration]:a.Namespace,[n.CallSignature]:a.CallSignature,[n.ConstructSignature]:a.ConstructSignature,[n.MappedType]:a.MappedType,[n.IntersectionType]:a.TypeIntersection,[n.ReadonlyKeyword]:a.ReadonlyKeyword,[n.UnknownKeyword]:a.UnknownType,[n.SpreadAssignment]:a.Spread,[n.ImportType]:a.ImportType,[n.SymbolKeyword]:a.Symbol},re={exportsOnly:!0,rootDir:void 0,cxlExtensions:!1},ne=b("number"),ie=b("string"),ae=b("boolean"),oe=b("undefined"),le=b("null"),se=b("void"),ce=b("any"),Ce=b("unknown"),Ee=b("BigInt"),ue=b("never"),F=Symbol("dtsNode"),Pe=l.createPrinter({removeComments:!0,newLine:l.NewLineKind.LineFeed,omitTrailingSemicolon:!0}),M,m,k,I,p,Ne=1,E,P,g,D,U,j={useCaseSensitiveFileNames:!0,readDirectory:A.readDirectory,getCurrentDirectory(){return k?.options.rootDir??A.getCurrentDirectory()},getNewLine:()=>`
2
+ `,fileExists:A.fileExists,getCanonicalFileName:e=>e,readFile:A.readFile,onUnRecoverableConfigFileDiagnostic(e){let t=l.formatDiagnosticsWithColorAndContext([e],j);throw new Error(t)}};function b(e){return{name:e,kind:a.BaseType,flags:0}}function pe(e,t){let r;try{r=ke(e,{rootDir:t?.rootDir?Z(t.rootDir):void 0},j)}catch(i){if(i instanceof Error)throw i;let o=typeof i=="string"?i:String(i);throw new Error(o)}if(!r)throw new Error(`Could not parse config file "${e}"`);return r}function Ae(e){switch(e.kind){case n.BindingElement:return e.parent.parent.parent.flags&G.Const?a.Constant:a.Variable;case n.VariableDeclaration:return e.parent.flags&G.Const?a.Constant:a.Variable;case n.TypeLiteral:case n.ObjectLiteralExpression:return a.ObjectType;case n.PropertySignature:case n.PropertyAssignment:case n.EnumMember:return a.Property;default:return te[e.kind]||a.Unknown}}function K(e,t){return Ne++}function Le(e){let t=g?.rootDir||process.cwd(),r=e.getSourceFile(),i=r?{name:Y(t,r.fileName),index:e.pos,node:e,tsconfig:m.getCompilerOptions().configFilePath}:void 0;return i&&Object.defineProperty(i,"sourceFile",{value:r,enumerable:!1}),i}function B(e){return l.isSourceFile(e)?q(e.fileName):(e?.name?e=e.name:e?.typeName&&(e=e.typeName),e?.escapedText!==void 0?e.escapedText:e.pos!==-1&&l.isStringLiteral(e)?e.getText():l.isTemplateLiteralTypeNode(e)||l.isLiteralTypeNode(e)||l.isLiteralExpression(e)?Pe.printNode(l.EmitHint.Unspecified,e,e.getSourceFile()):e.text?e.text:l.isComputedPropertyName(e)||l.isQualifiedName(e)?e.pos===-1?e.text||"":e.getText():e.moduleName||"")}function y(e,t){let r=e[F]||{};r.source??=Le(e),r.kind=t?.kind??r.kind??Ae(e),r.name||=t?.name||B(e),r.flags??=Oe(e);let i=Be(e,r);return i&&(r.docs=i),t&&Object.assign(r,t),e[F]=r}function V(e,t){let r=t[F];if(!r){let i=t.getSourceFile();if(!m.isSourceFileDefaultLibrary(i)&&!m.isSourceFileFromExternalLibrary(i)&&i.isDeclarationFile){let o=z(e),u=P?.[o];if(u?.source)return u}return y(t)}return r.id??=K(t),r}function Ie(e){return e.kind===n.PropertyDeclaration||e.kind===n.MethodDeclaration||e.kind===n.GetAccessor||e.kind===n.SetAccessor||e.kind===n.PropertySignature||e.kind===n.MethodSignature}function d(e){return(Tt[e.kind]||y)(e)}function we(e){return e.getText()}function Re(e,t){let r=e;if(e.kind===n.ModuleDeclaration)return!1;do{if(r.$$internal)return!0;if(r.$$internal===!1)continue;let i=l.getLeadingCommentRanges(t,r.pos);if(i){for(let o of i)if(t.substring(o.pos,o.end).indexOf("@internal")!==-1)return r.$$internal=!0}}while(r=r.parent);return e.$$internal=!1}function $e(e,t){let r=l.ModifierFlags,i=e.getSourceFile()?.isDeclarationFile,o=0;return(t&r.Export||i||e.kind===n.NamespaceExport)&&(o|=c.Export),t&r.Ambient&&(o|=c.Ambient),t&r.Public&&(o|=c.Public),t&r.Private&&(o|=c.Private),t&r.Protected&&(o|=c.Protected),t&r.Static&&(o|=c.Static),t&r.Readonly&&(o|=c.Readonly),t&r.Abstract&&(o|=c.Abstract),t&r.Async&&(o|=c.Async),t&r.Default&&(o|=c.Default),t&r.Deprecated&&(o|=c.Deprecated),Ie(e)&&(l.isPrivateIdentifier(e.name)?o|=c.Private:o&(c.Private|c.Protected)||(o|=c.Public)),o}function Oe(e){let t=0;e.questionToken&&(t|=c.Optional);let r=l.isSourceFile(e)?e:e.getSourceFile();return r&&(Re(e,r.getFullText())&&(t|=c.Internal),m.isSourceFileDefaultLibrary(r)&&(t|=c.DefaultLibrary),m.isSourceFileFromExternalLibrary(r)&&(t|=c.External)),t}function R(e){if(e.$$resolvedType)return;let t=p.getWidenedType(e);if(t===e)try{let r=p.typeToTypeNode(t,void 0,l.NodeBuilderFlags.NoTypeReduction|l.NodeBuilderFlags.InTypeAlias|l.NodeBuilderFlags.NoTruncation|l.NodeBuilderFlags.IgnoreErrors);return r&&(r.$$resolvedType=!0),r?d(r):void 0}catch(r){console.error(r);return}else t.$$resolvedType=!0;return x(t)}var Me=/<!--(.*?)-->/g;function W(e){return e.trim().replace(Me,"")}function J(e){if(e)return typeof e=="string"?W(e):e.map(t=>t.kind===n.JSDocLink?{tag:"link",value:`${t.name?.getText()||""}${t.text.trim()}`}:{value:W(t.text)})}var Ue=/^\s*\*\s/gm;function je(e){return e.getText().replace(Ue,"")}function Ke(e,t){let r=`
3
+ ${je(t)}`,i=e[e.length-1];if(i){let o=i.value||"";typeof o=="string"?i.value=o+r:o.push({value:r})}else e.push({value:r})}function Be(e,t){let r=e.jsDoc,i=[],o={content:i};return r?.forEach(u=>{let s=J(u.comment);s&&i.push({value:s})}),l.getJSDocTags(e).forEach(u=>{let s=u.tagName.escapedText==="description"?void 0:u.tagName.escapedText,h=u.name?.getText(),N=u.comment?J(u.comment):h;if(g?.cxlExtensions&&s==="tagName"){o.tagName=String(N);return}if(u.comment&&s&&!g?.customJsDocTags?.includes(s)&&s!==s.toLowerCase()&&i.length>0){Ke(i,u);return}s==="deprecated"&&(t.flags|=c.Deprecated),s==="see"&&u.comment==="*"&&(N=h),s==="beta"&&(o.beta=!0),s==="alpha"&&(o.alpha=!0),g?.cxlExtensions&&(s==="attribute"?t.kind=a.Attribute:s==="event"&&(t.kind=a.Event)),N&&!(s==="param"&&e.kind!==n.Parameter)&&i.push({tag:s==="desc"||s==="description"?void 0:s,value:N})}),i.length?o:void 0}function v(e){let t=y(e);t.id===void 0&&(t.id=K(e,t)),t.flags|=$e(e,l.getCombinedModifierFlags(e));let r=t.id,i=e.typeParameters;return i&&(t.typeParameters=i.map(d)),l.isEnumMember(e)?t.value=JSON.stringify(p.getConstantValue(e)):e?.initializer&&(t.value=we(e.initializer)),r&&(M[r]=t),t}function Ve(e){let t=v(e);return e.default&&(t.value=e.default.getText()),e.constraint&&(t.children=[d(e.constraint)]),t}function ze(e){return{name:e.name,kind:a.Unknown,flags:0}}function qe(e){let t=e.valueDeclaration;if(!t)return ze(e);let r=T(t);return r.name||(r.name=t.name.getText()),r.flags&(c.Private|c.Public|c.Protected)&&(r.kind=a.Property),t.dotDotDotToken&&(r.flags=r.flags|c.Rest),t.questionToken&&(r.flags=r.flags|c.Optional),r}function L(e,t){let r=e.declarations?.[0]||e.valueDeclaration,i=e.flags&l.SymbolFlags.Namespace||r?.kind===n.EnumMember?ye(e):e.getName();return r?{name:i,flags:0,kind:a.Reference,type:V(e,r),typeParameters:t?.length?t.map(x):void 0}:{name:i,flags:0,kind:a.Reference,typeParameters:t?.length?t.map(x):void 0}}function Ge(e){return e.flags&f.Enum||e.flags&f.EnumLiteral||e.flags&f.UniqueESSymbol||e.isClassOrInterface()||e.isTypeParameter()||e.objectFlags&l.ObjectFlags.Reference}function We(e){return{name:"",kind:a.IndexedType,flags:0,children:[x(e.objectType),x(e.indexType)]}}function $(e){return e&&(e.declarations?.[0]||e.valueDeclaration)}function de(e){let t=$(e),r=t?d(t):{name:e.name,kind:a.Unknown,flags:0};return r.kind!==a.Namespace&&(r.name=e.name),r}function Je(e){return{name:p.typeToString(e),kind:a.Keyof,type:x(e.type),resolvedType:R(e),flags:0}}function Qe(e,t){return{name:p.typeToString(e),kind:a.Literal,type:t!==e?x(t):void 0,flags:0}}function Q(e){let t=p.typeToTypeNode(e,void 0,l.NodeBuilderFlags.InObjectTypeLiteral|l.NodeBuilderFlags.NoTruncation|l.NodeBuilderFlags.IgnoreErrors);return t?d(t):{name:p.typeToString(e),kind:a.ObjectType,flags:0}}function He(e){return p.isArrayType(e)}function x(e){if(e.aliasSymbol)return L(e.aliasSymbol,e.aliasTypeArguments);if(e.flags&f.Any)return ce;if(e.flags&f.Unknown)return Ce;if(e.flags&f.Void)return se;if(e.flags&f.Boolean)return ae;if(e.flags&f.BigInt)return Ee;if(e.flags&f.Null)return le;if(e.flags&f.Number)return ne;if(e.flags&f.String)return ie;if(e.flags&f.Undefined)return oe;if(e.flags&f.Never)return ue;if(e.flags&f.Index)return Je(e);if(e.flags&f.IndexedAccess)return We(e);if(He(e))return Q(e);let t=e.symbol;if(t&&t.flags&l.SymbolFlags.Namespace){let r=L(e.symbol);return r.kind=a.ImportType,r}if(t&&Ge(e))return L(e.symbol,p.getTypeArguments(e));if(e.flags&f.Literal||e.flags&f.TemplateLiteral){let r=p.getBaseTypeOfLiteralType(e);return e.isStringLiteral()||e.isNumberLiteral()||e.isLiteral()||e.flags&f.TemplateLiteral?Qe(e,r):x(r)}return e.isUnionOrIntersection()?{name:"",flags:0,kind:e.isUnion()?a.TypeUnion:a.TypeIntersection,children:e.types.map(x)}:e.flags&f.Object?Q(e):"symbol"in e?de(e.symbol):{name:p.typeToString(e),kind:a.Unknown,flags:0}}function S(e){let t=v(e),r=p.getSignatureFromDeclaration(e);e.kind===n.ArrowFunction||e.kind===n.FunctionExpression?t.kind=a.Function:e.kind===n.MethodSignature&&(t.kind=a.Method),e.type&&(t.type=d(e.type)),e.typeParameters&&(t.typeParameters=e.typeParameters.map(d)),t.parameters=r?r.getParameters().map(qe):e.parameters.map(d);let i=p.getTypeAtLocation(e);if(p.getSignaturesOfType(i,l.SignatureKind.Call).length>1&&!p.isImplementationOfOverload(e)&&(t.flags=t.flags|c.Overload),r&&!t.type){let o=r.getReturnType();t.type=x(o)}return t}function _e(e){let t=y(e,{name:"Array"});return t.type=d(e.elementType),t}function fe(e,t){return l.canHaveDecorators(e)?l.getDecorators(e)?.find(r=>l.isCallExpression(r.expression)&&l.isIdentifier(r.expression.expression)&&r.expression.expression.escapedText.endsWith(t)):void 0}function Xe(e,t){let r=fe(e,"Attribute");if(r){let i=r.expression.expression.escapedText;t.kind=i==="EventAttribute"?a.Event:a.Attribute}}function Ye(e){let t=e.arguments[0];return t&&l.isStringLiteral(t)?t.text:""}function Ze(e){let t=p.getTypeAtLocation(e);for(;t;){let r=t.symbol.valueDeclaration;if(!r||!l.isClassDeclaration(r))return!1;let i=r.heritageClauses?.find(u=>u.token===l.SyntaxKind.ExtendsKeyword)?.types[0]?.expression,o=i&&p.getTypeAtLocation(i);if(!o||t===o)break;if(o.symbol.name==="Component")return!0;t=o}}function et(e,t,r){let i=fe(e,"Augment"),o=i?.expression?.arguments,u=r.docs||{};if(i||t&&Ze(e))r.kind=a.Component;else return!1;if(r.children){let s=r.children.find(h=>h.name==="tagName"&&h.kind===a.Property&&h.flags&c.Static);s?.value&&(u.tagName=s.value.slice(1,-1))}return o&&o.forEach((s,h)=>{h===0&&l.isStringLiteral(s)?u.tagName=s.text:l.isCallExpression(s)&&l.isIdentifier(s.expression)&&s.expression.escapedText==="role"&&(u.role=Ye(s))}),(u.tagName||u.role)&&(r.docs=u),!!i}function T(e){let t=v(e);if(l.isVariableDeclaration(e)&&(l.isArrayBindingPattern(e.name)||l.isObjectBindingPattern(e.name))&&(t.children=e.name.elements.map(d)),g?.cxlExtensions&&Xe(e,t),!t.type){let r=e.type;if(r)t.type=d(r);else if(l.isFunctionDeclaration(e)||l.isMethodDeclaration(e)){let i=p.getSignatureFromDeclaration(e);i&&(t.type=x(i.getReturnType()))}else try{let i=p.getTypeAtLocation(e);t.type=x(i)}catch(i){console.error(i)}}if(l.isTypeAliasDeclaration(e)){let r=p.getTypeAtLocation(e);t.resolvedType=R(r)}return t}function C(e,t){e.children||=[];for(let r of t)r.parent||(Object.defineProperty(r,"parent",{value:e,enumerable:!1}),e.children.push(r))}function H(e){let t=y(e);if(!t.children){let r=l.isObjectLiteralExpression(e)?e.properties.map(d):e.members.map(d);C(t,r)}return t}function tt(e){let t=$(e),r=t&&ge(t);return r?D?.[r]:void 0}function z(e){if(e.$$fqn)return e.$$fqn;let t=e.getDeclarations()?.[0]?.getSourceFile()?.path;return t?e.$$fqn=`${t}.${e.getName()}`:e.$$fqn=p.getFullyQualifiedName(e)}function rt(e){if(!e)return;if(g?.followReferences){let r=tt(e);if(r){let i=r.children?.find(o=>o.name===e.name);if(i)return i}}let t=P?.[z(e)];return t?.source?t:void 0}function O(e){let t=p.getSymbolAtLocation(e)||e.name&&p.getSymbolAtLocation(e.name),r;if(e.kind===n.InterfaceDeclaration&&t&&!(t.flags&l.SymbolFlags.Class)){if(r=t[F],!r&&t.declarations){let i=t.declarations.find(o=>o[F]);i&&(r=v(i))}r??=rt(t),r&&!(r.flags&c.Export)&&l.getCombinedModifierFlags(e)&l.ModifierFlags.Export&&(r.flags|=c.Export),t[F]??=r}if(r??=v(e),(!r.children||e.kind===n.InterfaceDeclaration)&&C(r,e.members.map(d)),r.children){for(let i of r.children)if(i.kind===a.Constructor&&i.parameters)for(let o of i.parameters)o.kind===a.Property&&C(r,[o])}if(t&&l.isInterfaceDeclaration(e)&&t.flags&l.SymbolFlags.Class){let i=t.declarations?.[0]||t.valueDeclaration;if(r.flags|=c.DeclarationMerge,r.children&&i){let o=V(t,i);C(o,r.children.map(u=>({...u})))}}if(l.isClassDeclaration(e)&&g?.cxlExtensions&&et(e,t,r),e.heritageClauses?.length){let i=r.type={flags:0,kind:a.ClassType,name:"",type:r};if(e.heritageClauses.forEach(o=>C(i,o.types.map(d))),i.children)for(let o of i.children)o.kind===a.Reference&&o.type&&(o.type.extendedBy||(o.type.extendedBy=[])).push({name:r.name,type:r,kind:a.Reference,flags:0})}return r}function nt(e,t){let r=l.ObjectFlags,i=e.objectFlags&r.Interface?n.InterfaceDeclaration:void 0;return i?t.declarations?.find(o=>o.kind===i):t.declarations?.[0]||t.valueDeclaration}function _(e){let t=p.getTypeFromTypeNode(e),r=t.aliasSymbol||t.symbol;!r&&l.isTypeReferenceNode(e)&&(r=p.getSymbolAtLocation(e.typeName)),r&&r.flags&l.SymbolFlags.Alias&&(r=p.getAliasedSymbol(r)??r);let i=r&&nt(t,r),o=i&&r?V(r,i):e.flags&l.NodeFlags.Synthesized?void 0:x(t),u=B(l.isTypeReferenceNode(e)?e.typeName:e.expression);o&&!o.name&&(o.name=u);let s=o?.kind===0?R(t):void 0;return y(e,{name:u,kind:a.Reference,type:o,resolvedType:s,typeParameters:e.typeArguments?.map(d)})}function it(e){return y(e,{children:[d(e.checkType),d(e.extendsType),d(e.trueType),d(e.falseType)]})}function X(e){let t=S(e);return t.name="constructor",t}function at(e){return y(e,{children:[d(e.objectType),d(e.indexType)]})}function ot(e){return y(e,{id:K(e),name:"__index",parameters:e.parameters.map(d),type:d(e.type)})}function lt(e){let t=y(e,{kind:te[e.operator],type:d(e.type)}),r=e.flags&l.NodeFlags.Synthesized?void 0:p.getTypeFromTypeNode(e);if(r){let i=x(r);i.kind!==t.kind&&(t.resolvedType=i)}return t}function st(e){let t=y(e);return t.name=B(e.exprName),t}function ct(e){return y(e,{children:e.elements.map(d)})}function ut(e){let t=d(e.type);return t.flags|=c.Rest,t}function pt(e){let t=y(e);if("typeParameter"in e){let r=d(e.typeParameter);t.children=[r],r.children?.[0]&&(t.children.push(r.children[0]),r.children=void 0)}return e.type&&(t.type=d(e.type)),t}function dt(e){let t=p.getExportSpecifierLocalTargetSymbol(e);if(t){let r=de(t);return r.name=e.name.text,r.flags|=c.Export,r.kind===a.Unknown&&(r.kind=a.Export),r}return T(e)}function q(e){let t=g?.rootDir??k?.options.rootDir??"";return Y(t,e)}function ye(e){let t=e,r=[e.valueDeclaration?.kind===n.SourceFile&&e.name.startsWith('"')?`"${q(e.name.slice(1,-1))}"`:e.name];for(;t=t.parent;)t.valueDeclaration?.kind!==n.SourceFile&&r.unshift(t.name);return r.join(".")}function ft(e,t){let r=t?ye(t):void 0;if(t){if(t.$$moduleResult)return t.$$moduleResult;if(r&&g?.followReferences){let o=Te(t,e.getSourceFile())||D?.[r];if(o)return t.$$moduleResult=o}}let i=v(e);return t&&(t.$$moduleResult=i),r&&(g?.forceExports?.includes(r)&&(i.flags|=c.Export),i.name=r,D&&(D[r]=i)),i}function yt(e,t){if(!e||E?.includes(t))return!1;if(g?.exportsOnly){let r=e;do{if(r.valueDeclaration?.kind===n.SourceFile)break;let i=r.$$moduleResult;if(!i||!(i.flags&c.Export))return!1}while(r=r.parent)}return!0}function me(e){let t=p.getSymbolAtLocation(e)||p.getSymbolAtLocation(e.name),r=ft(e,t);return e.body?.forEachChild(i=>xe(i,r)),t&&r.flags&c.Export&&Se(t),yt(t,r)&&E?.push(r),r}function mt(e){let t=p.getSymbolAtLocation(e);if(t){let r=L(t);return r.kind=a.ImportType,r}return y(e,{})}function gt(e){let t=y(e);return t.children=[d(e.expression)],t}var Tt={[n.AnyKeyword]:()=>ce,[n.StringKeyword]:()=>ie,[n.NumberKeyword]:()=>ne,[n.BooleanKeyword]:()=>ae,[n.VoidKeyword]:()=>se,[n.NeverKeyword]:()=>ue,[n.NullKeyword]:()=>le,[n.FunctionType]:S,[n.CallSignature]:S,[n.ConstructSignature]:S,[n.UndefinedKeyword]:()=>oe,[n.ArrayType]:_e,[n.FunctionDeclaration]:S,[n.ArrowFunction]:S,[n.FunctionExpression]:S,[n.TypeReference]:_,[n.ExpressionWithTypeArguments]:_,[n.ConditionalType]:it,[n.ParenthesizedType]:T,[n.InferType](e){return y(e,{type:d(e.typeParameter)})},[n.TypeQuery]:st,[n.IndexedAccessType]:at,[n.IntersectionType](e){return y(e,{kind:a.TypeIntersection,children:e.types.map(d)})},[n.UnionType](e){let t=e.$$resolvedType?void 0:p.getTypeAtLocation(e);return y(e,{kind:a.TypeUnion,children:e.types.map(d),resolvedType:t&&R(t)})},[n.TupleType]:ct,[n.EnumDeclaration]:O,[n.EnumMember]:T,[n.RestType]:ut,[n.PropertySignature]:T,[n.Constructor]:X,[n.Parameter]:T,[n.PropertyDeclaration]:T,[n.MethodDeclaration]:S,[n.MethodSignature]:S,[n.ClassDeclaration]:O,[n.TypeAliasDeclaration]:T,[n.TypeParameter]:Ve,[n.InterfaceDeclaration]:O,[n.VariableDeclaration]:T,[n.BindingElement]:T,[n.ConstructorType]:X,[n.GetAccessor]:S,[n.SetAccessor]:S,[n.TypeOperator]:lt,[n.TypeLiteral]:H,[n.TemplateLiteralType]:v,[n.ObjectLiteralExpression]:H,[n.PropertyAssignment]:T,[n.ShorthandPropertyAssignment]:T,[n.IndexSignature]:ot,[n.MappedType]:pt,[n.SpreadAssignment]:gt,[n.ModuleDeclaration]:me,[n.NamespaceExport]:T,[n.NamespaceImport]:T,[n.ExportSpecifier]:dt,[n.ImportType]:mt,[n.SymbolKeyword]:v};function xt({options:e,errors:t,fileNames:r,projectReferences:i},o,u){e.noEmit=!0,u||(u=l.createCompilerHost(e)),m=l.createProgram({configFileParsingDiagnostics:t,rootNames:r,projectReferences:i,options:e,host:u}),p=m.getTypeChecker();let s=l.getPreEmitDiagnostics(m);o.debug&&s.length&&console.warn(l.formatDiagnosticsWithColorAndContext(s,u))}function ge(e){let t=e.kind===n.SourceFile?e:e.getSourceFile();return t.isDeclarationFile?t.originalFileName:void 0}function St(e){let t=m.getResolvedProjectReferences();if(t)return t.find(r=>r?.commandLine.fileNames.includes(e))}function Te(e,t){let r=$(e);if(r&&l.isSourceFile(r)&&!I.includes(r))if(r.isDeclarationFile){if(g?.followReferences){let i=ge(r),o=i&&St(i);if(o){he(o.commandLine,g);let u=q(i);return E?.find(s=>s.name===u)}}if(t.isDeclarationFile)return w(r)}else return w(r)}function xe(e,t){function r(i){let o=d(i);(!g?.exportsOnly||o.flags&c.Export)&&C(t,[o])}if(l.isVariableStatement(e))e.declarationList.declarations.map(r);else if(l.isExportDeclaration(e)){if(e.exportClause)l.isNamedExports(e.exportClause)?e.exportClause.elements.forEach(r):r(e.exportClause);else if(e.moduleSpecifier){let i=p.getSymbolAtLocation(e.moduleSpecifier);i&&Te(i,e.getSourceFile())}}else switch(e.kind){case n.InterfaceDeclaration:case n.TypeAliasDeclaration:case n.FunctionDeclaration:case n.EnumDeclaration:case n.VariableDeclaration:case n.ClassDeclaration:r(e);break;case n.ModuleDeclaration:me(e);break;default:break}}function Se(e){e.exports?.forEach(t=>{let r=$(t)?.[F];r?.source&&!(r.flags&c.Internal)&&P&&(P[z(t)]=r)})}function w(e){let t=D?.[e.fileName];if(t)return t;let r=y(e);if(D&&(D[e.fileName]=r),r.flags&c.Internal)return r;e.forEachChild(o=>xe(o,r));let i=p.getSymbolAtLocation(e);return i&&Se(i),e.isDeclarationFile&&e.referencedFiles.forEach(o=>{let u=o.fileName;if(k?.fileNames.includes(u))return;let s=m.getSourceFile(u);s&&!m.isSourceFileDefaultLibrary(s)&&!m.isSourceFileFromExternalLibrary(s)&&w(s)}),r.children?.length&&E?.push(r),r}function be(e,t){xt(e,t),I=e.fileNames.flatMap(r=>m.getSourceFile(r)||[]),I.forEach(w)}function he(e,t){let r=e.options.configFilePath;if(!U?.includes(r)){let i=m,o=p;U?.push(r),be(e,t),m=i,p=o}}function De(e,t){g=t,D={},P={},U=[],I=[],E=[],M={};let r={modules:E,index:M,config:e,env:{typescript:l.version}};return e.projectReferences?.forEach(i=>{i.prepend&&he(pe(l.resolveProjectReferencePath(i)),t)}),be(e,t),r}function Dt(e,t,r){return k=l.parseJsonConfigFileContent(e,j,t),De(k,{...re,...r})}function vt(e=Z("tsconfig.json"),t){let r={...re,...t};return k=pe(e,r),De(k,r)}export{a,c as b,Dt as c,vt as d};
File without changes
@@ -0,0 +1,2 @@
1
+ import{c as x,d as v}from"./chunk-H5JLK2JS.js";import{existsSync as R}from"fs";import{dirname as f,join as g,resolve as m,relative as k}from"path";import{readFile as D,stat as G,mkdir as $}from"fs/promises";import{join as K,resolve as J}from"path";import{spawn as P}from"child_process";var B={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]},V=Object.keys(B).reduce((e,t)=>{let n=B[t],o="\x1B["+n[0]+"m",a="\x1B["+n[1]+"m";return e[t]=s=>o+s+a,e},{}),S='"(?:[^"\\\\]|\\\\.)*"',L="-(\\w\\w+)",E=`\\s*=?\\s*(${S}|[^-][^\\s]*)?`,T=`-(\\w)${E}`,H=`--(\\w+)${E}`,X=new RegExp(`\\s*(?:${L}|${T}|${H}|(${S}|[^\\s]+))`,"g");async function h(e){await G(e).catch(()=>h(J(e,"..")).then(()=>$(e)))}async function j(e,t){try{return JSON.parse(await D(e,"utf8"))}catch(n){if(t!==void 0)return t;throw n}}function I(e,t={}){return new Promise((n,o)=>{let a=P(e,[],{shell:!0,...t}),s="";a.stdout?.on("data",i=>s+=i?.toString()||""),a.stderr?.on("data",i=>s+=i?.toString()||""),a.on("exit",i=>{i!==0?o(s):n(s)})})}var C={repository:{type:"string",help:"URL of the source code repository (e.g., GitHub repository URL)"},clean:{help:"Removes all existing files from the output directory before generating documentation."},outputDir:{short:"o",type:"string",help:"Specifies the output directory where the generated documentation will be saved."},scripts:{type:"string",many:!0,help:"List of additional scripts (paths) to include in the generated documentation HTML."},demoScripts:{type:"string",many:!0,help:"List of scripts (paths) to include in the generated documentation demo output."},demoStyles:{type:"string",help:"CSS styles to include in the generated demo output."},packageJson:{help:'Path to the package.json file. Defaults to "./package.json" if not specified.',type:"string"},packageName:{help:"Sets the title of the generated documentation. Defaults to the name property in package.json.",type:"string"},summary:{help:'Enables generation of a "summary.json" file.',type:"boolean"},sitemap:{help:"Generates a sitemap for the documentation using the provided value as the base URL.",type:"string"},file:{help:"Allows parsing of a single file instead of an entire project.",type:"string",many:!0},tsconfig:{help:'Path to the tsconfig.json file used for TypeScript compilation. Defaults to "./tsconfig.json" if not specified.',type:"string"},markdown:{help:"Enables rendering of markdown syntax within symbol descriptions.",type:"boolean"},markdownSummary:{help:"Enables output of documentation as markdown summary.",type:"boolean"},typeRoots:{help:"Specify additional type root directories (paths) for TypeScript projects (can be used multiple times).",type:"string",many:!0},docsJson:{help:'Path to a custom "3doc.json" file for configuring documentation generation.',type:"string"},baseHref:{help:"Sets the base URL for markdown links within the generated documentation.",type:"string"},exclude:{help:"List of modules (paths) to exclude from documentation generation (can be used multiple times).",type:"string",many:!0},rootDir:{help:"Overrides the default root directory used for resolving TypeScript project file names.",type:"string"},customJsDocTags:{help:"Allows declaration of custom jsdoc tags for documentation (can be used multiple times).",type:"string",many:!0},cxlExtensions:{help:"Enables support for Coaxial UI extensions within the generated documentation.",type:"boolean"},exports:{help:"Treats specific symbols (paths) as exported even if not explicitly marked.",type:"string",many:!0},followReferences:{help:"Includes documentation from symbols referenced in project references.",type:"boolean"},headHtml:{help:"Path to a file containing custom HTML to be added to the `<head>` element of the generated page.",type:"string"},noHtml:{help:"Do not generate HTML",type:"boolean"},debug:{help:"Enables debug mode to print detailed output during documentation generation.",type:"boolean"}},M=/[&<"]/g,A={"&":"&amp;","<":"&lt;",'"':"&quot;"};function _(e){return e.replace(M,t=>A[t])}function Z(e){if(e.startsWith("<caption>")){let t=e.indexOf(`
2
+ `);return{title:e.slice(0,t).trim().replace("</caption>",""),value:e=e.slice(t).trim()}}return{title:"",value:e}}function O(e,t){let{file:n,typeRoots:o,rootDir:a}=e,s={rootDir:a,exportsOnly:!0,customJsDocTags:e.customJsDocTags,cxlExtensions:e.cxlExtensions??!1,forceExports:e.exports,followReferences:e.followReferences};return n?.[0]?x({compilerOptions:{allowJs:!0,baseUrl:k(a??"",f(n[0])),sourceMap:!1,module:"nodenext",moduleResolution:"nodenext",typeRoots:o||[],noEmit:!0,lib:t.browser?["esnext","dom"]:["esnext"]},files:n.map(i=>a?k(a,i):i)},a??process.cwd(),s):v(e.tsconfig,s)}function U(e,t){return Array.isArray(e)?e.map(n=>m(t,n)):m(t,e)}function W(e){return e in C}async function ee(e,t){let n=m(e.rootDir??(e.tsconfig?f(e.tsconfig):"")),o={outputDir:"./docs",clean:!1,debug:!1,tsconfig:"tsconfig.json",packageJson:g(n,"package.json"),summary:!1,...e,rootDir:n},a=o.docsJson??g(n,"3doc.json");if(R(a)){let r=await j(a),l=["scripts","demoScripts","packageJson","file","tsconfig","typeRoots"];for(let c in r){let y=f(a);c==="extra"?o.extra=(r.extra??[]).map(b=>({...b,items:b.items.map(w=>({...w,file:m(y,w.file)}))})):W(c)&&(o[c]=l.includes(c)?U(r[c],y):r[c])}}function s(r){if(!r)throw new Error("Invalid dir");return I(`find "${r}" -mindepth 1 -maxdepth 1 \\( -type f -o -type l \\) -delete`)}let i=o.outputDir,p=await j(o.packageJson);if(await h(i),await h(i+"/"+p.version),o.clean&&(await s(i),await s(g(i,p.version))),o.repository===void 0&&p.repository){let r=p.repository;o.repository=typeof r=="string"?r:r.url}let d=O(o,p),u={...o,modulePackage:p,spa:!0};if(o.summary){let r=await import("./render-summary-RXMLD7DO.js");await Promise.all(r.render(u,d).map(l=>t(l,i)))}if(o.markdownSummary){let{render:r}=await import("./render-md-OFBTLFMU-FMSPZNTU.js");await Promise.all(r(u,d).map(l=>t(l,i)))}if(!o.noHtml){let r=await import("./render-html-AGCMTFIF-RDB43NBT.js");await Promise.all(r.render(u,d).map(l=>t(l,i)))}}export{C as a,_ as b,Z as c,O as d,ee as e};
@@ -0,0 +1 @@
1
+ import{a as e,b as t}from"./chunk-H5JLK2JS.js";var u={[t.None]:"",[t.Export]:"export",[t.Ambient]:"ambient",[t.Public]:"public",[t.Private]:"private",[t.Protected]:"protected",[t.Static]:"static",[t.Readonly]:"readonly",[t.Abstract]:"abstract",[t.Async]:"async",[t.Default]:"default",[t.Deprecated]:"deprecated",[t.Overload]:"overload",[t.External]:"external",[t.DefaultLibrary]:"default-library",[t.DeclarationMerge]:"declaration-merge",[t.Rest]:"rest",[t.Optional]:"optional",[t.Internal]:"internal"},r={[e.Unknown]:"Unknown",[e.Constant]:"Constant",[e.Variable]:"Variable",[e.BaseType]:"BaseType",[e.TypeAlias]:"Type Alias",[e.TypeParameter]:"Type Parameter",[e.Interface]:"Interface",[e.TypeUnion]:"Union",[e.Reference]:"Reference",[e.Module]:"Module",[e.Class]:"Class",[e.ClassType]:"Class Type",[e.Parameter]:"Parameter",[e.Property]:"Property",[e.Method]:"Method",[e.Getter]:"Getter",[e.Setter]:"Setter",[e.Constructor]:"Constructor",[e.Array]:"Array",[e.Function]:"Function",[e.FunctionType]:"Function Type",[e.ConditionalType]:"Conditional Type",[e.Parenthesized]:"Parenthesized",[e.Infer]:"Infer",[e.IndexedType]:"Indexed Type",[e.Enum]:"Enum",[e.ObjectType]:"Object Type",[e.Literal]:"Literal",[e.IndexSignature]:"Index Signature",[e.Export]:"Export",[e.Component]:"Component",[e.Attribute]:"Attribute",[e.Keyof]:"Keyof",[e.Typeof]:"Typeof",[e.ConstructorType]:"Constructor Type",[e.Tuple]:"Tuple Type",[e.ThisType]:"this",[e.Namespace]:"Namespace",[e.CallSignature]:"Call Signature",[e.ConstructSignature]:"Construct Signature",[e.MappedType]:"Mapped Type",[e.TypeIntersection]:"Intersection Type",[e.ReadonlyKeyword]:"Readonly Keyword",[e.UnknownType]:"unknown",[e.Event]:"Event",[e.Spread]:"Spread",[e.ImportType]:"Import Type",[e.Symbol]:"Symbol"},a={[e.Constant]:"Constants",[e.Variable]:"Variables",[e.Interface]:"Interfaces",[e.Class]:"Classes",[e.Property]:"Properties",[e.Method]:"Methods",[e.Getter]:"Getters",[e.Setter]:"Setters",[e.Constructor]:"Constructor",[e.Function]:"Functions",[e.Enum]:"Enums",[e.Component]:"Components",[e.Attribute]:"Attributes",[e.TypeAlias]:"Type Alias",[e.CallSignature]:"Call Signature",[e.ConstructSignature]:"Construct Signature",[e.Event]:"Events",[e.IndexSignature]:"Index Signature",[e.Export]:"Exports",[e.Namespace]:"Namespaces"},o={Members:"Members",API:"API","Inherited from":"Inherited from",Unknown:"Unknown",Parameters:"Parameters",Example:"Example",Demo:"Demo","Extended By":"Extended By"},s={see:"Related",usageNotes:"Usage Notes",returns:"Returns"};function l(n){return a[n]||p("Unknown")}function y(n){return r[n]||n.toString()}function p(n){return o[n]||n}function c(n){return s[n]||n}export{a,l as b,y as c,p as d,c as e};
@@ -0,0 +1,3 @@
1
+ import{readFile as B,stat as O,mkdir as R}from"fs/promises";import{spawn as v}from"child_process";import*as w from"node:readline/promises";import{inspect as k}from"util";k.defaultOptions.depth=null;var h={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]},C=Object.keys(h).reduce((t,r)=>{let n=h[r],a="\x1B["+n[0]+"m",e="\x1B["+n[1]+"m";return t[r]=s=>a+s+e,t},{}),b='"(?:[^"\\\\]|\\\\.)*"',P="-(\\w\\w+)",y=`\\s*=?\\s*(${b}|[^-][^\\s]*)?`,E=`-(\\w)${y}`,S=`--(\\w+)${y}`,D=new RegExp(`\\s*(?:${P}|${E}|${S}|(${b}|[^\\s]+))`,"g");async function p({prompt:t,mask:r}){if(process.stdout.write(t),!r){let e=w.createInterface({input:process.stdin,output:process.stdout});try{return await e.question("")}finally{e.close()}}let n=process.stdin;if(!n.isTTY)throw new Error("Masked input requires a TTY");n.setRawMode(!0),n.resume(),n.setEncoding("utf8");let a="";return await new Promise(e=>{let s=i=>{i==="\r"||i===`
2
+ `?(n.off("data",s),n.setRawMode(!1),n.pause(),process.stdout.write(`
3
+ `),e(a)):i===""?process.exit(130):i==="\x7F"?a=a.slice(0,-1):a+=i};n.on("data",s)})}function m(){return process.hrtime.bigint()}async function q(t){let r=m(),n=await(typeof t=="function"?t():t),a=0,e=m(),s={start:r,tasks:++a,time:e-r,result:n};return r=e,s}async function J(t,r){try{return JSON.parse(await B(t,"utf8"))}catch(n){if(r!==void 0)return r;throw n}}function W(t,...r){console.log(typeof t=="string"?t:t(),...r)}function o(t,r={}){return new Promise((n,a)=>{let e=v(t,[],{shell:!0,stdio:["inherit","pipe","pipe"],...r}),s="";e.stdout?.on("data",i=>s+=i.toString()||""),e.stderr?.on("data",i=>s+=i.toString()||""),e.on("exit",i=>{i!==0?a(s):n(s)})})}async function $(t){return(await o("git rev-parse --abbrev-ref HEAD",{cwd:t})).trim()}async function F(t){return(await o(`git rev-parse --short "$(git symbolic-ref HEAD | sed 's@^refs/remotes/origin/@@')"`,{cwd:t})).trim()}async function L(t){try{await o(`git status > /dev/null; git diff-index --quiet ${t}`)}catch{throw new Error("Not a clean repository")}}async function U(t){try{await o(`git diff origin/${t} ${t} --quiet`)}catch{throw new Error("Branch has not been merged with origin")}}async function x(t){return(await o("git remote show origin",{cwd:t})).match(/HEAD branch:\s+(\S+)/)?.[1]}import{readFile as G}from"fs/promises";import{resolve as M}from"path";async function N(t){return JSON.parse(await G(t,"utf8"))}async function V(t,r){let n=M(r);try{await o("npm install --production",{cwd:n}),await o("npm test",{cwd:t})}finally{await o(`rm -rf ${n}/node_modules ${n}/package-lock.json`)}}async function Z(t,r){let n=await $(process.cwd()),a=await x(process.cwd());if(n!==a)throw`Active branch "${n}" is not main branch`;let e=await N(`${t}/package.json`),s=e.name.split("/")[1],i=await T(e.name);if(i.versions.includes(e.version))console.log(`Package "${e.name}" version "${e.version}" already published. Skipping.`);else{console.log(`Building ${e.name} ${e.version}`),await o(`npm run build package --prefix ${t}`),await V(t,r);let c=e.version.includes("beta")?"beta":e.version.includes("alpha")?"alpha":"latest",u=c==="alpha"?i["dist-tags"].alpha:void 0,d=await p({prompt:"NPM OTP: ",mask:!0});if(!d)throw new Error("Invalid otp");if(console.log(await o(`npm publish --access=public --tag ${c} --otp ${d}`,{cwd:r})),c==="beta"||c==="alpha"){let g=await p({prompt:"NPM OTP: ",mask:!0}),f=`${e.version.split(".")[0]}-${c}`;console.log(await o(`npm dist-tag add ${e.name}@${e.version} ${f} --otp ${g}`))}if(u){let g=await p({prompt:"NPM OTP: ",mask:!0});try{console.log(await o(`npm unpublish ${e.name}@${u} --otp ${g}`))}catch(f){console.error(`Removing old version ${e.name}@${u} failed.`),console.error(f)}}}let l=`${s}/${e.version}`;(await o(`git tag -l ${l}`)).trim()||(console.log(`Creating tag "${l}"`),await o(`git tag ${l} && git push origin ${l}`))}async function T(t){try{return JSON.parse((await o(`npm show ${t} --json`)).trim())}catch(r){let n=String(r);if(/\bE404\b/.test(n)||/Not Found/i.test(n)||/code E404/i.test(n))return{name:t,version:"",private:!1,bugs:"",repository:"",bundledDependencies:{},"dist-tags":{},versions:[],time:{}};throw r}}export{C as a,q as b,J as c,W as d,o as e,$ as f,F as g,L as h,U as i,x as j,N as k,Z as l};
package/docs.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { Output } from './builder.js';
2
+ import { BuildDocsOptions } from '@cxl/3doc/render.js';
3
+ export declare function buildDocs(options: BuildDocsOptions): import("../rx/index.js").Observable<Output, "none" | "emit1">;
@@ -1,2 +1,2 @@
1
- declare const _default: import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.ConfigArray;
1
+ declare const _default: import("@eslint/config-helpers").Config[];
2
2
  export default _default;
package/eslint-config.js CHANGED
@@ -1,13 +1,18 @@
1
1
  import js from '@eslint/js';
2
+ import { defineConfig } from 'eslint/config';
2
3
  import ts from 'typescript-eslint';
3
- export default ts.config([
4
+ export default defineConfig([
4
5
  js.configs.recommended,
5
- ts.configs.recommended,
6
+ ts.configs.recommended, //TypeChecked,
6
7
  {
7
8
  files: ['**/*.ts', '**/*.tsx'],
8
9
  languageOptions: {
9
10
  ecmaVersion: 2022,
10
11
  sourceType: 'module',
12
+ parserOptions: {
13
+ // enables type-aware rules without hardcoding a project path
14
+ projectService: true,
15
+ },
11
16
  },
12
17
  rules: {
13
18
  '@typescript-eslint/member-ordering': 'error',
@@ -23,6 +28,34 @@ export default ts.config([
23
28
  '@typescript-eslint/no-this-alias': 'off',
24
29
  '@typescript-eslint/no-use-before-define': 'off',
25
30
  '@typescript-eslint/no-empty-interface': 'off',
31
+ '@typescript-eslint/no-unnecessary-type-assertion': 'error',
32
+ '@typescript-eslint/no-floating-promises': 'error',
33
+ '@typescript-eslint/no-misused-promises': [
34
+ 'error',
35
+ { checksVoidReturn: { attributes: false } },
36
+ ],
37
+ /*'@typescript-eslint/strict-boolean-expressions': [
38
+ 'error',
39
+ { allowString: true, allowNumber: false },
40
+ ],*/
41
+ '@typescript-eslint/no-unnecessary-condition': [
42
+ 'error',
43
+ { allowConstantLoopConditions: true },
44
+ ],
45
+ '@typescript-eslint/switch-exhaustiveness-check': [
46
+ 'error',
47
+ { considerDefaultExhaustiveForUnions: true },
48
+ ],
49
+ // Prefer modern nullable patterns
50
+ /*'@typescript-eslint/prefer-nullish-coalescing': [
51
+ 'error',
52
+ { ignoreMixedLogicalExpressions: true },
53
+ ],*/
54
+ '@typescript-eslint/prefer-optional-chain': 'error',
55
+ '@typescript-eslint/no-unsafe-call': 'error',
56
+ '@typescript-eslint/no-unsafe-member-access': 'error',
57
+ '@typescript-eslint/no-unsafe-return': 'error',
58
+ '@typescript-eslint/no-unsafe-argument': 'error',
26
59
  },
27
60
  },
28
61
  ]);
package/file.d.ts CHANGED
@@ -4,13 +4,13 @@ import { Output } from './builder.js';
4
4
  * Provides an Observable that emits the absolute paths of all entries in a given
5
5
  * directory. Useful for streaming file paths for further processing.
6
6
  */
7
- export declare function ls(dir: string): Observable<string, "none">;
7
+ export declare function ls(dir: string): Observable<string, "none" | "emit1">;
8
8
  export declare function read(source: string): Promise<Output>;
9
9
  export declare function filterPath(matchPath: string): import("../rx/index.js").Operator<Output, Output>;
10
10
  export declare function file(source: string, out?: string): Observable<{
11
11
  path: string;
12
12
  source: Buffer<ArrayBufferLike>;
13
- }, "none">;
13
+ }, "none" | "emit1">;
14
14
  export declare function basename(replace?: string): import("../rx/index.js").Operator<Output, Output>;
15
15
  export declare function concatFile(outName: string, separator?: string): import("../rx/index.js").Operator<Output, {
16
16
  path: string;
@@ -19,11 +19,12 @@ export declare function concatFile(outName: string, separator?: string): import(
19
19
  /**
20
20
  * Reads multiple files asynchronously and emits them in order
21
21
  */
22
- export declare function files(sources: string[]): Observable<Output, "none">;
23
- export declare function matchStat(fromPath: string, toPath: string): Promise<boolean>;
22
+ export declare function files(sources: string[]): Observable<Output, "none" | "emit1">;
23
+ export declare function older(fromPath: string, toPath: string): Promise<boolean>;
24
+ export declare function ifOlder(fromPath: string, toPath: string): Observable<boolean, "none" | "emit1">;
24
25
  /**
25
26
  * Copy Directory
26
27
  */
27
- export declare function copyDir(fromPath: string, toPath: string, glob?: string): Observable<never, "none">;
28
+ export declare function copyDir(fromPath: string, toPath: string, glob?: string): Observable<never, "none" | "emit1">;
28
29
  export declare function getSourceMap(out: Output): Output | undefined;
29
- export declare function zip(src: string[], path: string): Observable<Output>;
30
+ export declare function zip(src: string[], path: string, cwd?: string): Observable<Output>;
package/git.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export declare function getBranch(cwd: string): Promise<string>;
2
+ export declare function getRefHash(cwd?: string): Promise<string>;
2
3
  export declare function checkBranchClean(branch: string): Promise<void>;
3
4
  export declare function checkBranchUpToDate(branch: string): Promise<void>;
4
5
  export declare function getMainBranch(cwd: string): Promise<string | undefined>;
package/index.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  #!/usr/bin/env node
2
- export { basename, file, files, concatFile, copyDir, zip } from './file.js';
3
- export { pkg, readme, esbuild } from './package.js';
2
+ export * from './file.js';
3
+ export { pkg, readme, esbuild, readPackage } from './package.js';
4
4
  export { Package } from './npm.js';
5
5
  export { buildLibrary } from './library.js';
6
- export { Task, build, exec, shell } from './builder.js';
6
+ export { audit } from './audit.js';
7
+ export { BuildConfiguration, Output, Task, build, exec, shell, } from './builder.js';
8
+ export * from './git.js';
9
+ export * from './lint.js';
10
+ export * from './spec.js';
11
+ export { TsconfigJson, tsconfig } from './tsc.js';
12
+ export { buildDocs } from './docs.js';
package/index.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import{A as s,B as d,a as r,b as t,c as e,d as i,e as m,f as a,g as p,h as l,i as n,j as c,k as u,l as w,m as g,n as y,o as j,p as k,q as L,r as h,s as v,t as D,u as P,v as f,w as x,x as R,y as S,z as q}from"./chunk-BRS7FMWC.js";import"./chunk-SAGAXEIB.js";import"./chunk-X2FGYCN3.js";import"./chunk-H5JLK2JS.js";import{f as z,g as A,h as B,i as C,j as E}from"./chunk-Z5ZAKSCR.js";import"./chunk-5TBO732O.js";import{existsSync as b}from"fs";if(import.meta.main)if(b("./project.json")){let{buildRoot:o}=await import("./root-5D4JT3VY.js");await o()}else{let{buildLibrary:o}=await import("./library-VNI53TU5.js");await o()}export{s as audit,w as basename,m as build,x as buildDocs,d as buildLibrary,B as checkBranchClean,C as checkBranchUpToDate,g as concatFile,L as copyDir,r as esbuild,D as eslint,P as eslintTsconfig,a as exec,u as file,y as files,c as filterPath,R as generateEsmTestFile,S as generateTestFile,z as getBranch,E as getMainBranch,A as getRefHash,h as getSourceMap,k as ifOlder,l as ls,j as older,i as pkg,n as read,t as readPackage,e as readme,q as runTests,p as shell,f as tsconfig,v as zip};
@@ -0,0 +1 @@
1
+ import{B as a}from"./chunk-BRS7FMWC.js";import"./chunk-SAGAXEIB.js";import"./chunk-X2FGYCN3.js";import"./chunk-H5JLK2JS.js";import"./chunk-Z5ZAKSCR.js";import"./chunk-5TBO732O.js";export{a as buildLibrary};
package/lint.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { Observable } from '../rx/index.js';
2
2
  import { Output } from './builder.js';
3
+ import type { TsconfigJson } from './tsc.js';
3
4
  import type { ESLint } from 'eslint';
4
- export declare function eslint(options?: ESLint.Options): Observable<Output, "none">;
5
+ export declare function eslint(files?: string[], options?: ESLint.Options): Observable<Output, "none" | "emit1">;
6
+ export declare function eslintTsconfig(path?: string | TsconfigJson): Observable<Output, "none" | "emit1">;
package/npm.d.ts CHANGED
@@ -3,14 +3,14 @@ export type Dependencies = Record<string, string>;
3
3
  export interface Package {
4
4
  name: string;
5
5
  version: string;
6
- description: string;
7
- license: License;
8
- files: string[];
9
- main: string;
6
+ description?: string;
7
+ license?: License;
8
+ files?: string[];
9
+ main?: string;
10
10
  bin?: string;
11
11
  keywords?: string[];
12
12
  browser?: string;
13
- homepage: string;
13
+ homepage?: string;
14
14
  private: boolean;
15
15
  bugs: string;
16
16
  repository: string | {
@@ -27,7 +27,7 @@ export interface Package {
27
27
  scripts?: Record<string, string>;
28
28
  exports?: Record<string, string>;
29
29
  bundledDependencies: Dependencies;
30
- tsgo?: boolean;
30
+ docs?: string;
31
31
  }
32
32
  export interface PackageInfo extends Package {
33
33
  'dist-tags': Record<string, string>;
package/package.d.ts CHANGED
@@ -3,7 +3,8 @@ import { Output } from './builder.js';
3
3
  import { Package } from './npm.js';
4
4
  import * as esbuildApi from 'esbuild';
5
5
  export declare const BASEDIR: string;
6
- export declare function esbuild(options: esbuildApi.BuildOptions): Observable<never, "none">;
6
+ export declare function getDependencies(rootPkg: Package, pkgJson: Package): Record<string, string>;
7
+ export declare function esbuild(options: esbuildApi.BuildOptions): Observable<never, "none" | "emit1">;
7
8
  export declare function readPackage(base?: string): Package;
8
9
  /**
9
10
  * Generate README file
@@ -11,5 +12,5 @@ export declare function readPackage(base?: string): Package;
11
12
  export declare function readme(): Observable<{
12
13
  path: string;
13
14
  source: Buffer<ArrayBuffer>;
14
- }, "none">;
15
- export declare function pkg(main: string): Observable<Output, "none">;
15
+ }, "none" | "emit1">;
16
+ export declare function pkg(main?: string): Observable<Output, "none" | "emit1">;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cxl/build",
3
- "version": "1.0.0-beta.6",
3
+ "version": "1.0.0",
4
4
  "description": "A flexible build system that executes configurable build tasks producing output files, with logging and shell command support.",
5
5
  "license": "GPL-3.0",
6
6
  "files": [
@@ -10,11 +10,11 @@
10
10
  "LICENSE.md",
11
11
  "*.md"
12
12
  ],
13
- "main": "./index.bundle.js",
14
- "homepage": "https://cxlio.github.io/cxl/build",
13
+ "main": "./index.js",
14
+ "homepage": "https://cxlio.github.io/docs/@cxl/build",
15
15
  "bugs": "https://github.com/cxlio/open/issues",
16
16
  "bin": {
17
- "cxl-build": "index.bundle.js"
17
+ "cxl-build": "index.js"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
@@ -22,11 +22,14 @@
22
22
  "directory": "build"
23
23
  },
24
24
  "dependencies": {
25
- "@eslint/js": "^9.36.0",
25
+ "@eslint/js": "^9.39.1",
26
26
  "esbuild": "^0.25.10",
27
- "typescript": "^5.9.2",
28
- "typescript-eslint": "^8.45.0",
27
+ "typescript": "^5.9.3",
28
+ "typescript-eslint": "^8.49.0",
29
29
  "puppeteer": "^24.22.3"
30
30
  },
31
+ "peerDependencies": {
32
+ "pngjs": "^6.0.0"
33
+ },
31
34
  "type": "module"
32
35
  }
@@ -0,0 +1 @@
1
+ import"./chunk-SAGAXEIB.js";import{a,b,c,d,e}from"./chunk-X2FGYCN3.js";import"./chunk-H5JLK2JS.js";import"./chunk-5TBO732O.js";export{a as Parameters,e as buildDocs,d as buildDts,b as escape,c as parseExample};