@atria/server 0.0.6 → 0.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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  HTTP runtime server for atria development.
4
4
 
5
- This package serves files from `.atria/runtime` and powers the `atria dev` command in local development.
5
+ This package powers `atria dev` by serving `public/` for the public site and `.atria/runtime` for the back-office host.
6
6
 
7
7
  ## Install
8
8
 
@@ -27,7 +27,11 @@ await server.close();
27
27
 
28
28
  ## Behavior
29
29
 
30
- - Serves static files from `<projectRoot>/.atria/runtime`.
31
- - Responds to `GET /api/health` with `{ "ok": true }`.
32
- - Falls back to `index.html` for non-file routes.
33
- - Blocks path traversal attempts outside runtime directory.
30
+ - Serves `localhost` from `<projectRoot>/public`.
31
+ - Serves `admin.localhost` from `<projectRoot>/.atria/runtime`.
32
+ - Responds to `GET /api/health` with `{ "ok": true, "site": "public" | "admin", "publicOutputPublished": boolean }`.
33
+ - If `public/` has no files, `GET /` returns `503 Service Unavailable`.
34
+ - If `public/` has no files, other public routes return `404 Not Found`.
35
+ - For published output, missing public files/routes return `404` (serving `public/404.html` when present).
36
+ - Uses SPA-style `index.html` fallback only for `admin.localhost` non-file routes.
37
+ - Blocks path traversal attempts outside the configured public/admin roots.
package/dist/server.d.ts CHANGED
@@ -9,7 +9,7 @@ export interface DevServerHandle {
9
9
  adminUrl: string;
10
10
  servingPublicDir: string;
11
11
  servingAdminDir: string;
12
- publicFallbackToRuntime: boolean;
12
+ publicOutputPublished: boolean;
13
13
  close: () => Promise<void>;
14
14
  }
15
15
  export declare const startDevServer: (options: StartDevServerOptions) => Promise<DevServerHandle>;
package/dist/server.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { createServer } from "node:http";
2
2
  import { promises as fs } from "node:fs";
3
3
  import path from "node:path";
4
- import { ATRIA_RUNTIME_DIR } from "@atria/shared";
5
- const PUBLIC_OUTPUT_DIR = "public";
4
+ import { ATRIA_RUNTIME_DIR, PUBLIC_OUTPUT_DIR } from "@atria/shared";
6
5
  const DEV_PUBLIC_HOST = "localhost";
7
6
  const DEV_ADMIN_HOST = "admin.localhost";
8
7
  const MIME_TYPES = {
@@ -14,16 +13,27 @@ const MIME_TYPES = {
14
13
  ".ico": "image/x-icon",
15
14
  ".txt": "text/plain; charset=utf-8"
16
15
  };
16
+ const DEFAULT_NOT_FOUND_TEXT = "404: The requested page was not found.";
17
+ const DEFAULT_PUBLIC_UNAVAILABLE_TEXT = "503: Public site output is not published yet.";
17
18
  const PUBLIC_HOST_ALIASES = new Set(["localhost", "127.0.0.1", "[::1]", "::1"]);
18
19
  const ADMIN_HOST_ALIASES = new Set(["admin.localhost"]);
19
20
  const isInsideDirectory = (basePath, targetPath) => {
20
21
  const relativePath = path.relative(basePath, targetPath);
21
22
  return relativePath !== "" && !relativePath.startsWith("..") && !path.isAbsolute(relativePath);
22
23
  };
23
- const directoryExists = async (directoryPath) => {
24
+ const directoryHasFiles = async (directoryPath) => {
24
25
  try {
25
- const stats = await fs.stat(directoryPath);
26
- return stats.isDirectory();
26
+ const entries = await fs.readdir(directoryPath, { withFileTypes: true });
27
+ for (const entry of entries) {
28
+ const entryPath = path.join(directoryPath, entry.name);
29
+ if (entry.isFile() || entry.isSymbolicLink()) {
30
+ return true;
31
+ }
32
+ if (entry.isDirectory() && (await directoryHasFiles(entryPath))) {
33
+ return true;
34
+ }
35
+ }
36
+ return false;
27
37
  }
28
38
  catch {
29
39
  return false;
@@ -53,25 +63,83 @@ const resolveSiteTarget = (hostname) => {
53
63
  }
54
64
  return null;
55
65
  };
56
- const resolveRequestFile = async (runtimeDir, requestPath) => {
66
+ const resolveRootIndexFile = async (rootDir) => {
67
+ const rootIndexPath = path.join(rootDir, "index.html");
68
+ try {
69
+ const rootIndexStats = await fs.stat(rootIndexPath);
70
+ if (rootIndexStats.isFile()) {
71
+ return { type: "file", filePath: rootIndexPath };
72
+ }
73
+ }
74
+ catch {
75
+ // fall through to not found
76
+ }
77
+ return { type: "not-found" };
78
+ };
79
+ const resolveRequestFile = async (rootDir, requestPath, mode) => {
57
80
  const normalizedPath = requestPath === "/" ? "index.html" : requestPath.replace(/^\/+/, "");
58
- const filePath = path.join(runtimeDir, normalizedPath);
59
- if (normalizedPath !== "index.html" && !isInsideDirectory(runtimeDir, filePath)) {
60
- return null;
81
+ const filePath = path.join(rootDir, normalizedPath);
82
+ if (!isInsideDirectory(rootDir, filePath)) {
83
+ return { type: "forbidden" };
61
84
  }
62
85
  try {
63
86
  const fileStats = await fs.stat(filePath);
64
87
  if (fileStats.isDirectory()) {
65
- return path.join(filePath, "index.html");
88
+ const directoryIndexPath = path.join(filePath, "index.html");
89
+ if (!isInsideDirectory(rootDir, directoryIndexPath)) {
90
+ return { type: "forbidden" };
91
+ }
92
+ try {
93
+ const directoryIndexStats = await fs.stat(directoryIndexPath);
94
+ if (directoryIndexStats.isFile()) {
95
+ return { type: "file", filePath: directoryIndexPath };
96
+ }
97
+ }
98
+ catch {
99
+ // fall through to not found/fallback response
100
+ }
101
+ return mode === "spa-fallback" ? resolveRootIndexFile(rootDir) : { type: "not-found" };
66
102
  }
67
- return filePath;
103
+ if (fileStats.isFile()) {
104
+ return { type: "file", filePath };
105
+ }
106
+ return { type: "not-found" };
68
107
  }
69
108
  catch {
70
- if (path.extname(normalizedPath)) {
71
- return null;
109
+ if (mode === "spa-fallback" && !path.extname(normalizedPath)) {
110
+ return resolveRootIndexFile(rootDir);
72
111
  }
73
- return path.join(runtimeDir, "index.html");
112
+ return { type: "not-found" };
113
+ }
114
+ };
115
+ const respondWithPublicNotFound = async (response, publicDir) => {
116
+ const notFoundPagePath = path.join(publicDir, "404.html");
117
+ try {
118
+ const notFoundPage = await fs.readFile(notFoundPagePath);
119
+ response.writeHead(404, { "content-type": MIME_TYPES[".html"] });
120
+ response.end(notFoundPage);
121
+ return;
74
122
  }
123
+ catch {
124
+ // Fall back to plain text when public/404.html is unavailable.
125
+ }
126
+ response.writeHead(404, { "content-type": MIME_TYPES[".txt"] });
127
+ response.end(DEFAULT_NOT_FOUND_TEXT);
128
+ };
129
+ const respondWithDefaultNotFound = (response) => {
130
+ response.writeHead(404, { "content-type": MIME_TYPES[".txt"] });
131
+ response.end(DEFAULT_NOT_FOUND_TEXT);
132
+ };
133
+ const respondWithPublicUnavailable = (response) => {
134
+ response.writeHead(503, {
135
+ "content-type": MIME_TYPES[".txt"],
136
+ "retry-after": "60"
137
+ });
138
+ response.end(DEFAULT_PUBLIC_UNAVAILABLE_TEXT);
139
+ };
140
+ const isRootPublicPath = (requestPath) => {
141
+ const normalizedPath = requestPath.replace(/\/+$/, "");
142
+ return normalizedPath.length === 0 || normalizedPath === "/index.html";
75
143
  };
76
144
  const closeServer = async (server) => new Promise((resolve, reject) => {
77
145
  server.close((error) => {
@@ -87,41 +155,61 @@ export const startDevServer = async (options) => {
87
155
  const runtimeDir = path.join(options.projectRoot, ATRIA_RUNTIME_DIR);
88
156
  const publicOutputDir = path.join(options.projectRoot, PUBLIC_OUTPUT_DIR);
89
157
  await fs.access(runtimeDir);
90
- const hasPublicOutput = await directoryExists(publicOutputDir);
91
- const publicDir = hasPublicOutput ? publicOutputDir : runtimeDir;
92
- const publicFallbackToRuntime = !hasPublicOutput;
158
+ const hasPublicOutput = await directoryHasFiles(publicOutputDir);
159
+ const publicDir = publicOutputDir;
160
+ const publicOutputPublished = hasPublicOutput;
93
161
  const server = createServer(async (request, response) => {
94
162
  try {
95
163
  const hostname = parseRequestHostname(request.headers.host);
96
164
  const siteTarget = resolveSiteTarget(hostname);
97
165
  if (!siteTarget) {
98
- response.writeHead(404, { "content-type": MIME_TYPES[".txt"] });
99
- response.end(`Unknown host. Use ${DEV_PUBLIC_HOST} or ${DEV_ADMIN_HOST}.`);
166
+ respondWithDefaultNotFound(response);
100
167
  return;
101
168
  }
102
169
  const requestHost = hostname ?? DEV_PUBLIC_HOST;
103
170
  const requestUrl = new URL(request.url ?? "/", `http://${requestHost}:${options.port}`);
104
171
  if (requestUrl.pathname === "/api/health") {
105
172
  response.writeHead(200, { "content-type": MIME_TYPES[".json"] });
106
- response.end(JSON.stringify({ ok: true, site: siteTarget }));
173
+ response.end(JSON.stringify({
174
+ ok: true,
175
+ site: siteTarget,
176
+ publicOutputPublished
177
+ }));
178
+ return;
179
+ }
180
+ if (siteTarget === "public" && !publicOutputPublished) {
181
+ if (isRootPublicPath(requestUrl.pathname)) {
182
+ respondWithPublicUnavailable(response);
183
+ }
184
+ else {
185
+ await respondWithPublicNotFound(response, publicDir);
186
+ }
107
187
  return;
108
188
  }
109
189
  const rootDir = siteTarget === "admin" ? runtimeDir : publicDir;
110
- const targetFile = await resolveRequestFile(rootDir, decodeURIComponent(requestUrl.pathname));
111
- if (!targetFile) {
190
+ const mode = siteTarget === "admin" ? "spa-fallback" : "strict";
191
+ const targetFile = await resolveRequestFile(rootDir, decodeURIComponent(requestUrl.pathname), mode);
192
+ if (targetFile.type === "forbidden") {
112
193
  response.writeHead(403, { "content-type": MIME_TYPES[".txt"] });
113
194
  response.end("Forbidden");
114
195
  return;
115
196
  }
116
- const fileBuffer = await fs.readFile(targetFile);
117
- const extension = path.extname(targetFile);
197
+ if (targetFile.type === "not-found") {
198
+ if (siteTarget === "public") {
199
+ await respondWithPublicNotFound(response, publicDir);
200
+ return;
201
+ }
202
+ respondWithDefaultNotFound(response);
203
+ return;
204
+ }
205
+ const fileBuffer = await fs.readFile(targetFile.filePath);
206
+ const extension = path.extname(targetFile.filePath);
118
207
  const contentType = MIME_TYPES[extension] ?? "application/octet-stream";
119
208
  response.writeHead(200, { "content-type": contentType });
120
209
  response.end(fileBuffer);
121
210
  }
122
211
  catch {
123
- response.writeHead(404, { "content-type": MIME_TYPES[".txt"] });
124
- response.end("Not Found");
212
+ respondWithDefaultNotFound(response);
125
213
  }
126
214
  });
127
215
  await new Promise((resolve, reject) => {
@@ -137,7 +225,7 @@ export const startDevServer = async (options) => {
137
225
  adminUrl: `http://${DEV_ADMIN_HOST}:${options.port}`,
138
226
  servingPublicDir: publicDir,
139
227
  servingAdminDir: runtimeDir,
140
- publicFallbackToRuntime,
228
+ publicOutputPublished,
141
229
  close: () => closeServer(server)
142
230
  };
143
231
  };
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atria/server",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "HTTP server and runtime delivery for atria",
5
5
  "keywords": [
6
6
  "atria",
@@ -24,7 +24,7 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@atria/shared": "0.0.6"
27
+ "@atria/shared": "0.0.7"
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "public"