@lovision/plugin-dev 1.0.0
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 +49 -0
- package/dist/build.d.ts +16 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +108 -0
- package/dist/build.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +123 -0
- package/dist/cli.js.map +1 -0
- package/dist/create-plugin.d.ts +19 -0
- package/dist/create-plugin.d.ts.map +1 -0
- package/dist/create-plugin.js +186 -0
- package/dist/create-plugin.js.map +1 -0
- package/dist/dev.d.ts +13 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +206 -0
- package/dist/dev.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/publish.d.ts +15 -0
- package/dist/publish.d.ts.map +1 -0
- package/dist/publish.js +55 -0
- package/dist/publish.js.map +1 -0
- package/dist/shared.d.ts +93 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +436 -0
- package/dist/shared.js.map +1 -0
- package/dist/templates/ai-layout-assistant/README.md.template +24 -0
- package/dist/templates/ai-layout-assistant/eslint.config.mjs +19 -0
- package/dist/templates/ai-layout-assistant/manifest.json.template +38 -0
- package/dist/templates/ai-layout-assistant/package.json.template +18 -0
- package/dist/templates/ai-layout-assistant/src/main.ts.template +345 -0
- package/dist/templates/ai-layout-assistant/tsconfig.json +14 -0
- package/dist/templates/ai-layout-assistant/ui.html.template +114 -0
- package/dist/templates/asset-browser/README.md.template +24 -0
- package/dist/templates/asset-browser/eslint.config.mjs +19 -0
- package/dist/templates/asset-browser/manifest.json.template +29 -0
- package/dist/templates/asset-browser/package.json.template +18 -0
- package/dist/templates/asset-browser/src/main.ts.template +177 -0
- package/dist/templates/asset-browser/tsconfig.json +14 -0
- package/dist/templates/asset-browser/ui.html.template +137 -0
- package/dist/templates/base/README.md.template +34 -0
- package/dist/templates/base/eslint.config.mjs +19 -0
- package/dist/templates/base/manifest.json.template +22 -0
- package/dist/templates/base/package.json.template +18 -0
- package/dist/templates/base/src/main.ts.template +20 -0
- package/dist/templates/base/tsconfig.json +14 -0
- package/dist/templates/batch-layout-organizer/README.md.template +24 -0
- package/dist/templates/batch-layout-organizer/eslint.config.mjs +19 -0
- package/dist/templates/batch-layout-organizer/manifest.json.template +31 -0
- package/dist/templates/batch-layout-organizer/package.json.template +18 -0
- package/dist/templates/batch-layout-organizer/src/main.ts.template +324 -0
- package/dist/templates/batch-layout-organizer/tsconfig.json +14 -0
- package/dist/templates/batch-layout-organizer/ui.html.template +116 -0
- package/dist/templates/data-filler-full/README.md.template +32 -0
- package/dist/templates/data-filler-full/eslint.config.mjs +19 -0
- package/dist/templates/data-filler-full/manifest.json.template +31 -0
- package/dist/templates/data-filler-full/package.json.template +18 -0
- package/dist/templates/data-filler-full/src/main.ts.template +412 -0
- package/dist/templates/data-filler-full/tsconfig.json +14 -0
- package/dist/templates/data-filler-full/ui.html.template +221 -0
- package/dist/templates/data-filler-lite/README.md.template +47 -0
- package/dist/templates/data-filler-lite/eslint.config.mjs +19 -0
- package/dist/templates/data-filler-lite/manifest.json.template +29 -0
- package/dist/templates/data-filler-lite/package.json.template +18 -0
- package/dist/templates/data-filler-lite/src/main.ts.template +222 -0
- package/dist/templates/data-filler-lite/tsconfig.json +14 -0
- package/dist/templates/data-filler-lite/ui.html.template +180 -0
- package/dist/templates/design-lint-panel/README.md.template +33 -0
- package/dist/templates/design-lint-panel/eslint.config.mjs +19 -0
- package/dist/templates/design-lint-panel/manifest.json.template +29 -0
- package/dist/templates/design-lint-panel/package.json.template +18 -0
- package/dist/templates/design-lint-panel/src/main.ts.template +221 -0
- package/dist/templates/design-lint-panel/tsconfig.json +14 -0
- package/dist/templates/design-lint-panel/ui.html.template +172 -0
- package/dist/templates/export-selection/README.md.template +26 -0
- package/dist/templates/export-selection/eslint.config.mjs +19 -0
- package/dist/templates/export-selection/manifest.json.template +31 -0
- package/dist/templates/export-selection/package.json.template +18 -0
- package/dist/templates/export-selection/src/main.ts.template +386 -0
- package/dist/templates/export-selection/tsconfig.json +14 -0
- package/dist/templates/export-selection/ui.html.template +163 -0
- package/dist/templates/review-submitter/README.md.template +24 -0
- package/dist/templates/review-submitter/eslint.config.mjs +19 -0
- package/dist/templates/review-submitter/manifest.json.template +35 -0
- package/dist/templates/review-submitter/package.json.template +18 -0
- package/dist/templates/review-submitter/src/main.ts.template +306 -0
- package/dist/templates/review-submitter/tsconfig.json +14 -0
- package/dist/templates/review-submitter/ui.html.template +114 -0
- package/dist/validate.d.ts +8 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +42 -0
- package/dist/validate.js.map +1 -0
- package/package.json +46 -0
package/dist/dev.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { createServer } from "node:https";
|
|
2
|
+
import { buildMainBundleSource } from "./build.js";
|
|
3
|
+
import { computeEtag, DEFAULT_HOST, DEFAULT_MAIN_ROUTE, DEFAULT_MANIFEST_ROUTE, ensurePluginProjectExists, readOptionalUiEntry, readProjectResourceText, readTextFile, resolveProjectResourceRoute, ToolingError, tryParseJsonText, } from "./shared.js";
|
|
4
|
+
const DEV_TLS_KEY = `-----BEGIN PRIVATE KEY-----
|
|
5
|
+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7+KRiIu9MOLAO
|
|
6
|
+
1PsRx2OWEqCNzzznOcfnLrk8b1zNZpWqSJfFY6dXVxxGjwkwz+do9id/p/qx3oBs
|
|
7
|
+
CDexi807sDIEhs94Hj35E4Ow/wCEggQxplQVZOmI+V+xSlri+Ramety5vcLaDbN7
|
|
8
|
+
LbWciiKfQ/g+MGcQa4Tg2UQO0He/AiPh2dX46l1jiWfPvftMkL3lNlAY/SPMT1Qh
|
|
9
|
+
P5DyXmfuRsPw+aRqFkWo6SCHxzy0+n+8+CPw7P8o71FifmosgDGNT6aDmCsiD7rf
|
|
10
|
+
S+uQdMSVWd9fYs1aDuSahjZQoK5bzedXCCt/8ysagL5JeXICXdvaDSbpTouNEU8J
|
|
11
|
+
OcCCoo6HAgMBAAECggEAWQoas/HgcLaZjy0MEQvl/HyuWP5F1zHjo3rae+o0h4eE
|
|
12
|
+
dbkVS4c9CX5WAoZW0CxrbajMZQfpFMBVDNeHqi6S9SctSj+hn0CUEpxP0VO5pwr/
|
|
13
|
+
eZVUVx4KEbwuvAiArOtY81tXmxRsbGX5EuxADvrQE6laufqrl3eW5fuE5Y+SaYOF
|
|
14
|
+
UBQzTmenG46paD4soNc8txQt0cndx3oHfKyYWVxRwDQytLV5tvN1nkBTVichYqUe
|
|
15
|
+
nqRLYFvE3PFqwLNE+tejTiw90nwQnQ3YX+LBZ/8Cf/QEzl3jhCypD8G5nuciOjgX
|
|
16
|
+
/ZkKZsTELZ1kZmCggWPzpu4ctEKqXM2hE6oWAzYUIQKBgQDwfQ01cjIXHTLOD4Sb
|
|
17
|
+
xLaYBuP4Uu+SZEaUYzIfW8sJxo3X6zTFZNnajD5D0TR+U0pqqHqHn8SLaImNOYxA
|
|
18
|
+
FWacscAeYUfD6E/Dl0TdWhZiYkEYhpXKS8pOtRVbwrcRvwc1ppzPqTtAnI10BYgn
|
|
19
|
+
7US/AY6kke9keqEv2dZiw1mbiwKBgQDIGGzw/T6+YZpHXL5Ujf0REYppJAf2yuSj
|
|
20
|
+
c5qMBsDtklCybCeCuULHp69eOf/2V97YY4hhVWuRRIS1h6nYsp8F2dDxIx+Gt6sC
|
|
21
|
+
Jvu7GW/g1tlGBOFQwJ5lCpeqjiuSxYbqPsaplkWQbA8t3ej8e+jyAb6R5A9OZSHu
|
|
22
|
+
Sj7FgjpodQKBgC6nc+qMbt9BENwc8pLthKbVn2BLZqK1xWOAIvcmbatF07qxrJkm
|
|
23
|
+
yYS2dFXfvhlLu0IZ0TuCaTTKYPT+1xCPlkqLyUObh7qf1OmS7Q8sLO+FNC+33FNU
|
|
24
|
+
hLjkNHKKwc01jAaCfiVjJVWRiXeaoyFrzExp1uxiS1jo2WBZGFgsobOlAoGAPpld
|
|
25
|
+
o7smoPr6AC9koCFXtbpOGfyavTvWcchd5kbKnshylI8/gSciXEH6nDj6+f+diQcC
|
|
26
|
+
iKjnoSfVeNE7cr7W/0aYlogNeeEGEANQJ8WaebXdfYlTUCcipqu8rTATM7S2M5x2
|
|
27
|
+
HGIV20vjJ89P74V4aBXhn9TAcR80kU8K+lF2om0CgYEAvN4eDUXz4+IKV384wCT9
|
|
28
|
+
+KJV7UBhlfXoQ+cS4+lQ9naClnONGNSB7XcAfFrmkEQpcG6w7BTHsLSlwjoVpzV3
|
|
29
|
+
sqLVwxIkRkbDJRvwZ3Z9xdBB9rDxO7U6DzRXoOD9I5cTw+DtCzUpZuaBH7p7xu1P
|
|
30
|
+
YsO1j/ur41d9sMEstZjq7u8=
|
|
31
|
+
-----END PRIVATE KEY-----`;
|
|
32
|
+
const DEV_TLS_CERT = `-----BEGIN CERTIFICATE-----
|
|
33
|
+
MIIDMjCCAhqgAwIBAgIUQ8p4zLzAtmYqCe/JeEXoqI0mkQ0wDQYJKoZIhvcNAQEL
|
|
34
|
+
BQAwFDESMBAGA1UEAwwJMTI3LjAuMC4xMB4XDTI2MDQyMjA1MjM0OFoXDTI2MDQy
|
|
35
|
+
OTA1MjM0OFowFDESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEF
|
|
36
|
+
AAOCAQ8AMIIBCgKCAQEAu/ikYiLvTDiwDtT7EcdjlhKgjc885znH5y65PG9czWaV
|
|
37
|
+
qkiXxWOnV1ccRo8JMM/naPYnf6f6sd6AbAg3sYvNO7AyBIbPeB49+RODsP8AhIIE
|
|
38
|
+
MaZUFWTpiPlfsUpa4vkWpnrcub3C2g2zey21nIoin0P4PjBnEGuE4NlEDtB3vwIj
|
|
39
|
+
4dnV+OpdY4lnz737TJC95TZQGP0jzE9UIT+Q8l5n7kbD8PmkahZFqOkgh8c8tPp/
|
|
40
|
+
vPgj8Oz/KO9RYn5qLIAxjU+mg5grIg+630vrkHTElVnfX2LNWg7kmoY2UKCuW83n
|
|
41
|
+
Vwgrf/MrGoC+SXlyAl3b2g0m6U6LjRFPCTnAgqKOhwIDAQABo3wwejAsBgNVHREE
|
|
42
|
+
JTAjgglsb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwCwYDVR0PBAQD
|
|
43
|
+
AgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHQYDVR0OBBYEFL7V
|
|
44
|
+
x8eeuBtBjWjnZHkTMNu+bnmhMA0GCSqGSIb3DQEBCwUAA4IBAQCUpJ1NFvbgAVxm
|
|
45
|
+
4E4We0CxMN16OMYMbqoOx7iBwkAU4MQxEw3oROuq9zqnIQz8w6CgZVVa7zAdfyUL
|
|
46
|
+
Ihra/ENOzYfqzIcyi8GCd3lRtnunAEC4BvQj1aZAX1QcTdrqhmFmSLtmUK0MHvrb
|
|
47
|
+
JcCgnAktZQdQip41/b9gh0ZY8vdbODopMn2IhXH3HnUzYvtPC7Da7SxfBZhI750O
|
|
48
|
+
F36lhQ1sm4SN+pRGy/ROMsK/vud83CIWoqUGwQZX3nGK1o6jeV1f4NEBRKrxBZIE
|
|
49
|
+
IsU2et3yMaeMhKoZAGRVkBIHUXwz7nmRKVHkGalCgYwd8Y6co2ZDbQcin97HhmXm
|
|
50
|
+
+FAI/dzD
|
|
51
|
+
-----END CERTIFICATE-----`;
|
|
52
|
+
export async function startPluginDevServer(options = {}) {
|
|
53
|
+
const paths = await ensurePluginProjectExists(options.projectRoot);
|
|
54
|
+
const host = options.host ?? DEFAULT_HOST;
|
|
55
|
+
const server = createServer({
|
|
56
|
+
key: DEV_TLS_KEY,
|
|
57
|
+
cert: DEV_TLS_CERT,
|
|
58
|
+
}, async (request, response) => {
|
|
59
|
+
try {
|
|
60
|
+
await handleRequest(paths.projectRoot, paths.sourceEntryPath, paths.manifestPath, request.method ?? "GET", request.url ?? "/", response);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
64
|
+
writeHeaders(response, 500, "text/plain; charset=utf-8");
|
|
65
|
+
response.end(request.method === "HEAD" ? undefined : message);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
const port = await new Promise((resolvePromise, reject) => {
|
|
69
|
+
server.once("error", reject);
|
|
70
|
+
server.listen(options.port ?? 0, host, () => {
|
|
71
|
+
server.off("error", reject);
|
|
72
|
+
const address = server.address();
|
|
73
|
+
if (!address || typeof address === "string") {
|
|
74
|
+
reject(new ToolingError("Failed to start dev server", [
|
|
75
|
+
{
|
|
76
|
+
severity: "error",
|
|
77
|
+
path: "<dev-server>",
|
|
78
|
+
message: "HTTPS server did not expose a TCP address",
|
|
79
|
+
},
|
|
80
|
+
]));
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
resolvePromise(address.port);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
const manifestUrl = new URL(DEFAULT_MANIFEST_ROUTE, `https://${host}:${port}`)
|
|
87
|
+
.href;
|
|
88
|
+
return {
|
|
89
|
+
async close() {
|
|
90
|
+
await closeServer(server);
|
|
91
|
+
},
|
|
92
|
+
host,
|
|
93
|
+
manifestUrl,
|
|
94
|
+
port,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async function handleRequest(projectRoot, sourceEntryPath, manifestPath, method, requestUrl, response) {
|
|
98
|
+
if (method === "OPTIONS") {
|
|
99
|
+
writeHeaders(response, 204);
|
|
100
|
+
response.end();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const manifestText = await readTextFile(manifestPath);
|
|
104
|
+
const manifestJson = tryParseJsonText(manifestText);
|
|
105
|
+
const mainRoute = resolveMainRoute(manifestJson);
|
|
106
|
+
if (requestUrl === DEFAULT_MANIFEST_ROUTE) {
|
|
107
|
+
writeHeaders(response, 200, "application/json; charset=utf-8", computeEtag(manifestText));
|
|
108
|
+
response.end(method === "HEAD" ? undefined : manifestText);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (mainRoute && requestUrl === mainRoute) {
|
|
112
|
+
const mainBundleSource = await buildMainBundleSource(sourceEntryPath);
|
|
113
|
+
writeHeaders(response, 200, "text/javascript; charset=utf-8", computeEtag(mainBundleSource));
|
|
114
|
+
response.end(method === "HEAD" ? undefined : mainBundleSource);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const uiEntryResult = resolveRequestUiEntry(manifestJson);
|
|
118
|
+
if (!uiEntryResult.ok) {
|
|
119
|
+
writeHeaders(response, 400, "text/plain; charset=utf-8");
|
|
120
|
+
response.end(method === "HEAD" ? undefined : uiEntryResult.message);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (uiEntryResult.uiEntry !== null && requestUrl === uiEntryResult.route) {
|
|
124
|
+
try {
|
|
125
|
+
const uiSource = await readProjectResourceText(projectRoot, uiEntryResult.uiEntry);
|
|
126
|
+
writeHeaders(response, 200, "text/html; charset=utf-8", computeEtag(uiSource));
|
|
127
|
+
response.end(method === "HEAD" ? undefined : uiSource);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
const message = error instanceof ToolingError
|
|
131
|
+
? (error.diagnostics[0]?.message ?? error.message)
|
|
132
|
+
: error instanceof Error
|
|
133
|
+
? error.message
|
|
134
|
+
: String(error);
|
|
135
|
+
writeHeaders(response, 500, "text/plain; charset=utf-8");
|
|
136
|
+
response.end(method === "HEAD" ? undefined : message);
|
|
137
|
+
}
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
writeHeaders(response, 404, "text/plain; charset=utf-8");
|
|
141
|
+
response.end(method === "HEAD" ? undefined : "Not found");
|
|
142
|
+
}
|
|
143
|
+
function resolveMainRoute(manifest) {
|
|
144
|
+
if (!manifest)
|
|
145
|
+
return DEFAULT_MAIN_ROUTE;
|
|
146
|
+
const main = manifest.main;
|
|
147
|
+
if (typeof main !== "string" || main.length === 0)
|
|
148
|
+
return DEFAULT_MAIN_ROUTE;
|
|
149
|
+
try {
|
|
150
|
+
const resolved = new URL(main, `https://${DEFAULT_HOST}${DEFAULT_MANIFEST_ROUTE}`);
|
|
151
|
+
const expectedOrigin = `https://${DEFAULT_HOST}`;
|
|
152
|
+
return resolved.origin === expectedOrigin
|
|
153
|
+
? `${resolved.pathname}${resolved.search}`
|
|
154
|
+
: null;
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return DEFAULT_MAIN_ROUTE;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function resolveRequestUiEntry(manifest) {
|
|
161
|
+
if (!manifest) {
|
|
162
|
+
return { ok: true, route: null, uiEntry: null };
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
const uiEntry = readOptionalUiEntry(manifest);
|
|
166
|
+
if (uiEntry === null) {
|
|
167
|
+
return { ok: true, route: null, uiEntry: null };
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
ok: true,
|
|
171
|
+
route: resolveProjectResourceRoute(uiEntry),
|
|
172
|
+
uiEntry,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
const message = error instanceof ToolingError
|
|
177
|
+
? (error.diagnostics[0]?.message ?? error.message)
|
|
178
|
+
: error instanceof Error
|
|
179
|
+
? error.message
|
|
180
|
+
: String(error);
|
|
181
|
+
return { ok: false, message };
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function writeHeaders(response, statusCode, contentType = "text/plain; charset=utf-8", etag) {
|
|
185
|
+
response.statusCode = statusCode;
|
|
186
|
+
response.setHeader("access-control-allow-origin", "*");
|
|
187
|
+
response.setHeader("access-control-allow-methods", "GET,HEAD,OPTIONS");
|
|
188
|
+
response.setHeader("access-control-expose-headers", "ETag, Content-Type");
|
|
189
|
+
response.setHeader("cache-control", "no-store");
|
|
190
|
+
response.setHeader("content-type", contentType);
|
|
191
|
+
if (etag) {
|
|
192
|
+
response.setHeader("etag", etag);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
async function closeServer(server) {
|
|
196
|
+
await new Promise((resolve, reject) => {
|
|
197
|
+
server.close((error) => {
|
|
198
|
+
if (error) {
|
|
199
|
+
reject(error);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
resolve();
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type { BuildPluginBundleOptions, BuildPluginBundleResult, } from "./build.js";
|
|
2
|
+
export { buildMainBundleSource, buildPluginBundle, buildRuntimeSource, } from "./build.js";
|
|
3
|
+
export type { CreatedPluginProject, CreatePluginProjectOptions, } from "./create-plugin.js";
|
|
4
|
+
export { createPluginProject, runCreatePluginCli } from "./create-plugin.js";
|
|
5
|
+
export type { PluginDevServer, StartPluginDevServerOptions, } from "./dev.js";
|
|
6
|
+
export { startPluginDevServer } from "./dev.js";
|
|
7
|
+
export type { PublishPluginProjectOptions, PublishPluginProjectResult, } from "./publish.js";
|
|
8
|
+
export { publishPluginProject } from "./publish.js";
|
|
9
|
+
export type { ToolDiagnostic, ToolDiagnosticSeverity } from "./shared.js";
|
|
10
|
+
export { ToolingError } from "./shared.js";
|
|
11
|
+
export type { ValidationReport } from "./validate.js";
|
|
12
|
+
export { validateBundleFile, validatePluginProject } from "./validate.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,YAAY,EACV,eAAe,EACf,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { buildMainBundleSource, buildPluginBundle, buildRuntimeSource, } from "./build.js";
|
|
2
|
+
export { createPluginProject, runCreatePluginCli } from "./create-plugin.js";
|
|
3
|
+
export { startPluginDevServer } from "./dev.js";
|
|
4
|
+
export { publishPluginProject } from "./publish.js";
|
|
5
|
+
export { ToolingError } from "./shared.js";
|
|
6
|
+
export { validateBundleFile, validatePluginProject } from "./validate.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAK7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAKhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type PublishPluginProjectOptions = {
|
|
2
|
+
projectRoot?: string;
|
|
3
|
+
server?: string;
|
|
4
|
+
token?: string;
|
|
5
|
+
changelog?: string;
|
|
6
|
+
};
|
|
7
|
+
export type PublishPluginProjectResult = {
|
|
8
|
+
version: {
|
|
9
|
+
id: string;
|
|
10
|
+
status: string;
|
|
11
|
+
artifact_path: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare function publishPluginProject(options?: PublishPluginProjectOptions): Promise<PublishPluginProjectResult>;
|
|
15
|
+
//# sourceMappingURL=publish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CA2DrC"}
|
package/dist/publish.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { buildPluginBundle } from "./build.js";
|
|
2
|
+
import { ToolingError } from "./shared.js";
|
|
3
|
+
export async function publishPluginProject(options = {}) {
|
|
4
|
+
const build = await buildPluginBundle({
|
|
5
|
+
projectRoot: options.projectRoot,
|
|
6
|
+
write: false,
|
|
7
|
+
});
|
|
8
|
+
const manifest = build.bundle.manifest;
|
|
9
|
+
const pluginId = typeof manifest === "object" &&
|
|
10
|
+
manifest !== null &&
|
|
11
|
+
"id" in manifest &&
|
|
12
|
+
typeof manifest.id === "string"
|
|
13
|
+
? manifest.id
|
|
14
|
+
: null;
|
|
15
|
+
if (!pluginId) {
|
|
16
|
+
throw new ToolingError("Plugin bundle manifest is missing id", [
|
|
17
|
+
{
|
|
18
|
+
message: "manifest.id is required",
|
|
19
|
+
path: "manifest.id",
|
|
20
|
+
severity: "error",
|
|
21
|
+
},
|
|
22
|
+
]);
|
|
23
|
+
}
|
|
24
|
+
const server = normaliseServerUrl(options.server ??
|
|
25
|
+
process.env.LOVISION_PLUGIN_SERVER ??
|
|
26
|
+
"http://localhost:3000");
|
|
27
|
+
const response = await fetch(`${server}/resources/${encodeURIComponent(pluginId)}/versions`, {
|
|
28
|
+
body: JSON.stringify({
|
|
29
|
+
bundle: build.bundle,
|
|
30
|
+
changelog: options.changelog ?? "",
|
|
31
|
+
}),
|
|
32
|
+
headers: {
|
|
33
|
+
"content-type": "application/json",
|
|
34
|
+
...(options.token ? { authorization: `Bearer ${options.token}` } : {}),
|
|
35
|
+
},
|
|
36
|
+
method: "POST",
|
|
37
|
+
});
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
const detail = await response.text().catch(() => "");
|
|
40
|
+
throw new ToolingError("Plugin publish failed", [
|
|
41
|
+
{
|
|
42
|
+
message: detail.length > 0
|
|
43
|
+
? `Server returned ${response.status}: ${detail}`
|
|
44
|
+
: `Server returned ${response.status}`,
|
|
45
|
+
path: "<publish>",
|
|
46
|
+
severity: "error",
|
|
47
|
+
},
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
return (await response.json());
|
|
51
|
+
}
|
|
52
|
+
function normaliseServerUrl(server) {
|
|
53
|
+
return server.replace(/\/+$/, "");
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiB3C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAuC,EAAE;IAEzC,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;IACvC,MAAM,QAAQ,GACZ,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,IAAI,IAAI,QAAQ;QAChB,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ;QAC7B,CAAC,CAAC,QAAQ,CAAC,EAAE;QACb,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,YAAY,CAAC,sCAAsC,EAAE;YAC7D;gBACE,OAAO,EAAE,yBAAyB;gBAClC,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,OAAO;aAClB;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAC/B,OAAO,CAAC,MAAM;QACZ,OAAO,CAAC,GAAG,CAAC,sBAAsB;QAClC,uBAAuB,CAC1B,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,MAAM,cAAc,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EAC9D;QACE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;SACnC,CAAC;QACF,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE;QACD,MAAM,EAAE,MAAM;KACf,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,YAAY,CAAC,uBAAuB,EAAE;YAC9C;gBACE,OAAO,EACL,MAAM,CAAC,MAAM,GAAG,CAAC;oBACf,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE;oBACjD,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,EAAE;gBAC1C,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,OAAO;aAClB;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA+B,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC"}
|
package/dist/shared.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ManifestError, ManifestWarning } from "@lovision/plugin-spec";
|
|
2
|
+
export type ToolDiagnosticSeverity = "error" | "warning";
|
|
3
|
+
export type ToolDiagnostic = {
|
|
4
|
+
severity: ToolDiagnosticSeverity;
|
|
5
|
+
path: string;
|
|
6
|
+
message: string;
|
|
7
|
+
code?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare class ToolingError extends Error {
|
|
10
|
+
readonly diagnostics: readonly ToolDiagnostic[];
|
|
11
|
+
constructor(message: string, diagnostics: readonly ToolDiagnostic[]);
|
|
12
|
+
}
|
|
13
|
+
export type PluginProjectPaths = {
|
|
14
|
+
projectRoot: string;
|
|
15
|
+
manifestPath: string;
|
|
16
|
+
sourceEntryPath: string;
|
|
17
|
+
distDir: string;
|
|
18
|
+
};
|
|
19
|
+
export type DependencyMode = {
|
|
20
|
+
kind: "registry";
|
|
21
|
+
pluginHostSpec?: string;
|
|
22
|
+
pluginDevSpec?: string;
|
|
23
|
+
pluginSpecSpec?: string;
|
|
24
|
+
pluginSdkSpec?: string;
|
|
25
|
+
} | {
|
|
26
|
+
kind: "file";
|
|
27
|
+
pluginHostPath?: string;
|
|
28
|
+
pluginDevPath?: string;
|
|
29
|
+
pluginSpecPath?: string;
|
|
30
|
+
pluginSdkPath?: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const PACKAGE_ROOT: string;
|
|
33
|
+
export declare const TEMPLATE_ROOT: string;
|
|
34
|
+
export type PluginTemplateName = "ai-layout-assistant" | "asset-browser" | "base" | "batch-layout-organizer" | "data-filler-full" | "data-filler-lite" | "design-lint-panel" | "export-selection" | "review-submitter";
|
|
35
|
+
export declare const TEMPLATE_ROOTS: Record<PluginTemplateName, string>;
|
|
36
|
+
export declare const WORKSPACE_PLUGIN_SDK_ROOT: string;
|
|
37
|
+
export declare const WORKSPACE_PLUGIN_SPEC_ROOT: string;
|
|
38
|
+
export declare const WORKSPACE_ENGINE_ROOT: string;
|
|
39
|
+
export declare const WORKSPACE_UTILS_ROOT: string;
|
|
40
|
+
export declare const DEFAULT_MANIFEST_FILE = "manifest.json";
|
|
41
|
+
export declare const DEFAULT_SOURCE_ENTRY_FILE = "src/main.ts";
|
|
42
|
+
export declare const DEFAULT_MANIFEST_ROUTE = "/manifest.json";
|
|
43
|
+
export declare const DEFAULT_MAIN_ROUTE = "/dist/main.js";
|
|
44
|
+
export declare const DEFAULT_HOST = "localhost";
|
|
45
|
+
export declare function resolvePluginProjectPaths(projectRoot?: string): PluginProjectPaths;
|
|
46
|
+
export declare function ensurePluginProjectExists(projectRoot?: string): Promise<PluginProjectPaths>;
|
|
47
|
+
export declare function assertPathExists(filePath: string, label: string): Promise<void>;
|
|
48
|
+
export declare function ensureDirectory(directoryPath: string): Promise<void>;
|
|
49
|
+
export declare function readTextFile(filePath: string): Promise<string>;
|
|
50
|
+
export declare function parseJsonText(text: string, sourceLabel: string): Record<string, unknown>;
|
|
51
|
+
export declare function tryParseJsonText(text: string): Record<string, unknown> | null;
|
|
52
|
+
export declare function readOptionalUiEntry(manifest: Record<string, unknown>): string | null;
|
|
53
|
+
export declare function resolveProjectResourceRoute(resourceEntry: string): string;
|
|
54
|
+
export declare function resolveProjectResourcePath(projectRoot: string, resourceEntry: string): Promise<string>;
|
|
55
|
+
export declare function readProjectResourceText(projectRoot: string, resourceEntry: string): Promise<string>;
|
|
56
|
+
export declare function computeEtag(text: string): string;
|
|
57
|
+
export declare function createCryptoRandomUuidPolyfill(): string;
|
|
58
|
+
export declare function manifestDiagnosticToToolDiagnostic(diagnostic: ManifestError | ManifestWarning): ToolDiagnostic;
|
|
59
|
+
export declare function formatPath(path: ReadonlyArray<string | number>): string;
|
|
60
|
+
export declare function sanitizePackageName(input: string): string;
|
|
61
|
+
export declare function sanitizePluginId(input: string): string;
|
|
62
|
+
export declare function titleCaseSlug(input: string): string;
|
|
63
|
+
export declare function sanitizeFileStem(input: string): string;
|
|
64
|
+
export declare function directoryHasEntries(directoryPath: string): Promise<boolean>;
|
|
65
|
+
export declare function toFileDependencySpecifier(_fromDirectory: string, absoluteDependencyPath: string): string;
|
|
66
|
+
export declare function buildTemplateTokens(opts: {
|
|
67
|
+
packageName: string;
|
|
68
|
+
pluginId: string;
|
|
69
|
+
pluginNameEn: string;
|
|
70
|
+
pluginNameZh: string;
|
|
71
|
+
commandNameEn: string;
|
|
72
|
+
commandNameZh: string;
|
|
73
|
+
engineSpec: string;
|
|
74
|
+
pluginHostSpec: string;
|
|
75
|
+
pluginSpecSpec: string;
|
|
76
|
+
pluginSdkSpec: string;
|
|
77
|
+
pluginDevSpec: string;
|
|
78
|
+
utilsSpec: string;
|
|
79
|
+
}): Record<string, string>;
|
|
80
|
+
export declare function renderTemplate(source: string, tokens: Record<string, string>): string;
|
|
81
|
+
export declare function toOutputTemplatePath(templatePath: string): string;
|
|
82
|
+
export declare function printDiagnostics(diagnostics: readonly ToolDiagnostic[]): void;
|
|
83
|
+
export declare function collectTemplateFiles(root: string): Promise<readonly string[]>;
|
|
84
|
+
export declare function dependencySpecsForMode(targetDirectory: string, mode: DependencyMode | undefined): {
|
|
85
|
+
engineSpec: string;
|
|
86
|
+
pluginDevSpec: string;
|
|
87
|
+
pluginHostSpec: string;
|
|
88
|
+
pluginSdkSpec: string;
|
|
89
|
+
pluginSpecSpec: string;
|
|
90
|
+
utilsSpec: string;
|
|
91
|
+
};
|
|
92
|
+
export declare function packageNameFromTarget(targetDirectory: string): string;
|
|
93
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|