frontend-auto-cms 1.0.4 → 1.0.5
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/dist/cli/setup.js +56 -31
- package/dist/cli/setup.js.map +1 -1
- package/dist/runtime/dashboard.js +240 -195
- package/dist/runtime/runtime/store.d.ts +1 -0
- package/package.json +1 -1
package/dist/cli/setup.js
CHANGED
|
@@ -93,6 +93,12 @@ function detectPageRoute(root, absoluteFile) {
|
|
|
93
93
|
}
|
|
94
94
|
return null;
|
|
95
95
|
}
|
|
96
|
+
function isValidGithubRepository(value) {
|
|
97
|
+
return /^[^/\s]+\/[^/\s]+$/.test(value);
|
|
98
|
+
}
|
|
99
|
+
function isValidGitlabRepository(value) {
|
|
100
|
+
return /^([^/\s]+\/)+[^/\s]+$/.test(value);
|
|
101
|
+
}
|
|
96
102
|
function detectPagesFromFiles(root, files, dashboardPath) {
|
|
97
103
|
const routes = new Set();
|
|
98
104
|
for (const file of files) {
|
|
@@ -100,8 +106,8 @@ function detectPagesFromFiles(root, files, dashboardPath) {
|
|
|
100
106
|
if (!route) {
|
|
101
107
|
continue;
|
|
102
108
|
}
|
|
103
|
-
const normalized = normalizeRoute(route);
|
|
104
|
-
if (normalized !== normalizeRoute(dashboardPath)) {
|
|
109
|
+
const normalized = normalizeRoute(route).toLowerCase();
|
|
110
|
+
if (normalized !== normalizeRoute(dashboardPath).toLowerCase()) {
|
|
105
111
|
routes.add(normalized);
|
|
106
112
|
}
|
|
107
113
|
}
|
|
@@ -154,21 +160,31 @@ function dashboardBootstrapHtml() {
|
|
|
154
160
|
`;
|
|
155
161
|
}
|
|
156
162
|
function normalizeDashboardRewritePath(dashboardPath) {
|
|
157
|
-
const normalized = normalizePath(dashboardPath).replace(/\/+$/, "") || "/";
|
|
163
|
+
const normalized = (normalizePath(dashboardPath).replace(/\/+$/, "") || "/").toLowerCase();
|
|
158
164
|
if (normalized === "/") {
|
|
159
165
|
return null;
|
|
160
166
|
}
|
|
161
167
|
return normalized;
|
|
162
168
|
}
|
|
163
|
-
function
|
|
169
|
+
function buildRewritePaths(dashboardPath, pages) {
|
|
170
|
+
const set = new Set();
|
|
164
171
|
const base = normalizeDashboardRewritePath(dashboardPath);
|
|
165
|
-
if (
|
|
166
|
-
|
|
172
|
+
if (base)
|
|
173
|
+
set.add(base);
|
|
174
|
+
for (const page of pages) {
|
|
175
|
+
const normalized = normalizeDashboardRewritePath(page);
|
|
176
|
+
if (normalized) {
|
|
177
|
+
set.add(normalized);
|
|
178
|
+
}
|
|
167
179
|
}
|
|
168
|
-
return
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
180
|
+
return Array.from(set);
|
|
181
|
+
}
|
|
182
|
+
function buildVercelDashboardRewrites(dashboardPath, pages) {
|
|
183
|
+
const paths = buildRewritePaths(dashboardPath, pages);
|
|
184
|
+
return paths.flatMap((path) => [
|
|
185
|
+
{ source: path, destination: "/" },
|
|
186
|
+
{ source: `${path}/:path*`, destination: "/" }
|
|
187
|
+
]);
|
|
172
188
|
}
|
|
173
189
|
function isRewriteEntry(value) {
|
|
174
190
|
return Boolean(value &&
|
|
@@ -176,8 +192,8 @@ function isRewriteEntry(value) {
|
|
|
176
192
|
typeof value.source === "string" &&
|
|
177
193
|
typeof value.destination === "string");
|
|
178
194
|
}
|
|
179
|
-
async function configureVercelRouting(cwd, dashboardPath) {
|
|
180
|
-
const rewritesToAdd = buildVercelDashboardRewrites(dashboardPath);
|
|
195
|
+
async function configureVercelRouting(cwd, dashboardPath, pages) {
|
|
196
|
+
const rewritesToAdd = buildVercelDashboardRewrites(dashboardPath, pages);
|
|
181
197
|
if (!rewritesToAdd.length) {
|
|
182
198
|
return "skipped";
|
|
183
199
|
}
|
|
@@ -212,15 +228,12 @@ async function configureVercelRouting(cwd, dashboardPath) {
|
|
|
212
228
|
await writeFile(vercelPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
|
|
213
229
|
return hasExisting ? "updated" : "created";
|
|
214
230
|
}
|
|
215
|
-
function dashboardRewriteLines(dashboardPath) {
|
|
216
|
-
const
|
|
217
|
-
|
|
218
|
-
return [];
|
|
219
|
-
}
|
|
220
|
-
return [`${base} /index.html 200`, `${base}/* /index.html 200`];
|
|
231
|
+
function dashboardRewriteLines(dashboardPath, pages) {
|
|
232
|
+
const paths = buildRewritePaths(dashboardPath, pages);
|
|
233
|
+
return paths.flatMap((path) => [`${path} /index.html 200`, `${path}/* /index.html 200`]);
|
|
221
234
|
}
|
|
222
|
-
async function configurePublicRedirects(cwd, dashboardPath) {
|
|
223
|
-
const rules = dashboardRewriteLines(dashboardPath);
|
|
235
|
+
async function configurePublicRedirects(cwd, dashboardPath, pages) {
|
|
236
|
+
const rules = dashboardRewriteLines(dashboardPath, pages);
|
|
224
237
|
if (!rules.length) {
|
|
225
238
|
return "skipped";
|
|
226
239
|
}
|
|
@@ -253,9 +266,9 @@ async function configurePublicRedirects(cwd, dashboardPath) {
|
|
|
253
266
|
await writeFile(redirectsPath, `${lines.join("\n")}\n`, "utf8");
|
|
254
267
|
return hasExisting ? "updated" : "created";
|
|
255
268
|
}
|
|
256
|
-
async function configureFirebaseHosting(cwd, dashboardPath) {
|
|
257
|
-
const
|
|
258
|
-
if (!
|
|
269
|
+
async function configureFirebaseHosting(cwd, dashboardPath, pages) {
|
|
270
|
+
const paths = buildRewritePaths(dashboardPath, pages);
|
|
271
|
+
if (!paths.length) {
|
|
259
272
|
return "skipped";
|
|
260
273
|
}
|
|
261
274
|
const firebasePath = resolve(cwd, "firebase.json");
|
|
@@ -281,10 +294,10 @@ async function configureFirebaseHosting(cwd, dashboardPath) {
|
|
|
281
294
|
const rewrites = Array.isArray(rewritesRaw)
|
|
282
295
|
? rewritesRaw.filter((item) => item && typeof item === "object")
|
|
283
296
|
: [];
|
|
284
|
-
const required = [
|
|
285
|
-
{ source:
|
|
286
|
-
{ source: `${
|
|
287
|
-
];
|
|
297
|
+
const required = paths.flatMap((path) => [
|
|
298
|
+
{ source: path, destination: "/index.html" },
|
|
299
|
+
{ source: `${path}/**`, destination: "/index.html" }
|
|
300
|
+
]);
|
|
288
301
|
let changed = false;
|
|
289
302
|
for (const entry of required) {
|
|
290
303
|
const existsEntry = rewrites.some((item) => item.source === entry.source &&
|
|
@@ -414,7 +427,19 @@ export async function setupCms(options = {}) {
|
|
|
414
427
|
name: "repository",
|
|
415
428
|
message: "Repository slug (owner/repo or group/project):",
|
|
416
429
|
when: (answers) => answers.provider !== "none",
|
|
417
|
-
validate: (input) =>
|
|
430
|
+
validate: (input, answers) => {
|
|
431
|
+
const repo = input.trim();
|
|
432
|
+
if (!repo) {
|
|
433
|
+
return "Repository is required.";
|
|
434
|
+
}
|
|
435
|
+
if (answers.provider === "github" && !isValidGithubRepository(repo)) {
|
|
436
|
+
return 'For GitHub use "owner/repo" (example: Gabo-Tech/testlanding).';
|
|
437
|
+
}
|
|
438
|
+
if (answers.provider === "gitlab" && !isValidGitlabRepository(repo)) {
|
|
439
|
+
return 'For GitLab use "group/project" (nested groups allowed).';
|
|
440
|
+
}
|
|
441
|
+
return true;
|
|
442
|
+
}
|
|
418
443
|
},
|
|
419
444
|
{
|
|
420
445
|
type: "input",
|
|
@@ -479,15 +504,15 @@ export async function setupCms(options = {}) {
|
|
|
479
504
|
}
|
|
480
505
|
const deploymentActions = [];
|
|
481
506
|
if (deploymentAnswers.host === "vercel") {
|
|
482
|
-
const result = await configureVercelRouting(cwd, runtimeSettings.dashboardPath);
|
|
507
|
+
const result = await configureVercelRouting(cwd, runtimeSettings.dashboardPath, runtimeSettings.pages);
|
|
483
508
|
deploymentActions.push(`vercel.json rewrites: ${result}`);
|
|
484
509
|
}
|
|
485
510
|
else if (deploymentAnswers.host === "netlify" || deploymentAnswers.host === "render") {
|
|
486
|
-
const result = await configurePublicRedirects(cwd, runtimeSettings.dashboardPath);
|
|
511
|
+
const result = await configurePublicRedirects(cwd, runtimeSettings.dashboardPath, runtimeSettings.pages);
|
|
487
512
|
deploymentActions.push(`public/_redirects: ${result}`);
|
|
488
513
|
}
|
|
489
514
|
else if (deploymentAnswers.host === "firebase-hosting") {
|
|
490
|
-
const result = await configureFirebaseHosting(cwd, runtimeSettings.dashboardPath);
|
|
515
|
+
const result = await configureFirebaseHosting(cwd, runtimeSettings.dashboardPath, runtimeSettings.pages);
|
|
491
516
|
deploymentActions.push(`firebase.json rewrites: ${result}`);
|
|
492
517
|
}
|
|
493
518
|
else if (deploymentAnswers.host === "github-pages") {
|
package/dist/cli/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElN,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzC,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,SAAiB;IAC3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAA2C,EAAE,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBACvD,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAgC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpE,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAe,EAAE,QAAQ,GAAG,GAAG;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC9C,QAAQ,CAAC,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,cAAc,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,YAAoB;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IAC1D,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC5D,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;QACjG,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IACnD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,KAAK;aACrB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3F,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACvB,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAe,EAAE,aAAqB;IAChF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,UAAU,KAAK,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CAAC,aAAqB;IACvD,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO;;;;;;;;;;;;;;;;;CAiBR,CAAC;AACF,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAqB;IAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAC3E,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,4BAA4B,CAAC,aAAqB;IACzD,MAAM,IAAI,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;QAClC,EAAE,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,CACZ,KAAK;QACH,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ;QAC1D,OAAQ,KAAmC,CAAC,WAAW,KAAK,QAAQ,CACvE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,GAAW,EAAE,aAAqB;IACtE,MAAM,aAAa,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IAClE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,MAAM,GAAG,MAAiC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC;QACvG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB,CAAC,aAAqB;IAClD,MAAM,IAAI,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,kBAAkB,EAAE,GAAG,IAAI,oBAAoB,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAW,EAAE,aAAqB;IACxE,MAAM,KAAK,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,OAAO;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACxC,MAAM,SAAS,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,OAAO,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAW,EAAE,aAAqB;IACxE,MAAM,IAAI,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,MAAM,GAAG,MAAiC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,MAAM,OAAO,GACX,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACxE,CAAC,CAAE,UAAsC;QACzC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACzC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;QAChE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG;QACf,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;QAC5C,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE;KACrD,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAC/B,CAAC,IAAI,EAAE,EAAE,CACN,IAA6B,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YACrD,IAAkC,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CACxE,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,MAAM,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9E,OAAO,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,GAAW;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,MAAM,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,GAAW,EAAE,IAA0C,EAAE,aAAqB;IACvH,MAAM,IAAI,GAAG,6BAA6B,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC;IAC1E,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,wBAAwB,UAAU;;qCAEf,IAAI;;;;;WAK9B,IAAI;WACJ,IAAI;;;;;;MAMT,IAAI;MACJ,IAAI;CACT,CAAC;IACA,MAAM,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAwB,EAAE;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;QAC/D;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,2BAA2B;YACpC,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACtB,OAAO,0CAA0C,CAAC;gBACpD,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,OAAO,2DAA2D,CAAC;gBACrE,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAEvC;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,qCAAqC;YAC9C,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC;SAC3E;KACF,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,MAAM,CAE1C;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,mDAAmD;YAC5D,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,MAAM,CAE5C;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,qDAAqD;YAC9D,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,qCAAqC,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC9D,EAAE,IAAI,EAAE,sCAAsC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAEjE,EAAE,IAAI,EAAE,sCAAsC,EAAE,KAAK,EAAE,SAAS,EAAE;gBAClE,EAAE,IAAI,EAAE,iDAAiD,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC5E,EAAE,IAAI,EAAE,gDAAgD,EAAE,KAAK,EAAE,cAAc,EAAE;gBACjF,EAAE,IAAI,EAAE,oDAAoD,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACzF,EAAE,IAAI,EAAE,wCAAwC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnE,EAAE,IAAI,EAAE,wCAAwC,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnE,EAAE,IAAI,EAAE,2DAA2D,EAAE,KAAK,EAAE,cAAc,EAAE;aAC7F;YACD,OAAO,EAAE,MAAM;SAChB;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,CAIzC;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,+CAA+C;YACxD,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE;gBACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;aACpC;YACD,OAAO,EAAE,MAAM;SAChB;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,gDAAgD;YACzD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM;YAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC;SACvE;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM;YAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;SACnE;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAkB;QAC5B,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC1C,WAAW,EAAE,gBAAgB;QAC7B,SAAS,EAAE,SAAS;QACpB,aAAa;QACb,KAAK,EAAE,aAAa;KACrB,CAAC;IACF,MAAM,cAAc,GAA0B;QAC5C,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;KACtD,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,WAAW,GAAuB;QACtC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC;KACzD,CAAC;IAEF,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7C,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,EAAE,WAAW,CAAC,CAAC;IAElE,MAAM,aAAa,GAAyB;QAC1C,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,EAAE;QAC3C,MAAM,EAAE,cAAc,CAAC,MAAM,IAAI,MAAM;KACxC,CAAC;IACF,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/D,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,aAAa,CAAC,CAAC;IAEvE,MAAM,eAAe,GAA2B;QAC9C,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,YAAY;QACnD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;QAC5B,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,eAAe,CAAC,oBAAoB;KAC3D,CAAC;IACF,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,eAAe,CAAC,CAAC;IAC1E,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,cAAc,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,0BAA0B,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAChF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAChF,iBAAiB,CAAC,IAAI,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,SAAS,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvF,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAClF,iBAAiB,CAAC,IAAI,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAClF,iBAAiB,CAAC,IAAI,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,CAAC;QACtD,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,IACL,iBAAiB,CAAC,IAAI,KAAK,QAAQ;QACnC,iBAAiB,CAAC,IAAI,KAAK,QAAQ;QACnC,iBAAiB,CAAC,IAAI,KAAK,cAAc,EACzC,CAAC;QACD,MAAM,2BAA2B,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAC9F,iBAAiB,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,eAAe,IAAI,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,gBAAgB,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,aAAa,IAAI,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,qBAAqB,IAAI,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,gBAAgB,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,wBAAwB,IAAI,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,yBAAyB,IAAI,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,wBAAwB,IAAI,CAAC,CAAC,CAAC;QACrF,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC9F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,eAAe,CAAC,aAAa,uBAAuB,CAAC,CAAC;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACpG,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,30 @@
|
|
|
1
|
-
const
|
|
2
|
-
function
|
|
3
|
-
localStorage.setItem(
|
|
1
|
+
const me = "cms-export.patch.json", ye = "frontend-auto-cms::content", te = "frontend-auto-cms::locales";
|
|
2
|
+
function ae(e) {
|
|
3
|
+
localStorage.setItem(ye, JSON.stringify(e));
|
|
4
4
|
}
|
|
5
|
-
function
|
|
5
|
+
function ne() {
|
|
6
6
|
try {
|
|
7
|
-
const e = localStorage.getItem(
|
|
7
|
+
const e = localStorage.getItem(te);
|
|
8
8
|
return e ? JSON.parse(e) : {};
|
|
9
9
|
} catch {
|
|
10
10
|
return {};
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
function
|
|
14
|
-
localStorage.setItem(
|
|
13
|
+
function T(e) {
|
|
14
|
+
localStorage.setItem(te, JSON.stringify(e));
|
|
15
15
|
}
|
|
16
|
-
async function
|
|
16
|
+
async function he() {
|
|
17
|
+
try {
|
|
18
|
+
const e = await fetch("/cms-content.json", { cache: "no-store" });
|
|
19
|
+
if (!e.ok)
|
|
20
|
+
return null;
|
|
21
|
+
const t = await e.json();
|
|
22
|
+
return !t || !Array.isArray(t.nodes) ? null : t;
|
|
23
|
+
} catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function xe() {
|
|
17
28
|
try {
|
|
18
29
|
const e = await fetch("/cms-locales.json", { cache: "no-store" });
|
|
19
30
|
if (!e.ok)
|
|
@@ -24,29 +35,29 @@ async function me() {
|
|
|
24
35
|
return {};
|
|
25
36
|
}
|
|
26
37
|
}
|
|
27
|
-
function
|
|
38
|
+
function ve(e) {
|
|
28
39
|
const t = new Blob([JSON.stringify(e, null, 2)], { type: "application/json" }), a = URL.createObjectURL(t), o = document.createElement("a");
|
|
29
|
-
o.href = a, o.download =
|
|
40
|
+
o.href = a, o.download = me, o.click(), URL.revokeObjectURL(a);
|
|
30
41
|
}
|
|
31
|
-
function
|
|
42
|
+
function _(e) {
|
|
32
43
|
return e.replace(/[^\w]+/g, "_").replace(/^_+|_+$/g, "").toLowerCase();
|
|
33
44
|
}
|
|
34
|
-
function
|
|
45
|
+
function v(e) {
|
|
35
46
|
const t = e.getAttribute("id");
|
|
36
47
|
if (t)
|
|
37
48
|
return `#${t}`;
|
|
38
49
|
const a = (e.getAttribute("class") ?? "").split(/\s+/).filter(Boolean)[0];
|
|
39
50
|
return a ? `${e.tagName.toLowerCase()}.${a}` : e.tagName.toLowerCase();
|
|
40
51
|
}
|
|
41
|
-
function
|
|
52
|
+
function oe(e) {
|
|
42
53
|
return ["SCRIPT", "STYLE", "NOSCRIPT", "IFRAME"].includes(e.tagName);
|
|
43
54
|
}
|
|
44
55
|
function N(e) {
|
|
45
56
|
return (e ?? "").replace(/\s+/g, " ").trim();
|
|
46
57
|
}
|
|
47
|
-
function
|
|
58
|
+
function ke(e, t, a) {
|
|
48
59
|
const o = t.parentElement;
|
|
49
|
-
if (!o ||
|
|
60
|
+
if (!o || oe(o))
|
|
50
61
|
return null;
|
|
51
62
|
if (Array.from(o.childNodes).filter(
|
|
52
63
|
(s) => s.nodeType === Node.TEXT_NODE && N(s.nodeValue).length > 0
|
|
@@ -55,7 +66,7 @@ function xe(e, t, a) {
|
|
|
55
66
|
const r = e.createElement("span");
|
|
56
67
|
return r.textContent = t.nodeValue ?? "", r.setAttribute("data-cms-key", a), t.parentNode?.replaceChild(r, t), r;
|
|
57
68
|
}
|
|
58
|
-
function
|
|
69
|
+
function $(e = document, t) {
|
|
59
70
|
const a = [];
|
|
60
71
|
let o = 0, n = 0, r = 0, s = 0;
|
|
61
72
|
const l = t ?? e.location?.pathname ?? location.pathname, c = e.body;
|
|
@@ -73,36 +84,36 @@ function T(e = document, t) {
|
|
|
73
84
|
if (m.length < 2)
|
|
74
85
|
continue;
|
|
75
86
|
o += 1;
|
|
76
|
-
const
|
|
77
|
-
if (!
|
|
87
|
+
const K = `${_(l || "index")}.text.${o}`, j = ke(e, b, K);
|
|
88
|
+
if (!j)
|
|
78
89
|
continue;
|
|
79
90
|
a.push({
|
|
80
91
|
id: `dom_txt_${o}`,
|
|
81
|
-
key:
|
|
92
|
+
key: K,
|
|
82
93
|
type: "text",
|
|
83
|
-
label:
|
|
94
|
+
label: v(j),
|
|
84
95
|
value: m,
|
|
85
|
-
selector:
|
|
96
|
+
selector: v(j),
|
|
86
97
|
sourceRefs: [{ file: l, original: m }]
|
|
87
98
|
});
|
|
88
99
|
continue;
|
|
89
100
|
}
|
|
90
101
|
const i = d;
|
|
91
|
-
if (
|
|
102
|
+
if (oe(i))
|
|
92
103
|
continue;
|
|
93
104
|
const p = i.tagName.toLowerCase();
|
|
94
105
|
if (p === "img" || p === "video") {
|
|
95
106
|
const b = i.getAttribute("src") ?? "";
|
|
96
107
|
if (b) {
|
|
97
108
|
n += 1;
|
|
98
|
-
const m = `${
|
|
109
|
+
const m = `${_(l || "index")}.${p}.${n}`;
|
|
99
110
|
i.setAttribute("data-cms-key", m), a.push({
|
|
100
111
|
id: `dom_media_${n}`,
|
|
101
112
|
key: m,
|
|
102
113
|
type: p === "img" ? "image" : "video",
|
|
103
|
-
label:
|
|
114
|
+
label: v(i),
|
|
104
115
|
value: b,
|
|
105
|
-
selector:
|
|
116
|
+
selector: v(i),
|
|
106
117
|
attrs: { src: b, alt: i.getAttribute("alt") ?? "" },
|
|
107
118
|
sourceRefs: [{ file: l, original: b }]
|
|
108
119
|
});
|
|
@@ -112,14 +123,14 @@ function T(e = document, t) {
|
|
|
112
123
|
const b = Array.from(i.children).map((m) => N(m.textContent)).filter(Boolean);
|
|
113
124
|
if (b.length >= 2) {
|
|
114
125
|
r += 1;
|
|
115
|
-
const m = `${
|
|
126
|
+
const m = `${_(l || "index")}.section.${r}`;
|
|
116
127
|
i.setAttribute("data-cms-key", m), a.push({
|
|
117
128
|
id: `dom_sec_${r}`,
|
|
118
129
|
key: m,
|
|
119
130
|
type: "section",
|
|
120
|
-
label:
|
|
131
|
+
label: v(i),
|
|
121
132
|
value: b.join(" | "),
|
|
122
|
-
selector:
|
|
133
|
+
selector: v(i),
|
|
123
134
|
sectionItems: b,
|
|
124
135
|
sourceRefs: [{ file: l, original: i.innerHTML }]
|
|
125
136
|
});
|
|
@@ -131,14 +142,14 @@ function T(e = document, t) {
|
|
|
131
142
|
m != null && m.trim() && (g[b] = m);
|
|
132
143
|
}), Object.keys(g).length > 0 && !(p === "img" || p === "video")) {
|
|
133
144
|
s += 1;
|
|
134
|
-
const b = `${
|
|
145
|
+
const b = `${_(l || "index")}.property.${s}`;
|
|
135
146
|
a.push({
|
|
136
147
|
id: `dom_prop_${s}`,
|
|
137
148
|
key: b,
|
|
138
149
|
type: "property",
|
|
139
|
-
label:
|
|
150
|
+
label: v(i),
|
|
140
151
|
value: JSON.stringify(g),
|
|
141
|
-
selector:
|
|
152
|
+
selector: v(i),
|
|
142
153
|
attrs: g,
|
|
143
154
|
sourceRefs: [{ file: l, original: JSON.stringify(g) }]
|
|
144
155
|
});
|
|
@@ -150,7 +161,7 @@ function T(e = document, t) {
|
|
|
150
161
|
nodes: a
|
|
151
162
|
};
|
|
152
163
|
}
|
|
153
|
-
function
|
|
164
|
+
function R(e, t = document) {
|
|
154
165
|
if (!e.key)
|
|
155
166
|
return;
|
|
156
167
|
const a = t.querySelector(`[data-cms-key="${CSS.escape(e.key)}"]`);
|
|
@@ -169,7 +180,7 @@ function oe(e, t = document) {
|
|
|
169
180
|
}
|
|
170
181
|
}
|
|
171
182
|
}
|
|
172
|
-
const
|
|
183
|
+
const B = [
|
|
173
184
|
{ code: "af", label: "Afrikaans", nllb: "afr_Latn" },
|
|
174
185
|
{ code: "ar", label: "Arabic", nllb: "arb_Arab" },
|
|
175
186
|
{ code: "az", label: "Azerbaijani", nllb: "azj_Latn" },
|
|
@@ -234,24 +245,24 @@ const P = [
|
|
|
234
245
|
{ code: "uz", label: "Uzbek", nllb: "uzn_Latn" },
|
|
235
246
|
{ code: "vi", label: "Vietnamese", nllb: "vie_Latn" },
|
|
236
247
|
{ code: "zh", label: "Chinese (Simplified)", nllb: "zho_Hans" }
|
|
237
|
-
],
|
|
238
|
-
|
|
239
|
-
),
|
|
240
|
-
function
|
|
248
|
+
], J = Object.fromEntries(
|
|
249
|
+
B.map((e) => [e.nllb.slice(0, 3).toLowerCase(), e.code])
|
|
250
|
+
), we = "https://api.mymemory.translated.net/get";
|
|
251
|
+
function F(e) {
|
|
241
252
|
const t = e.trim().toLowerCase().split(/[-_]/)[0];
|
|
242
253
|
if (/^[a-z]{2}$/i.test(t))
|
|
243
254
|
return t;
|
|
244
|
-
if (/^[a-z]{3}$/i.test(t) &&
|
|
245
|
-
return
|
|
255
|
+
if (/^[a-z]{3}$/i.test(t) && J[t])
|
|
256
|
+
return J[t];
|
|
246
257
|
throw new Error(`Unsupported language code "${e}" for MyMemory translation.`);
|
|
247
258
|
}
|
|
248
|
-
async function
|
|
259
|
+
async function Le(e, t, a) {
|
|
249
260
|
if (!e.trim())
|
|
250
261
|
return e;
|
|
251
262
|
const o = new URLSearchParams({
|
|
252
263
|
q: e,
|
|
253
264
|
langpair: `${t}|${a}`
|
|
254
|
-
}), n = await fetch(`${
|
|
265
|
+
}), n = await fetch(`${we}?${o.toString()}`, { method: "GET" });
|
|
255
266
|
if (!n.ok)
|
|
256
267
|
throw new Error(`MyMemory request failed (${n.status})`);
|
|
257
268
|
const r = await n.json();
|
|
@@ -260,8 +271,8 @@ async function ke(e, t, a) {
|
|
|
260
271
|
const s = r.responseData?.translatedText;
|
|
261
272
|
return typeof s == "string" && s.trim() ? s : e;
|
|
262
273
|
}
|
|
263
|
-
async function
|
|
264
|
-
const n =
|
|
274
|
+
async function $e(e, t, a = "en", o) {
|
|
275
|
+
const n = F(a), r = F(t), s = /* @__PURE__ */ new Map(), l = {}, c = Object.entries(e), f = c.length;
|
|
265
276
|
let d = 0;
|
|
266
277
|
for (const [i, p] of c) {
|
|
267
278
|
if (s.has(p)) {
|
|
@@ -269,7 +280,7 @@ async function ve(e, t, a = "en", o) {
|
|
|
269
280
|
continue;
|
|
270
281
|
}
|
|
271
282
|
try {
|
|
272
|
-
const g = await
|
|
283
|
+
const g = await Le(p, n, r);
|
|
273
284
|
s.set(p, g), l[i] = g;
|
|
274
285
|
} catch {
|
|
275
286
|
l[i] = p;
|
|
@@ -278,7 +289,13 @@ async function ve(e, t, a = "en", o) {
|
|
|
278
289
|
}
|
|
279
290
|
return l;
|
|
280
291
|
}
|
|
281
|
-
|
|
292
|
+
function re(e) {
|
|
293
|
+
return /^[^/\s]+\/[^/\s]+$/.test(e);
|
|
294
|
+
}
|
|
295
|
+
function se(e) {
|
|
296
|
+
return /^([^/\s]+\/)+[^/\s]+$/.test(e);
|
|
297
|
+
}
|
|
298
|
+
async function Se(e, t, a) {
|
|
282
299
|
return (await fetch(
|
|
283
300
|
`https://gitlab.com/api/v4/projects/${encodeURIComponent(e.repository)}/repository/files/${encodeURIComponent(a)}?ref=${encodeURIComponent(e.branch)}`,
|
|
284
301
|
{
|
|
@@ -287,18 +304,21 @@ async function we(e, t, a) {
|
|
|
287
304
|
}
|
|
288
305
|
)).ok;
|
|
289
306
|
}
|
|
290
|
-
async function
|
|
307
|
+
async function Ee() {
|
|
291
308
|
try {
|
|
292
309
|
const e = await fetch("/cms-hosting.json", { cache: "no-store" });
|
|
293
310
|
if (!e.ok)
|
|
294
311
|
return null;
|
|
295
312
|
const t = await e.json();
|
|
296
|
-
|
|
313
|
+
if (!t || !t.provider || t.provider === "none" || t.provider !== "github" && t.provider !== "gitlab" || typeof t.repository != "string" || !t.repository.trim())
|
|
314
|
+
return null;
|
|
315
|
+
const a = t.repository.trim();
|
|
316
|
+
return t.provider === "github" && !re(a) || t.provider === "gitlab" && !se(a) || typeof t.branch != "string" || !t.branch.trim() ? null : { ...t, repository: a, branch: t.branch.trim() };
|
|
297
317
|
} catch {
|
|
298
318
|
return null;
|
|
299
319
|
}
|
|
300
320
|
}
|
|
301
|
-
async function
|
|
321
|
+
async function O(e, t, a, o, n) {
|
|
302
322
|
const r = `https://api.github.com/repos/${e.repository}/contents/${encodeURIComponent(a).replace(/%2F/g, "/")}`;
|
|
303
323
|
let s;
|
|
304
324
|
const l = await fetch(`${r}?ref=${encodeURIComponent(e.branch)}`, {
|
|
@@ -321,14 +341,14 @@ async function j(e, t, a, o, n) {
|
|
|
321
341
|
})).ok)
|
|
322
342
|
throw new Error(`GitHub publish failed for ${a}`);
|
|
323
343
|
}
|
|
324
|
-
async function
|
|
344
|
+
async function _e(e, t, a) {
|
|
325
345
|
const o = `chore(cms): publish content updates ${(/* @__PURE__ */ new Date()).toISOString()}`;
|
|
326
|
-
if (await
|
|
346
|
+
if (await O(e, t, "cms-content.json", JSON.stringify(a.content, null, 2), o), a.locales)
|
|
327
347
|
for (const [n, r] of Object.entries(a.locales))
|
|
328
|
-
await
|
|
329
|
-
await
|
|
348
|
+
await O(e, t, `locales/${n}.json`, JSON.stringify(r, null, 2), o);
|
|
349
|
+
await O(e, t, "cms-export.patch.json", JSON.stringify(a, null, 2), o);
|
|
330
350
|
}
|
|
331
|
-
async function
|
|
351
|
+
async function Ae(e, t, a) {
|
|
332
352
|
const o = [
|
|
333
353
|
{ filePath: "cms-content.json", content: JSON.stringify(a.content, null, 2) },
|
|
334
354
|
{ filePath: "cms-export.patch.json", content: JSON.stringify(a, null, 2) }
|
|
@@ -338,7 +358,7 @@ async function Se(e, t, a) {
|
|
|
338
358
|
o.push({ filePath: `locales/${s}.json`, content: JSON.stringify(l, null, 2) });
|
|
339
359
|
const n = [];
|
|
340
360
|
for (const s of o) {
|
|
341
|
-
const l = await
|
|
361
|
+
const l = await Se(e, t, s.filePath);
|
|
342
362
|
n.push({
|
|
343
363
|
action: l ? "update" : "create",
|
|
344
364
|
file_path: s.filePath,
|
|
@@ -359,12 +379,18 @@ async function Se(e, t, a) {
|
|
|
359
379
|
})).ok)
|
|
360
380
|
throw new Error("GitLab publish failed.");
|
|
361
381
|
}
|
|
362
|
-
async function
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
382
|
+
async function Te(e, t, a) {
|
|
383
|
+
if (!a || !t.trim())
|
|
384
|
+
return !1;
|
|
385
|
+
if (a.provider === "github" && !re(a.repository))
|
|
386
|
+
throw new Error('Invalid GitHub repository format. Use "owner/repo".');
|
|
387
|
+
if (a.provider === "gitlab" && !se(a.repository))
|
|
388
|
+
throw new Error('Invalid GitLab repository format. Use "group/project".');
|
|
389
|
+
return a.provider === "github" ? (await _e(a, t.trim(), e), !0) : a.provider === "gitlab" ? (await Ae(a, t.trim(), e), !0) : !1;
|
|
390
|
+
}
|
|
391
|
+
const Y = "facms-auth-modal", M = "facms-auth-missing", V = "facms-token-modal", W = "facms-language-modal", Ie = "frontend-auto-cms::theme", ie = "frontend-auto-cms::main-language", le = "frontend-auto-cms::language-labels";
|
|
392
|
+
let D = !1, k = null, X = !1, x = null, u = "dark";
|
|
393
|
+
function ce() {
|
|
368
394
|
if (document.getElementById("facms-dashboard-css"))
|
|
369
395
|
return;
|
|
370
396
|
const e = document.createElement("style");
|
|
@@ -603,59 +629,59 @@ function ie() {
|
|
|
603
629
|
}
|
|
604
630
|
`, document.head.appendChild(e);
|
|
605
631
|
}
|
|
606
|
-
function
|
|
632
|
+
function de(e) {
|
|
607
633
|
u = e;
|
|
608
634
|
const t = e === "dark";
|
|
609
|
-
document.documentElement.classList.toggle("dark", t), document.body.classList.toggle("dark", t), document.documentElement.style.background = t ? "#020617" : "#f1f5f9", document.body.style.background = t ? "#020617" : "#f1f5f9", document.documentElement.setAttribute("data-facms-theme", e), document.getElementById("facms-app")?.classList.toggle("dark", t), localStorage.setItem(
|
|
635
|
+
document.documentElement.classList.toggle("dark", t), document.body.classList.toggle("dark", t), document.documentElement.style.background = t ? "#020617" : "#f1f5f9", document.body.style.background = t ? "#020617" : "#f1f5f9", document.documentElement.setAttribute("data-facms-theme", e), document.getElementById("facms-app")?.classList.toggle("dark", t), localStorage.setItem(Ie, e);
|
|
610
636
|
const o = document.getElementById("facms-theme-toggle");
|
|
611
637
|
o && (o.textContent = e === "dark" ? "Switch to light" : "Switch to dark");
|
|
612
638
|
}
|
|
613
|
-
function
|
|
614
|
-
u = "dark",
|
|
639
|
+
function ue() {
|
|
640
|
+
u = "dark", de("dark");
|
|
615
641
|
}
|
|
616
|
-
function
|
|
642
|
+
function Ce(e) {
|
|
617
643
|
return Array.from(new Uint8Array(e)).map((t) => t.toString(16).padStart(2, "0")).join("");
|
|
618
644
|
}
|
|
619
|
-
async function
|
|
645
|
+
async function je(e) {
|
|
620
646
|
const t = new TextEncoder().encode(e), a = await crypto.subtle.digest("SHA-256", t);
|
|
621
|
-
return
|
|
647
|
+
return Ce(a);
|
|
622
648
|
}
|
|
623
|
-
async function
|
|
624
|
-
if (
|
|
625
|
-
return
|
|
649
|
+
async function fe() {
|
|
650
|
+
if (x)
|
|
651
|
+
return x;
|
|
626
652
|
try {
|
|
627
653
|
const e = await fetch("/cms-settings.json", { cache: "no-store" });
|
|
628
654
|
if (e.ok) {
|
|
629
655
|
const t = await e.json();
|
|
630
|
-
return
|
|
656
|
+
return x = {
|
|
631
657
|
dashboardPath: t.dashboardPath || "/dashboard",
|
|
632
|
-
pages: (t.pages?.length ? t.pages : ["/"]).map((a) =>
|
|
658
|
+
pages: (t.pages?.length ? t.pages : ["/"]).map((a) => Re(a)),
|
|
633
659
|
showFloatingButton: t.showFloatingButton ?? !1,
|
|
634
660
|
autoTranslateEnabled: t.autoTranslateEnabled ?? !0
|
|
635
|
-
},
|
|
661
|
+
}, x;
|
|
636
662
|
}
|
|
637
663
|
} catch {
|
|
638
664
|
}
|
|
639
|
-
return
|
|
665
|
+
return x = { dashboardPath: "/dashboard", pages: ["/"], showFloatingButton: !1, autoTranslateEnabled: !0 }, x;
|
|
640
666
|
}
|
|
641
|
-
async function
|
|
642
|
-
if (!
|
|
643
|
-
|
|
667
|
+
async function G() {
|
|
668
|
+
if (!X) {
|
|
669
|
+
X = !0;
|
|
644
670
|
try {
|
|
645
671
|
const e = await fetch("/cms-runtime-auth.json", { cache: "no-store" });
|
|
646
672
|
if (!e.ok) return;
|
|
647
673
|
const t = await e.json();
|
|
648
|
-
t.algorithm === "sha256" && typeof t.salt == "string" && typeof t.passcodeHash == "string" && (
|
|
674
|
+
t.algorithm === "sha256" && typeof t.salt == "string" && typeof t.passcodeHash == "string" && (k = { algorithm: "sha256", salt: t.salt, passcodeHash: t.passcodeHash });
|
|
649
675
|
} catch {
|
|
650
|
-
|
|
676
|
+
k = null;
|
|
651
677
|
}
|
|
652
678
|
}
|
|
653
679
|
}
|
|
654
|
-
async function
|
|
680
|
+
async function Oe(e) {
|
|
655
681
|
const t = e.trim();
|
|
656
|
-
return !t || (await
|
|
682
|
+
return !t || (await G(), !k) ? !1 : await je(`${k.salt}:${t}`) === k.passcodeHash;
|
|
657
683
|
}
|
|
658
|
-
function
|
|
684
|
+
function ze() {
|
|
659
685
|
let e = document.getElementById(M);
|
|
660
686
|
e || (e = document.createElement("div"), e.id = M, e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.background = "rgba(2, 6, 23, 0.88)", e.style.display = "grid", e.style.placeItems = "center", e.innerHTML = `
|
|
661
687
|
<div style="width:min(560px,92vw);background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:16px;padding:16px;box-shadow:0 20px 55px rgba(2,6,23,.45);font-family:Inter,system-ui,sans-serif;">
|
|
@@ -665,20 +691,20 @@ function Ce() {
|
|
|
665
691
|
</div>
|
|
666
692
|
`, document.body.appendChild(e));
|
|
667
693
|
}
|
|
668
|
-
function
|
|
694
|
+
function Ne() {
|
|
669
695
|
document.getElementById(M)?.remove();
|
|
670
696
|
}
|
|
671
|
-
async function
|
|
672
|
-
return await
|
|
697
|
+
async function pe() {
|
|
698
|
+
return await G(), k ? (Ne(), !0) : (ze(), !1);
|
|
673
699
|
}
|
|
674
|
-
function
|
|
675
|
-
const t = document.getElementById(
|
|
700
|
+
function ge(e) {
|
|
701
|
+
const t = document.getElementById(Y);
|
|
676
702
|
if (t) {
|
|
677
703
|
t.style.display = "grid";
|
|
678
704
|
return;
|
|
679
705
|
}
|
|
680
706
|
const a = document.createElement("div");
|
|
681
|
-
a.id =
|
|
707
|
+
a.id = Y, a.style.position = "fixed", a.style.inset = "0", a.style.zIndex = "2147483647", a.style.background = "rgba(2, 6, 23, 0.45)", a.style.display = "grid", a.style.placeItems = "center", a.innerHTML = `
|
|
682
708
|
<div style="width: min(420px, 92vw); background: ${u === "dark" ? "#0f172a" : "#ffffff"}; color: ${u === "dark" ? "#e2e8f0" : "#0f172a"}; border: 1px solid ${u === "dark" ? "#334155" : "#e2e8f0"}; border-radius: 16px; padding: 16px; box-shadow: 0 20px 55px rgba(2,6,23,0.45); font-family: Inter, system-ui, sans-serif;">
|
|
683
709
|
<h3 style="margin: 0 0 6px 0; font-size: 20px; line-height: 1.2; font-weight: 700;">Unlock CMS</h3>
|
|
684
710
|
<p style="margin: 0 0 12px 0; font-size: 12px; color: ${u === "dark" ? "#94a3b8" : "#475569"};">Enter your passcode to edit content.</p>
|
|
@@ -691,23 +717,23 @@ function fe(e) {
|
|
|
691
717
|
</div>
|
|
692
718
|
`;
|
|
693
719
|
const o = a.querySelector("#facms-passcode-input"), n = a.querySelector("#facms-passcode-error"), r = () => a.style.display = "none", s = async () => {
|
|
694
|
-
if (await
|
|
720
|
+
if (await G(), !k) {
|
|
695
721
|
n && (n.textContent = "CMS auth is not configured. Run setup to generate runtime auth files.", n.style.display = "block");
|
|
696
722
|
return;
|
|
697
723
|
}
|
|
698
|
-
if (!await
|
|
724
|
+
if (!await Oe(o?.value ?? "")) {
|
|
699
725
|
n && (n.textContent = "Incorrect passcode.", n.style.display = "block");
|
|
700
726
|
return;
|
|
701
727
|
}
|
|
702
|
-
n && (n.style.display = "none"),
|
|
728
|
+
n && (n.style.display = "none"), D = !0, r(), e();
|
|
703
729
|
};
|
|
704
730
|
a.querySelector("#facms-passcode-cancel")?.addEventListener("click", r), a.querySelector("#facms-passcode-submit")?.addEventListener("click", s), o?.addEventListener("keydown", (l) => l.key === "Enter" && void s()), document.body.appendChild(a), o?.focus();
|
|
705
731
|
}
|
|
706
|
-
function
|
|
707
|
-
const a = document.getElementById(
|
|
732
|
+
function Me(e, t) {
|
|
733
|
+
const a = document.getElementById(V);
|
|
708
734
|
a && a.remove();
|
|
709
735
|
const o = document.createElement("div");
|
|
710
|
-
o.id =
|
|
736
|
+
o.id = V, o.style.position = "fixed", o.style.inset = "0", o.style.zIndex = "2147483647", o.style.background = "rgba(2, 6, 23, 0.45)", o.style.display = "grid", o.style.placeItems = "center", o.innerHTML = `
|
|
711
737
|
<div style="width: min(520px, 92vw); background: ${u === "dark" ? "#0f172a" : "#ffffff"}; color: ${u === "dark" ? "#e2e8f0" : "#0f172a"}; border: 1px solid ${u === "dark" ? "#334155" : "#e2e8f0"}; border-radius: 16px; padding: 16px; box-shadow: 0 20px 55px rgba(2,6,23,0.45); font-family: Inter, system-ui, sans-serif;">
|
|
712
738
|
<h3 style="margin: 0 0 6px 0; font-size: 20px; line-height: 1.2; font-weight: 700;">Publish token required</h3>
|
|
713
739
|
<p style="margin: 0 0 12px 0; font-size: 12px; color: ${u === "dark" ? "#94a3b8" : "#475569"};">Enter your ${e} token for this publish only. It is not stored.</p>
|
|
@@ -729,7 +755,7 @@ function je(e, t) {
|
|
|
729
755
|
};
|
|
730
756
|
o.querySelector("#facms-token-cancel")?.addEventListener("click", s), o.querySelector("#facms-token-submit")?.addEventListener("click", l), n?.addEventListener("keydown", (c) => c.key === "Enter" && l()), document.body.appendChild(o), n?.focus();
|
|
731
757
|
}
|
|
732
|
-
function
|
|
758
|
+
function Pe(e, t, a) {
|
|
733
759
|
const o = document.getElementById(W);
|
|
734
760
|
o && o.remove();
|
|
735
761
|
const n = document.createElement("div");
|
|
@@ -739,7 +765,7 @@ function ze(e, t, a) {
|
|
|
739
765
|
<p style="margin: 0 0 8px 0; font-size: 12px; color: ${u === "dark" ? "#94a3b8" : "#475569"};">Pick a supported language or define a custom one for manual translation.</p>
|
|
740
766
|
<select id="facms-language-select" style="width: 100%; border: 1px solid ${u === "dark" ? "#475569" : "#cbd5e1"}; background: ${u === "dark" ? "#1e293b" : "#ffffff"}; color: ${u === "dark" ? "#f1f5f9" : "#0f172a"}; border-radius: 10px; padding: 10px 12px; font-size: 14px; box-sizing: border-box; margin-bottom: 8px;">
|
|
741
767
|
<option value="">Select supported language</option>
|
|
742
|
-
${
|
|
768
|
+
${B.filter((d) => !e.includes(d.code)).map((d) => `<option value="${d.code}">${d.label} (${d.code})</option>`).join("")}
|
|
743
769
|
<option value="__custom__">Custom language (manual)</option>
|
|
744
770
|
</select>
|
|
745
771
|
<input id="facms-language-name" type="text" placeholder="Custom language name (e.g. Klingon)" style="width: 100%; border: 1px solid ${u === "dark" ? "#475569" : "#cbd5e1"}; background: ${u === "dark" ? "#1e293b" : "#ffffff"}; color: ${u === "dark" ? "#f1f5f9" : "#0f172a"}; border-radius: 10px; padding: 10px 12px; font-size: 14px; box-sizing: border-box; margin-bottom: 8px; display:none;" />
|
|
@@ -763,16 +789,16 @@ function ze(e, t, a) {
|
|
|
763
789
|
const i = n.querySelector("#facms-language-error");
|
|
764
790
|
let p = "";
|
|
765
791
|
const g = s?.value ?? "";
|
|
766
|
-
let
|
|
767
|
-
if (g && g !== "__custom__" ? (p = I(g),
|
|
792
|
+
let h = "";
|
|
793
|
+
if (g && g !== "__custom__" ? (p = I(g), h = S(p)) : (p = I(l?.value ?? ""), h = (c?.value ?? "").trim()), !p || !/^[a-z]{2,3}([_-][a-z0-9]{2,8})?$|^[a-z]{3}_[A-Za-z]+$/i.test(p)) {
|
|
768
794
|
i && (i.textContent = "Enter a valid language code.", i.style.display = "block");
|
|
769
795
|
return;
|
|
770
796
|
}
|
|
771
|
-
if (
|
|
797
|
+
if (h || (h = S(p)), e.includes(p)) {
|
|
772
798
|
i && (i.textContent = `Language "${p}" already exists.`, i.style.display = "block");
|
|
773
799
|
return;
|
|
774
800
|
}
|
|
775
|
-
i && (i.style.display = "none"), r(), a(`${p}::${
|
|
801
|
+
i && (i.style.display = "none"), r(), a(`${p}::${h}`, d);
|
|
776
802
|
};
|
|
777
803
|
n.querySelector("#facms-language-manual")?.addEventListener("click", () => f("manual")), t && n.querySelector("#facms-language-autofill")?.addEventListener("click", () => f("auto")), document.body.appendChild(n);
|
|
778
804
|
}
|
|
@@ -786,13 +812,17 @@ function z(e, t) {
|
|
|
786
812
|
function I(e) {
|
|
787
813
|
return e.trim().toLowerCase();
|
|
788
814
|
}
|
|
789
|
-
function
|
|
790
|
-
const t =
|
|
815
|
+
function Re(e) {
|
|
816
|
+
const t = e.trim() || "/";
|
|
817
|
+
return t === "/" ? "/" : (t.startsWith("/") ? t : `/${t}`).toLowerCase();
|
|
818
|
+
}
|
|
819
|
+
function S(e) {
|
|
820
|
+
const t = I(e), a = B.find((o) => o.code === t);
|
|
791
821
|
return a ? a.label : t.toUpperCase();
|
|
792
822
|
}
|
|
793
|
-
function
|
|
823
|
+
function Be() {
|
|
794
824
|
try {
|
|
795
|
-
const e = localStorage.getItem(
|
|
825
|
+
const e = localStorage.getItem(le);
|
|
796
826
|
if (!e)
|
|
797
827
|
return {};
|
|
798
828
|
const t = JSON.parse(e);
|
|
@@ -801,27 +831,27 @@ function Ne() {
|
|
|
801
831
|
return {};
|
|
802
832
|
}
|
|
803
833
|
}
|
|
804
|
-
function
|
|
805
|
-
localStorage.setItem(
|
|
834
|
+
function H(e) {
|
|
835
|
+
localStorage.setItem(le, JSON.stringify(e));
|
|
806
836
|
}
|
|
807
837
|
function C(e) {
|
|
808
|
-
const t = localStorage.getItem(
|
|
838
|
+
const t = localStorage.getItem(ie);
|
|
809
839
|
return t && e[t] ? t : e.en ? "en" : Object.keys(e)[0] ?? "en";
|
|
810
840
|
}
|
|
811
|
-
function
|
|
812
|
-
localStorage.setItem(
|
|
841
|
+
function Z(e) {
|
|
842
|
+
localStorage.setItem(ie, e);
|
|
813
843
|
}
|
|
814
844
|
function y(e) {
|
|
815
845
|
return e.replace(/[&<>'"]/g, (t) => ({ "&": "&", "<": "<", ">": ">", "'": "'", '"': """ })[t]);
|
|
816
846
|
}
|
|
817
|
-
function
|
|
847
|
+
function A(e, t = 72) {
|
|
818
848
|
const a = e.replace(/\s+/g, " ").trim();
|
|
819
849
|
return a.length <= t ? a : `${a.slice(0, t)}...`;
|
|
820
850
|
}
|
|
821
|
-
function
|
|
822
|
-
return e.type === "section" ?
|
|
851
|
+
function De(e) {
|
|
852
|
+
return e.type === "section" ? A((e.sectionItems ?? []).join(" | ")) : e.type === "property" ? A(JSON.stringify(e.attrs ?? {})) : A(e.value);
|
|
823
853
|
}
|
|
824
|
-
function
|
|
854
|
+
function Ge(e) {
|
|
825
855
|
const t = [];
|
|
826
856
|
return e.forEach((a, o) => {
|
|
827
857
|
const n = (a.selector ?? "").trim(), r = t[t.length - 1];
|
|
@@ -836,7 +866,7 @@ function Be(e) {
|
|
|
836
866
|
});
|
|
837
867
|
}), t;
|
|
838
868
|
}
|
|
839
|
-
function
|
|
869
|
+
function He(e) {
|
|
840
870
|
const t = (a) => {
|
|
841
871
|
if (Array.isArray(a))
|
|
842
872
|
return a.map(t);
|
|
@@ -848,11 +878,11 @@ function Pe(e) {
|
|
|
848
878
|
};
|
|
849
879
|
return JSON.stringify(t(e));
|
|
850
880
|
}
|
|
851
|
-
async function
|
|
881
|
+
async function Ue(e) {
|
|
852
882
|
const t = new TextEncoder().encode(e), a = await crypto.subtle.digest("SHA-256", t);
|
|
853
883
|
return Array.from(new Uint8Array(a)).map((o) => o.toString(16).padStart(2, "0")).join("");
|
|
854
884
|
}
|
|
855
|
-
async function
|
|
885
|
+
async function qe(e, t, a) {
|
|
856
886
|
const o = e.nodes.flatMap(
|
|
857
887
|
(s) => s.sourceRefs.map((l) => ({
|
|
858
888
|
file: l.file,
|
|
@@ -865,7 +895,7 @@ async function De(e, t, a) {
|
|
|
865
895
|
content: { ...e, updatedAt: (/* @__PURE__ */ new Date()).toISOString() },
|
|
866
896
|
operations: o,
|
|
867
897
|
locales: t
|
|
868
|
-
}, r = await
|
|
898
|
+
}, r = await Ue(He(n));
|
|
869
899
|
return {
|
|
870
900
|
...n,
|
|
871
901
|
integrity: {
|
|
@@ -874,7 +904,7 @@ async function De(e, t, a) {
|
|
|
874
904
|
}
|
|
875
905
|
};
|
|
876
906
|
}
|
|
877
|
-
function
|
|
907
|
+
function Ke(e, t) {
|
|
878
908
|
const a = `${e.type.toUpperCase()} • ${y(e.label || e.selector || "")}`, o = `<div class="text-xs text-slate-500 dark:text-slate-400 mb-2">#${t + 1} ${a}</div>`;
|
|
879
909
|
if (e.type === "text")
|
|
880
910
|
return `<div class="rounded-lg p-2 bg-slate-50/60 dark:bg-slate-900/40">${o}<textarea data-cms-id="${e.id}" data-cms-field="value" class="w-full border border-slate-300 dark:border-slate-800 bg-white dark:bg-slate-800 text-slate-900 dark:text-slate-100 rounded-lg p-2 text-sm h-24 focus:outline-none focus:ring-2 focus:ring-indigo-500/40">${y(e.value)}</textarea></div>`;
|
|
@@ -887,23 +917,23 @@ function qe(e, t) {
|
|
|
887
917
|
}
|
|
888
918
|
return `<div class="rounded-lg p-2 bg-slate-50/60 dark:bg-slate-900/40">${o}<textarea data-cms-id="${e.id}" data-cms-field="attrs" class="w-full border border-slate-300 dark:border-slate-800 bg-white dark:bg-slate-800 text-slate-900 dark:text-slate-100 rounded-lg p-2 text-xs h-28 focus:outline-none focus:ring-2 focus:ring-indigo-500/40">${y(JSON.stringify(e.attrs ?? {}, null, 2))}</textarea></div>`;
|
|
889
919
|
}
|
|
890
|
-
function
|
|
920
|
+
function E(e, t, a, o) {
|
|
891
921
|
e.nodes.forEach((n) => {
|
|
892
|
-
n.type === "text" && (n.value = t[n.key] ?? o[n.key] ?? n.value,
|
|
922
|
+
n.type === "text" && (n.value = t[n.key] ?? o[n.key] ?? n.value, R(n, a));
|
|
893
923
|
});
|
|
894
924
|
}
|
|
895
|
-
function
|
|
925
|
+
function Je(e, t) {
|
|
896
926
|
e.activeLanguage = t;
|
|
897
927
|
const a = e.locales[t] ?? e.locales[e.mainLanguage] ?? e.baseTextByKey;
|
|
898
|
-
|
|
928
|
+
E(e.content, a, e.workingDocument, e.baseTextByKey);
|
|
899
929
|
}
|
|
900
|
-
function
|
|
930
|
+
function Fe(e, t) {
|
|
901
931
|
const a = e.querySelector("#facms-language-tabs");
|
|
902
932
|
if (!a)
|
|
903
933
|
return;
|
|
904
934
|
const o = Object.keys(t.locales);
|
|
905
935
|
a.innerHTML = o.map((n) => {
|
|
906
|
-
const r = n === t.activeLanguage, s = n === t.mainLanguage, l = t.languageLabels[n] ??
|
|
936
|
+
const r = n === t.activeLanguage, s = n === t.mainLanguage, l = t.languageLabels[n] ?? S(n);
|
|
907
937
|
return `<div class="inline-flex items-center rounded-lg overflow-hidden border ${r ? "border-indigo-500" : "border-slate-200 dark:border-slate-700"}">
|
|
908
938
|
<button data-lang="${n}" class="px-2.5 py-1.5 text-xs ${r ? "bg-indigo-600 text-white" : "bg-slate-100 dark:bg-slate-800 text-slate-700 dark:text-slate-200"}">${y(l)}</button>
|
|
909
939
|
${s ? `<span class="px-2 py-1.5 text-[10px] font-semibold ${r ? "bg-indigo-700 text-indigo-100" : "bg-emerald-600 text-white"}">MAIN</span>` : `<button data-main-lang="${n}" title="Set as main language" class="px-2 py-1.5 text-xs ${r ? "bg-indigo-700 text-indigo-100 hover:bg-indigo-800" : "bg-emerald-600 text-white hover:bg-emerald-500"}">★</button>`}
|
|
@@ -912,13 +942,13 @@ function Ue(e, t) {
|
|
|
912
942
|
}).join(""), a.querySelectorAll("[data-lang]").forEach((n) => {
|
|
913
943
|
n.addEventListener("click", () => {
|
|
914
944
|
const r = n.dataset.lang;
|
|
915
|
-
r && (
|
|
945
|
+
r && (Je(t, r), L(e, t));
|
|
916
946
|
});
|
|
917
947
|
}), a.querySelectorAll("[data-main-lang]").forEach((n) => {
|
|
918
948
|
n.addEventListener("click", (r) => {
|
|
919
949
|
r.stopPropagation();
|
|
920
950
|
const s = n.dataset.mainLang;
|
|
921
|
-
!s || !t.locales[s] || (t.mainLanguage = s,
|
|
951
|
+
!s || !t.locales[s] || (t.mainLanguage = s, Z(s), t.baseTextByKey = { ...t.locales[s] }, L(e, t));
|
|
922
952
|
});
|
|
923
953
|
}), a.querySelectorAll("[data-remove-lang]").forEach((n) => {
|
|
924
954
|
n.addEventListener("click", (r) => {
|
|
@@ -929,12 +959,12 @@ function Ue(e, t) {
|
|
|
929
959
|
alert("You must keep at least one language.");
|
|
930
960
|
return;
|
|
931
961
|
}
|
|
932
|
-
delete t.locales[s], delete t.languageLabels[s],
|
|
962
|
+
delete t.locales[s], delete t.languageLabels[s], H(t.languageLabels), T(t.locales), t.mainLanguage === s && (t.mainLanguage = C(t.locales), Z(t.mainLanguage), t.baseTextByKey = { ...t.locales[t.mainLanguage] ?? {} }), t.activeLanguage === s && (t.activeLanguage = U(t.locales, t.mainLanguage)), be(t), L(e, t);
|
|
933
963
|
}
|
|
934
964
|
});
|
|
935
965
|
});
|
|
936
966
|
}
|
|
937
|
-
function
|
|
967
|
+
function Ye(e, t) {
|
|
938
968
|
e.querySelectorAll("[data-cms-id]").forEach((a) => {
|
|
939
969
|
const o = a.dataset.cmsId, n = a.dataset.cmsField;
|
|
940
970
|
!o || !n || a.addEventListener("input", () => {
|
|
@@ -944,7 +974,7 @@ function Ge(e, t) {
|
|
|
944
974
|
r.value = a.value, r.type === "text" && (t.activeLanguage === t.mainLanguage ? (t.baseTextByKey[r.key] = a.value, t.locales[t.mainLanguage] = { ...t.locales[t.mainLanguage] ?? {}, [r.key]: a.value }) : t.locales[t.activeLanguage] = {
|
|
945
975
|
...t.locales[t.activeLanguage] ?? {},
|
|
946
976
|
[r.key]: a.value
|
|
947
|
-
},
|
|
977
|
+
}, T(t.locales));
|
|
948
978
|
else if (n === "alt") r.attrs = { ...r.attrs ?? {}, alt: a.value };
|
|
949
979
|
else if (n === "sectionItems") r.sectionItems = a.value.split(`
|
|
950
980
|
`).map((s) => s.trim()).filter(Boolean);
|
|
@@ -954,28 +984,28 @@ function Ge(e, t) {
|
|
|
954
984
|
} catch {
|
|
955
985
|
return;
|
|
956
986
|
}
|
|
957
|
-
|
|
987
|
+
R(r, t.workingDocument), ae(t.content);
|
|
958
988
|
}
|
|
959
989
|
});
|
|
960
990
|
});
|
|
961
991
|
}
|
|
962
992
|
function w(e, t, a) {
|
|
963
993
|
const o = e.querySelector("#facms-i18n-status"), n = e.querySelector("#facms-translate-loader"), r = e.querySelector("#facms-add-language");
|
|
964
|
-
|
|
994
|
+
P(a, t), o && (o.textContent = t), n && (n.style.display = a ? "inline-flex" : "none"), r && (r.disabled = a);
|
|
965
995
|
}
|
|
966
|
-
function
|
|
996
|
+
function P(e, t) {
|
|
967
997
|
const a = document.getElementById("facms-global-loader"), o = document.getElementById("facms-global-loader-label");
|
|
968
998
|
a && (a.style.display = e ? "flex" : "none"), o && (o.textContent = e ? t : "Loading");
|
|
969
999
|
}
|
|
970
1000
|
function L(e, t) {
|
|
971
|
-
const a =
|
|
972
|
-
const r = n.items[0], s = n.items[n.items.length - 1], l = r.index === s.index ? `#${r.index + 1}` : `#${r.index + 1} - #${s.index + 1}`, c = n.items.map((i) =>
|
|
1001
|
+
const a = Ge(t.content.nodes), o = a.length ? a.map((n) => {
|
|
1002
|
+
const r = n.items[0], s = n.items[n.items.length - 1], l = r.index === s.index ? `#${r.index + 1}` : `#${r.index + 1} - #${s.index + 1}`, c = n.items.map((i) => De(i.node)).filter(Boolean).join(" • "), f = n.items.length > 1 ? `${l} ${y(n.selector || "Grouped fields")} (${n.items.length} fields)` : `${l} ${y(r.node.type.toUpperCase())} • ${y(r.node.label || r.node.selector || "")}`, d = n.items.map((i) => Ke(i.node, i.index)).join("");
|
|
973
1003
|
return `
|
|
974
1004
|
<details class="rounded-xl p-2 border border-slate-200 dark:border-transparent bg-white dark:bg-slate-900/60 shadow-sm">
|
|
975
1005
|
<summary class="list-none cursor-pointer flex items-center justify-between gap-2 p-3 rounded-lg bg-slate-50 dark:bg-slate-800/70 border border-slate-200 dark:border-slate-800">
|
|
976
1006
|
<div class="min-w-0">
|
|
977
1007
|
<div class="text-xs text-slate-500 dark:text-slate-400">${f}</div>
|
|
978
|
-
<div class="text-sm text-slate-700 dark:text-slate-300 truncate">${y(
|
|
1008
|
+
<div class="text-sm text-slate-700 dark:text-slate-300 truncate">${y(A(c || "No preview"))}</div>
|
|
979
1009
|
</div>
|
|
980
1010
|
<span class="text-xs text-indigo-600 dark:text-indigo-400">Expand</span>
|
|
981
1011
|
</summary>
|
|
@@ -1001,29 +1031,30 @@ function L(e, t) {
|
|
|
1001
1031
|
<p id="facms-i18n-status" class="text-xs text-slate-500 dark:text-slate-400"></p>
|
|
1002
1032
|
</div>
|
|
1003
1033
|
</div>
|
|
1004
|
-
`,
|
|
1005
|
-
const n = await
|
|
1034
|
+
`, Fe(e, t), e.querySelector("#facms-save")?.addEventListener("click", async () => {
|
|
1035
|
+
const n = await qe(t.content, t.locales, t.baseTextByKey), r = await Ee();
|
|
1006
1036
|
if (!r || r.provider === "none") {
|
|
1007
|
-
|
|
1037
|
+
ve(n), alert("Patch downloaded. Configure hosting in setup for one-click publish.");
|
|
1008
1038
|
return;
|
|
1009
1039
|
}
|
|
1010
1040
|
const s = r.provider;
|
|
1011
|
-
|
|
1012
|
-
let c = !1;
|
|
1041
|
+
Me(s, async (l) => {
|
|
1042
|
+
let c = !1, f = "Publishing failed. Please verify token permissions and repository settings.";
|
|
1013
1043
|
try {
|
|
1014
|
-
c = await
|
|
1015
|
-
} catch {
|
|
1016
|
-
|
|
1044
|
+
c = await Te(n, l, r);
|
|
1045
|
+
} catch (d) {
|
|
1046
|
+
const i = d instanceof Error ? d.message : String(d);
|
|
1047
|
+
i && (f = `Publishing failed: ${i}`), c = !1;
|
|
1017
1048
|
}
|
|
1018
1049
|
if (!c) {
|
|
1019
|
-
alert(
|
|
1050
|
+
alert(f);
|
|
1020
1051
|
return;
|
|
1021
1052
|
}
|
|
1022
1053
|
alert("Changes published successfully.");
|
|
1023
1054
|
});
|
|
1024
1055
|
}), e.querySelector("#facms-add-language")?.addEventListener("click", () => {
|
|
1025
|
-
|
|
1026
|
-
const [s, l] = n.split("::"), c = I(s ?? ""), f = (l ?? "").trim() ||
|
|
1056
|
+
Pe(Object.keys(t.locales), x?.autoTranslateEnabled ?? !0, async (n, r) => {
|
|
1057
|
+
const [s, l] = n.split("::"), c = I(s ?? ""), f = (l ?? "").trim() || S(c);
|
|
1027
1058
|
if (!c)
|
|
1028
1059
|
return;
|
|
1029
1060
|
const d = performance.now(), i = t.locales[t.mainLanguage] ?? t.baseTextByKey, p = { ...i };
|
|
@@ -1033,19 +1064,19 @@ function L(e, t) {
|
|
|
1033
1064
|
sourceKeys: Object.keys(i).length,
|
|
1034
1065
|
browserLanguage: navigator.language,
|
|
1035
1066
|
browserLanguages: navigator.languages
|
|
1036
|
-
}), t.locales[c] = p, t.languageLabels[c] = f,
|
|
1037
|
-
r === "auto" && !(
|
|
1067
|
+
}), t.locales[c] = p, t.languageLabels[c] = f, H(t.languageLabels), t.activeLanguage = c, T(t.locales), E(t.content, t.locales[c], t.workingDocument, t.baseTextByKey), L(e, t), z("Manual language tab created", { lang: c }), w(e, `Added ${f} tab prefilled with source text for manual translation.`, !1), r !== "auto" || !(x?.autoTranslateEnabled ?? !0)) {
|
|
1068
|
+
r === "auto" && !(x?.autoTranslateEnabled ?? !0) && w(e, `Privacy mode is on. Added ${f} tab for manual translation only.`, !1);
|
|
1038
1069
|
return;
|
|
1039
1070
|
}
|
|
1040
1071
|
try {
|
|
1041
1072
|
const g = Object.keys(i).length;
|
|
1042
1073
|
w(e, `Auto-filling ${f} translation... (0/${g})`, !0);
|
|
1043
|
-
const
|
|
1044
|
-
w(e, `Auto-filling ${f} translation... (${
|
|
1074
|
+
const h = await $e(i, c, t.mainLanguage, (q, b) => {
|
|
1075
|
+
w(e, `Auto-filling ${f} translation... (${q}/${b})`, !0);
|
|
1045
1076
|
});
|
|
1046
|
-
t.locales[c] =
|
|
1077
|
+
t.locales[c] = h, T(t.locales), t.activeLanguage = c, E(t.content, h, t.workingDocument, t.baseTextByKey), L(e, t), z("Automatic translation succeeded", {
|
|
1047
1078
|
lang: c,
|
|
1048
|
-
translatedKeys: Object.keys(
|
|
1079
|
+
translatedKeys: Object.keys(h).length,
|
|
1049
1080
|
ms: Math.round(performance.now() - d)
|
|
1050
1081
|
}), w(e, `Added ${f} with auto-filled translation. Review and edit as needed.`, !1);
|
|
1051
1082
|
} catch (g) {
|
|
@@ -1057,45 +1088,45 @@ function L(e, t) {
|
|
|
1057
1088
|
}), w(e, `Auto-fill failed. ${f} stays prefilled with source text for manual editing.`, !1);
|
|
1058
1089
|
}
|
|
1059
1090
|
});
|
|
1060
|
-
}),
|
|
1091
|
+
}), Ye(e, t);
|
|
1061
1092
|
}
|
|
1062
|
-
function
|
|
1093
|
+
function U(e, t) {
|
|
1063
1094
|
const a = Object.keys(e), o = t && e[t] ? t : C(e), n = [...navigator.languages ?? [], navigator.language].map((r) => r.toLowerCase().split("-")[0]);
|
|
1064
1095
|
for (const r of n)
|
|
1065
1096
|
if (a.includes(r))
|
|
1066
1097
|
return r;
|
|
1067
1098
|
return a.includes(o) ? o : a[0] ?? "en";
|
|
1068
1099
|
}
|
|
1069
|
-
function
|
|
1100
|
+
function be(e) {
|
|
1070
1101
|
const t = e.locales[e.activeLanguage] ?? e.locales.en ?? e.baseTextByKey;
|
|
1071
|
-
|
|
1102
|
+
E(e.content, t, e.workingDocument, e.baseTextByKey);
|
|
1072
1103
|
}
|
|
1073
|
-
function
|
|
1104
|
+
function Ve(e) {
|
|
1074
1105
|
return new Promise((t) => window.setTimeout(t, e));
|
|
1075
1106
|
}
|
|
1076
|
-
async function
|
|
1107
|
+
async function Q(e, t) {
|
|
1077
1108
|
const a = [0, 120, 280, 600, 1100, 1800, 2600];
|
|
1078
|
-
let o =
|
|
1109
|
+
let o = $(e, t);
|
|
1079
1110
|
if (o.nodes.length > 0)
|
|
1080
1111
|
return o;
|
|
1081
1112
|
for (const n of a.slice(1))
|
|
1082
|
-
if (await
|
|
1113
|
+
if (await Ve(n), o = $(e, t), o.nodes.length > 0)
|
|
1083
1114
|
return o;
|
|
1084
1115
|
return o;
|
|
1085
1116
|
}
|
|
1086
|
-
function
|
|
1087
|
-
const o =
|
|
1117
|
+
function We(e, t, a) {
|
|
1118
|
+
const o = ne(), n = {
|
|
1088
1119
|
...a,
|
|
1089
1120
|
...o
|
|
1090
|
-
}, r =
|
|
1121
|
+
}, r = Be(), s = Object.fromEntries(e.nodes.filter((i) => i.type === "text").map((i) => [i.key, i.value])), l = C(n), c = {
|
|
1091
1122
|
...n,
|
|
1092
1123
|
[l]: { ...n[l] ?? {}, ...s }
|
|
1093
1124
|
};
|
|
1094
1125
|
!c.en && l === "en" && (c.en = Object.assign({}, c.en ?? {}, s));
|
|
1095
|
-
const f =
|
|
1126
|
+
const f = U(c, l), d = { ...r };
|
|
1096
1127
|
return Object.keys(c).forEach((i) => {
|
|
1097
|
-
d[i] || (d[i] =
|
|
1098
|
-
}),
|
|
1128
|
+
d[i] || (d[i] = S(i));
|
|
1129
|
+
}), H(d), {
|
|
1099
1130
|
content: e,
|
|
1100
1131
|
locales: c,
|
|
1101
1132
|
workingDocument: t,
|
|
@@ -1105,20 +1136,34 @@ function Je(e, t, a) {
|
|
|
1105
1136
|
languageLabels: d
|
|
1106
1137
|
};
|
|
1107
1138
|
}
|
|
1108
|
-
function
|
|
1109
|
-
const e =
|
|
1139
|
+
async function Xe() {
|
|
1140
|
+
const e = await he();
|
|
1141
|
+
if (!e?.nodes?.length)
|
|
1142
|
+
return;
|
|
1143
|
+
const t = $(document, location.pathname);
|
|
1144
|
+
if (!t.nodes.length)
|
|
1145
|
+
return;
|
|
1146
|
+
const a = new Map(e.nodes.map((o) => [o.key, o]));
|
|
1147
|
+
t.nodes.forEach((o) => {
|
|
1148
|
+
const n = a.get(o.key);
|
|
1149
|
+
!n || n.type !== o.type || (o.value = n.value, n.attrs && (o.attrs = { ...n.attrs }), n.sectionItems && (o.sectionItems = [...n.sectionItems]), R(o, document));
|
|
1150
|
+
});
|
|
1151
|
+
}
|
|
1152
|
+
async function Ze() {
|
|
1153
|
+
await Xe();
|
|
1154
|
+
const e = ne();
|
|
1110
1155
|
if (!Object.keys(e).length)
|
|
1111
1156
|
return;
|
|
1112
|
-
const t =
|
|
1157
|
+
const t = U(e, C(e));
|
|
1113
1158
|
if (!t || t === "en")
|
|
1114
1159
|
return;
|
|
1115
|
-
const a =
|
|
1160
|
+
const a = $(document, location.pathname), o = e[t];
|
|
1116
1161
|
if (!o)
|
|
1117
1162
|
return;
|
|
1118
1163
|
const n = Object.fromEntries(a.nodes.filter((r) => r.type === "text").map((r) => [r.key, r.value]));
|
|
1119
|
-
|
|
1164
|
+
E(a, o, document, n);
|
|
1120
1165
|
}
|
|
1121
|
-
function
|
|
1166
|
+
function Qe(e) {
|
|
1122
1167
|
const t = e.pages.length ? e.pages : ["/"];
|
|
1123
1168
|
document.documentElement.style.margin = "0", document.documentElement.style.padding = "0", document.documentElement.style.background = u === "dark" ? "#020617" : "#f1f5f9", document.body.style.margin = "0", document.body.style.padding = "0", document.body.style.background = u === "dark" ? "#020617" : "#f1f5f9", document.body.innerHTML = `
|
|
1124
1169
|
<div id="facms-app" class="h-screen w-screen grid grid-cols-1 lg:grid-cols-[760px_1fr] bg-slate-100 dark:bg-slate-950 text-slate-900 dark:text-slate-100">
|
|
@@ -1159,56 +1204,56 @@ function Ye(e) {
|
|
|
1159
1204
|
});
|
|
1160
1205
|
});
|
|
1161
1206
|
};
|
|
1162
|
-
|
|
1207
|
+
de(u), a.addEventListener("load", async () => {
|
|
1163
1208
|
const f = a.contentDocument;
|
|
1164
1209
|
if (f) {
|
|
1165
|
-
|
|
1210
|
+
P(!0, `Scanning page content for ${s}...`);
|
|
1166
1211
|
try {
|
|
1167
1212
|
let d = r.get(s);
|
|
1168
1213
|
if (d) {
|
|
1169
1214
|
d.workingDocument = f;
|
|
1170
|
-
const i = d.content.nodes.length ?
|
|
1215
|
+
const i = d.content.nodes.length ? $(f, s) : await Q(f, s);
|
|
1171
1216
|
i.nodes.length && !d.content.nodes.length && (d.content = i);
|
|
1172
1217
|
} else {
|
|
1173
|
-
const i = await
|
|
1174
|
-
d =
|
|
1218
|
+
const i = await Q(f, s);
|
|
1219
|
+
d = We(i, f, l), r.set(s, d);
|
|
1175
1220
|
}
|
|
1176
|
-
|
|
1221
|
+
be(d), ae(d.content), L(o, d);
|
|
1177
1222
|
} finally {
|
|
1178
|
-
|
|
1223
|
+
P(!1, "Loading");
|
|
1179
1224
|
}
|
|
1180
1225
|
}
|
|
1181
|
-
}), c(),
|
|
1226
|
+
}), c(), xe().then((f) => {
|
|
1182
1227
|
l = f, a.src = s;
|
|
1183
1228
|
});
|
|
1184
1229
|
}
|
|
1185
|
-
async function
|
|
1186
|
-
if (
|
|
1230
|
+
async function ee() {
|
|
1231
|
+
if (ce(), ue(), !await pe())
|
|
1187
1232
|
return;
|
|
1188
|
-
const e = await
|
|
1189
|
-
if (!
|
|
1190
|
-
|
|
1233
|
+
const e = await fe(), t = () => Qe(e);
|
|
1234
|
+
if (!D) {
|
|
1235
|
+
ge(t);
|
|
1191
1236
|
return;
|
|
1192
1237
|
}
|
|
1193
1238
|
t();
|
|
1194
1239
|
}
|
|
1195
|
-
async function
|
|
1196
|
-
const e = await
|
|
1240
|
+
async function et() {
|
|
1241
|
+
const e = await fe(), a = new URLSearchParams(location.search).get("__facms") === "1";
|
|
1197
1242
|
if (location.pathname !== e.dashboardPath && !a) {
|
|
1198
|
-
|
|
1243
|
+
Ze();
|
|
1199
1244
|
return;
|
|
1200
1245
|
}
|
|
1201
|
-
if (
|
|
1202
|
-
if (!
|
|
1203
|
-
|
|
1204
|
-
|
|
1246
|
+
if (ce(), ue(), !!await pe()) {
|
|
1247
|
+
if (!D) {
|
|
1248
|
+
ge(() => {
|
|
1249
|
+
ee();
|
|
1205
1250
|
});
|
|
1206
1251
|
return;
|
|
1207
1252
|
}
|
|
1208
|
-
|
|
1253
|
+
ee();
|
|
1209
1254
|
}
|
|
1210
1255
|
}
|
|
1211
1256
|
export {
|
|
1212
|
-
|
|
1213
|
-
|
|
1257
|
+
ee as launchDashboard,
|
|
1258
|
+
et as registerCmsLauncher
|
|
1214
1259
|
};
|
|
@@ -3,5 +3,6 @@ import type { RuntimeLocaleMap } from "./types.js";
|
|
|
3
3
|
export declare function saveCachedContent(content: CmsContentFile): void;
|
|
4
4
|
export declare function loadLocales(): RuntimeLocaleMap;
|
|
5
5
|
export declare function saveLocales(locales: RuntimeLocaleMap): void;
|
|
6
|
+
export declare function loadRuntimeContent(): Promise<CmsContentFile | null>;
|
|
6
7
|
export declare function loadRuntimeLocales(): Promise<RuntimeLocaleMap>;
|
|
7
8
|
export declare function downloadPatchFile(payload: unknown): void;
|