@aigne/afs-cli 1.11.0-beta.1 → 1.11.0-beta.11
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 +262 -15
- package/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/_virtual/rolldown_runtime.mjs +7 -0
- package/dist/cli.cjs +40 -0
- package/dist/cli.d.cts +2 -0
- package/dist/cli.d.mts +2 -1
- package/dist/cli.mjs +36 -24
- package/dist/cli.mjs.map +1 -0
- package/dist/config/afs-loader.cjs +578 -0
- package/dist/config/afs-loader.d.cts +19 -0
- package/dist/config/afs-loader.d.cts.map +1 -0
- package/dist/config/afs-loader.d.mts +19 -0
- package/dist/config/afs-loader.d.mts.map +1 -0
- package/dist/config/afs-loader.mjs +576 -0
- package/dist/config/afs-loader.mjs.map +1 -0
- package/dist/config/env.cjs +46 -0
- package/dist/config/env.mjs +46 -0
- package/dist/config/env.mjs.map +1 -0
- package/dist/config/loader.cjs +219 -0
- package/dist/config/loader.mjs +217 -0
- package/dist/config/loader.mjs.map +1 -0
- package/dist/config/mount-commands.cjs +226 -0
- package/dist/config/mount-commands.d.cts +14 -0
- package/dist/config/mount-commands.d.cts.map +1 -0
- package/dist/config/mount-commands.d.mts +14 -0
- package/dist/config/mount-commands.d.mts.map +1 -0
- package/dist/config/mount-commands.mjs +220 -0
- package/dist/config/mount-commands.mjs.map +1 -0
- package/dist/config/schema.cjs +99 -0
- package/dist/config/schema.mjs +98 -0
- package/dist/config/schema.mjs.map +1 -0
- package/dist/core/commands/delete.cjs +41 -0
- package/dist/core/commands/delete.d.cts +18 -0
- package/dist/core/commands/delete.d.cts.map +1 -0
- package/dist/core/commands/delete.d.mts +18 -0
- package/dist/core/commands/delete.d.mts.map +1 -0
- package/dist/core/commands/delete.mjs +42 -0
- package/dist/core/commands/delete.mjs.map +1 -0
- package/dist/core/commands/exec.cjs +98 -0
- package/dist/core/commands/exec.d.cts +26 -0
- package/dist/core/commands/exec.d.cts.map +1 -0
- package/dist/core/commands/exec.d.mts +26 -0
- package/dist/core/commands/exec.d.mts.map +1 -0
- package/dist/core/commands/exec.mjs +99 -0
- package/dist/core/commands/exec.mjs.map +1 -0
- package/dist/core/commands/explain.cjs +278 -0
- package/dist/core/commands/explain.d.cts +25 -0
- package/dist/core/commands/explain.d.cts.map +1 -0
- package/dist/core/commands/explain.d.mts +25 -0
- package/dist/core/commands/explain.d.mts.map +1 -0
- package/dist/core/commands/explain.mjs +279 -0
- package/dist/core/commands/explain.mjs.map +1 -0
- package/dist/core/commands/explore.cjs +30 -0
- package/dist/core/commands/explore.d.mts +2 -0
- package/dist/core/commands/explore.mjs +31 -0
- package/dist/core/commands/explore.mjs.map +1 -0
- package/dist/core/commands/index.cjs +36 -0
- package/dist/core/commands/index.d.cts +21 -0
- package/dist/core/commands/index.d.cts.map +1 -0
- package/dist/core/commands/index.d.mts +24 -0
- package/dist/core/commands/index.d.mts.map +1 -0
- package/dist/core/commands/index.mjs +37 -0
- package/dist/core/commands/index.mjs.map +1 -0
- package/dist/core/commands/ls.cjs +57 -0
- package/dist/core/commands/ls.d.cts +21 -0
- package/dist/core/commands/ls.d.cts.map +1 -0
- package/dist/core/commands/ls.d.mts +21 -0
- package/dist/core/commands/ls.d.mts.map +1 -0
- package/dist/core/commands/ls.mjs +58 -0
- package/dist/core/commands/ls.mjs.map +1 -0
- package/dist/core/commands/mount.cjs +222 -0
- package/dist/core/commands/mount.d.cts +35 -0
- package/dist/core/commands/mount.d.cts.map +1 -0
- package/dist/core/commands/mount.d.mts +35 -0
- package/dist/core/commands/mount.d.mts.map +1 -0
- package/dist/core/commands/mount.mjs +223 -0
- package/dist/core/commands/mount.mjs.map +1 -0
- package/dist/core/commands/read.cjs +48 -0
- package/dist/core/commands/read.d.cts +17 -0
- package/dist/core/commands/read.d.cts.map +1 -0
- package/dist/core/commands/read.d.mts +17 -0
- package/dist/core/commands/read.d.mts.map +1 -0
- package/dist/core/commands/read.mjs +49 -0
- package/dist/core/commands/read.mjs.map +1 -0
- package/dist/core/commands/search.cjs +40 -0
- package/dist/core/commands/search.d.mts +2 -0
- package/dist/core/commands/search.mjs +41 -0
- package/dist/core/commands/search.mjs.map +1 -0
- package/dist/core/commands/serve.cjs +267 -0
- package/dist/core/commands/serve.d.mts +2 -0
- package/dist/core/commands/serve.mjs +267 -0
- package/dist/core/commands/serve.mjs.map +1 -0
- package/dist/core/commands/stat.cjs +53 -0
- package/dist/core/commands/stat.d.cts +17 -0
- package/dist/core/commands/stat.d.cts.map +1 -0
- package/dist/core/commands/stat.d.mts +17 -0
- package/dist/core/commands/stat.d.mts.map +1 -0
- package/dist/core/commands/stat.mjs +54 -0
- package/dist/core/commands/stat.mjs.map +1 -0
- package/dist/core/commands/types.cjs +18 -0
- package/dist/core/commands/types.d.cts +54 -0
- package/dist/core/commands/types.d.cts.map +1 -0
- package/dist/core/commands/types.d.mts +54 -0
- package/dist/core/commands/types.d.mts.map +1 -0
- package/dist/core/commands/types.mjs +19 -0
- package/dist/core/commands/types.mjs.map +1 -0
- package/dist/core/commands/write.cjs +70 -0
- package/dist/core/commands/write.d.cts +20 -0
- package/dist/core/commands/write.d.cts.map +1 -0
- package/dist/core/commands/write.d.mts +20 -0
- package/dist/core/commands/write.d.mts.map +1 -0
- package/dist/core/commands/write.mjs +71 -0
- package/dist/core/commands/write.mjs.map +1 -0
- package/dist/core/executor/index.cjs +196 -0
- package/dist/core/executor/index.d.cts +77 -0
- package/dist/core/executor/index.d.cts.map +1 -0
- package/dist/core/executor/index.d.mts +77 -0
- package/dist/core/executor/index.d.mts.map +1 -0
- package/dist/core/executor/index.mjs +195 -0
- package/dist/core/executor/index.mjs.map +1 -0
- package/dist/core/formatters/delete.cjs +37 -0
- package/dist/core/formatters/delete.d.cts +18 -0
- package/dist/core/formatters/delete.d.cts.map +1 -0
- package/dist/core/formatters/delete.d.mts +18 -0
- package/dist/core/formatters/delete.d.mts.map +1 -0
- package/dist/core/formatters/delete.mjs +37 -0
- package/dist/core/formatters/delete.mjs.map +1 -0
- package/dist/core/formatters/exec.cjs +60 -0
- package/dist/core/formatters/exec.d.cts +18 -0
- package/dist/core/formatters/exec.d.cts.map +1 -0
- package/dist/core/formatters/exec.d.mts +18 -0
- package/dist/core/formatters/exec.d.mts.map +1 -0
- package/dist/core/formatters/exec.mjs +60 -0
- package/dist/core/formatters/exec.mjs.map +1 -0
- package/dist/core/formatters/explain.cjs +99 -0
- package/dist/core/formatters/explain.d.cts +11 -0
- package/dist/core/formatters/explain.d.cts.map +1 -0
- package/dist/core/formatters/explain.d.mts +11 -0
- package/dist/core/formatters/explain.d.mts.map +1 -0
- package/dist/core/formatters/explain.mjs +98 -0
- package/dist/core/formatters/explain.mjs.map +1 -0
- package/dist/core/formatters/index.d.mts +9 -0
- package/dist/core/formatters/ls.cjs +179 -0
- package/dist/core/formatters/ls.d.cts +20 -0
- package/dist/core/formatters/ls.d.cts.map +1 -0
- package/dist/core/formatters/ls.d.mts +20 -0
- package/dist/core/formatters/ls.d.mts.map +1 -0
- package/dist/core/formatters/ls.mjs +179 -0
- package/dist/core/formatters/ls.mjs.map +1 -0
- package/dist/core/formatters/mount.cjs +55 -0
- package/dist/core/formatters/mount.d.cts +15 -0
- package/dist/core/formatters/mount.d.cts.map +1 -0
- package/dist/core/formatters/mount.d.mts +15 -0
- package/dist/core/formatters/mount.d.mts.map +1 -0
- package/dist/core/formatters/mount.mjs +55 -0
- package/dist/core/formatters/mount.mjs.map +1 -0
- package/dist/core/formatters/read.cjs +100 -0
- package/dist/core/formatters/read.d.cts +22 -0
- package/dist/core/formatters/read.d.cts.map +1 -0
- package/dist/core/formatters/read.d.mts +22 -0
- package/dist/core/formatters/read.d.mts.map +1 -0
- package/dist/core/formatters/read.mjs +100 -0
- package/dist/core/formatters/read.mjs.map +1 -0
- package/dist/core/formatters/search.cjs +44 -0
- package/dist/core/formatters/search.d.mts +1 -0
- package/dist/core/formatters/search.mjs +44 -0
- package/dist/core/formatters/search.mjs.map +1 -0
- package/dist/core/formatters/stat.cjs +155 -0
- package/dist/core/formatters/stat.d.cts +15 -0
- package/dist/core/formatters/stat.d.cts.map +1 -0
- package/dist/core/formatters/stat.d.mts +15 -0
- package/dist/core/formatters/stat.d.mts.map +1 -0
- package/dist/core/formatters/stat.mjs +155 -0
- package/dist/core/formatters/stat.mjs.map +1 -0
- package/dist/core/formatters/write.cjs +51 -0
- package/dist/core/formatters/write.d.cts +22 -0
- package/dist/core/formatters/write.d.cts.map +1 -0
- package/dist/core/formatters/write.d.mts +22 -0
- package/dist/core/formatters/write.d.mts.map +1 -0
- package/dist/core/formatters/write.mjs +51 -0
- package/dist/core/formatters/write.mjs.map +1 -0
- package/dist/core/helpers/exec-args.cjs +142 -0
- package/dist/core/helpers/exec-args.d.cts +46 -0
- package/dist/core/helpers/exec-args.d.cts.map +1 -0
- package/dist/core/helpers/exec-args.d.mts +46 -0
- package/dist/core/helpers/exec-args.d.mts.map +1 -0
- package/dist/core/helpers/exec-args.mjs +139 -0
- package/dist/core/helpers/exec-args.mjs.map +1 -0
- package/dist/core/helpers/stdin.cjs +41 -0
- package/dist/core/helpers/stdin.d.cts +15 -0
- package/dist/core/helpers/stdin.d.cts.map +1 -0
- package/dist/core/helpers/stdin.d.mts +15 -0
- package/dist/core/helpers/stdin.d.mts.map +1 -0
- package/dist/core/helpers/stdin.mjs +41 -0
- package/dist/core/helpers/stdin.mjs.map +1 -0
- package/dist/core/index.cjs +49 -0
- package/dist/core/index.d.cts +24 -0
- package/dist/core/index.d.mts +25 -0
- package/dist/core/index.mjs +24 -0
- package/dist/core/path-utils.cjs +1 -0
- package/dist/core/path-utils.mjs +3 -0
- package/dist/core/types.d.cts +24 -0
- package/dist/core/types.d.cts.map +1 -0
- package/dist/core/types.d.mts +24 -0
- package/dist/core/types.d.mts.map +1 -0
- package/dist/credential/auth-server.cjs +247 -0
- package/dist/credential/auth-server.mjs +247 -0
- package/dist/credential/auth-server.mjs.map +1 -0
- package/dist/credential/cli-auth-context.cjs +86 -0
- package/dist/credential/cli-auth-context.d.mts +1 -0
- package/dist/credential/cli-auth-context.mjs +86 -0
- package/dist/credential/cli-auth-context.mjs.map +1 -0
- package/dist/credential/index.cjs +5 -0
- package/dist/credential/index.d.mts +4 -0
- package/dist/credential/index.mjs +7 -0
- package/dist/credential/mcp-auth-context.cjs +192 -0
- package/dist/credential/mcp-auth-context.d.mts +1 -0
- package/dist/credential/mcp-auth-context.mjs +192 -0
- package/dist/credential/mcp-auth-context.mjs.map +1 -0
- package/dist/credential/resolver.cjs +127 -0
- package/dist/credential/resolver.d.mts +1 -0
- package/dist/credential/resolver.mjs +127 -0
- package/dist/credential/resolver.mjs.map +1 -0
- package/dist/credential/store.cjs +106 -0
- package/dist/credential/store.d.cts +30 -0
- package/dist/credential/store.d.cts.map +1 -0
- package/dist/credential/store.d.mts +30 -0
- package/dist/credential/store.d.mts.map +1 -0
- package/dist/credential/store.mjs +106 -0
- package/dist/credential/store.mjs.map +1 -0
- package/dist/errors.cjs +18 -0
- package/dist/errors.mjs +18 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/explorer/actions.cjs +311 -0
- package/dist/explorer/actions.mjs +305 -0
- package/dist/explorer/actions.mjs.map +1 -0
- package/dist/explorer/components/dialog.cjs +508 -0
- package/dist/explorer/components/dialog.mjs +509 -0
- package/dist/explorer/components/dialog.mjs.map +1 -0
- package/dist/explorer/components/file-list.cjs +107 -0
- package/dist/explorer/components/file-list.mjs +107 -0
- package/dist/explorer/components/file-list.mjs.map +1 -0
- package/dist/explorer/components/function-bar.cjs +55 -0
- package/dist/explorer/components/function-bar.mjs +55 -0
- package/dist/explorer/components/function-bar.mjs.map +1 -0
- package/dist/explorer/components/index.cjs +5 -0
- package/dist/explorer/components/index.mjs +7 -0
- package/dist/explorer/components/metadata-panel.cjs +219 -0
- package/dist/explorer/components/metadata-panel.mjs +219 -0
- package/dist/explorer/components/metadata-panel.mjs.map +1 -0
- package/dist/explorer/components/status-bar.cjs +53 -0
- package/dist/explorer/components/status-bar.mjs +54 -0
- package/dist/explorer/components/status-bar.mjs.map +1 -0
- package/dist/explorer/keybindings.cjs +214 -0
- package/dist/explorer/keybindings.mjs +213 -0
- package/dist/explorer/keybindings.mjs.map +1 -0
- package/dist/explorer/screen.cjs +251 -0
- package/dist/explorer/screen.d.cts +23 -0
- package/dist/explorer/screen.d.cts.map +1 -0
- package/dist/explorer/screen.d.mts +23 -0
- package/dist/explorer/screen.d.mts.map +1 -0
- package/dist/explorer/screen.mjs +250 -0
- package/dist/explorer/screen.mjs.map +1 -0
- package/dist/explorer/state.cjs +53 -0
- package/dist/explorer/state.mjs +53 -0
- package/dist/explorer/state.mjs.map +1 -0
- package/dist/explorer/theme.cjs +160 -0
- package/dist/explorer/theme.mjs +157 -0
- package/dist/explorer/theme.mjs.map +1 -0
- package/dist/index.cjs +12 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.mts +7 -4
- package/dist/index.mjs +7 -2
- package/dist/mcp/http-transport.cjs +87 -0
- package/dist/mcp/http-transport.mjs +87 -0
- package/dist/mcp/http-transport.mjs.map +1 -0
- package/dist/mcp/prompts.cjs +48 -0
- package/dist/mcp/prompts.mjs +48 -0
- package/dist/mcp/prompts.mjs.map +1 -0
- package/dist/mcp/resources.cjs +25 -0
- package/dist/mcp/resources.mjs +25 -0
- package/dist/mcp/resources.mjs.map +1 -0
- package/dist/mcp/server.cjs +74 -0
- package/dist/mcp/server.mjs +73 -0
- package/dist/mcp/server.mjs.map +1 -0
- package/dist/mcp/tools.cjs +152 -0
- package/dist/mcp/tools.mjs +152 -0
- package/dist/mcp/tools.mjs.map +1 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.cts +10 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.mts +10 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/index.d.mts.map +1 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.cts +46 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.mts +46 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/types.d.mts.map +1 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.cjs +902 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.mjs +902 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.mjs.map +1 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.cjs +6 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.mjs +8 -0
- package/dist/node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.mjs.map +1 -0
- package/dist/path-utils.cjs +105 -0
- package/dist/path-utils.d.cts +50 -0
- package/dist/path-utils.d.cts.map +1 -0
- package/dist/path-utils.d.mts +50 -0
- package/dist/path-utils.d.mts.map +1 -0
- package/dist/path-utils.mjs +104 -0
- package/dist/path-utils.mjs.map +1 -0
- package/dist/repl.cjs +491 -0
- package/dist/repl.d.cts +15 -0
- package/dist/repl.d.cts.map +1 -0
- package/dist/repl.d.mts +16 -0
- package/dist/repl.d.mts.map +1 -0
- package/dist/repl.mjs +491 -0
- package/dist/repl.mjs.map +1 -0
- package/dist/serve.cjs +146 -0
- package/dist/serve.d.cts +41 -0
- package/dist/serve.d.cts.map +1 -0
- package/dist/serve.d.mts +41 -0
- package/dist/serve.d.mts.map +1 -0
- package/dist/serve.mjs +146 -0
- package/dist/serve.mjs.map +1 -0
- package/dist/ui/header.cjs +12 -0
- package/dist/ui/header.mjs +13 -0
- package/dist/ui/header.mjs.map +1 -0
- package/dist/ui/index.cjs +8 -0
- package/dist/ui/index.mjs +9 -0
- package/dist/ui/index.mjs.map +1 -0
- package/dist/ui/terminal.cjs +88 -0
- package/dist/ui/terminal.mjs +88 -0
- package/dist/ui/terminal.mjs.map +1 -0
- package/dist/version.cjs +9 -0
- package/dist/version.d.cts +5 -0
- package/dist/version.d.cts.map +1 -0
- package/dist/version.d.mts +5 -0
- package/dist/version.d.mts.map +1 -0
- package/dist/version.mjs +9 -0
- package/dist/version.mjs.map +1 -0
- package/package.json +77 -11
- package/.turbo/turbo-build.log +0 -18
- package/.turbo/turbo-check-types.log +0 -4
- package/dist/version--p6A8sKX.mjs +0 -5
- package/src/cli.test.ts +0 -8
- package/src/cli.ts +0 -29
- package/src/index.ts +0 -7
- package/src/version.ts +0 -1
- package/tsconfig.json +0 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlpattern.mjs","names":["#i","#t","#n","#e","#s","#o","#b","#f","#r","#h","#u","#d","#A","#T","#P","#C","#E","#g","#S","#x","#O","#y","#p","#w","#k","#c","#R","#l","#m","#a"],"sources":["../../../../../../../../../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.js"],"sourcesContent":["var Pe=Object.defineProperty;var a=(e,t)=>Pe(e,\"name\",{value:t,configurable:!0});var P=class{type=3;name=\"\";prefix=\"\";value=\"\";suffix=\"\";modifier=3;constructor(t,r,n,c,l,f){this.type=t,this.name=r,this.prefix=n,this.value=c,this.suffix=l,this.modifier=f}hasCustomName(){return this.name!==\"\"&&typeof this.name!=\"number\"}};a(P,\"Part\");var Re=/[$_\\p{ID_Start}]/u,Ee=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,v=\".*\";function Oe(e,t){return(t?/^[\\x00-\\xFF]*$/:/^[\\x00-\\x7F]*$/).test(e)}a(Oe,\"isASCII\");function D(e,t=!1){let r=[],n=0;for(;n<e.length;){let c=e[n],l=a(function(f){if(!t)throw new TypeError(f);r.push({type:\"INVALID_CHAR\",index:n,value:e[n++]})},\"ErrorOrInvalid\");if(c===\"*\"){r.push({type:\"ASTERISK\",index:n,value:e[n++]});continue}if(c===\"+\"||c===\"?\"){r.push({type:\"OTHER_MODIFIER\",index:n,value:e[n++]});continue}if(c===\"\\\\\"){r.push({type:\"ESCAPED_CHAR\",index:n++,value:e[n++]});continue}if(c===\"{\"){r.push({type:\"OPEN\",index:n,value:e[n++]});continue}if(c===\"}\"){r.push({type:\"CLOSE\",index:n,value:e[n++]});continue}if(c===\":\"){let f=\"\",s=n+1;for(;s<e.length;){let i=e.substr(s,1);if(s===n+1&&Re.test(i)||s!==n+1&&Ee.test(i)){f+=e[s++];continue}break}if(!f){l(`Missing parameter name at ${n}`);continue}r.push({type:\"NAME\",index:n,value:f}),n=s;continue}if(c===\"(\"){let f=1,s=\"\",i=n+1,o=!1;if(e[i]===\"?\"){l(`Pattern cannot start with \"?\" at ${i}`);continue}for(;i<e.length;){if(!Oe(e[i],!1)){l(`Invalid character '${e[i]}' at ${i}.`),o=!0;break}if(e[i]===\"\\\\\"){s+=e[i++]+e[i++];continue}if(e[i]===\")\"){if(f--,f===0){i++;break}}else if(e[i]===\"(\"&&(f++,e[i+1]!==\"?\")){l(`Capturing groups are not allowed at ${i}`),o=!0;break}s+=e[i++]}if(o)continue;if(f){l(`Unbalanced pattern at ${n}`);continue}if(!s){l(`Missing pattern at ${n}`);continue}r.push({type:\"REGEX\",index:n,value:s}),n=i;continue}r.push({type:\"CHAR\",index:n,value:e[n++]})}return r.push({type:\"END\",index:n,value:\"\"}),r}a(D,\"lexer\");function F(e,t={}){let r=D(e);t.delimiter??=\"/#?\",t.prefixes??=\"./\";let n=`[^${x(t.delimiter)}]+?`,c=[],l=0,f=0,s=\"\",i=new Set,o=a(u=>{if(f<r.length&&r[f].type===u)return r[f++].value},\"tryConsume\"),h=a(()=>o(\"OTHER_MODIFIER\")??o(\"ASTERISK\"),\"tryConsumeModifier\"),p=a(u=>{let d=o(u);if(d!==void 0)return d;let{type:g,index:y}=r[f];throw new TypeError(`Unexpected ${g} at ${y}, expected ${u}`)},\"mustConsume\"),A=a(()=>{let u=\"\",d;for(;d=o(\"CHAR\")??o(\"ESCAPED_CHAR\");)u+=d;return u},\"consumeText\"),xe=a(u=>u,\"DefaultEncodePart\"),N=t.encodePart||xe,H=\"\",$=a(u=>{H+=u},\"appendToPendingFixedValue\"),M=a(()=>{H.length&&(c.push(new P(3,\"\",\"\",N(H),\"\",3)),H=\"\")},\"maybeAddPartFromPendingFixedValue\"),X=a((u,d,g,y,Z)=>{let m=3;switch(Z){case\"?\":m=1;break;case\"*\":m=0;break;case\"+\":m=2;break}if(!d&&!g&&m===3){$(u);return}if(M(),!d&&!g){if(!u)return;c.push(new P(3,\"\",\"\",N(u),\"\",m));return}let S;g?g===\"*\"?S=v:S=g:S=n;let k=2;S===n?(k=1,S=\"\"):S===v&&(k=0,S=\"\");let E;if(d?E=d:g&&(E=l++),i.has(E))throw new TypeError(`Duplicate name '${E}'.`);i.add(E),c.push(new P(k,E,N(u),S,N(y),m))},\"addPart\");for(;f<r.length;){let u=o(\"CHAR\"),d=o(\"NAME\"),g=o(\"REGEX\");if(!d&&!g&&(g=o(\"ASTERISK\")),d||g){let m=u??\"\";t.prefixes.indexOf(m)===-1&&($(m),m=\"\"),M();let S=h();X(m,d,g,\"\",S);continue}let y=u??o(\"ESCAPED_CHAR\");if(y){$(y);continue}if(o(\"OPEN\")){let m=A(),S=o(\"NAME\"),k=o(\"REGEX\");!S&&!k&&(k=o(\"ASTERISK\"));let E=A();p(\"CLOSE\");let be=h();X(m,S,k,E,be);continue}M(),p(\"END\")}return c}a(F,\"parse\");function x(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}a(x,\"escapeString\");function B(e){return e&&e.ignoreCase?\"ui\":\"u\"}a(B,\"flags\");function q(e,t,r){return W(F(e,r),t,r)}a(q,\"stringToRegexp\");function T(e){switch(e){case 0:return\"*\";case 1:return\"?\";case 2:return\"+\";case 3:return\"\"}}a(T,\"modifierToString\");function W(e,t,r={}){r.delimiter??=\"/#?\",r.prefixes??=\"./\",r.sensitive??=!1,r.strict??=!1,r.end??=!0,r.start??=!0,r.endsWith=\"\";let n=r.start?\"^\":\"\";for(let s of e){if(s.type===3){s.modifier===3?n+=x(s.value):n+=`(?:${x(s.value)})${T(s.modifier)}`;continue}t&&t.push(s.name);let i=`[^${x(r.delimiter)}]+?`,o=s.value;if(s.type===1?o=i:s.type===0&&(o=v),!s.prefix.length&&!s.suffix.length){s.modifier===3||s.modifier===1?n+=`(${o})${T(s.modifier)}`:n+=`((?:${o})${T(s.modifier)})`;continue}if(s.modifier===3||s.modifier===1){n+=`(?:${x(s.prefix)}(${o})${x(s.suffix)})`,n+=T(s.modifier);continue}n+=`(?:${x(s.prefix)}`,n+=`((?:${o})(?:`,n+=x(s.suffix),n+=x(s.prefix),n+=`(?:${o}))*)${x(s.suffix)})`,s.modifier===0&&(n+=\"?\")}let c=`[${x(r.endsWith)}]|$`,l=`[${x(r.delimiter)}]`;if(r.end)return r.strict||(n+=`${l}?`),r.endsWith.length?n+=`(?=${c})`:n+=\"$\",new RegExp(n,B(r));r.strict||(n+=`(?:${l}(?=${c}))?`);let f=!1;if(e.length){let s=e[e.length-1];s.type===3&&s.modifier===3&&(f=r.delimiter.indexOf(s)>-1)}return f||(n+=`(?=${l}|${c})`),new RegExp(n,B(r))}a(W,\"partsToRegexp\");var b={delimiter:\"\",prefixes:\"\",sensitive:!0,strict:!0},J={delimiter:\".\",prefixes:\"\",sensitive:!0,strict:!0},Q={delimiter:\"/\",prefixes:\"/\",sensitive:!0,strict:!0};function ee(e,t){return e.length?e[0]===\"/\"?!0:!t||e.length<2?!1:(e[0]==\"\\\\\"||e[0]==\"{\")&&e[1]==\"/\":!1}a(ee,\"isAbsolutePathname\");function te(e,t){return e.startsWith(t)?e.substring(t.length,e.length):e}a(te,\"maybeStripPrefix\");function ke(e,t){return e.endsWith(t)?e.substr(0,e.length-t.length):e}a(ke,\"maybeStripSuffix\");function _(e){return!e||e.length<2?!1:e[0]===\"[\"||(e[0]===\"\\\\\"||e[0]===\"{\")&&e[1]===\"[\"}a(_,\"treatAsIPv6Hostname\");var re=[\"ftp\",\"file\",\"http\",\"https\",\"ws\",\"wss\"];function U(e){if(!e)return!0;for(let t of re)if(e.test(t))return!0;return!1}a(U,\"isSpecialScheme\");function ne(e,t){if(e=te(e,\"#\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.hash=e,r.hash?r.hash.substring(1,r.hash.length):\"\"}a(ne,\"canonicalizeHash\");function se(e,t){if(e=te(e,\"?\"),t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.search=e,r.search?r.search.substring(1,r.search.length):\"\"}a(se,\"canonicalizeSearch\");function ie(e,t){return t||e===\"\"?e:_(e)?K(e):j(e)}a(ie,\"canonicalizeHostname\");function ae(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.password=e,r.password}a(ae,\"canonicalizePassword\");function oe(e,t){if(t||e===\"\")return e;let r=new URL(\"https://example.com\");return r.username=e,r.username}a(oe,\"canonicalizeUsername\");function ce(e,t,r){if(r||e===\"\")return e;if(t&&!re.includes(t))return new URL(`${t}:${e}`).pathname;let n=e[0]==\"/\";return e=new URL(n?e:\"/-\"+e,\"https://example.com\").pathname,n||(e=e.substring(2,e.length)),e}a(ce,\"canonicalizePathname\");function le(e,t,r){return z(t)===e&&(e=\"\"),r||e===\"\"?e:G(e)}a(le,\"canonicalizePort\");function fe(e,t){return e=ke(e,\":\"),t||e===\"\"?e:w(e)}a(fe,\"canonicalizeProtocol\");function z(e){switch(e){case\"ws\":case\"http\":return\"80\";case\"wws\":case\"https\":return\"443\";case\"ftp\":return\"21\";default:return\"\"}}a(z,\"defaultPortForProtocol\");function w(e){if(e===\"\")return e;if(/^[-+.A-Za-z0-9]*$/.test(e))return e.toLowerCase();throw new TypeError(`Invalid protocol '${e}'.`)}a(w,\"protocolEncodeCallback\");function he(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.username=e,t.username}a(he,\"usernameEncodeCallback\");function ue(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.password=e,t.password}a(ue,\"passwordEncodeCallback\");function j(e){if(e===\"\")return e;if(/[\\t\\n\\r #%/:<>?@[\\]^\\\\|]/g.test(e))throw new TypeError(`Invalid hostname '${e}'`);let t=new URL(\"https://example.com\");return t.hostname=e,t.hostname}a(j,\"hostnameEncodeCallback\");function K(e){if(e===\"\")return e;if(/[^0-9a-fA-F[\\]:]/g.test(e))throw new TypeError(`Invalid IPv6 hostname '${e}'`);return e.toLowerCase()}a(K,\"ipv6HostnameEncodeCallback\");function G(e){if(e===\"\"||/^[0-9]*$/.test(e)&&parseInt(e)<=65535)return e;throw new TypeError(`Invalid port '${e}'.`)}a(G,\"portEncodeCallback\");function de(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.pathname=e[0]!==\"/\"?\"/-\"+e:e,e[0]!==\"/\"?t.pathname.substring(2,t.pathname.length):t.pathname}a(de,\"standardURLPathnameEncodeCallback\");function pe(e){return e===\"\"?e:new URL(`data:${e}`).pathname}a(pe,\"pathURLPathnameEncodeCallback\");function ge(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.search=e,t.search.substring(1,t.search.length)}a(ge,\"searchEncodeCallback\");function me(e){if(e===\"\")return e;let t=new URL(\"https://example.com\");return t.hash=e,t.hash.substring(1,t.hash.length)}a(me,\"hashEncodeCallback\");var C=class{#i;#n=[];#t={};#e=0;#s=1;#l=0;#o=0;#d=0;#p=0;#g=!1;constructor(t){this.#i=t}get result(){return this.#t}parse(){for(this.#n=D(this.#i,!0);this.#e<this.#n.length;this.#e+=this.#s){if(this.#s=1,this.#n[this.#e].type===\"END\"){if(this.#o===0){this.#b(),this.#f()?this.#r(9,1):this.#h()?this.#r(8,1):this.#r(7,0);continue}else if(this.#o===2){this.#u(5);continue}this.#r(10,0);break}if(this.#d>0)if(this.#A())this.#d-=1;else continue;if(this.#T()){this.#d+=1;continue}switch(this.#o){case 0:this.#P()&&this.#u(1);break;case 1:if(this.#P()){this.#C();let t=7,r=1;this.#E()?(t=2,r=3):this.#g&&(t=2),this.#r(t,r)}break;case 2:this.#S()?this.#u(3):(this.#x()||this.#h()||this.#f())&&this.#u(5);break;case 3:this.#O()?this.#r(4,1):this.#S()&&this.#r(5,1);break;case 4:this.#S()&&this.#r(5,1);break;case 5:this.#y()?this.#p+=1:this.#w()&&(this.#p-=1),this.#k()&&!this.#p?this.#r(6,1):this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 6:this.#x()?this.#r(7,0):this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 7:this.#h()?this.#r(8,1):this.#f()&&this.#r(9,1);break;case 8:this.#f()&&this.#r(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port=\"\")}#r(t,r){switch(this.#o){case 0:break;case 1:this.#t.protocol=this.#c();break;case 2:break;case 3:this.#t.username=this.#c();break;case 4:this.#t.password=this.#c();break;case 5:this.#t.hostname=this.#c();break;case 6:this.#t.port=this.#c();break;case 7:this.#t.pathname=this.#c();break;case 8:this.#t.search=this.#c();break;case 9:this.#t.hash=this.#c();break;case 10:break}this.#o!==0&&t!==10&&([1,2,3,4].includes(this.#o)&&[6,7,8,9].includes(t)&&(this.#t.hostname??=\"\"),[1,2,3,4,5,6].includes(this.#o)&&[8,9].includes(t)&&(this.#t.pathname??=this.#g?\"/\":\"\"),[1,2,3,4,5,6,7].includes(this.#o)&&t===9&&(this.#t.search??=\"\")),this.#R(t,r)}#R(t,r){this.#o=t,this.#l=this.#e+r,this.#e+=r,this.#s=0}#b(){this.#e=this.#l,this.#s=0}#u(t){this.#b(),this.#o=t}#m(t){return t<0&&(t=this.#n.length-t),t<this.#n.length?this.#n[t]:this.#n[this.#n.length-1]}#a(t,r){let n=this.#m(t);return n.value===r&&(n.type===\"CHAR\"||n.type===\"ESCAPED_CHAR\"||n.type===\"INVALID_CHAR\")}#P(){return this.#a(this.#e,\":\")}#E(){return this.#a(this.#e+1,\"/\")&&this.#a(this.#e+2,\"/\")}#S(){return this.#a(this.#e,\"@\")}#O(){return this.#a(this.#e,\":\")}#k(){return this.#a(this.#e,\":\")}#x(){return this.#a(this.#e,\"/\")}#h(){if(this.#a(this.#e,\"?\"))return!0;if(this.#n[this.#e].value!==\"?\")return!1;let t=this.#m(this.#e-1);return t.type!==\"NAME\"&&t.type!==\"REGEX\"&&t.type!==\"CLOSE\"&&t.type!==\"ASTERISK\"}#f(){return this.#a(this.#e,\"#\")}#T(){return this.#n[this.#e].type==\"OPEN\"}#A(){return this.#n[this.#e].type==\"CLOSE\"}#y(){return this.#a(this.#e,\"[\")}#w(){return this.#a(this.#e,\"]\")}#c(){let t=this.#n[this.#e],r=this.#m(this.#l).index;return this.#i.substring(r,t.index)}#C(){let t={};Object.assign(t,b),t.encodePart=w;let r=q(this.#c(),void 0,t);this.#g=U(r)}};a(C,\"Parser\");var V=[\"protocol\",\"username\",\"password\",\"hostname\",\"port\",\"pathname\",\"search\",\"hash\"],O=\"*\";function Se(e,t){if(typeof e!=\"string\")throw new TypeError(\"parameter 1 is not of type 'string'.\");let r=new URL(e,t);return{protocol:r.protocol.substring(0,r.protocol.length-1),username:r.username,password:r.password,hostname:r.hostname,port:r.port,pathname:r.pathname,search:r.search!==\"\"?r.search.substring(1,r.search.length):void 0,hash:r.hash!==\"\"?r.hash.substring(1,r.hash.length):void 0}}a(Se,\"extractValues\");function R(e,t){return t?I(e):e}a(R,\"processBaseURLString\");function L(e,t,r){let n;if(typeof t.baseURL==\"string\")try{n=new URL(t.baseURL),t.protocol===void 0&&(e.protocol=R(n.protocol.substring(0,n.protocol.length-1),r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&(e.username=R(n.username,r)),!r&&t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.username===void 0&&t.password===void 0&&(e.password=R(n.password,r)),t.protocol===void 0&&t.hostname===void 0&&(e.hostname=R(n.hostname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&(e.port=R(n.port,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&(e.pathname=R(n.pathname,r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&(e.search=R(n.search.substring(1,n.search.length),r)),t.protocol===void 0&&t.hostname===void 0&&t.port===void 0&&t.pathname===void 0&&t.search===void 0&&t.hash===void 0&&(e.hash=R(n.hash.substring(1,n.hash.length),r))}catch{throw new TypeError(`invalid baseURL '${t.baseURL}'.`)}if(typeof t.protocol==\"string\"&&(e.protocol=fe(t.protocol,r)),typeof t.username==\"string\"&&(e.username=oe(t.username,r)),typeof t.password==\"string\"&&(e.password=ae(t.password,r)),typeof t.hostname==\"string\"&&(e.hostname=ie(t.hostname,r)),typeof t.port==\"string\"&&(e.port=le(t.port,e.protocol,r)),typeof t.pathname==\"string\"){if(e.pathname=t.pathname,n&&!ee(e.pathname,r)){let c=n.pathname.lastIndexOf(\"/\");c>=0&&(e.pathname=R(n.pathname.substring(0,c+1),r)+e.pathname)}e.pathname=ce(e.pathname,e.protocol,r)}return typeof t.search==\"string\"&&(e.search=se(t.search,r)),typeof t.hash==\"string\"&&(e.hash=ne(t.hash,r)),e}a(L,\"applyInit\");function I(e){return e.replace(/([+*?:{}()\\\\])/g,\"\\\\$1\")}a(I,\"escapePatternString\");function Te(e){return e.replace(/([.+*?^${}()[\\]|/\\\\])/g,\"\\\\$1\")}a(Te,\"escapeRegexpString\");function Ae(e,t){t.delimiter??=\"/#?\",t.prefixes??=\"./\",t.sensitive??=!1,t.strict??=!1,t.end??=!0,t.start??=!0,t.endsWith=\"\";let r=\".*\",n=`[^${Te(t.delimiter)}]+?`,c=/[$_\\u200C\\u200D\\p{ID_Continue}]/u,l=\"\";for(let f=0;f<e.length;++f){let s=e[f];if(s.type===3){if(s.modifier===3){l+=I(s.value);continue}l+=`{${I(s.value)}}${T(s.modifier)}`;continue}let i=s.hasCustomName(),o=!!s.suffix.length||!!s.prefix.length&&(s.prefix.length!==1||!t.prefixes.includes(s.prefix)),h=f>0?e[f-1]:null,p=f<e.length-1?e[f+1]:null;if(!o&&i&&s.type===1&&s.modifier===3&&p&&!p.prefix.length&&!p.suffix.length)if(p.type===3){let A=p.value.length>0?p.value[0]:\"\";o=c.test(A)}else o=!p.hasCustomName();if(!o&&!s.prefix.length&&h&&h.type===3){let A=h.value[h.value.length-1];o=t.prefixes.includes(A)}o&&(l+=\"{\"),l+=I(s.prefix),i&&(l+=`:${s.name}`),s.type===2?l+=`(${s.value})`:s.type===1?i||(l+=`(${n})`):s.type===0&&(!i&&(!h||h.type===3||h.modifier!==3||o||s.prefix!==\"\")?l+=\"*\":l+=`(${r})`),s.type===1&&i&&s.suffix.length&&c.test(s.suffix[0])&&(l+=\"\\\\\"),l+=I(s.suffix),o&&(l+=\"}\"),s.modifier!==3&&(l+=T(s.modifier))}return l}a(Ae,\"partsToPattern\");var Y=class{#i;#n={};#t={};#e={};#s={};#l=!1;constructor(t={},r,n){try{let c;if(typeof r==\"string\"?c=r:n=r,typeof t==\"string\"){let i=new C(t);if(i.parse(),t=i.result,c===void 0&&typeof t.protocol!=\"string\")throw new TypeError(\"A base URL must be provided for a relative constructor string.\");t.baseURL=c}else{if(!t||typeof t!=\"object\")throw new TypeError(\"parameter 1 is not of type 'string' and cannot convert to dictionary.\");if(c)throw new TypeError(\"parameter 1 is not of type 'string'.\")}typeof n>\"u\"&&(n={ignoreCase:!1});let l={ignoreCase:n.ignoreCase===!0},f={pathname:O,protocol:O,username:O,password:O,hostname:O,port:O,search:O,hash:O};this.#i=L(f,t,!0),z(this.#i.protocol)===this.#i.port&&(this.#i.port=\"\");let s;for(s of V){if(!(s in this.#i))continue;let i={},o=this.#i[s];switch(this.#t[s]=[],s){case\"protocol\":Object.assign(i,b),i.encodePart=w;break;case\"username\":Object.assign(i,b),i.encodePart=he;break;case\"password\":Object.assign(i,b),i.encodePart=ue;break;case\"hostname\":Object.assign(i,J),_(o)?i.encodePart=K:i.encodePart=j;break;case\"port\":Object.assign(i,b),i.encodePart=G;break;case\"pathname\":U(this.#n.protocol)?(Object.assign(i,Q,l),i.encodePart=de):(Object.assign(i,b,l),i.encodePart=pe);break;case\"search\":Object.assign(i,b,l),i.encodePart=ge;break;case\"hash\":Object.assign(i,b,l),i.encodePart=me;break}try{this.#s[s]=F(o,i),this.#n[s]=W(this.#s[s],this.#t[s],i),this.#e[s]=Ae(this.#s[s],i),this.#l=this.#l||this.#s[s].some(h=>h.type===2)}catch{throw new TypeError(`invalid ${s} pattern '${this.#i[s]}'.`)}}}catch(c){throw new TypeError(`Failed to construct 'URLPattern': ${c.message}`)}}get[Symbol.toStringTag](){return\"URLPattern\"}test(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return!1;try{typeof t==\"object\"?n=L(n,t,!1):n=L(n,Se(t,r),!1)}catch{return!1}let c;for(c of V)if(!this.#n[c].exec(n[c]))return!1;return!0}exec(t={},r){let n={pathname:\"\",protocol:\"\",username:\"\",password:\"\",hostname:\"\",port:\"\",search:\"\",hash:\"\"};if(typeof t!=\"string\"&&r)throw new TypeError(\"parameter 1 is not of type 'string'.\");if(typeof t>\"u\")return;try{typeof t==\"object\"?n=L(n,t,!1):n=L(n,Se(t,r),!1)}catch{return null}let c={};r?c.inputs=[t,r]:c.inputs=[t];let l;for(l of V){let f=this.#n[l].exec(n[l]);if(!f)return null;let s={};for(let[i,o]of this.#t[l].entries())if(typeof o==\"string\"||typeof o==\"number\"){let h=f[i+1];s[o]=h}c[l]={input:n[l]??\"\",groups:s}}return c}static compareComponent(t,r,n){let c=a((i,o)=>{for(let h of[\"type\",\"modifier\",\"prefix\",\"value\",\"suffix\"]){if(i[h]<o[h])return-1;if(i[h]===o[h])continue;return 1}return 0},\"comparePart\"),l=new P(3,\"\",\"\",\"\",\"\",3),f=new P(0,\"\",\"\",\"\",\"\",3),s=a((i,o)=>{let h=0;for(;h<Math.min(i.length,o.length);++h){let p=c(i[h],o[h]);if(p)return p}return i.length===o.length?0:c(i[h]??l,o[h]??l)},\"comparePartList\");return!r.#e[t]&&!n.#e[t]?0:r.#e[t]&&!n.#e[t]?s(r.#s[t],[f]):!r.#e[t]&&n.#e[t]?s([f],n.#s[t]):s(r.#s[t],n.#s[t])}get protocol(){return this.#e.protocol}get username(){return this.#e.username}get password(){return this.#e.password}get hostname(){return this.#e.hostname}get port(){return this.#e.port}get pathname(){return this.#e.pathname}get search(){return this.#e.search}get hash(){return this.#e.hash}get hasRegExpGroups(){return this.#l}};a(Y,\"URLPattern\");export{Y as URLPattern};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Y } from "./dist/urlpattern.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.js
|
|
4
|
+
if (!globalThis.URLPattern) globalThis.URLPattern = Y;
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
export { };
|
|
8
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["URLPattern"],"sources":["../../../../../../../../node_modules/.pnpm/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/index.js"],"sourcesContent":["import { URLPattern } from \"./dist/urlpattern.js\";\n\nexport { URLPattern };\n\nif (!globalThis.URLPattern) {\n globalThis.URLPattern = URLPattern;\n}\n"],"x_google_ignoreList":[0],"mappings":";;;AAIA,IAAI,CAAC,WAAW,WACd,YAAW,aAAaA"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let _aigne_afs = require("@aigne/afs");
|
|
3
|
+
|
|
4
|
+
//#region src/path-utils.ts
|
|
5
|
+
/**
|
|
6
|
+
* CLI Path Utilities
|
|
7
|
+
*
|
|
8
|
+
* Converts CLI UX layer paths to canonical AFS paths:
|
|
9
|
+
* - /path → $afs/path (default namespace)
|
|
10
|
+
* - @namespace/path → $afs:namespace/path (named namespace)
|
|
11
|
+
* - $afs/path → $afs/path (passthrough)
|
|
12
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Characters forbidden in namespace names (security-sensitive)
|
|
16
|
+
*/
|
|
17
|
+
const NAMESPACE_FORBIDDEN_CHARS = [
|
|
18
|
+
"/",
|
|
19
|
+
"\\",
|
|
20
|
+
":",
|
|
21
|
+
";",
|
|
22
|
+
"|",
|
|
23
|
+
"&",
|
|
24
|
+
"`",
|
|
25
|
+
"$",
|
|
26
|
+
"(",
|
|
27
|
+
")",
|
|
28
|
+
">",
|
|
29
|
+
"<",
|
|
30
|
+
"\n",
|
|
31
|
+
"\r",
|
|
32
|
+
" ",
|
|
33
|
+
"\0"
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* Validate a namespace name from CLI input
|
|
37
|
+
* @throws Error if namespace is invalid
|
|
38
|
+
*/
|
|
39
|
+
function validateCliNamespace(namespace) {
|
|
40
|
+
if (!namespace || namespace.trim() === "") throw new Error("Namespace cannot be empty");
|
|
41
|
+
for (const char of NAMESPACE_FORBIDDEN_CHARS) if (namespace.includes(char)) throw new Error(`Namespace contains forbidden character: '${char}'`);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse a CLI path into namespace and path components
|
|
45
|
+
*
|
|
46
|
+
* Supported formats:
|
|
47
|
+
* - /path → { namespace: null, path: "/path" }
|
|
48
|
+
* - @namespace/path → { namespace: "namespace", path: "/path" }
|
|
49
|
+
* - $afs/path → { namespace: null, path: "/path" }
|
|
50
|
+
* - $afs:namespace/path → { namespace: "namespace", path: "/path" }
|
|
51
|
+
*
|
|
52
|
+
* @param input - CLI path input
|
|
53
|
+
* @returns Parsed namespace and path
|
|
54
|
+
* @throws Error if input format is invalid
|
|
55
|
+
*/
|
|
56
|
+
function parseCliPath(input) {
|
|
57
|
+
if (!input || input.trim() === "") throw new Error("Path cannot be empty");
|
|
58
|
+
const trimmed = input.trim();
|
|
59
|
+
if ((0, _aigne_afs.isCanonicalPath)(trimmed)) {
|
|
60
|
+
const parsed = (0, _aigne_afs.parseCanonicalPath)(trimmed);
|
|
61
|
+
return {
|
|
62
|
+
namespace: parsed.namespace,
|
|
63
|
+
path: parsed.path
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (trimmed.startsWith("@")) {
|
|
67
|
+
const rest = trimmed.slice(1);
|
|
68
|
+
const slashIndex = rest.indexOf("/");
|
|
69
|
+
if (slashIndex === -1) throw new Error("Invalid path format: @namespace requires /path (e.g., @staging/api)");
|
|
70
|
+
const namespace = rest.slice(0, slashIndex);
|
|
71
|
+
const path = rest.slice(slashIndex);
|
|
72
|
+
if (!namespace) throw new Error("Namespace cannot be empty after @");
|
|
73
|
+
validateCliNamespace(namespace);
|
|
74
|
+
return {
|
|
75
|
+
namespace,
|
|
76
|
+
path: path || "/"
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (trimmed.startsWith("/")) return {
|
|
80
|
+
namespace: null,
|
|
81
|
+
path: trimmed
|
|
82
|
+
};
|
|
83
|
+
throw new Error(`Invalid path format: '${trimmed}'. Use /path, @namespace/path, or $afs/path`);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Convert a CLI UX path to canonical AFS path
|
|
87
|
+
*
|
|
88
|
+
* Supported conversions:
|
|
89
|
+
* - /path → $afs/path
|
|
90
|
+
* - @namespace/path → $afs:namespace/path
|
|
91
|
+
* - $afs/path → $afs/path (passthrough)
|
|
92
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
93
|
+
*
|
|
94
|
+
* @param input - CLI path input
|
|
95
|
+
* @returns Canonical AFS path
|
|
96
|
+
* @throws Error if input format is invalid
|
|
97
|
+
*/
|
|
98
|
+
function cliPathToCanonical(input) {
|
|
99
|
+
const { namespace, path } = parseCliPath(input);
|
|
100
|
+
return (0, _aigne_afs.toCanonicalPath)(namespace, path);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//#endregion
|
|
104
|
+
exports.cliPathToCanonical = cliPathToCanonical;
|
|
105
|
+
exports.parseCliPath = parseCliPath;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/path-utils.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* CLI Path Utilities
|
|
4
|
+
*
|
|
5
|
+
* Converts CLI UX layer paths to canonical AFS paths:
|
|
6
|
+
* - /path → $afs/path (default namespace)
|
|
7
|
+
* - @namespace/path → $afs:namespace/path (named namespace)
|
|
8
|
+
* - $afs/path → $afs/path (passthrough)
|
|
9
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Parsed CLI path result
|
|
13
|
+
*/
|
|
14
|
+
interface ParsedCliPath {
|
|
15
|
+
/** Namespace (null for default namespace) */
|
|
16
|
+
namespace: string | null;
|
|
17
|
+
/** Path within namespace (always starts with /) */
|
|
18
|
+
path: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse a CLI path into namespace and path components
|
|
22
|
+
*
|
|
23
|
+
* Supported formats:
|
|
24
|
+
* - /path → { namespace: null, path: "/path" }
|
|
25
|
+
* - @namespace/path → { namespace: "namespace", path: "/path" }
|
|
26
|
+
* - $afs/path → { namespace: null, path: "/path" }
|
|
27
|
+
* - $afs:namespace/path → { namespace: "namespace", path: "/path" }
|
|
28
|
+
*
|
|
29
|
+
* @param input - CLI path input
|
|
30
|
+
* @returns Parsed namespace and path
|
|
31
|
+
* @throws Error if input format is invalid
|
|
32
|
+
*/
|
|
33
|
+
declare function parseCliPath(input: string): ParsedCliPath;
|
|
34
|
+
/**
|
|
35
|
+
* Convert a CLI UX path to canonical AFS path
|
|
36
|
+
*
|
|
37
|
+
* Supported conversions:
|
|
38
|
+
* - /path → $afs/path
|
|
39
|
+
* - @namespace/path → $afs:namespace/path
|
|
40
|
+
* - $afs/path → $afs/path (passthrough)
|
|
41
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
42
|
+
*
|
|
43
|
+
* @param input - CLI path input
|
|
44
|
+
* @returns Canonical AFS path
|
|
45
|
+
* @throws Error if input format is invalid
|
|
46
|
+
*/
|
|
47
|
+
declare function cliPathToCanonical(input: string): string;
|
|
48
|
+
//#endregion
|
|
49
|
+
export { ParsedCliPath, cliPathToCanonical, parseCliPath };
|
|
50
|
+
//# sourceMappingURL=path-utils.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.d.cts","names":[],"sources":["../src/path-utils.ts"],"mappings":";;AAqDA;;;;;AAoBA;;;;;AAmEA;UAvFiB,aAAA;;EAEf,SAAA;EAqF8C;EAnF9C,IAAA;AAAA;;;;;;;;;;;;;;iBAgBc,YAAA,CAAa,KAAA,WAAgB,aAAA;;;;;;;;;;;;;;iBAmE7B,kBAAA,CAAmB,KAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/path-utils.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* CLI Path Utilities
|
|
4
|
+
*
|
|
5
|
+
* Converts CLI UX layer paths to canonical AFS paths:
|
|
6
|
+
* - /path → $afs/path (default namespace)
|
|
7
|
+
* - @namespace/path → $afs:namespace/path (named namespace)
|
|
8
|
+
* - $afs/path → $afs/path (passthrough)
|
|
9
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Parsed CLI path result
|
|
13
|
+
*/
|
|
14
|
+
interface ParsedCliPath {
|
|
15
|
+
/** Namespace (null for default namespace) */
|
|
16
|
+
namespace: string | null;
|
|
17
|
+
/** Path within namespace (always starts with /) */
|
|
18
|
+
path: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse a CLI path into namespace and path components
|
|
22
|
+
*
|
|
23
|
+
* Supported formats:
|
|
24
|
+
* - /path → { namespace: null, path: "/path" }
|
|
25
|
+
* - @namespace/path → { namespace: "namespace", path: "/path" }
|
|
26
|
+
* - $afs/path → { namespace: null, path: "/path" }
|
|
27
|
+
* - $afs:namespace/path → { namespace: "namespace", path: "/path" }
|
|
28
|
+
*
|
|
29
|
+
* @param input - CLI path input
|
|
30
|
+
* @returns Parsed namespace and path
|
|
31
|
+
* @throws Error if input format is invalid
|
|
32
|
+
*/
|
|
33
|
+
declare function parseCliPath(input: string): ParsedCliPath;
|
|
34
|
+
/**
|
|
35
|
+
* Convert a CLI UX path to canonical AFS path
|
|
36
|
+
*
|
|
37
|
+
* Supported conversions:
|
|
38
|
+
* - /path → $afs/path
|
|
39
|
+
* - @namespace/path → $afs:namespace/path
|
|
40
|
+
* - $afs/path → $afs/path (passthrough)
|
|
41
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
42
|
+
*
|
|
43
|
+
* @param input - CLI path input
|
|
44
|
+
* @returns Canonical AFS path
|
|
45
|
+
* @throws Error if input format is invalid
|
|
46
|
+
*/
|
|
47
|
+
declare function cliPathToCanonical(input: string): string;
|
|
48
|
+
//#endregion
|
|
49
|
+
export { ParsedCliPath, cliPathToCanonical, parseCliPath };
|
|
50
|
+
//# sourceMappingURL=path-utils.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.d.mts","names":[],"sources":["../src/path-utils.ts"],"mappings":";;AAqDA;;;;;AAoBA;;;;;AAmEA;UAvFiB,aAAA;;EAEf,SAAA;EAqF8C;EAnF9C,IAAA;AAAA;;;;;;;;;;;;;;iBAgBc,YAAA,CAAa,KAAA,WAAgB,aAAA;;;;;;;;;;;;;;iBAmE7B,kBAAA,CAAmB,KAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { isCanonicalPath, parseCanonicalPath, toCanonicalPath } from "@aigne/afs";
|
|
2
|
+
|
|
3
|
+
//#region src/path-utils.ts
|
|
4
|
+
/**
|
|
5
|
+
* CLI Path Utilities
|
|
6
|
+
*
|
|
7
|
+
* Converts CLI UX layer paths to canonical AFS paths:
|
|
8
|
+
* - /path → $afs/path (default namespace)
|
|
9
|
+
* - @namespace/path → $afs:namespace/path (named namespace)
|
|
10
|
+
* - $afs/path → $afs/path (passthrough)
|
|
11
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Characters forbidden in namespace names (security-sensitive)
|
|
15
|
+
*/
|
|
16
|
+
const NAMESPACE_FORBIDDEN_CHARS = [
|
|
17
|
+
"/",
|
|
18
|
+
"\\",
|
|
19
|
+
":",
|
|
20
|
+
";",
|
|
21
|
+
"|",
|
|
22
|
+
"&",
|
|
23
|
+
"`",
|
|
24
|
+
"$",
|
|
25
|
+
"(",
|
|
26
|
+
")",
|
|
27
|
+
">",
|
|
28
|
+
"<",
|
|
29
|
+
"\n",
|
|
30
|
+
"\r",
|
|
31
|
+
" ",
|
|
32
|
+
"\0"
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* Validate a namespace name from CLI input
|
|
36
|
+
* @throws Error if namespace is invalid
|
|
37
|
+
*/
|
|
38
|
+
function validateCliNamespace(namespace) {
|
|
39
|
+
if (!namespace || namespace.trim() === "") throw new Error("Namespace cannot be empty");
|
|
40
|
+
for (const char of NAMESPACE_FORBIDDEN_CHARS) if (namespace.includes(char)) throw new Error(`Namespace contains forbidden character: '${char}'`);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse a CLI path into namespace and path components
|
|
44
|
+
*
|
|
45
|
+
* Supported formats:
|
|
46
|
+
* - /path → { namespace: null, path: "/path" }
|
|
47
|
+
* - @namespace/path → { namespace: "namespace", path: "/path" }
|
|
48
|
+
* - $afs/path → { namespace: null, path: "/path" }
|
|
49
|
+
* - $afs:namespace/path → { namespace: "namespace", path: "/path" }
|
|
50
|
+
*
|
|
51
|
+
* @param input - CLI path input
|
|
52
|
+
* @returns Parsed namespace and path
|
|
53
|
+
* @throws Error if input format is invalid
|
|
54
|
+
*/
|
|
55
|
+
function parseCliPath(input) {
|
|
56
|
+
if (!input || input.trim() === "") throw new Error("Path cannot be empty");
|
|
57
|
+
const trimmed = input.trim();
|
|
58
|
+
if (isCanonicalPath(trimmed)) {
|
|
59
|
+
const parsed = parseCanonicalPath(trimmed);
|
|
60
|
+
return {
|
|
61
|
+
namespace: parsed.namespace,
|
|
62
|
+
path: parsed.path
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (trimmed.startsWith("@")) {
|
|
66
|
+
const rest = trimmed.slice(1);
|
|
67
|
+
const slashIndex = rest.indexOf("/");
|
|
68
|
+
if (slashIndex === -1) throw new Error("Invalid path format: @namespace requires /path (e.g., @staging/api)");
|
|
69
|
+
const namespace = rest.slice(0, slashIndex);
|
|
70
|
+
const path = rest.slice(slashIndex);
|
|
71
|
+
if (!namespace) throw new Error("Namespace cannot be empty after @");
|
|
72
|
+
validateCliNamespace(namespace);
|
|
73
|
+
return {
|
|
74
|
+
namespace,
|
|
75
|
+
path: path || "/"
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (trimmed.startsWith("/")) return {
|
|
79
|
+
namespace: null,
|
|
80
|
+
path: trimmed
|
|
81
|
+
};
|
|
82
|
+
throw new Error(`Invalid path format: '${trimmed}'. Use /path, @namespace/path, or $afs/path`);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Convert a CLI UX path to canonical AFS path
|
|
86
|
+
*
|
|
87
|
+
* Supported conversions:
|
|
88
|
+
* - /path → $afs/path
|
|
89
|
+
* - @namespace/path → $afs:namespace/path
|
|
90
|
+
* - $afs/path → $afs/path (passthrough)
|
|
91
|
+
* - $afs:namespace/path → $afs:namespace/path (passthrough)
|
|
92
|
+
*
|
|
93
|
+
* @param input - CLI path input
|
|
94
|
+
* @returns Canonical AFS path
|
|
95
|
+
* @throws Error if input format is invalid
|
|
96
|
+
*/
|
|
97
|
+
function cliPathToCanonical(input) {
|
|
98
|
+
const { namespace, path } = parseCliPath(input);
|
|
99
|
+
return toCanonicalPath(namespace, path);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
//#endregion
|
|
103
|
+
export { cliPathToCanonical, parseCliPath };
|
|
104
|
+
//# sourceMappingURL=path-utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-utils.mjs","names":[],"sources":["../src/path-utils.ts"],"sourcesContent":["/**\n * CLI Path Utilities\n *\n * Converts CLI UX layer paths to canonical AFS paths:\n * - /path → $afs/path (default namespace)\n * - @namespace/path → $afs:namespace/path (named namespace)\n * - $afs/path → $afs/path (passthrough)\n * - $afs:namespace/path → $afs:namespace/path (passthrough)\n */\n\nimport { isCanonicalPath, parseCanonicalPath, toCanonicalPath } from \"@aigne/afs\";\n\n/**\n * Characters forbidden in namespace names (security-sensitive)\n */\nconst NAMESPACE_FORBIDDEN_CHARS = [\n \"/\", // Path separator (handled specially)\n \"\\\\\", // Windows path separator\n \":\", // Namespace separator\n \";\", // Shell metachar\n \"|\", // Shell pipe\n \"&\", // Shell background\n \"`\", // Shell command substitution\n \"$\", // Shell variable\n \"(\", // Shell subshell\n \")\", // Shell subshell\n \">\", // Shell redirect\n \"<\", // Shell redirect\n \"\\n\", // Newline\n \"\\r\", // Carriage return\n \"\\t\", // Tab\n \"\\x00\", // NUL\n];\n\n/**\n * Validate a namespace name from CLI input\n * @throws Error if namespace is invalid\n */\nfunction validateCliNamespace(namespace: string): void {\n if (!namespace || namespace.trim() === \"\") {\n throw new Error(\"Namespace cannot be empty\");\n }\n\n for (const char of NAMESPACE_FORBIDDEN_CHARS) {\n if (namespace.includes(char)) {\n throw new Error(`Namespace contains forbidden character: '${char}'`);\n }\n }\n}\n\n/**\n * Parsed CLI path result\n */\nexport interface ParsedCliPath {\n /** Namespace (null for default namespace) */\n namespace: string | null;\n /** Path within namespace (always starts with /) */\n path: string;\n}\n\n/**\n * Parse a CLI path into namespace and path components\n *\n * Supported formats:\n * - /path → { namespace: null, path: \"/path\" }\n * - @namespace/path → { namespace: \"namespace\", path: \"/path\" }\n * - $afs/path → { namespace: null, path: \"/path\" }\n * - $afs:namespace/path → { namespace: \"namespace\", path: \"/path\" }\n *\n * @param input - CLI path input\n * @returns Parsed namespace and path\n * @throws Error if input format is invalid\n */\nexport function parseCliPath(input: string): ParsedCliPath {\n if (!input || input.trim() === \"\") {\n throw new Error(\"Path cannot be empty\");\n }\n\n const trimmed = input.trim();\n\n // Check for canonical path passthrough\n if (isCanonicalPath(trimmed)) {\n const parsed = parseCanonicalPath(trimmed);\n return {\n namespace: parsed.namespace,\n path: parsed.path,\n };\n }\n\n // Check for @ namespace syntax\n if (trimmed.startsWith(\"@\")) {\n const rest = trimmed.slice(1); // Remove @\n\n // Find the / that separates namespace from path\n const slashIndex = rest.indexOf(\"/\");\n if (slashIndex === -1) {\n throw new Error(\"Invalid path format: @namespace requires /path (e.g., @staging/api)\");\n }\n\n const namespace = rest.slice(0, slashIndex);\n const path = rest.slice(slashIndex); // Includes leading /\n\n if (!namespace) {\n throw new Error(\"Namespace cannot be empty after @\");\n }\n\n // Validate namespace\n validateCliNamespace(namespace);\n\n return {\n namespace,\n path: path || \"/\",\n };\n }\n\n // Check for / prefix (default namespace)\n if (trimmed.startsWith(\"/\")) {\n return {\n namespace: null,\n path: trimmed,\n };\n }\n\n // Invalid format - not a recognized CLI path\n throw new Error(`Invalid path format: '${trimmed}'. Use /path, @namespace/path, or $afs/path`);\n}\n\n/**\n * Convert a CLI UX path to canonical AFS path\n *\n * Supported conversions:\n * - /path → $afs/path\n * - @namespace/path → $afs:namespace/path\n * - $afs/path → $afs/path (passthrough)\n * - $afs:namespace/path → $afs:namespace/path (passthrough)\n *\n * @param input - CLI path input\n * @returns Canonical AFS path\n * @throws Error if input format is invalid\n */\nexport function cliPathToCanonical(input: string): string {\n const { namespace, path } = parseCliPath(input);\n\n // Use toCanonicalPath to build the canonical form\n return toCanonicalPath(namespace, path);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,4BAA4B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;AAMD,SAAS,qBAAqB,WAAyB;AACrD,KAAI,CAAC,aAAa,UAAU,MAAM,KAAK,GACrC,OAAM,IAAI,MAAM,4BAA4B;AAG9C,MAAK,MAAM,QAAQ,0BACjB,KAAI,UAAU,SAAS,KAAK,CAC1B,OAAM,IAAI,MAAM,4CAA4C,KAAK,GAAG;;;;;;;;;;;;;;;AA4B1E,SAAgB,aAAa,OAA8B;AACzD,KAAI,CAAC,SAAS,MAAM,MAAM,KAAK,GAC7B,OAAM,IAAI,MAAM,uBAAuB;CAGzC,MAAM,UAAU,MAAM,MAAM;AAG5B,KAAI,gBAAgB,QAAQ,EAAE;EAC5B,MAAM,SAAS,mBAAmB,QAAQ;AAC1C,SAAO;GACL,WAAW,OAAO;GAClB,MAAM,OAAO;GACd;;AAIH,KAAI,QAAQ,WAAW,IAAI,EAAE;EAC3B,MAAM,OAAO,QAAQ,MAAM,EAAE;EAG7B,MAAM,aAAa,KAAK,QAAQ,IAAI;AACpC,MAAI,eAAe,GACjB,OAAM,IAAI,MAAM,sEAAsE;EAGxF,MAAM,YAAY,KAAK,MAAM,GAAG,WAAW;EAC3C,MAAM,OAAO,KAAK,MAAM,WAAW;AAEnC,MAAI,CAAC,UACH,OAAM,IAAI,MAAM,oCAAoC;AAItD,uBAAqB,UAAU;AAE/B,SAAO;GACL;GACA,MAAM,QAAQ;GACf;;AAIH,KAAI,QAAQ,WAAW,IAAI,CACzB,QAAO;EACL,WAAW;EACX,MAAM;EACP;AAIH,OAAM,IAAI,MAAM,yBAAyB,QAAQ,6CAA6C;;;;;;;;;;;;;;;AAgBhG,SAAgB,mBAAmB,OAAuB;CACxD,MAAM,EAAE,WAAW,SAAS,aAAa,MAAM;AAG/C,QAAO,gBAAgB,WAAW,KAAK"}
|