void 0.10.12 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS_TEMPLATE.md +6 -0
- package/{skills/void/docs/node_modules/void/node_modules/pglite-server/LICENSE.md → LICENSE} +1 -1
- package/README.md +34 -8
- package/dist/{auth-qgMlYp7Z.d.mts → auth-DkcFflXV.d.mts} +10 -11
- package/dist/auth-W9WII-mN.mjs +630 -0
- package/dist/{auth-cmd-BqsdZJp5.mjs → auth-cmd-CYVhSNFy.mjs} +4 -3
- package/dist/{auth-migrations-BTZ-ATvQ.mjs → auth-migrations-9vif1uj8.mjs} +53 -12
- package/dist/{better-auth-shared-BQooDxbw.mjs → better-auth-shared-CYw1T3k4.mjs} +7 -10
- package/dist/{better-auth-shared-DealXecJ.d.mts → better-auth-shared-DSCeohOK.d.mts} +10 -5
- package/dist/{build-cmd-Bujrv5q-.mjs → build-cmd-CkVD1uOh.mjs} +6 -4
- package/dist/{cache-C11V8Fxq.mjs → cache-QcUfR-ff.mjs} +9 -5
- package/dist/{cancel-deploy-fwFYF04b.mjs → cancel-deploy-DsvWKFTe.mjs} +3 -2
- package/dist/cf-access-AJ1ehiFR.mjs +42 -0
- package/dist/cf-access-DsSsZUPr.mjs +67 -0
- package/dist/cli/cli.d.mts +1 -1
- package/dist/cli/cli.mjs +1592 -153
- package/dist/cli/env-schema-probe.d.mts +48 -61
- package/dist/cli/env-schema-probe.mjs +10 -58
- package/dist/{client-Gb71-XkG.mjs → client-CyCHWSO_.mjs} +61 -463
- package/dist/cloudflare-auth-DRkGe7-s.mjs +170 -0
- package/dist/cloudflare-cmd-D3ME2GAe.mjs +62 -0
- package/dist/cloudflare-connect-BivMefMA.mjs +56 -0
- package/dist/cloudflare-operations-CPTpRW6d.mjs +566 -0
- package/dist/{config-BkTvs43g.mjs → config-BQFq7QvD.mjs} +85 -41
- package/dist/{config-CutEMNGJ.mjs → config-NOG_U1aK.mjs} +10 -15
- package/dist/connect-D9Yr-T5f.mjs +79 -0
- package/dist/{create-project-DsYvl3TB.mjs → create-project-DMV-csEm.mjs} +26 -16
- package/dist/database-provider.d.mts +21 -0
- package/dist/database-provider.mjs +6 -0
- package/dist/{db-DOiJMRt2.mjs → db-BxoUWL0F.mjs} +600 -115
- package/dist/{delete-mh6p-zkQ.mjs → delete-iJOqxBz1.mjs} +9 -6
- package/dist/{deploy-u7Rv9q_q.mjs → deploy-CcDoeBIf.mjs} +3451 -1986
- package/dist/dev-inbox-DkgRWLkW.mjs +307 -0
- package/dist/{discover-CJHyvYfR.mjs → discover-xvfrgJeo.mjs} +3 -3
- package/dist/{magic-string.es-ZQjdJFFn.mjs → dist-BR1quN_w.mjs} +570 -216
- package/dist/{dist-DaKKDf8D.mjs → dist-BrsS7cai.mjs} +17 -2
- package/dist/{dist-BuiRJkTd.mjs → dist-m40_XgNh.mjs} +48 -33
- package/dist/{domain-DiaNQbrl.mjs → domain-gu_iaHmn.mjs} +41 -4
- package/dist/dotenv-VQxupEUv.mjs +181 -0
- package/dist/edge.d.mts +2 -0
- package/dist/edge.mjs +2 -0
- package/dist/email-Ce6SQq-i.mjs +182 -0
- package/dist/email-r6DHJyAB.mjs +262 -0
- package/dist/{entry-D7yy4xVH.mjs → entry-DU3oDoQ3.mjs} +2 -2
- package/dist/env-D4Emu-M_.mjs +95 -0
- package/dist/env-DmU2To0C.mjs +73 -0
- package/dist/env-helpers-CyKtOBpj.d.mts +22 -0
- package/dist/env-public-D_6u46fX.d.mts +135 -0
- package/dist/{env-types-QBj-ndax.mjs → env-types-BNPhro-M.mjs} +2 -2
- package/dist/{env-validation-Dea3v3ej.mjs → env-validation-ENpMy6Ez.mjs} +68 -122
- package/dist/{gen-o_w-8yI8.mjs → gen-BKw6qHIg.mjs} +70 -15
- package/dist/{github-cmd-DKcGUNsj.mjs → github-cmd-DJS5Ab-H.mjs} +39 -31
- package/dist/{handler-Cjh8uM3Y.d.mts → handler-D1hLsObx.d.mts} +124 -122
- package/dist/{head-nmvOgFjd.d.mts → head-Do8P4puT.d.mts} +9 -8
- package/dist/{headers-nsHIFixA.mjs → headers-D8QfRX9Y.mjs} +12 -10
- package/dist/inbound-BJ70in1n.d.mts +354 -0
- package/dist/inbound-CNKxb3FY.mjs +694 -0
- package/dist/index.d.mts +61 -34
- package/dist/index.mjs +1048 -321
- package/dist/{init-3rgHKBVi.mjs → init-Dx5cgKqK.mjs} +329 -271
- package/dist/link-D_rm5sRH.mjs +52 -0
- package/dist/{list-CPwFDZ_c.mjs → list-M8XShti7.mjs} +37 -5
- package/dist/{runner-kapo9aPs.mjs → local-d1-BE8KBbMy.mjs} +116 -6
- package/dist/{login-BT3H8PN3.mjs → login-C8-UuLnp.mjs} +17 -15
- package/dist/{logs-Bt313ax7.mjs → logs-DwFU7dMW.mjs} +16 -2
- package/dist/mime-BJD7d_qL.mjs +1216 -0
- package/dist/neon-DHwd2zvC.mjs +54 -0
- package/dist/{node-Da0UcsGA.mjs → node-BkaXcpAc.mjs} +29 -8
- package/dist/operator-cmd-DYWRbWUA.mjs +348 -0
- package/dist/{agents-CtgBYqld.mjs → output-tFQLLj26.mjs} +676 -211
- package/dist/{package-json-Cx1osYo6.mjs → package-json-CPoWX79C.mjs} +1 -1
- package/dist/pages/client.d.mts +43 -41
- package/dist/pages/client.mjs +40 -33
- package/dist/pages/head-client.d.mts +10 -12
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/index.d.mts +37 -14
- package/dist/pages/index.mjs +5 -5
- package/dist/pages/islands-plugin.d.mts +25 -27
- package/dist/pages/islands-plugin.mjs +6 -4
- package/dist/pages/prefetch.d.mts +6 -7
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +2 -1
- package/dist/pages/serialize.d.mts +7 -8
- package/dist/platform-cmd-BEOVv1PN.mjs +123 -0
- package/dist/platform-domain-BszUfiS8.mjs +228 -0
- package/dist/platform-lifecycle-CjSr6xf0.mjs +4450 -0
- package/dist/platform-management-W30iCaTL.mjs +698 -0
- package/dist/platform-recovery-pHHv4ZSg.mjs +99 -0
- package/dist/{plugin-inference-DMeavIJ6.mjs → plugin-inference-BDRfZngg.mjs} +35 -19
- package/dist/prepare-BfJvFUtJ.mjs +14 -0
- package/dist/{prepare-BoKHgMNx.mjs → prepare-CBetXvsN.mjs} +15 -24
- package/dist/{preset-BjyR3lzz.mjs → preset-lAy0B0BQ.mjs} +25 -212
- package/dist/{project-cmd-D_w-4w5B.mjs → project-cmd-DCpk1cDt.mjs} +25 -12
- package/dist/{project-paths-BQd7OmIo.mjs → project-paths-SK8nMHPp.mjs} +3 -1
- package/dist/{project-tsconfig-B-QtXjLQ.mjs → project-tsconfig-Ql2XsSQp.mjs} +2 -2
- package/dist/{protocol-Bnb0LFp3.d.mts → protocol-C-pqYJjE.d.mts} +3 -4
- package/dist/{provision-rShh6MKY.mjs → provision-Blnstcm2.mjs} +78 -45
- package/dist/r2-conditions-D1Wk8i7b.mjs +30 -0
- package/dist/{requests-B8sZxaFM.mjs → requests-Dn8Vheh1.mjs} +5 -3
- package/dist/{resolve-project-BBMtLLV9.mjs → resolve-project--Vxawf7z.mjs} +2 -2
- package/dist/rollback-CtlPXEBi.mjs +166 -0
- package/dist/{rolldown-runtime-DJK8HYOj.mjs → rolldown-runtime-rQ84J-ij.mjs} +1 -1
- package/dist/{route-types-COI2DsZv.mjs → route-types-Da-DpyUp.mjs} +85 -26
- package/dist/routes-stub.d.mts +22 -23
- package/dist/runner-mysql-CgRFl3s6.mjs +61 -0
- package/dist/{runner-pg-CHM76xuC.mjs → runner-pg-DCkWPsWS.mjs} +18 -6
- package/dist/runtime/ai.d.mts +21 -14
- package/dist/runtime/ai.mjs +5 -4
- package/dist/runtime/auth-client-react.d.mts +3 -5
- package/dist/runtime/auth-client-solid.d.mts +3 -5
- package/dist/runtime/auth-client-svelte.d.mts +3 -5
- package/dist/runtime/auth-client-vue.d.mts +3 -5
- package/dist/runtime/auth-client.d.mts +3 -5
- package/dist/runtime/auth.d.mts +1 -1
- package/dist/runtime/better-auth-mysql.d.mts +10 -0
- package/dist/runtime/better-auth-mysql.mjs +49 -0
- package/dist/runtime/better-auth-pg.d.mts +8 -9
- package/dist/runtime/better-auth-pg.mjs +2 -2
- package/dist/runtime/better-auth.d.mts +8 -9
- package/dist/runtime/better-auth.mjs +2 -2
- package/dist/runtime/client-react.d.mts +1 -1
- package/dist/runtime/client-solid.d.mts +1 -1
- package/dist/runtime/client-svelte.d.mts +1 -1
- package/dist/runtime/client-vue.d.mts +1 -1
- package/dist/runtime/client.d.mts +1 -1
- package/dist/runtime/db-mysql.d.mts +2 -0
- package/dist/runtime/db-mysql.mjs +1 -0
- package/dist/runtime/db.d.mts +10 -11
- package/dist/runtime/durable.d.mts +47 -0
- package/dist/runtime/durable.mjs +146 -0
- package/dist/runtime/email/testing.d.mts +112 -0
- package/dist/runtime/email/testing.mjs +283 -0
- package/dist/runtime/email.d.mts +30 -0
- package/dist/runtime/email.mjs +573 -0
- package/dist/runtime/env-helpers.d.mts +2 -2
- package/dist/runtime/env-helpers.mjs +5 -42
- package/dist/runtime/env-public-client.d.mts +10 -11
- package/dist/runtime/env-public-client.mjs +1 -1
- package/dist/runtime/env-public.d.mts +2 -2
- package/dist/runtime/env-public.mjs +104 -49
- package/dist/runtime/env.d.mts +19 -18
- package/dist/runtime/env.mjs +15 -2
- package/dist/runtime/fetch-stream.d.mts +20 -21
- package/dist/runtime/fetch.d.mts +15 -16
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/isr.d.mts +21 -22
- package/dist/runtime/isr.mjs +26 -8
- package/dist/runtime/kv.d.mts +9 -10
- package/dist/runtime/live-client.d.mts +5 -7
- package/dist/runtime/live-client.mjs +9 -7
- package/dist/runtime/live-server.d.mts +4 -5
- package/dist/runtime/live.d.mts +22 -24
- package/dist/runtime/live.mjs +1 -1
- package/dist/runtime/log.d.mts +16 -17
- package/dist/runtime/migration-handler-mysql.d.mts +4 -0
- package/dist/runtime/migration-handler-mysql.mjs +81 -0
- package/dist/runtime/migration-handler-pg.d.mts +2 -4
- package/dist/runtime/migration-handler.d.mts +5 -6
- package/dist/runtime/migration-handler.mjs +4 -3
- package/dist/runtime/queues.d.mts +3 -4
- package/dist/runtime/queues.mjs +2 -1
- package/dist/runtime/remote/binding-handler.d.mts +10 -12
- package/dist/runtime/remote/binding-handler.mjs +24 -3
- package/dist/runtime/remote/index.d.mts +5 -6
- package/dist/runtime/remote/index.mjs +21 -18
- package/dist/runtime/response.d.mts +10 -11
- package/dist/runtime/sandbox.d.mts +56 -55
- package/dist/runtime/sandbox.mjs +57 -49
- package/dist/runtime/schema-mysql.d.mts +1 -0
- package/dist/runtime/schema-mysql.mjs +2 -0
- package/dist/runtime/seed.d.mts +14 -9
- package/dist/runtime/sse-client.d.mts +6 -7
- package/dist/runtime/sse.d.mts +11 -12
- package/dist/runtime/storage.d.mts +3 -4
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +12 -12
- package/dist/runtime/ws-server.mjs +32 -4
- package/dist/runtime/ws.d.mts +19 -21
- package/dist/{scan-DYXkrasO.mjs → scan-BMH4rzlv.mjs} +53 -31
- package/dist/{scan-DEwlM_Xy.mjs → scan-CpK-57ug.mjs} +9 -5
- package/dist/{secret-Dt32J6RI.mjs → secret-BqTxGqki.mjs} +62 -5
- package/dist/{skills-CLjN0uUO.mjs → skills-Q46GZMO-.mjs} +6 -4
- package/dist/{standard-schema-DJ0HW7QP.d.mts → standard-schema-Fo_vCAZh.d.mts} +6 -6
- package/dist/{subcommand-prompt-BzV8iQZo.mjs → subcommand-prompt-WfySCQ7S.mjs} +67 -48
- package/dist/sveltekit.d.mts +12 -11
- package/dist/sveltekit.mjs +1 -1
- package/dist/types-BAp5AEBU.d.mts +79 -0
- package/dist/types-CKWnYgfy.d.mts +1 -0
- package/dist/{validate-Cw_RLeTj.mjs → validate-Bihr8WBi.mjs} +3 -3
- package/dist/wrangler--imS8n0d.mjs +1796 -0
- package/dist/{yarn-pnp-DJn3SAHF.mjs → yarn-pnp-DxSInkzL.mjs} +1 -1
- package/package.json +79 -65
- package/schema.json +35 -3
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +1 -1
- package/skills/void/SKILL.md +59 -2
- package/skills/void/docs/guide/ai.md +32 -14
- package/skills/void/docs/guide/app-types.md +6 -6
- package/skills/void/docs/guide/auth.md +14 -16
- package/skills/void/docs/guide/database/d1.md +6 -0
- package/skills/void/docs/guide/database/mysql.md +60 -0
- package/skills/void/docs/guide/database/postgresql.md +14 -9
- package/skills/void/docs/guide/database.md +39 -26
- package/skills/void/docs/guide/deployment.md +163 -22
- package/skills/void/docs/guide/durable-state.md +140 -0
- package/skills/void/docs/guide/edge/headers.md +5 -5
- package/skills/void/docs/guide/edge/prerendering.md +2 -0
- package/skills/void/docs/guide/edge/revalidation.md +21 -6
- package/skills/void/docs/guide/edge/rewrites.md +18 -14
- package/skills/void/docs/guide/edge/static-assets.md +23 -8
- package/skills/void/docs/guide/email.md +609 -0
- package/skills/void/docs/guide/env-migration.md +109 -0
- package/skills/void/docs/guide/env-vars.md +70 -248
- package/skills/void/docs/guide/index.md +15 -17
- package/skills/void/docs/guide/jobs.md +8 -5
- package/skills/void/docs/guide/live.md +7 -15
- package/skills/void/docs/guide/pages-routing/actions-and-forms.md +8 -4
- package/skills/void/docs/guide/pages-routing/islands.md +3 -3
- package/skills/void/docs/guide/pages-routing/loaders.md +6 -4
- package/skills/void/docs/guide/pages-routing/overview.md +7 -7
- package/skills/void/docs/guide/platform-administration.md +212 -0
- package/skills/void/docs/guide/platform-development.md +235 -0
- package/skills/void/docs/guide/queues.md +10 -10
- package/skills/void/docs/guide/quickstart.md +46 -67
- package/skills/void/docs/guide/remote-dev.md +8 -6
- package/skills/void/docs/guide/sandboxes.md +33 -16
- package/skills/void/docs/guide/self-hosted-platform.md +553 -0
- package/skills/void/docs/guide/server-routing.md +25 -5
- package/skills/void/docs/guide/sse.md +4 -4
- package/skills/void/docs/guide/ssg.md +5 -3
- package/skills/void/docs/guide/storage.md +2 -2
- package/skills/void/docs/guide/websockets.md +18 -7
- package/skills/void/docs/index.md +3 -3
- package/skills/void/docs/integrations/agents.md +6 -64
- package/skills/void/docs/integrations/cloudflare.md +165 -146
- package/skills/void/docs/integrations/frameworks/analog.md +4 -4
- package/skills/void/docs/integrations/frameworks/astro.md +5 -5
- package/skills/void/docs/integrations/frameworks/nuxt.md +5 -5
- package/skills/void/docs/integrations/frameworks/overview.md +3 -3
- package/skills/void/docs/integrations/frameworks/react-router.md +3 -3
- package/skills/void/docs/integrations/frameworks/sveltekit.md +3 -3
- package/skills/void/docs/integrations/frameworks/tanstack-start.md +2 -2
- package/skills/void/docs/integrations/nodejs-bun-deno.md +11 -4
- package/skills/void/docs/reference/api.md +42 -6
- package/skills/void/docs/reference/cli.md +637 -159
- package/skills/void/docs/reference/config.md +80 -25
- package/skills/void/docs/reference/resource-inference.md +13 -9
- package/skills/void/docs/reference/structure.md +10 -11
- package/AGENT_PROMPT.md +0 -19
- package/dist/cf-access-Bqw81xAf.mjs +0 -22
- package/dist/env-CZy5MorI.mjs +0 -299
- package/dist/env-helpers-z4stu8uc.d.mts +0 -52
- package/dist/env-mask-Dd47NbR6.mjs +0 -90
- package/dist/env-public-BfiLcMBk.d.mts +0 -140
- package/dist/link-CdGHSIy-.mjs +0 -45
- package/dist/mcp-DoM3_nhd.mjs +0 -377
- package/dist/project-paths-GpziKeQQ.d.mts +0 -25
- package/dist/providers-BNKRacMr.d.mts +0 -7
- package/dist/proxy-D-3_D-Gl.mjs +0 -5
- package/dist/rollback-CkvTFXx5.mjs +0 -90
- package/dist/runtime/isr-cache.d.mts +0 -207
- package/dist/runtime/isr-cache.mjs +0 -523
- package/dist/types-lLjNE9Qp.d.mts +0 -51
- package/getting-started-prompt.txt +0 -28
- package/skills/void/command/void.md +0 -7
- package/skills/void/docs/integrations/auth-providers.md +0 -0
- package/skills/void/docs/integrations/payment-processors.md +0 -0
- package/skills/void/docs/node_modules/@iconify/vue/README.md +0 -408
- package/skills/void/docs/node_modules/@iconify/vue/offline/readme.md +0 -5
- package/skills/void/docs/node_modules/@voidzero-dev/vitepress-theme/README.md +0 -103
- package/skills/void/docs/node_modules/oxc-minify/README.md +0 -78
- package/skills/void/docs/node_modules/reka-ui/README.md +0 -80
- package/skills/void/docs/node_modules/vitepress/README.md +0 -28
- package/skills/void/docs/node_modules/vitepress/template/api-examples.md +0 -49
- package/skills/void/docs/node_modules/vitepress/template/index.md +0 -28
- package/skills/void/docs/node_modules/vitepress/template/markdown-examples.md +0 -85
- package/skills/void/docs/node_modules/vitepress-plugin-group-icons/README.md +0 -101
- package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +0 -19
- package/skills/void/docs/node_modules/void/CLAUDE.md +0 -219
- package/skills/void/docs/node_modules/void/README.md +0 -90
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +0 -685
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +0 -396
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +0 -219
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/vite-plugin/README.md +0 -37
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/workers-types/README.md +0 -135
- package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +0 -189
- package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/CHANGELOG.md +0 -143
- package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/README.md +0 -1272
- package/skills/void/docs/node_modules/void/node_modules/@napi-rs/keyring/README.md +0 -19
- package/skills/void/docs/node_modules/void/node_modules/@types/better-sqlite3/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@types/pg/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@types/proper-lockfile/README.md +0 -51
- package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/README.md +0 -22
- package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/vendor/vscode-jsonrpc/README.md +0 -69
- package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +0 -153
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/engine-javascript/README.md +0 -9
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/transformers/README.md +0 -9
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/CHANGELOG.md +0 -24
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/README.md +0 -565
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +0 -127
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-anchor/README.md +0 -600
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +0 -386
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-container/README.md +0 -95
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-emoji/README.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-footnote/README.md +0 -135
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathslash/README.md +0 -64
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/shiki/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +0 -25
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +0 -16
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +0 -220
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/check.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/create.md +0 -70
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +0 -20
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +0 -26
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +0 -17
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +0 -364
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +0 -18
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/build.md +0 -40
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +0 -107
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +0 -62
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +0 -341
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/dev.md +0 -24
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/docker.md +0 -175
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +0 -167
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/fmt.md +0 -41
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/implode.md +0 -23
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +0 -134
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +0 -199
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/lint.md +0 -50
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +0 -197
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +0 -69
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +0 -356
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/test.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/vpx.md +0 -66
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/why.md +0 -39
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/index.md +0 -12
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/team.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/generator/README.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/monorepo/README.md +0 -29
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vue/README.md +0 -58
- package/skills/void/docs/node_modules/void/node_modules/arktype/README.md +0 -165
- package/skills/void/docs/node_modules/void/node_modules/better-auth/LICENSE.md +0 -20
- package/skills/void/docs/node_modules/void/node_modules/better-auth/README.md +0 -32
- package/skills/void/docs/node_modules/void/node_modules/better-sqlite3/README.md +0 -99
- package/skills/void/docs/node_modules/void/node_modules/blake3-jit/README.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/drizzle-arktype/README.md +0 -51
- package/skills/void/docs/node_modules/void/node_modules/drizzle-kit/README.md +0 -79
- package/skills/void/docs/node_modules/void/node_modules/drizzle-orm/README.md +0 -44
- package/skills/void/docs/node_modules/void/node_modules/drizzle-valibot/README.md +0 -51
- package/skills/void/docs/node_modules/void/node_modules/drizzle-zod/README.md +0 -65
- package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +0 -403
- package/skills/void/docs/node_modules/void/node_modules/estree-walker/README.md +0 -48
- package/skills/void/docs/node_modules/void/node_modules/hono/README.md +0 -85
- package/skills/void/docs/node_modules/void/node_modules/ignore/README.md +0 -452
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/CHANGELOG.md +0 -76
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/LICENSE.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/README.md +0 -364
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/SECURITY.md +0 -41
- package/skills/void/docs/node_modules/void/node_modules/magic-string/README.md +0 -325
- package/skills/void/docs/node_modules/void/node_modules/ofetch/README.md +0 -398
- package/skills/void/docs/node_modules/void/node_modules/pathslash/README.md +0 -64
- package/skills/void/docs/node_modules/void/node_modules/pg/README.md +0 -96
- package/skills/void/docs/node_modules/void/node_modules/pglite-server/README.md +0 -135
- package/skills/void/docs/node_modules/void/node_modules/picocolors/README.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/CHANGELOG.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/README.md +0 -183
- package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +0 -25
- package/skills/void/docs/node_modules/void/node_modules/valibot/LICENSE.md +0 -9
- package/skills/void/docs/node_modules/void/node_modules/valibot/README.md +0 -94
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +0 -16
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +0 -220
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/check.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/create.md +0 -70
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +0 -20
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +0 -26
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +0 -17
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +0 -364
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +0 -18
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/build.md +0 -40
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +0 -107
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +0 -62
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +0 -341
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/dev.md +0 -24
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/docker.md +0 -175
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +0 -167
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/fmt.md +0 -41
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/implode.md +0 -23
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +0 -134
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +0 -199
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/lint.md +0 -50
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +0 -197
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +0 -69
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +0 -356
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/test.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/vpx.md +0 -66
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/why.md +0 -39
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/index.md +0 -12
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/team.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/generator/README.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/monorepo/README.md +0 -29
- package/skills/void/docs/node_modules/void/node_modules/wrangler/README.md +0 -63
- package/skills/void/docs/node_modules/void/node_modules/zod/README.md +0 -191
- package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +0 -175
- package/skills/void/docs/node_modules/void/skills/void/SKILL.md +0 -76
- package/skills/void/docs/node_modules/void/skills/void/command/void.md +0 -7
- package/skills/void/docs/node_modules/void/test/e2e/README.md +0 -85
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
# ES Module Lexer
|
|
2
|
-
|
|
3
|
-
[![Build Status][actions-image]][actions-url]
|
|
4
|
-
|
|
5
|
-
A JS module syntax lexer used in [es-module-shims](https://github.com/guybedford/es-module-shims).
|
|
6
|
-
|
|
7
|
-
Outputs the list of exports and locations of import specifiers, including dynamic import and import meta handling.
|
|
8
|
-
|
|
9
|
-
Supports new syntax features including import attributes and source phase imports.
|
|
10
|
-
|
|
11
|
-
A very small single JS file (~7KiB gzipped) that includes inlined Web Assembly for very fast source analysis of ECMAScript module syntax only.
|
|
12
|
-
|
|
13
|
-
For an example of the performance, Angular 1 (720KiB) is fully parsed in 5ms, in comparison to the fastest JS parser, Acorn which takes over 100ms.
|
|
14
|
-
|
|
15
|
-
_Comprehensively handles the JS language grammar while remaining small and fast. - ~10ms per MB of JS cold and ~5ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._
|
|
16
|
-
|
|
17
|
-
> [Built with](https://github.com/guybedford/es-module-lexer/blob/main/chompfile.toml) [Chomp](https://chompbuild.com/)
|
|
18
|
-
|
|
19
|
-
### Usage
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
npm install es-module-lexer
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
See [src/lexer.ts](src/lexer.ts) for the type definitions.
|
|
26
|
-
|
|
27
|
-
For use in CommonJS:
|
|
28
|
-
|
|
29
|
-
```js
|
|
30
|
-
const { init, parse } = require('es-module-lexer');
|
|
31
|
-
|
|
32
|
-
(async () => {
|
|
33
|
-
// either await init, or call parse asynchronously
|
|
34
|
-
// this is necessary for the Web Assembly boot
|
|
35
|
-
await init;
|
|
36
|
-
|
|
37
|
-
const source = 'export var p = 5';
|
|
38
|
-
const [imports, exports] = parse(source);
|
|
39
|
-
|
|
40
|
-
// Returns "p"
|
|
41
|
-
source.slice(exports[0].s, exports[0].e);
|
|
42
|
-
// Returns "p"
|
|
43
|
-
source.slice(exports[0].ls, exports[0].le);
|
|
44
|
-
})();
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
An ES module version is also available:
|
|
48
|
-
|
|
49
|
-
```js
|
|
50
|
-
import { init, parse } from 'es-module-lexer';
|
|
51
|
-
|
|
52
|
-
(async () => {
|
|
53
|
-
await init;
|
|
54
|
-
|
|
55
|
-
const source = `
|
|
56
|
-
import { name } from 'mod\\u1011';
|
|
57
|
-
import json from './json.json' with { type: 'json' }
|
|
58
|
-
export var p = 5;
|
|
59
|
-
export function q () {
|
|
60
|
-
|
|
61
|
-
};
|
|
62
|
-
export { x as 'external name' } from 'external';
|
|
63
|
-
|
|
64
|
-
// Comments provided to demonstrate edge cases
|
|
65
|
-
import /*comment!*/ ( 'asdf', { with: { type: 'json' }});
|
|
66
|
-
import /*comment!*/.meta.asdf;
|
|
67
|
-
|
|
68
|
-
// Source phase imports:
|
|
69
|
-
import source mod from './mod.wasm';
|
|
70
|
-
import.source('./mod.wasm');
|
|
71
|
-
`;
|
|
72
|
-
|
|
73
|
-
const [imports, exports] = parse(source, 'optional-sourcename');
|
|
74
|
-
|
|
75
|
-
// Returns "modထ"
|
|
76
|
-
imports[0].n
|
|
77
|
-
// Returns "mod\u1011"
|
|
78
|
-
source.slice(imports[0].s, imports[0].e);
|
|
79
|
-
// "s" = start
|
|
80
|
-
// "e" = end
|
|
81
|
-
|
|
82
|
-
// Returns "import { name } from 'mod'"
|
|
83
|
-
source.slice(imports[0].ss, imports[0].se);
|
|
84
|
-
// "ss" = statement start
|
|
85
|
-
// "se" = statement end
|
|
86
|
-
|
|
87
|
-
// Returns "{ type: 'json' }"
|
|
88
|
-
source.slice(imports[1].a, imports[1].se);
|
|
89
|
-
// "a" = attribute start, -1 for no import attributes
|
|
90
|
-
|
|
91
|
-
// Parsed import attributes are available in `at`
|
|
92
|
-
// Returns [['type', 'json']]
|
|
93
|
-
imports[1].at;
|
|
94
|
-
// Returns 'json'
|
|
95
|
-
imports[1].at[0][1];
|
|
96
|
-
|
|
97
|
-
// Returns null (no attributes)
|
|
98
|
-
imports[0].at;
|
|
99
|
-
|
|
100
|
-
// Returns "external"
|
|
101
|
-
source.slice(imports[2].s, imports[2].e);
|
|
102
|
-
|
|
103
|
-
// Returns "p"
|
|
104
|
-
source.slice(exports[0].s, exports[0].e);
|
|
105
|
-
// Returns "p"
|
|
106
|
-
source.slice(exports[0].ls, exports[0].le);
|
|
107
|
-
// Returns "q"
|
|
108
|
-
source.slice(exports[1].s, exports[1].e);
|
|
109
|
-
// Returns "q"
|
|
110
|
-
source.slice(exports[1].ls, exports[1].le);
|
|
111
|
-
|
|
112
|
-
// "ss" = export statement start (only the start is tracked, not the end)
|
|
113
|
-
// Returns "export"
|
|
114
|
-
source.slice(exports[0].ss, exports[0].ss + 6);
|
|
115
|
-
|
|
116
|
-
// Returns "'external name'"
|
|
117
|
-
source.slice(exports[2].s, exports[2].e);
|
|
118
|
-
// Returns -1
|
|
119
|
-
exports[2].ls;
|
|
120
|
-
// Returns -1
|
|
121
|
-
exports[2].le;
|
|
122
|
-
|
|
123
|
-
// Import type is provided by `t` value
|
|
124
|
-
// (1 for static, 2, for dynamic)
|
|
125
|
-
// Returns true
|
|
126
|
-
imports[2].t == 2;
|
|
127
|
-
|
|
128
|
-
// Returns "asdf" (only for string literal dynamic imports)
|
|
129
|
-
imports[2].n
|
|
130
|
-
// Returns "import /*comment!*/ ( 'asdf', { with: { type: 'json' } })"
|
|
131
|
-
source.slice(imports[3].ss, imports[3].se);
|
|
132
|
-
// Returns "'asdf'"
|
|
133
|
-
source.slice(imports[3].s, imports[3].e);
|
|
134
|
-
// Returns "( 'asdf', { with: { type: 'json' } })"
|
|
135
|
-
source.slice(imports[3].d, imports[3].se);
|
|
136
|
-
// Returns "{ with: { type: 'json' } }"
|
|
137
|
-
source.slice(imports[3].a, imports[3].se - 1);
|
|
138
|
-
|
|
139
|
-
// For non-string dynamic import expressions:
|
|
140
|
-
// - n will be undefined
|
|
141
|
-
// - a is currently -1 even if there is an import attribute
|
|
142
|
-
// - e is currently the character before the closing )
|
|
143
|
-
|
|
144
|
-
// For nested dynamic imports, the se value of the outer import is -1 as end tracking does not
|
|
145
|
-
// currently support nested dynamic immports
|
|
146
|
-
|
|
147
|
-
// import.meta is indicated by imports[3].d === -2
|
|
148
|
-
// Returns true
|
|
149
|
-
imports[4].d === -2;
|
|
150
|
-
// Returns "import /*comment!*/.meta"
|
|
151
|
-
source.slice(imports[4].s, imports[4].e);
|
|
152
|
-
// ss and se are the same for import meta
|
|
153
|
-
|
|
154
|
-
// Returns "'./mod.wasm'"
|
|
155
|
-
source.slice(imports[5].s, imports[5].e);
|
|
156
|
-
|
|
157
|
-
// Import type 4 and 5 for static and dynamic source phase
|
|
158
|
-
imports[5].t === 4;
|
|
159
|
-
imports[6].t === 5;
|
|
160
|
-
})();
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### CSP asm.js Build
|
|
164
|
-
|
|
165
|
-
The default version of the library uses Wasm and (safe) eval usage for performance and a minimal footprint.
|
|
166
|
-
|
|
167
|
-
Neither of these represent security escalation possibilities since there are no execution string injection vectors, but that can still violate existing CSP policies for applications.
|
|
168
|
-
|
|
169
|
-
For a version that works with CSP eval disabled, use the `es-module-lexer/js` build:
|
|
170
|
-
|
|
171
|
-
```js
|
|
172
|
-
import { parse } from 'es-module-lexer/js';
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
Instead of Web Assembly, this uses an asm.js build which is almost as fast as the Wasm version ([see benchmarks below](#benchmarks)).
|
|
176
|
-
|
|
177
|
-
### Minimal Build
|
|
178
|
-
|
|
179
|
-
For size-sensitive embedders, the `es-module-lexer/minimal` build drops certain features to reduce the binary size. This is used for example by [es-module-shims](https://github.com/guybedford/es-module-shims):
|
|
180
|
-
|
|
181
|
-
```js
|
|
182
|
-
import { parse } from 'es-module-lexer/minimal';
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Compared to the full build:
|
|
186
|
-
|
|
187
|
-
* `parse` returns a two-element `[imports, exports]` tuple only - the third and fourth facade and `hasModuleSyntax` booleans are dropped.
|
|
188
|
-
* Imports drop the parsed attribute list `at` (the attribute source remains recoverable via the `a` attributes index).
|
|
189
|
-
* Exports drop the statement start `ss`.
|
|
190
|
-
|
|
191
|
-
All other fields are identical to the full build. For CSP eval disabled support, the equivalent asm.js build is available as `es-module-lexer/minimal/js`.
|
|
192
|
-
|
|
193
|
-
### Import Attributes
|
|
194
|
-
|
|
195
|
-
The `a` field provides the index of the start of the `{` attributes bracket, or -1 for no attributes.
|
|
196
|
-
|
|
197
|
-
The list of attribute key and value pairs are provided on the `at` field (full build only):
|
|
198
|
-
|
|
199
|
-
```js
|
|
200
|
-
const [imports] = parse(`
|
|
201
|
-
import json from './foo.json' with { type: 'json' };
|
|
202
|
-
import './foo.css' with { type: 'css' };
|
|
203
|
-
import pkg from 'pkg' with { type: 'json', integrity: 'sha384-...' };
|
|
204
|
-
`);
|
|
205
|
-
|
|
206
|
-
// Returns [['type', 'json']]
|
|
207
|
-
imports[0].at;
|
|
208
|
-
|
|
209
|
-
// Returns [['type', 'css']]
|
|
210
|
-
imports[1].at;
|
|
211
|
-
|
|
212
|
-
// Multiple attributes
|
|
213
|
-
// Returns [['type', 'json'], ['integrity', 'sha384-...']]
|
|
214
|
-
imports[2].at;
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
The `at` field is an array of `[key, value]` tuples, or `null` if there are no attributes.
|
|
218
|
-
|
|
219
|
-
Both keys and values support escape sequences:
|
|
220
|
-
|
|
221
|
-
```js
|
|
222
|
-
const [imports] = parse(`
|
|
223
|
-
import foo from './foo.js' with { "custom-key": "value" };
|
|
224
|
-
import bar from './bar.js' with { "key\\nwith\\nnewlines": "value\\twith\\ttabs" };
|
|
225
|
-
`);
|
|
226
|
-
|
|
227
|
-
// Quoted keys are unquoted
|
|
228
|
-
// Returns [['custom-key', 'value']]
|
|
229
|
-
imports[0].at;
|
|
230
|
-
|
|
231
|
-
// Escape sequences are processed
|
|
232
|
-
// Returns [['key\nwith\nnewlines', 'value\twith\ttabs']]
|
|
233
|
-
imports[1].at;
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### Escape Sequences
|
|
237
|
-
|
|
238
|
-
To handle escape sequences in specifier strings, the `.n` field of imported specifiers will be provided where possible.
|
|
239
|
-
|
|
240
|
-
For dynamic import expressions, this field will be empty if not a valid JS string.
|
|
241
|
-
|
|
242
|
-
### Facade Detection
|
|
243
|
-
|
|
244
|
-
Facade modules that only use import / export syntax can be detected via the third return value (full build only):
|
|
245
|
-
|
|
246
|
-
```js
|
|
247
|
-
const [,, facade] = parse(`
|
|
248
|
-
export * from 'external';
|
|
249
|
-
import * as ns from 'external2';
|
|
250
|
-
export { a as b } from 'external3';
|
|
251
|
-
export { ns };
|
|
252
|
-
`);
|
|
253
|
-
facade === true;
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
### ESM Detection
|
|
257
|
-
|
|
258
|
-
Modules that uses ESM syntaxes can be detected via the fourth return value (full build only):
|
|
259
|
-
|
|
260
|
-
```js
|
|
261
|
-
const [,,, hasModuleSyntax] = parse(`
|
|
262
|
-
export {}
|
|
263
|
-
`);
|
|
264
|
-
hasModuleSyntax === true;
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
Dynamic imports are ignored since they can be used in Non-ESM files.
|
|
268
|
-
|
|
269
|
-
```js
|
|
270
|
-
const [,,, hasModuleSyntax] = parse(`
|
|
271
|
-
import('./foo.js')
|
|
272
|
-
`);
|
|
273
|
-
hasModuleSyntax === false;
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### Environment Support
|
|
277
|
-
|
|
278
|
-
Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#feat=wasm).
|
|
279
|
-
|
|
280
|
-
### Grammar Support
|
|
281
|
-
|
|
282
|
-
* Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators.
|
|
283
|
-
* Division operator / regex token ambiguity is handled via backtracking checks against punctuator prefixes, including closing brace or paren backtracking.
|
|
284
|
-
* Always correctly parses valid JS source, but may parse invalid JS source without errors.
|
|
285
|
-
|
|
286
|
-
### Limitations
|
|
287
|
-
|
|
288
|
-
The lexing approach is designed to deal with the full language grammar including RegEx / division operator ambiguity through backtracking and paren / brace tracking.
|
|
289
|
-
|
|
290
|
-
Because it lexes rather than fully parses, the analysis is not a validation pass: valid JS source is always analyzed correctly, but some invalid source is accepted without an error rather than rejected. For example `export const = 1` lexes to an empty exports list instead of throwing. Callers that need to reject invalid source should run a validating parser separately.
|
|
291
|
-
|
|
292
|
-
Multiple exports per declaration (`export var a = 'asdf', q = z`) and renamed destructured exports (`export var { a: b } = asdf`) are detected correctly; earlier versions missed `q` and `b` in these forms.
|
|
293
|
-
|
|
294
|
-
### Benchmarks
|
|
295
|
-
|
|
296
|
-
Benchmarks can be run with `npm run bench`.
|
|
297
|
-
|
|
298
|
-
Current results for a high spec machine:
|
|
299
|
-
|
|
300
|
-
#### Wasm Build
|
|
301
|
-
|
|
302
|
-
```
|
|
303
|
-
Module load time
|
|
304
|
-
> 5ms
|
|
305
|
-
Cold Run, All Samples
|
|
306
|
-
test/samples/*.js (3123 KiB)
|
|
307
|
-
> 18ms
|
|
308
|
-
|
|
309
|
-
Warm Runs (average of 25 runs)
|
|
310
|
-
test/samples/angular.js (739 KiB)
|
|
311
|
-
> 3ms
|
|
312
|
-
test/samples/angular.min.js (188 KiB)
|
|
313
|
-
> 1ms
|
|
314
|
-
test/samples/d3.js (508 KiB)
|
|
315
|
-
> 3ms
|
|
316
|
-
test/samples/d3.min.js (274 KiB)
|
|
317
|
-
> 2ms
|
|
318
|
-
test/samples/magic-string.js (35 KiB)
|
|
319
|
-
> 0ms
|
|
320
|
-
test/samples/magic-string.min.js (20 KiB)
|
|
321
|
-
> 0ms
|
|
322
|
-
test/samples/rollup.js (929 KiB)
|
|
323
|
-
> 4.32ms
|
|
324
|
-
test/samples/rollup.min.js (429 KiB)
|
|
325
|
-
> 2.16ms
|
|
326
|
-
|
|
327
|
-
Warm Runs, All Samples (average of 25 runs)
|
|
328
|
-
test/samples/*.js (3123 KiB)
|
|
329
|
-
> 14.16ms
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
#### JS Build (asm.js)
|
|
333
|
-
|
|
334
|
-
```
|
|
335
|
-
Module load time
|
|
336
|
-
> 2ms
|
|
337
|
-
Cold Run, All Samples
|
|
338
|
-
test/samples/*.js (3123 KiB)
|
|
339
|
-
> 34ms
|
|
340
|
-
|
|
341
|
-
Warm Runs (average of 25 runs)
|
|
342
|
-
test/samples/angular.js (739 KiB)
|
|
343
|
-
> 3ms
|
|
344
|
-
test/samples/angular.min.js (188 KiB)
|
|
345
|
-
> 1ms
|
|
346
|
-
test/samples/d3.js (508 KiB)
|
|
347
|
-
> 3ms
|
|
348
|
-
test/samples/d3.min.js (274 KiB)
|
|
349
|
-
> 2ms
|
|
350
|
-
test/samples/magic-string.js (35 KiB)
|
|
351
|
-
> 0ms
|
|
352
|
-
test/samples/magic-string.min.js (20 KiB)
|
|
353
|
-
> 0ms
|
|
354
|
-
test/samples/rollup.js (929 KiB)
|
|
355
|
-
> 5ms
|
|
356
|
-
test/samples/rollup.min.js (429 KiB)
|
|
357
|
-
> 3.04ms
|
|
358
|
-
|
|
359
|
-
Warm Runs, All Samples (average of 25 runs)
|
|
360
|
-
test/samples/*.js (3123 KiB)
|
|
361
|
-
> 17.12ms
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
### Building
|
|
365
|
-
|
|
366
|
-
This project uses [Chomp](https://chompbuild.com) for building.
|
|
367
|
-
|
|
368
|
-
With Chomp installed, download the WASI SDK 12.0 from https://github.com/WebAssembly/wasi-sdk/releases/tag/wasi-sdk-12.
|
|
369
|
-
|
|
370
|
-
- [Linux](https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz)
|
|
371
|
-
- [Windows (MinGW)](https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-mingw.tar.gz)
|
|
372
|
-
- [macOS](https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-macos.tar.gz)
|
|
373
|
-
|
|
374
|
-
Locate the WASI-SDK as a sibling folder, or customize the path via the `WASI_PATH` environment variable.
|
|
375
|
-
|
|
376
|
-
Emscripten emsdk is also assumed to be a sibling folder or via the `EMSDK_PATH` environment variable.
|
|
377
|
-
|
|
378
|
-
Example setup:
|
|
379
|
-
|
|
380
|
-
```
|
|
381
|
-
git clone https://github.com:guybedford/es-module-lexer
|
|
382
|
-
git clone https://github.com/emscripten-core/emsdk
|
|
383
|
-
cd emsdk
|
|
384
|
-
git checkout 1.40.1-fastcomp
|
|
385
|
-
./emsdk install 1.40.1-fastcomp
|
|
386
|
-
cd ..
|
|
387
|
-
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz
|
|
388
|
-
gunzip wasi-sdk-12.0-linux.tar.gz
|
|
389
|
-
tar -xf wasi-sdk-12.0-linux.tar
|
|
390
|
-
mv wasi-sdk-12.0-linux.tar wasi-sdk-12.0
|
|
391
|
-
cargo install chompbuild
|
|
392
|
-
cd es-module-lexer
|
|
393
|
-
chomp test
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
For the `asm.js` build, git clone `emsdk` from is assumed to be a sibling folder as well.
|
|
397
|
-
|
|
398
|
-
### License
|
|
399
|
-
|
|
400
|
-
MIT
|
|
401
|
-
|
|
402
|
-
[actions-image]: https://github.com/guybedford/es-module-lexer/actions/workflows/build.yml/badge.svg
|
|
403
|
-
[actions-url]: https://github.com/guybedford/es-module-lexer/actions/workflows/build.yml
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# estree-walker
|
|
2
|
-
|
|
3
|
-
Simple utility for walking an [ESTree](https://github.com/estree/estree)-compliant AST, such as one generated by [acorn](https://github.com/marijnh/acorn).
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## Installation
|
|
7
|
-
|
|
8
|
-
```bash
|
|
9
|
-
npm i estree-walker
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
## Usage
|
|
14
|
-
|
|
15
|
-
```js
|
|
16
|
-
var walk = require('estree-walker').walk;
|
|
17
|
-
var acorn = require('acorn');
|
|
18
|
-
|
|
19
|
-
ast = acorn.parse(sourceCode, options); // https://github.com/acornjs/acorn
|
|
20
|
-
|
|
21
|
-
walk(ast, {
|
|
22
|
-
enter(node, parent, prop, index) {
|
|
23
|
-
// some code happens
|
|
24
|
-
},
|
|
25
|
-
leave(node, parent, prop, index) {
|
|
26
|
-
// some code happens
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Inside the `enter` function, calling `this.skip()` will prevent the node's children being walked, or the `leave` function (which is optional) being called.
|
|
32
|
-
|
|
33
|
-
Call `this.replace(new_node)` in either `enter` or `leave` to replace the current node with a new one.
|
|
34
|
-
|
|
35
|
-
Call `this.remove()` in either `enter` or `leave` to remove the current node.
|
|
36
|
-
|
|
37
|
-
## Why not use estraverse?
|
|
38
|
-
|
|
39
|
-
The ESTree spec is evolving to accommodate ES6/7. I've had a couple of experiences where [estraverse](https://github.com/estools/estraverse) was unable to handle an AST generated by recent versions of acorn, because it hard-codes visitor keys.
|
|
40
|
-
|
|
41
|
-
estree-walker, by contrast, simply enumerates a node's properties to find child nodes (and child lists of nodes), and is therefore resistant to spec changes. It's also much smaller. (The performance, if you're wondering, is basically identical.)
|
|
42
|
-
|
|
43
|
-
None of which should be taken as criticism of estraverse, which has more features and has been battle-tested in many more situations, and for which I'm very grateful.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
## License
|
|
47
|
-
|
|
48
|
-
MIT
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
<a href="https://hono.dev">
|
|
3
|
-
<img src="https://raw.githubusercontent.com/honojs/hono/main/docs/images/hono-title.png" width="500" height="auto" alt="Hono"/>
|
|
4
|
-
</a>
|
|
5
|
-
</div>
|
|
6
|
-
|
|
7
|
-
<hr />
|
|
8
|
-
|
|
9
|
-
[](https://github.com/honojs/hono/actions)
|
|
10
|
-
[](https://github.com/honojs/hono/blob/main/LICENSE)
|
|
11
|
-
[](https://www.npmjs.com/package/hono)
|
|
12
|
-
[](https://www.npmjs.com/package/hono)
|
|
13
|
-
[](https://jsr.io/@hono/hono)
|
|
14
|
-
[](https://bundlephobia.com/result?p=hono)
|
|
15
|
-
[](https://bundlephobia.com/result?p=hono)
|
|
16
|
-
[](https://github.com/honojs/hono/pulse)
|
|
17
|
-
[](https://github.com/honojs/hono/commits/main)
|
|
18
|
-
[](https://codecov.io/github/honojs/hono)
|
|
19
|
-
[](https://discord.gg/KMh2eNSdxV)
|
|
20
|
-
[](https://deepwiki.com/honojs/hono)
|
|
21
|
-
|
|
22
|
-
Hono - _**means flame🔥 in Japanese**_ - is a small, simple, and ultrafast web framework built on Web Standards. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, AWS Lambda, Lambda@Edge, and Node.js.
|
|
23
|
-
|
|
24
|
-
Fast, but not only fast.
|
|
25
|
-
|
|
26
|
-
```ts
|
|
27
|
-
import { Hono } from 'hono'
|
|
28
|
-
const app = new Hono()
|
|
29
|
-
|
|
30
|
-
app.get('/', (c) => c.text('Hono!'))
|
|
31
|
-
|
|
32
|
-
export default app
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Quick Start
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
npm create hono@latest
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Features
|
|
42
|
-
|
|
43
|
-
- **Ultrafast** 🚀 - The router `RegExpRouter` is really fast. Not using linear loops. Fast.
|
|
44
|
-
- **Lightweight** 🪶 - The `hono/tiny` preset is under 12kB. Hono has zero dependencies and uses only the Web Standard API.
|
|
45
|
-
- **Multi-runtime** 🌍 - Works on Cloudflare Workers, Fastly Compute, Deno, Bun, AWS Lambda, Lambda@Edge, or Node.js. The same code runs on all platforms.
|
|
46
|
-
- **Batteries Included** 🔋 - Hono has built-in middleware, custom middleware, and third-party middleware. Batteries included.
|
|
47
|
-
- **Delightful DX** 😃 - Super clean APIs. First-class TypeScript support. Now, we've got "Types".
|
|
48
|
-
|
|
49
|
-
## Documentation
|
|
50
|
-
|
|
51
|
-
The documentation is available on [hono.dev](https://hono.dev).
|
|
52
|
-
|
|
53
|
-
## Migration
|
|
54
|
-
|
|
55
|
-
The migration guide is available on [docs/MIGRATION.md](docs/MIGRATION.md).
|
|
56
|
-
|
|
57
|
-
## Communication
|
|
58
|
-
|
|
59
|
-
[X](https://x.com/honojs) and [Discord channel](https://discord.gg/KMh2eNSdxV) are available.
|
|
60
|
-
|
|
61
|
-
## Contributing
|
|
62
|
-
|
|
63
|
-
Contributions Welcome! You can contribute in the following ways.
|
|
64
|
-
|
|
65
|
-
- Create an Issue - Propose a new feature. Report a bug.
|
|
66
|
-
- Pull Request - Fix a bug or typo. Refactor the code.
|
|
67
|
-
- Create third-party middleware - See instructions below.
|
|
68
|
-
- Share - Share your thoughts on the Blog, X, and others.
|
|
69
|
-
- Make your application - Please try to use Hono.
|
|
70
|
-
|
|
71
|
-
For more details, see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).
|
|
72
|
-
|
|
73
|
-
## Contributors
|
|
74
|
-
|
|
75
|
-
Thanks to [all contributors](https://github.com/honojs/hono/graphs/contributors)!
|
|
76
|
-
|
|
77
|
-
## Authors
|
|
78
|
-
|
|
79
|
-
Yusuke Wada <https://github.com/yusukebe>
|
|
80
|
-
|
|
81
|
-
_RegExpRouter_, _SmartRouter_, _LinearRouter_, and _PatternRouter_ are created by Taku Amano <https://github.com/usualoma>
|
|
82
|
-
|
|
83
|
-
## License
|
|
84
|
-
|
|
85
|
-
Distributed under the MIT License. See [LICENSE](LICENSE) for more information.
|