@atria/server 0.0.10 → 0.0.13
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 +26 -10
- package/dist/auth/cookies.d.ts +11 -0
- package/dist/auth/cookies.js +38 -0
- package/dist/auth/cookies.js.map +1 -0
- package/dist/auth/hash.d.ts +2 -0
- package/dist/auth/hash.js +36 -0
- package/dist/auth/hash.js.map +1 -0
- package/dist/auth/oauth.d.ts +5 -0
- package/dist/auth/oauth.js +215 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/runtime.d.ts +28 -0
- package/dist/auth/runtime.js +539 -0
- package/dist/auth/runtime.js.map +1 -0
- package/dist/auth/store.d.ts +43 -0
- package/dist/auth/store.js +68 -0
- package/dist/auth/store.js.map +1 -0
- package/dist/auth/types.d.ts +40 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/auth/validation.d.ts +21 -0
- package/dist/auth/validation.js +97 -0
- package/dist/auth/validation.js.map +1 -0
- package/dist/dev/admin/assets.d.ts +2 -0
- package/dist/dev/admin/assets.js +30 -0
- package/dist/dev/admin/assets.js.map +1 -0
- package/dist/dev/admin/i18n.d.ts +2 -0
- package/dist/dev/admin/i18n.js +63 -0
- package/dist/dev/admin/i18n.js.map +1 -0
- package/dist/dev/admin/index.d.ts +3 -0
- package/dist/dev/admin/index.js +4 -0
- package/dist/dev/admin/index.js.map +1 -0
- package/dist/dev/admin/request.d.ts +14 -0
- package/dist/dev/admin/request.js +77 -0
- package/dist/dev/admin/request.js.map +1 -0
- package/dist/dev/admin/routing.d.ts +5 -0
- package/dist/dev/admin/routing.js +31 -0
- package/dist/dev/admin/routing.js.map +1 -0
- package/dist/dev/admin-assets.d.ts +2 -0
- package/dist/dev/admin-assets.js +30 -0
- package/dist/dev/admin-assets.js.map +1 -0
- package/dist/dev/admin.d.ts +2 -0
- package/dist/dev/admin.js +30 -0
- package/dist/dev/admin.js.map +1 -0
- package/dist/dev/constants.d.ts +12 -0
- package/dist/dev/constants.js +23 -0
- package/dist/dev/constants.js.map +1 -0
- package/dist/dev/health/index.d.ts +2 -0
- package/dist/dev/health/index.js +3 -0
- package/dist/dev/health/index.js.map +1 -0
- package/dist/dev/health/request.d.ts +14 -0
- package/dist/dev/health/request.js +22 -0
- package/dist/dev/health/request.js.map +1 -0
- package/dist/dev/health/state.d.ts +9 -0
- package/dist/dev/health/state.js +52 -0
- package/dist/dev/health/state.js.map +1 -0
- package/dist/dev/health.d.ts +9 -0
- package/dist/dev/health.js +52 -0
- package/dist/dev/health.js.map +1 -0
- package/dist/dev/http/errors.d.ts +3 -0
- package/dist/dev/http/errors.js +10 -0
- package/dist/dev/http/errors.js.map +1 -0
- package/dist/dev/http/routing.d.ts +3 -0
- package/dist/dev/http/routing.js +26 -0
- package/dist/dev/http/routing.js.map +1 -0
- package/dist/dev/i18n.d.ts +2 -0
- package/dist/dev/i18n.js +63 -0
- package/dist/dev/i18n.js.map +1 -0
- package/dist/dev/lifecycle.d.ts +2 -0
- package/dist/dev/lifecycle.js +10 -0
- package/dist/dev/lifecycle.js.map +1 -0
- package/dist/dev/public/index.d.ts +1 -0
- package/dist/dev/public/index.js +2 -0
- package/dist/dev/public/index.js.map +1 -0
- package/dist/dev/public/request.d.ts +9 -0
- package/dist/dev/public/request.js +29 -0
- package/dist/dev/public/request.js.map +1 -0
- package/dist/dev/public/responses.d.ts +3 -0
- package/dist/dev/public/responses.js +25 -0
- package/dist/dev/public/responses.js.map +1 -0
- package/dist/dev/public/routing.d.ts +1 -0
- package/dist/dev/public/routing.js +5 -0
- package/dist/dev/public/routing.js.map +1 -0
- package/dist/dev/responses.d.ts +2 -0
- package/dist/dev/responses.js +3 -0
- package/dist/dev/responses.js.map +1 -0
- package/dist/dev/routing.d.ts +3 -0
- package/dist/dev/routing.js +4 -0
- package/dist/dev/routing.js.map +1 -0
- package/dist/dev/setup/index.d.ts +2 -0
- package/dist/dev/setup/index.js +2 -0
- package/dist/dev/setup/index.js.map +1 -0
- package/dist/dev/setup/request.d.ts +5 -0
- package/dist/dev/setup/request.js +20 -0
- package/dist/dev/setup/request.js.map +1 -0
- package/dist/dev/setup/types.d.ts +5 -0
- package/dist/dev/setup/types.js +2 -0
- package/dist/dev/setup/types.js.map +1 -0
- package/dist/dev/static/files.d.ts +6 -0
- package/dist/dev/static/files.js +74 -0
- package/dist/dev/static/files.js.map +1 -0
- package/dist/dev/static/index.d.ts +4 -0
- package/dist/dev/static/index.js +5 -0
- package/dist/dev/static/index.js.map +1 -0
- package/dist/dev/static/paths.d.ts +1 -0
- package/dist/dev/static/paths.js +6 -0
- package/dist/dev/static/paths.js.map +1 -0
- package/dist/dev/static/publish.d.ts +1 -0
- package/dist/dev/static/publish.js +13 -0
- package/dist/dev/static/publish.js.map +1 -0
- package/dist/dev/static/resolver.d.ts +2 -0
- package/dist/dev/static/resolver.js +53 -0
- package/dist/dev/static/resolver.js.map +1 -0
- package/dist/dev/static/sender.d.ts +2 -0
- package/dist/dev/static/sender.js +26 -0
- package/dist/dev/static/sender.js.map +1 -0
- package/dist/dev/static-files.d.ts +6 -0
- package/dist/dev/static-files.js +74 -0
- package/dist/dev/static-files.js.map +1 -0
- package/dist/dev/types.d.ts +10 -0
- package/dist/dev/types.js +2 -0
- package/dist/dev/types.js.map +1 -0
- package/dist/server.js +74 -191
- package/dist/server.js.map +1 -1
- package/package.json +4 -2
package/dist/server.js
CHANGED
|
@@ -2,157 +2,39 @@ import { createServer } from "node:http";
|
|
|
2
2
|
import { promises as fs } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { ATRIA_RUNTIME_DIR, PUBLIC_OUTPUT_DIR } from "@atria/shared";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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.";
|
|
18
|
-
// Keep this switch isolated so LIVE unpublished<->published behavior is easy to remove later.
|
|
19
|
-
const ENABLE_LIVE_PUBLISH_TRANSITION = true;
|
|
20
|
-
const PUBLIC_HOST_ALIASES = new Set(["localhost", "127.0.0.1", "[::1]", "::1"]);
|
|
21
|
-
const STUDIO_HOST_ALIASES = new Set(["studio.localhost"]);
|
|
22
|
-
const isInsideDirectory = (basePath, targetPath) => {
|
|
23
|
-
const relativePath = path.relative(basePath, targetPath);
|
|
24
|
-
return relativePath !== "" && !relativePath.startsWith("..") && !path.isAbsolute(relativePath);
|
|
25
|
-
};
|
|
26
|
-
const isPublicOutputPublished = async (publicDir) => {
|
|
27
|
-
const publicIndexPath = path.join(publicDir, "index.html");
|
|
28
|
-
try {
|
|
29
|
-
const indexStats = await fs.stat(publicIndexPath);
|
|
30
|
-
return indexStats.isFile() || indexStats.isSymbolicLink();
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const parseRequestHostname = (hostHeader) => {
|
|
37
|
-
if (!hostHeader) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
const firstHost = hostHeader.split(",")[0]?.trim();
|
|
41
|
-
if (!firstHost) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
try {
|
|
45
|
-
return new URL(`http://${firstHost}`).hostname.toLowerCase();
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
return firstHost.replace(/:\d+$/, "").toLowerCase();
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
const resolveSiteTarget = (hostname) => {
|
|
52
|
-
if (hostname === null || PUBLIC_HOST_ALIASES.has(hostname)) {
|
|
53
|
-
return "public";
|
|
54
|
-
}
|
|
55
|
-
if (STUDIO_HOST_ALIASES.has(hostname)) {
|
|
56
|
-
return "admin";
|
|
57
|
-
}
|
|
58
|
-
return null;
|
|
59
|
-
};
|
|
60
|
-
const resolveRootIndexFile = async (rootDir) => {
|
|
61
|
-
const rootIndexPath = path.join(rootDir, "index.html");
|
|
62
|
-
try {
|
|
63
|
-
const rootIndexStats = await fs.stat(rootIndexPath);
|
|
64
|
-
if (rootIndexStats.isFile()) {
|
|
65
|
-
return { type: "file", filePath: rootIndexPath };
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
// fall through to not found
|
|
70
|
-
}
|
|
71
|
-
return { type: "not-found" };
|
|
72
|
-
};
|
|
73
|
-
const resolveRequestFile = async (rootDir, requestPath, mode) => {
|
|
74
|
-
const normalizedPath = requestPath === "/" ? "index.html" : requestPath.replace(/^\/+/, "");
|
|
75
|
-
const filePath = path.join(rootDir, normalizedPath);
|
|
76
|
-
if (!isInsideDirectory(rootDir, filePath)) {
|
|
77
|
-
return { type: "forbidden" };
|
|
78
|
-
}
|
|
79
|
-
try {
|
|
80
|
-
const fileStats = await fs.stat(filePath);
|
|
81
|
-
if (fileStats.isDirectory()) {
|
|
82
|
-
const directoryIndexPath = path.join(filePath, "index.html");
|
|
83
|
-
if (!isInsideDirectory(rootDir, directoryIndexPath)) {
|
|
84
|
-
return { type: "forbidden" };
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
const directoryIndexStats = await fs.stat(directoryIndexPath);
|
|
88
|
-
if (directoryIndexStats.isFile()) {
|
|
89
|
-
return { type: "file", filePath: directoryIndexPath };
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch {
|
|
93
|
-
// fall through to not found/fallback response
|
|
94
|
-
}
|
|
95
|
-
return mode === "spa-fallback" ? resolveRootIndexFile(rootDir) : { type: "not-found" };
|
|
96
|
-
}
|
|
97
|
-
if (fileStats.isFile()) {
|
|
98
|
-
return { type: "file", filePath };
|
|
99
|
-
}
|
|
100
|
-
return { type: "not-found" };
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
if (mode === "spa-fallback" && !path.extname(normalizedPath)) {
|
|
104
|
-
return resolveRootIndexFile(rootDir);
|
|
105
|
-
}
|
|
106
|
-
return { type: "not-found" };
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
const respondWithPublicNotFound = async (response, publicDir) => {
|
|
110
|
-
const notFoundPagePath = path.join(publicDir, "404.html");
|
|
111
|
-
try {
|
|
112
|
-
const notFoundPage = await fs.readFile(notFoundPagePath);
|
|
113
|
-
response.writeHead(404, { "content-type": MIME_TYPES[".html"] });
|
|
114
|
-
response.end(notFoundPage);
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
catch {
|
|
118
|
-
// Fall back to plain text when public/404.html is unavailable.
|
|
119
|
-
}
|
|
120
|
-
response.writeHead(404, { "content-type": MIME_TYPES[".txt"] });
|
|
121
|
-
response.end(DEFAULT_NOT_FOUND_TEXT);
|
|
122
|
-
};
|
|
123
|
-
const respondWithDefaultNotFound = (response) => {
|
|
124
|
-
response.writeHead(404, { "content-type": MIME_TYPES[".txt"] });
|
|
125
|
-
response.end(DEFAULT_NOT_FOUND_TEXT);
|
|
126
|
-
};
|
|
127
|
-
const respondWithPublicUnavailable = (response) => {
|
|
128
|
-
response.writeHead(503, {
|
|
129
|
-
"content-type": MIME_TYPES[".txt"],
|
|
130
|
-
"retry-after": "60"
|
|
131
|
-
});
|
|
132
|
-
response.end(DEFAULT_PUBLIC_UNAVAILABLE_TEXT);
|
|
133
|
-
};
|
|
134
|
-
const isRootPublicPath = (requestPath) => {
|
|
135
|
-
const normalizedPath = requestPath.replace(/\/+$/, "");
|
|
136
|
-
return normalizedPath.length === 0 || normalizedPath === "/index.html";
|
|
137
|
-
};
|
|
138
|
-
const closeServer = async (server) => new Promise((resolve, reject) => {
|
|
139
|
-
server.close((error) => {
|
|
140
|
-
if (error) {
|
|
141
|
-
reject(error);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
resolve();
|
|
145
|
-
});
|
|
146
|
-
});
|
|
5
|
+
import { createAuthRuntime } from "./auth/runtime.js";
|
|
6
|
+
import { DEV_PUBLIC_HOST, DEV_STUDIO_HOST, ENABLE_LIVE_PUBLISH_TRANSITION } from "./dev/constants.js";
|
|
7
|
+
import { closeServer } from "./dev/lifecycle.js";
|
|
8
|
+
import { respondWithDefaultNotFound, respondWithInternalServerError } from "./dev/http/errors.js";
|
|
9
|
+
import { parseRequestHostname, resolveSiteTarget } from "./dev/http/routing.js";
|
|
10
|
+
import { isPublicOutputPublished } from "./dev/static/index.js";
|
|
11
|
+
import { handleAdminRequest, resolveAdminDistDir } from "./dev/admin/index.js";
|
|
12
|
+
import { handlePublicRequest } from "./dev/public/index.js";
|
|
13
|
+
import { handleSetupStatusRequest, isSetupStatusRequest } from "./dev/setup/index.js";
|
|
14
|
+
import { handleHealthRequest, isHealthRequest, readDatabaseHealthState } from "./dev/health/index.js";
|
|
147
15
|
export const startDevServer = async (options) => {
|
|
148
|
-
const host = options.host ??
|
|
16
|
+
const host = options.host ?? DEV_PUBLIC_HOST;
|
|
149
17
|
const runtimeDir = path.join(options.projectRoot, ATRIA_RUNTIME_DIR);
|
|
150
18
|
const publicDir = path.join(options.projectRoot, PUBLIC_OUTPUT_DIR);
|
|
19
|
+
const adminDistDir = resolveAdminDistDir();
|
|
20
|
+
const authRuntime = createAuthRuntime({
|
|
21
|
+
projectRoot: options.projectRoot,
|
|
22
|
+
port: options.port
|
|
23
|
+
});
|
|
151
24
|
await fs.access(runtimeDir);
|
|
25
|
+
await fs.access(path.join(adminDistDir, "app.js"));
|
|
152
26
|
let publicOutputPublished = await isPublicOutputPublished(publicDir);
|
|
27
|
+
let ownerSetupState = await authRuntime.getOwnerSetupState();
|
|
28
|
+
let databaseHealthState = await readDatabaseHealthState(options.projectRoot);
|
|
153
29
|
const refreshPublicPublishState = async () => {
|
|
154
30
|
publicOutputPublished = await isPublicOutputPublished(publicDir);
|
|
155
31
|
};
|
|
32
|
+
const refreshOwnerSetupState = async () => {
|
|
33
|
+
ownerSetupState = await authRuntime.getOwnerSetupState();
|
|
34
|
+
};
|
|
35
|
+
const refreshDatabaseHealthState = async () => {
|
|
36
|
+
databaseHealthState = await readDatabaseHealthState(options.projectRoot);
|
|
37
|
+
};
|
|
156
38
|
const server = createServer(async (request, response) => {
|
|
157
39
|
try {
|
|
158
40
|
const hostname = parseRequestHostname(request.headers.host);
|
|
@@ -163,66 +45,64 @@ export const startDevServer = async (options) => {
|
|
|
163
45
|
}
|
|
164
46
|
const requestHost = hostname ?? DEV_PUBLIC_HOST;
|
|
165
47
|
const requestUrl = new URL(request.url ?? "/", `http://${requestHost}:${options.port}`);
|
|
166
|
-
if (ENABLE_LIVE_PUBLISH_TRANSITION &&
|
|
167
|
-
(siteTarget === "public" || requestUrl.pathname === "/api/health")) {
|
|
48
|
+
if (ENABLE_LIVE_PUBLISH_TRANSITION && (siteTarget === "public" || isHealthRequest(requestUrl))) {
|
|
168
49
|
await refreshPublicPublishState();
|
|
169
50
|
}
|
|
170
|
-
if (
|
|
171
|
-
|
|
172
|
-
response.end(JSON.stringify({
|
|
173
|
-
ok: true,
|
|
174
|
-
site: siteTarget,
|
|
175
|
-
publicOutputPublished
|
|
176
|
-
}));
|
|
177
|
-
return;
|
|
51
|
+
if (siteTarget === "admin" || isSetupStatusRequest(requestUrl)) {
|
|
52
|
+
await refreshOwnerSetupState();
|
|
178
53
|
}
|
|
179
|
-
if (
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
54
|
+
if (isHealthRequest(requestUrl)) {
|
|
55
|
+
await refreshDatabaseHealthState();
|
|
56
|
+
handleHealthRequest({
|
|
57
|
+
response,
|
|
58
|
+
siteTarget,
|
|
59
|
+
publicOutputPublished,
|
|
60
|
+
ownerSetupState,
|
|
61
|
+
databaseHealthState
|
|
62
|
+
});
|
|
186
63
|
return;
|
|
187
64
|
}
|
|
188
|
-
|
|
189
|
-
const mode = siteTarget === "admin" ? "spa-fallback" : "strict";
|
|
190
|
-
const targetFile = await resolveRequestFile(rootDir, decodeURIComponent(requestUrl.pathname), mode);
|
|
191
|
-
if (targetFile.type === "forbidden") {
|
|
192
|
-
response.writeHead(403, { "content-type": MIME_TYPES[".txt"] });
|
|
193
|
-
response.end("Forbidden");
|
|
65
|
+
if (handleSetupStatusRequest(requestUrl, response, siteTarget, ownerSetupState)) {
|
|
194
66
|
return;
|
|
195
67
|
}
|
|
196
|
-
if (
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
68
|
+
if (siteTarget === "admin") {
|
|
69
|
+
await handleAdminRequest({
|
|
70
|
+
request,
|
|
71
|
+
response,
|
|
72
|
+
requestUrl,
|
|
73
|
+
runtimeDir,
|
|
74
|
+
adminDistDir,
|
|
75
|
+
ownerSetupState,
|
|
76
|
+
authRuntime
|
|
77
|
+
});
|
|
202
78
|
return;
|
|
203
79
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
80
|
+
await handlePublicRequest({
|
|
81
|
+
requestUrl,
|
|
82
|
+
response,
|
|
83
|
+
publicDir,
|
|
84
|
+
publicOutputPublished
|
|
85
|
+
});
|
|
209
86
|
}
|
|
210
|
-
catch {
|
|
211
|
-
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error(`[atria/server] Unexpected request error (${request.method ?? "GET"} ${request.url ?? "/"})`, error);
|
|
89
|
+
if (response.writableEnded) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (response.headersSent) {
|
|
93
|
+
response.end();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
respondWithInternalServerError(response);
|
|
212
97
|
}
|
|
213
98
|
});
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
server.
|
|
218
|
-
|
|
219
|
-
resolve();
|
|
220
|
-
});
|
|
99
|
+
await new Promise((resolve, reject) => {
|
|
100
|
+
server.once("error", reject);
|
|
101
|
+
server.listen(options.port, host, () => {
|
|
102
|
+
server.off("error", reject);
|
|
103
|
+
resolve();
|
|
221
104
|
});
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
throw error;
|
|
225
|
-
}
|
|
105
|
+
});
|
|
226
106
|
return {
|
|
227
107
|
url: `http://${DEV_PUBLIC_HOST}:${options.port}`,
|
|
228
108
|
publicUrl: `http://${DEV_PUBLIC_HOST}:${options.port}`,
|
|
@@ -232,7 +112,10 @@ export const startDevServer = async (options) => {
|
|
|
232
112
|
get publicOutputPublished() {
|
|
233
113
|
return publicOutputPublished;
|
|
234
114
|
},
|
|
235
|
-
close: async () =>
|
|
115
|
+
close: async () => {
|
|
116
|
+
await closeServer(server);
|
|
117
|
+
await authRuntime.close();
|
|
118
|
+
}
|
|
236
119
|
};
|
|
237
120
|
};
|
|
238
121
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
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.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "HTTP server and runtime delivery for atria",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"atria",
|
|
@@ -24,7 +24,9 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@atria/
|
|
27
|
+
"@atria/admin": "0.1.2",
|
|
28
|
+
"@atria/db": "0.0.7",
|
|
29
|
+
"@atria/shared": "0.0.11"
|
|
28
30
|
},
|
|
29
31
|
"publishConfig": {
|
|
30
32
|
"access": "public"
|