@geektech/tsone-cli 0.1.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cli.js +1 -1
- package/dist/{index-p7jrckn1.js → index-y6qrqbwv.js} +1021 -1458
- package/dist/index-y6qrqbwv.js.map +18 -0
- package/dist/index.js +1 -1
- package/package.json +7 -2
- package/dist/index-p7jrckn1.js.map +0 -18
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/config.ts", "../src/build.ts", "../src/build-output.ts", "../../tsone/dist/dom/index.js", "../src/project.ts", "../src/safe-path.ts", "../src/server.ts", "../src/proxy.ts", "../src/watch.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport type {\n BuildConfig,\n ProxyOptions,\n ResolveConfigOptions,\n ResolvedConfig,\n ServerConfig,\n UserConfig,\n} from './types';\n\ninterface MergedConfig {\n entry: string;\n pages?: Record<string, string>;\n server: {\n host: string;\n port: number;\n proxy: Record<string, string | ProxyOptions>;\n };\n build: {\n outDir: string;\n };\n}\n\ntype ConfigFileLoadResult =\n | { exists: false }\n | { exists: true; config: unknown };\n\nconst DEFAULT_CONFIG: MergedConfig = {\n entry: 'src/main.ts',\n server: {\n host: '127.0.0.1',\n port: 52211,\n proxy: {},\n },\n build: {\n outDir: 'dist',\n },\n};\n\nexport function defineConfig(config: UserConfig): UserConfig {\n return config;\n}\n\nexport async function resolveConfig(\n options: ResolveConfigOptions = {}\n): Promise<ResolvedConfig> {\n const root = resolve(options.root ?? process.cwd());\n const configFile = resolve(root, 'tsone.config.ts');\n const hasInlineConfig = options.config !== undefined;\n const loadedConfig: ConfigFileLoadResult = hasInlineConfig\n ? { exists: false }\n : await loadConfigFile(configFile);\n let fileConfig: UserConfig = {};\n if (loadedConfig.exists) {\n const config = loadedConfig.config;\n validateUserConfig(config);\n fileConfig = config;\n }\n if (hasInlineConfig) {\n validateUserConfig(options.config);\n }\n const inlineOverrides = toInlineOverrides(options);\n validateUserConfig(inlineOverrides);\n const config = mergeConfig(fileConfig, options.config ?? {}, inlineOverrides);\n\n const entry = resolve(root, config.entry);\n if (!existsSync(entry)) {\n throw new Error(`Entry file does not exist: ${entry}`);\n }\n const pages = await resolvePages(root, entry, config.pages);\n\n return {\n root,\n ...(loadedConfig.exists ? { configFile } : {}),\n entry,\n pages,\n server: {\n host: config.server.host,\n port: config.server.port,\n proxy: config.server.proxy,\n },\n build: {\n outDir: resolve(root, config.build.outDir),\n },\n };\n}\n\nasync function resolvePages(\n root: string,\n entry: string,\n pages: Record<string, string> | undefined\n): Promise<Record<string, string>> {\n const resolved: Record<string, string> = { '/': entry };\n for (const [route, pageEntry] of Object.entries(pages ?? {})) {\n const normalized = normalizePageRoute(route);\n const absolute = resolve(root, pageEntry);\n if (!existsSync(absolute)) {\n throw new Error(\n `Page entry file does not exist for \"${normalized}\": ${absolute}`\n );\n }\n resolved[normalized] = absolute;\n }\n return resolved;\n}\n\nfunction normalizePageRoute(route: string): string {\n if (route === '/') {\n throw new Error(\n 'Config pages must not redefine the root page \"/\"; use config.entry instead'\n );\n }\n const normalized = route.replace(/\\/+$/, '');\n if (normalized === '') {\n throw new Error(`Page route must not be empty: ${route}`);\n }\n return normalized;\n}\n\nlet configLoadSequence = 0;\n\nasync function loadConfigFile(\n configFile: string\n): Promise<ConfigFileLoadResult> {\n if (!existsSync(configFile)) {\n return { exists: false };\n }\n\n configLoadSequence += 1;\n const module = await import(\n `${configFile}?tsone_config=${configLoadSequence}`\n );\n return { exists: true, config: module.default };\n}\n\nfunction toInlineOverrides(options: ResolveConfigOptions): UserConfig {\n const server: ServerConfig = {};\n const build: BuildConfig = {};\n\n if (options.host !== undefined) {\n server.host = options.host;\n }\n if (options.port !== undefined) {\n server.port = options.port;\n }\n if (options.outDir !== undefined) {\n build.outDir = options.outDir;\n }\n\n return {\n ...(Object.keys(server).length > 0 ? { server } : {}),\n ...(Object.keys(build).length > 0 ? { build } : {}),\n };\n}\n\nfunction mergeConfig(...configs: UserConfig[]): MergedConfig {\n return configs.reduce<MergedConfig>((merged, config) => {\n const server = config.server;\n const build = config.build;\n\n return {\n entry: config.entry ?? merged.entry,\n pages: config.pages ?? merged.pages,\n server: {\n host: server?.host ?? merged.server.host,\n port: server?.port ?? merged.server.port,\n proxy: {\n ...merged.server.proxy,\n ...server?.proxy,\n },\n },\n build: {\n outDir: build?.outDir ?? merged.build.outDir,\n },\n };\n }, DEFAULT_CONFIG);\n}\n\nfunction validateUserConfig(config: unknown): asserts config is UserConfig {\n assertRecord(config, 'Config');\n\n if (config.entry !== undefined && typeof config.entry !== 'string') {\n throw new Error('Config entry must be a string');\n }\n if (config.pages !== undefined) {\n validatePagesConfig(config.pages);\n }\n if (config.server !== undefined) {\n validateServerConfig(config.server);\n }\n if (config.build !== undefined) {\n validateBuildConfig(config.build);\n }\n}\n\nfunction validatePagesConfig(\n pages: unknown\n): asserts pages is Record<string, string> {\n assertRecord(pages, 'Config pages');\n\n for (const [route, entry] of Object.entries(pages)) {\n if (!route.startsWith('/')) {\n throw new Error(`Page route must start with \"/\": ${route}`);\n }\n if (typeof entry !== 'string') {\n throw new Error(`Page entry for \"${route}\" must be a string`);\n }\n }\n}\n\nfunction validateServerConfig(server: unknown): asserts server is ServerConfig {\n assertRecord(server, 'Config server');\n\n if (server.host !== undefined && typeof server.host !== 'string') {\n throw new Error('Config server.host must be a string');\n }\n const port = server.port;\n if (\n port !== undefined &&\n (typeof port !== 'number' ||\n !Number.isInteger(port) ||\n port < 0 ||\n port > 65535)\n ) {\n throw new Error(\n 'Config server.port must be an integer between 0 and 65535'\n );\n }\n if (server.proxy === undefined) {\n return;\n }\n assertRecord(server.proxy, 'Config server.proxy');\n\n for (const [prefix, value] of Object.entries(server.proxy)) {\n if (!prefix.startsWith('/')) {\n throw new Error(`Proxy prefix must start with \"/\": ${prefix}`);\n }\n\n const target = getProxyTarget(value);\n validateProxyTarget(target);\n }\n}\n\nfunction validateBuildConfig(build: unknown): asserts build is BuildConfig {\n assertRecord(build, 'Config build');\n if (build.outDir !== undefined && typeof build.outDir !== 'string') {\n throw new Error('Config build.outDir must be a string');\n }\n}\n\nfunction getProxyTarget(value: unknown): string {\n if (typeof value === 'string') {\n return value;\n }\n\n assertRecord(value, 'Proxy options');\n if (typeof value.target !== 'string') {\n throw new Error('Proxy target must be a string');\n }\n if (\n value.changeOrigin !== undefined &&\n typeof value.changeOrigin !== 'boolean'\n ) {\n throw new Error('Proxy changeOrigin must be a boolean');\n }\n if (value.rewrite !== undefined && typeof value.rewrite !== 'function') {\n throw new Error('Proxy rewrite must be a function');\n }\n\n return value.target;\n}\n\nfunction validateProxyTarget(target: string): void {\n try {\n const url = new URL(target);\n if (url.protocol === 'http:' || url.protocol === 'https:') {\n return;\n }\n } catch {\n // Keep the public error stable for malformed URLs and unsupported protocols.\n }\n\n throw new Error(`Proxy target must use http or https: ${target}`);\n}\n\nfunction assertRecord(\n value: unknown,\n name: string\n): asserts value is Record<string, unknown> {\n if (\n typeof value !== 'object' ||\n value === null ||\n Array.isArray(value) ||\n (Object.getPrototypeOf(value) !== Object.prototype &&\n Object.getPrototypeOf(value) !== null)\n ) {\n throw new Error(`${name} must be an object`);\n }\n}\n",
|
|
6
|
+
"import { mkdir, rm, writeFile } from 'node:fs/promises';\nimport { dirname, isAbsolute, relative, resolve, sep } from 'node:path';\nimport { isEntryJavaScriptOutput, isStylesheetOutput } from './build-output';\nimport { resolveConfig } from './config';\nimport { renderProjectHtml } from './project';\nimport { assertSafeSubdirectoryDoesNotContain } from './safe-path';\nimport type { BuildOptions, BuildResult } from './types';\n\nconst INVALID_OUTPUT_DIRECTORY_MESSAGE =\n 'Build output must be a subdirectory of the project root';\n\ninterface BuiltPage {\n route: string;\n entry: string;\n assets: string[];\n javascriptAssets: string[];\n stylesheetAssets: string[];\n}\n\nexport async function build(options: BuildOptions = {}): Promise<BuildResult> {\n const config = await resolveConfig(options);\n\n for (const entry of Object.values(config.pages)) {\n await assertSafeSubdirectoryDoesNotContain(\n config.root,\n config.build.outDir,\n entry,\n INVALID_OUTPUT_DIRECTORY_MESSAGE\n );\n }\n for (const entry of Object.values(config.pages)) {\n await renderProjectHtml(config, {}, entry);\n }\n\n await rm(config.build.outDir, { recursive: true, force: true });\n await mkdir(config.build.outDir, { recursive: true });\n\n const pages: BuiltPage[] = [];\n const failures: string[] = [];\n for (const [route, entry] of Object.entries(config.pages)) {\n const built = await buildPage(config, route, entry);\n if (typeof built === 'string') {\n failures.push(built);\n continue;\n }\n pages.push(built);\n }\n if (failures.length > 0) {\n throw buildFailure(failures);\n }\n\n const assetsBuilt: string[] = [];\n for (const page of pages) {\n const html = await renderProjectHtml(\n config,\n {\n head: page.stylesheetAssets.map((asset) => ({\n tag: 'link',\n attributes: {\n rel: 'stylesheet',\n href: toAssetUrl(\n config.build.outDir,\n htmlPath(config, page.route),\n asset\n ),\n },\n })),\n scripts: page.javascriptAssets.map((asset) => ({\n type: 'module',\n src: toAssetUrl(\n config.build.outDir,\n htmlPath(config, page.route),\n asset\n ),\n })),\n },\n page.entry\n );\n const pageHtmlPath = htmlPath(config, page.route);\n await mkdir(dirname(pageHtmlPath), { recursive: true });\n await writeFile(pageHtmlPath, html);\n assetsBuilt.push(...page.assets, pageHtmlPath);\n }\n\n return {\n root: config.root,\n outDir: config.build.outDir,\n assetsBuilt,\n };\n}\n\nasync function buildPage(\n config: Awaited<ReturnType<typeof resolveConfig>>,\n route: string,\n entry: string\n): Promise<BuiltPage | string> {\n let result: Awaited<ReturnType<typeof Bun.build>>;\n try {\n result = await Bun.build({\n entrypoints: [entry],\n outdir: config.build.outDir,\n target: 'browser',\n format: 'esm',\n // 生产构建默认压缩;TSONE_MINIFY=0 时生成未压缩产物,便于排查问题\n minify: process.env.TSONE_MINIFY !== '0',\n naming: { entry: '[name].[ext]', chunk: '[name]-[hash].[ext]' },\n throw: false,\n });\n } catch (error: unknown) {\n return pageFailureReason(route, [errorMessage(error)]);\n }\n const assets = result.outputs.map((output) => resolve(output.path));\n const javascriptAssets = result.outputs\n .filter(isEntryJavaScriptOutput)\n .map((output) => resolve(output.path));\n const stylesheetAssets = result.outputs\n .filter(isStylesheetOutput)\n .map((output) => resolve(output.path));\n\n if (!result.success || assets.length === 0 || javascriptAssets.length === 0) {\n return pageFailureReason(\n route,\n result.logs.map((log) => log.message),\n {\n success: result.success,\n hasOutput: assets.length > 0,\n hasJavaScript: javascriptAssets.length > 0,\n }\n );\n }\n\n return {\n route,\n entry,\n assets,\n javascriptAssets,\n stylesheetAssets,\n };\n}\n\nfunction pageFailureReason(\n route: string,\n logs: string[],\n state?: { success: boolean; hasOutput: boolean; hasJavaScript: boolean }\n): string {\n const pageContext = route === '/' ? '' : `Page ${route}: `;\n const reasons = [\n state && !state.success ? 'Bun build reported failure' : '',\n state && !state.hasOutput ? 'Bun emitted no output files' : '',\n state && !state.hasJavaScript ? 'Bun emitted no JavaScript output' : '',\n ...logs,\n ].filter((reason) => reason !== '');\n\n return `${pageContext}${reasons.join('\\n')}`;\n}\n\nfunction buildFailure(failures: string[]): Error {\n if (failures.length === 1) {\n return new Error(`Failed to build TSone application: ${failures[0]}`);\n }\n return new Error(\n `Failed to build TSone application:\\n${failures\n .map((failure) => `- ${failure}`)\n .join('\\n')}`\n );\n}\n\nfunction htmlPath(\n config: Awaited<ReturnType<typeof resolveConfig>>,\n route: string\n): string {\n if (route === '/') {\n return resolve(config.build.outDir, 'index.html');\n }\n return resolve(config.build.outDir, `${route.replace(/^\\/+/, '')}.html`);\n}\n\nfunction toAssetUrl(\n outDir: string,\n fromHtmlFile: string,\n asset: string\n): string {\n const fromOutDir = relative(outDir, asset).split(sep).join('/');\n if (\n fromOutDir === '' ||\n fromOutDir === '..' ||\n fromOutDir.startsWith('../') ||\n isAbsolute(fromOutDir)\n ) {\n throw new Error(\n `Build asset must be inside the output directory: ${asset}`\n );\n }\n\n const fromHtmlDir = dirname(fromHtmlFile);\n const assetPath = relative(fromHtmlDir, asset).split(sep).join('/');\n return `./${assetPath}`;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n",
|
|
7
|
+
"interface BuildOutputDescriptor {\n path: string;\n kind: string;\n}\n\nexport function isEntryJavaScriptOutput(\n output: BuildOutputDescriptor\n): boolean {\n return output.kind === 'entry-point' && isJavaScriptPath(output.path);\n}\n\nexport function isStylesheetOutput(output: { path: string }): boolean {\n return /\\.css$/i.test(output.path);\n}\n\nfunction isJavaScriptPath(path: string): boolean {\n return /\\.(?:[cm]?js)$/i.test(path);\n}\n",
|
|
8
|
+
"var ce;((s)=>{s[s.ELEMENT_NODE=1]=\"ELEMENT_NODE\";s[s.TEXT_NODE=3]=\"TEXT_NODE\";s[s.COMMENT_NODE=8]=\"COMMENT_NODE\";s[s.DOCUMENT_NODE=9]=\"DOCUMENT_NODE\";s[s.DOCUMENT_FRAGMENT_NODE=11]=\"DOCUMENT_FRAGMENT_NODE\"})(ce||={});class K extends Error{code;constructor(e,t=\"Error\"){super(e);this.name=t,this.code=0}}class A{listenerMap=new Map;addEventListener(e,t,n){if(!t)return;let i=typeof n===\"boolean\"?n:n?.capture??!1,r=typeof n===\"object\"?n.once??!1:!1,s=typeof n===\"object\"?n.passive??!1:!1,l=this.listenerMap.get(e);if(!l)l=[],this.listenerMap.set(e,l);if(l.some((a)=>a.listener===t&&a.capture===i))return;l.push({listener:t,capture:i,once:r,passive:s})}removeEventListener(e,t,n){if(!t)return;let i=typeof n===\"boolean\"?n:n?.capture??!1,r=this.listenerMap.get(e);if(!r)return;let s=r.findIndex((l)=>l.listener===t&&l.capture===i);if(s>=0)r.splice(s,1);if(r.length===0)this.listenerMap.delete(e)}dispatchEvent(e){if(!(e instanceof c))throw TypeError(\"dispatchEvent requires an Event instance\");if(e.dispatched)throw Error(\"Event has already been dispatched\");return pe(this,e)}getListeners(e){return this.listenerMap.get(e)??[]}}class c{static NONE=0;static CAPTURING_PHASE=1;static AT_TARGET=2;static BUBBLING_PHASE=3;type;bubbles;cancelable;composed;target=null;currentTarget=null;eventPhase=c.NONE;defaultPrevented=!1;isTrusted=!1;timeStamp;cancelBubble=!1;dispatched=!1;propagationStopped=!1;immediateStopped=!1;canceled=!1;constructor(e,t){this.type=e,this.bubbles=t?.bubbles??!1,this.cancelable=t?.cancelable??!1,this.composed=t?.composed??!1,this.timeStamp=Date.now()}preventDefault(){if(this.cancelable)this.canceled=!0}stopPropagation(){this.propagationStopped=!0,this.cancelBubble=!0}stopImmediatePropagation(){this.propagationStopped=!0,this.immediateStopped=!0,this.cancelBubble=!0}propagationPrevented(){return this.propagationStopped}immediatePrevented(){return this.immediateStopped}wasCanceled(){return this.canceled}}class I extends c{detail;constructor(e,t){super(e,t);this.detail=t?.detail}}class O extends c{clientX;clientY;button;buttons;relatedTarget;constructor(e,t){super(e,t);this.clientX=t?.clientX??0,this.clientY=t?.clientY??0,this.button=t?.button??0,this.buttons=t?.buttons??0,this.relatedTarget=t?.relatedTarget??null}}class H extends c{key;code;constructor(e,t){super(e,t);this.key=t?.key??\"\",this.code=t?.code??\"\"}}function de(e,t){let n=e.listener;if(typeof n===\"function\")n.call(t.currentTarget,t);else n.handleEvent(t)}function pe(e,t){t.dispatched=!0,t.target=e;let i=[...he(e)].reverse(),r=i.length-1;t.eventPhase=c.CAPTURING_PHASE;for(let s=0;s<r;s+=1){let l=i[s];if(t.propagationPrevented())break;t.currentTarget=l,x(l,t,!0)}if(!t.propagationPrevented()){if(t.eventPhase=c.AT_TARGET,t.currentTarget=e,x(e,t,!0),!t.immediatePrevented())x(e,t,!1)}if(t.bubbles&&!t.propagationPrevented()){t.eventPhase=c.BUBBLING_PHASE;for(let s=i.length-2;s>=0;s-=1){let l=i[s];if(t.propagationPrevented())break;t.currentTarget=l,x(l,t,!1)}}return t.eventPhase=c.NONE,t.currentTarget=null,!t.wasCanceled()}function x(e,t,n){let i=e.getListeners(t.type);for(let r of[...i]){if(r.capture!==n)continue;if(t.immediatePrevented())break;if(r.once)e.removeEventListener(t.type,r.listener,{capture:r.capture});de(r,t)}}function he(e){let t=[],n=e;while(n){t.push(n);let i=n;if(i.nodeType===9){let s=i.defaultView;if(s)t.push(s);break}let r=i.parentNode;if(r){n=r;continue}break}return t}class X{element;attributeName;constructor(e,t=\"class\"){this.element=e,this.attributeName=t}get length(){return this.tokens().length}get value(){return this.element.getAttribute(this.attributeName)??\"\"}set value(e){this.setTokens(q(e))}item(e){return this.tokens()[e]??null}contains(e){return this.tokens().includes(e)}add(...e){let t=new Set(this.tokens());for(let n of e)if(n)t.add(n);this.setTokens([...t])}remove(...e){let t=new Set(this.tokens());for(let n of e)t.delete(n);this.setTokens([...t])}toggle(e,t){let n=new Set(this.tokens()),i=t??!n.has(e);if(i)n.add(e);else n.delete(e);return this.setTokens([...n]),i}replace(e,t){let n=this.tokens(),i=n.indexOf(e);if(i<0)return!1;return n[i]=t,this.setTokens(n),!0}[Symbol.iterator](){return this.tokens()[Symbol.iterator]()}forEach(e){this.tokens().forEach((t,n)=>e(t,n,this))}toString(){return this.value}tokens(){return q(this.element.getAttribute(this.attributeName)??\"\")}setTokens(e){let t=e.filter(Boolean).join(\" \");if(t)this.element.setAttribute(this.attributeName,t);else this.element.removeAttribute(this.attributeName)}}function q(e){return e.trim().split(/\\s+/).filter(Boolean)}function L(e){return e.replace(/[A-Z]/g,(t)=>`-${t.toLowerCase()}`)}function R(){let e=new Map,t={properties:e,setProperty(i,r,s=\"\"){let l=L(i);if(r===\"\")e.delete(l);else e.set(l,{value:r,priority:s})},getPropertyValue(i){return e.get(L(i))?.value??\"\"},getPropertyPriority(i){return e.get(L(i))?.priority??\"\"},removeProperty(i){let r=L(i),s=e.get(r)?.value??\"\";return e.delete(r),s},item(i){return[...e.keys()][i]??\"\"},get length(){return e.size},get cssText(){return[...e.entries()].map(([i,r])=>`${i}: ${r.value}${r.priority?` ${r.priority}`:\"\"};`).join(\" \")},set cssText(i){e.clear();for(let r of i.split(\";\")){let s=r.trim();if(!s)continue;let l=s.indexOf(\":\");if(l<0)continue;let a=s.slice(0,l).trim(),o=s.slice(l+1).trim();if(a)t.setProperty(a,o)}}};return new Proxy(t,{get(i,r,s){if(typeof r===\"symbol\")return Reflect.get(i,r,s);if(r in i){let l=Reflect.get(i,r,s);return typeof l===\"function\"?l.bind(i):l}return i.getPropertyValue(r)},set(i,r,s,l){if(typeof r===\"symbol\")return Reflect.set(i,r,s,l);if(r in i)return Reflect.set(i,r,s,l);return i.setProperty(r,String(s)),!0},has(i,r){if(typeof r===\"symbol\")return Reflect.has(i,r);if(r in i)return!0;return i.getPropertyValue(r)!==\"\"},ownKeys(){return[...Reflect.ownKeys(t),...[...e.keys()].map((i)=>be(i))]},getOwnPropertyDescriptor(i,r){if(typeof r===\"symbol\")return Reflect.getOwnPropertyDescriptor(i,r);if(r in i)return Reflect.getOwnPropertyDescriptor(i,r);let s=i.getPropertyValue(r);if(s!==\"\")return{configurable:!0,enumerable:!0,writable:!0,value:s};return}})}function be(e){return e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}class f{items;constructor(e=[]){this.items=e;for(let t=0;t<e.length;t+=1)Object.defineProperty(this,String(t),{configurable:!0,enumerable:!0,get:()=>this.items[t]})}get length(){return this.items.length}item(e){return this.items[e]??null}[Symbol.iterator](){return this.items[Symbol.iterator]()}forEach(e){this.items.forEach((t,n)=>e(t,n,this))}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}toArray(){return[...this.items]}}class b extends A{static ELEMENT_NODE=1;static TEXT_NODE=3;static COMMENT_NODE=8;static DOCUMENT_NODE=9;static DOCUMENT_FRAGMENT_NODE=11;nodeType;nodeName;parentNode=null;ownerDocument=null;childList=[];constructor(e,t){super();this.nodeType=e,this.nodeName=t}get parentElement(){let e=this.parentNode;return e instanceof M?e:null}get childNodes(){return new f([...this.childList])}get firstChild(){return this.childList[0]??null}get lastChild(){return this.childList[this.childList.length-1]??null}get nextSibling(){let e=this.parentNode;if(!e)return null;let t=e.childList.indexOf(this);return t>=0?e.childList[t+1]??null:null}get previousSibling(){let e=this.parentNode;if(!e)return null;let t=e.childList.indexOf(this);return t>0?e.childList[t-1]:null}get textContent(){let e=\"\";for(let t of this.childList)if(t.nodeType===3)e+=t.data;else if(t.nodeType===1)e+=t.textContent;return e}set textContent(e){if(this.childList=[],e){let t=new u(e);t.ownerDocument=this.ownerDocument,t.parentNode=this,this.childList.push(t)}}hasChildNodes(){return this.childList.length>0}appendChild(e){if(e===this)throw Error(\"Cannot append a node to itself\");return this.insertBefore(e,null),e}insertBefore(e,t){if(e===this)throw Error(\"Cannot insert a node before itself\");if(e.parentNode)e.parentNode.removeChild(e);if(e.parentNode=this,e.ownerDocument===null)e.ownerDocument=this.ownerDocument;if(t===null)return this.childList.push(e),e;let n=this.childList.indexOf(t);if(n<0)throw Error(\"Reference node is not a child of this node\");return this.childList.splice(n,0,e),e}removeChild(e){let t=this.childList.indexOf(e);if(t<0)throw Error(\"Node is not a child of this node\");return this.childList.splice(t,1),e.parentNode=null,e}replaceChild(e,t){let n=this.childList.indexOf(t);if(n<0)throw Error(\"Old child is not a child of this node\");if(e.parentNode)e.parentNode.removeChild(e);if(e.parentNode=this,e.ownerDocument===null)e.ownerDocument=this.ownerDocument;return this.childList[n]=e,t.parentNode=null,e}replaceChildren(...e){for(let t of[...this.childList])this.removeChild(t);for(let t of e)this.appendChild(t)}contains(e){if(!e)return!1;let t=e;while(t){if(t===this)return!0;t=t.parentNode}return!1}remove(){this.parentNode?.removeChild(this)}cloneNode(e=!1){let t=this.createClone();if(e)for(let n of this.childList)t.appendChild(n.cloneNode(!0));return t}createClone(){let e=new b(this.nodeType,this.nodeName);return e.ownerDocument=this.ownerDocument,e}getRootNode(){if(!this.parentNode)return this;let e=this.parentNode;while(e.parentNode)e=e.parentNode;return e}isConnected(){return this.getRootNode().nodeType===9}}class M extends b{namespaceURI;attributeList=[];styleValue;classListValue;datasetProxy;constructor(e,t=null){super(1,e.toUpperCase());this.namespaceURI=t}get tagName(){return this.nodeName}get localName(){return this.nodeName.toLowerCase()}get id(){return this.getAttribute(\"id\")??\"\"}set id(e){this.setAttribute(\"id\",e)}get className(){return this.getAttribute(\"class\")??\"\"}set className(e){this.setAttribute(\"class\",e)}get classList(){if(!this.classListValue)this.classListValue=new X(this,\"class\");return this.classListValue}get style(){if(!this.styleValue)this.styleValue=R();return this.styleValue}get dataset(){if(!this.datasetProxy)this.datasetProxy=Ce(this);return this.datasetProxy}get children(){return new f(this.childList.filter((e)=>e.nodeType===1))}get firstElementChild(){return this.children.item(0)}get lastElementChild(){return this.children.item(this.children.length-1)}get childElementCount(){return this.children.length}get attributes(){return new Z(this)}getAttribute(e){let t=this.findAttribute(e);return t?t.value:null}getAttributeNames(){return this.attributeList.map((e)=>e.name)}setAttribute(e,t){let n=String(t);if(e===\"style\")this.styleValue=R(),this.styleValue.cssText=n;let i=this.findAttribute(e);if(i)i.value=n;else this.attributeList.push({name:e,value:n})}removeAttribute(e){if(e===\"style\")this.styleValue=R();let t=this.attributeList.findIndex((n)=>n.name===e);if(t>=0)this.attributeList.splice(t,1)}hasAttribute(e){return this.findAttribute(e)!==void 0}toggleAttribute(e,t){let n=t??!this.hasAttribute(e);if(n)this.setAttribute(e,\"\");else this.removeAttribute(e);return n}hasAttributes(){return this.attributeList.length>0}get innerHTML(){return oe(this)}set innerHTML(e){this.replaceChildren(...ye(e,this.ownerDocument))}get outerHTML(){return le(this)}get value(){return this.getAttribute(\"value\")??\"\"}set value(e){this.setAttribute(\"value\",e)}querySelector(e){return C(this,e).item(0)}querySelectorAll(e){return C(this,e)}getElementsByTagName(e){let t=e.toLowerCase(),n=[];return N(this,(i)=>{if(i.localName===t)n.push(i)}),new f(n)}matches(e){return ue(this,e)}closest(e){if(this.matches(e))return this;let t=this.parentElement;while(t){if(t.matches(e))return t;t=t.parentElement}return null}getBoundingClientRect(){return{x:0,y:0,top:0,left:0,right:0,bottom:0,width:0,height:0,toJSON(){return{x:0,y:0,top:0,left:0,right:0,bottom:0,width:0,height:0}}}}scrollIntoView(){}focus(){}blur(){}click(){this.dispatchEvent(new O(\"click\",{bubbles:!0,cancelable:!0}))}append(...e){for(let t of e)if(typeof t===\"string\"){let n=new u(t);n.ownerDocument=this.ownerDocument,this.appendChild(n)}else this.appendChild(t)}prepend(...e){let t=this.firstChild;for(let n of e)if(typeof n===\"string\"){let i=new u(n);i.ownerDocument=this.ownerDocument,this.insertBefore(i,t)}else this.insertBefore(n,t)}before(...e){let t=this.parentNode;if(!t)return;for(let n of e)if(typeof n===\"string\"){let i=new u(n);i.ownerDocument=this.ownerDocument,t.insertBefore(i,this)}else t.insertBefore(n,this)}after(...e){let t=this.parentNode;if(!t)return;let n=this.nextSibling;for(let i of e)if(typeof i===\"string\"){let r=new u(i);r.ownerDocument=this.ownerDocument,t.insertBefore(r,n)}else t.insertBefore(i,n)}replaceWith(...e){let t=this.parentNode;if(!t)return;let n=this.nextSibling;t.removeChild(this);for(let i of e)if(typeof i===\"string\"){let r=new u(i);r.ownerDocument=this.ownerDocument,t.insertBefore(r,n)}else t.insertBefore(i,n)}setAttributeNS(e,t,n){this.setAttribute(t,n)}removeAttributeNS(e,t){this.removeAttribute(t)}hasAttributeNS(e,t){return this.hasAttribute(t)}getAttributeNS(e,t){return this.getAttribute(t)}findAttribute(e){return this.attributeList.find((t)=>t.name===e)}attributeEntries(){return[...this.attributeList]}inlineStyleText(){return this.styleValue?.cssText??\"\"}createClone(){let e=m(this.localName,this.ownerDocument);for(let t of this.attributeList)e.setAttribute(t.name,t.value);return e}}class p extends M{constructor(e){super(e)}}class Z{element;constructor(e){this.element=e;for(let t=0;t<e.attributeEntries().length;t+=1)Object.defineProperty(this,String(t),{configurable:!0,enumerable:!0,get:()=>this.element.attributeEntries()[t]??null})}get length(){return this.element.attributeEntries().length}item(e){return this.element.attributeEntries()[e]??null}getNamedItem(e){return this.element.findAttribute(e)??null}setNamedItem(e){this.element.setAttribute(e.name,e.value)}removeNamedItem(e){this.element.removeAttribute(e)}[Symbol.iterator](){return this.element.attributeEntries()[Symbol.iterator]()}}class k extends p{selectedValue;constructor(e=\"option\"){super(e)}get value(){return this.getAttribute(\"value\")??this.textContent}set value(e){this.setAttribute(\"value\",e)}get text(){return this.textContent}get label(){return this.getAttribute(\"label\")??this.textContent}get selected(){return this.hasSelectedValue()}set selected(e){if(this.setSelectedRaw(e),e){let t=this.parentElement;if(t instanceof P&&!t.multiple){for(let n of t.options.toArray())if(n!==this)n.setSelectedRaw(!1)}}}setSelectedRaw(e){if(this.selectedValue=e,e)this.setAttribute(\"selected\",\"\");else this.removeAttribute(\"selected\")}hasSelectedValue(){if(this.selectedValue!==void 0)return this.selectedValue;return this.hasAttribute(\"selected\")}}class P extends p{constructor(e=\"select\"){super(e)}get multiple(){return this.hasAttribute(\"multiple\")}set multiple(e){if(e)this.setAttribute(\"multiple\",\"\");else this.removeAttribute(\"multiple\")}get options(){let e=[];return N(this,(t)=>{if(t instanceof k)e.push(t)}),new Q(e)}get selectedOptions(){return new f(this.options.toArray().filter((e)=>e.hasSelectedValue()))}get selectedIndex(){return this.options.toArray().findIndex((e)=>e.hasSelectedValue())}set selectedIndex(e){this.options.toArray().forEach((n,i)=>n.setSelectedRaw(i===e))}get value(){let e=this.options.toArray(),t=e.find((n)=>n.hasSelectedValue());if(t)return t.value;if(!this.multiple&&e.length>0)return e[0].value;return\"\"}set value(e){let t=this.options.toArray();for(let n of t)if(n.value===e)if(this.multiple)n.setSelectedRaw(!0);else{for(let r of t)r.setSelectedRaw(r===n);return}}add(e){this.appendChild(e)}removeOption(e){let n=this.options.toArray()[e];if(n)n.remove()}}class Q{items;constructor(e){this.items=e;for(let t=0;t<e.length;t+=1)Object.defineProperty(this,String(t),{configurable:!0,enumerable:!0,get:()=>this.items[t]})}get length(){return this.items.length}item(e){return this.items[e]??null}get value(){return this.items.find((e)=>e.hasSelectedValue())?.value??\"\"}get selectedIndex(){return this.items.findIndex((e)=>e.hasSelectedValue())}toArray(){return[...this.items]}[Symbol.iterator](){return this.items[Symbol.iterator]()}}class U extends p{inputValue;checkedValue;constructor(e=\"input\"){super(e)}get type(){return this.getAttribute(\"type\")??\"text\"}set type(e){this.setAttribute(\"type\",e)}get name(){return this.getAttribute(\"name\")??\"\"}set name(e){this.setAttribute(\"name\",e)}get value(){return this.inputValue??this.getAttribute(\"value\")??\"\"}set value(e){this.inputValue=e}get defaultValue(){return this.getAttribute(\"value\")??\"\"}get checked(){return this.checkedValue??this.hasAttribute(\"checked\")}set checked(e){this.checkedValue=e}get disabled(){return this.hasAttribute(\"disabled\")}set disabled(e){if(e)this.setAttribute(\"disabled\",\"\");else this.removeAttribute(\"disabled\")}createClone(){let e=super.createClone();return e.inputValue=this.inputValue,e.checkedValue=this.checkedValue,e}}class B extends p{textareaValue;constructor(e=\"textarea\"){super(e)}get value(){return this.textareaValue??this.textContent}set value(e){this.textareaValue=e}}class W extends p{constructor(e=\"button\"){super(e)}get type(){return this.getAttribute(\"type\")??\"submit\"}}class z extends p{constructor(e=\"style\"){super(e)}}class G extends p{constructor(e=\"a\"){super(e)}get href(){return this.getAttribute(\"href\")??\"\"}set href(e){this.setAttribute(\"href\",e)}}class u extends b{data;constructor(e=\"\"){super(3,\"#text\");this.data=e}get nodeValue(){return this.data}set nodeValue(e){this.data=e}get textContent(){return this.data}set textContent(e){this.data=e}get wholeText(){return this.data}createClone(){let e=new u(this.data);return e.ownerDocument=this.ownerDocument,e}}class w extends b{data;constructor(e=\"\"){super(8,\"#comment\");this.data=e}get nodeValue(){return this.data}set nodeValue(e){this.data=e}createClone(){let e=new w(this.data);return e.ownerDocument=this.ownerDocument,e}}class _ extends b{constructor(){super(11,\"#document-fragment\")}}class S extends b{defaultView=null;constructor(){super(9,\"#document\")}createElement(e){return m(e,this)}createElementNS(e,t){let n=m(t,this);return n.namespaceURI=e,n}createTextNode(e){let t=new u(e);return t.ownerDocument=this,t}createComment(e){let t=new w(e);return t.ownerDocument=this,t}createDocumentFragment(){let e=new _;return e.ownerDocument=this,e}createEvent(e){if(e===\"MouseEvent\"||e===\"mouseevent\")return new O(\"\");if(e===\"KeyboardEvent\"||e===\"keyboardevent\")return new H(\"\");if(e===\"CustomEvent\"||e===\"customevent\")return new I(\"\");return new c(\"\")}get documentElement(){let e=this.childList.find((n)=>n.nodeType===1);if(e)return e;let t=m(\"html\",this);return this.appendChild(t),t}get head(){return this.ensureDocumentChild(\"head\")}get body(){return this.ensureDocumentChild(\"body\")}get title(){return this.querySelector(\"title\")?.textContent??\"\"}set title(e){let t=this.querySelector(\"title\");if(!t)t=m(\"title\",this),this.head.appendChild(t);t.textContent=e}querySelector(e){return C(this,e).item(0)}querySelectorAll(e){return C(this,e)}getElementById(e){let t=null;return N(this,(n)=>{if(!t&&n.id===e)t=n}),t}getElementsByTagName(e){return this.documentElement.getElementsByTagName(e)}createClone(){return new S}ensureDocumentChild(e){let t=this.documentElement,n=t.childList.find((i)=>i.nodeType===1&&i.localName===e);if(!n)n=m(e,this),t.appendChild(n);return n}}class Y{url;constructor(e){this.url=new URL(e)}get href(){return this.url.href}set href(e){this.url=new URL(e,this.url.href)}get origin(){return this.url.origin}get protocol(){return this.url.protocol}get host(){return this.url.host}get hostname(){return this.url.hostname}get port(){return this.url.port}get pathname(){return this.url.pathname}set pathname(e){let t=this.url,n=new URL(e,t.href);t.pathname=n.pathname}get search(){return this.url.search}set search(e){this.url.search=e.startsWith(\"?\")?e:`?${e}`}get hash(){return this.url.hash}set hash(e){let t=e.startsWith(\"#\")?e:`#${e}`;this.url.hash=t}get username(){return this.url.username}get password(){return this.url.password}assign(e){this.url=new URL(e,this.url.href)}replace(e){this.url=new URL(e,this.url.href)}reload(){}toString(){return this.url.href}getHashPath(){return this.url.hash.slice(1)}getHrefWithoutHash(){let e=this.url;return`${e.origin}${e.pathname}${e.search}`}}class J{windowRef;entries=[];index=0;scrollRestoration=\"auto\";constructor(e){this.windowRef=e,this.entries=[{state:null,url:e.location.href}]}get length(){return this.entries.length}get state(){return this.entries[this.index]?.state??null}pushState(e,t,n){let i=n?new URL(n,this.windowRef.location.href).href:this.windowRef.location.href;this.entries=this.entries.slice(0,this.index+1),this.entries.push({state:e,url:i}),this.index=this.entries.length-1,this.windowRef.setLocationUrl(i)}replaceState(e,t,n){let i=n?new URL(n,this.windowRef.location.href).href:this.windowRef.location.href;this.entries[this.index]={state:e,url:i},this.windowRef.setLocationUrl(i)}back(){this.go(-1)}forward(){this.go(1)}go(e=0){let t=this.index+e;if(t<0||t>=this.entries.length)return;this.index=t,this.windowRef.setLocationUrl(this.entries[t].url),this.windowRef.dispatchEvent(new c(\"popstate\",{bubbles:!1,cancelable:!1}))}}class ee{store=new Map;get length(){return this.store.size}key(e){return[...this.store.keys()][e]??null}getItem(e){return this.store.has(e)?this.store.get(e):null}setItem(e,t){this.store.set(e,String(t))}removeItem(e){this.store.delete(e)}clear(){this.store.clear()}}class te{userAgent=\"TSone/0.2.1\";platform=\"TSone\";language=\"zh-CN\";languages=[\"zh-CN\"];onLine=!0;maxTouchPoints=0}function ge(e,t){let n=new Set,i=!1,r={media:t,matches:!1,onchange:null,addEventListener(s,l){if(s===\"change\")n.add(l)},removeEventListener(s,l){if(s===\"change\")n.delete(l)},addListener(s){n.add(s)},removeListener(s){n.delete(s)},dispatchEvent(s){for(let l of[...n])if(typeof l===\"function\")l.call(r,s);else l.handleEvent(s);return!0}};return r}class me{observe(){}unobserve(){}disconnect(){}}var fe=[\"window\",\"document\",\"Node\",\"Text\",\"Comment\",\"Element\",\"HTMLElement\",\"HTMLInputElement\",\"HTMLTextAreaElement\",\"HTMLSelectElement\",\"HTMLButtonElement\",\"HTMLOptionElement\",\"HTMLStyleElement\",\"HTMLAnchorElement\",\"DocumentFragment\",\"Document\",\"Event\",\"MouseEvent\",\"KeyboardEvent\",\"CustomEvent\",\"EventTarget\",\"DOMException\",\"history\",\"location\",\"navigator\",\"localStorage\",\"matchMedia\",\"getComputedStyle\",\"requestAnimationFrame\",\"cancelAnimationFrame\",\"ResizeObserver\"];class ne extends A{window=this;document;location;history;localStorage=new ee;navigator=new te;Node=b;Text=u;Comment=w;Element=M;HTMLElement=p;HTMLInputElement=U;HTMLTextAreaElement=B;HTMLSelectElement=P;HTMLButtonElement=W;HTMLOptionElement=k;HTMLStyleElement=z;HTMLAnchorElement=G;DocumentFragment=_;Document=S;Event=c;MouseEvent=O;KeyboardEvent=H;CustomEvent=I;EventTarget=A;DOMException=K;NodeList=f;constructor(e={}){super();let t=e.url??\"http://localhost/\";this.location=new Y(t),this.history=new J(this),this.document=new S,this.document.defaultView=this,Se(this.document)}matchMedia(e){return ge(this,e)}getComputedStyle(e){return e.style}requestAnimationFrame(e){return setTimeout(()=>e(Date.now()),0)}cancelAnimationFrame(e){clearTimeout(e)}setLocationUrl(e){this.location.href=e}installKeys(){return[...fe]}}function ke(e={}){return new ne(e)}function Pe(e,t=globalThis){let n=new Map,i=e.installKeys();for(let r of i)n.set(r,Object.getOwnPropertyDescriptor(t,r));for(let r of i)Object.defineProperty(t,r,{configurable:!0,enumerable:!0,writable:!0,value:e[r]});return Object.defineProperty(t,\"window\",{configurable:!0,enumerable:!0,writable:!0,value:e}),()=>{for(let r of i){let s=n.get(r);if(s)Object.defineProperty(t,r,s);else Reflect.deleteProperty(t,r)}}}function ye(e,t){let n=new _;if(t)n.ownerDocument=t;return Ee(n,e,t),[...n.childList]}function Ee(e,t,n){let i=[],r=e,s=0,l=t.length,a=(o)=>{if(o.ownerDocument===null)o.ownerDocument=n;r.appendChild(o)};while(s<l){let o=t.indexOf(\"<\",s);if(o<0){a(new u(t.slice(s)));break}if(o>s)a(new u(t.slice(s,o)));if(t.startsWith(\"<!--\",o)){let d=t.indexOf(\"-->\",o+4),E=d<0?l:d;a(new w(t.slice(o+4,E))),s=d<0?l:d+3;continue}let h=ve(t,o);if(h<0){a(new u(t.slice(o)));break}let T=t.slice(o+1,h).trim();if(T.startsWith(\"/\")){let d=T.slice(1).trim().toLowerCase();if(i.length>0&&i[i.length-1].localName===d)i.pop(),r=i[i.length-1]??e;s=h+1;continue}let ae=T.endsWith(\"/\"),y=we(T.replace(/\\/$/,\"\").trim());if(!y){s=h+1;continue}let v=m(y.name,n);for(let d of y.attributes)v.setAttribute(d.name,d.value);if(a(v),ie.has(y.name)||ae){s=h+1;continue}if(re.has(y.name)){let d=`</${y.name}>`,E=t.toLowerCase().indexOf(d,h+1),j=t.slice(h+1,E<0?l:E);v.appendChild(n?.createTextNode(j)??new u(j)),s=E<0?l:E+d.length;continue}i.push(v),r=v,s=h+1}}var ie=new Set([\"area\",\"base\",\"br\",\"col\",\"embed\",\"hr\",\"img\",\"input\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"]),re=new Set([\"script\",\"style\",\"textarea\",\"title\"]);function ve(e,t){let n=null;for(let i=t+1;i<e.length;i+=1){let r=e[i];if(n){if(r===n)n=null;continue}if(r==='\"'||r===\"'\"){n=r;continue}if(r===\">\")return i}return-1}function we(e){let t=e.match(/^([a-zA-Z][a-zA-Z0-9-]*)\\s*(.*)$/);if(!t)return null;let n=t[1].toLowerCase(),i=[],r=t[2],s=/([a-zA-Z_:][a-zA-Z0-9_:.-]*)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s\"'=<>`]+)))?/g,l;while((l=s.exec(r))!==null){let a=l[1],o=l[2]??l[3]??l[4]??\"\";i.push({name:a,value:Ne(o)})}return{name:n,attributes:i}}function Ne(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/"/g,'\"').replace(/'/g,\"'\").replace(/ /g,\" \")}function se(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")}function F(e){return se(e).replace(/\"/g,\""\")}function le(e){switch(e.nodeType){case 3:return se(e.data);case 8:return`<!--${e.data}-->`;case 1:return Te(e);default:return\"\"}}function Te(e){let t=e.localName,n=[];for(let s of e.attributeEntries()){if(s.name===\"style\")continue;n.push(`${s.name}=\"${F(s.value)}\"`)}let i=e.inlineStyleText();if(i)n.push(`style=\"${F(i)}\"`);let r=n.length>0?` ${n.join(\" \")}`:\"\";if(ie.has(t))return`<${t}${r}>`;if(re.has(t))return`<${t}${r}>${e.textContent}</${t}>`;return`<${t}${r}>${oe(e)}</${t}>`}function oe(e){return e.childList.map((t)=>le(t)).join(\"\")}function xe(e){return e.split(\",\").map((t)=>{let n=[],i=0;while(i<t.length){while(i<t.length&&t[i]===\" \")i+=1;if(i>=t.length)break;if(t[i]===\">\"){n.push({type:\"child\"}),i+=1;continue}let r=i;while(i<t.length&&t[i]!==\" \"&&t[i]!==\">\")i+=1;n.push(Le(t.slice(r,i)))}return n})}function Le(e){let t=[],n=0;while(n<e.length){let i=e[n];if(i===\"*\")t.push({type:\"universal\"}),n+=1;else if(i===\"#\"){let r=V(e,n+1);t.push({type:\"id\",id:e.slice(n+1,r)}),n=r}else if(i===\".\"){let r=V(e,n+1);t.push({type:\"class\",className:e.slice(n+1,r)}),n=r}else if(i===\"[\"){let r=e.indexOf(\"]\",n),s=e.slice(n+1,r<0?e.length:r).trim(),l=s.match(/^([a-zA-Z_:][a-zA-Z0-9_:.-]*)(?:([~|^$*]?=)(?:\"([^\"]*)\"|'([^']*)'|([^\\s\"'=<>`]+)))?$/);if(l)t.push({type:\"attribute\",name:l[1],operator:l[2],value:l[3]??l[4]??l[5]});else t.push({type:\"attribute\",name:s});n=r<0?e.length:r+1}else if(/[a-zA-Z_]/.test(i)){let r=V(e,n);t.push({type:\"tag\",name:e.slice(n,r).toLowerCase()}),n=r}else n+=1}if(t.length===1)return t[0];return{type:\"compound\",parts:t}}function V(e,t){let n=t;while(n<e.length&&/[a-zA-Z0-9:_-]/.test(e[n]))n+=1;return n}function ue(e,t){return xe(t).some((i)=>De(e,i))}function De(e,t){let n=t.length-1;if(n<0)return!0;if(!D(e,t[n]))return!1;if(n===0)return!0;let i=e.parentElement;n-=1;while(i){let r=t[n];if(!r)return!0;if(r.type===\"child\"){let s=t[n-1];if(!s||!D(i,s))return!1;if(n-=2,n<0)return!0;i=i.parentElement;continue}if(D(i,r)){if(n-=1,n<0)return!0}i=i.parentElement}return!1}function D(e,t){switch(t.type){case\"universal\":return!0;case\"tag\":return e.localName===t.name;case\"id\":return e.id===t.id;case\"class\":return e.classList.contains(t.className);case\"attribute\":return Ae(e,t);case\"compound\":return t.parts.every((n)=>D(e,n));case\"child\":return!1;default:return!1}}function Ae(e,t){let n=e.getAttribute(t.name);if(!t.operator)return n!==null;if(n===null)return!1;let i=t.value??\"\";switch(t.operator){case\"=\":return n===i;case\"~=\":return n.split(/\\s+/).includes(i);case\"|=\":return n===i||n.startsWith(`${i}-`);case\"^=\":return n.startsWith(i);case\"$=\":return n.endsWith(i);case\"*=\":return n.includes(i);default:return!1}}function C(e,t){let n=[];return N(e,(i)=>{if(i!==e&&ue(i,t))n.push(i)}),new f(n)}function N(e,t){for(let n of e.childList)if(n.nodeType===1)t(n),N(n,t)}function m(e,t){let n=e.toLowerCase(),i;if(n===\"input\")i=new U(n);else if(n===\"textarea\")i=new B(n);else if(n===\"select\")i=new P(n);else if(n===\"option\")i=new k(n);else if(n===\"button\")i=new W(n);else if(n===\"style\")i=new z(n);else if(n===\"a\")i=new G(n);else i=new p(n);return i.ownerDocument=t,i}function Se(e){let t=e.createElement(\"html\");t.setAttribute(\"lang\",\"en\"),e.appendChild(t);let n=e.createElement(\"head\"),i=e.createElement(\"body\");t.appendChild(n),t.appendChild(i)}function Ce(e){return new Proxy({},{get(n,i){if(typeof i===\"symbol\")return;return e.getAttribute(`data-${g(i)}`)??\"\"},set(n,i,r){if(typeof i===\"symbol\")return!0;if(r===\"\"||r===null||r===void 0)e.removeAttribute(`data-${g(i)}`);else e.setAttribute(`data-${g(i)}`,String(r));return!0},deleteProperty(n,i){if(typeof i!==\"symbol\")e.removeAttribute(`data-${g(i)}`);return!0},has(n,i){if(typeof i===\"symbol\")return!1;return e.hasAttribute(`data-${g(i)}`)},ownKeys(){let n=[];for(let i of e.attributeEntries())if(i.name.startsWith(\"data-\"))n.push(Oe(i.name.slice(5)));return n},getOwnPropertyDescriptor(n,i){if(typeof i===\"symbol\")return;if(e.hasAttribute(`data-${g(i)}`))return{configurable:!0,enumerable:!0,writable:!0,value:e.getAttribute(`data-${g(i)}`)};return}})}function g(e){return e.replace(/[A-Z]/g,(t)=>`-${t.toLowerCase()}`)}function Oe(e){return e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}export{w as Comment,I as CustomEvent,K as DOMException,X as DOMTokenList,fe as DOM_GLOBAL_KEYS,S as Document,_ as DocumentFragment,ce as DomNodeType,ne as DomWindow,M as Element,c as Event,A as EventTarget,G as HTMLAnchorElement,W as HTMLButtonElement,p as HTMLElement,U as HTMLInputElement,k as HTMLOptionElement,Q as HTMLOptionsCollection,P as HTMLSelectElement,z as HTMLStyleElement,B as HTMLTextAreaElement,J as History,H as KeyboardEvent,Y as Location,O as MouseEvent,Z as NamedNodeMap,te as Navigator,b as Node,f as NodeList,me as ResizeObserver,ee as Storage,u as Text,ke as createDomWindow,ge as createMatchMedia,R as createStyleDeclaration,Pe as installDomGlobals,ye as parseHtmlFragment};\n\n//# debugId=918ACBAD8F24DC0564756E2164756E21\n//# sourceMappingURL=index.js.map\n",
|
|
9
|
+
"import {\n createDomWindow,\n installDomGlobals,\n DOM_GLOBAL_KEYS,\n} from '@geektech/tsone/dom';\nimport type { AppDocumentRenderOptions, OneApp } from '@geektech/tsone';\nimport type { ResolvedConfig } from './types';\n\nconst PROJECT_GLOBAL_KEYS = [...DOM_GLOBAL_KEYS, '__APP__'];\n\ntype ProjectGlobalKey = (typeof PROJECT_GLOBAL_KEYS)[number];\ntype GlobalDescriptorMap = Map<\n ProjectGlobalKey,\n PropertyDescriptor | undefined\n>;\n\ninterface ProjectEntryModule {\n app?: unknown;\n}\n\nlet projectDomQueue: Promise<void> = Promise.resolve();\n\nexport async function renderProjectHtml(\n config: ResolvedConfig,\n options: AppDocumentRenderOptions,\n entry: string = config.entry\n): Promise<string> {\n return withProjectDom(async () => {\n const module = await importProjectEntry(entry);\n const app = module.app as Partial<OneApp> | undefined;\n if (!app || typeof app.renderHtmlDocument !== 'function') {\n throw new Error(\n `TSone entry ${entry} must export an app with renderHtmlDocument()`\n );\n }\n\n return app.renderHtmlDocument(options);\n });\n}\n\nasync function withProjectDom<T>(callback: () => Promise<T>): Promise<T> {\n const task = projectDomQueue.then(() => runWithProjectDom(callback));\n projectDomQueue = task.then(\n () => undefined,\n () => undefined\n );\n\n return task;\n}\n\nasync function runWithProjectDom<T>(callback: () => Promise<T>): Promise<T> {\n const windowRef = createDomWindow({ url: 'http://127.0.0.1/' });\n Object.assign(windowRef, {\n Error,\n EvalError,\n RangeError,\n ReferenceError,\n SyntaxError,\n TypeError,\n URIError,\n });\n const descriptors = captureGlobalDescriptors();\n\n try {\n installDomGlobals(windowRef);\n return await callback();\n } finally {\n restoreGlobalDescriptors(descriptors);\n }\n}\n\nlet projectEntrySequence = 0;\n\nasync function importProjectEntry(entry: string): Promise<ProjectEntryModule> {\n projectEntrySequence += 1;\n return (await import(\n `${entry}?tsone_entry=${projectEntrySequence}`\n )) as ProjectEntryModule;\n}\n\nfunction captureGlobalDescriptors(): GlobalDescriptorMap {\n return new Map(\n PROJECT_GLOBAL_KEYS.map((key) => [\n key,\n Object.getOwnPropertyDescriptor(globalThis, key),\n ])\n );\n}\n\nfunction restoreGlobalDescriptors(descriptors: GlobalDescriptorMap): void {\n PROJECT_GLOBAL_KEYS.forEach((key) => {\n const descriptor = descriptors.get(key);\n if (descriptor) {\n Object.defineProperty(globalThis, key, descriptor);\n return;\n }\n\n delete (globalThis as Record<string, unknown>)[key];\n });\n}\n",
|
|
10
|
+
"import { lstat, realpath } from 'node:fs/promises';\nimport { dirname, isAbsolute, relative, resolve, sep } from 'node:path';\n\nexport async function assertSafeSubdirectory(\n root: string,\n path: string,\n errorMessage: string\n): Promise<void> {\n try {\n const canonicalRoot = await realpath(root);\n const canonicalPath = await canonicalizePotentialPath(path);\n\n if (!isStrictSubdirectory(canonicalRoot, canonicalPath)) {\n throw new Error(errorMessage);\n }\n } catch {\n throw new Error(errorMessage);\n }\n}\n\nexport async function assertSafeSubdirectoryDoesNotContain(\n root: string,\n path: string,\n protectedPath: string,\n errorMessage: string\n): Promise<void> {\n try {\n const lexicalPath = resolve(path);\n const lexicalProtectedPath = resolve(protectedPath);\n const canonicalRoot = await realpath(root);\n const canonicalPath = await canonicalizePotentialPath(path);\n const canonicalProtectedPath = await realpath(protectedPath);\n\n if (\n !isStrictSubdirectory(canonicalRoot, canonicalPath) ||\n isPathWithinOrEqual(lexicalPath, lexicalProtectedPath) ||\n isPathWithinOrEqual(canonicalPath, canonicalProtectedPath)\n ) {\n throw new Error(errorMessage);\n }\n } catch {\n throw new Error(errorMessage);\n }\n}\n\nasync function canonicalizePotentialPath(path: string): Promise<string> {\n const ancestor = await findExistingAncestor(path);\n const canonicalAncestor = await realpath(ancestor);\n return resolve(canonicalAncestor, relative(ancestor, path));\n}\n\nasync function findExistingAncestor(path: string): Promise<string> {\n let candidate = path;\n\n while (candidate !== dirname(candidate)) {\n try {\n await lstat(candidate);\n return candidate;\n } catch (error: unknown) {\n if (!isMissingPathError(error)) {\n throw error;\n }\n }\n\n candidate = dirname(candidate);\n }\n\n await lstat(candidate);\n return candidate;\n}\n\nfunction isMissingPathError(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === 'ENOENT'\n );\n}\n\nfunction isStrictSubdirectory(root: string, path: string): boolean {\n const pathFromRoot = relative(root, path);\n return (\n pathFromRoot !== '' &&\n pathFromRoot !== '..' &&\n !pathFromRoot.startsWith(`..${sep}`) &&\n !isAbsolute(pathFromRoot)\n );\n}\n\nfunction isPathWithinOrEqual(parent: string, candidate: string): boolean {\n const pathFromParent = relative(parent, candidate);\n return (\n pathFromParent === '' ||\n (pathFromParent !== '..' &&\n !pathFromParent.startsWith(`..${sep}`) &&\n !isAbsolute(pathFromParent))\n );\n}\n",
|
|
11
|
+
"import { randomUUID } from 'node:crypto';\nimport {\n basename,\n extname,\n isAbsolute,\n relative,\n resolve,\n sep,\n} from 'node:path';\nimport { isEntryJavaScriptOutput, isStylesheetOutput } from './build-output';\nimport { resolveConfig } from './config';\nimport { renderProjectHtml } from './project';\nimport { createProxyHandler } from './proxy';\nimport { assertSafeSubdirectory } from './safe-path';\nimport { createFileWatcher, type FileWatcher } from './watch';\nimport type { ResolveConfigOptions, ResolvedConfig } from './types';\n\nconst DEVELOPMENT_URL_PREFIX = '/dev';\nconst INVALID_DEVELOPMENT_DIRECTORY_MESSAGE =\n 'Development output must be a subdirectory of the project root';\nconst LIVE_RELOAD_PATH = '/__tsone/reload';\nconst WATCHED_EXTENSIONS = new Set([\n '.ts',\n '.js',\n '.mjs',\n '.cjs',\n '.json',\n '.css',\n '.html',\n]);\nconst IGNORED_WATCH_SEGMENTS = new Set([\n '.tsone',\n 'node_modules',\n '.git',\n '.worktrees',\n]);\nconst LIVE_RELOAD_CLIENT_SCRIPT = [\n '<script type=\"module\">',\n 'const tsoneReloadSource=new EventSource(',\n JSON.stringify(LIVE_RELOAD_PATH),\n ');',\n 'tsoneReloadSource.addEventListener(\"reload\",()=>location.reload());',\n '</script>',\n].join('');\n\ntype DevServer = ReturnType<typeof Bun.serve>;\n\nexport interface StartDevServerOptions extends ResolveConfigOptions {\n watch?: boolean;\n}\n\nexport async function startDevServer(\n options: StartDevServerOptions = {}\n): Promise<DevServer> {\n if (options.watch) {\n return startWatchingDevServer(options);\n }\n const instance = await createServerInstance(options, false);\n return instance.server;\n}\n\nasync function startWatchingDevServer(\n options: StartDevServerOptions\n): Promise<DevServer> {\n let instance = await createServerInstance(options, true);\n let watcher = createProjectWatcher(instance, onChange);\n\n async function onChange(changedPath: string): Promise<void> {\n const configFile = instance.config.configFile;\n const configRelativePath =\n configFile === undefined\n ? undefined\n : toRelativePath(instance.config.root, configFile);\n if (configRelativePath === changedPath) {\n await restart();\n return;\n }\n await rebuildAndReload();\n }\n\n async function rebuildAndReload(): Promise<void> {\n const routes = Object.keys(instance.config.pages);\n instance.markDirty(routes);\n for (const route of routes) {\n const bundle = await instance.getBundle(route);\n if (bundle instanceof Response) {\n console.error('TSone rebuild failed; keeping the last working page.');\n return;\n }\n }\n instance.liveReload?.broadcast();\n }\n\n async function restart(): Promise<void> {\n watcher.dispose();\n instance.server.stop(true);\n instance = await createServerInstance(options, true);\n watcher = createProjectWatcher(instance, onChange);\n console.log(\n `TSone dev server restarted at http://${instance.server.hostname}:${instance.server.port}`\n );\n }\n\n return createServerHandle(\n () => instance,\n () => watcher.dispose()\n );\n}\n\nfunction createProjectWatcher(\n instance: DevServerInstance,\n onChange: (changedPath: string) => Promise<void>\n): FileWatcher {\n return createFileWatcher({\n root: instance.config.root,\n isRelevant: (relativePath) => isWatchedFile(instance, relativePath),\n onChange: (changedPath) => {\n void onChange(changedPath);\n },\n });\n}\n\ninterface DevServerInstance {\n server: DevServer;\n config: ResolvedConfig;\n getBundle: (route: string) => Promise<DevelopmentBundle | Response>;\n markDirty: (routes: string[]) => void;\n liveReload: LiveReloadHub | undefined;\n}\n\nasync function createServerInstance(\n options: StartDevServerOptions,\n watch: boolean\n): Promise<DevServerInstance> {\n const config = await resolveConfig(options);\n for (const entry of Object.values(config.pages)) {\n await renderProjectHtml(config, {}, entry);\n }\n const developmentOutDir = resolve(config.root, '.tsone', 'dev');\n await assertSafeSubdirectory(\n config.root,\n developmentOutDir,\n INVALID_DEVELOPMENT_DIRECTORY_MESSAGE\n );\n const proxy = createProxyHandler(config.server.proxy);\n const sessionId = createGenerationId();\n const sessionOutDir = resolve(developmentOutDir, sessionId);\n const artifacts = new Map<string, DevelopmentOutput>();\n const buildProject = createDevelopmentBuilder(\n config,\n sessionId,\n sessionOutDir\n );\n const liveReload = watch ? createLiveReloadHub() : undefined;\n const bundles = new Map<string, DevelopmentBundle>();\n const dirtyRoutes = new Set<string>();\n\n const getBundle = async (\n route: string\n ): Promise<DevelopmentBundle | Response> => {\n const cached = bundles.get(route);\n if (watch && cached !== undefined && !dirtyRoutes.has(route)) {\n return cached;\n }\n const bundle = await buildProject(route);\n if (bundle instanceof Response) {\n if (watch) {\n dirtyRoutes.add(route);\n }\n return bundle;\n }\n if (watch) {\n bundles.set(route, bundle);\n dirtyRoutes.delete(route);\n }\n return bundle;\n };\n\n const server = Bun.serve({\n hostname: config.server.host,\n port: config.server.port,\n fetch: async (request) => {\n const reloadResponse = liveReload?.handleRequest(request);\n if (reloadResponse) {\n return reloadResponse;\n }\n return (\n (await proxy(request)) ??\n serveProjectRequest(\n request,\n config,\n config.pages,\n getBundle,\n artifacts,\n liveReload\n )\n );\n },\n });\n\n return {\n server,\n config,\n getBundle,\n markDirty: (routes) => {\n routes.forEach((route) => dirtyRoutes.add(route));\n },\n liveReload,\n };\n}\n\nfunction createServerHandle(\n getInstance: () => DevServerInstance,\n disposeWatcher: () => void\n): DevServer {\n return new Proxy({} as DevServer, {\n get(_target, property) {\n if (property === 'stop') {\n return (closeActiveConnections?: boolean) => {\n disposeWatcher();\n getInstance().server.stop(closeActiveConnections);\n };\n }\n const server = getInstance().server as unknown as Record<\n PropertyKey,\n unknown\n >;\n const value = server[property];\n return typeof value === 'function'\n ? (value as (...args: unknown[]) => unknown).bind(server)\n : value;\n },\n });\n}\n\nasync function serveProjectRequest(\n request: Request,\n config: ResolvedConfig,\n pages: Record<string, string>,\n getBundle: (route: string) => Promise<DevelopmentBundle | Response>,\n artifacts: Map<string, DevelopmentOutput>,\n liveReload: LiveReloadHub | undefined\n): Promise<Response> {\n const pathname = new URL(request.url).pathname;\n const route = pageRouteForPathname(pages, pathname);\n\n if (route !== undefined) {\n const bundle = await getBundle(route);\n if (bundle instanceof Response) {\n return bundle;\n }\n\n try {\n const html = await renderProjectHtml(\n config,\n {\n head: bundle.stylesheets.map(({ pathname: href }) => ({\n tag: 'link',\n attributes: { rel: 'stylesheet', href },\n })),\n scripts: [{ type: 'module', src: bundle.entry.pathname }],\n },\n pages[route]\n );\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(liveReload ? injectLiveReloadScript(html) : html, {\n headers: {\n 'content-type': 'text/html; charset=utf-8',\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n }\n }\n\n if (pathname === '/bundle.js') {\n const bundle = await getBundle('/');\n if (bundle instanceof Response) {\n return bundle;\n }\n\n try {\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(null, {\n status: 307,\n headers: {\n location: bundle.entry.pathname,\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n }\n }\n\n const artifact = artifacts.get(pathname);\n if (artifact) {\n return new Response(Bun.file(artifact.filePath), {\n headers: {\n 'content-type': artifact.type,\n 'cache-control': 'no-store',\n },\n });\n }\n\n return new Response('Not found', {\n status: 404,\n headers: { 'cache-control': 'no-store' },\n });\n}\n\nfunction pageRouteForPathname(\n pages: Record<string, string>,\n pathname: string\n): string | undefined {\n if (pages[pathname] !== undefined) {\n return pathname;\n }\n if (pathname === '/index.html') {\n return '/';\n }\n const candidate =\n pathname.length > 1 && pathname.endsWith('/')\n ? pathname.replace(/\\/+$/, '')\n : pathname;\n if (pages[candidate] !== undefined) {\n return candidate;\n }\n if (candidate.endsWith('/index.html')) {\n const base = candidate.slice(0, candidate.length - '/index.html'.length);\n if (base === '') {\n return '/';\n }\n if (pages[base] !== undefined) {\n return base;\n }\n }\n return undefined;\n}\n\nfunction injectLiveReloadScript(html: string): string {\n if (html.includes(LIVE_RELOAD_PATH)) {\n return html;\n }\n if (html.includes('</body>')) {\n return html.replace('</body>', `${LIVE_RELOAD_CLIENT_SCRIPT}</body>`);\n }\n return html + LIVE_RELOAD_CLIENT_SCRIPT;\n}\n\ninterface LiveReloadHub {\n handleRequest(request: Request): Response | undefined;\n broadcast(): void;\n}\n\nconst reloadEncoder = new TextEncoder();\n\nfunction createLiveReloadHub(): LiveReloadHub {\n const controllers = new Set<ReadableStreamDefaultController<Uint8Array>>();\n\n function handleRequest(request: Request): Response | undefined {\n if (new URL(request.url).pathname !== LIVE_RELOAD_PATH) {\n return undefined;\n }\n\n let streamController:\n | ReadableStreamDefaultController<Uint8Array>\n | undefined;\n const stream = new ReadableStream<Uint8Array>({\n start: (controller) => {\n streamController = controller;\n controllers.add(controller);\n try {\n controller.enqueue(reloadEncoder.encode(': connected\\n\\n'));\n } catch {\n controllers.delete(controller);\n }\n },\n cancel: () => {\n if (streamController) {\n controllers.delete(streamController);\n }\n },\n });\n\n return new Response(stream, {\n headers: {\n 'content-type': 'text/event-stream',\n 'cache-control': 'no-store',\n },\n });\n }\n\n function broadcast(): void {\n const message = reloadEncoder.encode('event: reload\\ndata: {}\\n\\n');\n for (const controller of [...controllers]) {\n try {\n controller.enqueue(message);\n } catch {\n controllers.delete(controller);\n }\n }\n }\n\n return { handleRequest, broadcast };\n}\n\nfunction isWatchedFile(\n instance: DevServerInstance,\n relativePath: string\n): boolean {\n if (relativePath === '' || relativePath.startsWith('..')) {\n return false;\n }\n const segments = relativePath.split('/');\n if (segments.some((segment) => IGNORED_WATCH_SEGMENTS.has(segment))) {\n return false;\n }\n const absolutePath = resolve(instance.config.root, relativePath);\n if (isWithinOrEqual(instance.config.build.outDir, absolutePath)) {\n return false;\n }\n const base = basename(absolutePath);\n if (base.startsWith('.') && absolutePath !== instance.config.configFile) {\n return false;\n }\n return WATCHED_EXTENSIONS.has(extname(base).toLowerCase());\n}\n\nfunction toRelativePath(root: string, absolutePath: string): string {\n return relative(root, absolutePath).split(sep).join('/');\n}\n\nfunction isWithinOrEqual(parent: string, candidate: string): boolean {\n const pathFromParent = relative(parent, candidate);\n return (\n pathFromParent === '' ||\n (pathFromParent !== '..' &&\n !pathFromParent.startsWith(`..${sep}`) &&\n !isAbsolute(pathFromParent))\n );\n}\n\ninterface DevelopmentOutput {\n filePath: string;\n pathname: string;\n type: string;\n}\n\ninterface DevelopmentBundle {\n entry: DevelopmentOutput;\n stylesheets: DevelopmentOutput[];\n artifacts: ReadonlyMap<string, DevelopmentOutput>;\n}\n\nfunction createDevelopmentBuilder(\n config: ResolvedConfig,\n sessionId: string,\n sessionOutDir: string\n): (route: string) => Promise<DevelopmentBundle | Response> {\n let queue = Promise.resolve();\n\n return (route) => {\n const entry = config.pages[route];\n const result = queue.then(() =>\n buildProjectBundle(entry, sessionId, sessionOutDir)\n );\n queue = result.then(\n () => undefined,\n () => undefined\n );\n return result;\n };\n}\n\nasync function buildProjectBundle(\n entry: string,\n sessionId: string,\n sessionOutDir: string\n): Promise<DevelopmentBundle | Response> {\n const generationId = createGenerationId();\n const generationOutDir = resolve(sessionOutDir, generationId);\n const generationUrl = `${DEVELOPMENT_URL_PREFIX}/${sessionId}/${generationId}`;\n const buildOptions = {\n entrypoints: [entry],\n outdir: generationOutDir,\n target: 'browser' as const,\n format: 'esm' as const,\n sourcemap: 'inline' as const,\n write: true,\n throw: false,\n publicPath: `${generationUrl}/`,\n naming: {\n entry: '[name]-[hash].[ext]',\n chunk: '[name]-[hash].[ext]',\n asset: 'assets/[name]-[hash].[ext]',\n },\n };\n\n try {\n const result = await Bun.build(buildOptions);\n const entryArtifact = result.outputs.find(isEntryJavaScriptOutput);\n if (!result.success || !entryArtifact) {\n result.logs.forEach((log) => console.error(log));\n if (!entryArtifact) {\n console.error('Failed to build project bundle: no JavaScript output');\n }\n return buildFailureResponse();\n }\n\n const pendingArtifacts = new Map<string, DevelopmentOutput>();\n const outputs = new Map<\n Awaited<ReturnType<typeof Bun.build>>['outputs'][number],\n DevelopmentOutput\n >();\n\n for (const output of result.outputs) {\n const developmentOutput = createDevelopmentOutput(\n generationOutDir,\n generationUrl,\n output\n );\n if (pendingArtifacts.has(developmentOutput.pathname)) {\n throw new Error(\n `Development output URL collision: ${developmentOutput.pathname}`\n );\n }\n pendingArtifacts.set(developmentOutput.pathname, developmentOutput);\n outputs.set(output, developmentOutput);\n }\n\n const entry = outputs.get(entryArtifact);\n if (!entry) {\n throw new Error('Development entry output was not indexed');\n }\n\n return {\n entry,\n stylesheets: result.outputs\n .filter(isStylesheetOutput)\n .map((output) => outputs.get(output))\n .filter((output): output is DevelopmentOutput => output !== undefined),\n artifacts: pendingArtifacts,\n };\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n }\n}\n\nfunction publishDevelopmentBundle(\n bundle: DevelopmentBundle,\n artifacts: Map<string, DevelopmentOutput>\n): void {\n for (const [pathname, output] of bundle.artifacts) {\n const existing = artifacts.get(pathname);\n if (existing) {\n if (existing.filePath === output.filePath) {\n continue;\n }\n throw new Error(`Development output URL collision: ${pathname}`);\n }\n artifacts.set(pathname, output);\n }\n}\n\nfunction createDevelopmentOutput(\n generationOutDir: string,\n generationUrl: string,\n output: Awaited<ReturnType<typeof Bun.build>>['outputs'][number]\n): DevelopmentOutput {\n const filePath = resolve(output.path);\n const pathFromGeneration = relative(generationOutDir, filePath);\n if (\n pathFromGeneration === '' ||\n pathFromGeneration === '..' ||\n pathFromGeneration.startsWith(`..${sep}`) ||\n isAbsolute(pathFromGeneration)\n ) {\n throw new Error(\n `Development output must not escape outside its generation directory: ${output.path}`\n );\n }\n\n const urlPath = pathFromGeneration\n .split(sep)\n .map((segment) => encodeURIComponent(segment))\n .join('/');\n\n return {\n filePath,\n pathname: `${generationUrl}/${urlPath}`,\n type: output.type,\n };\n}\n\nfunction createGenerationId(): string {\n return randomUUID().replace(/-/g, '');\n}\n\nfunction buildFailureResponse(): Response {\n return new Response('Failed to build project bundle', {\n status: 500,\n headers: { 'cache-control': 'no-store' },\n });\n}\n",
|
|
12
|
+
"import type { ProxyOptions, ServerConfig } from './types';\n\nconst HOP_BY_HOP_HEADERS = new Set([\n 'connection',\n 'keep-alive',\n 'proxy-authenticate',\n 'proxy-authorization',\n 'te',\n 'trailer',\n 'transfer-encoding',\n 'upgrade',\n]);\n\ninterface ProxyRule {\n prefix: string;\n target: URL;\n changeOrigin: boolean;\n rewrite?: (path: string) => string;\n}\n\nexport function createProxyHandler(\n proxy: ServerConfig['proxy']\n): (request: Request) => Promise<Response | undefined> {\n const rules = Object.entries(proxy ?? {})\n .map(([prefix, options]) => toProxyRule(prefix, options))\n .sort((first, second) => second.prefix.length - first.prefix.length);\n\n return async (request) => {\n const sourceUrl = new URL(request.url);\n const rule = rules.find(({ prefix }) =>\n sourceUrl.pathname.startsWith(prefix)\n );\n\n if (!rule) {\n return undefined;\n }\n\n const target = createTargetUrl(rule, sourceUrl);\n const headers = createRequestHeaders(request, sourceUrl, rule, target);\n const body =\n request.method === 'GET' || request.method === 'HEAD'\n ? undefined\n : request.body;\n\n try {\n const upstream = await fetch(target, {\n method: request.method,\n headers,\n body,\n signal: request.signal,\n redirect: 'manual',\n });\n\n return new Response(upstream.body, {\n status: upstream.status,\n statusText: upstream.statusText,\n headers: filterHeaders(upstream.headers),\n });\n } catch {\n return new Response('Bad Gateway', { status: 502 });\n }\n };\n}\n\nfunction toProxyRule(prefix: string, value: string | ProxyOptions): ProxyRule {\n const options = typeof value === 'string' ? { target: value } : value;\n\n return {\n prefix,\n target: new URL(options.target),\n changeOrigin: options.changeOrigin ?? false,\n ...(options.rewrite === undefined ? {} : { rewrite: options.rewrite }),\n };\n}\n\nfunction createTargetUrl(rule: ProxyRule, sourceUrl: URL): URL {\n const target = new URL(rule.target);\n const pathname = rule.rewrite?.(sourceUrl.pathname) ?? sourceUrl.pathname;\n\n target.pathname = joinPathnames(target.pathname, pathname);\n target.search = sourceUrl.search;\n return target;\n}\n\nfunction joinPathnames(basePathname: string, pathname: string): string {\n const base = basePathname === '/' ? '' : basePathname.replace(/\\/+$/, '');\n const path = pathname.startsWith('/') ? pathname : `/${pathname}`;\n\n return `${base}${path}` || '/';\n}\n\nfunction createRequestHeaders(\n request: Request,\n sourceUrl: URL,\n rule: ProxyRule,\n target: URL\n): Headers {\n const headers = filterHeaders(request.headers);\n const incomingHost = request.headers.get('host') ?? sourceUrl.host;\n\n headers.set('host', rule.changeOrigin ? target.host : incomingHost);\n return headers;\n}\n\nfunction filterHeaders(source: Headers): Headers {\n const headers = new Headers(source);\n const connection = headers.get('connection');\n\n if (connection) {\n connection.split(',').forEach((header) => {\n const name = header.trim();\n if (name) {\n headers.delete(name);\n }\n });\n }\n\n HOP_BY_HOP_HEADERS.forEach((header) => headers.delete(header));\n return headers;\n}\n",
|
|
13
|
+
"import { watch, type FSWatcher } from 'node:fs';\nimport { readdir, stat } from 'node:fs/promises';\nimport { isAbsolute, join, relative } from 'node:path';\n\nconst RECURSIVE_WATCH_UNSUPPORTED_ERROR = 'ERR_FEATURE_UNAVAILABLE_ON_PLATFORM';\nconst DEFAULT_DEBOUNCE_MS = 100;\nconst DEFAULT_POLL_INTERVAL_MS = 300;\n\nexport interface FileWatcherOptions {\n root: string;\n isRelevant: (relativePath: string) => boolean;\n onChange: (changedPath: string) => void;\n debounceMs?: number;\n pollIntervalMs?: number;\n}\n\nexport interface FileWatcher {\n dispose: () => void;\n}\n\nexport function createFileWatcher(options: FileWatcherOptions): FileWatcher {\n const debounceMs = options.debounceMs ?? DEFAULT_DEBOUNCE_MS;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const disposers: Array<() => void> = [];\n\n const scheduleChange = (relativePath: string): void => {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n timer = undefined;\n options.onChange(relativePath);\n }, debounceMs);\n };\n\n disposers.push(() => {\n if (timer) {\n clearTimeout(timer);\n }\n });\n\n const nativeWatcher = tryCreateNativeWatcher(\n options.root,\n options.isRelevant,\n scheduleChange\n );\n if (nativeWatcher) {\n disposers.push(nativeWatcher);\n } else {\n disposers.push(\n createPollingWatcher(\n options.root,\n options.isRelevant,\n options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS,\n scheduleChange\n )\n );\n }\n\n return {\n dispose: () => {\n disposers.splice(0).reverse().forEach((dispose) => dispose());\n },\n };\n}\n\nfunction tryCreateNativeWatcher(\n root: string,\n isRelevant: (relativePath: string) => boolean,\n onRelevantChange: (relativePath: string) => void\n): (() => void) | undefined {\n let watcher: FSWatcher;\n try {\n watcher = watch(root, { recursive: true }, (_event, filename) => {\n if (typeof filename !== 'string') {\n return;\n }\n const relativePath = toRelativePath(root, filename);\n if (relativePath === undefined || !isRelevant(relativePath)) {\n return;\n }\n onRelevantChange(relativePath);\n });\n } catch (error: unknown) {\n if (isRecursiveWatchUnsupported(error)) {\n return undefined;\n }\n throw error;\n }\n\n return () => watcher.close();\n}\n\nfunction createPollingWatcher(\n root: string,\n isRelevant: (relativePath: string) => boolean,\n intervalMs: number,\n onRelevantChange: (relativePath: string) => void\n): () => void {\n let running = true;\n let snapshot = new Map<string, FileSnapshot>();\n let timer: ReturnType<typeof setInterval> | undefined;\n\n const scan = async (): Promise<void> => {\n if (!running) {\n return;\n }\n const next = new Map<string, FileSnapshot>();\n try {\n await collectRelevantFiles(root, isRelevant, next);\n } catch {\n return;\n }\n\n let changedPath: string | undefined;\n for (const [relativePath, snapshotEntry] of next) {\n const previous = snapshot.get(relativePath);\n if (\n !previous ||\n previous.mtimeMs !== snapshotEntry.mtimeMs ||\n previous.size !== snapshotEntry.size\n ) {\n changedPath = relativePath;\n break;\n }\n }\n if (changedPath === undefined) {\n for (const relativePath of snapshot.keys()) {\n if (!next.has(relativePath)) {\n changedPath = relativePath;\n break;\n }\n }\n }\n snapshot = next;\n if (changedPath !== undefined) {\n onRelevantChange(changedPath);\n }\n };\n\n void scan();\n timer = setInterval(() => {\n void scan();\n }, intervalMs);\n if (typeof timer.unref === 'function') {\n timer.unref();\n }\n\n return () => {\n running = false;\n if (timer) {\n clearInterval(timer);\n }\n };\n}\n\ninterface FileSnapshot {\n mtimeMs: number;\n size: number;\n}\n\nasync function collectRelevantFiles(\n root: string,\n isRelevant: (relativePath: string) => boolean,\n output: Map<string, FileSnapshot>\n): Promise<void> {\n const pendingDirectories = [''];\n while (pendingDirectories.length > 0) {\n const relativeDirectory = pendingDirectories.pop();\n if (relativeDirectory === undefined) {\n break;\n }\n const absoluteDirectory = join(root, relativeDirectory);\n let entries;\n try {\n entries = await readdir(absoluteDirectory, { withFileTypes: true });\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n const relativePath =\n relativeDirectory === '' ? entry.name : `${relativeDirectory}/${entry.name}`;\n if (entry.isDirectory()) {\n pendingDirectories.push(relativePath);\n continue;\n }\n if (!entry.isFile() || !isRelevant(relativePath)) {\n continue;\n }\n try {\n const info = await stat(join(root, relativePath));\n output.set(relativePath, { mtimeMs: info.mtimeMs, size: info.size });\n } catch {\n // The file vanished while the tree was being scanned.\n }\n }\n }\n}\n\nfunction toRelativePath(root: string, filename: string): string | undefined {\n const relativePath = isAbsolute(filename)\n ? relative(root, filename)\n : filename.split('\\\\').join('/');\n if (relativePath === '' || relativePath === '..' || relativePath.startsWith('../')) {\n return undefined;\n }\n return relativePath.split('\\\\').join('/');\n}\n\nfunction isRecursiveWatchUnsupported(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === RECURSIVE_WATCH_UNSUPPORTED_ERROR\n );\n}\n"
|
|
14
|
+
],
|
|
15
|
+
"mappings": "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",
|
|
16
|
+
"debugId": "12585AE602C4C51764756E2164756E21",
|
|
17
|
+
"names": []
|
|
18
|
+
}
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geektech/tsone-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Bun-native development and build CLI for TSone applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"test": "bun test"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@geektech/tsone": "
|
|
22
|
+
"@geektech/tsone": "0.2.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {},
|
|
25
25
|
"files": [
|
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
"access": "public",
|
|
33
33
|
"registry": "https://registry.npmjs.org/"
|
|
34
34
|
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/geektech-team/tsone.git",
|
|
38
|
+
"directory": "packages/tsone-cli"
|
|
39
|
+
},
|
|
35
40
|
"engines": {
|
|
36
41
|
"bun": ">=1.3.0"
|
|
37
42
|
}
|