@pablopunk/webr 0.1.1

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.
Files changed (126) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +17 -0
  3. package/bin/webr.mjs +11 -0
  4. package/dist/client/_astro/App.BxlQhLhN.css +1 -0
  5. package/dist/client/_astro/App.CzxEZ_Dw.js +2 -0
  6. package/dist/client/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CTgtIFyY.js +1 -0
  7. package/dist/client/_astro/addon-fit.jgKqzwky.js +1 -0
  8. package/dist/client/_astro/addon-web-links.C9lyQRxI.js +1 -0
  9. package/dist/client/_astro/client.BDkzSRUN.js +1 -0
  10. package/dist/client/_astro/client.Bbg9OBwT.js +1 -0
  11. package/dist/client/_astro/client.CLSsMr2g.js +9 -0
  12. package/dist/client/_astro/jetbrains-mono.CFJaiWaY.woff2 +0 -0
  13. package/dist/client/_astro/symbols-nerd.CEdkKAK8.woff2 +0 -0
  14. package/dist/client/_astro/xterm.B-l5AIf6.js +7 -0
  15. package/dist/client/apple-touch-icon.png +0 -0
  16. package/dist/client/brand-mark.png +0 -0
  17. package/dist/client/favicon-16.png +0 -0
  18. package/dist/client/favicon-32.png +0 -0
  19. package/dist/client/favicon.ico +0 -0
  20. package/dist/client/icon-192.png +0 -0
  21. package/dist/client/icon-512.png +0 -0
  22. package/dist/client/icon-maskable-512.png +0 -0
  23. package/dist/client/manifest.webmanifest +30 -0
  24. package/dist/server/chunks/App_BmsGAwGf.mjs +4314 -0
  25. package/dist/server/chunks/_id__u0ueX6GO.mjs +34 -0
  26. package/dist/server/chunks/_tab__DL6wyr-j.mjs +35 -0
  27. package/dist/server/chunks/_virtual_astro_server-island-manifest_C1Q2srgE.mjs +5 -0
  28. package/dist/server/chunks/_virtual_astro_session-driver_DS5V7T-N.mjs +6 -0
  29. package/dist/server/chunks/compiler_CpXox_xS.mjs +35 -0
  30. package/dist/server/chunks/console_CucE1SwS.mjs +170 -0
  31. package/dist/server/chunks/errors_BgIp4W2B.mjs +383 -0
  32. package/dist/server/chunks/index_DyyPce_k.mjs +22 -0
  33. package/dist/server/chunks/new_G7XChx5p.mjs +33 -0
  34. package/dist/server/chunks/node_BlixNyYV.mjs +1816 -0
  35. package/dist/server/chunks/noop-entrypoint_Z3zFhrGC.mjs +4 -0
  36. package/dist/server/chunks/remote_BxuVLM0r.mjs +169 -0
  37. package/dist/server/chunks/server_DS45LC4q.mjs +2496 -0
  38. package/dist/server/chunks/settings_DLV2Js3e.mjs +31 -0
  39. package/dist/server/chunks/sharp_CgNvPCpY.mjs +152 -0
  40. package/dist/server/chunks/vnode-children_CRmaSs5G.mjs +24 -0
  41. package/dist/server/entry.mjs +5837 -0
  42. package/dist/server/virtual_astro_middleware.mjs +4 -0
  43. package/drizzle/0000_gateway.sql +13 -0
  44. package/drizzle/0001_device_sessions.sql +9 -0
  45. package/drizzle/0002_audit_events.sql +7 -0
  46. package/drizzle/meta/_journal.json +1 -0
  47. package/package.json +88 -0
  48. package/server/cli.ts +93 -0
  49. package/server/command.ts +9 -0
  50. package/server/entry.ts +3 -0
  51. package/server/herdr-check.ts +37 -0
  52. package/server/home.ts +4 -0
  53. package/server/log-file.ts +52 -0
  54. package/server/package-info.ts +6 -0
  55. package/server/plugin/config.ts +14 -0
  56. package/server/plugin/dev.ts +27 -0
  57. package/server/plugin/files.ts +10 -0
  58. package/server/plugin/herdr.ts +33 -0
  59. package/server/plugin/index.ts +68 -0
  60. package/server/plugin/probe.ts +17 -0
  61. package/server/plugin/stop.ts +39 -0
  62. package/server/port.ts +8 -0
  63. package/server/run.ts +35 -0
  64. package/server/ssr.ts +23 -0
  65. package/server/start.ts +5 -0
  66. package/server/update/hint.ts +26 -0
  67. package/server/update/index.ts +33 -0
  68. package/server/update/latest.ts +33 -0
  69. package/server/update/package-manager.ts +24 -0
  70. package/server/update/versions.ts +15 -0
  71. package/src/lib/avatars.ts +15 -0
  72. package/src/lib/launch.ts +16 -0
  73. package/src/lib/machines.ts +41 -0
  74. package/src/lib/mock-store.ts +82 -0
  75. package/src/lib/models.ts +139 -0
  76. package/src/lib/project-icons.ts +120 -0
  77. package/src/lib/terminal-split.ts +23 -0
  78. package/src/lib/uuid.ts +10 -0
  79. package/src/server/auth/access.ts +22 -0
  80. package/src/server/auth/audit.ts +15 -0
  81. package/src/server/auth/auth.ts +134 -0
  82. package/src/server/auth/pair-page.ts +85 -0
  83. package/src/server/auth/pairing.ts +91 -0
  84. package/src/server/auth/presence.ts +8 -0
  85. package/src/server/auth/sessions.ts +48 -0
  86. package/src/server/directories.ts +21 -0
  87. package/src/server/dist.ts +3 -0
  88. package/src/server/host.ts +166 -0
  89. package/src/server/perf-log.ts +23 -0
  90. package/src/server/protocol/deadlines.ts +24 -0
  91. package/src/server/protocol/native.ts +10 -0
  92. package/src/server/protocol/ndjson.ts +22 -0
  93. package/src/server/protocol/socket.ts +81 -0
  94. package/src/server/protocol/validate.ts +17 -0
  95. package/src/server/public-urls.ts +17 -0
  96. package/src/server/runtime/herdr-actions.ts +122 -0
  97. package/src/server/runtime/launch.ts +55 -0
  98. package/src/server/runtime/manager.ts +187 -0
  99. package/src/server/runtime/reconcile.ts +51 -0
  100. package/src/server/runtime/supervisor.ts +92 -0
  101. package/src/server/runtime/target.ts +37 -0
  102. package/src/server/runtime/workspace.ts +24 -0
  103. package/src/server/storage/database.ts +88 -0
  104. package/src/server/storage/drizzle-node-sqlite.ts +18 -0
  105. package/src/server/storage/node-sqlite-client.ts +44 -0
  106. package/src/server/storage/schema.ts +25 -0
  107. package/src/server/tailscale-host.ts +17 -0
  108. package/src/server/terminal/cli.ts +44 -0
  109. package/src/server/terminal/hub.ts +140 -0
  110. package/src/server/terminal/writer.ts +38 -0
  111. package/src/server/transport/herdr-target.ts +148 -0
  112. package/src/server/transport/icons.ts +65 -0
  113. package/src/server/transport/identity.ts +5 -0
  114. package/src/server/transport/local-session.ts +65 -0
  115. package/src/server/transport/model-discovery.ts +18 -0
  116. package/src/server/transport/native-locations.ts +17 -0
  117. package/src/server/transport/process.ts +21 -0
  118. package/src/server/transport/registry.ts +27 -0
  119. package/src/server/transport/ssh.ts +47 -0
  120. package/src/server/uploads.ts +40 -0
  121. package/src/server/websockets.ts +62 -0
  122. package/src/shared/agent-kinds.ts +4 -0
  123. package/src/shared/frame.ts +38 -0
  124. package/src/shared/projects.ts +1 -0
  125. package/src/shared/retry.ts +1 -0
  126. package/src/shared/runtime.ts +33 -0
@@ -0,0 +1,34 @@
1
+ import { R as __exportAll, S as createAstro, i as renderComponent, u as renderTemplate } from "./server_DS45LC4q.mjs";
2
+ import { t as createComponent } from "./compiler_CpXox_xS.mjs";
3
+ import { n as $$Base, t as App } from "./App_BmsGAwGf.mjs";
4
+ //#region src/pages/threads/[id].astro
5
+ var _id__exports = /* @__PURE__ */ __exportAll({
6
+ default: () => $$Id,
7
+ file: () => $$file,
8
+ url: () => $$url
9
+ });
10
+ createAstro("https://astro.build");
11
+ var $$Id = createComponent(($$result, $$props, $$slots) => {
12
+ const Astro = $$result.createAstro($$props, $$slots);
13
+ Astro.self = $$Id;
14
+ const bootstrap = Astro.locals.runtime.bootstrap();
15
+ const thread = bootstrap.threads.find((thread) => thread.id === Astro.params.id);
16
+ if (!thread) Astro.response.status = 404;
17
+ return renderTemplate`${renderComponent($$result, "Base", $$Base, { "title": thread?.title ?? "Thread not found" }, { "default": ($$result) => renderTemplate`${renderComponent($$result, "App", App, {
18
+ "page": thread ? "thread" : "missing",
19
+ "threadId": Astro.params.id,
20
+ "bootstrap": bootstrap,
21
+ "client:load": true,
22
+ "data-astro-transition-persist": "webr-app",
23
+ "client:component-hydration": "load",
24
+ "client:component-path": "/Users/pablopunk/src/herdr-web/src/components/App.tsx",
25
+ "client:component-export": "default"
26
+ })}` })}`;
27
+ }, "/Users/pablopunk/src/herdr-web/src/pages/threads/[id].astro", void 0);
28
+ var $$file = "/Users/pablopunk/src/herdr-web/src/pages/threads/[id].astro";
29
+ var $$url = "/threads/[id]";
30
+ //#endregion
31
+ //#region \0virtual:astro:page:src/pages/threads/[id]@_@astro
32
+ var page = () => _id__exports;
33
+ //#endregion
34
+ export { page };
@@ -0,0 +1,35 @@
1
+ import { R as __exportAll, S as createAstro, i as renderComponent, u as renderTemplate } from "./server_DS45LC4q.mjs";
2
+ import { t as createComponent } from "./compiler_CpXox_xS.mjs";
3
+ import { n as $$Base, t as App } from "./App_BmsGAwGf.mjs";
4
+ //#region src/pages/sessions/[session]/tabs/[tab].astro
5
+ var _tab__exports = /* @__PURE__ */ __exportAll({
6
+ default: () => $$Tab,
7
+ file: () => $$file,
8
+ url: () => $$url
9
+ });
10
+ createAstro("https://astro.build");
11
+ var $$Tab = createComponent(($$result, $$props, $$slots) => {
12
+ const Astro = $$result.createAstro($$props, $$slots);
13
+ Astro.self = $$Tab;
14
+ const bootstrap = Astro.locals.runtime.bootstrap();
15
+ const machineId = Astro.url.searchParams.get("machine");
16
+ const thread = machineId ? bootstrap.threads.find((item) => item.machineId === machineId && item.session === Astro.params.session && item.tabId === Astro.params.tab) : void 0;
17
+ if (!thread) Astro.response.status = 404;
18
+ return renderTemplate`${renderComponent($$result, "Base", $$Base, { "title": thread?.title ?? "Tab not found" }, { "default": ($$result) => renderTemplate`${renderComponent($$result, "App", App, {
19
+ "page": thread ? "thread" : "missing",
20
+ "threadId": thread?.id,
21
+ "bootstrap": bootstrap,
22
+ "client:load": true,
23
+ "data-astro-transition-persist": "webr-app",
24
+ "client:component-hydration": "load",
25
+ "client:component-path": "/Users/pablopunk/src/herdr-web/src/components/App.tsx",
26
+ "client:component-export": "default"
27
+ })}` })}`;
28
+ }, "/Users/pablopunk/src/herdr-web/src/pages/sessions/[session]/tabs/[tab].astro", void 0);
29
+ var $$file = "/Users/pablopunk/src/herdr-web/src/pages/sessions/[session]/tabs/[tab].astro";
30
+ var $$url = "/sessions/[session]/tabs/[tab]";
31
+ //#endregion
32
+ //#region \0virtual:astro:page:src/pages/sessions/[session]/tabs/[tab]@_@astro
33
+ var page = () => _tab__exports;
34
+ //#endregion
35
+ export { page };
@@ -0,0 +1,5 @@
1
+ //#region \0virtual:astro:server-island-manifest
2
+ var serverIslandMap = /* @__PURE__ */ new Map([]);
3
+ var serverIslandNameMap = /* @__PURE__ */ new Map([]);
4
+ //#endregion
5
+ export { serverIslandMap, serverIslandNameMap };
@@ -0,0 +1,6 @@
1
+ import _default from "unstorage/drivers/fs-lite";
2
+ export * from "unstorage/drivers/fs-lite";
3
+ //#region \0virtual:astro:session-driver
4
+ var _virtual_astro_session_driver_default = _default;
5
+ //#endregion
6
+ export { _virtual_astro_session_driver_default as default };
@@ -0,0 +1,35 @@
1
+ import "./server_DS45LC4q.mjs";
2
+ import { t as AstroError, x as InvalidComponentArgs } from "./errors_BgIp4W2B.mjs";
3
+ //#region node_modules/.pnpm/astro@7.3.5_@types+node@22.20.4_tsx@4.23.15_yaml@2.9.1/node_modules/astro/dist/runtime/server/astro-component.js
4
+ function validateArgs(args) {
5
+ if (args.length !== 3) return false;
6
+ if (!args[0] || typeof args[0] !== "object") return false;
7
+ return true;
8
+ }
9
+ function baseCreateComponent(cb, moduleId, propagation) {
10
+ const name = moduleId?.split("/").pop()?.replace(".astro", "") ?? "";
11
+ const fn = (...args) => {
12
+ if (!validateArgs(args)) throw new AstroError({
13
+ ...InvalidComponentArgs,
14
+ message: InvalidComponentArgs.message(name)
15
+ });
16
+ return cb(...args);
17
+ };
18
+ Object.defineProperty(fn, "name", {
19
+ value: name,
20
+ writable: false
21
+ });
22
+ fn.isAstroComponentFactory = true;
23
+ fn.moduleId = moduleId;
24
+ fn.propagation = propagation;
25
+ return fn;
26
+ }
27
+ function createComponentWithOptions(opts) {
28
+ return baseCreateComponent(opts.factory, opts.moduleId, opts.propagation);
29
+ }
30
+ function createComponent(arg1, moduleId, propagation) {
31
+ if (typeof arg1 === "function") return baseCreateComponent(arg1, moduleId, propagation);
32
+ else return createComponentWithOptions(arg1);
33
+ }
34
+ //#endregion
35
+ export { createComponent as t };
@@ -0,0 +1,170 @@
1
+ import colors from "piccolore";
2
+ //#region node_modules/.pnpm/astro@7.3.5_@types+node@22.20.4_tsx@4.23.15_yaml@2.9.1/node_modules/astro/dist/core/logger/core.js
3
+ var dateTimeFormat = new Intl.DateTimeFormat([], {
4
+ hour: "2-digit",
5
+ minute: "2-digit",
6
+ second: "2-digit",
7
+ hour12: false
8
+ });
9
+ var levels = {
10
+ debug: 20,
11
+ info: 30,
12
+ warn: 40,
13
+ error: 50,
14
+ silent: 90
15
+ };
16
+ function log(opts, level, label, message, newLine = true) {
17
+ const logLevel = opts.level;
18
+ const dest = opts.destination;
19
+ const event = {
20
+ label,
21
+ level,
22
+ message,
23
+ newLine
24
+ };
25
+ if (!isLogLevelEnabled(logLevel, level)) return;
26
+ dest.write(event);
27
+ }
28
+ function isLogLevelEnabled(configuredLogLevel, level) {
29
+ return levels[configuredLogLevel] <= levels[level];
30
+ }
31
+ function info(opts, label, message, newLine = true) {
32
+ return log(opts, "info", label, message, newLine);
33
+ }
34
+ function warn(opts, label, message, newLine = true) {
35
+ return log(opts, "warn", label, message, newLine);
36
+ }
37
+ function error(opts, label, message, newLine = true) {
38
+ return log(opts, "error", label, message, newLine);
39
+ }
40
+ function debug(...args) {
41
+ if ("_astroGlobalDebug" in globalThis) globalThis._astroGlobalDebug(...args);
42
+ }
43
+ function getEventPrefix({ level, label }) {
44
+ const timestamp = `${dateTimeFormat.format(/* @__PURE__ */ new Date())}`;
45
+ const prefix = [];
46
+ if (level === "error" || level === "warn") {
47
+ prefix.push(colors.bold(timestamp));
48
+ prefix.push(`[${level.toUpperCase()}]`);
49
+ } else prefix.push(timestamp);
50
+ if (label) prefix.push(`[${label}]`);
51
+ if (level === "error") return colors.red(prefix.join(" "));
52
+ if (level === "warn") return colors.yellow(prefix.join(" "));
53
+ if (prefix.length === 1) return colors.dim(prefix[0]);
54
+ return colors.dim(prefix[0]) + " " + colors.blue(prefix.splice(1).join(" "));
55
+ }
56
+ var AstroLogger = class {
57
+ options;
58
+ constructor(options) {
59
+ this.options = options;
60
+ }
61
+ info(label, message, newLine = true) {
62
+ info(this.options, label, message, newLine);
63
+ }
64
+ warn(label, message, newLine = true) {
65
+ warn(this.options, label, message, newLine);
66
+ }
67
+ error(label, message, newLine = true) {
68
+ error(this.options, label, message, newLine);
69
+ }
70
+ debug(label, ...messages) {
71
+ debug(label, ...messages);
72
+ }
73
+ level() {
74
+ return this.options.level;
75
+ }
76
+ forkIntegrationLogger(label) {
77
+ return new AstroIntegrationLogger(this.options, label);
78
+ }
79
+ setDestination(destination) {
80
+ this.options.destination = destination;
81
+ }
82
+ /**
83
+ * It calls the `close` function of the provided destination, if it exists.
84
+ */
85
+ close() {
86
+ if (this.options.destination.close) this.options.destination.close();
87
+ }
88
+ /**
89
+ * It calls the `flush` function of the provided destination, if it exists.
90
+ */
91
+ flush() {
92
+ if (this.options.destination.flush) this.options.destination.flush();
93
+ }
94
+ };
95
+ var AstroIntegrationLogger = class AstroIntegrationLogger {
96
+ options;
97
+ label;
98
+ constructor(logging, label) {
99
+ this.options = logging;
100
+ this.label = label;
101
+ }
102
+ /**
103
+ * Creates a new logger instance with a new label, but the same log options.
104
+ */
105
+ fork(label) {
106
+ return new AstroIntegrationLogger(this.options, label);
107
+ }
108
+ info(message) {
109
+ info(this.options, this.label, message);
110
+ }
111
+ warn(message) {
112
+ warn(this.options, this.label, message);
113
+ }
114
+ error(message) {
115
+ error(this.options, this.label, message);
116
+ }
117
+ debug(message) {
118
+ debug(this.label, message);
119
+ }
120
+ /**
121
+ * It calls the `flush` function of the provided destination, if it exists.
122
+ */
123
+ flush() {
124
+ if (this.options.destination.flush) this.options.destination.flush();
125
+ }
126
+ /**
127
+ * It calls the `close` function of the provided destination, if it exists.
128
+ */
129
+ close() {
130
+ if (this.options.destination.close) this.options.destination.close();
131
+ }
132
+ };
133
+ function astroToRuntimeLogger(logger) {
134
+ return {
135
+ info(msg) {
136
+ logger.info(null, msg);
137
+ },
138
+ warn(msg) {
139
+ logger.warn(null, msg);
140
+ },
141
+ error(msg) {
142
+ logger.error(null, msg);
143
+ }
144
+ };
145
+ }
146
+ //#endregion
147
+ //#region node_modules/.pnpm/astro@7.3.5_@types+node@22.20.4_tsx@4.23.15_yaml@2.9.1/node_modules/astro/dist/core/logger/public.js
148
+ function matchesLevel(messageLevel, configuredLevel) {
149
+ return levels[messageLevel] >= levels[configuredLevel];
150
+ }
151
+ //#endregion
152
+ //#region node_modules/.pnpm/astro@7.3.5_@types+node@22.20.4_tsx@4.23.15_yaml@2.9.1/node_modules/astro/dist/core/logger/impls/console.js
153
+ function consoleLogDestination(config = {}) {
154
+ const { level = "info" } = config;
155
+ return { write(event) {
156
+ let dest = console.error;
157
+ if (levels[event.level] < levels["error"]) dest = console.info;
158
+ if (!matchesLevel(event.level, level)) return;
159
+ if (event.label === "SKIP_FORMAT") dest(event.message);
160
+ else dest(getEventPrefix(event) + " " + event.message);
161
+ } };
162
+ }
163
+ function createConsoleLogger({ level }) {
164
+ return new AstroLogger({
165
+ level,
166
+ destination: consoleLogDestination()
167
+ });
168
+ }
169
+ //#endregion
170
+ export { AstroIntegrationLogger as n, astroToRuntimeLogger as r, createConsoleLogger as t };