@pantheon-systems/p1-next-sdk 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ import { NextResponse } from "next/server";
2
2
  export interface P1AuthHandlerConfig {
3
3
  p1ApiKey?: string;
4
4
  p1BaseUrl?: string;
5
+ p1SiteUrl?: string;
5
6
  redirectUrl?: string;
6
7
  prompt?: string;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth-handler.d.ts","sourceRoot":"","sources":["../src/auth-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB;oBAEhD,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAgBzD"}
1
+ {"version":3,"file":"auth-handler.d.ts","sourceRoot":"","sources":["../src/auth-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB;oBAEhD,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAgBzD"}
@@ -5,7 +5,7 @@ export function createP1AuthHandler(opts) {
5
5
  const { action = [] } = await params;
6
6
  const route = action[0];
7
7
  if (route === "login") {
8
- return postBrokerLogin(request, opts.p1ApiKey, opts.p1BaseUrl, opts.redirectUrl, opts.prompt);
8
+ return postBrokerLogin(request, opts.p1ApiKey, opts.p1BaseUrl, opts.p1SiteUrl, opts.redirectUrl, opts.prompt);
9
9
  }
10
10
  if (route === "redeem") {
11
11
  return postBrokerRedeem(request, opts.p1ApiKey, opts.p1BaseUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"auth-handler.js","sourceRoot":"","sources":["../src/auth-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASpE,MAAM,UAAU,mBAAmB,CAAC,IAAyB;IAC3D,KAAK,UAAU,IAAI,CACjB,OAAgB,EAChB,EAAE,MAAM,EAA8C;QAEtD,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"auth-handler.js","sourceRoot":"","sources":["../src/auth-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAUpE,MAAM,UAAU,mBAAmB,CAAC,IAAyB;IAC3D,KAAK,UAAU,IAAI,CACjB,OAAgB,EAChB,EAAE,MAAM,EAA8C;QAEtD,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
@@ -10,6 +10,6 @@ export { getRemoteDatasources, postRemoteDatasources, deleteRemoteDatasources }
10
10
  export { postPublish } from "./routes/publish";
11
11
  export { postResolvePreview } from "./routes/resolve-preview";
12
12
  export { postPreviewMeta } from "./routes/preview-meta";
13
- export { postStructure, deleteStructurePage } from "./routes/structure";
13
+ export { getRoutes } from "./routes/routes-api";
14
14
  export { postBrokerLogin, postBrokerRedeem } from "./routes/broker";
15
15
  //# sourceMappingURL=handler-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler-actions.d.ts","sourceRoot":"","sources":["../src/handler-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"handler-actions.d.ts","sourceRoot":"","sources":["../src/handler-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -10,6 +10,6 @@ export { getRemoteDatasources, postRemoteDatasources, deleteRemoteDatasources }
10
10
  export { postPublish } from "./routes/publish";
11
11
  export { postResolvePreview } from "./routes/resolve-preview";
12
12
  export { postPreviewMeta } from "./routes/preview-meta";
13
- export { postStructure, deleteStructurePage } from "./routes/structure";
13
+ export { getRoutes } from "./routes/routes-api";
14
14
  export { postBrokerLogin, postBrokerRedeem } from "./routes/broker";
15
15
  //# sourceMappingURL=handler-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler-actions.js","sourceRoot":"","sources":["../src/handler-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"handler-actions.js","sourceRoot":"","sources":["../src/handler-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/handler.d.ts CHANGED
@@ -23,25 +23,7 @@ export declare function createP1Handler(opts: P1HandlerConfig): {
23
23
  params: Promise<{
24
24
  p1?: string[];
25
25
  }>;
26
- }) => Promise<NextResponse<{
27
- error: string;
28
- }> | NextResponse<{
29
- data: import("@puckeditor/core").Data;
30
- }> | NextResponse<{
31
- remoteDatasourceContext: {};
32
- routes: import("@pantheon-systems/puck-css").RouteRow[];
33
- routeTemplateKeys: string[];
34
- savedPreviewParams: Record<string, string>;
35
- remoteDatasourceRegistry: RemoteDatasourceDefinition[];
36
- }> | NextResponse<{
37
- id: string;
38
- data: {};
39
- }> | NextResponse<{
40
- ok: boolean;
41
- path: string;
42
- global: import("@pantheon-systems/puck-css/server").HttpJsonRemoteDatasourceDefinition[];
43
- page: import("@pantheon-systems/puck-css/server").HttpJsonRemoteDatasourceDefinition[];
44
- }>>;
26
+ }) => Promise<NextResponse<unknown>>;
45
27
  POST: (request: Request, { params }: {
46
28
  params: Promise<{
47
29
  p1?: string[];
@@ -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;CAC1D,CAAC;AAeF,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe;mBAIxC,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;;;;;;;;;;;;;;;;;;;oBAsBzC,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;sBAiBzC,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAcrD"}
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;AAuBzF,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;CAC1D,CAAC;AAeF,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe;mBAIxC,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;sBAezC,OAAO,cACJ;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE;EAYrD"}
package/dist/handler.js CHANGED
@@ -12,7 +12,7 @@
12
12
  import { NextResponse } from "next/server";
13
13
  import { ensureInitialized } from "@pantheon-systems/puck-css/server";
14
14
  import { runWithAuthToken } from "@pantheon-systems/puck-css/server";
15
- import { getPageData, getRemoteDatasources, getEditorContext, getDatasourceContext, postPublish, postResolvePreview, postPreviewMeta, postRemoteDatasources, postStructure, deleteRemoteDatasources, deleteStructurePage, } from "./handler-actions";
15
+ import { getPageData, getRemoteDatasources, getEditorContext, getDatasourceContext, getRoutes, postPublish, postResolvePreview, postPreviewMeta, postRemoteDatasources, deleteRemoteDatasources, } from "./handler-actions";
16
16
  /** Extract the sub-path segments from the catch-all `p1` param under `/p1/api/`. */
17
17
  function parseP1Segments(p1) {
18
18
  if (p1.length === 0)
@@ -52,12 +52,14 @@ export function createP1Handler(opts) {
52
52
  return getDatasourceContext(request, {
53
53
  builtinFetchers: opts.builtinFetchers,
54
54
  });
55
+ if (action === "routes")
56
+ return getRoutes(request);
55
57
  return NextResponse.json({ error: "not_found" }, { status: 404 });
56
58
  }
57
59
  async function POST(request, { params }) {
58
60
  await initPromise;
59
61
  const { p1 = [] } = await params;
60
- const { action, rest } = parseP1Segments(p1);
62
+ const { action } = parseP1Segments(p1);
61
63
  if (action === "publish")
62
64
  return withAuth(request, () => postPublish(request));
63
65
  if (action === "resolve-preview")
@@ -66,18 +68,14 @@ export function createP1Handler(opts) {
66
68
  return postPreviewMeta(request);
67
69
  if (action === "datasources")
68
70
  return withAuth(request, () => postRemoteDatasources(request));
69
- if (action === "structure" && (rest[0] === "page" || rest[0] === "template" || rest[0] === "override"))
70
- return withAuth(request, () => postStructure(request, rest[0]));
71
71
  return NextResponse.json({ error: "not_found" }, { status: 404 });
72
72
  }
73
73
  async function DELETE(request, { params }) {
74
74
  await initPromise;
75
75
  const { p1 = [] } = await params;
76
- const { action, rest } = parseP1Segments(p1);
76
+ const { action } = parseP1Segments(p1);
77
77
  if (action === "datasources")
78
78
  return withAuth(request, () => deleteRemoteDatasources(request));
79
- if (action === "structure" && rest[0] === "page")
80
- return withAuth(request, () => deleteStructurePage(request));
81
79
  return NextResponse.json({ error: "not_found" }, { status: 404 });
82
80
  }
83
81
  return { GET, POST, DELETE };
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
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;AAErE,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;AAQD,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC/C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CAAI,OAAgB,EAAE,EAAW;IAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,KAAK;QAAE,OAAO,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAqB;IACnD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE5C,KAAK,UAAU,GAAG,CAChB,OAAgB,EAChB,EAAE,MAAM,EAA0C;QAElD,MAAM,WAAW,CAAC;QAClB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAEvC,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,aAAa;YAAE,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,MAAM,KAAK,gBAAgB;YAC7B,OAAO,gBAAgB,CAAC,OAAO,EAAE;gBAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;aAC1D,CAAC,CAAC;QACL,IAAI,MAAM,KAAK,oBAAoB;YACjC,OAAO,oBAAoB,CAAC,OAAO,EAAE;gBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;QACL,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,UAAU,IAAI,CACjB,OAAgB,EAChB,EAAE,MAAM,EAA0C;QAElD,MAAM,WAAW,CAAC;QAClB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAEvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/E,IAAI,MAAM,KAAK,iBAAiB;YAAE,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,cAAc;YAAE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,MAAM,KAAK,aAAa;YAAE,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QAE7F,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,UAAU,MAAM,CACnB,OAAgB,EAChB,EAAE,MAAM,EAA0C;QAElD,MAAM,WAAW,CAAC;QAClB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QAEvC,IAAI,MAAM,KAAK,aAAa;YAAE,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/F,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export { P1NextRouterProvider } from "./P1NextRouterProvider";
2
- export { P1AuthShell } from "./P1AuthShell";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
1
  export { P1NextRouterProvider } from "./P1NextRouterProvider";
2
- export { P1AuthShell } from "./P1AuthShell";
3
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -10,8 +10,7 @@
10
10
  * export const generateMetadata = pages.generateMetadata;
11
11
  * export const dynamic = "force-dynamic";
12
12
  */
13
- import "@puckeditor/core/puck.css";
14
- import type { Config, Data } from "@puckeditor/core";
13
+ import type { Config } from "@puckeditor/core";
15
14
  import type { Metadata } from "next";
16
15
  import { type P1DataConfig } from "@pantheon-systems/puck-css/server";
17
16
  export type P1PagesConfig = P1DataConfig & {
@@ -20,10 +19,6 @@ export type P1PagesConfig = P1DataConfig & {
20
19
  EditorClient: React.ComponentType<{
21
20
  path: string;
22
21
  }>;
23
- /** React component to render published pages. Provided by the consuming app's client wrapper. */
24
- RenderClient: React.ComponentType<{
25
- data: Data;
26
- }>;
27
22
  };
28
23
  export declare function createP1Pages(opts: P1PagesConfig): {
29
24
  Page: ({ params, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"pages-handler.d.ts","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,mCAAmC,CAAC;AAI3C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,0HAA0H;IAC1H,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,iGAAiG;IACjG,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC,CAAC;CACJ,CAAC;AAsBF,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa;wBAwB5C;QACD,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpC;oCApBE;QACD,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpC,KAAG,OAAO,CAAC,QAAQ,CAAC;EA+GtB"}
1
+ {"version":3,"file":"pages-handler.d.ts","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,0HAA0H;IAC1H,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ,CAAC;AAmBF,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa;wBAiB5C;QACD,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpC;oCAbE;QACD,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpC,KAAG,OAAO,CAAC,QAAQ,CAAC;EAoBtB"}
@@ -1,37 +1,19 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * P1 Next SDK page handler — provides page components for `/p1/[...p1]`.
4
- *
5
- * Usage:
6
- * // app/p1/[...p1]/page.tsx
7
- * import { createP1Pages } from "@pantheon-systems/p1-next-sdk";
8
- * import config from "../../../puck.config";
9
- * const pages = createP1Pages({ config });
10
- * export default pages.Page;
11
- * export const generateMetadata = pages.generateMetadata;
12
- * export const dynamic = "force-dynamic";
13
- */
14
- import "@puckeditor/core/puck.css";
15
- import { listRoutes, pagePathFromCatchAllSegments, ensureInitialized, } from "@pantheon-systems/puck-css/server";
16
- import { P1NextRouterProvider } from "./P1NextRouterProvider.js";
17
- import { P1AuthShell } from "./P1AuthShell.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { pagePathFromCatchAllSegments, ensureInitialized, } from "@pantheon-systems/puck-css/server";
18
3
  function parsePath(path) {
19
4
  if (path.length === 0)
20
- return { mode: "dashboard", pagePath: "/" };
5
+ return { pagePath: "/" };
21
6
  const command = path[0];
22
7
  // /p1/api/... is handled by the route handler, not the page
23
8
  if (command === "api")
24
- return { mode: "api", pagePath: "/" };
25
- // /p1/structure
26
- if (command === "structure")
27
- return { mode: "structure", pagePath: "/" };
9
+ return { pagePath: "/" };
28
10
  // /p1/edit/... -> editor for the path
29
11
  if (command === "edit") {
30
12
  const rest = path.slice(1);
31
- return { mode: "editor", pagePath: pagePathFromCatchAllSegments(rest) };
13
+ return { pagePath: pagePathFromCatchAllSegments(rest) };
32
14
  }
33
15
  // /p1/... (anything else) -> editor for that path
34
- return { mode: "editor", pagePath: pagePathFromCatchAllSegments(path) };
16
+ return { pagePath: pagePathFromCatchAllSegments(path) };
35
17
  }
36
18
  export function createP1Pages(opts) {
37
19
  const { EditorClient } = opts;
@@ -39,54 +21,14 @@ export function createP1Pages(opts) {
39
21
  async function generateMetadata({ params, }) {
40
22
  await initPromise;
41
23
  const { p1 = [] } = await params;
42
- const { mode, pagePath } = parsePath(p1);
43
- if (mode === "dashboard") {
44
- return { title: "P1 Dashboard" };
45
- }
46
- if (mode === "structure") {
47
- return { title: "Site Structure" };
48
- }
24
+ const { pagePath } = parsePath(p1);
49
25
  return { title: "P1 Editor: " + pagePath };
50
26
  }
51
27
  async function Page({ params, }) {
52
28
  await initPromise;
53
29
  const { p1 = [] } = await params;
54
- const { mode, pagePath } = parsePath(p1);
55
- // Dashboard
56
- if (mode === "dashboard") {
57
- let routes = [];
58
- try {
59
- routes = await listRoutes();
60
- }
61
- catch {
62
- // Backend timeout or API error — show empty state
63
- }
64
- return (_jsx(P1AuthShell, { children: _jsxs("div", { style: {
65
- fontFamily: "system-ui, sans-serif",
66
- padding: "24px 32px",
67
- maxWidth: 960,
68
- }, children: [_jsx("h1", { style: { fontSize: 22, fontWeight: 600, margin: "0 0 16px" }, children: "P1 Dashboard" }), _jsx("p", { style: { color: "#555", marginBottom: 24 }, children: "Manage your site pages and templates." }), _jsx("div", { style: { display: "flex", gap: 12, marginBottom: 24 }, children: _jsx("a", { href: "/p1/structure", style: {
69
- padding: "8px 16px",
70
- background: "#2563eb",
71
- color: "#fff",
72
- borderRadius: 6,
73
- textDecoration: "none",
74
- fontSize: 14,
75
- }, children: "Site Structure" }) }), routes.length > 0 ? (_jsx("ul", { style: { listStyle: "none", padding: 0 }, children: routes.map((r) => (_jsxs("li", { style: { marginBottom: 8 }, children: [_jsx("a", { href: `/p1${r.path === "/" ? "" : r.path}`, style: {
76
- fontFamily: "ui-monospace, monospace",
77
- fontSize: 14,
78
- }, children: r.path }), _jsx("span", { style: { color: "#888", fontSize: 13, marginLeft: 8 }, children: r.kind })] }, r.path))) })) : (_jsx("p", { style: { color: "#666" }, children: "No pages yet. Use Site Structure to create one." }))] }) }));
79
- }
80
- // Structure page
81
- if (mode === "structure") {
82
- const { StructurePage } = await import("@pantheon-systems/puck-css/server");
83
- return (_jsx(P1AuthShell, { children: _jsx(P1NextRouterProvider, { children: _jsx(StructurePage, {}) }) }));
84
- }
85
- // Editor — P1App handles auth and data loading client-side
86
- if (mode === "editor") {
87
- return _jsx(EditorClient, { path: pagePath });
88
- }
89
- return _jsx("div", { children: "Not found" });
30
+ const { pagePath } = parsePath(p1);
31
+ return _jsx(EditorClient, { path: pagePath });
90
32
  }
91
33
  return { Page, generateMetadata };
92
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pages-handler.js","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages-handler.js","sourceRoot":"","sources":["../src/pages-handler.tsx"],"names":[],"mappings":";AAgBA,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,GAElB,MAAM,mCAAmC,CAAC;AAU3C,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,4DAA4D;IAC5D,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAEhD,sCAAsC;IACtC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,EAAE,QAAQ,EAAE,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,kDAAkD;IAClD,OAAO,EAAE,QAAQ,EAAE,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE5C,KAAK,UAAU,gBAAgB,CAAC,EAC9B,MAAM,GAGP;QACC,MAAM,WAAW,CAAC;QAClB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,UAAU,IAAI,CAAC,EAClB,MAAM,GAGP;QACC,MAAM,WAAW,CAAC;QAClB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,MAAM,CAAC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAEnC,OAAO,KAAC,YAAY,IAAC,IAAI,EAAE,QAAQ,GAAI,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACpC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { NextResponse } from "next/server";
2
- export declare function postBrokerLogin(request: Request, apiKey: string | undefined, baseUrl: string | undefined, redirectUrl?: string, prompt?: string): Promise<NextResponse<any>>;
2
+ export declare function postBrokerLogin(request: Request, apiKey: string | undefined, baseUrl: string | undefined, siteUrl?: string, redirectUrl?: string, prompt?: string): Promise<NextResponse<any>>;
3
3
  export declare function postBrokerRedeem(request: Request, apiKey: string | undefined, baseUrl: string | undefined): Promise<NextResponse<any>>;
4
4
  //# sourceMappingURL=broker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/routes/broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,8BAmChB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,8BA0C5B"}
1
+ {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/routes/broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,8BAkDhB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,8BA0C5B"}
@@ -1,5 +1,5 @@
1
1
  import { NextResponse } from "next/server";
2
- export async function postBrokerLogin(request, apiKey, baseUrl, redirectUrl, prompt) {
2
+ export async function postBrokerLogin(request, apiKey, baseUrl, siteUrl, redirectUrl, prompt) {
3
3
  if (!apiKey || !baseUrl) {
4
4
  return NextResponse.json({ error: "Server configuration error" }, { status: 500 });
5
5
  }
@@ -12,7 +12,16 @@ export async function postBrokerLogin(request, apiKey, baseUrl, redirectUrl, pro
12
12
  };
13
13
  const requestUrl = new URL(request.url);
14
14
  const basePath = requestUrl.pathname.replace(/\/auth\/.*$/, '') || '/';
15
- const effectiveRedirectUrl = redirectUrl ?? requestUrl.origin + basePath;
15
+ const siteUrlValue = siteUrl ?? process.env.P1_SITE_URL;
16
+ if (!siteUrlValue && process.env.NODE_ENV === 'production') {
17
+ console.warn("[P1AuthHandler] p1SiteUrl is not set. Redirect URLs may be incorrect behind a reverse proxy. " +
18
+ "Set the P1_SITE_URL environment variable or pass p1SiteUrl in your P1AuthHandlerConfig. " +
19
+ "This will be required in a future major version.");
20
+ }
21
+ const actualOrigin = siteUrlValue
22
+ ? new URL(siteUrlValue).origin
23
+ : requestUrl.origin;
24
+ const effectiveRedirectUrl = redirectUrl ?? actualOrigin + basePath;
16
25
  headers["Content-Type"] = "application/json";
17
26
  fetchInit.body = JSON.stringify({
18
27
  redirectUrl: effectiveRedirectUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/routes/broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/routes/broker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { NextResponse } from "next/server";
2
+ export declare function getRoutes(request: Request): Promise<NextResponse>;
3
+ //# sourceMappingURL=routes-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-api.d.ts","sourceRoot":"","sources":["../../src/routes/routes-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAUvE"}
@@ -0,0 +1,13 @@
1
+ import { NextResponse } from "next/server";
2
+ import { listRoutes, runWithAuthToken, } from "@pantheon-systems/puck-css/server";
3
+ export async function getRoutes(request) {
4
+ const token = request.headers.get("authorization")?.replace(/^Bearer\s+/i, "");
5
+ if (!token) {
6
+ return NextResponse.json({ error: "unauthorized" }, { status: 401 });
7
+ }
8
+ return runWithAuthToken(token, async () => {
9
+ const routes = await listRoutes();
10
+ return NextResponse.json({ routes });
11
+ });
12
+ }
13
+ //# sourceMappingURL=routes-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-api.js","sourceRoot":"","sources":["../../src/routes/routes-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,UAAU,EACV,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAgB;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,gBAAgB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pantheon-systems/p1-next-sdk",
3
- "version": "0.4.3",
3
+ "version": "0.5.0",
4
4
  "description": "Next.js SDK for P1 editor integration",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -30,13 +30,16 @@
30
30
  ],
31
31
  "dependencies": {
32
32
  "server-only": "^0.0.1",
33
- "@pantheon-systems/puck-css": "0.4.3"
33
+ "@pantheon-systems/css-client": "0.5.0",
34
+ "@pantheon-systems/puck-css": "0.5.0"
34
35
  },
35
36
  "peerDependencies": {
36
37
  "@puckeditor/core": ">=0.21.0",
37
38
  "next": ">=14.0.0",
38
39
  "react": ">=18.0.0",
39
- "react-dom": ">=18.0.0"
40
+ "react-dom": ">=18.0.0",
41
+ "@pantheon-systems/css-client": "0.5.0",
42
+ "@pantheon-systems/puck-css": "0.5.0"
40
43
  },
41
44
  "devDependencies": {
42
45
  "@testing-library/dom": "^10.4.1",
@@ -1,5 +0,0 @@
1
- import type { ReactNode } from "react";
2
- export declare function P1AuthShell({ children }: {
3
- children: ReactNode;
4
- }): import("react/jsx-runtime").JSX.Element;
5
- //# sourceMappingURL=P1AuthShell.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"P1AuthShell.d.ts","sourceRoot":"","sources":["../src/P1AuthShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAqIvC,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAgBhE"}
@@ -1,83 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { createNextConfig, P1AuthProvider, useP1Auth } from "@pantheon-systems/puck-css";
4
- import { AuthGate } from "@pantheon-systems/puck-css/auth-gate";
5
- let p1Config = null;
6
- let p1ConfigError = null;
7
- try {
8
- p1Config = createNextConfig();
9
- }
10
- catch (e) {
11
- p1ConfigError = e instanceof Error ? e.message : String(e);
12
- }
13
- function UserBar() {
14
- const { user, logout } = useP1Auth();
15
- if (!user)
16
- return null;
17
- return (_jsxs("div", { style: {
18
- display: "flex",
19
- alignItems: "center",
20
- justifyContent: "flex-end",
21
- gap: 12,
22
- padding: "6px 16px",
23
- background: "#1b1b1b",
24
- color: "#e0e0e0",
25
- fontSize: 13,
26
- fontFamily: "system-ui, sans-serif",
27
- borderBottom: "1px solid #333",
28
- }, children: [user.picture ? (_jsx("img", { src: user.picture, alt: "", referrerPolicy: "no-referrer", style: { width: 24, height: 24, borderRadius: "50%" } })) : (_jsx("div", { style: {
29
- width: 24,
30
- height: 24,
31
- borderRadius: "50%",
32
- background: "#555",
33
- display: "flex",
34
- alignItems: "center",
35
- justifyContent: "center",
36
- fontSize: 12,
37
- color: "#fff",
38
- }, children: (user.name || user.email || "?").charAt(0).toUpperCase() })), _jsx("span", { style: { opacity: 0.9 }, children: user.name || user.email || "User" }), _jsx("button", { onClick: logout, style: {
39
- background: "transparent",
40
- color: "#888",
41
- border: "1px solid #555",
42
- borderRadius: 4,
43
- padding: "2px 10px",
44
- fontSize: 12,
45
- cursor: "pointer",
46
- marginLeft: 4,
47
- }, children: "Log out" })] }));
48
- }
49
- function ConfigError({ message }) {
50
- return (_jsx("div", { style: {
51
- display: "flex",
52
- alignItems: "center",
53
- justifyContent: "center",
54
- minHeight: "100vh",
55
- fontFamily: "system-ui, -apple-system, sans-serif",
56
- background: "#f5f5f5",
57
- }, children: _jsxs("div", { style: {
58
- background: "white",
59
- borderRadius: 12,
60
- boxShadow: "0 4px 24px rgba(0,0,0,0.1)",
61
- padding: 40,
62
- maxWidth: 480,
63
- width: "100%",
64
- textAlign: "center",
65
- }, children: [_jsx("div", { style: { fontSize: 40, marginBottom: 16 }, children: "\u26A0" }), _jsx("h1", { style: { fontSize: 22, fontWeight: 600, margin: "0 0 12px", color: "#1a1a1a" }, children: "Configuration Required" }), _jsx("p", { style: { fontSize: 14, color: "#666", marginBottom: 24, lineHeight: 1.6 }, children: "The editor cannot start because required environment variables are missing." }), _jsx("div", { style: {
66
- background: "#fff0f0",
67
- border: "1px solid #fecaca",
68
- borderRadius: 8,
69
- padding: "12px 16px",
70
- fontSize: 13,
71
- color: "#991b1b",
72
- fontFamily: "ui-monospace, monospace",
73
- textAlign: "left",
74
- marginBottom: 24,
75
- }, children: message }), _jsxs("p", { style: { fontSize: 13, color: "#888", lineHeight: 1.5 }, children: ["Set ", _jsx("code", { style: { background: "#f0f0f0", padding: "2px 6px", borderRadius: 4 }, children: "NEXT_PUBLIC_CSS_BASE_URL" }), " and", " ", _jsx("code", { style: { background: "#f0f0f0", padding: "2px 6px", borderRadius: 4 }, children: "NEXT_PUBLIC_CSS_SITE_ID" }), " in your", " ", _jsx("code", { style: { background: "#f0f0f0", padding: "2px 6px", borderRadius: 4 }, children: ".env" }), " file."] })] }) }));
76
- }
77
- export function P1AuthShell({ children }) {
78
- if (!p1Config) {
79
- return _jsx(ConfigError, { message: p1ConfigError ?? "CSS configuration is missing." });
80
- }
81
- return (_jsx(P1AuthProvider, { authMode: p1Config.authMode, p1BaseUrl: p1Config.baseUrl, children: _jsxs(AuthGate, { children: [_jsx(UserBar, {}), children] }) }));
82
- }
83
- //# sourceMappingURL=P1AuthShell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"P1AuthShell.js","sourceRoot":"","sources":["../src/P1AuthShell.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { NextResponse } from "next/server";
2
- type StructureKind = "page" | "template" | "override";
3
- export declare function postStructure(request: Request, kind: StructureKind): Promise<NextResponse<{
4
- ok: boolean;
5
- error: string;
6
- }> | NextResponse<{
7
- ok: boolean;
8
- path: string;
9
- }>>;
10
- export declare function deleteStructurePage(request: Request): Promise<NextResponse<{
11
- ok: boolean;
12
- error: string;
13
- }> | NextResponse<{
14
- ok: boolean;
15
- deletedPaths: string[];
16
- }>>;
17
- export {};
18
- //# sourceMappingURL=structure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/routes/structure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS3C,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAatD,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa;;;;;;IAyBxE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,OAAO;;;;;;IAoBzD"}
@@ -1,55 +0,0 @@
1
- import { revalidatePath } from "next/cache";
2
- import { NextResponse } from "next/server";
3
- import { createStaticPage, createCollectionTemplate, createCollectionOverride, deletePageAtPath, } from "@pantheon-systems/puck-css/server";
4
- const structureCreators = {
5
- page: createStaticPage,
6
- template: createCollectionTemplate,
7
- override: createCollectionOverride,
8
- };
9
- export async function postStructure(request, kind) {
10
- const body = (await request.json());
11
- const path = typeof body.path === "string" ? body.path.trim() : "";
12
- if (!path) {
13
- return NextResponse.json({ ok: false, error: "Missing path" }, { status: 400 });
14
- }
15
- const creator = structureCreators[kind];
16
- const options = {};
17
- if (body.initialData)
18
- options.initialData = body.initialData;
19
- if (body.templateId)
20
- options.templateId = body.templateId;
21
- if (body.templateVersion !== undefined)
22
- options.templateVersion = body.templateVersion;
23
- const result = Object.keys(options).length > 0
24
- ? await creator(path, options)
25
- : await creator(path);
26
- if (result.ok === false) {
27
- return NextResponse.json({ ok: false, error: result.error }, { status: 400 });
28
- }
29
- revalidatePath(result.path);
30
- revalidatePath("/p1");
31
- return NextResponse.json({ ok: true, path: result.path });
32
- }
33
- export async function deleteStructurePage(request) {
34
- let body;
35
- try {
36
- body = (await request.json());
37
- }
38
- catch {
39
- return NextResponse.json({ ok: false, error: "invalid_json" }, { status: 400 });
40
- }
41
- const path = typeof body.path === "string" ? body.path.trim() : "";
42
- if (!path) {
43
- return NextResponse.json({ ok: false, error: "Missing path" }, { status: 400 });
44
- }
45
- const result = await deletePageAtPath(path);
46
- if (result.ok === false) {
47
- return NextResponse.json({ ok: false, error: result.error }, { status: 400 });
48
- }
49
- for (const p of result.deletedPaths) {
50
- revalidatePath(p);
51
- }
52
- revalidatePath("/p1");
53
- return NextResponse.json({ ok: true, deletedPaths: result.deletedPaths });
54
- }
55
- //# sourceMappingURL=structure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/routes/structure.ts"],"names":[],"mappings":"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"}