{"_id":"@openparachute/app","_rev":"28-186c32ff0626dbf7cf1ab2690c3dd6b9","name":"@openparachute/app","dist-tags":{"latest":"0.22.15","rc":"0.22.15-rc.3"},"versions":{"0.22.5":{"name":"@openparachute/app","version":"0.22.5","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.5","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"731f5c930f5181cfa532ef7cc718f5a86db3eb16","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.5.tgz","fileCount":64,"integrity":"sha512-vyvKxi9WMrUEkZzOKjVekXjI5vq6TbzaZLCkUrY7Hk6UFecXqn9JDlO0SiLHhs0P+TELiK0WSclf9nbOZuK6vQ==","signatures":[{"sig":"MEUCIA00XWoDpVgroqsaj55CMonPgz3EMoV2+Iq99F8KEEqrAiEAh9qm93MbsXpNfBiKGXpppxHY+iq4MRqU+SnqqWd04Wg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2818389},"type":"module","gitHead":"3250951ca7efc4721ead5df1bf3fdecda85b9041","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest"},"_npmUser":{"name":"unforced","email":"ag@unforced.org"},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.7.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"25.4.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"^0.3.6","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.5_1785172341181_0.7714802752595855","host":"s3://npm-registry-packages-npm-production"}},"0.22.9":{"name":"@openparachute/app","version":"0.22.9","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.9","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"0d2c3e5f46230b42ade2fe4182efcbfe573eae76","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.9.tgz","fileCount":64,"integrity":"sha512-qe9vK5rHw0AAQ16vah4Rc961d3xPP/MOEkkhnOU9KdEkY2iTzlCh5h3YpBUwxwTRdyqTXMhEqVA4vfw/XXLpEg==","signatures":[{"sig":"MEQCIHzVSWELXiTmQ5LWfbzY/fJkZq+KLB494AgxzgdwYcOzAiBWM50wIxUKzvR/7o6Mj0f6G+jb7n4pIeZI27Ma9XaBsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2830255},"type":"module","gitHead":"eea06234524ab2a0ebe7cf0c4e6330f79bdbd51c","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.16.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.18.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"^0.3.6","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.9_1785209404786_0.4896361129435951","host":"s3://npm-registry-packages-npm-production"}},"0.22.10":{"name":"@openparachute/app","version":"0.22.10","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.10","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"9fdc032edbe94de0fa06e603ad2ec6f13491f576","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.10.tgz","fileCount":64,"integrity":"sha512-KPN/6UYBFOTOn/g6f0uRj83HrClTT96wEJJ3xnG3Pv2IEs3xQ5UzXXCfrwRPrvK+IJuVDGjI6DRqX8XqLpFQcg==","signatures":[{"sig":"MEQCIFmTWjpOTcyQ/t8/DNglbY4LFkV7liDgQRUDsDkgAfdlAiBMDCM3QVgvGk7krFQFCRLxDtjcKwDUHDoh7v4jD7lTCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2830498},"type":"module","gitHead":"9ece056ea304a72776275304d438886b752004db","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.16.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.18.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"^0.3.6","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.10_1786384842008_0.31792575411793167","host":"s3://npm-registry-packages-npm-production"}},"0.22.11":{"name":"@openparachute/app","version":"0.22.11","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.11","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"c5fc104cf432a0f54bc5bcc7c0e1b217251f8b83","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.11.tgz","fileCount":64,"integrity":"sha512-joUx1bDbmDFqpyuyV9Blj+kL5Qyhxe8Ovgn29Vh0K3VCx1uv+hogK3ndNqIvz7Cso04qFuObo0TIq1CJbCgWug==","signatures":[{"sig":"MEYCIQDb5bmdZ85aouAn/oKCl2e7z2MIjit2H3Jcv9hPqYtRZAIhAMrQjKXctrW7EJDsTOUEqRGA9XdOiWsUgpqu7/fIaGub","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2837336},"type":"module","gitHead":"8ae710aea6c9f62139295a582d6ce3ae13f65774","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"^0.3.6","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.11_1786732008102_0.8547847843636083","host":"s3://npm-registry-packages-npm-production"}},"0.22.12":{"name":"@openparachute/app","version":"0.22.12","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.12","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"2a428b18f6ee2dbd6d838eef151d2b6663f448c2","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.12.tgz","fileCount":64,"integrity":"sha512-kKx3bRzJL4V3+mAMeHWEaW0GsEsUShs14OzjxhVQguybtd4eSef5M07BDPMkSnLpu01QNl4sjC3SBP7hyFo9uA==","signatures":[{"sig":"MEYCIQCVAUkhE+jPtgl00L3eJBuJ3nExpp9B9hy654mfSfS6SQIhAKExJs7GTOJU2Q5pcxfCAnBIycZ5gDl0JcrQv+1wBQ1o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2841177},"type":"module","gitHead":"2642495a4bd03519f264ec5d1a16a9a3132c98e7","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"^0.3.6","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.12_1787359619442_0.08470425391999736","host":"s3://npm-registry-packages-npm-production"}},"0.22.13":{"name":"@openparachute/app","version":"0.22.13","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.13","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"2bf593ddd96d9f95b4bceb1f8a38b86cdf501a7c","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.13.tgz","fileCount":64,"integrity":"sha512-e2l2x0NNZKcRjPLL5LjhyzBWzuvRUDCZZh/OgZeIJYw/F1//uptM5IwCAIdpoIjWQEbmriCHoiU9PFMkYQXvKg==","signatures":[{"sig":"MEQCICl00M4HBOjoWrOlxgARSA//cJ+1TZoR2qqAJIxat0vBAiASeLujm1bDpkxFW0rAl8bwHLTi+4+bptqZS5++R0Jwaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2857167},"type":"module","gitHead":"c526711e62b05ff430ce1b3a35c7f5139128443a","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"^0.3.6","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.13_1787575971967_0.05347146150729176","host":"s3://npm-registry-packages-npm-production"}},"0.22.14-rc.1":{"name":"@openparachute/app","version":"0.22.14-rc.1","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.14-rc.1","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"38d77f8e39070df080200efd89f2c60ec5de0f82","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.14-rc.1.tgz","fileCount":64,"integrity":"sha512-Ih2oUWmSweR71Vy7qOCKV7G8noB5uJ0irAMOlsZJrCKQYizivm2xvbt8BxyvkZlmDizo8XdgMtRt9CXy9JZMUw==","signatures":[{"sig":"MEQCIFUR2FAkepD5M2TGp2qVauOY5Sf85W7O2N+gcmrikdQcAiAv987/CZwRi6iawP3YPaNV2Hxw2JivGI9ee69YWnLWIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.14-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2860863},"type":"module","gitHead":"255e7d9d2553cbe77a50bd49c358dc8bb651795f","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7-rc.1","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.14-rc.1_1787799794216_0.7706600730600566","host":"s3://npm-registry-packages-npm-production"}},"0.22.14-rc.2":{"name":"@openparachute/app","version":"0.22.14-rc.2","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.14-rc.2","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"389fdf26758270664869a892ed2c8c805e703e54","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.14-rc.2.tgz","fileCount":64,"integrity":"sha512-a4Vwb0QnEsi6POvHk6+ltWpsR2cvg4b2LaeaPU4KfvjCAHTRo2MaLZ2Lue5sbZZUOfTZE345ltFB4O0skZRvYg==","signatures":[{"sig":"MEUCIQCQTu3qaTjmnYzKbWY9jvJDiczL5P4R0j5Z5UzHIKSlCQIgBkLaEEypNZJU2i9VL8j7xfJX5wu8d3fOn4GY1ghJfCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.14-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2861191},"type":"module","gitHead":"8982d9df2d24b98befe02484bf015a84340297bc","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7-rc.1","@openparachute/surface-render":"^0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.14-rc.2_1787980984057_0.1954658500442441","host":"s3://npm-registry-packages-npm-production"}},"0.22.14-rc.3":{"name":"@openparachute/app","version":"0.22.14-rc.3","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.14-rc.3","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"2b374e0a62900858c3ee911df627aa80850c3c90","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.14-rc.3.tgz","fileCount":64,"integrity":"sha512-h1jvjkfbfYsSJp4v6aCQgZt3cFonmdd3aoCGPJThV8DRoz5e2z2Ytg6UcigWHbwCU2XKNTO6z2rCglKAFHyglQ==","signatures":[{"sig":"MEUCIQDv+pfj94+jrk/YZB4Ei3PFYN2kmm7aKS2RgR86gcBsngIgA9p4sJE0ahLyy4aU02pPU4iSbNa0t8wMYn/MfsWVAUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.14-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2861905},"type":"module","gitHead":"6fc8ca537c40ad8f96f4c56a0c21bc642ca4598c","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7","@openparachute/surface-render":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.14-rc.3_1788112345580_0.002280467534347519","host":"s3://npm-registry-packages-npm-production"}},"0.22.14-rc.4":{"name":"@openparachute/app","version":"0.22.14-rc.4","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.14-rc.4","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"f5f78b27745798cac60489e278c992945d3c2f8b","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.14-rc.4.tgz","fileCount":64,"integrity":"sha512-1LaOe4YXhr8D74/JpkMNTKGlObFSmzchafh8ewSGjBBjzqWs4nefQ511hua8MOLYWEhZj3wmGuLQWsvISZObew==","signatures":[{"sig":"MEQCIDzz1mp1AWSn68RUmnLRnSLG9rIe8/6ookN0rd9KhNetAiBwcmEux4qetfb9yhGUUhQAXdAyTGF8hVvcU6bAzFv0qA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.14-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2864582},"type":"module","gitHead":"10ebfc3a70ba61673a995330375fedb852700992","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7","@openparachute/surface-render":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.14-rc.4_1788116943747_0.5073597937548842","host":"s3://npm-registry-packages-npm-production"}},"0.22.14":{"name":"@openparachute/app","version":"0.22.14","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.14","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"3d5a6681c9c2ba7ed7d759f902c3b0b40ea88ce5","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.14.tgz","fileCount":64,"integrity":"sha512-VTfSH4DTdRpiStyZZOxC1CfatsmpzZGSula2HlUnLNs3gtYH2hXqLN+fLO0Wl5NOSNr4KwTiXGBtmTdH9LbolQ==","signatures":[{"sig":"MEQCIBDDIL8m3wenQ7nNm1Og7mgceq5gWrqPlCGQ+3h9ccSbAiBkO2JKzbQU2EFKhnCpD/HGbt3sI450CV96176Zbg+Mqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2865418},"type":"module","gitHead":"a11227a3abe70dcddbf146a20fbed3b5c9b4f65e","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.17.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7","@openparachute/surface-render":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.14_1788120351789_0.8932668440021643","host":"s3://npm-registry-packages-npm-production"}},"0.22.15-rc.1":{"name":"@openparachute/app","version":"0.22.15-rc.1","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.15-rc.1","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"d14736122bd36f639e7df5be46d52facd4033a92","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.15-rc.1.tgz","fileCount":63,"integrity":"sha512-8oSFa2SD6qfvWmTIi/6m3B3BcArLdNeeQxCzePL+eOgHQ7833381wWcbHulkdS6XYTl7C0T52r4B+WdZK4JeDw==","signatures":[{"sig":"MEYCIQDFXYfWbZv1Vc/qhGttNBQE+Y/EnuLP1DeHDUbQzof+AwIhAL5Zzc29EJ2PZ+6qTDR/hU4zYQ7Ws9xZ0t7ufN7j+aBp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.15-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2872141},"type":"module","gitHead":"d0baeb0ad3319d084aeb3af80ea8b6fc9447b341","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.19.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.20.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7","@openparachute/surface-render":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.15-rc.1_1789080881995_0.5642339622512524","host":"s3://npm-registry-packages-npm-production"}},"0.22.15-rc.2":{"name":"@openparachute/app","version":"0.22.15-rc.2","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.15-rc.2","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"77c2cdd98d377b4b151a836d17c479503cb7e074","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.15-rc.2.tgz","fileCount":63,"integrity":"sha512-MIJdoPnhNjSVvZWEaMOZPAm2uq2vfTY54zkx1kUx9XDkG7ZsA3UESwNSSvJ9eFrh/wERNRSwlfQpB3S2ElFpnQ==","signatures":[{"sig":"MEYCIQCt6w3FiWXOgcog4pjT9roVk/Mb2iFF8gtcc8f4y4wcQQIhAOmmkx0qKqrnls0dxd49TMz2RuPQxtzW7TfNuGP0GtrU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.15-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2875485},"type":"module","gitHead":"a1324672e9c8f3ddf4f85f0ca9a3ced6497f3e24","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.19.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.20.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7","@openparachute/surface-render":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.15-rc.2_1789236231478_0.6889622914922051","host":"s3://npm-registry-packages-npm-production"}},"0.22.15-rc.3":{"name":"@openparachute/app","version":"0.22.15-rc.3","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"license":"AGPL-3.0-only","_id":"@openparachute/app@0.22.15-rc.3","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"homepage":"https://parachute.computer","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"3296d10f8e275571ec2c8bfa4518effee22cd85b","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.15-rc.3.tgz","fileCount":63,"integrity":"sha512-OjOzT4TVuTNaYrJkvfIZ7Lq8e8oLrK3zHp3UPLHk6kI9XK+P7AnNSKeQ/lqiABQtjdPFz3lYpH2EWIdOhPNVUw==","signatures":[{"sig":"MEUCIEQE1FH7CKcr7bHZOie48Z1GAR0oXFGHyQlxRrXZlRadAiEAhG1CRAGby31ajgisuFfIJp/pNtdkcvwBW0hrlBVmcd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4nU0szeWbq1UdmSie0rObio//6aG3UTuUM3s1ZiX2WAIhAPWlxEzX3onryE3/tY+U6VAVmRrAzC8rklempky/eNyv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.15-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2883367},"type":"module","gitHead":"bbdd7eb073e56b47dc94dff5565e2ee908429352","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.19.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"_nodeVersion":"24.20.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7","@openparachute/surface-render":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/app_0.22.15-rc.3_1789704745109_0.8846780859792691","host":"s3://npm-registry-packages-npm-production"}},"0.22.15":{"_id":"@openparachute/app@0.22.15","bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"dist":{"shasum":"178dc77f7aa8b9918343e21171097db48516a264","tarball":"https://registry.npmjs.org/@openparachute/app/-/app-0.22.15.tgz","fileCount":63,"integrity":"sha512-KwAfuMcZtkbt8+YLJOIOzxwKzczOvwOE+QorNjsFaaJMHdHQYN/XfxsHlGLrbVitMeKqmCb1XNcl9FfzMqV2Cw==","signatures":[{"sig":"MEUCIB7qzjggqqJUBVTDPsG/M6EJ7ga5t7NfPiI/V6hqgDegAiEA5ierEDjPqHlDYVo0iKpqxDTZ7nuJtozqp60YG+/Po40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuYr5Mxed7K9fcUNOmRWAl9ifVkUcAxFfIN1I0MsnM1QIhANFvdR7dr55p6G2lnBcqXUH+hozW9BZ7X9hWLFsO+T0u"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openparachute%2fapp@0.22.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2886304},"name":"@openparachute/app","type":"module","gitHead":"3655c2fb5e8c59b98f2f3a051926c5e4030d33ff","license":"AGPL-3.0-only","scripts":{"dev":"vite","lint":"biome check .","test":"vitest run","build":"bun run sync-meta-version && tsc -b && vite build","format":"biome format --write .","prepack":"bun run build","preview":"vite preview","bigvault":"bun scripts/bigvault/bigvault.ts","lint:fix":"biome check --write .","typecheck":"tsc -b --noEmit","test:smoke":"bun scripts/verify-dist.ts","test:watch":"vitest","sync-meta-version":"bun scripts/sync-meta-version.ts"},"version":"0.22.15","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d794fbfb-026a-4103-817a-0fc8ba54d91b"}},"homepage":"https://parachute.computer","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"_npmVersion":"11.19.0","description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","directories":{},"maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"_nodeVersion":"24.20.0","dependencies":{"idb":"^8.0.3","jszip":"^3.10.1","react":"^19.1.0","zustand":"^5","react-dom":"^19.1.0","remark-gfm":"^4.0.1","highlight.js":"^11.11.1","react-router":"^7","react-markdown":"^10.1.0","@codemirror/view":"^6.41.1","@lezer/highlight":"^1.2.3","rehype-highlight":"^7.0.2","@codemirror/state":"^6.6.0","@codemirror/commands":"^6.10.3","@codemirror/language":"^6.12.3","react-force-graph-2d":"^1.29.1","@tanstack/react-query":"^5","@codemirror/autocomplete":"^6.20.3","@codemirror/lang-markdown":"^6.5.0","@fontsource-variable/figtree":"^5.2.10","@fontsource-variable/fraunces":"^5.2.9","@openparachute/surface-client":"0.3.7","@openparachute/surface-render":"^0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.1","vitest":"^3","unified":"^11.0.5","typescript":"~5.6.0","@types/node":"^22","tailwindcss":"^4.1.0","@types/mdast":"^4.0.4","@types/react":"^19.1.0","remark-parse":"^11.0.0","@biomejs/biome":"^1.9.4","fake-indexeddb":"^6.2.5","workbox-window":"^7.4.0","vite-plugin-pwa":"^1.2.0","@types/react-dom":"^19.1.0","remark-stringify":"^11.0.0","@tailwindcss/vite":"^4.1.0","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.3.0","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@vite-pwa/assets-generator":"^1.0.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/app_0.22.15_1790052250820_0.5497727190322084"}}},"time":{"created":"2026-07-27T17:12:20.980Z","modified":"2026-09-22T04:44:11.316Z","0.2.0-rc.3":"2026-05-22T19:17:05.759Z","0.2.0-rc.4":"2026-05-22T23:47:18.281Z","0.2.0-rc.5":"2026-05-23T03:45:03.168Z","0.2.0-rc.6":"2026-05-23T05:32:55.120Z","0.2.0-rc.10":"2026-05-23T17:28:13.738Z","0.2.0-rc.12":"2026-05-25T18:19:27.536Z","0.2.0-rc.13":"2026-05-25T22:29:00.876Z","0.2.0-rc.14":"2026-05-26T18:00:44.620Z","0.2.0":"2026-05-26T21:21:31.113Z","0.22.5":"2026-07-27T17:12:21.426Z","0.22.9":"2026-07-28T03:30:04.983Z","0.22.10":"2026-08-10T18:00:42.202Z","0.22.11":"2026-08-14T18:26:48.354Z","0.22.12":"2026-08-22T00:46:59.682Z","0.22.13":"2026-08-24T12:52:52.131Z","0.22.14-rc.1":"2026-08-27T03:03:14.464Z","0.22.14-rc.2":"2026-08-29T05:23:04.221Z","0.22.14-rc.3":"2026-08-30T17:52:25.765Z","0.22.14-rc.4":"2026-08-30T19:09:03.899Z","0.22.14":"2026-08-30T20:05:51.978Z","0.22.15-rc.1":"2026-09-10T22:54:42.260Z","0.22.15-rc.2":"2026-09-12T18:03:51.712Z","0.22.15-rc.3":"2026-09-18T04:12:25.223Z","0.22.15":"2026-09-22T04:44:10.932Z"},"bugs":{"url":"https://github.com/ParachuteComputer/parachute-app/issues"},"license":"AGPL-3.0-only","homepage":"https://parachute.computer","keywords":["parachute","surface","spa","pwa","notes","vault","self-hosted"],"repository":{"url":"git+https://github.com/ParachuteComputer/parachute-app.git","type":"git"},"description":"Parachute — the super-surface. A single-page app for interfacing with your Parachute: name a vault, capture and browse notes, connect your AI, and manage the cloud + hub via their APIs. Seeded from notes-ui; the calm centered arrival + warm home lead the ","maintainers":[{"name":"unforced","email":"ag@unforced.org"}],"readme":"# Parachute — the super-surface (`parachute-app`)\n\nThe go-to single-page app for interfacing with your Parachute. It is, at heart,\na **surface**: name a vault, capture and browse your notes, connect your AI, and\nmanage the **cloud** and the **hub** through their APIs — all from one calm,\nwarm home.\n\n- **Layer:** L2 Surface (super-surface). Speaks the wire contract (vault REST/MCP,\n  the cloud `/account/*` door contract, OAuth/PKCE).\n- **Vision (Aaron):** *\"The Parachute app is really just a surface — a single-page\n  application that manages the cloud and the hub via their APIs. The ideal\n  starting point for interfacing with your parachute. Our go-to super surface.\"*\n\n## What this is (and isn't)\n\nSeeded from `parachute-surface/packages/notes-ui` to keep the hard-won machinery\n— the vault client, OAuth/PKCE auth, the offline sync/outbox layer,\nIndexedDB/OPFS, notes CRUD, and the `surface-client` / `surface-render`\nintegration. The **arrival** and **home** were rebuilt to match the synthesized\nprototype: a calm centered arrival, the vault-name-as-identity thread, and a\nwarm home with a focused composer and quiet quick-actions.\n\nThis app is developed **in parallel** with the currently-deployed notes-ui; it\ndoes not touch that production path. Cut-over is a later decision.\n\n## Install (self-host)\n\n```sh\nparachute install app     # bun add -g @openparachute/app\nparachute start app       # served at <origin>/app, port 1944\n```\n\nThe published package is a **prebuilt bundle**: the tarball carries `dist/`\n(the SPA shell, hashed assets, service worker, PWA manifest) and nothing is\nbuilt on the operator's machine. `parachute start app` runs the hub's\nstatic-serve shim (`parachute-hub` `src/notes-serve.ts --package\n@openparachute/app`), which resolves the installed package's `dist/`\nand serves it directly.\n\nBecause the shipped artifact *is* `dist/`, the `prepack` hook rebuilds it for\nevery `npm pack` / `npm publish`, and both CI and the release workflow refuse\nto proceed unless the tarball actually contains `dist/index.html` +\n`dist/assets/*`.\n\n## Develop\n\n```sh\nbun install\nbun run dev        # http://localhost:1942\nbun run build      # tsc -b && vite build → dist/\nbun run typecheck\nbun run lint\nbun run test       # vitest — bare `bun test` breaks (the `@/` alias only\n                   # resolves through vitest.config.ts)\nbun run test:smoke # assert a built dist/ is publishable (run after build)\n```\n\nRoot-hosted by default (`base: /`). The runtime mount detector\n(`src/lib/base-url.ts`) still lets the same bundle serve under a sub-path.\n\n## Storage namespace\n\nKeeps the frozen `lens:*` localStorage / IndexedDB keys from notes-ui. This app\nruns at its own origin, so storage is isolated from any notes-ui install; reusing\nthe keys keeps the sync/outbox machinery untouched and any future data migration\nbetween the two trivial.\n\nPart of the [Parachute Computer](https://parachute.computer) ecosystem. AGPL-3.0.\n","readmeFilename":"README.md"}