@payload-onpage/plugin 0.3.2 → 0.4.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/README.md CHANGED
@@ -20,3 +20,7 @@ Part of [**payload-onpage**](https://github.com/jellologic/payload-onpage): on-p
20
20
  MIT licensed.
21
21
 
22
22
  See the **[tour](https://github.com/jellologic/payload-onpage/blob/main/docs/tour.md)** and **[getting started](https://github.com/jellologic/payload-onpage/blob/main/docs/getting-started.md)**.
23
+
24
+ ---
25
+
26
+ _Found a bug? [Report it](https://github.com/jellologic/payload-onpage/issues/new?template=bug_report.yml) or see [CONTRIBUTING.md](https://github.com/jellologic/payload-onpage/blob/main/CONTRIBUTING.md) to fix it yourself._
package/dist/access.d.ts CHANGED
@@ -15,6 +15,17 @@ export declare function documentPermissions(req: PayloadRequest, ref: {
15
15
  slug: string;
16
16
  id?: string | number | undefined;
17
17
  }): Promise<SanitizedCollectionPermission | SanitizedGlobalPermission | null>;
18
+ /**
19
+ * Collection/global-level update access that is not granted. Payload's
20
+ * sanitizer deletes denied operations, so denial usually manifests as a
21
+ * missing `update` key — not `false`. Only the positive shapes allow:
22
+ * boolean `true`, or `{ permission: true }` (including row-level rules that
23
+ * carry a `where` and need a document to evaluate). Anything else — missing,
24
+ * `false`, `{ permission: false }`, an unknown shape, or no permissions at
25
+ * all (an access check threw) — denies, so callers fail closed and per-document
26
+ * checks decide the rest.
27
+ */
28
+ export declare function isUpdateDenied(perms: SanitizedCollectionPermission | SanitizedGlobalPermission | null): boolean;
18
29
  /**
19
30
  * May this user edit this document on the page? With an id, Payload evaluates a
20
31
  * row-level rule (a `where`) against that document itself, so its answer is final.
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC/B,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,sEAAsE;AACtE,wBAAsB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAIhG;AAED,2FAA2F;AAC3F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5E,OAAO,CAAC,6BAA6B,GAAG,yBAAyB,GAAG,IAAI,CAAC,CAqB3E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,OAAO,CAAC,CAYlB"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC/B,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,sEAAsE;AACtE,wBAAsB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAIhG;AAED,2FAA2F;AAC3F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5E,OAAO,CAAC,6BAA6B,GAAG,yBAAyB,GAAG,IAAI,CAAC,CAqB3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,6BAA6B,GAAG,yBAAyB,GAAG,IAAI,GACtE,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,OAAO,CAAC,CAYlB"}
package/dist/access.js CHANGED
@@ -33,6 +33,27 @@ export async function documentPermissions(req, ref) {
33
33
  return null;
34
34
  }
35
35
  }
36
+ /**
37
+ * Collection/global-level update access that is not granted. Payload's
38
+ * sanitizer deletes denied operations, so denial usually manifests as a
39
+ * missing `update` key — not `false`. Only the positive shapes allow:
40
+ * boolean `true`, or `{ permission: true }` (including row-level rules that
41
+ * carry a `where` and need a document to evaluate). Anything else — missing,
42
+ * `false`, `{ permission: false }`, an unknown shape, or no permissions at
43
+ * all (an access check threw) — denies, so callers fail closed and per-document
44
+ * checks decide the rest.
45
+ */
46
+ export function isUpdateDenied(perms) {
47
+ if (!perms)
48
+ return true;
49
+ const update = perms.update;
50
+ if (update === true)
51
+ return false;
52
+ return !(typeof update === 'object' &&
53
+ update !== null &&
54
+ 'permission' in update &&
55
+ update.permission === true);
56
+ }
36
57
  /**
37
58
  * May this user edit this document on the page? With an id, Payload evaluates a
38
59
  * row-level rule (a `where`) against that document itself, so its answer is final.
@@ -1 +1 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GAIzB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAmB,EAAE,OAAsB;IAC5E,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACjE,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA;AAC9D,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAmB,EACnB,GAA6E;IAE7E,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1D,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,wBAAwB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACpF,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAA;QAC5B,OAAO,MAAM,kBAAkB,CAAC;YAC9B,UAAU;YACV,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG;SACJ,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qFAAqF;QACrF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,GAAG;YACH,GAAG,EAAE,2CAA2C,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG;SACzE,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAmB,EACnB,GAAW,EACX,OAAsB;IAEtB,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACtE,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,MAAM,GAAY,CAAC,MAAM,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAA;IACrE,OAAO,CACL,MAAM,KAAK,IAAI;QACf,CAAC,OAAO,MAAM,KAAK,QAAQ;YACzB,MAAM,KAAK,IAAI;YACf,YAAY,IAAI,MAAM;YACtB,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAC9B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OnPageAdminControls.d.ts","sourceRoot":"","sources":["../../src/admin/OnPageAdminControls.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAKrE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,MAAM,EAAE,IAAI,MAAM,EAAE,CAAA;CACrB;AAgBD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,wBAAwB,sCAsDnF;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"OnPageAdminControls.d.ts","sourceRoot":"","sources":["../../src/admin/OnPageAdminControls.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAKrE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,MAAM,EAAE,IAAI,MAAM,EAAE,CAAA;CACrB;AAmBD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,wBAAwB,sCAsDnF;AAED,eAAe,mBAAmB,CAAA"}
@@ -19,6 +19,9 @@ function postInNewTab(action) {
19
19
  form.method = 'post';
20
20
  form.action = action;
21
21
  form.target = '_blank';
22
+ // The opened tab is same-origin: without noopener it would keep a handle on
23
+ // the admin document via window.opener.
24
+ form.rel = 'noopener';
22
25
  document.body.appendChild(form);
23
26
  form.submit();
24
27
  form.remove();
@@ -1 +1 @@
1
- {"version":3,"file":"OnPageAdminControls.js","sourceRoot":"","sources":["../../src/admin/OnPageAdminControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnPageAdminControls.js","sourceRoot":"","sources":["../../src/admin/OnPageAdminControls.tsx"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export interface EndpointContext {
22
22
  };
23
23
  prefix: `/${string}`;
24
24
  entry: (kind: DocRef['kind'], slug: string) => Entry | undefined;
25
+ entries: Entry[];
25
26
  }
26
27
  export declare function createEndpoints(ctx: EndpointContext): Endpoint[];
27
28
  //# sourceMappingURL=endpoints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAUL,KAAK,MAAM,EAGX,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAKL,KAAK,QAAQ,EAGd,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAKxD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,cAAc,CAAA;KAAE,CAAA;IACpD,MAAM,EAAE,IAAI,MAAM,EAAE,CAAA;IACpB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAA;CACjE;AAiBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,QAAQ,EAAE,CAqMhE"}
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAUL,KAAK,MAAM,EAGX,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAKL,KAAK,QAAQ,EAGd,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAKxD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,GAAG;QAAE,OAAO,EAAE,cAAc,CAAA;KAAE,CAAA;IACpD,MAAM,EAAE,IAAI,MAAM,EAAE,CAAA;IACpB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAA;IAChE,OAAO,EAAE,KAAK,EAAE,CAAA;CACjB;AAiBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,QAAQ,EAAE,CAsNhE"}
package/dist/endpoints.js CHANGED
@@ -16,7 +16,7 @@
16
16
  import { isOnPageMode, parseRefKey, pathnameOf, refKey, ROUTES, safePath, samePath, SEAL_PURPOSE, seal, } from '@payload-onpage/core';
17
17
  import { addDataAndFileToRequest, APIError, Forbidden, NotFound, } from 'payload';
18
18
  import { getAutosaveInterval, hasAutosaveEnabled, hasDraftsEnabled, toWords } from 'payload/shared';
19
- import { canEditDocument, canUseOnPage, documentPermissions } from "./access.js";
19
+ import { canEditDocument, canUseOnPage, documentPermissions, isUpdateDenied } from "./access.js";
20
20
  import { apiURL, entityConfig, isSecure, json, readRef, redirectTo, rejectCrossSite, text, withIdType, } from "./http.js";
21
21
  import { resolvePath } from "./paths.js";
22
22
  import { label, relationTargets, serializeFields } from "./schema.js";
@@ -32,6 +32,11 @@ const knownLocale = (req, value) => typeof value === 'string' && req.payload.con
32
32
  export function createEndpoints(ctx) {
33
33
  const { options, prefix } = ctx;
34
34
  const { session } = options;
35
+ /** True when the user may update at least one enabled document (row-level rules count). */
36
+ const canEditAnything = async (req) => {
37
+ const checks = await Promise.all(ctx.entries.map((e) => documentPermissions(req, { kind: e.kind, slug: e.slug })));
38
+ return checks.some((perms) => !isUpdateDenied(perms));
39
+ };
35
40
  const schema = {
36
41
  path: `${prefix}${ROUTES.schema}/:kind/:slug`,
37
42
  method: 'get',
@@ -45,6 +50,8 @@ export function createEndpoints(ctx) {
45
50
  if (!(await canUseOnPage(req, options)))
46
51
  throw new Forbidden(req.t);
47
52
  const perms = await documentPermissions(req, { kind, slug });
53
+ if (isUpdateDenied(perms))
54
+ throw new Forbidden(req.t);
48
55
  const pending = [];
49
56
  const all = serializeFields(cfg.fields, {
50
57
  i18n: req.i18n,
@@ -100,13 +107,17 @@ export function createEndpoints(ctx) {
100
107
  const refused = rejectCrossSite(req);
101
108
  if (refused)
102
109
  return refused;
110
+ // Authenticate before parsing the ref, so anonymous callers can't probe
111
+ // which slugs are enabled by the status code.
112
+ if (!req.user)
113
+ return text('Sign in to the admin first', 401);
114
+ if (!(await canUseOnPage(req, options)))
115
+ return text('You cannot use on-page editing', 403);
103
116
  const q = req.searchParams;
104
117
  const ref = readRef(req, { kind: q.get('kind'), slug: q.get('slug'), id: q.get('id') });
105
118
  const entry = ref && ctx.entry(ref.kind, ref.slug);
106
119
  if (!ref || !entry)
107
120
  return text('Unknown document', 400);
108
- if (!req.user)
109
- return text('Sign in to the admin first', 401);
110
121
  if (!(await canEditDocument(req, ref, options)))
111
122
  return text('You cannot edit this document', 403);
112
123
  const locale = req.locale && req.locale !== 'all' ? req.locale : undefined;
@@ -132,6 +143,8 @@ export function createEndpoints(ctx) {
132
143
  return text('Sign in to the admin first', 401);
133
144
  if (!(await canUseOnPage(req, options)))
134
145
  return text('You cannot use on-page editing', 403);
146
+ if (!(await canEditAnything(req)))
147
+ return text('You cannot edit any document', 403);
135
148
  const q = req.searchParams;
136
149
  const next = q.get('mode');
137
150
  await session.enable(isOnPageMode(next) ? next : 'edit', {
@@ -148,8 +161,9 @@ export function createEndpoints(ctx) {
148
161
  const refused = rejectCrossSite(req);
149
162
  if (refused)
150
163
  return refused;
151
- await session.disable();
152
- return redirectTo(req, req.searchParams.get('path'));
164
+ const path = safePath(req.searchParams.get('path'));
165
+ await session.disable(path ? { path: pathnameOf(path) } : undefined);
166
+ return redirectTo(req, path);
153
167
  },
154
168
  };
155
169
  const previewLink = {
@@ -162,6 +176,10 @@ export function createEndpoints(ctx) {
162
176
  if (!req.headers.get('content-type')?.includes('application/json'))
163
177
  throw new APIError('Expected a JSON body', 415);
164
178
  await addDataAndFileToRequest(req); // parses JSON, or throws a 400
179
+ // Authenticate before parsing the ref, so anonymous callers can't probe
180
+ // which slugs are enabled by the status code.
181
+ if (!(await canUseOnPage(req, options)))
182
+ throw new Forbidden(req.t);
165
183
  const body = req.data ?? {};
166
184
  const ref = readRef(req, body);
167
185
  const entry = ref && ctx.entry(ref.kind, ref.slug);
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts CHANGED
@@ -16,7 +16,9 @@ export declare const json: (body: unknown, status?: number) => Response;
16
16
  export declare const redirectTo: (req: PayloadRequest, path: unknown, status?: 303 | 307) => Response;
17
17
  /**
18
18
  * CSRF guard for state-changing endpoints: a POST from this site (Origin, or
19
- * Sec-Fetch-Site when Origin is absent). Returns an error response or null.
19
+ * Sec-Fetch-Site when Origin is absent). `none` is refused: no legitimate
20
+ * browser flow POSTs to these endpoints without site metadata. Returns an
21
+ * error response or null.
20
22
  */
21
23
  export declare function rejectCrossSite(req: PayloadRequest): Response | null;
22
24
  /** A collection's or global's sanitized config. */
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAG/F,mFAAmF;AACnF,eAAO,MAAM,QAAQ,GAAI,KAAK,cAAc,KAAG,MAG9C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,cAAc,KAAG,OAA6C,CAAA;AAE5F;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,cAAc,EAAE,MAAM,IAAI,MAAM,EAAE,KAAG,MAC4B,CAAA;AAE7F,kGAAkG;AAClG,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,QAIhD,CAAA;AAEJ,eAAO,MAAM,IAAI,GAAI,MAAM,OAAO,EAAE,eAAY,KAAG,QACiC,CAAA;AAEpF,iGAAiG;AACjG,eAAO,MAAM,UAAU,GAAI,KAAK,cAAc,EAAE,MAAM,OAAO,EAAE,SAAQ,GAAG,GAAG,GAAS,KAAG,QACf,CAAA;AAE1E;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAMpE;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,GACX,yBAAyB,GAAG,SAAS,CAAA;AACxC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,SAAS,CAAA;AACpC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EACpB,IAAI,EAAE,MAAM,GACX,yBAAyB,GAAG,qBAAqB,GAAG,SAAS,CAAA;AAOhE,kEAAkE;AAClE,wBAAgB,OAAO,CACrB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GACvD,MAAM,GAAG,IAAI,CAQf;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnE"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAG/F,mFAAmF;AACnF,eAAO,MAAM,QAAQ,GAAI,KAAK,cAAc,KAAG,MAG9C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,cAAc,KAAG,OAA6C,CAAA;AAE5F;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,cAAc,EAAE,MAAM,IAAI,MAAM,EAAE,KAAG,MAC4B,CAAA;AAE7F,kGAAkG;AAClG,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,QAIhD,CAAA;AAEJ,eAAO,MAAM,IAAI,GAAI,MAAM,OAAO,EAAE,eAAY,KAAG,QACiC,CAAA;AAEpF,iGAAiG;AACjG,eAAO,MAAM,UAAU,GAAI,KAAK,cAAc,EAAE,MAAM,OAAO,EAAE,SAAQ,GAAG,GAAG,GAAS,KAAG,QACf,CAAA;AAE1E;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAMpE;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,GACX,yBAAyB,GAAG,SAAS,CAAA;AACxC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,SAAS,CAAA;AACpC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EACpB,IAAI,EAAE,MAAM,GACX,yBAAyB,GAAG,qBAAqB,GAAG,SAAS,CAAA;AAOhE,kEAAkE;AAClE,wBAAgB,OAAO,CACrB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GACvD,MAAM,GAAG,IAAI,CAQf;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnE"}
package/dist/http.js CHANGED
@@ -22,7 +22,9 @@ export const json = (body, status = 200) => Response.json(body, { status, header
22
22
  export const redirectTo = (req, path, status = 303) => Response.redirect(new URL(safePath(path) ?? '/', originOf(req)), status);
23
23
  /**
24
24
  * CSRF guard for state-changing endpoints: a POST from this site (Origin, or
25
- * Sec-Fetch-Site when Origin is absent). Returns an error response or null.
25
+ * Sec-Fetch-Site when Origin is absent). `none` is refused: no legitimate
26
+ * browser flow POSTs to these endpoints without site metadata. Returns an
27
+ * error response or null.
26
28
  */
27
29
  export function rejectCrossSite(req) {
28
30
  if (req.method?.toUpperCase() !== 'POST')
@@ -31,7 +33,7 @@ export function rejectCrossSite(req) {
31
33
  if (origin)
32
34
  return origin === originOf(req) ? null : text('Cross-site request refused', 403);
33
35
  const site = req.headers.get('sec-fetch-site');
34
- return site === 'same-origin' || site === 'none' ? null : text('Cross-site request refused', 403);
36
+ return site === 'same-origin' ? null : text('Cross-site request refused', 403);
35
37
  }
36
38
  export function entityConfig(req, kind, slug) {
37
39
  return kind === 'global'
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,13 @@
1
- import { type Plugin } from 'payload';
2
1
  import { type OnPageOptions } from './options.ts';
3
- export declare function onpage(options: OnPageOptions): Plugin;
2
+ /**
3
+ * What `onpage()` returns: a Payload plugin function, typed to accept any
4
+ * Payload major's config. Payload v3 and v4 configs differ structurally, but
5
+ * what `onpage()` reads and adds (collections, globals, endpoints, hooks,
6
+ * admin components, translations) is stable across both, and the function is
7
+ * opaque to callers — sites just list it in `plugins`.
8
+ */
9
+ export type OnPagePlugin = <C>(config: C) => C;
10
+ export declare function onpage(options: OnPageOptions): OnPagePlugin;
4
11
  export type { OnPageDocOptions, OnPageOptions, OnPageTargets } from './options.ts';
5
12
  export { canEditDocument, canUseOnPage } from './access.ts';
6
13
  export { createPreviewToken, verifyPreviewToken, type PreviewTokenPayload } from './tokens.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAKL,KAAK,MAAM,EACZ,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAM/E,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAgJrD;AAED,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAClF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAM/E;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;AAE9C,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAsJ3D;AAED,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAClF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -19,12 +19,14 @@ import { serializeFields } from "./schema.js";
19
19
  import { translations } from "./translations.js";
20
20
  const APPLIED = 'payload-onpage';
21
21
  export function onpage(options) {
22
- return (incoming) => {
22
+ const apply = (incoming) => {
23
23
  if (options.enabled === false || incoming.custom?.[APPLIED])
24
24
  return incoming;
25
25
  const { session } = options;
26
26
  if (!session)
27
27
  throw new InvalidConfiguration('payload-onpage: pass `session` (e.g. nextSession() from @payload-onpage/next/session). The enter, mode, exit and preview endpoints need it.');
28
+ if (options.secret !== undefined && !options.secret)
29
+ throw new InvalidConfiguration("payload-onpage: `secret` must not be empty. Omit it to use Payload's `secret`.");
28
30
  const prefix = options.routePrefix ?? DEFAULTS.routePrefix;
29
31
  const entries = normalizeEntries(options);
30
32
  const keyOf = (kind, slug) => `${kind}:${slug}`;
@@ -140,6 +142,7 @@ export function onpage(options) {
140
142
  options: { ...options, session },
141
143
  prefix,
142
144
  entry: (kind, slug) => byKey.get(keyOf(kind, slug)),
145
+ entries,
143
146
  }),
144
147
  ],
145
148
  onInit: async (payload) => {
@@ -150,6 +153,7 @@ export function onpage(options) {
150
153
  },
151
154
  };
152
155
  };
156
+ return apply;
153
157
  }
154
158
  export { canEditDocument, canUseOnPage } from "./access.js";
155
159
  export { createPreviewToken, verifyPreviewToken } from "./tokens.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payload-onpage/plugin",
3
- "version": "0.3.2",
3
+ "version": "0.4.1",
4
4
  "description": "payload-onpage for Payload CMS: on-page editing endpoints, auto-mapping, preview links and admin controls.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -20,6 +20,9 @@
20
20
  "nextjs",
21
21
  "next.js",
22
22
  "app-router",
23
+ "tanstack",
24
+ "tanstack-start",
25
+ "typescript",
23
26
  "visual-editing",
24
27
  "visual-editor",
25
28
  "inline-editing",
@@ -64,7 +67,7 @@
64
67
  "provenance": true
65
68
  },
66
69
  "dependencies": {
67
- "@payload-onpage/core": "0.3.2"
70
+ "@payload-onpage/core": "0.4.1"
68
71
  },
69
72
  "peerDependencies": {
70
73
  "payload": "^3.90.2",
package/src/access.ts CHANGED
@@ -49,6 +49,30 @@ export async function documentPermissions(
49
49
  }
50
50
  }
51
51
 
52
+ /**
53
+ * Collection/global-level update access that is not granted. Payload's
54
+ * sanitizer deletes denied operations, so denial usually manifests as a
55
+ * missing `update` key — not `false`. Only the positive shapes allow:
56
+ * boolean `true`, or `{ permission: true }` (including row-level rules that
57
+ * carry a `where` and need a document to evaluate). Anything else — missing,
58
+ * `false`, `{ permission: false }`, an unknown shape, or no permissions at
59
+ * all (an access check threw) — denies, so callers fail closed and per-document
60
+ * checks decide the rest.
61
+ */
62
+ export function isUpdateDenied(
63
+ perms: SanitizedCollectionPermission | SanitizedGlobalPermission | null,
64
+ ): boolean {
65
+ if (!perms) return true
66
+ const update: unknown = perms.update
67
+ if (update === true) return false
68
+ return !(
69
+ typeof update === 'object' &&
70
+ update !== null &&
71
+ 'permission' in update &&
72
+ update.permission === true
73
+ )
74
+ }
75
+
52
76
  /**
53
77
  * May this user edit this document on the page? With an id, Payload evaluates a
54
78
  * row-level rule (a `where`) against that document itself, so its answer is final.
@@ -35,6 +35,9 @@ function postInNewTab(action: string) {
35
35
  form.method = 'post'
36
36
  form.action = action
37
37
  form.target = '_blank'
38
+ // The opened tab is same-origin: without noopener it would keep a handle on
39
+ // the admin document via window.opener.
40
+ form.rel = 'noopener'
38
41
  document.body.appendChild(form)
39
42
  form.submit()
40
43
  form.remove()
package/src/endpoints.ts CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  type TypedLocale,
39
39
  } from 'payload'
40
40
  import { getAutosaveInterval, hasAutosaveEnabled, hasDraftsEnabled, toWords } from 'payload/shared'
41
- import { canEditDocument, canUseOnPage, documentPermissions } from './access.ts'
41
+ import { canEditDocument, canUseOnPage, documentPermissions, isUpdateDenied } from './access.ts'
42
42
  import {
43
43
  apiURL,
44
44
  entityConfig,
@@ -59,6 +59,7 @@ export interface EndpointContext {
59
59
  options: OnPageOptions & { session: SessionAdapter }
60
60
  prefix: `/${string}`
61
61
  entry: (kind: DocRef['kind'], slug: string) => Entry | undefined
62
+ entries: Entry[]
62
63
  }
63
64
 
64
65
  const DAY = 24 * 3600
@@ -80,6 +81,14 @@ export function createEndpoints(ctx: EndpointContext): Endpoint[] {
80
81
  const { options, prefix } = ctx
81
82
  const { session } = options
82
83
 
84
+ /** True when the user may update at least one enabled document (row-level rules count). */
85
+ const canEditAnything = async (req: PayloadRequest): Promise<boolean> => {
86
+ const checks = await Promise.all(
87
+ ctx.entries.map((e) => documentPermissions(req, { kind: e.kind, slug: e.slug })),
88
+ )
89
+ return checks.some((perms) => !isUpdateDenied(perms))
90
+ }
91
+
83
92
  const schema: Endpoint = {
84
93
  path: `${prefix}${ROUTES.schema}/:kind/:slug`,
85
94
  method: 'get',
@@ -92,6 +101,7 @@ export function createEndpoints(ctx: EndpointContext): Endpoint[] {
92
101
  if (!(await canUseOnPage(req, options))) throw new Forbidden(req.t)
93
102
 
94
103
  const perms = await documentPermissions(req, { kind, slug })
104
+ if (isUpdateDenied(perms)) throw new Forbidden(req.t)
95
105
  const pending: Promise<void>[] = []
96
106
  const all = serializeFields(cfg.fields, {
97
107
  i18n: req.i18n,
@@ -149,11 +159,14 @@ export function createEndpoints(ctx: EndpointContext): Endpoint[] {
149
159
  handler: async (req) => {
150
160
  const refused = rejectCrossSite(req)
151
161
  if (refused) return refused
162
+ // Authenticate before parsing the ref, so anonymous callers can't probe
163
+ // which slugs are enabled by the status code.
164
+ if (!req.user) return text('Sign in to the admin first', 401)
165
+ if (!(await canUseOnPage(req, options))) return text('You cannot use on-page editing', 403)
152
166
  const q = req.searchParams
153
167
  const ref = readRef(req, { kind: q.get('kind'), slug: q.get('slug'), id: q.get('id') })
154
168
  const entry = ref && ctx.entry(ref.kind, ref.slug)
155
169
  if (!ref || !entry) return text('Unknown document', 400)
156
- if (!req.user) return text('Sign in to the admin first', 401)
157
170
  if (!(await canEditDocument(req, ref, options)))
158
171
  return text('You cannot edit this document', 403)
159
172
  const locale = req.locale && req.locale !== 'all' ? req.locale : undefined
@@ -176,6 +189,7 @@ export function createEndpoints(ctx: EndpointContext): Endpoint[] {
176
189
  if (refused) return refused
177
190
  if (!req.user) return text('Sign in to the admin first', 401)
178
191
  if (!(await canUseOnPage(req, options))) return text('You cannot use on-page editing', 403)
192
+ if (!(await canEditAnything(req))) return text('You cannot edit any document', 403)
179
193
  const q = req.searchParams
180
194
  const next = q.get('mode')
181
195
  await session.enable(isOnPageMode(next) ? next : 'edit', {
@@ -192,8 +206,9 @@ export function createEndpoints(ctx: EndpointContext): Endpoint[] {
192
206
  handler: async (req) => {
193
207
  const refused = rejectCrossSite(req)
194
208
  if (refused) return refused
195
- await session.disable()
196
- return redirectTo(req, req.searchParams.get('path'))
209
+ const path = safePath(req.searchParams.get('path'))
210
+ await session.disable(path ? { path: pathnameOf(path) } : undefined)
211
+ return redirectTo(req, path)
197
212
  },
198
213
  }
199
214
 
@@ -206,6 +221,9 @@ export function createEndpoints(ctx: EndpointContext): Endpoint[] {
206
221
  if (!req.headers.get('content-type')?.includes('application/json'))
207
222
  throw new APIError('Expected a JSON body', 415)
208
223
  await addDataAndFileToRequest(req) // parses JSON, or throws a 400
224
+ // Authenticate before parsing the ref, so anonymous callers can't probe
225
+ // which slugs are enabled by the status code.
226
+ if (!(await canUseOnPage(req, options))) throw new Forbidden(req.t)
209
227
  const body: Record<string, unknown> = req.data ?? {}
210
228
  const ref = readRef(req, body)
211
229
  const entry = ref && ctx.entry(ref.kind, ref.slug)
package/src/http.ts CHANGED
@@ -34,14 +34,16 @@ export const redirectTo = (req: PayloadRequest, path: unknown, status: 303 | 307
34
34
 
35
35
  /**
36
36
  * CSRF guard for state-changing endpoints: a POST from this site (Origin, or
37
- * Sec-Fetch-Site when Origin is absent). Returns an error response or null.
37
+ * Sec-Fetch-Site when Origin is absent). `none` is refused: no legitimate
38
+ * browser flow POSTs to these endpoints without site metadata. Returns an
39
+ * error response or null.
38
40
  */
39
41
  export function rejectCrossSite(req: PayloadRequest): Response | null {
40
42
  if (req.method?.toUpperCase() !== 'POST') return text('Method not allowed', 405)
41
43
  const origin = req.headers.get('origin')
42
44
  if (origin) return origin === originOf(req) ? null : text('Cross-site request refused', 403)
43
45
  const site = req.headers.get('sec-fetch-site')
44
- return site === 'same-origin' || site === 'none' ? null : text('Cross-site request refused', 403)
46
+ return site === 'same-origin' ? null : text('Cross-site request refused', 403)
45
47
  }
46
48
 
47
49
  /** A collection's or global's sanitized config. */
package/src/index.ts CHANGED
@@ -15,7 +15,6 @@ import {
15
15
  type CollectionConfig,
16
16
  type Config,
17
17
  type GlobalConfig,
18
- type Plugin,
19
18
  } from 'payload'
20
19
  import { deepMergeSimple } from 'payload/shared'
21
20
  import { createEndpoints } from './endpoints.ts'
@@ -26,14 +25,27 @@ import { translations } from './translations.ts'
26
25
 
27
26
  const APPLIED = 'payload-onpage'
28
27
 
29
- export function onpage(options: OnPageOptions): Plugin {
30
- return (incoming: Config): Config => {
28
+ /**
29
+ * What `onpage()` returns: a Payload plugin function, typed to accept any
30
+ * Payload major's config. Payload v3 and v4 configs differ structurally, but
31
+ * what `onpage()` reads and adds (collections, globals, endpoints, hooks,
32
+ * admin components, translations) is stable across both, and the function is
33
+ * opaque to callers — sites just list it in `plugins`.
34
+ */
35
+ export type OnPagePlugin = <C>(config: C) => C
36
+
37
+ export function onpage(options: OnPageOptions): OnPagePlugin {
38
+ const apply = (incoming: Config): Config => {
31
39
  if (options.enabled === false || incoming.custom?.[APPLIED]) return incoming
32
40
  const { session } = options
33
41
  if (!session)
34
42
  throw new InvalidConfiguration(
35
43
  'payload-onpage: pass `session` (e.g. nextSession() from @payload-onpage/next/session). The enter, mode, exit and preview endpoints need it.',
36
44
  )
45
+ if (options.secret !== undefined && !options.secret)
46
+ throw new InvalidConfiguration(
47
+ "payload-onpage: `secret` must not be empty. Omit it to use Payload's `secret`.",
48
+ )
37
49
  const prefix = options.routePrefix ?? DEFAULTS.routePrefix
38
50
  const entries = normalizeEntries(options)
39
51
  const keyOf = (kind: DocRef['kind'], slug: string) => `${kind}:${slug}`
@@ -158,6 +170,7 @@ export function onpage(options: OnPageOptions): Plugin {
158
170
  options: { ...options, session },
159
171
  prefix,
160
172
  entry: (kind, slug) => byKey.get(keyOf(kind, slug)),
173
+ entries,
161
174
  }),
162
175
  ],
163
176
  onInit: async (payload) => {
@@ -170,6 +183,7 @@ export function onpage(options: OnPageOptions): Plugin {
170
183
  },
171
184
  }
172
185
  }
186
+ return apply as OnPagePlugin
173
187
  }
174
188
 
175
189
  export type { OnPageDocOptions, OnPageOptions, OnPageTargets } from './options.ts'