pagiera 0.2.0-alpha.60 → 0.2.0-alpha.62
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/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +13 -0
- package/dist/client.js.map +1 -1
- package/dist/data.js +64 -6
- package/dist/data.js.map +3 -3
- package/dist/full-editor.js +1333 -1041
- package/dist/full-editor.js.map +4 -4
- package/dist/full.css +19 -0
- package/dist/internal/app/p/editor/data-modal.d.ts.map +1 -1
- package/dist/internal/app/p/editor/data-modal.js +43 -4
- package/dist/internal/app/p/editor/data-modal.js.map +1 -1
- package/dist/internal/app/p/editor/editor.d.ts.map +1 -1
- package/dist/internal/app/p/editor/editor.js +56 -15
- package/dist/internal/app/p/editor/editor.js.map +1 -1
- package/dist/internal/app/p/editor/inspector.d.ts.map +1 -1
- package/dist/internal/app/p/editor/inspector.js +1 -1
- package/dist/internal/app/p/editor/inspector.js.map +1 -1
- package/dist/internal/app/p/editor/seo-settings.d.ts +21 -0
- package/dist/internal/app/p/editor/seo-settings.d.ts.map +1 -0
- package/dist/internal/app/p/editor/seo-settings.js +70 -0
- package/dist/internal/app/p/editor/seo-settings.js.map +1 -0
- package/dist/internal/app/p/editor/ui/settings-nav.d.ts +1 -1
- package/dist/internal/app/p/editor/ui/settings-nav.d.ts.map +1 -1
- package/dist/internal/app/p/editor/ui/settings-nav.js +2 -1
- package/dist/internal/app/p/editor/ui/settings-nav.js.map +1 -1
- package/dist/internal/app/p/editor/ui/shell.d.ts +7 -1
- package/dist/internal/app/p/editor/ui/shell.d.ts.map +1 -1
- package/dist/internal/app/p/editor/ui/shell.js +2 -2
- package/dist/internal/app/p/editor/ui/shell.js.map +1 -1
- package/dist/internal/lib/data/source.d.ts +9 -0
- package/dist/internal/lib/data/source.d.ts.map +1 -1
- package/dist/internal/lib/data/source.js +19 -2
- package/dist/internal/lib/data/source.js.map +1 -1
- package/dist/internal/lib/editor/types.d.ts +21 -0
- package/dist/internal/lib/editor/types.d.ts.map +1 -1
- package/dist/internal/lib/editor/types.js.map +1 -1
- package/dist/internal/lib/editor/validate.d.ts.map +1 -1
- package/dist/internal/lib/editor/validate.js +34 -1
- package/dist/internal/lib/editor/validate.js.map +1 -1
- package/dist/internal/lib/render/load-data.d.ts +3 -1
- package/dist/internal/lib/render/load-data.d.ts.map +1 -1
- package/dist/internal/lib/render/load-data.js +9 -4
- package/dist/internal/lib/render/load-data.js.map +1 -1
- package/dist/internal/lib/render/seo.d.ts +26 -0
- package/dist/internal/lib/render/seo.d.ts.map +1 -0
- package/dist/internal/lib/render/seo.js +64 -0
- package/dist/internal/lib/render/seo.js.map +1 -0
- package/dist/runtime.d.ts +8 -0
- package/dist/runtime.js +5 -2
- package/dist/runtime.js.map +3 -3
- package/dist/server.d.ts +16 -1
- package/dist/server.js +180 -28
- package/dist/server.js.map +4 -4
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export declare function createPagieraClient(options?: PagieraClientOptions): {
|
|
|
35
35
|
restoreRevision: (id: string, revisionId: string) => Promise<any>;
|
|
36
36
|
previewSource: (source: unknown, sampleQuery: string) => Promise<any>;
|
|
37
37
|
compileCode: (source: string) => Promise<any>;
|
|
38
|
+
uploadImage: (file: File) => Promise<string>;
|
|
38
39
|
mcp: (request: {
|
|
39
40
|
action: "list" | "inspect";
|
|
40
41
|
id?: string;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IACb,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAxC,OAAO,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAIvD;AAmFD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB;yBAOzC,MAAM;uBACR,MAAM;;uBAEN,MAAM,YAAY,OAAO,mBAAmB,MAAM;2BAC9C,MAAM,QAAQ,MAAM;yBACtB,MAAM,QAAQ,MAAM,QAAQ,MAAM;4BAC/B,MAAM,QAAQ,MAAM,QAAQ,MAAM;yBACrC,MAAM;sCACO,MAAM,eAAe,MAAM;iCAChC,OAAO,eAAe,MAAM;gCAC7B,MAAM;kCACJ,MAAM,gBAAgB,OAAO,EAAE;4CACrB,MAAM,0BAA0B,MAAM;mCAC/C,MAAM,aAAa,MAAM;0BAClC,MAAM;4BACJ,MAAM;4BACN,MAAM;8BACJ,MAAM,cAAc,MAAM;gCAExB,OAAO,eAAe,MAAM;8BAC9B,MAAM;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IACb,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAxC,OAAO,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAIvD;AAmFD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB;yBAOzC,MAAM;uBACR,MAAM;;uBAEN,MAAM,YAAY,OAAO,mBAAmB,MAAM;2BAC9C,MAAM,QAAQ,MAAM;yBACtB,MAAM,QAAQ,MAAM,QAAQ,MAAM;4BAC/B,MAAM,QAAQ,MAAM,QAAQ,MAAM;yBACrC,MAAM;sCACO,MAAM,eAAe,MAAM;iCAChC,OAAO,eAAe,MAAM;gCAC7B,MAAM;kCACJ,MAAM,gBAAgB,OAAO,EAAE;4CACrB,MAAM,0BAA0B,MAAM;mCAC/C,MAAM,aAAa,MAAM;0BAClC,MAAM;4BACJ,MAAM;4BACN,MAAM;8BACJ,MAAM,cAAc,MAAM;gCAExB,OAAO,eAAe,MAAM;8BAC9B,MAAM;4BAEF,IAAI;uBAef;YAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE;4BACtC,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,WAAW,WAAW;;EAIhG"}
|
package/dist/client.js
CHANGED
|
@@ -111,6 +111,19 @@ export function createPagieraClient(options = {}) {
|
|
|
111
111
|
restoreRevision: (id, revisionId) => call(`/pages/${id}/revisions/${revisionId}/restore`, "POST"),
|
|
112
112
|
previewSource: (source, sampleQuery) => call("/data/preview", "POST", { source, sampleQuery }),
|
|
113
113
|
compileCode: (source) => call("/code/compile", "POST", { source }),
|
|
114
|
+
// The file goes up as the raw body; the document keeps the URL.
|
|
115
|
+
uploadImage: async (file) => {
|
|
116
|
+
const response = await fetcher(`${base}/assets`, {
|
|
117
|
+
method: "POST",
|
|
118
|
+
headers: { "Content-Type": file.type || "application/octet-stream" },
|
|
119
|
+
body: file,
|
|
120
|
+
});
|
|
121
|
+
const body = await response.json().catch(() => null);
|
|
122
|
+
if (!response.ok || typeof body?.url !== "string") {
|
|
123
|
+
throw new PagieraRequestError(body?.error ?? `The image could not be uploaded (${response.status}).`, response.status);
|
|
124
|
+
}
|
|
125
|
+
return body.url;
|
|
126
|
+
},
|
|
114
127
|
mcp: (request) => call("/mcp", "POST", request),
|
|
115
128
|
generate: (request, onEvent, signal) => streamAi(fetcher, `${base}/ai`, request, onEvent, signal),
|
|
116
129
|
},
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/data.js
CHANGED
|
@@ -55,8 +55,11 @@ function assertFetchableUrl(raw, allowPrivateHosts) {
|
|
|
55
55
|
if (host === "[::]" || /^\[::ffff:/i.test(host)) refuse("Requests to private addresses are not allowed.");
|
|
56
56
|
return url;
|
|
57
57
|
}
|
|
58
|
+
function pathSteps(path) {
|
|
59
|
+
return path.trim().replace(/^\$/, "").replace(/\[\s*(?:"([^"]*)"|'([^']*)'|([^\]]*))\s*\]/g, (_, a, b, c) => `.${a ?? b ?? c}`).split(".").map((s) => s.trim()).filter(Boolean);
|
|
60
|
+
}
|
|
58
61
|
function selectPath(payload, path) {
|
|
59
|
-
const steps = path
|
|
62
|
+
const steps = pathSteps(path);
|
|
60
63
|
let cursor = payload;
|
|
61
64
|
for (const step of steps) {
|
|
62
65
|
if (cursor === null || typeof cursor !== "object") return void 0;
|
|
@@ -151,6 +154,12 @@ async function loadSource(source, { revalidate = DEFAULT_REVALIDATE, context = E
|
|
|
151
154
|
const keys = [...new Set(rows.flatMap((row) => Object.keys(row)))].sort();
|
|
152
155
|
return { rows, keys };
|
|
153
156
|
}
|
|
157
|
+
function readBinding(row, path) {
|
|
158
|
+
const value = selectPath(row, path);
|
|
159
|
+
if (value === null || value === void 0) return "";
|
|
160
|
+
if (typeof value === "object") return "";
|
|
161
|
+
return String(value);
|
|
162
|
+
}
|
|
154
163
|
function resolveTokens(value, context) {
|
|
155
164
|
return value.replace(/\{\{\s*([a-zA-Z0-9_.]+)\s*\}\}/g, (_, token) => {
|
|
156
165
|
if (token === "WINDOW_URL") return context.origin?.replace(/\/$/, "") ?? "";
|
|
@@ -202,10 +211,11 @@ var PageDataNotFoundError = class extends Error {
|
|
|
202
211
|
this.name = "PageDataNotFoundError";
|
|
203
212
|
}
|
|
204
213
|
};
|
|
205
|
-
async function loadPageData(elements, sources, options) {
|
|
206
|
-
const used = new Set(
|
|
207
|
-
elements.filter((el) => el.sourceId).map((el) => el.sourceId)
|
|
208
|
-
|
|
214
|
+
async function loadPageData(elements, sources, options, alsoLoad = []) {
|
|
215
|
+
const used = /* @__PURE__ */ new Set([
|
|
216
|
+
...elements.filter((el) => el.sourceId).map((el) => el.sourceId),
|
|
217
|
+
...alsoLoad.filter((id) => Boolean(id))
|
|
218
|
+
]);
|
|
209
219
|
const wanted = sources.filter((source) => used.has(source.id) && source.url);
|
|
210
220
|
if (wanted.length === 0) return {};
|
|
211
221
|
const results = await Promise.all(
|
|
@@ -227,8 +237,56 @@ async function loadPageData(elements, sources, options) {
|
|
|
227
237
|
);
|
|
228
238
|
return Object.fromEntries(results);
|
|
229
239
|
}
|
|
240
|
+
|
|
241
|
+
// src/internal/lib/render/bind.ts
|
|
242
|
+
var PAGE_TOKEN = /\{\{\s*(query|params|page)\.([a-zA-Z0-9_]+)\s*\}\}/g;
|
|
243
|
+
function bindPageContext(value, context) {
|
|
244
|
+
if (!value || !context || !value.includes("{{")) return value;
|
|
245
|
+
return value.replace(PAGE_TOKEN, (_match, namespace, key) => {
|
|
246
|
+
if (namespace === "query") return context.query?.[key] ?? "";
|
|
247
|
+
if (namespace === "params") return context.params?.[key] ?? "";
|
|
248
|
+
return key === "slug" ? context.page?.slug ?? "" : "";
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// src/internal/lib/render/seo.ts
|
|
253
|
+
var MAX_TITLE = 160;
|
|
254
|
+
var MAX_DESCRIPTION = 320;
|
|
255
|
+
function plain(value, max) {
|
|
256
|
+
const text = value.replace(/<[^>]*>/g, " ").replace(/ /g, " ").replace(/\s+/g, " ").trim();
|
|
257
|
+
return text.length > max ? `${text.slice(0, max - 1).trimEnd()}\u2026` : text;
|
|
258
|
+
}
|
|
259
|
+
function fill(template, row, context) {
|
|
260
|
+
if (!template) return "";
|
|
261
|
+
const withPage = bindPageContext(template, context);
|
|
262
|
+
if (!withPage.includes("{{")) return withPage;
|
|
263
|
+
if (!row) return "";
|
|
264
|
+
return withPage.replace(/{{\s*([^{}]+?)\s*}}/g, (_match, path) => readBinding(row, path));
|
|
265
|
+
}
|
|
266
|
+
function address(value) {
|
|
267
|
+
const trimmed = value.trim();
|
|
268
|
+
if (/^https?:\/\/[^\s"'<>]+$/i.test(trimmed)) return trimmed;
|
|
269
|
+
if (/^\/[^\s"'<>]*$/.test(trimmed) && !trimmed.startsWith("//")) return trimmed;
|
|
270
|
+
return void 0;
|
|
271
|
+
}
|
|
272
|
+
function resolvePageSeo(page, data = {}, context) {
|
|
273
|
+
const seo = page.rootStyle?.seo ?? {};
|
|
274
|
+
const row = seo.sourceId ? data[seo.sourceId]?.[0] : void 0;
|
|
275
|
+
const title = plain(fill(seo.title, row, context), MAX_TITLE) || plain(page.name ?? "", MAX_TITLE);
|
|
276
|
+
const description = plain(fill(seo.description, row, context), MAX_DESCRIPTION) || void 0;
|
|
277
|
+
const image = address(fill(seo.image, row, context));
|
|
278
|
+
const canonical = address(fill(seo.canonical, row, context));
|
|
279
|
+
return {
|
|
280
|
+
title,
|
|
281
|
+
...description ? { description } : {},
|
|
282
|
+
...image ? { image } : {},
|
|
283
|
+
...canonical ? { canonical } : {},
|
|
284
|
+
noindex: seo.noindex === true
|
|
285
|
+
};
|
|
286
|
+
}
|
|
230
287
|
export {
|
|
231
288
|
PageDataNotFoundError,
|
|
232
|
-
loadPageData
|
|
289
|
+
loadPageData,
|
|
290
|
+
resolvePageSeo
|
|
233
291
|
};
|
|
234
292
|
//# sourceMappingURL=data.js.map
|