station-kit 1.0.6 → 1.0.8
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/.next/standalone/node_modules/.pnpm/buffer-from@1.1.2/node_modules/buffer-from/index.js +72 -0
- package/.next/standalone/node_modules/.pnpm/buffer-from@1.1.2/node_modules/buffer-from/package.json +19 -0
- package/.next/standalone/node_modules/.pnpm/source-map-support@0.5.21/node_modules/source-map-support/package.json +31 -0
- package/.next/standalone/node_modules/.pnpm/source-map-support@0.5.21/node_modules/source-map-support/source-map-support.js +625 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/array-set.js +121 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/base64-vlq.js +140 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/base64.js +67 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/binary-search.js +111 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/mapping-list.js +79 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/quick-sort.js +114 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-map-consumer.js +1145 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-map-generator.js +425 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/source-node.js +413 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/lib/util.js +488 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/package.json +73 -0
- package/.next/standalone/node_modules/.pnpm/source-map@0.6.1/node_modules/source-map/source-map.js +8 -0
- package/.next/standalone/package.json +2 -1
- package/.next/standalone/packages/station-kit/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/station-kit/.next/app-build-manifest.json +13 -13
- package/.next/standalone/packages/station-kit/.next/app-path-routes-manifest.json +3 -3
- package/.next/standalone/packages/station-kit/.next/build-manifest.json +2 -2
- package/.next/standalone/packages/station-kit/.next/prerender-manifest.json +12 -12
- package/.next/standalone/packages/station-kit/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/broadcasts/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/broadcasts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/broadcasts.html +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/broadcasts.rsc +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/index.html +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/index.rsc +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/runs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/settings.html +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/signals/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/signals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/signals.html +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app/signals.rsc +1 -1
- package/.next/standalone/packages/station-kit/.next/server/app-paths-manifest.json +3 -3
- package/.next/standalone/packages/station-kit/.next/server/pages/404.html +1 -1
- package/.next/standalone/packages/station-kit/.next/server/pages/500.html +1 -1
- package/.next/standalone/packages/station-kit/package.json +16 -11
- package/dist/cli/deploy.d.ts +2 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/deploy.js +287 -0
- package/dist/cli/deploy.js.map +1 -0
- package/dist/cli/parse-args.d.ts +13 -0
- package/dist/cli/parse-args.d.ts.map +1 -0
- package/dist/cli/parse-args.js +77 -0
- package/dist/cli/parse-args.js.map +1 -0
- package/dist/cli-main.js +28 -1
- package/dist/cli-main.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +7 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +5 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +22 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +7 -2
- package/dist/server/index.js.map +1 -1
- package/dist/station-dir.d.ts +7 -0
- package/dist/station-dir.d.ts.map +1 -0
- package/dist/station-dir.js +15 -0
- package/dist/station-dir.js.map +1 -0
- package/package.json +15 -10
- package/src/cli/deploy.ts +334 -0
- package/src/cli/parse-args.ts +99 -0
- package/src/cli-main.ts +28 -1
- package/src/cli.ts +1 -1
- package/src/config/loader.ts +7 -3
- package/src/config/schema.ts +29 -3
- package/src/index.ts +3 -1
- package/src/server/index.ts +14 -2
- package/src/station-dir.ts +24 -0
- /package/.next/standalone/packages/station-kit/.next/static/{kqMlNlRLox_FLRK-2GwrJ → xYd6dn0Ox68DaamIrH_pB}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/station-kit/.next/static/{kqMlNlRLox_FLRK-2GwrJ → xYd6dn0Ox68DaamIrH_pB}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/signals/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"783":{"*":{"id":"1985","name":"*","chunks":[],"async":false}},"1308":{"*":{"id":"4576","name":"*","chunks":[],"async":false}},"1961":{"*":{"id":"2167","name":"*","chunks":[],"async":false}},"2051":{"*":{"id":"2455","name":"*","chunks":[],"async":false}},"2638":{"*":{"id":"678","name":"*","chunks":[],"async":false}},"3339":{"*":{"id":"611","name":"*","chunks":[],"async":false}},"4033":{"*":{"id":"5519","name":"*","chunks":[],"async":false}},"4521":{"*":{"id":"1494","name":"*","chunks":[],"async":false}},"4913":{"*":{"id":"291","name":"*","chunks":[],"async":false}},"4970":{"*":{"id":"4978","name":"*","chunks":[],"async":false}},"5152":{"*":{"id":"3726","name":"*","chunks":[],"async":false}},"5640":{"*":{"id":"5506","name":"*","chunks":[],"async":false}},"5754":{"*":{"id":"4450","name":"*","chunks":[],"async":false}},"6537":{"*":{"id":"7506","name":"*","chunks":[],"async":false}},"6658":{"*":{"id":"7034","name":"*","chunks":[],"async":false}},"7698":{"*":{"id":"576","name":"*","chunks":[],"async":false}},"8419":{"*":{"id":"8833","name":"*","chunks":[],"async":false}},"8954":{"*":{"id":"6358","name":"*","chunks":[],"async":false}},"9103":{"*":{"id":"7140","name":"*","chunks":[],"async":false}},"9129":{"*":{"id":"5226","name":"*","chunks":[],"async":false}},"9275":{"*":{"id":"6273","name":"*","chunks":[],"async":false}},"9976":{"*":{"id":"1736","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7698,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7698,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-page.js":{"id":3339,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":3339,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-segment.js":{"id":4033,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":4033,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":5754,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":5754,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/layout-router.js":{"id":8954,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":8954,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":6658,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":6658,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":5640,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":5640,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":2051,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":2051,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":4970,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":4970,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/auth-provider.tsx":{"id":783,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/breadcrumb-provider.tsx":{"id":5152,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/login-page.tsx":{"id":1308,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/shell.tsx":{"id":1961,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/theme-provider.tsx":{"id":9129,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/globals.css":{"id":9469,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/hooks/use-station.tsx":{"id":9275,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/broadcasts/[id]/broadcast-detail.tsx":{"id":6537,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/runs/[id]/run-detail.tsx":{"id":9103,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/signals/[name]/signal-detail.tsx":{"id":2638,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/settings/page.tsx":{"id":4521,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/signals/page.tsx":{"id":4913,"name":"*","chunks":["764","static/chunks/app/signals/page-6a123a355d93fec5.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/broadcasts/page.tsx":{"id":9976,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/page.tsx":{"id":8419,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","974","static/chunks/app/page-70b0c0958c03459a.js"],"async":false}},"entryCSSFiles":{"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/":[],"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/layout":[{"inlined":false,"path":"static/css/0be0e65a5f561f37.css"}],"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/page":[],"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/signals/page":[]},"rscModuleMapping":{"783":{"*":{"id":"3087","name":"*","chunks":[],"async":false}},"1308":{"*":{"id":"4562","name":"*","chunks":[],"async":false}},"1961":{"*":{"id":"6825","name":"*","chunks":[],"async":false}},"2051":{"*":{"id":"5273","name":"*","chunks":[],"async":false}},"2638":{"*":{"id":"664","name":"*","chunks":[],"async":false}},"3339":{"*":{"id":"5701","name":"*","chunks":[],"async":false}},"4033":{"*":{"id":"8709","name":"*","chunks":[],"async":false}},"4521":{"*":{"id":"9845","name":"*","chunks":[],"async":false}},"4913":{"*":{"id":"5453","name":"*","chunks":[],"async":false}},"4970":{"*":{"id":"1824","name":"*","chunks":[],"async":false}},"5152":{"*":{"id":"8728","name":"*","chunks":[],"async":false}},"5640":{"*":{"id":"1968","name":"*","chunks":[],"async":false}},"5754":{"*":{"id":"492","name":"*","chunks":[],"async":false}},"6537":{"*":{"id":"5026","name":"*","chunks":[],"async":false}},"6658":{"*":{"id":"5800","name":"*","chunks":[],"async":false}},"7698":{"*":{"id":"2714","name":"*","chunks":[],"async":false}},"8419":{"*":{"id":"1727","name":"*","chunks":[],"async":false}},"8954":{"*":{"id":"3012","name":"*","chunks":[],"async":false}},"9103":{"*":{"id":"7702","name":"*","chunks":[],"async":false}},"9129":{"*":{"id":"4556","name":"*","chunks":[],"async":false}},"9275":{"*":{"id":"5295","name":"*","chunks":[],"async":false}},"9469":{"*":{"id":"4267","name":"*","chunks":[],"async":false}},"9976":{"*":{"id":"1006","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"2051":{"*":{"id":"2455","name":"*","chunks":[],"async":false}},"3339":{"*":{"id":"611","name":"*","chunks":[],"async":false}},"4033":{"*":{"id":"5519","name":"*","chunks":[],"async":false}},"4970":{"*":{"id":"4978","name":"*","chunks":[],"async":false}},"5640":{"*":{"id":"5506","name":"*","chunks":[],"async":false}},"5754":{"*":{"id":"4450","name":"*","chunks":[],"async":false}},"6658":{"*":{"id":"7034","name":"*","chunks":[],"async":false}},"7698":{"*":{"id":"576","name":"*","chunks":[],"async":false}},"8954":{"*":{"id":"6358","name":"*","chunks":[],"async":false}}}}
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/signals/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"783":{"*":{"id":"1985","name":"*","chunks":[],"async":false}},"1308":{"*":{"id":"4576","name":"*","chunks":[],"async":false}},"1961":{"*":{"id":"2167","name":"*","chunks":[],"async":false}},"2051":{"*":{"id":"2455","name":"*","chunks":[],"async":false}},"2638":{"*":{"id":"678","name":"*","chunks":[],"async":false}},"3339":{"*":{"id":"611","name":"*","chunks":[],"async":false}},"4033":{"*":{"id":"5519","name":"*","chunks":[],"async":false}},"4521":{"*":{"id":"1494","name":"*","chunks":[],"async":false}},"4913":{"*":{"id":"291","name":"*","chunks":[],"async":false}},"4970":{"*":{"id":"4978","name":"*","chunks":[],"async":false}},"5152":{"*":{"id":"3726","name":"*","chunks":[],"async":false}},"5640":{"*":{"id":"5506","name":"*","chunks":[],"async":false}},"5754":{"*":{"id":"4450","name":"*","chunks":[],"async":false}},"6537":{"*":{"id":"7506","name":"*","chunks":[],"async":false}},"6658":{"*":{"id":"7034","name":"*","chunks":[],"async":false}},"7698":{"*":{"id":"576","name":"*","chunks":[],"async":false}},"8419":{"*":{"id":"8833","name":"*","chunks":[],"async":false}},"8954":{"*":{"id":"6358","name":"*","chunks":[],"async":false}},"9103":{"*":{"id":"7140","name":"*","chunks":[],"async":false}},"9129":{"*":{"id":"5226","name":"*","chunks":[],"async":false}},"9275":{"*":{"id":"6273","name":"*","chunks":[],"async":false}},"9976":{"*":{"id":"1736","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7698,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7698,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-page.js":{"id":3339,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":3339,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-segment.js":{"id":4033,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":4033,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":5754,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":5754,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/layout-router.js":{"id":8954,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":8954,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":6658,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":6658,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":5640,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":5640,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":2051,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":2051,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":4970,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/node_modules/.pnpm/next@15.5.12_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":4970,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/auth-provider.tsx":{"id":783,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/breadcrumb-provider.tsx":{"id":5152,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/login-page.tsx":{"id":1308,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/shell.tsx":{"id":1961,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/components/theme-provider.tsx":{"id":9129,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/globals.css":{"id":9469,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/hooks/use-station.tsx":{"id":9275,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","177","static/chunks/app/layout-68cd71116ba65cd8.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/page.tsx":{"id":8419,"name":"*","chunks":["580","static/chunks/580-f007f4d4c050db4e.js","974","static/chunks/app/page-70b0c0958c03459a.js"],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/broadcasts/[id]/broadcast-detail.tsx":{"id":6537,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/runs/[id]/run-detail.tsx":{"id":9103,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/settings/page.tsx":{"id":4521,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/broadcasts/page.tsx":{"id":9976,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/signals/[name]/signal-detail.tsx":{"id":2638,"name":"*","chunks":[],"async":false},"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/signals/page.tsx":{"id":4913,"name":"*","chunks":["764","static/chunks/app/signals/page-6a123a355d93fec5.js"],"async":false}},"entryCSSFiles":{"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/":[],"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/layout":[{"inlined":false,"path":"static/css/0be0e65a5f561f37.css"}],"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/page":[],"/Users/don/Documents/dev/simple-signal/packages/station-kit/src/app/signals/page":[]},"rscModuleMapping":{"783":{"*":{"id":"3087","name":"*","chunks":[],"async":false}},"1308":{"*":{"id":"4562","name":"*","chunks":[],"async":false}},"1961":{"*":{"id":"6825","name":"*","chunks":[],"async":false}},"2051":{"*":{"id":"5273","name":"*","chunks":[],"async":false}},"2638":{"*":{"id":"664","name":"*","chunks":[],"async":false}},"3339":{"*":{"id":"5701","name":"*","chunks":[],"async":false}},"4033":{"*":{"id":"8709","name":"*","chunks":[],"async":false}},"4521":{"*":{"id":"9845","name":"*","chunks":[],"async":false}},"4913":{"*":{"id":"5453","name":"*","chunks":[],"async":false}},"4970":{"*":{"id":"1824","name":"*","chunks":[],"async":false}},"5152":{"*":{"id":"8728","name":"*","chunks":[],"async":false}},"5640":{"*":{"id":"1968","name":"*","chunks":[],"async":false}},"5754":{"*":{"id":"492","name":"*","chunks":[],"async":false}},"6537":{"*":{"id":"5026","name":"*","chunks":[],"async":false}},"6658":{"*":{"id":"5800","name":"*","chunks":[],"async":false}},"7698":{"*":{"id":"2714","name":"*","chunks":[],"async":false}},"8419":{"*":{"id":"1727","name":"*","chunks":[],"async":false}},"8954":{"*":{"id":"3012","name":"*","chunks":[],"async":false}},"9103":{"*":{"id":"7702","name":"*","chunks":[],"async":false}},"9129":{"*":{"id":"4556","name":"*","chunks":[],"async":false}},"9275":{"*":{"id":"5295","name":"*","chunks":[],"async":false}},"9469":{"*":{"id":"4267","name":"*","chunks":[],"async":false}},"9976":{"*":{"id":"1006","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"2051":{"*":{"id":"2455","name":"*","chunks":[],"async":false}},"3339":{"*":{"id":"611","name":"*","chunks":[],"async":false}},"4033":{"*":{"id":"5519","name":"*","chunks":[],"async":false}},"4970":{"*":{"id":"4978","name":"*","chunks":[],"async":false}},"5640":{"*":{"id":"5506","name":"*","chunks":[],"async":false}},"5754":{"*":{"id":"4450","name":"*","chunks":[],"async":false}},"6658":{"*":{"id":"7034","name":"*","chunks":[],"async":false}},"7698":{"*":{"id":"576","name":"*","chunks":[],"async":false}},"8954":{"*":{"id":"6358","name":"*","chunks":[],"async":false}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--xYd6dn0Ox68DaamIrH_pB--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/0be0e65a5f561f37.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e40b05d6bdcb3589.js"/><script src="/_next/static/chunks/8e6518bb-c26e82767f1faf66.js" async=""></script><script src="/_next/static/chunks/743-33720d133c383396.js" async=""></script><script src="/_next/static/chunks/main-app-a9f19d5831b41b19.js" async=""></script><script src="/_next/static/chunks/580-f007f4d4c050db4e.js" async=""></script><script src="/_next/static/chunks/app/layout-68cd71116ba65cd8.js" async=""></script><script src="/_next/static/chunks/app/signals/page-6a123a355d93fec5.js" async=""></script><title>Station</title><meta name="description" content="Dashboard for station-signal"/><script>(function(){try{var t=localStorage.getItem("station-theme");if(t==="dark"||t==="light"){document.documentElement.setAttribute("data-theme",t)}else if(window.matchMedia("(prefers-color-scheme:dark)").matches){document.documentElement.setAttribute("data-theme","dark")}else{document.documentElement.setAttribute("data-theme","light")}}catch(e){document.documentElement.setAttribute("data-theme","light")}})()</script><link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=IBM+Plex+Mono:wght@400;500&family=Space+Grotesk:wght@300;400;500&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-e40b05d6bdcb3589.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9129,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"ThemeProvider\"]\n3:I[783,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"AuthProvider\"]\n4:I[1308,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"LoginPage\"]\n5:I[9275,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"StationProvider\"]\n6:I[5152,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"BreadcrumbProvider\"]\n7:I[1961,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"Shell\"]\n8:I[8954,[],\"\"]\n9:I[5640,[],\"\"]\na:I[3339,[],\"ClientPageRoot\"]\nb:I[4913,[\"764\",\"static/chunks/app/signals/page-6a123a355d93fec5.js\"],\"default\"]\ne:I[2051,[],\"OutletBoundary\"]\n10:I[6658,[],\"AsyncMetadataOutlet\"]\n12:I[2051,[],\"ViewportBoundary\"]\n14:I[2051,[],\"MetadataBoundary\"]\n15:\"$Sreact.suspense\"\n17:I[7698,[],\"\"]\n:HL[\"/_next/static/css/0be0e65a5f561f37.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"xYd6dn0Ox68DaamIrH_pB\",\"p\":\"\",\"c\":[\"\",\"signals\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"signals\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0be0e65a5f561f37.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"station-theme\\\");if(t===\\\"dark\\\"||t===\\\"light\\\"){document.documentElement.setAttribute(\\\"data-theme\\\",t)}else if(window.matchMedia(\\\"(prefers-color-scheme:dark)\\\").matches){document.documentElement.setAttribute(\\\"data-theme\\\",\\\"dark\\\")}else{document.documentElement.setAttribute(\\\"data-theme\\\",\\\"light\\\")}}catch(e){document.documentElement.setAttribute(\\\"data-theme\\\",\\\"light\\\")}})()\"}}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1\u0026family=IBM+Plex+Mono:wght@400;500\u0026family=Space+Grotesk:wght@300;400;500\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"loginPage\":[\"$\",\"$L4\",null,{}],\"children\":[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]}]}]]}]]}],{\"children\":[\"signals\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L8\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$La\",null,{\"Component\":\"$b\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@c\",\"$@d\"]}],null,[\"$\",\"$Le\",null,{\"children\":[\"$Lf\",[\"$\",\"$L10\",null,{\"promise\":\"$@11\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],null],[\"$\",\"$L14\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$15\",null,{\"fallback\":null,\"children\":\"$L16\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$17\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:{}\nd:\"$0:f:0:1:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nf:null\n"])</script><script>self.__next_f.push([1,"11:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Station\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Dashboard for station-signal\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"16:\"$11:metadata\"\n"])</script></body></html>
|
|
@@ -16,7 +16,7 @@ e:I[2051,[],"OutletBoundary"]
|
|
|
16
16
|
15:"$Sreact.suspense"
|
|
17
17
|
17:I[7698,[],""]
|
|
18
18
|
:HL["/_next/static/css/0be0e65a5f561f37.css","style"]
|
|
19
|
-
0:{"P":null,"b":"
|
|
19
|
+
0:{"P":null,"b":"xYd6dn0Ox68DaamIrH_pB","p":"","c":["","signals"],"i":false,"f":[[["",{"children":["signals",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0be0e65a5f561f37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"station-theme\");if(t===\"dark\"||t===\"light\"){document.documentElement.setAttribute(\"data-theme\",t)}else if(window.matchMedia(\"(prefers-color-scheme:dark)\").matches){document.documentElement.setAttribute(\"data-theme\",\"dark\")}else{document.documentElement.setAttribute(\"data-theme\",\"light\")}}catch(e){document.documentElement.setAttribute(\"data-theme\",\"light\")}})()"}}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=IBM+Plex+Mono:wght@400;500&family=Space+Grotesk:wght@300;400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"loginPage":["$","$L4",null,{}],"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]}]}]]}]]}],{"children":["signals",["$","$1","c",{"children":[null,["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$La",null,{"Component":"$b","searchParams":{},"params":{},"promises":["$@c","$@d"]}],null,["$","$Le",null,{"children":["$Lf",["$","$L10",null,{"promise":"$@11"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L12",null,{"children":"$L13"}],null],["$","$L14",null,{"children":["$","div",null,{"hidden":true,"children":["$","$15",null,{"fallback":null,"children":"$L16"}]}]}]]}],false]],"m":"$undefined","G":["$17",[]],"s":false,"S":true}
|
|
20
20
|
c:{}
|
|
21
21
|
d:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
|
|
22
22
|
13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
|
+
"/page": "app/page.js",
|
|
3
4
|
"/broadcasts/[id]/page": "app/broadcasts/[id]/page.js",
|
|
4
5
|
"/runs/[id]/page": "app/runs/[id]/page.js",
|
|
5
|
-
"/signals/[name]/page": "app/signals/[name]/page.js",
|
|
6
6
|
"/settings/page": "app/settings/page.js",
|
|
7
|
-
"/signals/page": "app/signals/page.js",
|
|
8
7
|
"/broadcasts/page": "app/broadcasts/page.js",
|
|
9
|
-
"/page": "app/page.js"
|
|
8
|
+
"/signals/[name]/page": "app/signals/[name]/page.js",
|
|
9
|
+
"/signals/page": "app/signals/page.js"
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--xYd6dn0Ox68DaamIrH_pB--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/0be0e65a5f561f37.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e40b05d6bdcb3589.js"/><script src="/_next/static/chunks/8e6518bb-c26e82767f1faf66.js" async=""></script><script src="/_next/static/chunks/743-33720d133c383396.js" async=""></script><script src="/_next/static/chunks/main-app-a9f19d5831b41b19.js" async=""></script><script src="/_next/static/chunks/580-f007f4d4c050db4e.js" async=""></script><script src="/_next/static/chunks/app/layout-68cd71116ba65cd8.js" async=""></script><meta name="robots" content="noindex"/><title>Station</title><meta name="description" content="Dashboard for station-signal"/><script>(function(){try{var t=localStorage.getItem("station-theme");if(t==="dark"||t==="light"){document.documentElement.setAttribute("data-theme",t)}else if(window.matchMedia("(prefers-color-scheme:dark)").matches){document.documentElement.setAttribute("data-theme","dark")}else{document.documentElement.setAttribute("data-theme","light")}}catch(e){document.documentElement.setAttribute("data-theme","light")}})()</script><link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=IBM+Plex+Mono:wght@400;500&family=Space+Grotesk:wght@300;400;500&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-e40b05d6bdcb3589.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9129,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"ThemeProvider\"]\n3:I[783,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"AuthProvider\"]\n4:I[1308,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"LoginPage\"]\n5:I[9275,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"StationProvider\"]\n6:I[5152,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"BreadcrumbProvider\"]\n7:I[1961,[\"580\",\"static/chunks/580-f007f4d4c050db4e.js\",\"177\",\"static/chunks/app/layout-68cd71116ba65cd8.js\"],\"Shell\"]\n8:I[8954,[],\"\"]\n9:I[5640,[],\"\"]\na:I[2051,[],\"OutletBoundary\"]\nc:I[6658,[],\"AsyncMetadataOutlet\"]\ne:I[2051,[],\"ViewportBoundary\"]\n10:I[2051,[],\"MetadataBoundary\"]\n11:\"$Sreact.suspense\"\n13:I[7698,[],\"\"]\n:HL[\"/_next/static/css/0be0e65a5f561f37.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"xYd6dn0Ox68DaamIrH_pB\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0be0e65a5f561f37.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"station-theme\\\");if(t===\\\"dark\\\"||t===\\\"light\\\"){document.documentElement.setAttribute(\\\"data-theme\\\",t)}else if(window.matchMedia(\\\"(prefers-color-scheme:dark)\\\").matches){document.documentElement.setAttribute(\\\"data-theme\\\",\\\"dark\\\")}else{document.documentElement.setAttribute(\\\"data-theme\\\",\\\"light\\\")}}catch(e){document.documentElement.setAttribute(\\\"data-theme\\\",\\\"light\\\")}})()\"}}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1\u0026family=IBM+Plex+Mono:wght@400;500\u0026family=Space+Grotesk:wght@300;400;500\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"loginPage\":[\"$\",\"$L4\",null,{}],\"children\":[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L8\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$La\",null,{\"children\":[\"$Lb\",[\"$\",\"$Lc\",null,{\"promise\":\"$@d\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],null],[\"$\",\"$L10\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$11\",null,{\"fallback\":null,\"children\":\"$L12\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$13\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nb:null\n"])</script><script>self.__next_f.push([1,"d:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Station\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Dashboard for station-signal\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"12:\"$d:metadata\"\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-e40b05d6bdcb3589.js" defer=""></script><script src="/_next/static/chunks/framework-077b27ad7787463c.js" defer=""></script><script src="/_next/static/chunks/main-f1c74cefd4965abf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-0a7b2e66ecbe3f0a.js" defer=""></script><script src="/_next/static/chunks/pages/_error-273a093c18b5ed0f.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-e40b05d6bdcb3589.js" defer=""></script><script src="/_next/static/chunks/framework-077b27ad7787463c.js" defer=""></script><script src="/_next/static/chunks/main-f1c74cefd4965abf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-0a7b2e66ecbe3f0a.js" defer=""></script><script src="/_next/static/chunks/pages/_error-273a093c18b5ed0f.js" defer=""></script><script src="/_next/static/xYd6dn0Ox68DaamIrH_pB/_buildManifest.js" defer=""></script><script src="/_next/static/xYd6dn0Ox68DaamIrH_pB/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"xYd6dn0Ox68DaamIrH_pB","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "station-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Dashboard for station-signal — inspect and control signals and broadcasts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
"types": "./dist/index.d.ts",
|
|
17
17
|
"import": "./dist/index.js",
|
|
18
18
|
"default": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./server": {
|
|
21
|
+
"types": "./dist/server/index.d.ts",
|
|
22
|
+
"import": "./dist/server/index.js"
|
|
19
23
|
}
|
|
20
24
|
},
|
|
21
25
|
"files": [
|
|
@@ -31,27 +35,28 @@
|
|
|
31
35
|
"typecheck": "tsc --noEmit"
|
|
32
36
|
},
|
|
33
37
|
"peerDependencies": {
|
|
34
|
-
"station-
|
|
35
|
-
"station-
|
|
38
|
+
"station-broadcast": "workspace:*",
|
|
39
|
+
"station-signal": "workspace:*"
|
|
36
40
|
},
|
|
37
41
|
"dependencies": {
|
|
38
|
-
"hono": "^4",
|
|
39
42
|
"@hono/node-server": "^1",
|
|
40
43
|
"better-sqlite3": "^11.9.1",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
44
|
+
"esbuild": "^0.25.12",
|
|
45
|
+
"hono": "^4",
|
|
43
46
|
"next": "^15",
|
|
44
47
|
"react": "^19",
|
|
45
|
-
"react-dom": "^19"
|
|
48
|
+
"react-dom": "^19",
|
|
49
|
+
"tsx": "^4.21.0",
|
|
50
|
+
"ws": "^8"
|
|
46
51
|
},
|
|
47
52
|
"devDependencies": {
|
|
48
|
-
"station-signal": "workspace:*",
|
|
49
|
-
"station-broadcast": "workspace:*",
|
|
50
|
-
"typescript": "^5.9.3",
|
|
51
53
|
"@types/better-sqlite3": "^7.6.13",
|
|
52
54
|
"@types/node": "^25.3.0",
|
|
53
55
|
"@types/react": "^19",
|
|
54
56
|
"@types/react-dom": "^19",
|
|
55
|
-
"@types/ws": "^8"
|
|
57
|
+
"@types/ws": "^8",
|
|
58
|
+
"station-broadcast": "workspace:*",
|
|
59
|
+
"station-signal": "workspace:*",
|
|
60
|
+
"typescript": "^5.9.3"
|
|
56
61
|
}
|
|
57
62
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/cli/deploy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import { writeFileSync, readFileSync, cpSync, existsSync, readdirSync, rmSync, mkdirSync, statSync, } from "node:fs";
|
|
2
|
+
import { join, resolve, dirname } from "node:path";
|
|
3
|
+
import { builtinModules } from "node:module";
|
|
4
|
+
import { build } from "esbuild";
|
|
5
|
+
import { loadConfig } from "../config/loader.js";
|
|
6
|
+
import { ensureStationDir } from "../station-dir.js";
|
|
7
|
+
const cwd = process.cwd();
|
|
8
|
+
// Ensure .station/data exists before loading config — adapter constructors may open DBs
|
|
9
|
+
const defaultStationDir = ".station";
|
|
10
|
+
mkdirSync(join(cwd, defaultStationDir, "data"), { recursive: true });
|
|
11
|
+
const config = await loadConfig(cwd);
|
|
12
|
+
const { outDir } = ensureStationDir(cwd, config.stationDir);
|
|
13
|
+
// ── Workspace resolution ────────────────────────────────────
|
|
14
|
+
function findWorkspaceRoot(startDir) {
|
|
15
|
+
let dir = startDir;
|
|
16
|
+
while (true) {
|
|
17
|
+
if (existsSync(join(dir, "pnpm-workspace.yaml")))
|
|
18
|
+
return dir;
|
|
19
|
+
const pkgPath = join(dir, "package.json");
|
|
20
|
+
if (existsSync(pkgPath)) {
|
|
21
|
+
try {
|
|
22
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
23
|
+
if (pkg.workspaces)
|
|
24
|
+
return dir;
|
|
25
|
+
}
|
|
26
|
+
catch { }
|
|
27
|
+
}
|
|
28
|
+
const parent = dirname(dir);
|
|
29
|
+
if (parent === dir)
|
|
30
|
+
return null;
|
|
31
|
+
dir = parent;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function resolveWorkspaceVersion(depName, startDir) {
|
|
35
|
+
const root = findWorkspaceRoot(startDir);
|
|
36
|
+
if (!root)
|
|
37
|
+
return null;
|
|
38
|
+
const candidate = join(root, "packages", depName, "package.json");
|
|
39
|
+
if (!existsSync(candidate))
|
|
40
|
+
return null;
|
|
41
|
+
try {
|
|
42
|
+
const pkg = JSON.parse(readFileSync(candidate, "utf-8"));
|
|
43
|
+
return pkg.version ?? null;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const resolvedDeps = [];
|
|
50
|
+
function buildProductionPackageJson() {
|
|
51
|
+
const pkgPath = join(cwd, "package.json");
|
|
52
|
+
if (!existsSync(pkgPath)) {
|
|
53
|
+
console.error("[station] No package.json found.");
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
const raw = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
57
|
+
// Merge deps: all dependencies + station-* from devDependencies
|
|
58
|
+
const deps = { ...(raw.dependencies ?? {}) };
|
|
59
|
+
if (raw.devDependencies) {
|
|
60
|
+
for (const [name, version] of Object.entries(raw.devDependencies)) {
|
|
61
|
+
if (name.startsWith("station-") && !deps[name]) {
|
|
62
|
+
deps[name] = version;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Resolve workspace:* → ^{version}
|
|
67
|
+
for (const [name, version] of Object.entries(deps)) {
|
|
68
|
+
if (version.startsWith("workspace:")) {
|
|
69
|
+
const resolved_version = resolveWorkspaceVersion(name, cwd);
|
|
70
|
+
if (resolved_version) {
|
|
71
|
+
const newVersion = `^${resolved_version}`;
|
|
72
|
+
resolvedDeps.push({ dep: name, from: version, to: newVersion });
|
|
73
|
+
deps[name] = newVersion;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.warn(`[station] Could not resolve ${version} for "${name}" — ensure you are in a workspace or use real version numbers.`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const out = {};
|
|
81
|
+
if (raw.name)
|
|
82
|
+
out.name = raw.name;
|
|
83
|
+
if (raw.version)
|
|
84
|
+
out.version = raw.version;
|
|
85
|
+
if (raw.type)
|
|
86
|
+
out.type = raw.type;
|
|
87
|
+
if (raw.private !== undefined)
|
|
88
|
+
out.private = raw.private;
|
|
89
|
+
if (raw.description)
|
|
90
|
+
out.description = raw.description;
|
|
91
|
+
if (raw.license)
|
|
92
|
+
out.license = raw.license;
|
|
93
|
+
if (raw.author)
|
|
94
|
+
out.author = raw.author;
|
|
95
|
+
out.scripts = { start: "npx station --no-open --host 0.0.0.0" };
|
|
96
|
+
out.dependencies = deps;
|
|
97
|
+
return out;
|
|
98
|
+
}
|
|
99
|
+
// ── Discover entry points ───────────────────────────────────
|
|
100
|
+
function discoverFiles(dir) {
|
|
101
|
+
if (!existsSync(dir))
|
|
102
|
+
return [];
|
|
103
|
+
const files = [];
|
|
104
|
+
for (const entry of readdirSync(dir, { recursive: true })) {
|
|
105
|
+
const full = join(dir, entry.toString());
|
|
106
|
+
if (statSync(full).isFile() && /\.(ts|js|mjs)$/.test(full)) {
|
|
107
|
+
files.push(full);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return files;
|
|
111
|
+
}
|
|
112
|
+
function findConfigFile() {
|
|
113
|
+
for (const name of ["station.config.ts", "station.config.js", "station.config.mjs"]) {
|
|
114
|
+
const candidate = join(cwd, name);
|
|
115
|
+
if (existsSync(candidate))
|
|
116
|
+
return candidate;
|
|
117
|
+
}
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
// ── Build ───────────────────────────────────────────────────
|
|
121
|
+
console.log("\n[station] Building deploy bundle...\n");
|
|
122
|
+
// Clean out directory
|
|
123
|
+
if (existsSync(outDir)) {
|
|
124
|
+
rmSync(outDir, { recursive: true });
|
|
125
|
+
}
|
|
126
|
+
mkdirSync(outDir, { recursive: true });
|
|
127
|
+
// Write production package.json first (need deps list for externals)
|
|
128
|
+
const prodPkg = buildProductionPackageJson();
|
|
129
|
+
writeFileSync(join(outDir, "package.json"), JSON.stringify(prodPkg, null, 2) + "\n");
|
|
130
|
+
// Collect entry points
|
|
131
|
+
const entryPoints = [];
|
|
132
|
+
let signalCount = 0;
|
|
133
|
+
let broadcastCount = 0;
|
|
134
|
+
if (config.signalsDir) {
|
|
135
|
+
const signalsSrc = resolve(cwd, config.signalsDir);
|
|
136
|
+
const files = discoverFiles(signalsSrc);
|
|
137
|
+
signalCount = files.length;
|
|
138
|
+
entryPoints.push(...files);
|
|
139
|
+
}
|
|
140
|
+
if (config.broadcastsDir) {
|
|
141
|
+
const broadcastsSrc = resolve(cwd, config.broadcastsDir);
|
|
142
|
+
const files = discoverFiles(broadcastsSrc);
|
|
143
|
+
broadcastCount = files.length;
|
|
144
|
+
entryPoints.push(...files);
|
|
145
|
+
}
|
|
146
|
+
const configFile = findConfigFile();
|
|
147
|
+
if (configFile) {
|
|
148
|
+
entryPoints.push(configFile);
|
|
149
|
+
}
|
|
150
|
+
if (entryPoints.length === 0) {
|
|
151
|
+
console.error("[station] No signals, broadcasts, or config found to bundle.");
|
|
152
|
+
process.exit(1);
|
|
153
|
+
}
|
|
154
|
+
// Collect externals: all npm deps + node builtins
|
|
155
|
+
const external = [
|
|
156
|
+
...Object.keys(prodPkg.dependencies ?? {}),
|
|
157
|
+
...builtinModules,
|
|
158
|
+
...builtinModules.map((m) => `node:${m}`),
|
|
159
|
+
];
|
|
160
|
+
// Run esbuild
|
|
161
|
+
try {
|
|
162
|
+
const result = await build({
|
|
163
|
+
entryPoints,
|
|
164
|
+
outdir: outDir,
|
|
165
|
+
outbase: cwd,
|
|
166
|
+
bundle: true,
|
|
167
|
+
splitting: true,
|
|
168
|
+
format: "esm",
|
|
169
|
+
platform: "node",
|
|
170
|
+
target: "node20",
|
|
171
|
+
external,
|
|
172
|
+
logLevel: "warning",
|
|
173
|
+
});
|
|
174
|
+
if (result.errors.length > 0) {
|
|
175
|
+
console.error("[station] Build failed.");
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
console.error("[station] Build failed:", err.message);
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
// Count shared chunks
|
|
184
|
+
const outputFiles = readdirSync(outDir);
|
|
185
|
+
const chunks = outputFiles.filter((f) => f.startsWith("chunk-") && f.endsWith(".js"));
|
|
186
|
+
console.log(` Bundled ${signalCount} signal${signalCount !== 1 ? "s" : ""}, ${broadcastCount} broadcast${broadcastCount !== 1 ? "s" : ""}`);
|
|
187
|
+
if (chunks.length > 0) {
|
|
188
|
+
console.log(` ${chunks.length} shared chunk${chunks.length !== 1 ? "s" : ""} extracted`);
|
|
189
|
+
}
|
|
190
|
+
if (configFile) {
|
|
191
|
+
console.log(` Config compiled`);
|
|
192
|
+
}
|
|
193
|
+
// ── Copy deploy.include entries ─────────────────────────────
|
|
194
|
+
if (config.deploy?.include) {
|
|
195
|
+
for (const entry of config.deploy.include) {
|
|
196
|
+
const src = resolve(cwd, entry);
|
|
197
|
+
if (!existsSync(src)) {
|
|
198
|
+
console.warn(` [station] Warning: deploy.include path not found: ${entry}`);
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
const dest = join(outDir, entry);
|
|
202
|
+
if (statSync(src).isDirectory()) {
|
|
203
|
+
cpSync(src, dest, { recursive: true });
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
mkdirSync(dirname(dest), { recursive: true });
|
|
207
|
+
cpSync(src, dest);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// ── Dockerfile ──────────────────────────────────────────────
|
|
212
|
+
function generateDockerfile() {
|
|
213
|
+
const port = config.port;
|
|
214
|
+
return [
|
|
215
|
+
`FROM node:20-alpine`,
|
|
216
|
+
`WORKDIR /app`,
|
|
217
|
+
``,
|
|
218
|
+
`COPY package.json ./`,
|
|
219
|
+
`RUN npm install --omit=dev`,
|
|
220
|
+
``,
|
|
221
|
+
`COPY . .`,
|
|
222
|
+
``,
|
|
223
|
+
`EXPOSE ${port}`,
|
|
224
|
+
`ENV NODE_ENV=production`,
|
|
225
|
+
`ENV HOST=0.0.0.0`,
|
|
226
|
+
`ENV PORT=${port}`,
|
|
227
|
+
``,
|
|
228
|
+
`# Set these in your deployment platform:`,
|
|
229
|
+
`# ENV STATION_AUTH_USERNAME=admin`,
|
|
230
|
+
`# ENV STATION_AUTH_PASSWORD=changeme`,
|
|
231
|
+
``,
|
|
232
|
+
`CMD ["npx", "station", "--no-open", "--host", "0.0.0.0"]`,
|
|
233
|
+
``,
|
|
234
|
+
].join("\n");
|
|
235
|
+
}
|
|
236
|
+
// ── nixpacks.toml ───────────────────────────────────────────
|
|
237
|
+
function generateNixpacks() {
|
|
238
|
+
return [
|
|
239
|
+
`[phases.setup]`,
|
|
240
|
+
`nixPkgs = ["nodejs_20"]`,
|
|
241
|
+
``,
|
|
242
|
+
`[phases.install]`,
|
|
243
|
+
`cmds = ["npm install --omit=dev"]`,
|
|
244
|
+
``,
|
|
245
|
+
`[start]`,
|
|
246
|
+
`cmd = "npx station --no-open --host 0.0.0.0"`,
|
|
247
|
+
``,
|
|
248
|
+
].join("\n");
|
|
249
|
+
}
|
|
250
|
+
// ── Write deployment files ──────────────────────────────────
|
|
251
|
+
writeFileSync(join(outDir, "Dockerfile"), generateDockerfile());
|
|
252
|
+
writeFileSync(join(outDir, "nixpacks.toml"), generateNixpacks());
|
|
253
|
+
writeFileSync(join(outDir, ".dockerignore"), ["node_modules", ".station/data", "*.db", ".git", ""].join("\n"));
|
|
254
|
+
writeFileSync(join(outDir, ".gitignore"), ["node_modules/", "data/", "*.db", ""].join("\n"));
|
|
255
|
+
// ── Summary ─────────────────────────────────────────────────
|
|
256
|
+
function listDir(dir, prefix = "") {
|
|
257
|
+
const entries = [];
|
|
258
|
+
for (const entry of readdirSync(dir).sort()) {
|
|
259
|
+
const full = join(dir, entry);
|
|
260
|
+
if (statSync(full).isDirectory()) {
|
|
261
|
+
entries.push(`${prefix}${entry}/`);
|
|
262
|
+
entries.push(...listDir(full, `${prefix} `));
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
entries.push(`${prefix}${entry}`);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return entries;
|
|
269
|
+
}
|
|
270
|
+
console.log(`\n ${outDir}\n`);
|
|
271
|
+
for (const line of listDir(outDir)) {
|
|
272
|
+
console.log(` ${line}`);
|
|
273
|
+
}
|
|
274
|
+
if (resolvedDeps.length > 0) {
|
|
275
|
+
console.log(`\n Resolved dependencies:`);
|
|
276
|
+
for (const r of resolvedDeps) {
|
|
277
|
+
console.log(` ${r.dep}: ${r.from} → ${r.to}`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
console.log(`\n Environment variables:`);
|
|
281
|
+
console.log(` STATION_AUTH_USERNAME — dashboard login`);
|
|
282
|
+
console.log(` STATION_AUTH_PASSWORD — dashboard password`);
|
|
283
|
+
console.log(` PORT — server port (default: ${config.port})`);
|
|
284
|
+
console.log(`\n Deploy:`);
|
|
285
|
+
console.log(` docker build -t station ${outDir}`);
|
|
286
|
+
console.log(` docker run -p ${config.port}:${config.port} station\n`);
|
|
287
|
+
//# sourceMappingURL=deploy.js.map
|