@pantheon-systems/p1-next-sdk 0.10.0 → 0.11.1
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/handler.d.ts +7 -0
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +9 -5
- package/dist/handler.js.map +1 -1
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +4 -0
- package/dist/middleware.js.map +1 -1
- package/dist/pages-handler.d.ts.map +1 -1
- package/dist/pages-handler.js +7 -3
- package/dist/pages-handler.js.map +1 -1
- package/dist/published-page.d.ts +47 -0
- package/dist/published-page.d.ts.map +1 -0
- package/dist/published-page.js +67 -0
- package/dist/published-page.js.map +1 -0
- package/dist/routes/publish.d.ts +9 -1
- package/dist/routes/publish.d.ts.map +1 -1
- package/dist/routes/publish.js +13 -1
- package/dist/routes/publish.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/package.json +4 -3
package/dist/handler.d.ts
CHANGED
|
@@ -17,6 +17,13 @@ export type P1HandlerConfig = P1DataConfig & {
|
|
|
17
17
|
config: Config;
|
|
18
18
|
builtinFetchers?: RemoteDatasourceFetcher[];
|
|
19
19
|
builtinDatasourceRegistry?: RemoteDatasourceDefinition[];
|
|
20
|
+
/**
|
|
21
|
+
* Dynamic segment this app renders public pages from, as Next.js names it for
|
|
22
|
+
* revalidatePath. Publishing a route template invalidates it so instance URLs
|
|
23
|
+
* that resolve by template fall-through alone are refreshed too. Defaults to
|
|
24
|
+
* the scaffolded app's `/[...puckPath]`.
|
|
25
|
+
*/
|
|
26
|
+
publicPageSegment?: string;
|
|
20
27
|
};
|
|
21
28
|
export declare function createP1Handler(opts: P1HandlerConfig): {
|
|
22
29
|
GET: (request: Request, { params }: {
|
package/dist/handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC7G,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAwBzF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC5C,yBAAyB,CAAC,EAAE,0BAA0B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC7G,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAwBzF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC5C,yBAAyB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACzD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAQF,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe;mBAQxC,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;oBAuBzC,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;sBAkBzC,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAYrD"}
|
package/dist/handler.js
CHANGED
|
@@ -28,9 +28,13 @@ function withAuth(request, fn) {
|
|
|
28
28
|
return NextResponse.json({ error: "unauthorized" }, { status: 401 });
|
|
29
29
|
}
|
|
30
30
|
export function createP1Handler(opts) {
|
|
31
|
-
|
|
31
|
+
// Called per request, not pinned at module load: ensureInitialized dedupes
|
|
32
|
+
// successful inits and clears its state on failure, so a transient failure at
|
|
33
|
+
// cold start retries instead of leaving every later request awaiting a
|
|
34
|
+
// permanently rejected promise.
|
|
35
|
+
const init = () => ensureInitialized(opts);
|
|
32
36
|
async function GET(request, { params }) {
|
|
33
|
-
await
|
|
37
|
+
await init();
|
|
34
38
|
const { p1 = [] } = await params;
|
|
35
39
|
const { action } = parseP1Segments(p1);
|
|
36
40
|
if (action === "page-data")
|
|
@@ -51,11 +55,11 @@ export function createP1Handler(opts) {
|
|
|
51
55
|
return NextResponse.json({ error: "not_found" }, { status: 404 });
|
|
52
56
|
}
|
|
53
57
|
async function POST(request, { params }) {
|
|
54
|
-
await
|
|
58
|
+
await init();
|
|
55
59
|
const { p1 = [] } = await params;
|
|
56
60
|
const { action } = parseP1Segments(p1);
|
|
57
61
|
if (action === "publish")
|
|
58
|
-
return withAuth(request, () => postPublish(request));
|
|
62
|
+
return withAuth(request, () => postPublish(request, { publicPageSegment: opts.publicPageSegment }));
|
|
59
63
|
if (action === "resolve-preview")
|
|
60
64
|
return postResolvePreview(request);
|
|
61
65
|
if (action === "preview-meta")
|
|
@@ -65,7 +69,7 @@ export function createP1Handler(opts) {
|
|
|
65
69
|
return NextResponse.json({ error: "not_found" }, { status: 404 });
|
|
66
70
|
}
|
|
67
71
|
async function DELETE(request, { params }) {
|
|
68
|
-
await
|
|
72
|
+
await init();
|
|
69
73
|
const { p1 = [] } = await params;
|
|
70
74
|
const { action } = parseP1Segments(p1);
|
|
71
75
|
if (action === "datasources")
|
package/dist/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAqB,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,oFAAoF;AACpF,SAAS,eAAe,CAAC,EAAY;IACnC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
|
package/dist/middleware.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,IAOxB,SAAS,OAAO,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,IAOxB,SAAS,OAAO,oCAyCpD"}
|
package/dist/middleware.js
CHANGED
|
@@ -15,6 +15,10 @@ export function createP1Middleware(config) {
|
|
|
15
15
|
return NextResponse.next();
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
// Asset-extension paths deliberately still reach getRedirect: redirects are
|
|
19
|
+
// user-configured for arbitrary paths, and migrating sites point old asset
|
|
20
|
+
// URLs at their new home. Only the document lookup is skipped (see
|
|
21
|
+
// resolvePageData).
|
|
18
22
|
try {
|
|
19
23
|
const redirect = await client.getRedirect(pathname);
|
|
20
24
|
if (redirect !== null) {
|
package/dist/middleware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,OAAO,KAAK,UAAU,YAAY,CAAC,OAAgB;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtJ,MAAM,WAAW,GAAG,UAAU;oBAC5B,CAAC,CAAC,QAAQ,CAAC,WAAW;oBACtB,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzD,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnD,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC9F,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5C,qCAAqC;gBACrC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;wBACtC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC1C,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC9C,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,OAAO,KAAK,UAAU,YAAY,CAAC,OAAgB;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,mEAAmE;QACnE,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtJ,MAAM,WAAW,GAAG,UAAU;oBAC5B,CAAC,CAAC,QAAQ,CAAC,WAAW;oBACtB,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzD,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnD,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC9F,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5C,qCAAqC;gBACrC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;wBACtC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC1C,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC9C,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages-handler.d.ts","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,mCAAmC,CAAC;AAI3C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;CACnC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa;;
|
|
1
|
+
{"version":3,"file":"pages-handler.d.ts","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,mCAAmC,CAAC;AAI3C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;CACnC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa;;2BA6BX;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE;oCAX9D;QACD,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpC,KAAG,OAAO,CAAC,QAAQ,CAAC;EAwCtB"}
|
package/dist/pages-handler.js
CHANGED
|
@@ -3,7 +3,11 @@ import { ensureInitialized, } from "@pantheon-systems/puck-css/server";
|
|
|
3
3
|
import { parseEditorSegments } from "./editor-paths";
|
|
4
4
|
export function createP1Pages(opts) {
|
|
5
5
|
const { EditorClient } = opts;
|
|
6
|
-
|
|
6
|
+
// Called per request, not pinned at module load: ensureInitialized dedupes
|
|
7
|
+
// successful inits and clears its state on failure, so a transient failure at
|
|
8
|
+
// cold start retries instead of leaving every later request awaiting a
|
|
9
|
+
// permanently rejected promise.
|
|
10
|
+
const init = () => ensureInitialized(opts);
|
|
7
11
|
// A parent layout always renders before its child page within a request, so
|
|
8
12
|
// if the editor is mounted correctly Layout flips this before Page reads it.
|
|
9
13
|
// A legacy page-only app (no `(editor)/layout.tsx`) renders Page alone, and
|
|
@@ -12,7 +16,7 @@ export function createP1Pages(opts) {
|
|
|
12
16
|
let layoutRendered = false;
|
|
13
17
|
let warnedMissingLayout = false;
|
|
14
18
|
async function generateMetadata({ params, }) {
|
|
15
|
-
await
|
|
19
|
+
await init();
|
|
16
20
|
const { p1 = [] } = await params;
|
|
17
21
|
const pagePath = parseEditorSegments(p1);
|
|
18
22
|
return { title: "P1 Editor: " + pagePath };
|
|
@@ -21,7 +25,7 @@ export function createP1Pages(opts) {
|
|
|
21
25
|
// synchronously (before any await) so Page can observe it in the same request.
|
|
22
26
|
async function Layout({ children }) {
|
|
23
27
|
layoutRendered = true;
|
|
24
|
-
await
|
|
28
|
+
await init();
|
|
25
29
|
return (_jsxs(_Fragment, { children: [_jsx(EditorClient, {}), children] }));
|
|
26
30
|
}
|
|
27
31
|
// Remounts per navigation; must stay empty so nothing is lost when it does.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages-handler.js","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":";AA4CA,OAAO,EACL,iBAAiB,GAElB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAarD,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"pages-handler.js","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":";AA4CA,OAAO,EACL,iBAAiB,GAElB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAarD,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC9B,2EAA2E;IAC3E,8EAA8E;IAC9E,uEAAuE;IACvE,gCAAgC;IAChC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE3C,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,oEAAoE;IACpE,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAEhC,KAAK,UAAU,gBAAgB,CAAC,EAC9B,MAAM,GAGP;QACC,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACjC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,KAAK,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAiC;QAC/D,cAAc,GAAG,IAAI,CAAC;QACtB,MAAM,IAAI,EAAE,CAAC;QACb,OAAO,CACL,8BACE,KAAC,YAAY,KAAG,EACf,QAAQ,IACR,CACJ,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,SAAS,IAAI;QACX,IACE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;YACrC,CAAC,cAAc;YACf,CAAC,mBAAmB,EACpB,CAAC;YACD,mBAAmB,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,IAAI,CACV,sEAAsE;gBACpE,uEAAuE;gBACvE,4CAA4C;gBAC5C,qDAAqD;gBACrD,iCAAiC,CACpC,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side readers for published content.
|
|
3
|
+
*
|
|
4
|
+
* These live in the SDK rather than the scaffolded app because they carry the
|
|
5
|
+
* invariants that keep public routes cacheable and correct: initialization is
|
|
6
|
+
* awaited per read so a failed cold start can recover, a miss is reported
|
|
7
|
+
* distinctly from an outage so it can become a real 404 instead of a cached
|
|
8
|
+
* 200, and prerendering is aborted rather than baking an empty page into the
|
|
9
|
+
* build. A renderer that gets any of those wrong fails in ways that only show
|
|
10
|
+
* up under CDN caching or a backend blip.
|
|
11
|
+
*
|
|
12
|
+
* How a miss is presented — the copy, the styling, the editor links — is the
|
|
13
|
+
* app's business, and stays in the app.
|
|
14
|
+
*/
|
|
15
|
+
import type { Data } from "@puckeditor/core";
|
|
16
|
+
/**
|
|
17
|
+
* Outcome of a published-page read.
|
|
18
|
+
*
|
|
19
|
+
* `missing` and `unavailable` are deliberately separate. A miss is a real 404 —
|
|
20
|
+
* the caller should say so, so crawler traffic is not cached as a wall of
|
|
21
|
+
* 200-status "doesn't exist yet" pages. An outage is not: 404ing a published
|
|
22
|
+
* page because the backend blipped would deindex live content, so the caller
|
|
23
|
+
* should keep serving a non-cacheable holding page instead.
|
|
24
|
+
*/
|
|
25
|
+
export type PublishedPageResult = {
|
|
26
|
+
status: "ok";
|
|
27
|
+
data: Data;
|
|
28
|
+
} | {
|
|
29
|
+
status: "missing";
|
|
30
|
+
} | {
|
|
31
|
+
status: "unavailable";
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Published Puck data for `path`.
|
|
35
|
+
*
|
|
36
|
+
* Memoized with cache(): generateMetadata and the page body both need the same
|
|
37
|
+
* page, and without this every render reads it from Postgres twice.
|
|
38
|
+
*/
|
|
39
|
+
export declare const loadPublishedPage: (path: string) => Promise<PublishedPageResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Collection template keys for the current render.
|
|
42
|
+
*
|
|
43
|
+
* Memoized with cache(): metadata resolution and the page body each need them,
|
|
44
|
+
* and each call lists every key in the store.
|
|
45
|
+
*/
|
|
46
|
+
export declare const loadRouteTemplateKeys: () => Promise<string[]>;
|
|
47
|
+
//# sourceMappingURL=published-page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"published-page.d.ts","sourceRoot":"","sources":["../src/published-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAkC9B;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,SACf,MAAM,KAAG,OAAO,CAAC,mBAAmB,CASlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAmB,OAAO,CAAC,MAAM,EAAE,CAGnE,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side readers for published content.
|
|
3
|
+
*
|
|
4
|
+
* These live in the SDK rather than the scaffolded app because they carry the
|
|
5
|
+
* invariants that keep public routes cacheable and correct: initialization is
|
|
6
|
+
* awaited per read so a failed cold start can recover, a miss is reported
|
|
7
|
+
* distinctly from an outage so it can become a real 404 instead of a cached
|
|
8
|
+
* 200, and prerendering is aborted rather than baking an empty page into the
|
|
9
|
+
* build. A renderer that gets any of those wrong fails in ways that only show
|
|
10
|
+
* up under CDN caching or a backend blip.
|
|
11
|
+
*
|
|
12
|
+
* How a miss is presented — the copy, the styling, the editor links — is the
|
|
13
|
+
* app's business, and stays in the app.
|
|
14
|
+
*/
|
|
15
|
+
import { cache } from "react";
|
|
16
|
+
import { connection } from "next/server";
|
|
17
|
+
import { ensureInitialized, getPage, listRouteTemplateKeysFromDatabase, } from "@pantheon-systems/puck-css/server";
|
|
18
|
+
/**
|
|
19
|
+
* Awaited on every read rather than pinned to a module-level promise: the DAL
|
|
20
|
+
* dedupes successful inits itself and clears its state on failure, so calling it
|
|
21
|
+
* per read is what lets a transient cold-start failure recover instead of
|
|
22
|
+
* serving the empty state until the process restarts.
|
|
23
|
+
*/
|
|
24
|
+
const initP1 = () => ensureInitialized({
|
|
25
|
+
p1BaseUrl: process.env.NEXT_PUBLIC_CSS_BASE_URL,
|
|
26
|
+
p1ApiKey: process.env.CSS_API_KEY,
|
|
27
|
+
p1SiteId: process.env.NEXT_PUBLIC_CSS_SITE_ID,
|
|
28
|
+
// Default to "main" when unset: server components (no user token) need a
|
|
29
|
+
// branch to list/read documents (e.g. the /structure routes table).
|
|
30
|
+
p1BranchId: process.env.NEXT_PUBLIC_CSS_BRANCH_ID ?? "main",
|
|
31
|
+
});
|
|
32
|
+
async function unavailable(path, error) {
|
|
33
|
+
console.warn(`[p1-next-sdk] published content unavailable for ${path}:`, error instanceof Error ? error.message : String(error));
|
|
34
|
+
// Aborts prerendering and defers to the request. Public pages are prerendered
|
|
35
|
+
// at build time now that they no longer opt out of caching, so without this a
|
|
36
|
+
// build running while the backend is down would fail outright, and a build
|
|
37
|
+
// against a half-up backend would bake the holding page into cached output.
|
|
38
|
+
await connection();
|
|
39
|
+
return { status: "unavailable" };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Published Puck data for `path`.
|
|
43
|
+
*
|
|
44
|
+
* Memoized with cache(): generateMetadata and the page body both need the same
|
|
45
|
+
* page, and without this every render reads it from Postgres twice.
|
|
46
|
+
*/
|
|
47
|
+
export const loadPublishedPage = cache(async (path) => {
|
|
48
|
+
try {
|
|
49
|
+
await initP1();
|
|
50
|
+
const data = await getPage(path);
|
|
51
|
+
return data ? { status: "ok", data } : { status: "missing" };
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
return unavailable(path, error);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Collection template keys for the current render.
|
|
59
|
+
*
|
|
60
|
+
* Memoized with cache(): metadata resolution and the page body each need them,
|
|
61
|
+
* and each call lists every key in the store.
|
|
62
|
+
*/
|
|
63
|
+
export const loadRouteTemplateKeys = cache(async () => {
|
|
64
|
+
await initP1();
|
|
65
|
+
return listRouteTemplateKeysFromDatabase();
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=published-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"published-page.js","sourceRoot":"","sources":["../src/published-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,iCAAiC,GAClC,MAAM,mCAAmC,CAAC;AAiB3C;;;;;GAKG;AACH,MAAM,MAAM,GAAG,GAAG,EAAE,CAClB,iBAAiB,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;IAC/C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;IACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;IAC7C,yEAAyE;IACzE,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,MAAM;CAC5D,CAAC,CAAC;AAEL,KAAK,UAAU,WAAW,CACxB,IAAY,EACZ,KAAc;IAEd,OAAO,CAAC,IAAI,CACV,mDAAmD,IAAI,GAAG,EAC1D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;IACF,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,UAAU,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CACpC,KAAK,EAAE,IAAY,EAAgC,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,KAAK,IAAuB,EAAE;IACvE,MAAM,MAAM,EAAE,CAAC;IACf,OAAO,iCAAiC,EAAE,CAAC;AAC7C,CAAC,CAAC,CAAC"}
|
package/dist/routes/publish.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { NextResponse } from "next/server";
|
|
2
2
|
export { postPublish as POST };
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Dynamic segment rendering public pages, as Next.js names it for
|
|
5
|
+
* revalidatePath. Overridable for an app whose catch-all directory is not
|
|
6
|
+
* `[...puckPath]`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_PUBLIC_PAGE_SEGMENT = "/[...puckPath]";
|
|
9
|
+
export declare function postPublish(request: Request, { publicPageSegment }?: {
|
|
10
|
+
publicPageSegment?: string;
|
|
11
|
+
}): Promise<NextResponse<{
|
|
4
12
|
error: string;
|
|
5
13
|
}> | NextResponse<{
|
|
6
14
|
status: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/routes/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AAE/B,wBAAsB,WAAW,
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/routes/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,EAAE,iBAA+C,EAAE,GAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO;;;;IAyBzF"}
|
package/dist/routes/publish.js
CHANGED
|
@@ -2,7 +2,13 @@ import { revalidatePath } from "next/cache";
|
|
|
2
2
|
import { NextResponse } from "next/server";
|
|
3
3
|
import { isRouteTemplatePath, normalizePath, listOverridePathsForBase, persistPublishedPage, } from "@pantheon-systems/puck-css/server";
|
|
4
4
|
export { postPublish as POST };
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Dynamic segment rendering public pages, as Next.js names it for
|
|
7
|
+
* revalidatePath. Overridable for an app whose catch-all directory is not
|
|
8
|
+
* `[...puckPath]`.
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_PUBLIC_PAGE_SEGMENT = "/[...puckPath]";
|
|
11
|
+
export async function postPublish(request, { publicPageSegment = DEFAULT_PUBLIC_PAGE_SEGMENT } = {}) {
|
|
6
12
|
const payload = (await request.json());
|
|
7
13
|
const path = payload.path === "/" ? "/" : normalizePath(payload.path);
|
|
8
14
|
if (path === null) {
|
|
@@ -14,6 +20,12 @@ export async function postPublish(request) {
|
|
|
14
20
|
for (const p of await listOverridePathsForBase(path)) {
|
|
15
21
|
revalidatePath(p);
|
|
16
22
|
}
|
|
23
|
+
// Instance URLs that resolve by template fall-through alone (/jedi/5 against
|
|
24
|
+
// /jedi/:id) have no store entry, so listOverridePathsForBase cannot
|
|
25
|
+
// enumerate them. Invalidating the catch-all segment is the only way to
|
|
26
|
+
// reach them; without it they serve pre-edit content until revalidate
|
|
27
|
+
// expires.
|
|
28
|
+
revalidatePath(publicPageSegment, "page");
|
|
17
29
|
}
|
|
18
30
|
return NextResponse.json({ status: "ok" });
|
|
19
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/routes/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,WAAW,
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/routes/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAgB,EAChB,EAAE,iBAAiB,GAAG,2BAA2B,KAAqC,EAAE;IAExF,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAiC,CAAC;IAEvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,IAAI,CAAC,CAAC;IAErB,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,cAAc,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,6EAA6E;QAC7E,qEAAqE;QACrE,wEAAwE;QACxE,sEAAsE;QACtE,WAAW;QACX,cAAc,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { createP1AuthHandler, type P1AuthHandlerConfig } from "./auth-handler";
|
|
|
3
3
|
export { createP1Pages, type P1PagesConfig } from "./pages-handler";
|
|
4
4
|
export { createCssQueryFetchers, type CreateCssQueryFetchersOptions } from "./css-query-fetchers";
|
|
5
5
|
export { createP1Middleware, type P1MiddlewareConfig } from "./middleware";
|
|
6
|
+
export { loadPublishedPage, loadRouteTemplateKeys, type PublishedPageResult, } from "./published-page";
|
|
6
7
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,KAAK,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,KAAK,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -3,4 +3,5 @@ export { createP1AuthHandler } from "./auth-handler";
|
|
|
3
3
|
export { createP1Pages } from "./pages-handler";
|
|
4
4
|
export { createCssQueryFetchers } from "./css-query-fetchers";
|
|
5
5
|
export { createP1Middleware } from "./middleware";
|
|
6
|
+
export { loadPublishedPage, loadRouteTemplateKeys, } from "./published-page";
|
|
6
7
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAwB,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAA4B,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAsC,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAA2B,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAwB,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAA4B,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAsC,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAA2B,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pantheon-systems/p1-next-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
|
+
"license": "UNLICENSED",
|
|
4
5
|
"description": "Next.js SDK for P1 editor integration",
|
|
5
6
|
"publishConfig": {
|
|
6
7
|
"access": "public",
|
|
@@ -34,8 +35,8 @@
|
|
|
34
35
|
],
|
|
35
36
|
"dependencies": {
|
|
36
37
|
"server-only": "^0.0.1",
|
|
37
|
-
"@pantheon-systems/css-client": "0.
|
|
38
|
-
"@pantheon-systems/puck-css": "0.
|
|
38
|
+
"@pantheon-systems/css-client": "0.11.1",
|
|
39
|
+
"@pantheon-systems/puck-css": "0.11.1"
|
|
39
40
|
},
|
|
40
41
|
"peerDependencies": {
|
|
41
42
|
"@puckeditor/core": ">=0.21.0",
|