@next-buildr/payload 2.0.0 → 3.0.0-rc.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.
- package/README.md +7 -0
- package/UPGRADING.md +322 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/plugin/access.d.ts +7 -0
- package/dist/plugin/access.d.ts.map +1 -1
- package/dist/plugin/access.js +19 -0
- package/dist/plugin/collections/templates.d.ts.map +1 -1
- package/dist/plugin/collections/templates.js +9 -3
- package/dist/plugin/endpoints/context.d.ts +8 -0
- package/dist/plugin/endpoints/context.d.ts.map +1 -1
- package/dist/plugin/endpoints/forms-captcha.test.d.ts +2 -0
- package/dist/plugin/endpoints/forms-captcha.test.d.ts.map +1 -0
- package/dist/plugin/endpoints/forms-captcha.test.js +676 -0
- package/dist/plugin/endpoints/forms.d.ts.map +1 -1
- package/dist/plugin/endpoints/forms.js +110 -12
- package/dist/plugin/endpoints/publish.d.ts.map +1 -1
- package/dist/plugin/endpoints/publish.js +4 -0
- package/dist/plugin/endpoints/save.d.ts.map +1 -1
- package/dist/plugin/endpoints/save.js +3 -0
- package/dist/plugin/forms/captcha.d.ts +45 -0
- package/dist/plugin/forms/captcha.d.ts.map +1 -0
- package/dist/plugin/forms/captcha.js +195 -0
- package/dist/plugin/forms/captcha.test.d.ts +2 -0
- package/dist/plugin/forms/captcha.test.d.ts.map +1 -0
- package/dist/plugin/forms/captcha.test.js +262 -0
- package/dist/plugin/forms/client-ip.d.ts +8 -0
- package/dist/plugin/forms/client-ip.d.ts.map +1 -0
- package/dist/plugin/forms/client-ip.js +41 -0
- package/dist/plugin/forms/client-ip.test.d.ts +2 -0
- package/dist/plugin/forms/client-ip.test.d.ts.map +1 -0
- package/dist/plugin/forms/client-ip.test.js +45 -0
- package/dist/plugin/forms/rate-limit.d.ts +2 -0
- package/dist/plugin/forms/rate-limit.d.ts.map +1 -1
- package/dist/plugin/forms/rate-limit.js +10 -1
- package/dist/plugin/hooks/author-code.test.d.ts +2 -0
- package/dist/plugin/hooks/author-code.test.d.ts.map +1 -0
- package/dist/plugin/hooks/author-code.test.js +285 -0
- package/dist/plugin/hooks/layout-hook.d.ts +1 -1
- package/dist/plugin/hooks/layout-hook.d.ts.map +1 -1
- package/dist/plugin/hooks/layout-hook.js +12 -2
- package/dist/plugin/hooks/process-layout.d.ts +10 -0
- package/dist/plugin/hooks/process-layout.d.ts.map +1 -1
- package/dist/plugin/hooks/process-layout.js +94 -1
- package/dist/plugin/hooks/read-layout.d.ts +1 -1
- package/dist/plugin/hooks/read-layout.d.ts.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +20 -1
- package/dist/plugin/options.d.ts +11 -0
- package/dist/plugin/options.d.ts.map +1 -1
- package/dist/plugin/options.js +49 -1
- package/dist/plugin/plugin.test.js +81 -2
- package/package.json +13 -11
package/dist/plugin/access.d.ts
CHANGED
|
@@ -15,5 +15,12 @@ export declare const isApiKeyRequest: (req: PayloadRequest) => boolean;
|
|
|
15
15
|
* make uses the caller's `req` with `overrideAccess: false`.
|
|
16
16
|
*/
|
|
17
17
|
export declare function allowed(options: Pick<ResolvedOptions, 'access' | 'mcp'>, action: Action, req: PayloadRequest): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the request may save author code (ADR-026): the plugin `authorCode` option, `false` by
|
|
20
|
+
* default, as a boolean or a function of the request (which sees `req.user`, so it decides what an
|
|
21
|
+
* unauthenticated Local API call may do). An API-key request never may, whatever the option says
|
|
22
|
+
* (an agent is not a trusted editor); a function that throws or returns anything but `true` means no.
|
|
23
|
+
*/
|
|
24
|
+
export declare function authorCodePermitted(options: Pick<ResolvedOptions, 'authorCode'>, req: PayloadRequest): Promise<boolean>;
|
|
18
25
|
export declare function permissionsOf(options: Pick<ResolvedOptions, 'access' | 'mcp'>, req: PayloadRequest): Promise<Permissions>;
|
|
19
26
|
//# sourceMappingURL=access.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/plugin/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED,qGAAqG;AACrG,eAAO,MAAM,eAAe,QAAS,cAAc,KAAG,OAC4B,CAAC;AAKnF;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,EAChD,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,EAChD,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,WAAW,CAAC,CAOtB"}
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/plugin/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED,qGAAqG;AACrG,eAAO,MAAM,eAAe,QAAS,cAAc,KAAG,OAC4B,CAAC;AAKnF;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,EAChD,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAC5C,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,KAAK,CAAC,EAChD,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,WAAW,CAAC,CAOtB"}
|
package/dist/plugin/access.js
CHANGED
|
@@ -22,6 +22,25 @@ export async function allowed(options, action, req) {
|
|
|
22
22
|
const check = options.access[action];
|
|
23
23
|
return check === undefined ? true : Boolean(await check({ req }));
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether the request may save author code (ADR-026): the plugin `authorCode` option, `false` by
|
|
27
|
+
* default, as a boolean or a function of the request (which sees `req.user`, so it decides what an
|
|
28
|
+
* unauthenticated Local API call may do). An API-key request never may, whatever the option says
|
|
29
|
+
* (an agent is not a trusted editor); a function that throws or returns anything but `true` means no.
|
|
30
|
+
*/
|
|
31
|
+
export async function authorCodePermitted(options, req) {
|
|
32
|
+
if (isApiKeyRequest(req))
|
|
33
|
+
return false;
|
|
34
|
+
const setting = options.authorCode;
|
|
35
|
+
if (typeof setting === 'boolean')
|
|
36
|
+
return setting;
|
|
37
|
+
try {
|
|
38
|
+
return (await setting({ req })) === true;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
25
44
|
export async function permissionsOf(options, req) {
|
|
26
45
|
const [canEdit, canPublish, canUnlockTemplates] = await Promise.all([
|
|
27
46
|
allowed(options, 'edit', req),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/plugin/collections/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,SAAS,CAAC;AAKjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/plugin/collections/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,SAAS,CAAC;AAKjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA0ErD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,GAAG,gBAAgB,CA8CnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ValidationError, } from 'payload';
|
|
2
2
|
import { TEMPLATES_COLLECTION } from '../../data/resolve-layout.js';
|
|
3
|
-
import { allowed } from '../access.js';
|
|
3
|
+
import { allowed, authorCodePermitted } from '../access.js';
|
|
4
4
|
import { describeDiagnostics, processLayout } from '../hooks/process-layout.js';
|
|
5
5
|
import { configuredLocales } from '../locales.js';
|
|
6
6
|
const isRecord = (value) => typeof value === 'object' && value !== null;
|
|
@@ -49,12 +49,18 @@ const singleDefault = async ({ data, originalDoc, req }) => {
|
|
|
49
49
|
return data;
|
|
50
50
|
};
|
|
51
51
|
/** A stored layout is validated like the builder's: an invalid document never reaches the database. */
|
|
52
|
-
const templateLayoutHook = (options) => ({ value, req }) => {
|
|
52
|
+
const templateLayoutHook = (options) => async ({ value, req, originalDoc, operation }) => {
|
|
53
53
|
if (value === undefined || value === null)
|
|
54
54
|
return value;
|
|
55
55
|
const result = processLayout(value, {
|
|
56
|
-
|
|
56
|
+
registry: options.registry,
|
|
57
|
+
limits: options.limits,
|
|
57
58
|
locales: configuredLocales(req.payload.config),
|
|
59
|
+
allowAuthorCode: await authorCodePermitted(options, req),
|
|
60
|
+
// A new template has no stored layout (on a duplicate, `originalDoc` is the source document).
|
|
61
|
+
previous: operation === 'create'
|
|
62
|
+
? undefined
|
|
63
|
+
: originalDoc?.['layout'],
|
|
58
64
|
});
|
|
59
65
|
if (!result.ok) {
|
|
60
66
|
throw new ValidationError({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PayloadRequest } from 'payload';
|
|
2
2
|
import type { SchemaOptions, SchemaSource } from '../../data/index.ts';
|
|
3
3
|
import { type Action } from '../access.ts';
|
|
4
|
+
import type { CaptchaGate, CaptchaVerifier } from '../forms/captcha.ts';
|
|
4
5
|
import type { RateLimiter } from '../forms/rate-limit.ts';
|
|
5
6
|
import type { LocaleArgs } from '../locales.ts';
|
|
6
7
|
import type { ResolvedOptions } from '../options.ts';
|
|
@@ -13,6 +14,13 @@ export interface EndpointEnv {
|
|
|
13
14
|
readonly options: ResolvedOptions;
|
|
14
15
|
/** Limits form submissions (present when forms are enabled). */
|
|
15
16
|
readonly rateLimiter?: RateLimiter | undefined;
|
|
17
|
+
/** Internal dependencies, instantiated once per plugin; never a public verifier option. */
|
|
18
|
+
readonly captcha?: {
|
|
19
|
+
readonly verifier: CaptchaVerifier;
|
|
20
|
+
readonly rateLimiter: RateLimiter;
|
|
21
|
+
readonly gate: CaptchaGate;
|
|
22
|
+
readonly hostnames: readonly string[];
|
|
23
|
+
} | undefined;
|
|
16
24
|
/** Limits the writes of API-key requests (present when `mcp.enabled`). */
|
|
17
25
|
readonly writeLimiter?: RateLimiter | undefined;
|
|
18
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/plugin/endpoints/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/plugin/endpoints/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,KAAK,MAAM,EAAyC,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,CAAC,EACb;QACE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;KACvC,GACD,SAAS,CAAC;IACd,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IACjB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAExD,wGAAwG;AACxG,eAAO,MAAM,SAAS,QAAS,WAAW,cAAc,MAAM,KAAG,OAEgC,CAAC;AAElG;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAQ/B;AAED,mGAAmG;AACnG,eAAO,MAAM,YAAY,QAAS,cAAc,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAGvE,CAAC;AAEH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMxF;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAanF;AAED,8GAA8G;AAC9G,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAQvF;AAED,gDAAgD;AAChD,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAE3C,iGAAiG;AACjG,wBAAgB,SAAS,CACvB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,GAClB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAalD;AAED,gEAAgE;AAChE,wBAAsB,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAM3E;AAED,uEAAuE;AACvE,eAAO,MAAM,OAAO,QAAS,WAAW,UAAU,MAAM,OAAO,cAAc,KAAG,OAAO,CAAC,OAAO,CAC1D,CAAC;AAEtC,qFAAqF;AACrF,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE;IACP,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CACnC,GACL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAgB3C;AAED,uEAAuE;AACvE,eAAO,MAAM,UAAU,QAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MACa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-captcha.test.d.ts","sourceRoot":"","sources":["../../../src/plugin/endpoints/forms-captcha.test.ts"],"names":[],"mappings":""}
|