@zappdev/cli 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -21
- package/dist/zapp-cli.js +38 -3
- package/native/src/app/app.zc +30 -7
- package/native/src/cli/node_modules/@esbuild/darwin-arm64/README.md +3 -0
- package/native/src/cli/node_modules/@esbuild/darwin-arm64/bin/esbuild +0 -0
- package/native/src/cli/node_modules/@esbuild/darwin-arm64/package.json +20 -0
- package/native/src/cli/node_modules/@types/bun/LICENSE +21 -0
- package/native/src/cli/node_modules/@types/bun/README.md +20 -0
- package/native/src/cli/node_modules/@types/bun/index.d.ts +1 -0
- package/native/src/cli/node_modules/@types/bun/package.json +53 -0
- package/native/src/cli/node_modules/@types/node/LICENSE +21 -0
- package/native/src/cli/node_modules/@types/node/README.md +15 -0
- package/native/src/cli/node_modules/@types/node/assert/strict.d.ts +111 -0
- package/native/src/cli/node_modules/@types/node/assert.d.ts +1078 -0
- package/native/src/cli/node_modules/@types/node/async_hooks.d.ts +603 -0
- package/native/src/cli/node_modules/@types/node/buffer.buffer.d.ts +472 -0
- package/native/src/cli/node_modules/@types/node/buffer.d.ts +1934 -0
- package/native/src/cli/node_modules/@types/node/child_process.d.ts +1476 -0
- package/native/src/cli/node_modules/@types/node/cluster.d.ts +578 -0
- package/native/src/cli/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
- package/native/src/cli/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/native/src/cli/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
- package/native/src/cli/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
- package/native/src/cli/node_modules/@types/node/console.d.ts +452 -0
- package/native/src/cli/node_modules/@types/node/constants.d.ts +21 -0
- package/native/src/cli/node_modules/@types/node/crypto.d.ts +4545 -0
- package/native/src/cli/node_modules/@types/node/dgram.d.ts +600 -0
- package/native/src/cli/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
- package/native/src/cli/node_modules/@types/node/dns/promises.d.ts +503 -0
- package/native/src/cli/node_modules/@types/node/dns.d.ts +923 -0
- package/native/src/cli/node_modules/@types/node/domain.d.ts +170 -0
- package/native/src/cli/node_modules/@types/node/events.d.ts +976 -0
- package/native/src/cli/node_modules/@types/node/fs/promises.d.ts +1295 -0
- package/native/src/cli/node_modules/@types/node/fs.d.ts +4461 -0
- package/native/src/cli/node_modules/@types/node/globals.d.ts +172 -0
- package/native/src/cli/node_modules/@types/node/globals.typedarray.d.ts +38 -0
- package/native/src/cli/node_modules/@types/node/http.d.ts +2089 -0
- package/native/src/cli/node_modules/@types/node/http2.d.ts +2644 -0
- package/native/src/cli/node_modules/@types/node/https.d.ts +579 -0
- package/native/src/cli/node_modules/@types/node/index.d.ts +97 -0
- package/native/src/cli/node_modules/@types/node/inspector.d.ts +253 -0
- package/native/src/cli/node_modules/@types/node/inspector.generated.d.ts +4052 -0
- package/native/src/cli/node_modules/@types/node/module.d.ts +891 -0
- package/native/src/cli/node_modules/@types/node/net.d.ts +1057 -0
- package/native/src/cli/node_modules/@types/node/os.d.ts +506 -0
- package/native/src/cli/node_modules/@types/node/package.json +145 -0
- package/native/src/cli/node_modules/@types/node/path.d.ts +200 -0
- package/native/src/cli/node_modules/@types/node/perf_hooks.d.ts +968 -0
- package/native/src/cli/node_modules/@types/node/process.d.ts +2084 -0
- package/native/src/cli/node_modules/@types/node/punycode.d.ts +117 -0
- package/native/src/cli/node_modules/@types/node/querystring.d.ts +152 -0
- package/native/src/cli/node_modules/@types/node/readline/promises.d.ts +161 -0
- package/native/src/cli/node_modules/@types/node/readline.d.ts +594 -0
- package/native/src/cli/node_modules/@types/node/repl.d.ts +428 -0
- package/native/src/cli/node_modules/@types/node/sea.d.ts +153 -0
- package/native/src/cli/node_modules/@types/node/sqlite.d.ts +721 -0
- package/native/src/cli/node_modules/@types/node/stream/consumers.d.ts +38 -0
- package/native/src/cli/node_modules/@types/node/stream/promises.d.ts +90 -0
- package/native/src/cli/node_modules/@types/node/stream/web.d.ts +622 -0
- package/native/src/cli/node_modules/@types/node/stream.d.ts +1664 -0
- package/native/src/cli/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/native/src/cli/node_modules/@types/node/test.d.ts +2163 -0
- package/native/src/cli/node_modules/@types/node/timers/promises.d.ts +108 -0
- package/native/src/cli/node_modules/@types/node/timers.d.ts +287 -0
- package/native/src/cli/node_modules/@types/node/tls.d.ts +1319 -0
- package/native/src/cli/node_modules/@types/node/trace_events.d.ts +197 -0
- package/native/src/cli/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
- package/native/src/cli/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
- package/native/src/cli/node_modules/@types/node/ts5.6/index.d.ts +97 -0
- package/native/src/cli/node_modules/@types/node/tty.d.ts +208 -0
- package/native/src/cli/node_modules/@types/node/url.d.ts +984 -0
- package/native/src/cli/node_modules/@types/node/util.d.ts +2606 -0
- package/native/src/cli/node_modules/@types/node/v8.d.ts +920 -0
- package/native/src/cli/node_modules/@types/node/vm.d.ts +1000 -0
- package/native/src/cli/node_modules/@types/node/wasi.d.ts +181 -0
- package/native/src/cli/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
- package/native/src/cli/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
- package/native/src/cli/node_modules/@types/node/web-globals/events.d.ts +97 -0
- package/native/src/cli/node_modules/@types/node/web-globals/fetch.d.ts +55 -0
- package/native/src/cli/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
- package/native/src/cli/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- package/native/src/cli/node_modules/@types/node/worker_threads.d.ts +784 -0
- package/native/src/cli/node_modules/@types/node/zlib.d.ts +747 -0
- package/native/src/cli/node_modules/bun-types/CLAUDE.md +105 -0
- package/native/src/cli/node_modules/bun-types/README.md +33 -0
- package/native/src/cli/node_modules/bun-types/bun.d.ts +8481 -0
- package/native/src/cli/node_modules/bun-types/bun.ns.d.ts +5 -0
- package/native/src/cli/node_modules/bun-types/bundle.d.ts +74 -0
- package/native/src/cli/node_modules/bun-types/deprecated.d.ts +184 -0
- package/native/src/cli/node_modules/bun-types/devserver.d.ts +187 -0
- package/native/src/cli/node_modules/bun-types/docs/README.md +28 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/bytecode.mdx +447 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/css.mdx +1024 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/esbuild.mdx +304 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/executables.mdx +1318 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/fullstack.mdx +1086 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/hot-reloading.mdx +229 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/html-static.mdx +498 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/index.mdx +1840 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/loaders.mdx +451 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/macros.mdx +328 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/minifier.mdx +1286 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/plugins.mdx +477 -0
- package/native/src/cli/node_modules/bun-types/docs/bundler/standalone-html.mdx +314 -0
- package/native/src/cli/node_modules/bun-types/docs/feedback.mdx +75 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/arraybuffer-to-array.mdx +29 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/arraybuffer-to-blob.mdx +26 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/arraybuffer-to-buffer.mdx +27 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/arraybuffer-to-string.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/arraybuffer-to-typedarray.mdx +41 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/blob-to-arraybuffer.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/blob-to-dataview.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/blob-to-stream.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/blob-to-string.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/blob-to-typedarray.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/buffer-to-arraybuffer.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/buffer-to-blob.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/buffer-to-readablestream.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/buffer-to-string.mdx +27 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/buffer-to-typedarray.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/dataview-to-string.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/typedarray-to-arraybuffer.mdx +27 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/typedarray-to-blob.mdx +18 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/typedarray-to-buffer.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/typedarray-to-dataview.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/typedarray-to-readablestream.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/binary/typedarray-to-string.mdx +18 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/deployment/aws-lambda.mdx +204 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/deployment/digital-ocean.mdx +161 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/deployment/google-cloud-run.mdx +194 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/deployment/railway.mdx +145 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/deployment/render.mdx +82 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/deployment/vercel.mdx +97 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/astro.mdx +82 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/discordjs.mdx +80 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/docker.mdx +151 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/drizzle.mdx +195 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/elysia.mdx +31 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/express.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/gel.mdx +261 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/hono.mdx +47 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/mongoose.mdx +92 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/neon-drizzle.mdx +234 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/neon-serverless-postgres.mdx +60 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/nextjs.mdx +103 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/nuxt.mdx +96 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/pm2.mdx +55 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/prisma-postgres.mdx +169 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/prisma.mdx +164 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/qwik.mdx +114 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/react.mdx +52 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/remix.mdx +97 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/sentry.mdx +54 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/solidstart.mdx +62 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/ssr-react.mdx +49 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/stric.mdx +54 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/sveltekit.mdx +138 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/systemd.mdx +114 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/tanstack-start.mdx +791 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/upstash.mdx +87 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/ecosystem/vite.mdx +77 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/html-rewriter/extract-links.mdx +71 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/html-rewriter/extract-social-meta.mdx +97 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/cluster.mdx +69 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/fetch-unix.mdx +35 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/fetch.mdx +26 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/file-uploads.mdx +97 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/hot.mdx +28 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/proxy.mdx +50 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/server.mdx +48 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/simple.mdx +20 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/stream-file.mdx +50 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/stream-iterator.mdx +49 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/stream-node-streams-in-bun.mdx +22 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/http/tls.mdx +32 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/index.mdx +10 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/add-dev.mdx +28 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/add-git.mdx +40 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/add-optional.mdx +27 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/add-peer.mdx +45 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/add-tarball.mdx +35 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/add.mdx +44 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/azure-artifacts.mdx +76 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/cicd.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/custom-registry.mdx +32 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/from-npm-install-to-bun-install.mdx +230 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/git-diff-bun-lockfile.mdx +48 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/jfrog-artifactory.mdx +28 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/npm-alias.mdx +25 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/registry-scope.mdx +40 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/trusted.mdx +52 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/workspaces.mdx +70 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/install/yarnlock.mdx +51 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/argv.mdx +66 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/ctrl-c.mdx +18 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/ipc.mdx +69 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/nanoseconds.mdx +15 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/os-signals.mdx +31 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/spawn-stderr.mdx +34 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/spawn-stdout.mdx +28 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/spawn.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/process/stdin.mdx +62 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/arraybuffer.mdx +30 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/buffer.mdx +21 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/exists.mdx +18 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/json.mdx +19 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/mime.mdx +22 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/stream.mdx +28 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/string.mdx +24 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/uint8array.mdx +23 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/read-file/watch.mdx +66 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/build-time-constants.mdx +295 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/cicd.mdx +45 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/codesign-macos-executable.mdx +61 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/define-constant.mdx +149 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/delete-directory.mdx +39 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/delete-file.mdx +21 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/heap-snapshot.mdx +28 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/import-html.mdx +15 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/import-json.mdx +46 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/import-json5.mdx +74 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/import-toml.mdx +32 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/import-yaml.mdx +104 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/read-env.mdx +37 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/set-env.mdx +51 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/shell.mdx +42 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/timezone.mdx +38 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/tsconfig-paths.mdx +31 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/typescript.mdx +51 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/vscode-debugger.mdx +47 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/runtime/web-debugger.mdx +103 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/node-readable-to-arraybuffer.mdx +13 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/node-readable-to-blob.mdx +13 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/node-readable-to-json.mdx +14 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/node-readable-to-string.mdx +14 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/node-readable-to-uint8array.mdx +13 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/to-array.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/to-arraybuffer.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/to-blob.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/to-buffer.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/to-json.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/to-string.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/streams/to-typedarray.mdx +24 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/bail.mdx +24 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/concurrent-test-glob.mdx +146 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/coverage-threshold.mdx +67 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/coverage.mdx +49 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/happy-dom.mdx +73 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/migrate-from-jest.mdx +125 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/mock-clock.mdx +50 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/mock-functions.mdx +70 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/rerun-each.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/run-tests.mdx +116 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/skip-tests.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/snapshot.mdx +102 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/spy-on.mdx +49 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/svelte-test.mdx +113 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/testing-library.mdx +93 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/timeout.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/todo-tests.mdx +74 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/update-snapshots.mdx +49 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/test/watch-mode.mdx +24 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/base64.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/deep-equals.mdx +41 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/deflate.mdx +20 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/detect-bun.mdx +28 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/entrypoint.mdx +19 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/escape-html.mdx +24 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/file-url-to-path.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/gzip.mdx +20 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/hash-a-password.mdx +56 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/import-meta-dir.mdx +15 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/import-meta-file.mdx +15 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/import-meta-path.mdx +15 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/javascript-uuid.mdx +25 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/main.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/path-to-file-url.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/sleep.mdx +24 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/upgrade.mdx +93 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/version.mdx +23 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/util/which-path-to-executable-bin.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/websocket/compression.mdx +33 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/websocket/context.mdx +79 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/websocket/pubsub.mdx +43 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/websocket/simple.mdx +38 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/append.mdx +54 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/basic.mdx +46 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/blob.mdx +30 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/cat.mdx +19 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/file-cp.mdx +18 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/filesink.mdx +54 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/response.mdx +19 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/stdout.mdx +23 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/stream.mdx +19 -0
- package/native/src/cli/node_modules/bun-types/docs/guides/write-file/unlink.mdx +18 -0
- package/native/src/cli/node_modules/bun-types/docs/index.mdx +133 -0
- package/native/src/cli/node_modules/bun-types/docs/installation.mdx +372 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/bunx.mdx +91 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/catalogs.mdx +292 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/add.mdx +179 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/audit.mdx +60 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/info.mdx +70 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/install.mdx +591 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/link.mdx +61 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/outdated.mdx +197 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/patch.mdx +69 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/pm.mdx +323 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/publish.mdx +131 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/remove.mdx +16 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/update.mdx +140 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/cli/why.mdx +84 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/filter.mdx +127 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/global-cache.mdx +72 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/isolated-installs.mdx +220 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/lifecycle.mdx +64 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/lockfile.mdx +64 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/npmrc.mdx +245 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/overrides.mdx +83 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/scopes-registries.mdx +35 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/security-scanner-api.mdx +95 -0
- package/native/src/cli/node_modules/bun-types/docs/pm/workspaces.mdx +115 -0
- package/native/src/cli/node_modules/bun-types/docs/project/benchmarking.mdx +296 -0
- package/native/src/cli/node_modules/bun-types/docs/project/bindgen.mdx +223 -0
- package/native/src/cli/node_modules/bun-types/docs/project/building-windows.mdx +143 -0
- package/native/src/cli/node_modules/bun-types/docs/project/contributing.mdx +366 -0
- package/native/src/cli/node_modules/bun-types/docs/project/feedback.mdx +20 -0
- package/native/src/cli/node_modules/bun-types/docs/project/license.mdx +78 -0
- package/native/src/cli/node_modules/bun-types/docs/project/roadmap.mdx +8 -0
- package/native/src/cli/node_modules/bun-types/docs/quickstart.mdx +251 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/archive.mdx +452 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/auto-install.mdx +97 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/binary-data.mdx +846 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/bun-apis.mdx +59 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/bunfig.mdx +754 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/c-compiler.mdx +204 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/child-process.mdx +659 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/color.mdx +267 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/console.mdx +67 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/cookies.mdx +454 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/debugger.mdx +335 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/environment-variables.mdx +231 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/ffi.mdx +567 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/file-io.mdx +306 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/file-system-router.mdx +118 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/file-types.mdx +482 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/glob.mdx +181 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/globals.mdx +72 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/hashing.mdx +315 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/html-rewriter.mdx +333 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/http/cookies.mdx +79 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/http/error-handling.mdx +40 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/http/metrics.mdx +36 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/http/routing.mdx +289 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/http/server.mdx +645 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/http/tls.mdx +101 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/http/websockets.mdx +414 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/index.mdx +223 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/json5.mdx +271 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/jsonl.mdx +188 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/jsx.mdx +115 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/markdown.mdx +344 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/module-resolution.mdx +374 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/networking/dns.mdx +111 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/networking/fetch.mdx +484 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/networking/tcp.mdx +239 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/networking/udp.mdx +180 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/node-api.mdx +19 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/nodejs-compat.mdx +468 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/plugins.mdx +419 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/redis.mdx +583 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/repl.mdx +176 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/s3.mdx +881 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/secrets.mdx +340 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/semver.mdx +57 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/shell.mdx +637 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/sql.mdx +1404 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/sqlite.mdx +721 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/streams.mdx +232 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/templating/create.mdx +269 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/templating/init.mdx +58 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/transpiler.mdx +288 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/typescript.mdx +58 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/utils.mdx +1010 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/watch-mode.mdx +161 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/web-apis.mdx +29 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/workers.mdx +314 -0
- package/native/src/cli/node_modules/bun-types/docs/runtime/yaml.mdx +469 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/add.mdx +166 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/build.mdx +197 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/bunx.mdx +49 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/feedback.mdx +17 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/init.mdx +84 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/install.mdx +173 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/link.mdx +163 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/outdated.mdx +140 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/patch.mdx +171 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/publish.mdx +198 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/remove.mdx +146 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/run.mdx +305 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/test.mdx +105 -0
- package/native/src/cli/node_modules/bun-types/docs/snippets/cli/update.mdx +144 -0
- package/native/src/cli/node_modules/bun-types/docs/test/code-coverage.mdx +409 -0
- package/native/src/cli/node_modules/bun-types/docs/test/configuration.mdx +520 -0
- package/native/src/cli/node_modules/bun-types/docs/test/dates-times.mdx +129 -0
- package/native/src/cli/node_modules/bun-types/docs/test/discovery.mdx +90 -0
- package/native/src/cli/node_modules/bun-types/docs/test/dom.mdx +226 -0
- package/native/src/cli/node_modules/bun-types/docs/test/index.mdx +409 -0
- package/native/src/cli/node_modules/bun-types/docs/test/lifecycle.mdx +366 -0
- package/native/src/cli/node_modules/bun-types/docs/test/mocks.mdx +637 -0
- package/native/src/cli/node_modules/bun-types/docs/test/reporters.mdx +126 -0
- package/native/src/cli/node_modules/bun-types/docs/test/runtime-behavior.mdx +342 -0
- package/native/src/cli/node_modules/bun-types/docs/test/snapshots.mdx +434 -0
- package/native/src/cli/node_modules/bun-types/docs/test/writing-tests.mdx +672 -0
- package/native/src/cli/node_modules/bun-types/docs/typescript.mdx +54 -0
- package/native/src/cli/node_modules/bun-types/extensions.d.ts +40 -0
- package/native/src/cli/node_modules/bun-types/fetch.d.ts +79 -0
- package/native/src/cli/node_modules/bun-types/ffi.d.ts +1154 -0
- package/native/src/cli/node_modules/bun-types/globals.d.ts +2067 -0
- package/native/src/cli/node_modules/bun-types/html-rewriter.d.ts +186 -0
- package/native/src/cli/node_modules/bun-types/index.d.ts +32 -0
- package/native/src/cli/node_modules/bun-types/jsc.d.ts +233 -0
- package/native/src/cli/node_modules/bun-types/jsx.d.ts +11 -0
- package/native/src/cli/node_modules/bun-types/overrides.d.ts +376 -0
- package/native/src/cli/node_modules/bun-types/package.json +37 -0
- package/native/src/cli/node_modules/bun-types/redis.d.ts +3352 -0
- package/native/src/cli/node_modules/bun-types/s3.d.ts +1335 -0
- package/native/src/cli/node_modules/bun-types/security.d.ts +101 -0
- package/native/src/cli/node_modules/bun-types/serve.d.ts +1296 -0
- package/native/src/cli/node_modules/bun-types/shell.d.ts +380 -0
- package/native/src/cli/node_modules/bun-types/sql.d.ts +887 -0
- package/native/src/cli/node_modules/bun-types/sqlite.d.ts +1322 -0
- package/native/src/cli/node_modules/bun-types/test-globals.d.ts +22 -0
- package/native/src/cli/node_modules/bun-types/test.d.ts +2392 -0
- package/native/src/cli/node_modules/bun-types/vendor/expect-type/branding.d.ts +283 -0
- package/native/src/cli/node_modules/bun-types/vendor/expect-type/index.d.ts +1207 -0
- package/native/src/cli/node_modules/bun-types/vendor/expect-type/messages.d.ts +395 -0
- package/native/src/cli/node_modules/bun-types/vendor/expect-type/overloads.d.ts +669 -0
- package/native/src/cli/node_modules/bun-types/vendor/expect-type/utils.d.ts +431 -0
- package/native/src/cli/node_modules/bun-types/wasm.d.ts +193 -0
- package/native/src/cli/node_modules/esbuild/LICENSE.md +21 -0
- package/native/src/cli/node_modules/esbuild/README.md +3 -0
- package/native/src/cli/node_modules/esbuild/bin/esbuild +223 -0
- package/native/src/cli/node_modules/esbuild/install.js +289 -0
- package/native/src/cli/node_modules/esbuild/lib/main.d.ts +716 -0
- package/native/src/cli/node_modules/esbuild/lib/main.js +2532 -0
- package/native/src/cli/node_modules/esbuild/package.json +49 -0
- package/native/src/cli/node_modules/typescript/LICENSE.txt +55 -0
- package/native/src/cli/node_modules/typescript/README.md +50 -0
- package/native/src/cli/node_modules/typescript/SECURITY.md +41 -0
- package/native/src/cli/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
- package/native/src/cli/node_modules/typescript/bin/tsc +2 -0
- package/native/src/cli/node_modules/typescript/bin/tsserver +2 -0
- package/native/src/cli/node_modules/typescript/lib/_tsc.js +133818 -0
- package/native/src/cli/node_modules/typescript/lib/_tsserver.js +659 -0
- package/native/src/cli/node_modules/typescript/lib/_typingsInstaller.js +222 -0
- package/native/src/cli/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/lib.d.ts +22 -0
- package/native/src/cli/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
- package/native/src/cli/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
- package/native/src/cli/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
- package/native/src/cli/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
- package/native/src/cli/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
- package/native/src/cli/node_modules/typescript/lib/lib.es6.d.ts +23 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
- package/native/src/cli/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
- package/native/src/cli/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
- package/native/src/cli/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
- package/native/src/cli/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
- package/native/src/cli/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
- package/native/src/cli/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
- package/native/src/cli/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/tsc.js +8 -0
- package/native/src/cli/node_modules/typescript/lib/tsserver.js +8 -0
- package/native/src/cli/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
- package/native/src/cli/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- package/native/src/cli/node_modules/typescript/lib/typesMap.json +497 -0
- package/native/src/cli/node_modules/typescript/lib/typescript.d.ts +11437 -0
- package/native/src/cli/node_modules/typescript/lib/typescript.js +200276 -0
- package/native/src/cli/node_modules/typescript/lib/typingsInstaller.js +8 -0
- package/native/src/cli/node_modules/typescript/lib/watchGuard.js +53 -0
- package/native/src/cli/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
- package/native/src/cli/node_modules/typescript/package.json +120 -0
- package/native/src/cli/node_modules/undici-types/LICENSE +21 -0
- package/native/src/cli/node_modules/undici-types/README.md +6 -0
- package/native/src/cli/node_modules/undici-types/agent.d.ts +31 -0
- package/native/src/cli/node_modules/undici-types/api.d.ts +43 -0
- package/native/src/cli/node_modules/undici-types/balanced-pool.d.ts +29 -0
- package/native/src/cli/node_modules/undici-types/cache.d.ts +36 -0
- package/native/src/cli/node_modules/undici-types/client.d.ts +108 -0
- package/native/src/cli/node_modules/undici-types/connector.d.ts +34 -0
- package/native/src/cli/node_modules/undici-types/content-type.d.ts +21 -0
- package/native/src/cli/node_modules/undici-types/cookies.d.ts +28 -0
- package/native/src/cli/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
- package/native/src/cli/node_modules/undici-types/dispatcher.d.ts +256 -0
- package/native/src/cli/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
- package/native/src/cli/node_modules/undici-types/errors.d.ts +149 -0
- package/native/src/cli/node_modules/undici-types/eventsource.d.ts +61 -0
- package/native/src/cli/node_modules/undici-types/fetch.d.ts +209 -0
- package/native/src/cli/node_modules/undici-types/file.d.ts +39 -0
- package/native/src/cli/node_modules/undici-types/filereader.d.ts +54 -0
- package/native/src/cli/node_modules/undici-types/formdata.d.ts +108 -0
- package/native/src/cli/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/native/src/cli/node_modules/undici-types/global-origin.d.ts +7 -0
- package/native/src/cli/node_modules/undici-types/handlers.d.ts +15 -0
- package/native/src/cli/node_modules/undici-types/header.d.ts +4 -0
- package/native/src/cli/node_modules/undici-types/index.d.ts +71 -0
- package/native/src/cli/node_modules/undici-types/interceptors.d.ts +17 -0
- package/native/src/cli/node_modules/undici-types/mock-agent.d.ts +50 -0
- package/native/src/cli/node_modules/undici-types/mock-client.d.ts +25 -0
- package/native/src/cli/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/native/src/cli/node_modules/undici-types/mock-interceptor.d.ts +93 -0
- package/native/src/cli/node_modules/undici-types/mock-pool.d.ts +25 -0
- package/native/src/cli/node_modules/undici-types/package.json +55 -0
- package/native/src/cli/node_modules/undici-types/patch.d.ts +33 -0
- package/native/src/cli/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/native/src/cli/node_modules/undici-types/pool.d.ts +39 -0
- package/native/src/cli/node_modules/undici-types/proxy-agent.d.ts +28 -0
- package/native/src/cli/node_modules/undici-types/readable.d.ts +65 -0
- package/native/src/cli/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/native/src/cli/node_modules/undici-types/retry-handler.d.ts +116 -0
- package/native/src/cli/node_modules/undici-types/util.d.ts +18 -0
- package/native/src/cli/node_modules/undici-types/webidl.d.ts +228 -0
- package/native/src/cli/node_modules/undici-types/websocket.d.ts +150 -0
- package/native/src/platform/darwin/backend_bootstrap.zc +1 -1
- package/native/src/platform/darwin/bootstrap.zc +1 -1
- package/native/src/platform/darwin/platform.zc +22 -0
- package/native/src/platform/darwin/webview.zc +158 -3
- package/native/src/platform/darwin/webview_bootstrap.zc +2 -2
- package/native/src/platform/darwin/window.zc +264 -0
- package/native/src/platform/windows/backend_bootstrap.zc +1 -1
- package/native/src/platform/windows/bootstrap.zc +1 -1
- package/native/src/platform/windows/platform.zc +27 -1
- package/native/src/platform/windows/webview.zc +444 -2
- package/native/src/platform/windows/webview_bootstrap.zc +2 -2
- package/native/src/platform/windows/window.zc +31 -0
- package/native/vendor/quickjs-ng/README.md +24 -0
- package/native/vendor/quickjs-ng/docs/.nvmrc +1 -0
- package/native/vendor/quickjs-ng/docs/babel.config.js +3 -0
- package/native/vendor/quickjs-ng/docs/docs/building.md +63 -0
- package/native/vendor/quickjs-ng/docs/docs/cli.md +130 -0
- package/native/vendor/quickjs-ng/docs/docs/developer-guide/_category_.json +7 -0
- package/native/vendor/quickjs-ng/docs/docs/developer-guide/api.md +3 -0
- package/native/vendor/quickjs-ng/docs/docs/developer-guide/internals.md +117 -0
- package/native/vendor/quickjs-ng/docs/docs/developer-guide/intro.md +113 -0
- package/native/vendor/quickjs-ng/docs/docs/diff.md +68 -0
- package/native/vendor/quickjs-ng/docs/docs/es_features.md +11 -0
- package/native/vendor/quickjs-ng/docs/docs/installation.md +34 -0
- package/native/vendor/quickjs-ng/docs/docs/intro.md +33 -0
- package/native/vendor/quickjs-ng/docs/docs/projects.md +67 -0
- package/native/vendor/quickjs-ng/docs/docs/stdlib.md +605 -0
- package/native/vendor/quickjs-ng/docs/docs/supported_platforms.md +20 -0
- package/native/vendor/quickjs-ng/docs/docusaurus.config.js +114 -0
- package/native/vendor/quickjs-ng/docs/package-lock.json +14656 -0
- package/native/vendor/quickjs-ng/docs/package.json +42 -0
- package/native/vendor/quickjs-ng/docs/sidebars.js +20 -0
- package/native/vendor/quickjs-ng/docs/src/css/custom.css +30 -0
- package/native/vendor/quickjs-ng/docs/static/.nojekyll +0 -0
- package/native/vendor/quickjs-ng/docs/static/img/favicon.ico +0 -0
- package/native/vendor/quickjs-ng/test262-fast.conf +132 -0
- package/native/vendor/quickjs-ng/test262.conf +416 -0
- package/native/vendor/quickjs-ng/test262_errors.txt +93 -0
- package/package.json +1 -1
- package/src/build-config.ts +6 -0
- package/src/build.ts +2 -1
- package/src/config.ts +9 -0
- package/src/package.ts +20 -0
|
@@ -283,20 +283,41 @@ raw {
|
|
|
283
283
|
if (--self->refCount == 0) { free(self); return 0; }
|
|
284
284
|
return self->refCount;
|
|
285
285
|
}
|
|
286
|
+
wchar_t* zapp_pending_deep_link = NULL;
|
|
287
|
+
|
|
286
288
|
static HRESULT STDMETHODCALLTYPE znh_Invoke(
|
|
287
289
|
ICoreWebView2NavigationCompletedEventHandler* This,
|
|
288
290
|
ICoreWebView2* sender,
|
|
289
291
|
ICoreWebView2NavigationCompletedEventArgs* args
|
|
290
292
|
) {
|
|
291
|
-
(void)
|
|
293
|
+
(void)args;
|
|
292
294
|
ZappNavHandler* self = (ZappNavHandler*)This;
|
|
293
295
|
if (!self->firstNavDone) {
|
|
294
296
|
self->firstNavDone = TRUE;
|
|
295
297
|
// Workaround: toggle visibility to force WebView2 to composite
|
|
296
|
-
// https://github.com/MicrosoftEdge/WebView2Feedback/issues/1077
|
|
297
298
|
ICoreWebView2Controller_put_IsVisible(self->controller, FALSE);
|
|
298
299
|
ICoreWebView2Controller_put_IsVisible(self->controller, TRUE);
|
|
299
300
|
ICoreWebView2Controller_MoveFocus(self->controller, COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC);
|
|
301
|
+
|
|
302
|
+
// Dispatch pending deep link URL if app was launched with one
|
|
303
|
+
if (zapp_pending_deep_link) {
|
|
304
|
+
char* urlUtf8 = zapp_wide_to_utf8(zapp_pending_deep_link);
|
|
305
|
+
if (urlUtf8) {
|
|
306
|
+
char* escaped = zapp_escape_js_string(urlUtf8);
|
|
307
|
+
size_t jsLen = strlen(escaped) + 256;
|
|
308
|
+
char* js = (char*)malloc(jsLen);
|
|
309
|
+
snprintf(js, jsLen,
|
|
310
|
+
"(function(){var b=globalThis[Symbol.for('zapp.bridge')];"
|
|
311
|
+
"if(b&&b.deliverEvent)b.deliverEvent('app:open-url',{url:'%s'});})();",
|
|
312
|
+
escaped);
|
|
313
|
+
ICoreWebView2_ExecuteScript(sender, zapp_utf8_to_wide(js), NULL);
|
|
314
|
+
free(js);
|
|
315
|
+
free(escaped);
|
|
316
|
+
free(urlUtf8);
|
|
317
|
+
}
|
|
318
|
+
free(zapp_pending_deep_link);
|
|
319
|
+
zapp_pending_deep_link = NULL;
|
|
320
|
+
}
|
|
300
321
|
}
|
|
301
322
|
return S_OK;
|
|
302
323
|
}
|
|
@@ -474,6 +495,13 @@ raw {
|
|
|
474
495
|
char* rel = zapp_url_to_rel_path(uri);
|
|
475
496
|
free(uri);
|
|
476
497
|
|
|
498
|
+
// Block path traversal
|
|
499
|
+
if (rel && strstr(rel, "..") != NULL) {
|
|
500
|
+
zapp_send_resource_response(args, 403, "text/plain", "Forbidden", 9, 0, NULL);
|
|
501
|
+
free(rel);
|
|
502
|
+
return S_OK;
|
|
503
|
+
}
|
|
504
|
+
|
|
477
505
|
char lookupPath[512];
|
|
478
506
|
snprintf(lookupPath, sizeof(lookupPath), "/%s", rel);
|
|
479
507
|
|
|
@@ -596,6 +624,164 @@ raw {
|
|
|
596
624
|
}
|
|
597
625
|
}
|
|
598
626
|
|
|
627
|
+
// Register NavigationStarting handler (URL restriction)
|
|
628
|
+
{
|
|
629
|
+
extern int zapp_build_is_dev_mode(void);
|
|
630
|
+
extern const char* zapp_build_allowed_navigation(void);
|
|
631
|
+
|
|
632
|
+
// Simple URL check — allows app URLs, localhost in dev, and user patterns
|
|
633
|
+
static int zapp_is_nav_allowed(const wchar_t* uri) {
|
|
634
|
+
if (!uri) return 1;
|
|
635
|
+
char* url = zapp_wide_to_utf8(uri);
|
|
636
|
+
if (!url) return 1;
|
|
637
|
+
|
|
638
|
+
// Always allow app scheme
|
|
639
|
+
if (strncmp(url, "https://app.localhost", 20) == 0 ||
|
|
640
|
+
strncmp(url, "about:", 6) == 0 ||
|
|
641
|
+
strncmp(url, "blob:", 5) == 0) {
|
|
642
|
+
free(url);
|
|
643
|
+
return 1;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
// Dev mode: allow localhost
|
|
647
|
+
if (zapp_build_is_dev_mode()) {
|
|
648
|
+
if (strncmp(url, "http://localhost", 16) == 0 ||
|
|
649
|
+
strncmp(url, "http://127.0.0.1", 16) == 0 ||
|
|
650
|
+
strncmp(url, "https://localhost", 17) == 0) {
|
|
651
|
+
free(url);
|
|
652
|
+
return 1;
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
// Check user allowlist
|
|
657
|
+
const char* patternsRaw = zapp_build_allowed_navigation();
|
|
658
|
+
if (patternsRaw && patternsRaw[0] == '[') {
|
|
659
|
+
// Simple JSON array parse — look for string patterns
|
|
660
|
+
const char* p = patternsRaw + 1;
|
|
661
|
+
while (*p) {
|
|
662
|
+
while (*p == ' ' || *p == ',') p++;
|
|
663
|
+
if (*p == ']') break;
|
|
664
|
+
if (*p == '"') {
|
|
665
|
+
p++;
|
|
666
|
+
const char* start = p;
|
|
667
|
+
while (*p && *p != '"') p++;
|
|
668
|
+
size_t plen = (size_t)(p - start);
|
|
669
|
+
if (*p == '"') p++;
|
|
670
|
+
// Check if pattern matches (simple prefix glob)
|
|
671
|
+
if (plen > 0 && start[plen - 1] == '*') {
|
|
672
|
+
if (strncmp(url, start, plen - 1) == 0) {
|
|
673
|
+
free(url);
|
|
674
|
+
return 1;
|
|
675
|
+
}
|
|
676
|
+
} else if (strlen(url) == plen && strncmp(url, start, plen) == 0) {
|
|
677
|
+
free(url);
|
|
678
|
+
return 1;
|
|
679
|
+
}
|
|
680
|
+
} else {
|
|
681
|
+
p++;
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
free(url);
|
|
687
|
+
return 0;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
typedef struct {
|
|
691
|
+
ICoreWebView2NavigationStartingEventHandlerVtbl* lpVtbl;
|
|
692
|
+
ULONG refCount;
|
|
693
|
+
} ZappNavStartHandler;
|
|
694
|
+
|
|
695
|
+
static HRESULT STDMETHODCALLTYPE zns_QI(ICoreWebView2NavigationStartingEventHandler* This, REFIID riid, void** ppv) {
|
|
696
|
+
(void)riid; *ppv = This; This->lpVtbl->AddRef(This); return S_OK;
|
|
697
|
+
}
|
|
698
|
+
static ULONG STDMETHODCALLTYPE zns_AddRef(ICoreWebView2NavigationStartingEventHandler* This) {
|
|
699
|
+
return ++((ZappNavStartHandler*)This)->refCount;
|
|
700
|
+
}
|
|
701
|
+
static ULONG STDMETHODCALLTYPE zns_Release(ICoreWebView2NavigationStartingEventHandler* This) {
|
|
702
|
+
ZappNavStartHandler* self = (ZappNavStartHandler*)This;
|
|
703
|
+
if (--self->refCount == 0) { free(self); return 0; }
|
|
704
|
+
return self->refCount;
|
|
705
|
+
}
|
|
706
|
+
static HRESULT STDMETHODCALLTYPE zns_Invoke(
|
|
707
|
+
ICoreWebView2NavigationStartingEventHandler* This,
|
|
708
|
+
ICoreWebView2* sender,
|
|
709
|
+
ICoreWebView2NavigationStartingEventArgs* args
|
|
710
|
+
) {
|
|
711
|
+
(void)This; (void)sender;
|
|
712
|
+
wchar_t* uriW = NULL;
|
|
713
|
+
ICoreWebView2NavigationStartingEventArgs_get_Uri(args, &uriW);
|
|
714
|
+
if (uriW) {
|
|
715
|
+
if (!zapp_is_nav_allowed(uriW)) {
|
|
716
|
+
ICoreWebView2NavigationStartingEventArgs_put_Cancel(args, TRUE);
|
|
717
|
+
// If user-initiated, open in system browser
|
|
718
|
+
BOOL isUserInitiated = FALSE;
|
|
719
|
+
ICoreWebView2NavigationStartingEventArgs_get_IsUserInitiated(args, &isUserInitiated);
|
|
720
|
+
if (isUserInitiated) {
|
|
721
|
+
ShellExecuteW(NULL, L"open", uriW, NULL, NULL, SW_SHOWNORMAL);
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
CoTaskMemFree(uriW);
|
|
725
|
+
}
|
|
726
|
+
return S_OK;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
static ICoreWebView2NavigationStartingEventHandlerVtbl zns_vtbl = {
|
|
730
|
+
zns_QI, zns_AddRef, zns_Release, zns_Invoke
|
|
731
|
+
};
|
|
732
|
+
|
|
733
|
+
ZappNavStartHandler* nsHandler = (ZappNavStartHandler*)calloc(1, sizeof(ZappNavStartHandler));
|
|
734
|
+
nsHandler->lpVtbl = &zns_vtbl;
|
|
735
|
+
nsHandler->refCount = 1;
|
|
736
|
+
EventRegistrationToken nsToken;
|
|
737
|
+
ICoreWebView2_add_NavigationStarting(webview, (ICoreWebView2NavigationStartingEventHandler*)nsHandler, &nsToken);
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
// Handle target="_blank" — open in system browser instead of new webview window
|
|
741
|
+
{
|
|
742
|
+
typedef struct {
|
|
743
|
+
ICoreWebView2NewWindowRequestedEventHandlerVtbl* lpVtbl;
|
|
744
|
+
ULONG refCount;
|
|
745
|
+
} ZappNewWindowHandler;
|
|
746
|
+
|
|
747
|
+
static HRESULT STDMETHODCALLTYPE znw_QI(ICoreWebView2NewWindowRequestedEventHandler* This, REFIID riid, void** ppv) {
|
|
748
|
+
(void)riid; *ppv = This; This->lpVtbl->AddRef(This); return S_OK;
|
|
749
|
+
}
|
|
750
|
+
static ULONG STDMETHODCALLTYPE znw_AddRef(ICoreWebView2NewWindowRequestedEventHandler* This) {
|
|
751
|
+
return ++((ZappNewWindowHandler*)This)->refCount;
|
|
752
|
+
}
|
|
753
|
+
static ULONG STDMETHODCALLTYPE znw_Release(ICoreWebView2NewWindowRequestedEventHandler* This) {
|
|
754
|
+
ZappNewWindowHandler* self = (ZappNewWindowHandler*)This;
|
|
755
|
+
if (--self->refCount == 0) { free(self); return 0; }
|
|
756
|
+
return self->refCount;
|
|
757
|
+
}
|
|
758
|
+
static HRESULT STDMETHODCALLTYPE znw_Invoke(
|
|
759
|
+
ICoreWebView2NewWindowRequestedEventHandler* This,
|
|
760
|
+
ICoreWebView2* sender,
|
|
761
|
+
ICoreWebView2NewWindowRequestedEventArgs* args
|
|
762
|
+
) {
|
|
763
|
+
(void)This; (void)sender;
|
|
764
|
+
wchar_t* uriW = NULL;
|
|
765
|
+
ICoreWebView2NewWindowRequestedEventArgs_get_Uri(args, &uriW);
|
|
766
|
+
if (uriW) {
|
|
767
|
+
ShellExecuteW(NULL, L"open", uriW, NULL, NULL, SW_SHOWNORMAL);
|
|
768
|
+
CoTaskMemFree(uriW);
|
|
769
|
+
}
|
|
770
|
+
ICoreWebView2NewWindowRequestedEventArgs_put_Handled(args, TRUE);
|
|
771
|
+
return S_OK;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
static ICoreWebView2NewWindowRequestedEventHandlerVtbl znw_vtbl = {
|
|
775
|
+
znw_QI, znw_AddRef, znw_Release, znw_Invoke
|
|
776
|
+
};
|
|
777
|
+
|
|
778
|
+
ZappNewWindowHandler* nwHandler = (ZappNewWindowHandler*)calloc(1, sizeof(ZappNewWindowHandler));
|
|
779
|
+
nwHandler->lpVtbl = &znw_vtbl;
|
|
780
|
+
nwHandler->refCount = 1;
|
|
781
|
+
EventRegistrationToken nwToken;
|
|
782
|
+
ICoreWebView2_add_NewWindowRequested(webview, (ICoreWebView2NewWindowRequestedEventHandler*)nwHandler, &nwToken);
|
|
783
|
+
}
|
|
784
|
+
|
|
599
785
|
// Register NavigationCompleted handler (IsVisible toggle workaround)
|
|
600
786
|
ZappNavHandler* navHandler = (ZappNavHandler*)calloc(1, sizeof(ZappNavHandler));
|
|
601
787
|
navHandler->lpVtbl = &znh_vtbl;
|
|
@@ -1034,6 +1220,262 @@ raw {
|
|
|
1034
1220
|
if (url) free(url);
|
|
1035
1221
|
}
|
|
1036
1222
|
|
|
1223
|
+
// --- Custom Menu Builder ---
|
|
1224
|
+
#define ZAPP_MENU_CMD_CUSTOM_BASE 41000
|
|
1225
|
+
#define ZAPP_MENU_MAX_CUSTOM 256
|
|
1226
|
+
|
|
1227
|
+
static char zapp_menu_id_map[ZAPP_MENU_MAX_CUSTOM][64] = {{0}};
|
|
1228
|
+
static int zapp_menu_custom_count = 0;
|
|
1229
|
+
|
|
1230
|
+
static int zapp_menu_register_id(const char* itemId) {
|
|
1231
|
+
if (!itemId || zapp_menu_custom_count >= ZAPP_MENU_MAX_CUSTOM) return 0;
|
|
1232
|
+
int cmd = ZAPP_MENU_CMD_CUSTOM_BASE + zapp_menu_custom_count;
|
|
1233
|
+
strncpy(zapp_menu_id_map[zapp_menu_custom_count], itemId, 63);
|
|
1234
|
+
zapp_menu_custom_count++;
|
|
1235
|
+
return cmd;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
static const char* zapp_menu_id_for_cmd(int cmd) {
|
|
1239
|
+
int idx = cmd - ZAPP_MENU_CMD_CUSTOM_BASE;
|
|
1240
|
+
if (idx >= 0 && idx < zapp_menu_custom_count) return zapp_menu_id_map[idx];
|
|
1241
|
+
return NULL;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
// Called from zapp_handle_menu_command for custom items
|
|
1245
|
+
void zapp_dispatch_custom_menu_click(const char* itemId) {
|
|
1246
|
+
if (!itemId) return;
|
|
1247
|
+
char js[512];
|
|
1248
|
+
snprintf(js, sizeof(js),
|
|
1249
|
+
"(function(){var b=globalThis[Symbol.for('zapp.bridge')];"
|
|
1250
|
+
"if(b&&b.deliverEvent)b.deliverEvent('menu:%s',{});})();",
|
|
1251
|
+
itemId);
|
|
1252
|
+
zapp_windows_webview_eval_all(js);
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1255
|
+
static void zapp_build_role_menu_win(HMENU menu, const char* role) {
|
|
1256
|
+
if (strcmp(role, "editMenu") == 0) {
|
|
1257
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_UNDO, L"Undo\tCtrl+Z");
|
|
1258
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_REDO, L"Redo\tCtrl+Y");
|
|
1259
|
+
AppendMenuW(menu, MF_SEPARATOR, 0, NULL);
|
|
1260
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_CUT, L"Cut\tCtrl+X");
|
|
1261
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_COPY, L"Copy\tCtrl+C");
|
|
1262
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_PASTE, L"Paste\tCtrl+V");
|
|
1263
|
+
AppendMenuW(menu, MF_SEPARATOR, 0, NULL);
|
|
1264
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_SELECTALL, L"Select All\tCtrl+A");
|
|
1265
|
+
} else if (strcmp(role, "windowMenu") == 0) {
|
|
1266
|
+
AppendMenuW(menu, MF_STRING, IDM_WIN_MINIMIZE, L"Minimize");
|
|
1267
|
+
AppendMenuW(menu, MF_STRING, IDM_WIN_MAXIMIZE, L"Maximize");
|
|
1268
|
+
AppendMenuW(menu, MF_SEPARATOR, 0, NULL);
|
|
1269
|
+
AppendMenuW(menu, MF_STRING, IDM_WIN_CLOSE, L"Close\tAlt+F4");
|
|
1270
|
+
}
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
extern char* zapp_json_get_string(const char* json, const char* key);
|
|
1274
|
+
|
|
1275
|
+
static void zapp_build_menu_items_win(HMENU parent, const char* itemsJson);
|
|
1276
|
+
|
|
1277
|
+
// Parse a JSON array of menu items and build HMENU
|
|
1278
|
+
static void zapp_add_menu_item_win(HMENU menu, const char* itemJson) {
|
|
1279
|
+
if (!itemJson) return;
|
|
1280
|
+
char* role = zapp_json_get_string(itemJson, "role");
|
|
1281
|
+
if (role && role[0]) {
|
|
1282
|
+
// Item-level roles: native edit commands
|
|
1283
|
+
if (strcmp(role, "copy") == 0) {
|
|
1284
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_COPY, L"Copy");
|
|
1285
|
+
free(role); return;
|
|
1286
|
+
} else if (strcmp(role, "cut") == 0) {
|
|
1287
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_CUT, L"Cut");
|
|
1288
|
+
free(role); return;
|
|
1289
|
+
} else if (strcmp(role, "paste") == 0) {
|
|
1290
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_PASTE, L"Paste");
|
|
1291
|
+
free(role); return;
|
|
1292
|
+
} else if (strcmp(role, "selectAll") == 0) {
|
|
1293
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_SELECTALL, L"Select All");
|
|
1294
|
+
free(role); return;
|
|
1295
|
+
} else if (strcmp(role, "undo") == 0) {
|
|
1296
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_UNDO, L"Undo");
|
|
1297
|
+
free(role); return;
|
|
1298
|
+
} else if (strcmp(role, "redo") == 0) {
|
|
1299
|
+
AppendMenuW(menu, MF_STRING, IDM_EDIT_REDO, L"Redo");
|
|
1300
|
+
free(role); return;
|
|
1301
|
+
}
|
|
1302
|
+
// Menu-level roles: create submenu
|
|
1303
|
+
char* label = zapp_json_get_string(itemJson, "label");
|
|
1304
|
+
HMENU sub = CreatePopupMenu();
|
|
1305
|
+
zapp_build_role_menu_win(sub, role);
|
|
1306
|
+
wchar_t wLabel[128] = {0};
|
|
1307
|
+
if (label && label[0]) {
|
|
1308
|
+
MultiByteToWideChar(CP_UTF8, 0, label, -1, wLabel, 128);
|
|
1309
|
+
} else {
|
|
1310
|
+
if (strcmp(role, "editMenu") == 0) wcscpy(wLabel, L"Edit");
|
|
1311
|
+
else if (strcmp(role, "windowMenu") == 0) wcscpy(wLabel, L"Window");
|
|
1312
|
+
else MultiByteToWideChar(CP_UTF8, 0, role, -1, wLabel, 128);
|
|
1313
|
+
}
|
|
1314
|
+
AppendMenuW(menu, MF_POPUP, (UINT_PTR)sub, wLabel);
|
|
1315
|
+
if (label) free(label);
|
|
1316
|
+
free(role);
|
|
1317
|
+
return;
|
|
1318
|
+
}
|
|
1319
|
+
if (role) free(role);
|
|
1320
|
+
|
|
1321
|
+
char* type = zapp_json_get_string(itemJson, "type");
|
|
1322
|
+
if (type && strcmp(type, "separator") == 0) {
|
|
1323
|
+
AppendMenuW(menu, MF_SEPARATOR, 0, NULL);
|
|
1324
|
+
free(type);
|
|
1325
|
+
return;
|
|
1326
|
+
}
|
|
1327
|
+
if (type) free(type);
|
|
1328
|
+
|
|
1329
|
+
char* label = zapp_json_get_string(itemJson, "label");
|
|
1330
|
+
if (!label || !label[0]) { if (label) free(label); return; }
|
|
1331
|
+
|
|
1332
|
+
// Check for submenu (look for "submenu":[)
|
|
1333
|
+
char* subRaw = NULL;
|
|
1334
|
+
{
|
|
1335
|
+
const char* subKey = "\"submenu\":[";
|
|
1336
|
+
const char* subStart = strstr(itemJson, subKey);
|
|
1337
|
+
if (subStart) {
|
|
1338
|
+
subStart += strlen("\"submenu\":");
|
|
1339
|
+
// Find matching ]
|
|
1340
|
+
int depth = 0;
|
|
1341
|
+
const char* p = subStart;
|
|
1342
|
+
const char* end = NULL;
|
|
1343
|
+
while (*p) {
|
|
1344
|
+
if (*p == '[') depth++;
|
|
1345
|
+
else if (*p == ']') { depth--; if (depth == 0) { end = p + 1; break; } }
|
|
1346
|
+
p++;
|
|
1347
|
+
}
|
|
1348
|
+
if (end) {
|
|
1349
|
+
size_t len = (size_t)(end - subStart);
|
|
1350
|
+
subRaw = (char*)malloc(len + 1);
|
|
1351
|
+
memcpy(subRaw, subStart, len);
|
|
1352
|
+
subRaw[len] = '\0';
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
if (subRaw) {
|
|
1358
|
+
HMENU sub = CreatePopupMenu();
|
|
1359
|
+
zapp_build_menu_items_win(sub, subRaw);
|
|
1360
|
+
free(subRaw);
|
|
1361
|
+
// Build label with accelerator hint
|
|
1362
|
+
char* accel = zapp_json_get_string(itemJson, "accelerator");
|
|
1363
|
+
wchar_t wLabel[256] = {0};
|
|
1364
|
+
if (accel && accel[0]) {
|
|
1365
|
+
char combined[256];
|
|
1366
|
+
snprintf(combined, sizeof(combined), "%s\t%s", label, accel);
|
|
1367
|
+
MultiByteToWideChar(CP_UTF8, 0, combined, -1, wLabel, 256);
|
|
1368
|
+
free(accel);
|
|
1369
|
+
} else {
|
|
1370
|
+
MultiByteToWideChar(CP_UTF8, 0, label, -1, wLabel, 256);
|
|
1371
|
+
}
|
|
1372
|
+
AppendMenuW(menu, MF_POPUP, (UINT_PTR)sub, wLabel);
|
|
1373
|
+
free(label);
|
|
1374
|
+
return;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
// Regular item
|
|
1378
|
+
char* itemId = zapp_json_get_string(itemJson, "id");
|
|
1379
|
+
char* accel = zapp_json_get_string(itemJson, "accelerator");
|
|
1380
|
+
int cmd = 0;
|
|
1381
|
+
if (itemId && itemId[0]) {
|
|
1382
|
+
cmd = zapp_menu_register_id(itemId);
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
wchar_t wLabel[256] = {0};
|
|
1386
|
+
if (accel && accel[0]) {
|
|
1387
|
+
char combined[256];
|
|
1388
|
+
snprintf(combined, sizeof(combined), "%s\t%s", label, accel);
|
|
1389
|
+
MultiByteToWideChar(CP_UTF8, 0, combined, -1, wLabel, 256);
|
|
1390
|
+
} else {
|
|
1391
|
+
MultiByteToWideChar(CP_UTF8, 0, label, -1, wLabel, 256);
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
UINT flags = MF_STRING;
|
|
1395
|
+
extern int zapp_json_get_bool(const char* json, const char* key, int default_val);
|
|
1396
|
+
if (!zapp_json_get_bool(itemJson, "enabled", 1)) flags |= MF_GRAYED;
|
|
1397
|
+
if (zapp_json_get_bool(itemJson, "checked", 0)) flags |= MF_CHECKED;
|
|
1398
|
+
|
|
1399
|
+
AppendMenuW(menu, flags, cmd, wLabel);
|
|
1400
|
+
|
|
1401
|
+
if (itemId) free(itemId);
|
|
1402
|
+
if (accel) free(accel);
|
|
1403
|
+
free(label);
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
// Parse "[{...},{...}]" array of menu items
|
|
1407
|
+
static void zapp_build_menu_items_win(HMENU parent, const char* arrJson) {
|
|
1408
|
+
if (!arrJson || arrJson[0] != '[') return;
|
|
1409
|
+
const char* p = arrJson + 1;
|
|
1410
|
+
while (*p) {
|
|
1411
|
+
while (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t' || *p == ',') p++;
|
|
1412
|
+
if (*p == ']' || *p == '\0') break;
|
|
1413
|
+
if (*p == '{') {
|
|
1414
|
+
int depth = 0;
|
|
1415
|
+
const char* start = p;
|
|
1416
|
+
while (*p) {
|
|
1417
|
+
if (*p == '{') depth++;
|
|
1418
|
+
else if (*p == '}') { depth--; if (depth == 0) { p++; break; } }
|
|
1419
|
+
p++;
|
|
1420
|
+
}
|
|
1421
|
+
size_t len = (size_t)(p - start);
|
|
1422
|
+
char* item = (char*)malloc(len + 1);
|
|
1423
|
+
memcpy(item, start, len);
|
|
1424
|
+
item[len] = '\0';
|
|
1425
|
+
zapp_add_menu_item_win(parent, item);
|
|
1426
|
+
free(item);
|
|
1427
|
+
} else {
|
|
1428
|
+
p++;
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
void app_set_menu(App* app, char* payload) {
|
|
1434
|
+
(void)app;
|
|
1435
|
+
if (payload == NULL) return;
|
|
1436
|
+
// Reset custom ID registry
|
|
1437
|
+
zapp_menu_custom_count = 0;
|
|
1438
|
+
memset(zapp_menu_id_map, 0, sizeof(zapp_menu_id_map));
|
|
1439
|
+
|
|
1440
|
+
// Find "items":[ in the payload
|
|
1441
|
+
const char* itemsKey = "\"items\":[";
|
|
1442
|
+
const char* itemsStart = strstr((const char*)payload, itemsKey);
|
|
1443
|
+
if (!itemsStart) return;
|
|
1444
|
+
itemsStart += strlen("\"items\":");
|
|
1445
|
+
|
|
1446
|
+
// Find the matching ]
|
|
1447
|
+
int depth = 0;
|
|
1448
|
+
const char* p = itemsStart;
|
|
1449
|
+
const char* end = NULL;
|
|
1450
|
+
while (*p) {
|
|
1451
|
+
if (*p == '[') depth++;
|
|
1452
|
+
else if (*p == ']') { depth--; if (depth == 0) { end = p + 1; break; } }
|
|
1453
|
+
p++;
|
|
1454
|
+
}
|
|
1455
|
+
if (!end) return;
|
|
1456
|
+
|
|
1457
|
+
size_t len = (size_t)(end - itemsStart);
|
|
1458
|
+
char* arrJson = (char*)malloc(len + 1);
|
|
1459
|
+
memcpy(arrJson, itemsStart, len);
|
|
1460
|
+
arrJson[len] = '\0';
|
|
1461
|
+
|
|
1462
|
+
HMENU menuBar = CreateMenu();
|
|
1463
|
+
zapp_build_menu_items_win(menuBar, arrJson);
|
|
1464
|
+
free(arrJson);
|
|
1465
|
+
|
|
1466
|
+
// Apply to all windows
|
|
1467
|
+
extern const wchar_t* ZAPP_WINDOW_CLASS;
|
|
1468
|
+
HWND hwnd = NULL;
|
|
1469
|
+
while ((hwnd = FindWindowExW(NULL, hwnd, ZAPP_WINDOW_CLASS, NULL)) != NULL) {
|
|
1470
|
+
SetMenu(hwnd, menuBar);
|
|
1471
|
+
DrawMenuBar(hwnd);
|
|
1472
|
+
}
|
|
1473
|
+
if (zapp_default_menu) {
|
|
1474
|
+
// Don't destroy old menu — windows might reference it
|
|
1475
|
+
}
|
|
1476
|
+
zapp_default_menu = menuBar;
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1037
1479
|
// --- Sync bridge (moved from app.zc) ---
|
|
1038
1480
|
#define ZAPP_MAX_SYNC_WAITS 256
|
|
1039
1481
|
#define ZAPP_SYNC_TIMER_MAP_SIZE 512
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// AUTO-GENERATED FILE. DO NOT EDIT.
|
|
2
2
|
// Source of truth: `packages/bootstrap/src/webview_windows.ts`
|
|
3
|
-
// Generated: `2026-03-
|
|
3
|
+
// Generated: `2026-03-23T03:23:37.948Z`
|
|
4
4
|
|
|
5
5
|
raw {
|
|
6
6
|
const char* zapp_windows_webview_bootstrap_script(void) {
|
|
7
|
-
return "(()=>{var{defineProperty:S,getOwnPropertyNames:s,getOwnPropertyDescriptor:o}=Object,d=Object.prototype.hasOwnProperty;var k=new WeakMap,n=(H)=>{var Q=k.get(H),$;if(Q)return Q;if(Q=S({},\"__esModule\",{value:!0}),H&&typeof H===\"object\"||typeof H===\"function\")s(H).map((K)=>!d.call(Q,K)&&S(Q,K,{get:()=>H[K],enumerable:!($=o(H,K))||$.enumerable}));return k.set(H,Q),Q};var GH={},j=globalThis,h=j.__zapp,L=h&&typeof h===\"object\"?h:{},v=()=>{if(j.__zapp===L)return;j.__zapp=L;try{Object.defineProperty(j,\"__zapp\",{value:L,enumerable:!0,configurable:!1,writable:!1})}catch{}},w=Symbol.for(\"zapp.bridge\"),R=Symbol.for(\"zapp.bootstrapConfig\"),I=Symbol.for(\"zapp.ownerId\"),f=j,P=(H)=>{let Q=f[w]?\?{},$=Object.assign({},Q,H);Object.defineProperty(f,w,{value:$,enumerable:!1,configurable:!0,writable:!1})},X={},Y={},_=0;P({_listeners:Y,_lastId:_});var D=X.__ctxId?\?=`ctx-${Date.now()}-${Math.random().toString(36).slice(2)}`,M=X.__pendingInvokes=X.__pendingInvokes?\?{},E=X.__pendingSyncWaits=X.__pendingSyncWaits?\?{},c=X.__invokeSeq?\?0,u=1,a=131072,y=f[R]==null?null:{name:f[R].name,applicationShouldTerminateAfterLastWindowClosed:f[R].applicationShouldTerminateAfterLastWindowClosed,webContentInspectable:f[R].webContentInspectable,maxWorkers:f[R].maxWorkers};try{delete f[R]}catch{}var l=(H)=>typeof H===\"string\"?H:JSON.stringify(H?\?{}),T=(H,Q,$)=>{v();let K=j.chrome?.webview;if(!K?.postMessage)return!1;return K.postMessage(`${H}\n${Q}\n${l($)}`),!0};X.invoke=(H,Q)=>new Promise(($,K)=>{let J=typeof H===\"string\"?H.trim():\"\";if(!J){K(Error(\"Service method must be a non-empty string.\"));return}if(l(Q).length>a){K(Error(\"Service payload exceeds max size.\"));return}let G=`${D}:inv-${++c}`;X.__invokeSeq=c;let x={v:u,id:G,method:J,args:Q,meta:{sourceCtxId:D}},F=setTimeout(()=>{delete M[G],K(Error(\"Service invocation timed out.\"))},15000);if(M[G]={resolve:$,reject:K,timeout:F},!T(\"invoke_rpc\",J,x))clearTimeout(F),delete M[G],K(Error(\"Native invoke transport unavailable.\"))});var b=()=>{let H=Error(\"Sync wait aborted.\");return H.name=\"AbortError\",H};X.syncWait=(H,Q=30000,$)=>new Promise((K,J)=>{let V=typeof H===\"string\"?H.trim():\"\";if(!V){J(Error(\"Sync key must be a non-empty string.\"));return}if($?.aborted){J(b());return}let G=`${D}:sync-${Date.now()}-${Math.random().toString(36).slice(2)}`,x=Q==null||Number.isNaN(Number(Q))?null:Math.floor(Number(Q)),F=x==null?null:Math.max(1,Math.min(300000,x)),z={id:G,key:V,timeoutMs:F,meta:{sourceCtxId:D}},Z=F==null?void 0:setTimeout(()=>{delete E[G],J(Error(\"Sync wait transport timed out.\"))},F+5000);if(E[G]={resolve:K,reject:J,timeout:Z},!T(\"sync\",\"wait\",z)){if(Z)clearTimeout(Z);delete E[G],J(Error(\"Native sync transport unavailable.\"));return}if($){let C=()=>{let A=E[G];if(!A)return;if(A.timeout)clearTimeout(A.timeout);delete E[G],T(\"sync\",\"cancel\",{id:G,meta:{sourceCtxId:D}}),J(b())};$.addEventListener(\"abort\",C,{once:!0})}});X.syncNotify=(H,Q=1)=>{let $=typeof H===\"string\"?H.trim():\"\";if(!$)return!1;let K=Math.max(1,Math.min(65535,Math.floor(Q)));return T(\"sync\",\"notify\",{key:$,count:K,meta:{sourceCtxId:D}})};X.syncCancel=(H)=>{let Q=typeof H===\"string\"?H.trim():\"\";if(!Q)return!1;return T(\"sync\",\"cancel\",{id:Q,meta:{sourceCtxId:D}})};X.emit=(H,Q)=>T(\"emit\",H,{__zapp_internal_meta:{sourceCtxId:D},data:Q});X.onEvent=(H,Q)=>{let $=++_;return(Y[H]?\?=[]).push({id:$,fn:Q}),$};X.offEvent=(H,Q)=>{let $=Y[H]?\?[];Y[H]=$.filter((K)=>K.id!==Q)};X.onceEvent=(H,Q)=>{let $=++_;return(Y[H]?\?=[]).push({id:$,fn:Q,once:!0}),$};X.offAllEvents=(H)=>{if(H)delete Y[H];else Object.keys(Y).forEach((Q)=>delete Y[Q])};var t=(H)=>{let Q=H.pathname.split(\".\").pop()?.toLowerCase();if(Q!==\"ts\"&&Q!==\"tsx\")return H.toString();let $=(Z)=>{let U=Z.startsWith(\"/\")?Z:`/${Z}`;if(H.protocol===\"zapp:\")return`zapp://app${U}`;return new URL(U,H).toString()},K=f[Symbol.for(\"zapp.workerManifest\")],J=H.pathname.split(\"/\").pop()?\?\"worker.ts\",V=`./${J}`;if(K){let Z=K[V]?\?K[J];if(typeof Z===\"string\"&&Z.length>0)return $(Z)}let G=H.pathname.split(\"/\"),z=`/zapp-workers/${(G[G.length-1]?\?\"worker.ts\").replace(/\\.[^.]+$/,\"\")}.mjs`;return $(z)},r=(H)=>H instanceof URL?t(H):H;if(!X.workerBridge){let H={},Q=0,$=f[I],K=typeof $===\"string\"&&$.length>0?$:`owner-${Date.now()}-${Math.random().toString(36).slice(2)}`;try{delete f[I]}catch{}let J=[],V=(F)=>{return H[F]?\?={message:[],error:[],close:[]},H[F]},G=(F,z,Z)=>{let U=(W)=>{queueMicrotask(W)};if(F===\"close\"){let W=H[z];U(()=>{if(W)for(let i of W.close)try{i(Z)}catch{}X.workerBridge?.terminateWorker(z)});return}let C=H[z];if(!C)return;let A=Z;if(typeof Z===\"string\")try{A=JSON.parse(Z)}catch{}let N=F===\"error\"?C.error:C.message;U(()=>{for(let W of N)try{W(A)}catch{}})};X.__workerBridgeDispatch=G,P({dispatchWorkerBridge:G}),X.workerBridge={createWorker(F,z){let Z=Boolean(z?.shared),U=`${K}:${D}:zw-${++Q}`;return V(U),J.push(U),T(\"worker\",\"create\",{id:U,scriptUrl:F,ownerId:K,shared:Z}),U},postToWorker(F,z){T(\"worker\",\"post\",{id:F,data:z,ownerId:K})},terminateWorker(F){T(\"worker\",\"terminate\",{id:F,ownerId:K}),J=J.filter((z)=>z!==F),delete H[F]},subscribe(F,z,Z,U){let C=V(F);if(z)C.message.push(z);if(Z)C.error.push(Z);if(U)C.close.push(U);return()=>{let A=H[F];if(!A)return;if(z)A.message=A.message.filter((N)=>N!==z);if(Z)A.error=A.error.filter((N)=>N!==Z);if(U)A.close=A.close.filter((N)=>N!==U)}}};let x=()=>{if(!J.length)return;T(\"worker\",\"reset_owner\",{ownerId:K}),J=[];for(let F of Object.keys(H))delete H[F]};P({resetOwnerWorkers:x,createWorker:X.workerBridge.createWorker.bind(X.workerBridge),postToWorker:X.workerBridge.postToWorker.bind(X.workerBridge),terminateWorker:X.workerBridge.terminateWorker.bind(X.workerBridge),subscribeWorker:X.workerBridge.subscribe.bind(X.workerBridge),resolveWorkerScriptURL:r}),j.addEventListener(\"beforeunload\",x),j.addEventListener(\"pagehide\",x)}var q={},e=0,HH=(H)=>new Promise((Q,$)=>{let K=`${D}:win-${++e}`,J=setTimeout(()=>{delete q[K],$(Error(\"Window creation timed out.\"))},15000);q[K]={resolve:Q,reject:$,timeout:J},T(\"window\",\"create\",{requestId:K,options:H})}),QH=(H,Q,$)=>{T(\"window\",Q,{windowId:H,...$})},$H=(H,Q)=>{T(\"app\",H,Q?\?{})},KH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.requestId!==\"string\")return;let K=q[$.requestId];if(!K)return;if(clearTimeout(K.timeout),delete q[$.requestId],$.ok===!1)K.reject(Error($.error?\?\"Window creation failed.\"));else K.resolve({id:$.id?\?\"\"})},p=(H,Q,$)=>{v();let K={windowId:H,timestamp:Date.now()};if($)try{let V=JSON.parse($);if(V.width||V.height)K.size={width:V.width?\?0,height:V.height?\?0};if(V.x!==void 0||V.y!==void 0)K.position={x:V.x?\?0,y:V.y?\?0}}catch{}let J=(V)=>{let G=Y[V];if(!G||G.length===0)return;let x=[];for(let F of G){try{F.fn(K)}catch{}if(!F.once)x.push(F)}if(x.length>0)Y[V]=x;else delete Y[V]};J(`__zapp_window:${H}:${Q}`),J(`window:${Q}`)};P({windowCreate:HH,windowAction:QH,appAction:$H,dispatchWindowResult:KH,dispatchWindowEvent:p,_emit:X.emit,_onEvent:X.onEvent,_onceEvent:X.onceEvent,_offEvent:X.offEvent,_offAllEvents:X.offAllEvents});L.invoke=X.invoke;L.emit=X.emit;L.on=(H,Q)=>{let $=X.onEvent?.(H,Q)?\?0;return()=>X.offEvent?.(H,$)};var XH=(H,Q)=>{v();let $=Q;if(typeof Q===\"string\"){let V=Q.trim();if(V.startsWith(\"{\")&&V.endsWith(\"}\")||V.startsWith(\"[\")&&V.endsWith(\"]\"))try{$=JSON.parse(Q)}catch{}}if($&&typeof $===\"object\"){let V=$;if(V.__zapp_internal_meta?.sourceCtxId===D)return;if(Object.prototype.hasOwnProperty.call(V,\"data\"))$=V.data}let K=Y[H]?\?[],J=[];for(let V of K){try{V.fn($)}catch{}if(!V.once)J.push(V)}if(J.length>0)Y[H]=J;else delete Y[H]},JH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.id!==\"string\"||$.id.length===0)return;let K=M[$.id];if(!K)return;if(clearTimeout(K.timeout),delete M[$.id],$.ok){K.resolve($.result);return}let J=$.error?.code?\?\"INTERNAL_ERROR\",V=$.error?.message?\?\"Service invocation failed\";K.reject(Error(`${J}: ${V}`))},VH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.id!==\"string\"||$.id.length===0)return;let K=E[$.id];if(!K)return;if(K.timeout)clearTimeout(K.timeout);if(delete E[$.id],!$.ok){K.reject(Error(\"Sync wait failed.\"));return}if($.status===\"cancelled\"){K.reject(b());return}K.resolve($.status===\"timed-out\"?\"timed-out\":\"notified\")},FH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.requestId!==\"string\")return;let K=`__zapp:dialog:${$.requestId}`,J=Y[K];if(J){for(let V of J)try{V.fn($)}catch{}delete Y[K]}};P({dispatchInvokeResult:JH,dispatchSyncResult:VH,dispatchDialogResult:FH,deliverEvent:XH,getConfig:()=>y==null?null:{...y},invoke:async(H)=>{let Q=H;if(!Q||typeof Q!==\"object\")throw Error(\"Invalid invoke request\");if(typeof Q.method!==\"string\")throw Error(\"Invalid service method\");let $=await X.invoke?.(Q.method,Q.args);return{v:u,id:Q.id,ok:!0,result:$}},getServiceBindings:()=>{let H=f[Symbol.for(\"zapp.bindingsManifest\")];if(typeof H!==\"string\")return null;return H},syncWait:async(H)=>{let Q=H;return X.syncWait?.(Q?.key?\?\"\",Q?.timeoutMs===void 0?30000:Q.timeoutMs,Q?.signal)?\?Promise.reject(Error(\"Sync unavailable\"))},syncNotify:(H)=>{let Q=H;return X.syncNotify?.(Q?.key?\?\"\",Q?.count?\?1)?\?!1},syncCancel:(H)=>{let Q=H;return X.syncCancel?.(Q?.id?\?\"\")?\?!1}});Object.defineProperties(L,{invoke:{value:X.invoke,enumerable:!0,configurable:!1,writable:!1},syncWait:{value:X.syncWait,enumerable:!0,configurable:!1,writable:!1},syncNotify:{value:X.syncNotify,enumerable:!0,configurable:!1,writable:!1},syncCancel:{value:X.syncCancel,enumerable:!0,configurable:!1,writable:!1},emit:{value:X.emit,enumerable:!0,configurable:!1,writable:!1},on:{value:L.on,enumerable:!0,configurable:!1,writable:!1}});Object.freeze(L);v();var O=Symbol.for(\"zapp.windowId\"),g=Symbol.for(\"zapp.windowReady\"),B=j,m=()=>{if(B[g])return;B[g]=!0;let H=B[O],Q=j.chrome?.webview;if(Q?.postMessage){let $=JSON.stringify({windowId:H?\?\"unknown\"});Q.postMessage(`window\nready\n${$}`)}p(H?\?\"unknown\",\"ready\")};if(typeof document<\"u\"){if(document.addEventListener(\"DOMContentLoaded\",m,{once:!0}),document.readyState!==\"loading\")m();document.addEventListener(\"mousedown\",(Q)=>{let $=Q.target;while($){if($.hasAttribute?.(\"data-zapp-drag-region\")){Q.preventDefault(),T(\"window\",\"startDrag\",{windowId:B[O]?\?\"unknown\"});return}let K=$.tagName;if(K===\"BUTTON\"||K===\"INPUT\"||K===\"SELECT\"||K===\"TEXTAREA\"||K===\"A\")return;$=$.parentElement}});let H=!1;document.addEventListener(\"mousemove\",(Q)=>{let $=Q.target,K=!1;while($){if($.hasAttribute?.(\"data-zapp-drag-region\")){K=!0;break}let J=$.tagName;if(J===\"BUTTON\"||J===\"INPUT\"||J===\"SELECT\"||J===\"TEXTAREA\"||J===\"A\")break;$=$.parentElement}if(K!==H)H=K,T(\"window\",\"setDragRegion\",{windowId:B[O]?\?\"unknown\",drag:K})})}})();\n";
|
|
7
|
+
return "(()=>{var{defineProperty:S,getOwnPropertyNames:o,getOwnPropertyDescriptor:s}=Object,d=Object.prototype.hasOwnProperty;var w=new WeakMap,n=(H)=>{var Q=w.get(H),$;if(Q)return Q;if(Q=S({},\"__esModule\",{value:!0}),H&&typeof H===\"object\"||typeof H===\"function\")o(H).map((K)=>!d.call(Q,K)&&S(Q,K,{get:()=>H[K],enumerable:!($=s(H,K))||$.enumerable}));return w.set(H,Q),Q};var GH={},L=globalThis,h=L.__zapp,j=h&&typeof h===\"object\"?h:{},P=()=>{if(L.__zapp===j)return;L.__zapp=j;try{Object.defineProperty(L,\"__zapp\",{value:j,enumerable:!0,configurable:!1,writable:!1})}catch{}},I=Symbol.for(\"zapp.bridge\"),R=Symbol.for(\"zapp.bootstrapConfig\"),c=Symbol.for(\"zapp.ownerId\"),D=L,q=(H)=>{let Q=D[I]?\?{},$=Object.assign({},Q,H);Object.defineProperty(D,I,{value:$,enumerable:!1,configurable:!0,writable:!1})},X={},Y={},k=0;q({_listeners:Y,_lastId:k});var f=X.__ctxId?\?=`ctx-${Date.now()}-${Math.random().toString(36).slice(2)}`,M=X.__pendingInvokes=X.__pendingInvokes?\?{},W=X.__pendingSyncWaits=X.__pendingSyncWaits?\?{},y=X.__invokeSeq?\?0,u=1,a=131072,b=D[R]==null?null:{name:D[R].name,applicationShouldTerminateAfterLastWindowClosed:D[R].applicationShouldTerminateAfterLastWindowClosed,webContentInspectable:D[R].webContentInspectable,maxWorkers:D[R].maxWorkers};try{delete D[R]}catch{}var l=(H)=>typeof H===\"string\"?H:JSON.stringify(H?\?{}),T=(H,Q,$)=>{P();let K=L.chrome?.webview;if(!K?.postMessage)return!1;return K.postMessage(`${H}\n${Q}\n${l($)}`),!0};X.invoke=(H,Q)=>new Promise(($,K)=>{let J=typeof H===\"string\"?H.trim():\"\";if(!J){K(Error(\"Service method must be a non-empty string.\"));return}if(l(Q).length>a){K(Error(\"Service payload exceeds max size.\"));return}let G=`${f}:inv-${++y}`;X.__invokeSeq=y;let x={v:u,id:G,method:J,args:Q,meta:{sourceCtxId:f}},F=setTimeout(()=>{delete M[G],K(Error(\"Service invocation timed out.\"))},15000);if(M[G]={resolve:$,reject:K,timeout:F},!T(\"invoke_rpc\",J,x))clearTimeout(F),delete M[G],K(Error(\"Native invoke transport unavailable.\"))});var O=()=>{let H=Error(\"Sync wait aborted.\");return H.name=\"AbortError\",H};X.syncWait=(H,Q=30000,$)=>new Promise((K,J)=>{let V=typeof H===\"string\"?H.trim():\"\";if(!V){J(Error(\"Sync key must be a non-empty string.\"));return}if($?.aborted){J(O());return}let G=`${f}:sync-${Date.now()}-${Math.random().toString(36).slice(2)}`,x=Q==null||Number.isNaN(Number(Q))?null:Math.floor(Number(Q)),F=x==null?null:Math.max(1,Math.min(300000,x)),z={id:G,key:V,timeoutMs:F,meta:{sourceCtxId:f}},Z=F==null?void 0:setTimeout(()=>{delete W[G],J(Error(\"Sync wait transport timed out.\"))},F+5000);if(W[G]={resolve:K,reject:J,timeout:Z},!T(\"sync\",\"wait\",z)){if(Z)clearTimeout(Z);delete W[G],J(Error(\"Native sync transport unavailable.\"));return}if($){let N=()=>{let A=W[G];if(!A)return;if(A.timeout)clearTimeout(A.timeout);delete W[G],T(\"sync\",\"cancel\",{id:G,meta:{sourceCtxId:f}}),J(O())};$.addEventListener(\"abort\",N,{once:!0})}});X.syncNotify=(H,Q=1)=>{let $=typeof H===\"string\"?H.trim():\"\";if(!$)return!1;let K=Math.max(1,Math.min(65535,Math.floor(Q)));return T(\"sync\",\"notify\",{key:$,count:K,meta:{sourceCtxId:f}})};X.syncCancel=(H)=>{let Q=typeof H===\"string\"?H.trim():\"\";if(!Q)return!1;return T(\"sync\",\"cancel\",{id:Q,meta:{sourceCtxId:f}})};X.emit=(H,Q)=>T(\"emit\",H,{__zapp_internal_meta:{sourceCtxId:f},data:Q});X.onEvent=(H,Q)=>{let $=++k;return(Y[H]?\?=[]).push({id:$,fn:Q}),$};X.offEvent=(H,Q)=>{let $=Y[H]?\?[];Y[H]=$.filter((K)=>K.id!==Q)};X.onceEvent=(H,Q)=>{let $=++k;return(Y[H]?\?=[]).push({id:$,fn:Q,once:!0}),$};X.offAllEvents=(H)=>{if(H)delete Y[H];else Object.keys(Y).forEach((Q)=>delete Y[Q])};var t=(H)=>{let Q=H.pathname.split(\".\").pop()?.toLowerCase();if(Q!==\"ts\"&&Q!==\"tsx\")return H.toString();let $=(Z)=>{let U=Z.startsWith(\"/\")?Z:`/${Z}`;if(H.protocol===\"zapp:\")return`zapp://app${U}`;return new URL(U,H).toString()},K=D[Symbol.for(\"zapp.workerManifest\")],J=H.pathname.split(\"/\").pop()?\?\"worker.ts\",V=`./${J}`;if(K){let Z=K[V]?\?K[J];if(typeof Z===\"string\"&&Z.length>0)return $(Z)}let G=H.pathname.split(\"/\"),z=`/zapp-workers/${(G[G.length-1]?\?\"worker.ts\").replace(/\\.[^.]+$/,\"\")}.mjs`;return $(z)},r=(H)=>H instanceof URL?t(H):H;if(!X.workerBridge){let H={},Q=0,$=D[c],K=typeof $===\"string\"&&$.length>0?$:`owner-${Date.now()}-${Math.random().toString(36).slice(2)}`;try{delete D[c]}catch{}let J=[],V=(F)=>{return H[F]?\?={message:[],error:[],close:[]},H[F]},G=(F,z,Z)=>{let U=(C)=>{queueMicrotask(C)};if(F===\"close\"){let C=H[z];U(()=>{if(C)for(let i of C.close)try{i(Z)}catch{}X.workerBridge?.terminateWorker(z)});return}let N=H[z];if(!N)return;let A=Z;if(typeof Z===\"string\")try{A=JSON.parse(Z)}catch{}let E=F===\"error\"?N.error:N.message;U(()=>{for(let C of E)try{C(A)}catch{}})};X.__workerBridgeDispatch=G,q({dispatchWorkerBridge:G}),X.workerBridge={createWorker(F,z){let Z=Boolean(z?.shared),U=`${K}:${f}:zw-${++Q}`;return V(U),J.push(U),T(\"worker\",\"create\",{id:U,scriptUrl:F,ownerId:K,shared:Z}),U},postToWorker(F,z){T(\"worker\",\"post\",{id:F,data:z,ownerId:K})},terminateWorker(F){T(\"worker\",\"terminate\",{id:F,ownerId:K}),J=J.filter((z)=>z!==F),delete H[F]},subscribe(F,z,Z,U){let N=V(F);if(z)N.message.push(z);if(Z)N.error.push(Z);if(U)N.close.push(U);return()=>{let A=H[F];if(!A)return;if(z)A.message=A.message.filter((E)=>E!==z);if(Z)A.error=A.error.filter((E)=>E!==Z);if(U)A.close=A.close.filter((E)=>E!==U)}}};let x=()=>{if(!J.length)return;T(\"worker\",\"reset_owner\",{ownerId:K}),J=[];for(let F of Object.keys(H))delete H[F]};q({resetOwnerWorkers:x,createWorker:X.workerBridge.createWorker.bind(X.workerBridge),postToWorker:X.workerBridge.postToWorker.bind(X.workerBridge),terminateWorker:X.workerBridge.terminateWorker.bind(X.workerBridge),subscribeWorker:X.workerBridge.subscribe.bind(X.workerBridge),resolveWorkerScriptURL:r}),L.addEventListener(\"beforeunload\",x),L.addEventListener(\"pagehide\",x)}var v={},e=0,HH=(H)=>new Promise((Q,$)=>{let K=`${f}:win-${++e}`,J=setTimeout(()=>{delete v[K],$(Error(\"Window creation timed out.\"))},15000);v[K]={resolve:Q,reject:$,timeout:J},T(\"window\",\"create\",{requestId:K,options:H})}),QH=(H,Q,$)=>{T(\"window\",Q,{windowId:H,...$})},$H=(H,Q)=>{T(\"app\",H,Q?\?{})},KH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.requestId!==\"string\")return;let K=v[$.requestId];if(!K)return;if(clearTimeout(K.timeout),delete v[$.requestId],$.ok===!1)K.reject(Error($.error?\?\"Window creation failed.\"));else K.resolve({id:$.id?\?\"\"})},p=(H,Q,$)=>{P();let K={windowId:H,timestamp:Date.now()};if($)try{let V=JSON.parse($);if(V.width||V.height)K.size={width:V.width?\?0,height:V.height?\?0};if(V.x!==void 0||V.y!==void 0)K.position={x:V.x?\?0,y:V.y?\?0}}catch{}let J=(V)=>{let G=Y[V];if(!G||G.length===0)return;let x=[];for(let F of G){try{F.fn(K)}catch{}if(!F.once)x.push(F)}if(x.length>0)Y[V]=x;else delete Y[V]};J(`__zapp_window:${H}:${Q}`),J(`window:${Q}`)};q({windowCreate:HH,windowAction:QH,appAction:$H,dispatchWindowResult:KH,dispatchWindowEvent:p,_emit:X.emit,_onEvent:X.onEvent,_onceEvent:X.onceEvent,_offEvent:X.offEvent,_offAllEvents:X.offAllEvents});j.invoke=X.invoke;j.emit=X.emit;j.on=(H,Q)=>{let $=X.onEvent?.(H,Q)?\?0;return()=>X.offEvent?.(H,$)};var XH=(H,Q)=>{P();let $=Q;if(typeof Q===\"string\"){let V=Q.trim();if(V.startsWith(\"{\")&&V.endsWith(\"}\")||V.startsWith(\"[\")&&V.endsWith(\"]\"))try{$=JSON.parse(Q)}catch{}}if($&&typeof $===\"object\"){let V=$;if(V.__zapp_internal_meta?.sourceCtxId===f)return;if(Object.prototype.hasOwnProperty.call(V,\"data\"))$=V.data}let K=Y[H]?\?[],J=[];for(let V of K){try{V.fn($)}catch{}if(!V.once)J.push(V)}if(J.length>0)Y[H]=J;else delete Y[H]},JH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.id!==\"string\"||$.id.length===0)return;let K=M[$.id];if(!K)return;if(clearTimeout(K.timeout),delete M[$.id],$.ok){K.resolve($.result);return}let J=$.error?.code?\?\"INTERNAL_ERROR\",V=$.error?.message?\?\"Service invocation failed\";K.reject(Error(`${J}: ${V}`))},VH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.id!==\"string\"||$.id.length===0)return;let K=W[$.id];if(!K)return;if(K.timeout)clearTimeout(K.timeout);if(delete W[$.id],!$.ok){K.reject(Error(\"Sync wait failed.\"));return}if($.status===\"cancelled\"){K.reject(O());return}K.resolve($.status===\"timed-out\"?\"timed-out\":\"notified\")},FH=(H)=>{let Q=H;if(typeof H===\"string\")try{Q=JSON.parse(H)}catch{return}if(!Q||typeof Q!==\"object\")return;let $=Q;if(typeof $.requestId!==\"string\")return;let K=`__zapp:dialog:${$.requestId}`,J=Y[K];if(J){for(let V of J)try{V.fn($)}catch{}delete Y[K]}};q({dispatchInvokeResult:JH,dispatchSyncResult:VH,dispatchDialogResult:FH,deliverEvent:XH,getConfig:()=>b==null?null:{...b},invoke:async(H)=>{let Q=H;if(!Q||typeof Q!==\"object\")throw Error(\"Invalid invoke request\");if(typeof Q.method!==\"string\")throw Error(\"Invalid service method\");let $=await X.invoke?.(Q.method,Q.args);return{v:u,id:Q.id,ok:!0,result:$}},getServiceBindings:()=>{let H=D[Symbol.for(\"zapp.bindingsManifest\")];if(typeof H!==\"string\")return null;return H},syncWait:async(H)=>{let Q=H;return X.syncWait?.(Q?.key?\?\"\",Q?.timeoutMs===void 0?30000:Q.timeoutMs,Q?.signal)?\?Promise.reject(Error(\"Sync unavailable\"))},syncNotify:(H)=>{let Q=H;return X.syncNotify?.(Q?.key?\?\"\",Q?.count?\?1)?\?!1},syncCancel:(H)=>{let Q=H;return X.syncCancel?.(Q?.id?\?\"\")?\?!1}});Object.defineProperties(j,{invoke:{value:X.invoke,enumerable:!0,configurable:!1,writable:!1},syncWait:{value:X.syncWait,enumerable:!0,configurable:!1,writable:!1},syncNotify:{value:X.syncNotify,enumerable:!0,configurable:!1,writable:!1},syncCancel:{value:X.syncCancel,enumerable:!0,configurable:!1,writable:!1},emit:{value:X.emit,enumerable:!0,configurable:!1,writable:!1},on:{value:j.on,enumerable:!0,configurable:!1,writable:!1}});Object.freeze(j);if(typeof document<\"u\"){let H=()=>{if(!document.head)return;let Q=document.createElement(\"meta\");Q.httpEquiv=\"Content-Security-Policy\";let K=b?.csp;Q.content=K||\"default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:;\",document.head.insertBefore(Q,document.head.firstChild)};if(document.head)H();else document.addEventListener(\"DOMContentLoaded\",H,{once:!0})}P();var _=Symbol.for(\"zapp.windowId\"),g=Symbol.for(\"zapp.windowReady\"),B=L,m=()=>{if(B[g])return;B[g]=!0;let H=B[_],Q=L.chrome?.webview;if(Q?.postMessage){let $=JSON.stringify({windowId:H?\?\"unknown\"});Q.postMessage(`window\nready\n${$}`)}p(H?\?\"unknown\",\"ready\")};if(typeof document<\"u\"){if(document.addEventListener(\"DOMContentLoaded\",m,{once:!0}),document.readyState!==\"loading\")m();document.addEventListener(\"mousedown\",(Q)=>{let $=Q.target;while($){if($.hasAttribute?.(\"data-zapp-drag-region\")){Q.preventDefault(),T(\"window\",\"startDrag\",{windowId:B[_]?\?\"unknown\"});return}let K=$.tagName;if(K===\"BUTTON\"||K===\"INPUT\"||K===\"SELECT\"||K===\"TEXTAREA\"||K===\"A\")return;$=$.parentElement}});let H=!1;document.addEventListener(\"mousemove\",(Q)=>{let $=Q.target,K=!1;while($){if($.hasAttribute?.(\"data-zapp-drag-region\")){K=!0;break}let J=$.tagName;if(J===\"BUTTON\"||J===\"INPUT\"||J===\"SELECT\"||J===\"TEXTAREA\"||J===\"A\")break;$=$.parentElement}if(K!==H)H=K,T(\"window\",\"setDragRegion\",{windowId:B[_]?\?\"unknown\",drag:K})})}})();\n";
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -597,6 +597,37 @@ raw {
|
|
|
597
597
|
HWND hwnd = zapp_win_lookup(windowId);
|
|
598
598
|
if (!hwnd || !IsWindow(hwnd)) { free(windowId); return; }
|
|
599
599
|
|
|
600
|
+
if (strcmp(action, "showContextMenu") == 0) {
|
|
601
|
+
const char* itemsKey = "\"items\":[";
|
|
602
|
+
const char* itemsStart = strstr(json, itemsKey);
|
|
603
|
+
if (itemsStart) {
|
|
604
|
+
itemsStart += strlen("\"items\":");
|
|
605
|
+
int depth = 0;
|
|
606
|
+
const char* p2 = itemsStart;
|
|
607
|
+
const char* end2 = NULL;
|
|
608
|
+
while (*p2) {
|
|
609
|
+
if (*p2 == '[') depth++;
|
|
610
|
+
else if (*p2 == ']') { depth--; if (depth == 0) { end2 = p2 + 1; break; } }
|
|
611
|
+
p2++;
|
|
612
|
+
}
|
|
613
|
+
if (end2) {
|
|
614
|
+
size_t len = (size_t)(end2 - itemsStart);
|
|
615
|
+
char* arrJson = (char*)malloc(len + 1);
|
|
616
|
+
memcpy(arrJson, itemsStart, len);
|
|
617
|
+
arrJson[len] = '\0';
|
|
618
|
+
HMENU popup = CreatePopupMenu();
|
|
619
|
+
zapp_build_menu_items_win(popup, arrJson);
|
|
620
|
+
free(arrJson);
|
|
621
|
+
POINT pt;
|
|
622
|
+
GetCursorPos(&pt);
|
|
623
|
+
TrackPopupMenu(popup, TPM_LEFTALIGN | TPM_TOPALIGN, pt.x, pt.y, 0, hwnd, NULL);
|
|
624
|
+
DestroyMenu(popup);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
free(windowId);
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
|
|
600
631
|
if (strcmp(action, "setCloseGuard") == 0) {
|
|
601
632
|
extern int zapp_json_get_bool(const char* json, const char* key, int default_val);
|
|
602
633
|
int guard = zapp_json_get_bool(json, "guard", 0);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# ⚡️ QuickJS - A mighty JavaScript engine
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
QuickJS is a small and embeddable JavaScript engine. It aims to support the latest
|
|
6
|
+
[ECMAScript] specification.
|
|
7
|
+
|
|
8
|
+
This project is a _fork_ of the [original QuickJS project] by Fabrice Bellard and Charlie Gordon, after it went dormant, with the intent of reigniting its development.
|
|
9
|
+
|
|
10
|
+
## Getting started
|
|
11
|
+
|
|
12
|
+
Head over to the [project website] for instructions on how to get started and more
|
|
13
|
+
documentation.
|
|
14
|
+
|
|
15
|
+
## Authors
|
|
16
|
+
|
|
17
|
+
[@bnoordhuis], [@saghul], and many more [contributors].
|
|
18
|
+
|
|
19
|
+
[ECMAScript]: https://tc39.es/ecma262/
|
|
20
|
+
[original QuickJS project]: https://bellard.org/quickjs
|
|
21
|
+
[@bnoordhuis]: https://github.com/bnoordhuis
|
|
22
|
+
[@saghul]: https://github.com/saghul
|
|
23
|
+
[contributors]: https://github.com/quickjs-ng/quickjs/graphs/contributors
|
|
24
|
+
[project website]: https://quickjs-ng.github.io/quickjs/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
18
|