{ "name": "ziran", "version": "0.1.0", "exports": "./main.ts", "nodeModulesDir": "auto", "desktop": { "app": { "name": "Ziran", "identifier": "com.berjon.ziran" }, "backend": "cef" }, "tasks": { "build:ui": "deno bundle --platform browser --output static/app.js src/main.ts", "build:tiles": "deno run -A tools/build-tiles.ts", "build:icons": "deno run -A tools/make-icons.ts", "dev": "deno task build:ui && deno run -A --watch main.ts", "relay": "deno run -A relay/main.ts", "test:spaces": "deno run -A src/sync/spaces/scopes.test.ts && deno run -A src/sync/spaces/client.test.ts && deno run -A src/sync/spaces/session-fetch.test.ts && deno run -A src/sync/spaces/provider.test.ts && deno run -A src/sync/spaces/webstore.test.ts", "devnet:spaces": "bash tools/spaces-devnet.sh", "lex:publish": "deno run -A tools/spaces-publish-lexicons.ts", "check:web": "deno run -A tools/web-core-smoke.ts", "build:webapp": "deno run -A tools/build-webapp.ts", "ziran": "deno run -A src/cli/ziran.ts", "stage:index": "deno run -A tools/stage-indexer.ts", "deploy:index": "deno task stage:index && cd deploy/index && sm deploy", "store:publish-examples": "deno run -A tools/store-publish-examples.ts", "deploy:app": "deno task build:webapp && cd webapp && sm deploy", "stage:load": "deno run -A tools/stage-loadserver.ts", "deploy:load": "deno task stage:load && cd deploy/load && sm deploy", "test:tiles": "deno run -A src/sync/tiles-logic.test.ts && deno run -A src/sync/richtext-crdt.test.ts && deno run -A src/sync/richtext-editing.test.ts && deno run -A src/sync/richtext-suggest.test.ts", "test:sync": "deno run -A src/sync/spaces/scopes.test.ts && deno run -A src/store/store.test.ts && deno run -A src/store/indexer.test.ts && deno run -A src/cli/cli.test.ts && deno run -A src/sync/spaces/client.test.ts && deno run -A src/sync/spaces/session-fetch.test.ts && deno run -A src/sync/spaces/provider.test.ts && deno run -A src/sync/spaces/webstore.test.ts && deno run -A src/web/home.test.ts && deno run -A src/web/webhost.test.ts && deno run -A src/web/tiles.test.ts && deno run -A src/sync/tiles-logic.test.ts && deno run -A src/sync/richtext-crdt.test.ts && deno run -A src/sync/richtext-editing.test.ts && deno run -A src/sync/richtext-suggest.test.ts && deno run -A relay/test.ts && deno run -A src/sync/mls.test.ts && deno run -A src/sync/mls-transport.test.ts && deno run -A src/sync/atproto.test.ts && deno run -A src/sync/e2e.test.ts && deno run -A src/sync/newcomer.test.ts && deno run -A src/sync/reconnect.test.ts && deno run -A src/sync/restart-invite.test.ts && deno run -A src/sync/signedout.test.ts && deno run -A src/server/keeper.test.ts && deno run -A src/server/deeplink.test.ts", "desktop": "deno task build:ui && deno desktop --hmr -A --include static --include vendor --include tiles --include build main.ts", "build": "deno task build:ui && deno desktop -A --include static --include vendor --include tiles --include build --icon build/icon-mac-1024.png --output dist/Ziran.app main.ts && deno run -A tools/mac-bundle.ts dist/Ziran.app", "build:mac": "deno task build:ui && deno desktop -A --include static --include vendor --include tiles --include build --icon build/icon-mac-1024.png --target aarch64-apple-darwin --output dist/Ziran-arm64.app main.ts && deno run -A tools/mac-bundle.ts dist/Ziran-arm64.app", "build:mac-intel": "deno task build:ui && deno desktop -A --include static --include vendor --include tiles --include build --icon build/icon-mac-1024.png --target x86_64-apple-darwin --output dist/Ziran-x64.app main.ts && deno run -A tools/mac-bundle.ts dist/Ziran-x64.app", "build:win": "deno task build:ui && deno desktop -A --include static --include vendor --include tiles --include build --icon build/icon.ico --target x86_64-pc-windows-msvc --output dist/Ziran.msi main.ts", "build:linux": "deno task build:ui && deno desktop -A --include static --include vendor --include tiles --include build --icon build/icon-1024.png --target x86_64-unknown-linux-gnu --output dist/Ziran.AppImage main.ts", "build:linux-arm": "deno task build:ui && deno desktop -A --include static --include vendor --include tiles --include build --icon build/icon-1024.png --target aarch64-unknown-linux-gnu --output dist/Ziran-arm64.AppImage main.ts", "build:all": "deno task build:mac && deno task build:mac-intel && deno task build:win && deno task build:linux && deno task build:linux-arm", "build:relay": "deno compile -A --target x86_64-unknown-linux-gnu -o deploy/relay/relay-linux-x64 relay/main.ts", "build:site": "deno task build:all && deno run -A tools/stage-downloads.ts", "deploy": "deno task deploy:relay && deno task deploy:web", "deploy:relay": "deno task build:relay && cd deploy/relay && sm deploy", "deploy:web": "deno task build:site && cd website && sm deploy", "deploy:web:copy": "deno eval \"await Deno.stat('website/site/dl/SHA256SUMS.txt').catch(() => { console.error('No staged downloads \u2014 run deno task build:site first (or deno task deploy:web).'); Deno.exit(1); })\" && cd website && sm deploy" }, "lint": { "exclude": [ "vendor/", "static/app.js", "dist/", "node_modules/", ".claude/", ".pi/" ] }, "compilerOptions": { "lib": [ "deno.ns", "dom", "dom.iterable", "dom.asynciterable" ], "experimentalDecorators": true, "useDefineForClassFields": false }, "imports": { "@std/path": "jsr:@std/path@^1.1.0", "lit": "npm:lit@^3.3.3", "lit/": "npm:/lit@^3.3.3/", "express": "npm:express@^5.2.1", "@dasl/tile-server": "npm:@dasl/tile-server@^2.0.0", "@dasl/tile-loader": "npm:@dasl/tile-loader@^2.0.0", "@dasl/tile-loader/car": "npm:/@dasl/tile-loader@^2.0.0/car", "@dasl/tile-lexicon": "npm:@dasl/tile-lexicon@^2.0.0", "@atcute/cid": "npm:@atcute/cid@^2.4.2", "@atcute/cbor": "npm:@atcute/cbor@^2.3.5", "@atcute/car": "npm:@atcute/car@^6.0.2", "file-type": "npm:file-type@^22.0.1", "mime": "npm:mime@^4.1.0", "ts-mls": "npm:ts-mls@^1.6.2", "@noble/hashes": "npm:@noble/hashes@^1.8.0", "@noble/curves/ed25519.js": "npm:@noble/curves@^2.2.0/ed25519.js", "@noble/curves/nist.js": "npm:@noble/curves@^2.2.0/nist.js", "@noble/curves/secp256k1.js": "npm:@noble/curves@^2.2.0/secp256k1.js", "@scure/base": "npm:@scure/base@^2.0.0", "@atproto/space": "npm:@atproto/space@0.0.0-spaces-alpha-20260818163953", "@atproto/crypto": "npm:@atproto/crypto@0.0.0-spaces-alpha-20260818163953", "@atproto/lex-data": "npm:@atproto/lex-data@^0.1.7", "@atproto/oauth-scopes": "npm:@atproto/oauth-scopes@0.0.0-spaces-alpha-20260818163953", "@atproto/jwk-jose": "npm:@atproto/jwk-jose@^0.2.4", "@atproto/oauth-client-node": "npm:@atproto/oauth-client-node@0.0.0-spaces-alpha-20260818163953", "@atproto/oauth-client-browser": "npm:@atproto/oauth-client-browser@0.0.0-spaces-alpha-20260818163953", "@atproto/api": "npm:@atproto/api@^0.17.0", "yjs": "npm:yjs@^13.6.27", "y-prosemirror": "npm:y-prosemirror@^1.3.7", "prosemirror-state": "npm:prosemirror-state@^1.4.3", "prosemirror-view": "npm:prosemirror-view@^1.34.0", "prosemirror-model": "npm:prosemirror-model@^1.22.0", "prosemirror-transform": "npm:prosemirror-transform@^1.9.0", "prosemirror-collab": "npm:prosemirror-collab@^1.3.1", "prosemirror-history": "npm:prosemirror-history@^1.4.1", "prosemirror-keymap": "npm:prosemirror-keymap@^1.2.2", "prosemirror-commands": "npm:prosemirror-commands@^1.6.0", "prosemirror-schema-basic": "npm:prosemirror-schema-basic@^1.2.3", "prosemirror-schema-list": "npm:prosemirror-schema-list@^1.4.1", "prosemirror-inputrules": "npm:prosemirror-inputrules@^1.4.0", "prosemirror-dropcursor": "npm:prosemirror-dropcursor@^1.8.1", "prosemirror-gapcursor": "npm:prosemirror-gapcursor@^1.3.2", "marked": "npm:marked@^16.4.1", "fast-png": "npm:fast-png@^6.2.0" } }