@heyo-sh/heyo-cms 0.2.0 → 0.3.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/dist/adapters/astro.js +1 -1
- package/dist/ai/assistant/schema.d.ts +10 -0
- package/dist/ai/assistant/schema.d.ts.map +1 -1
- package/dist/ai/service.d.ts.map +1 -1
- package/dist/ai.js +1 -1
- package/dist/auth.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/content/import.d.ts.map +1 -1
- package/dist/content.js +1 -1
- package/dist/editor.js +1 -1
- package/dist/engine/documents.d.ts.map +1 -1
- package/dist/fields/builtin.d.ts +44 -1
- package/dist/fields/builtin.d.ts.map +1 -1
- package/dist/fields/registry.d.ts.map +1 -1
- package/dist/fields.js +1 -1
- package/dist/http/routes/ai.d.ts +1 -1
- package/dist/http.js +1 -1
- package/dist/index-1xz3pmtk.js +3 -0
- package/dist/{index-8x2em6c8.js → index-63x90ejh.js} +5 -5
- package/dist/{index-g041kfa5.js → index-a1jv6396.js} +5 -5
- package/dist/index-axpzy2hj.js +2 -0
- package/dist/index-b79c3k6g.js +2 -0
- package/dist/{index-rg9tpg3p.js → index-dtwe2z69.js} +2 -2
- package/dist/{index-2prbs05k.js → index-eqfcxn71.js} +1 -1
- package/dist/{index-vkwzdfte.js → index-mpkhjgvk.js} +2 -2
- package/dist/{index-hbx67b20.js → index-ptttzgtp.js} +2 -2
- package/dist/index-vf163r10.js +2 -0
- package/dist/index-wbc2xh4h.js +40 -0
- package/dist/{index-kc1j3h6z.js → index-zyg6bfdq.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/migrations.js +1 -1
- package/dist/{run-bjge3v8e.js → run-rqmtv3cn.js} +2 -2
- package/dist/types/fields.d.ts +2 -2
- package/dist/types/fields.d.ts.map +1 -1
- package/dist/types/panel.d.ts +2 -0
- package/dist/types/panel.d.ts.map +1 -1
- package/dist/uploads.js +2 -2
- package/package.json +1 -1
- package/dist/index-67e458ws.js +0 -2
- package/dist/index-6w10rch0.js +0 -3
- package/dist/index-cv0hpz3d.js +0 -2
- package/dist/index-hpast878.js +0 -40
- package/dist/index-sgdnp83t.js +0 -2
package/dist/adapters/astro.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D,B}from"../index-385ggnge.js";function u(o
|
|
1
|
+
import{D,B}from"../index-385ggnge.js";function u(e,o={}){let t=({request:n,locals:r})=>D(e,n,o.waitUntil??i(r));return{GET:t,POST:t,PATCH:t,PUT:t,DELETE:t,HEAD:t,OPTIONS:t,ALL:t}}function i(e){return B(e?.cfContext)}export{u as cmsHandler};
|
|
@@ -24,6 +24,16 @@ export interface AssistantFieldDescription {
|
|
|
24
24
|
options?: string[];
|
|
25
25
|
/** Present for `relation`: the collection an id has to come from. */
|
|
26
26
|
relationTo?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Present for `list`: the fields of one row. The value is an array of
|
|
29
|
+
* objects with these keys, written whole.
|
|
30
|
+
*/
|
|
31
|
+
rowFields?: {
|
|
32
|
+
name: string;
|
|
33
|
+
type: string;
|
|
34
|
+
required: boolean;
|
|
35
|
+
options?: string[];
|
|
36
|
+
}[];
|
|
27
37
|
/** `false` means the actor may read it but not write it. */
|
|
28
38
|
writable: boolean;
|
|
29
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/ai/assistant/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIhF;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,GAAG,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAC9C,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EAAE,GAChB,eAAe,CAkBjB;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/ai/assistant/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIhF;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACpF,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,GAAG,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3E;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAC9C,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EAAE,GAChB,eAAe,CAkBjB;AAwGD,wEAAwE;AACxE,wBAAgB,aAAa,CAC3B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAUT;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAGT;AA4BD,wBAAgB,UAAU,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAYxE"}
|
package/dist/ai/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/ai/service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAYV,KAAK,EACN,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMvE,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,gFAAgF;IAChF,GAAG,IAAI,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/ai/service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAYV,KAAK,EACN,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAEV,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMvE,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,gFAAgF;IAChF,GAAG,IAAI,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,KAAK,CA2dzD"}
|
package/dist/ai.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index-
|
|
1
|
+
import"./index-a1jv6396.js";import{pe,Z,Le,me,Ct,Ao,ko,Ro,ro,io,so}from"./index-63x90ejh.js";import"./index-axpzy2hj.js";import"./index-6m1kjq9g.js";import{Rn,Sn,Qn,Ke,xt}from"./index-1xz3pmtk.js";export{Le as aiActionsFor,io as altAction,Sn as assertModelExists,Rn as authTypesForAiProvider,Ct as customAiAction,pe as defineAiAction,xt as describeCmsFor,Ao as generateAction,Z as getAiAction,ko as improveAction,Qn as modelsForProvider,Ke as piCompletion,me as registeredAiActions,Ro as summarizeAction,so as tagsAction,ro as translateAction};
|
package/dist/auth.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index-6m1kjq9g.js";import{_e}from"./index-
|
|
1
|
+
import"./index-6m1kjq9g.js";import{_e}from"./index-axpzy2hj.js";import{Nn,$t,Un,Jn,Qo,cn,be,dn,un}from"./index-eqfcxn71.js";import{Pe,pn,we,re,ie}from"./index-p2cqsmvw.js";import{w}from"./index-rw0hze6x.js";import{n}from"./index-x72d1hzh.js";function o(e){if(e.methods.length===0)throw new n("admin.auth.methods","at least one sign-in method is required");for(let[s,t]of[["session",e.session?.expiresIn],["invites",e.invites?.expiresIn],["magicLink",e.magicLink?.expiresIn],["passwordReset",e.passwordReset?.expiresIn],["apiKeys",e.apiKeys?.expiresIn]])if(t)w(t,`admin.auth.${s}.expiresIn`);for(let s of e.apiKeys?.scopes??[])if(!_e(s))throw new n("admin.auth.apiKeys.scopes",`"${s}" is not a scope; use "read", "write", "delete", "*" or "collection:action"`);let i=e.firstUser;if(typeof i==="object"){let s=i.roles;if(s!==void 0&&s.length===0)throw new n("admin.auth.firstUser.roles","the first account needs at least one role")}if(i!==void 0&&i!==!1&&!e.methods.includes("password"))throw new n("admin.auth.firstUser",'the first account signs in with a password; add "password" to methods, or set firstUser: false');let r=e.password?.minLength;if(r!==void 0&&r<8)throw new n("admin.auth.password.minLength","must be at least 8");return{kind:"cms-users",...e}}function a(e){if(!/^https?:\/\//.test(e.issuer))throw new n("admin.auth.sso.issuer","must be an HTTP(S) issuer URL");return{kind:"oidc",...e}}export{dn as apiKeyPrefix,ie as base64url,Nn as builtinProviders,o as cmsUsers,un as createAuth,$t as decodeIdToken,Un as generateTotpSecret,Pe as hashPassword,re as hashToken,a as oidc,we as randomToken,be as sessionCookieName,Qo as totpCode,Jn as totpUri,pn as verifyPassword,cn as verifyTotp};
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import"./index-
|
|
2
|
+
import"./index-axpzy2hj.js";import"./index-6m1kjq9g.js";import"./index-abfzb1ve.js";import"./index-b79c3k6g.js";import"./index-a1jv6396.js";import"./index-63x90ejh.js";import"./index-wbc2xh4h.js";import"./index-zyg6bfdq.js";import{an,Dn,qn,Ln}from"./index-mpkhjgvk.js";import{Ut,Jt,yn}from"./index-szaq03qq.js";import{Dt,qt,Lt,Ft,Nt}from"./index-dtwe2z69.js";import"./index-1xz3pmtk.js";import"./index-91fa1gzf.js";import"./index-eqfcxn71.js";import{createRequire as C}from"node:module";var m=C(import.meta.url);import{createReadStream as b,createWriteStream as v}from"node:fs";import{readFile as p,stat as k}from"node:fs/promises";import{isAbsolute as I,resolve as l}from"node:path";import{pathToFileURL as M}from"node:url";import{randomBytes as P}from"node:crypto";var g=`
|
|
3
3
|
heyo-cms generate [--name <name>] write a migration for what changed
|
|
4
4
|
heyo-cms migrate apply pending migrations
|
|
5
5
|
heyo-cms status show applied, pending and unplanned changes
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAGV,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AA4CpB;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,YAAY,EAC3D,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC7C,oBAAoB,CAAC,OAAO,CAAC,CAE/B;AAED,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,OAAO,SAAS,YAAY,EACvD,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/D,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC9C,GACA,gBAAgB,CAAC,OAAO,CAAC,CAE3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,KAAK,CAAC,YAAY,SAAS,iBAAiB,EAC5C,KAAK,CAAC,QAAQ,SAAS,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE5D,MAAM,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAC5C,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAqQrC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAGV,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AA4CpB;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,YAAY,EAC3D,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC7C,oBAAoB,CAAC,OAAO,CAAC,CAE/B;AAED,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,OAAO,SAAS,YAAY,EACvD,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/D,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC9C,GACA,gBAAgB,CAAC,OAAO,CAAC,CAE3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,KAAK,CAAC,YAAY,SAAS,iBAAiB,EAC5C,KAAK,CAAC,QAAQ,SAAS,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE5D,MAAM,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAC5C,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAqQrC;AAy7BD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,SAAW,GAAG,KAAK,CAEhD"}
|
package/dist/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Vn,Gn,Kn,yt}from"./index-
|
|
1
|
+
import{Vn,Gn,Kn,yt}from"./index-b79c3k6g.js";import"./index-zyg6bfdq.js";import"./index-1xz3pmtk.js";import"./index-wbc2xh4h.js";import"./index-91fa1gzf.js";import"./index-63x90ejh.js";import"./index-a1jv6396.js";import{ge,et,tt}from"./index-y8kzzn94.js";import"./index-abfzb1ve.js";import"./index-eqfcxn71.js";import"./index-axpzy2hj.js";import"./index-6m1kjq9g.js";export{et as defaultAdminPath,ge as defaultBasePath,tt as defaultMigrationsDirectory,Vn as defineCollection,Gn as defineGlobal,Kn as heyoCms,yt as systemActor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/content/import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AAC3D,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,8EAA8E;IAC9E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,EAC/D,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA6CvB;AA2HD,UAAU,SAAS;IACjB,yEAAyE;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,SAAS,
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/content/import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AAC3D,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,8EAA8E;IAC9E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,EAC/D,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA6CvB;AA2HD,UAAU,SAAS;IACjB,yEAAyE;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,SAAS,CAgCX"}
|
package/dist/content.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index-
|
|
1
|
+
import"./index-axpzy2hj.js";import"./index-6m1kjq9g.js";import"./index-abfzb1ve.js";import"./index-b79c3k6g.js";import"./index-a1jv6396.js";import"./index-63x90ejh.js";import"./index-wbc2xh4h.js";import"./index-zyg6bfdq.js";import{at,ze,Bn,Dt,qt,Lt,Ft,Nt,gn}from"./index-dtwe2z69.js";import"./index-1xz3pmtk.js";import"./index-91fa1gzf.js";import"./index-eqfcxn71.js";export{Ft as exportContent,at as exportFormat,ze as exportVersion,Nt as importContent,Bn as parseRecord,Dt as readRecords,Lt as serializeRecord,gn as splitLocales,qt as toLines};
|
package/dist/editor.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{So,To,Co,Oo,Po,_o,$o,Io,
|
|
1
|
+
import{So,To,Co,Oo,Po,_o,$o,jo,Io,Eo,Mo,Do,qo,Lo,Fo,No,Uo,Jo,Wo,zo,Ho,Bo,Vo,he,En}from"./index-a1jv6396.js";import{k,Y,Ot,rn,ao,lo,Te,Q,co,X,uo,Fe,Go,Ne,Xe,ee}from"./index-ptttzgtp.js";export{Oo as blockquoteNode,Jo as boldMark,Po as bulletListNode,Eo as codeBlockNode,Bo as codeMark,Y as defineEditorMark,k as defineEditorNode,Te as describeEditorSchema,So as docNode,Fe as escapeHtml,Go as escapeMarkdown,rn as getEditorMark,Ot as getEditorNode,Do as hardBreakNode,Co as headingNode,Mo as horizontalRuleNode,Ne as htmlAttributes,qo as imageNode,Xe as indentContinuation,Wo as italicMark,Vo as linkMark,$o as listItemNode,_o as orderedListNode,To as paragraphNode,lo as registeredEditorMarks,ao as registeredEditorNodes,Q as renderRichText,he as richTextFromMarkdown,En as richTextFromText,co as richTextToHtml,X as richTextToMarkdown,uo as richTextToPlainText,Ho as strikeMark,ee as stringAttr,Uo as tableCellNode,No as tableHeaderNode,Lo as tableNode,Fo as tableRowNode,Io as taskItemNode,jo as taskListNode,zo as underlineMark};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/engine/documents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAEnB;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,YAC/B,IAAI,EACJ,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,CACP,CAAC;AAIX;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,aAAa,GACpB,UAAU,CA2DZ;AAED,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,UAAU,GACpB,UAAU,CA+BZ;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EAAE,GACf,IAAI,
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/engine/documents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAEnB;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,YAC/B,IAAI,EACJ,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,CACP,CAAC;AAIX;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,aAAa,GACpB,UAAU,CA2DZ;AAED,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,UAAU,GACpB,UAAU,CA+BZ;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EAAE,GACf,IAAI,CA2BN;AAwBD,sEAAsE;AACtE,wBAAgB,aAAa,CAC3B,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,UAAU,GACf,MAAM,EAAE,CAIV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAWpD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI,CAQ9D;AAsBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAGjE;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAInE;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GACzC,UAAU,CAKZ"}
|
package/dist/fields/builtin.d.ts
CHANGED
|
@@ -95,6 +95,10 @@ export interface RelationOptions extends FieldOptions {
|
|
|
95
95
|
/** Many-to-many: the value is an array of ids. */
|
|
96
96
|
many?: boolean;
|
|
97
97
|
}
|
|
98
|
+
/** The stored value of a relation: a list of ids with `many: true`, one id otherwise. */
|
|
99
|
+
type RelationValue<TOptions> = TOptions extends {
|
|
100
|
+
many: true;
|
|
101
|
+
} ? string[] : string;
|
|
98
102
|
/**
|
|
99
103
|
* A reference to another collection.
|
|
100
104
|
*
|
|
@@ -102,7 +106,7 @@ export interface RelationOptions extends FieldOptions {
|
|
|
102
106
|
* depth level works the same on all three engines and removes the N+1 problem
|
|
103
107
|
* that Payload users hit with `depth` (section 12).
|
|
104
108
|
*/
|
|
105
|
-
export declare function relation<const TOptions extends RelationOptions>(to: string, options?: TOptions): FieldDefinition<FieldValue<
|
|
109
|
+
export declare function relation<const TOptions extends RelationOptions>(to: string, options?: TOptions): FieldDefinition<FieldValue<RelationValue<TOptions>, TOptions>>;
|
|
106
110
|
export interface SlugOptions extends FieldOptions {
|
|
107
111
|
/**
|
|
108
112
|
* The field a slug is made from while it is empty: `"title"`.
|
|
@@ -153,6 +157,44 @@ export interface SlugOptions extends FieldOptions {
|
|
|
153
157
|
export declare function slug<const TOptions extends SlugOptions>(options?: TOptions): FieldDefinition<FieldValue<string, TOptions>>;
|
|
154
158
|
export declare const email: import("./registry").FieldBuilder<string, TextOptions>;
|
|
155
159
|
export declare const url: import("./registry").FieldBuilder<string, TextOptions>;
|
|
160
|
+
export interface ListOptions extends FieldOptions {
|
|
161
|
+
/**
|
|
162
|
+
* The fields of one row:
|
|
163
|
+
* `{ question: text({ required: true }), answer: textarea() }`.
|
|
164
|
+
*/
|
|
165
|
+
fields: Record<string, FieldDefinition>;
|
|
166
|
+
minItems?: number;
|
|
167
|
+
maxItems?: number;
|
|
168
|
+
default?: JsonObject[];
|
|
169
|
+
}
|
|
170
|
+
type RowValue<TField> = TField extends FieldDefinition<infer TValue> ? TValue : never;
|
|
171
|
+
/** One row of a list: a required field is always there, an optional one may be missing or `null`. */
|
|
172
|
+
export type ListRow<TFields extends Record<string, FieldDefinition>> = {
|
|
173
|
+
[K in keyof TFields as null extends RowValue<TFields[K]> ? never : K]: RowValue<TFields[K]>;
|
|
174
|
+
} & {
|
|
175
|
+
[K in keyof TFields as null extends RowValue<TFields[K]> ? K : never]?: RowValue<TFields[K]>;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* An ordered list of rows, each with the same small set of fields: questions
|
|
179
|
+
* and answers, sources, a change log.
|
|
180
|
+
*
|
|
181
|
+
* ```ts
|
|
182
|
+
* faq: list({
|
|
183
|
+
* localized: true,
|
|
184
|
+
* fields: {
|
|
185
|
+
* question: text({ required: true }),
|
|
186
|
+
* answer: textarea({ required: true }),
|
|
187
|
+
* },
|
|
188
|
+
* }),
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* The value is an array of objects, stored as JSON in the document and
|
|
192
|
+
* validated row by row with the fields' own schemas. The list is the field:
|
|
193
|
+
* it is localized as a whole, and it carries `required`, `access` and the
|
|
194
|
+
* rest. A row holds text, textarea, email, url, number, boolean, date, select
|
|
195
|
+
* and multiselect fields.
|
|
196
|
+
*/
|
|
197
|
+
export declare function list<const TOptions extends ListOptions>(options: TOptions): FieldDefinition<FieldValue<ListRow<TOptions["fields"]>[], TOptions>>;
|
|
156
198
|
/**
|
|
157
199
|
* SEO as fields, not as a plugin.
|
|
158
200
|
*
|
|
@@ -166,4 +208,5 @@ export declare function seoFields(): {
|
|
|
166
208
|
ogImage: FieldDefinition<string | null>;
|
|
167
209
|
canonical: FieldDefinition<string | null>;
|
|
168
210
|
};
|
|
211
|
+
export {};
|
|
169
212
|
//# sourceMappingURL=builtin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../src/fields/builtin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../src/fields/builtin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/fields/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,QAAQ,IAAI,QAAQ,SAAS;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAC1E,MAAM,GACN,MAAM,GAAG,IAAI,CAAC;AAElB,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,SAAS,YAAY,IAAI,CAChE,KAAK,CAAC,MAAM,SAAS,QAAQ,EAE7B,OAAO,CAAC,EAAE,MAAM,KACb,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAUjD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,SAAS,YAAY,EACrE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,GAChC,IAAI,CASN;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAG,OAAO,EAC3C,IAAI,EAAE,MAAM,GACX,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAE7C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,SAAS,YAAY,EAC/D,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,GAChC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/fields/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,eAAe,EACf,YAAY,EACZ,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,QAAQ,IAAI,QAAQ,SAAS;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAC1E,MAAM,GACN,MAAM,GAAG,IAAI,CAAC;AAElB,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,SAAS,YAAY,IAAI,CAChE,KAAK,CAAC,MAAM,SAAS,QAAQ,EAE7B,OAAO,CAAC,EAAE,MAAM,KACb,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAUjD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,SAAS,YAAY,EACrE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,GAChC,IAAI,CASN;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAG,OAAO,EAC3C,IAAI,EAAE,MAAM,GACX,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAE7C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,SAAS,YAAY,EAC/D,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,GAChC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CA4FhC"}
|
package/dist/fields.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Mn,sn,ye}from"./index-abfzb1ve.js";import{po,Ko,
|
|
1
|
+
import{Mn,sn,ye}from"./index-abfzb1ve.js";import{po,Ko,Zo,C}from"./index-vf163r10.js";import{n}from"./index-x72d1hzh.js";import{z as e}from"zod";var o=e.looseObject({label:e.string().optional(),description:e.string().optional(),localized:e.boolean().optional(),required:e.boolean().optional(),unique:e.boolean().optional(),index:e.boolean().optional(),readOnly:e.boolean().optional()}),d=e.lazy(()=>e.union([e.string(),e.number(),e.boolean(),e.null(),e.array(d),e.record(e.string(),d)])),O=C({name:"text",optionsSchema:o.extend({default:e.string().optional(),minLength:e.number().int().nonnegative().optional(),maxLength:e.number().int().positive().optional(),pattern:e.string().optional()}),schema:(t)=>{let i=e.string();if(t.minLength!==void 0)i=i.min(t.minLength);if(t.maxLength!==void 0)i=i.max(t.maxLength);if(t.pattern!==void 0)i=i.regex(new RegExp(t.pattern));return i},column:(t)=>({type:"text",...t.default===void 0?{}:{default:t.default}}),aiActions:["improve","summarize","translate"]}),y=C({name:"textarea",optionsSchema:o.extend({default:e.string().optional(),maxLength:e.number().int().positive().optional(),rows:e.number().int().positive().optional()}),schema:(t)=>t.maxLength===void 0?e.string():e.string().max(t.maxLength),column:()=>({type:"text"}),aiActions:["improve","summarize","translate"]}),j=C({name:"richText",optionsSchema:o.extend({nodes:e.array(e.string()).optional()}),schema:()=>e.looseObject({type:e.string()}),column:()=>({type:"json"}),aiActions:["improve","summarize","translate"]}),I=C({name:"number",optionsSchema:o.extend({default:e.number().optional(),min:e.number().optional(),max:e.number().optional(),integer:e.boolean().optional()}),schema:(t)=>{let i=t.integer===!0?e.number().int():e.number();if(t.min!==void 0)i=i.min(t.min);if(t.max!==void 0)i=i.max(t.max);return i},column:(t)=>({type:t.integer===!0?"integer":"real",...t.default===void 0?{}:{default:t.default}})}),Z=C({name:"boolean",optionsSchema:o.extend({default:e.boolean().optional()}),schema:()=>e.boolean(),column:(t)=>({type:"boolean",...t.default===void 0?{}:{default:t.default}})}),v=C({name:"date",optionsSchema:o.extend({default:e.string().optional(),mode:e.enum(["date","datetime"]).optional()}),schema:()=>e.string().refine((t)=>!Number.isNaN(Date.parse(t)),"must be an ISO 8601 date"),column:()=>({type:"timestamp"})}),f=(t)=>t.map((i)=>typeof i==="string"?i:i.value),x=o.extend({options:e.array(e.union([e.string(),e.strictObject({label:e.string(),value:e.string()})])).min(1),default:e.string().optional()}),T=C({name:"select",optionsSchema:x,schema:(t)=>e.enum(f(t.options)),column:(t)=>({type:"text",...t.default===void 0?{}:{default:t.default}})});function J(t){return T(t)}var h=C({name:"multiselect",optionsSchema:x.extend({default:e.array(e.string()).optional(),minItems:e.number().int().nonnegative().optional(),maxItems:e.number().int().positive().optional()}),schema:(t)=>{let i=e.array(e.enum(f(t.options)));if(t.minItems!==void 0)i=i.min(t.minItems);if(t.maxItems!==void 0)i=i.max(t.maxItems);return i},column:()=>({type:"json",array:!0}),aiActions:["tags"]});function q(t){return h(t)}var B=C({name:"json",optionsSchema:o,schema:()=>d,column:()=>({type:"json"})}),b=C({name:"media",optionsSchema:o.extend({accept:e.string().optional()}),schema:()=>e.string().min(1),column:()=>({type:"text"}),aiActions:["alt"]}),F=C({name:"relation",optionsSchema:o.extend({relationTo:e.string().min(1),many:e.boolean().optional()}),schema:(t)=>t.many===!0?e.array(e.string().min(1)):e.string().min(1),column:(t)=>({type:"text",...t.many===!0?{type:"json",array:!0}:{}}),aiActions:["tags"]});function A(t,i){return F({...i??{},relationTo:t})}var w=C({name:"slug",optionsSchema:o.extend({from:e.string().min(1).optional(),history:e.boolean().optional(),maxLength:e.number().int().min(8).max(512).optional(),slugify:e.function().optional(),default:e.string().optional()}),schema:(t)=>e.string().max(t.maxLength??96).regex(new RegExp(Mn),"lowercase letters, digits and single hyphens only"),column:(t)=>({type:"text",...t.default===void 0?{}:{default:t.default}})});function K(t){let i={...t??{}},s=i.localized===!0,{maxLength:l,from:a}=i,r=i.slugify??((u)=>ye(u,l===void 0?{}:{maxLength:l}));return w({...i,unique:s?i.unique===!1?!1:void 0:i.unique??!0,index:s?void 0:i.index??!0,...i.generate===void 0&&a!==void 0?{generate:({fields:u})=>{let p=u[a],m=typeof p==="string"?r(p):"";return m===""?null:m}}:{}})}var E=C({name:"email",optionsSchema:o,schema:()=>e.string().email(),column:()=>({type:"text"})}),S=C({name:"url",optionsSchema:o,schema:()=>e.string().url(),column:()=>({type:"text"})}),c=new Set(["text","textarea","email","url","number","boolean","date","select","multiselect"]),V=["localized","unique","index","access","generate","aiGenerate","ai"],g=(t)=>typeof t==="object"&&t!==null&&typeof t.type==="string"&&typeof t.schema?.safeParse==="function",z=C({name:"list",optionsSchema:o.extend({fields:e.record(e.string(),e.custom(g,"must be a field, such as text()")),minItems:e.number().int().nonnegative().optional(),maxItems:e.number().int().positive().optional(),default:e.array(e.record(e.string(),d)).optional()}),schema:(t)=>{let i={};for(let[l,a]of Object.entries(t.fields))i[l]=a.required?a.schema:a.schema.optional();let s=e.array(e.strictObject(i));if(t.minItems!==void 0)s=s.min(t.minItems);if(t.maxItems!==void 0)s=s.max(t.maxItems);return s},column:()=>({type:"json",array:!0})});function M(t){let i=t?.fields;if(!i||typeof i!=="object"||Object.keys(i).length===0)throw new n("fields.list.fields","a list needs at least one field in a row");for(let[s,l]of Object.entries(i)){let a=`fields.list.fields.${s}`;if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(s))throw new n(a,"a row's field name must be an identifier (letters, digits, _)");if(!g(l))throw new n(a,"must be a field, such as text()");if(!c.has(l.type))throw new n(a,`a list row cannot hold a ${l.type} field; use ${[...c].join(", ")}`);for(let r of V)if(l.options[r]!==void 0)throw new n(`${a}.${r}`,r==="localized"?"a list is localized as a whole: set localized on the list":"not supported inside a list row")}if(t.unique===!0||t.index===!0)throw new n("fields.list","a list cannot be unique or indexed");if(t.minItems!==void 0&&t.maxItems!==void 0&&t.minItems>t.maxItems)throw new n("fields.list.minItems","cannot be more than maxItems");return z(t)}function N(){return{seoTitle:O({label:"SEO title",localized:!0,maxLength:70,aiGenerate:{label:"Suggest an SEO title",prompt:"Write a search-friendly title under 60 characters."}}),seoDescription:y({label:"SEO description",localized:!0,maxLength:160,aiGenerate:{label:"Suggest an SEO description",prompt:"Summarise the article in one sentence under 155 characters."}}),ogImage:b({label:"Social image",accept:"image/*"}),canonical:S({label:"Canonical URL"})}}export{Z as boolean,v as date,C as defineField,E as email,Ko as getFieldType,sn as isSlug,B as json,M as list,b as media,q as multiselect,I as number,po as registerFieldType,Zo as registeredFieldTypes,A as relation,j as richText,J as select,N as seoFields,K as slug,Mn as slugPattern,ye as slugify,O as text,y as textarea,S as url};
|
package/dist/http/routes/ai.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ import type { RouteRecord } from "../router";
|
|
|
18
18
|
* POST /ai/assistant (SSE)
|
|
19
19
|
* POST /ai/assistant/plans/:id/approve
|
|
20
20
|
*
|
|
21
|
-
* The per-field routes exist only when a field declares `aiGenerate` or
|
|
21
|
+
* The per-field routes exist only when a field declares `aiGenerate` or an `ai` action.
|
|
22
22
|
* A deployment with no AI has no AI endpoints, which is what
|
|
23
23
|
* `cms.inspect().routes` should say (section 8).
|
|
24
24
|
*/
|
package/dist/http.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index-6m1kjq9g.js";import"./index-
|
|
1
|
+
import"./index-6m1kjq9g.js";import"./index-axpzy2hj.js";import"./index-a1jv6396.js";import{Ze,g,Ye,y,I,On,Xn,eo,P,G,i,Pn,oe,K,St,Xt,f,De,v,W,Re,o,c,a,q,_n,h,r,N,Tt,$n,jn,Se,qe}from"./index-wbc2xh4h.js";import"./index-63x90ejh.js";import"./index-91fa1gzf.js";import"./index-eqfcxn71.js";export{Se as Router,G as booleanParam,$n as buildOpenApi,qe as createCmsHttp,St as errorResponse,On as findArgs,P as integerParam,i as json,h as jsonBody,_n as listParams,q as localeParams,oe as noContent,r as okJson,W as optionalString,Re as optionalStringArray,eo as parseSort,Xn as parseWhere,c as pathParam,a as queryParam,I as readArgs,Xt as readJson,f as readJsonObject,Tt as readResponses,o as ref,jn as requestDb,y as requestSource,Ze as requireActor,De as requireData,g as requirePermission,Ye as requireSession,v as requireString,K as stopped,Pn as text,N as writeResponses};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{Z,Le,Ct,_,j}from"./index-63x90ejh.js";import{l}from"./index-axpzy2hj.js";import{t}from"./index-6m1kjq9g.js";import{d}from"./index-9g2n7xa6.js";import{X}from"./index-ptttzgtp.js";import{ie,mn}from"./index-p2cqsmvw.js";import{b}from"./index-8nzmqy0f.js";import{e}from"./index-x72d1hzh.js";var K="v1",ee=12;async function L(n){if(n.length<16)throw new e("ai.storage.secret must be at least 16 characters; it encrypts provider keys.",{status:500,code:"ai_secret_too_short"});let i=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(n));return crypto.subtle.importKey("raw",i,{name:"AES-GCM"},!1,["encrypt","decrypt"])}async function M(n,i){let r=await L(i),a=crypto.getRandomValues(new Uint8Array(ee)),c=await crypto.subtle.encrypt({name:"AES-GCM",iv:a},r,new TextEncoder().encode(n));return[K,ie(a),ie(new Uint8Array(c))].join(".")}async function I(n,i){let[r,a,c]=n.split(".");if(r!==K||!a||!c)throw new e("A stored provider key is not in a format this version can read.",{status:500,code:"ai_credential_unreadable"});let s=await L(i);try{let m=await crypto.subtle.decrypt({name:"AES-GCM",iv:mn(a)},s,mn(c));return new TextDecoder().decode(m)}catch{throw new e("A stored provider key could not be decrypted; ai.storage.secret has probably changed. Re-enter the key in the panel.",{status:500,code:"ai_credential_unreadable"})}}function E(n){return n.length<=4?"****":`…${n.slice(-4)}`}var z;async function F(){return z??=import("@mariozechner/pi-ai").catch(()=>{throw new e('AI needs "@mariozechner/pi-ai". Install it, or set ai.complete to your own implementation.',{status:500,code:"ai_runtime_missing"})}),z}async function kn(n){let{getModel:i}=await F(),r;try{r=i(n.provider,n.model)}catch{r=void 0}if(r)return r;throw await Sn(n.provider,n.model),new e(`pi could not resolve ${n.provider}/${n.model}.`,{status:500,code:"ai_unknown_model"})}function V(n,i){let r=Rn(n);if(r.includes(i.type))return;throw new e(`The provider "${n}" needs ${r.map((a)=>`"${a}"`).join(" or ")} credentials.`,{status:500,code:"ai_auth_mismatch"})}async function Yn(n,i){switch(V(n,i),i.type){case"api-key":return{getApiKey:()=>i.token};case"oauth":return{getApiKey:()=>i.getAccessToken()};case"aws":{let{streamSimple:r}=await F();return{streamFn:(a,c,s)=>r(a,c,{...s,region:i.region,...i.accessKeyId===void 0?{}:{accessKeyId:i.accessKeyId},...i.secretAccessKey===void 0?{}:{secretAccessKey:i.secretAccessKey}})}}}}var te=new Set(["github-copilot","openai-codex"]);function Rn(n){if(n==="amazon-bedrock")return["aws"];if(te.has(n))return["oauth"];return["api-key"]}async function Sn(n,i){let{getModel:r,getProviders:a}=await F();try{if(r(n,i))return}catch{}if(!a().includes(n))throw new e(`The AI provider "${n}" is not in pi's catalogue.`,{status:400,code:"ai_unknown_provider"});throw new e(`The provider "${n}" has no model called "${i}".`,{status:400,code:"ai_unknown_model"})}async function Qn(n){try{let{getModels:i}=await F();return i(n).map((r)=>r.id)}catch{return[]}}var Ke=async(n)=>{let{complete:i,stream:r}=await F(),{model:a,auth:c}=n;V(a.provider,c);let s=await kn(a),m={systemPrompt:n.system,messages:[{role:"user",content:[{type:"text",text:n.prompt},...(n.images??[]).map((u)=>({type:"image",data:ne(u.data),mimeType:u.contentType}))],timestamp:Date.now()}]},f={...n.maxTokens===void 0?{}:{maxTokens:n.maxTokens},...n.signal===void 0?{}:{signal:n.signal},...c.type==="api-key"?{apiKey:c.token}:{},...c.type==="oauth"?{apiKey:await c.getAccessToken()}:{},...c.type==="aws"?{region:c.region,...c.accessKeyId===void 0?{}:{accessKeyId:c.accessKeyId},...c.secretAccessKey===void 0?{}:{secretAccessKey:c.secretAccessKey}}:{}},A=await i(s,m,f);if(A.stopReason==="error"||A.errorMessage)throw new e(A.errorMessage??"The model returned an error.",{status:502,code:"ai_provider_error"});return{text:A.content.filter((u)=>u.type==="text").map((u)=>u.text).join(""),usage:Tn(A.usage)}};function Tn(n){return{input:n.input??0,output:n.output??0,total:n.totalTokens??(n.input??0)+(n.output??0),cost:n.cost?.total??0}}function ne(n){let i="";for(let r of n)i+=String.fromCharCode(r);return btoa(i)}async function q(n){let i={input:0,output:0,total:0,cost:0},r=async(s)=>{if(!s.trim())return s;let m=await n.complete({system:"Translate CMS text. Answer with the translation only, without quotes or a preamble. Keep names, placeholders and URLs intact.",prompt:`Translate from ${n.sourceLocale} to ${n.locale}. This text belongs to the ${n.fieldName} field:
|
|
2
|
+
|
|
3
|
+
${s}`,...n.signal===void 0?{}:{signal:n.signal}});i.input+=m.usage.input,i.output+=m.usage.output,i.total+=m.usage.total,i.cost+=m.usage.cost;let f=m.text.trim();if(!f)throw Error(`AI returned an empty translation for ${n.fieldName}.`);let A=s.slice(0,s.length-s.trimStart().length),o=s.slice(s.trimEnd().length);return`${A}${f}${o}`},a=async(s)=>{if(Array.isArray(s)){let f=[];for(let A of s)f.push(await a(A));return f}if(!s||typeof s!=="object")return s;let m={...s};if(s.type==="text"&&typeof s.text==="string")m.text=await r(s.text);if(s.type==="image"&&s.attrs&&typeof s.attrs==="object"&&!Array.isArray(s.attrs)){let f={...s.attrs};for(let A of["alt","title"])if(typeof f[A]==="string")f[A]=await r(f[A]);m.attrs=f}if(Array.isArray(s.content))m.content=await a(s.content);return m},c=await a(n.value);return{value:c,preview:X(c),usage:i}}var k="cms_ai_credentials";function Rt(n){let{config:i}=n,r=i.ai?.complete??Ke,a=async(o)=>{try{return await r(o)}catch(u){if(u instanceof e)throw u;if(o.signal?.aborted)throw new e("The request was cancelled.",{status:499,code:"ai_aborted",cause:u});let p=u instanceof Error?u.message:"The AI provider could not complete the request.";throw new e(p,{status:502,code:"ai_provider_error",cause:u})}},c=()=>{let o=i.ai;if(!o)throw new e("This deployment has no `ai` section, so AI is switched off.",{status:501,code:"ai_disabled"});return o},s=(o)=>{let u={...i.collections,...i.globals},p=u[o];if(p)return p;let y=Object.values(u).find((h)=>h.slug===o);if(y)return y;throw e.notFound(`No collection called "${o}".`)},m=async(o)=>{let u=c(),p=await oe(n,o);if(p)return{type:"api-key",token:p};let y=u.auth?.[o];if(y)return y;throw new e(`No credentials for the AI provider "${o}". Add them to ai.auth or store them in the panel.`,{status:500,code:"ai_credentials_missing"})},f=async(o)=>{if(!i.uploads)return null;try{let u=await n.cms().media.variant({id:o});if(!u||!u.contentType.startsWith("image/"))return null;let p=new Uint8Array(await new Response(u.body).arrayBuffer());return{contentType:u.contentType,data:p}}catch{return null}},A=async(o,u,p,y)=>{await(await n.database()).transaction((g)=>n.emit(g,[{type:o,data:y===void 0?u:{...u,error:y instanceof Error?y.message:String(y)},previous:null}],{actor:p,...typeof u.collection==="string"?{collection:u.collection}:{},...typeof u.documentId==="string"?{documentId:u.documentId}:{}})),n.deliver()};return{get enabled(){return i.ai!==void 0},get assistantEnabled(){return i.ai!==void 0&&i.ai.assistant?.enabled!==!1},actions(o){return Le(o)},async run(o){let u=c(),p=s(o.collection),y=o.actor??null,h=o.locale??i.i18n.defaultLocale,g=p.fields[o.field];if(!g)throw e.notFound(`"${o.field}" is not a field of ${p.name}.`);let x=o.action==="generate"?g.aiGenerate:g.ai?.[o.action],P=o.variantTranslation===!0&&o.action==="translate"&&g.localized&&["text","textarea","richText","email","url"].includes(g.type);if(x===void 0&&!P)throw e.notFound(`"${o.action}" is not configured on ${p.name}.${o.field}.`);let S=x===void 0||x===!0?{}:x,T=Z(o.action)??Ct(o.action,S.prompt??"");if(T.requiresLocalized&&!g.localized)throw e.validation(`"${o.action}" needs a localized field; ${p.name}.${o.field} stores one value for every language.`);let C=o.sourceLocale??(T.requiresLocalized?i.i18n.defaultLocale:h),{document:R,stored:D}=await U(n,p,o,h),G=T.requiresLocalized&&C!==h?(await U(n,p,o,C,o.variantTranslation===!0)).document:R;await _(p,{actor:y,operation:"update",locale:h,rbac:i.rbac,...D===void 0?{}:{record:D}}),j(p,{[o.field]:null},y,h);let H=re(p,y,h),W=(S.context??[]).filter((w)=>{if(!(w in p.fields))throw e.validation(`ai.context names "${w}", which is not a field of ${p.name}.`);return H.has(w)}),v=S.model??u.defaultModel,Q=await m(v.provider),J={action:o.action,value:G[o.field]??null,field:g,fieldName:o.field,collection:p,context:Object.fromEntries(W.map((w)=>[w,R[w]??null])),document:R,locale:h,sourceLocale:C,options:S,model:v,actor:y,loadImage:f,complete:(w)=>a({...w,model:v,auth:Q}),...o.signal===void 0?{}:{signal:o.signal}},Y=Date.now();try{let w=P&&g.type==="richText"?await q(J):await T.run(J);return await A("ai.task.completed",{collection:p.name,field:o.field,action:o.action,locale:h,provider:v.provider,model:v.model,usage:w.usage,durationMs:Date.now()-Y,...o.id===void 0?{}:{documentId:o.id}},y),{collection:p.name,field:o.field,action:o.action,value:w.value,preview:w.preview,model:v,usage:w.usage}}catch(w){throw await A("ai.task.failed",{collection:p.name,field:o.field,action:o.action,locale:h,provider:v.provider,model:v.model,...o.id===void 0?{}:{documentId:o.id}},y,w),w}},runAssistant(o){return async function*(){let{runAssistant:u}=await import("./run-rqmtv3cn.js");yield*u({args:o,config:i,cms:n.cms(),database:()=>n.database(),authFor:m,record:A})}()},approveAssistantPlan(o){return import("./run-rqmtv3cn.js").then(({approvePlan:u})=>u({args:o,config:i,cms:n.cms(),database:()=>n.database(),record:A}))},async providers(){let o=i.ai,u=new Map;for(let[y,h]of Object.entries(o?.auth??{}))u.set(y,{provider:y,configured:!0,source:"config",type:h.type,hint:null,updatedAt:null});if(o?.storage?.secret){let y=await n.database(),h=await y.transaction((g)=>y.query(g,{table:k}));for(let g of h)u.set(String(g.provider),{provider:String(g.provider),configured:!0,source:"database",type:"api-key",hint:g.hint===null||g.hint===void 0?null:String(g.hint),updatedAt:l(g.updated_at)})}let p=o?.defaultModel.provider;if(p&&!u.has(p))u.set(p,{provider:p,configured:!1,source:null,type:null,hint:null,updatedAt:null});return[...u.values()].sort((y,h)=>y.provider.localeCompare(h.provider))},async setCredential(o){let p=c().storage?.secret;if(!p)throw new e("Set ai.storage.secret to store provider keys in the database; without it keys can only come from ai.auth.",{status:501,code:"ai_storage_disabled"});let y=o.token.trim();if(y.length===0)throw e.validation("A provider key cannot be empty.");let h=await n.database(),g=new Date,x=await M(y,p),P=E(y);return await h.transaction(async(T)=>{let C=d(h,T);if(await C.findOne(k,t("provider",o.provider)))await C.update(k,t("provider",o.provider),{secret:x,hint:P,updated_at:g});else await C.insert(k,{id:b("aic"),provider:o.provider,auth_type:"api-key",secret:x,hint:P,created_at:g,updated_at:g});return{provider:o.provider,configured:!0,source:"database",type:"api-key",hint:P,updatedAt:g.toISOString()}})},async removeCredential(o){c();let u=await n.database();return u.transaction(async(p)=>await d(u,p).delete(k,t("provider",o.provider))>0)}}}async function oe(n,i){let r=n.config.ai?.storage?.secret;if(!r)return null;let a=await n.database(),c=await a.transaction(async(s)=>d(a,s).findOne(k,t("provider",i)));if(!c||typeof c.secret!=="string")return null;return I(c.secret,r)}async function U(n,i,r,a,c=!1){let s=n.cms(),m=r.actor??null,f;if(i.kind==="global"){let o=s.globals[i.name];if(o)f=await o.get({actor:m,locale:a,...c?{fallbackLocale:!1}:{}})}else if(r.id){let A=s.api[i.name],o=A?await A.findById(r.id,{actor:m,locale:a,...c?{fallbackLocale:!1}:{}}):null;if(!o)throw e.notFound(`No ${i.name} with id "${r.id}", or it is not readable.`);f=o}return{document:{...f??{},...r.document??{}},stored:f}}function re(n,i,r){let a=new Set;for(let[c,s]of Object.entries(n.fields)){let m=s.access?.read;if(m&&!m({actor:i,locale:r}))continue;a.add(c)}return a}function xt(n,i,r){let a=n.i18n.defaultLocale,c=Object.values(n.collections).map((f)=>B(f,i,a)).filter((f)=>f!==null),s=Object.values(n.globals).map((f)=>B(f,i,a)).filter((f)=>f!==null),m={collections:c,globals:s,defaultLocale:a,locales:r,media:n.uploads!==void 0,trash:n.trash.enabled};return{...m,fingerprint:ae(m)}}function B(n,i,r){if(!O(n,"read",i,r))return null;let a=[];for(let[c,s]of Object.entries(n.fields)){let m=s.access?.read;if(m&&!m({actor:i,locale:r}))continue;a.push(se(c,s,n,i,r))}return{name:n.name,slug:n.slug,label:n.label,kind:n.kind,titleField:kt(n),fields:a,can:{read:!0,create:n.kind==="collection"&&O(n,"create",i,r),update:O(n,"update",i,r),delete:n.kind==="collection"&&O(n,"delete",i,r)}}}function se(n,i,r,a,c){let s=i.options,m=N(s.options),f=i.type==="list"&&typeof s.fields==="object"&&s.fields!==null?Object.entries(s.fields).map(([A,o])=>{let u=N(o.options.options);return{name:A,type:o.type,required:o.required,...u&&u.length>0?{options:u}:{}}}):void 0;return{name:n,type:i.type,label:typeof s.label==="string"?s.label:n,required:i.required,localized:i.localized===!0,...m&&m.length>0?{options:m}:{},...i.relationTo===void 0?{}:{relationTo:i.relationTo},...f?{rowFields:f}:{},writable:At(r,n,a,c)}}function N(n){if(!Array.isArray(n))return;return n.map((i)=>typeof i==="string"?i:typeof i==="object"&&i!==null?String(i.value??""):"").filter((i)=>i.length>0)}function At(n,i,r,a){let c=n.fields[i];if(!c)return!1;if(c.options.readOnly===!0)return!1;try{return j(n,{[i]:null},r,a),!0}catch{return!1}}function Qt(n,i,r,a){let c=n.fields[i]?.access?.read;return c?c({actor:r,locale:a})===!0:!0}function O(n,i,r,a){let c=n.access[i];if(!c)return!0;try{let s=c({actor:r,operation:i,locale:a});if(s instanceof Promise)return!0;return s!==!1}catch{return!0}}function kt(n){let i=n.admin?.useAsTitle;if(i!==void 0&&n.fields[i])return i;for(let a of["title","name","label"])if(n.fields[a])return a;return Object.entries(n.fields).find(([,a])=>a.type==="text")?.[0]??null}function ae(n){let i=JSON.stringify(n),r=2166136261;for(let a=0;a<i.length;a+=1)r^=i.charCodeAt(a),r=Math.imul(r,16777619)>>>0;return r.toString(16).padStart(8,"0")}export{kn,Yn,Rn,Sn,Qn,Ke,Tn,xt,At,Qt,kt,Rt};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import{he}from"./index-
|
|
1
|
+
import{he}from"./index-a1jv6396.js";import{X}from"./index-ptttzgtp.js";import{jt,E}from"./index-axpzy2hj.js";import{e,n}from"./index-x72d1hzh.js";var p=new Map;function pe(t){if(!/^[a-z][a-z0-9-]*$/.test(t.id))throw new n(`ai.actions.${t.id}`,"an action id becomes a URL segment; use lowercase letters, digits and dashes");let i=p.get(t.id);if(i&&i!==t)throw new n(`ai.actions.${t.id}`,"a different action with this id is already registered");return p.set(t.id,t),t}function Z(t){return p.get(t)}function Le(t){return[...p.values()].filter((i)=>i.appliesTo.includes("*")||i.appliesTo.includes(t)).map((i)=>i.id).sort()}function me(){return[...p.keys()].sort()}function Ct(t,i){return{id:t,appliesTo:["*"],label:t,prompt:i,run:(r)=>u(r,i)}}var d=["text","textarea","richText","email","url"],Ao=pe({id:"generate",appliesTo:d,label:"Generate",prompt:"Write this field from the document below.",async run(t){return u(t,h(t))}}),ko=pe({id:"improve",appliesTo:d,label:"Improve",prompt:"Improve the current value: keep its meaning, tighten the wording, remove filler.",async run(t){let i=w(t);if(i.trim().length===0)throw e.validation(`There is nothing in ${t.fieldName} to improve yet.`);return u(t,[h(t),"","Current value:",i].join(`
|
|
2
2
|
`))}}),Ro=pe({id:"summarize",appliesTo:d,label:"Summarise",prompt:"Summarise the document below into this field.",async run(t){return u(t,h(t))}}),ro=pe({id:"translate",appliesTo:["*"],label:"Translate",prompt:"Translate the value into the target language.",requiresLocalized:!0,async run(t){let i=w(t);if(i.trim().length===0)throw e.validation(`${t.fieldName} is empty in ${t.sourceLocale??"the source language"}; there is nothing to translate.`);let r=[t.options.prompt??ro.prompt,`Source language: ${t.sourceLocale??"unknown"}.`,`Target language: ${t.locale??"unknown"}.`,"Keep formatting, links and names intact. Answer with the translation only.","",i].join(`
|
|
3
3
|
`);return u(t,r)}}),io=pe({id:"alt",appliesTo:["media"],label:"Describe the image",prompt:"Write alternative text for this image: one sentence, describing what is shown, no 'image of' preamble.",async run(t){let i=typeof t.value==="string"?t.value:null;if(!i)throw e.validation(`${t.fieldName} has no file selected yet.`);let r=await t.loadImage(i),o=await t.complete({system:f(t),prompt:[t.options.prompt??io.prompt,r===null?"The image itself is not available; infer from the surrounding content.":"",m(t)].filter((a)=>a.length>0).join(`
|
|
4
4
|
|
|
5
|
-
`),...r===null?{}:{images:[r]},...t.options.maxLength===void 0?{}:{maxTokens:v(t.options.maxLength)},...t.signal===void 0?{}:{signal:t.signal}}),s=b(o.text);return{value:s,preview:s,usage:o.usage}}}),so=pe({id:"tags",appliesTo:["multiselect","select","relation"],label:"Suggest values",prompt:"Choose the values that fit the document below.",async run(t){let i=
|
|
5
|
+
`),...r===null?{}:{images:[r]},...t.options.maxLength===void 0?{}:{maxTokens:v(t.options.maxLength)},...t.signal===void 0?{}:{signal:t.signal}}),s=b(o.text);return{value:s,preview:s,usage:o.usage}}}),so=pe({id:"tags",appliesTo:["multiselect","select","relation"],label:"Suggest values",prompt:"Choose the values that fit the document below.",async run(t){let i=T(t),r=await t.complete({system:f(t),prompt:[t.options.prompt??so.prompt,i.length>0?`Choose only from: ${i.join(", ")}.`:"Answer with short, lowercase values.","Answer with a comma-separated list and nothing else.",m(t)].join(`
|
|
6
6
|
|
|
7
7
|
`),...t.signal===void 0?{}:{signal:t.signal}}),o=r.text.split(/[,\n]/).map((l)=>l.trim().replace(/^[-*]\s*/,"")).filter((l)=>l.length>0),s=i.length===0?o:o.filter((l)=>i.includes(l));return{value:t.field.type==="multiselect"||t.field.options.many===!0?s:s[0]??null,preview:s.join(", "),usage:r.usage}}});async function u(t,i){let r=await t.complete({system:f(t),prompt:`${i}
|
|
8
8
|
|
|
9
9
|
${m(t)}`.trim(),...t.options.maxLength===void 0?{}:{maxTokens:v(t.options.maxLength)},...t.signal===void 0?{}:{signal:t.signal}}),o=r.text.trim();if(t.field.type==="richText")return{value:he(o),preview:o,usage:r.usage};let s=t.field.type==="textarea"?o:b(o),a=t.options.maxLength===void 0?s:s.slice(0,t.options.maxLength);return{value:a,preview:a,usage:r.usage}}function f(t){let i=[`You are an editorial assistant working inside a CMS. You are filling in the "${t.fieldName}" field of a "${t.collection.label}" document.`,`The field type is ${t.field.type}.`];if(t.field.type==="richText")i.push("Answer in Markdown. Do not wrap the answer in a code fence.");else i.push("Answer with the field value only: no preamble, no quotes, no Markdown fences.");if(t.locale)i.push(`Write in the "${t.locale}" locale.`);if(t.options.maxLength!==void 0)i.push(`Stay under ${t.options.maxLength} characters.`);return i.join(" ")}function m(t){let i=Object.entries(t.context).filter(([,r])=>r!==null&&r!==void 0&&r!=="");if(i.length===0)return"";return i.map(([r,o])=>`## ${r}
|
|
10
10
|
${g(o)}`).join(`
|
|
11
11
|
|
|
12
|
-
`)}function g(t){if(t===null||t===void 0)return"";if(typeof t==="string")return t;if(typeof t==="number"||typeof t==="boolean")return String(t);if(Array.isArray(t))return t.map(g).join(", ");if(typeof t==="object"&&t.type)return X(t);return JSON.stringify(t)}function h(t){let i=
|
|
13
|
-
`," ").replace(/\s{2,}/g," ").trim()}function v(t){return Math.max(64,Math.ceil(t/3)+32)}var
|
|
14
|
-
export{pe,
|
|
12
|
+
`)}function g(t){if(t===null||t===void 0)return"";if(typeof t==="string")return t;if(typeof t==="number"||typeof t==="boolean")return String(t);if(Array.isArray(t))return t.map(g).join(", ");if(typeof t==="object"&&t.type)return X(t);return JSON.stringify(t)}function h(t){let i=Z(t.action)?.prompt??"";return t.options.prompt??i}function w(t){return g(t.value)}function T(t){let i=t.field.options.options;if(!Array.isArray(i))return[];return i.filter((r)=>typeof r==="string")}function b(t){return t.replace(/^["'`]+|["'`]+$/g,"").replaceAll(`
|
|
13
|
+
`," ").replace(/\s{2,}/g," ").trim()}function v(t){return Math.max(64,Math.ceil(t/3)+32)}var k={read:"read",create:"create",update:"update",delete:"delete",restore:"delete",purge:"delete"};async function _(t,i){let r=t.access[k[i.operation]];if(!r){F(t,i);return}let o=await r({actor:i.actor,operation:i.operation,locale:i.locale,...i.record===void 0?{}:{record:i.record}});if(o===!0)return;if(o===!1)throw C(t,i);return o}function F(t,i){if(!i.rbac)return;let r=jt(t.name,i.operation);if(E(i.actor,r))return;throw C(t,i,r)}function C(t,i,r){let o=`${i.operation} ${t.name}`;return i.actor===null?e.unauthorized(`Not allowed to ${o}`):e.forbidden(r?`Not allowed to ${o}; the "${r}" permission is required`:`Not allowed to ${o}`)}var R=new WeakMap;function A(t){let i=R.get(t);if(i)return i;let r={read:[],update:[]};for(let[o,s]of Object.entries(t.fields)){if(s.access?.read)r.read.push(o);if(s.access?.update)r.update.push(o)}return R.set(t,r),r}function on(t){let i=A(t);return i.read.length>0||i.update.length>0}function fe(t,i,r,o){let s=A(i).read.filter((a)=>{let l=i.fields[a]?.access?.read;return l&&!l({actor:r,record:t,locale:o})});for(let a of["scheduledPatch","_fallback"]){let l=t[a];if(l&&typeof l==="object"&&!Array.isArray(l)){let c={...l};for(let y of s)delete c[y];t[a]=c}}if(Array.isArray(t._localeFields))t._localeFields=t._localeFields.filter((a)=>typeof a==="string"&&!s.includes(a));for(let a of s)delete t[a];return t}function j(t,i,r,o,s){let a=[];for(let l of A(t).update){if(!(l in i))continue;let c=t.fields[l]?.access?.update;if(!c)continue;if(!c({actor:r,locale:o,...s===void 0?{}:{record:s}}))a.push(l)}if(a.length===0)return;throw e.forbidden(`Not allowed to write ${a.map((l)=>`"${l}"`).join(", ")} on ${t.name}`)}
|
|
14
|
+
export{pe,Z,Le,me,Ct,Ao,ko,Ro,ro,io,so,_,on,fe,j};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import{k,
|
|
1
|
+
import{k,Y,Fe,Ne,Xe,ee}from"./index-ptttzgtp.js";var So=k({name:"doc",content:"block+",toHtml:({children:t})=>t,toMarkdown:({children:t})=>t}),To=k({name:"paragraph",group:"block",content:"inline*",toHtml:({children:t})=>`<p>${t}</p>`,toMarkdown:({children:t})=>t}),Co=k({name:"heading",group:"block",content:"inline*",attrs:{level:{default:1}},toHtml:({node:t,children:e})=>{let n=f(t.attrs?.level);return`<h${n}>${e}</h${n}>`},toMarkdown:({node:t,children:e})=>`${"#".repeat(f(t.attrs?.level))} ${e}`}),Oo=k({name:"blockquote",group:"block",content:"block+",toHtml:({children:t})=>`<blockquote>${t}</blockquote>`,toMarkdown:({children:t})=>t.split(`
|
|
2
2
|
`).map((e)=>e.length===0?">":`> ${e}`).join(`
|
|
3
3
|
`)}),Po=k({name:"bulletList",group:"block",content:"listItem+",toHtml:({children:t})=>`<ul>${t}</ul>`,toMarkdown:({childStrings:t})=>t.map((e)=>`- ${Xe(e,2)}`).join(`
|
|
4
4
|
`)}),_o=k({name:"orderedList",group:"block",content:"listItem+",attrs:{start:{default:1}},toHtml:({node:t,children:e})=>{let n=typeof t.attrs?.start==="number"?t.attrs.start:1;return`<ol${n===1?"":` start="${n}"`}>${e}</ol>`},toMarkdown:({node:t,childStrings:e})=>{let n=typeof t.attrs?.start==="number"?t.attrs.start:1;return e.map((r,o)=>{let i=`${n+o}. `;return`${i}${Xe(r,i.length)}`}).join(`
|
|
5
|
-
`)}}),$o=k({name:"listItem",content:"paragraph block*",toHtml:({children:t})=>`<li>${t}</li>`,toMarkdown:({children:t})=>t}),
|
|
6
|
-
`)}),
|
|
5
|
+
`)}}),$o=k({name:"listItem",content:"paragraph block*",toHtml:({children:t})=>`<li>${t}</li>`,toMarkdown:({children:t})=>t}),jo=k({name:"taskList",group:"block",content:"taskItem+",toHtml:({children:t})=>`<ul data-type="taskList">${t}</ul>`,toMarkdown:({childStrings:t})=>t.join(`
|
|
6
|
+
`)}),Io=k({name:"taskItem",content:"paragraph block*",attrs:{checked:{default:!1}},toHtml:({node:t,children:e})=>`<li data-type="taskItem"${Ne({"data-checked":t.attrs?.checked===!0})}>${e}</li>`,toMarkdown:({node:t,children:e})=>`- [${t.attrs?.checked===!0?"x":" "}] ${Xe(e,6)}`}),Eo=k({name:"codeBlock",group:"block",content:"text*",marks:"",attrs:{language:{default:null}},toHtml:({node:t,childNodes:e})=>{let n=ee(t,"language"),r=Fe(p(e));return`<pre><code${n?` class="language-${Fe(n)}"`:""}>${r}</code></pre>`},toMarkdown:({node:t,childNodes:e})=>{let n=ee(t,"language")??"",r=p(e),o=Math.max(0,...[...r.matchAll(/`+/g)].map((a)=>a[0].length)),i="`".repeat(Math.max(3,o+1));return`${i}${n}
|
|
7
7
|
${r}
|
|
8
8
|
${i}`},toText:({childNodes:t})=>p(t)}),Mo=k({name:"horizontalRule",group:"block",atom:!0,toHtml:()=>"<hr>",toMarkdown:()=>"---",toText:()=>""}),Do=k({name:"hardBreak",group:"inline",inline:!0,atom:!0,toHtml:()=>"<br>",toMarkdown:()=>`
|
|
9
9
|
`,toText:()=>`
|
|
10
10
|
`}),qo=k({name:"image",group:"block",atom:!0,attrs:{src:{default:null},alt:{default:null},title:{default:null},mediaId:{default:null}},toHtml:({node:t,mediaUrl:e,mediaImage:n,images:r})=>{let o=g(t.attrs,n),i=o?.src??b(t.attrs,e);return`<img${Ne({src:i,alt:x(ee(t,"alt"))??o?.alt??"",title:ee(t,"title"),width:o?.width??void 0,height:o?.height??void 0,srcset:o?.srcset??void 0,sizes:o?.srcset?o.sizes??void 0:void 0,loading:r?.loading,decoding:r?.decoding,"data-media-id":ee(t,"mediaId")})}>`},toMarkdown:({node:t,mediaUrl:e,mediaImage:n})=>{let r=g(t.attrs,n),o=r?.src??b(t.attrs,e)??"",i=x(ee(t,"alt"))??r?.alt??"",a=ee(t,"title");return``},toText:({node:t})=>ee(t,"alt")??""}),Lo=k({name:"table",group:"block",content:"tableRow+",toHtml:({children:t})=>`<table><tbody>${t}</tbody></table>`,toMarkdown:({childStrings:t})=>{let[e,...n]=t;if(e===void 0)return"";let r=e.split(" | ").length,o=`| ${Array.from({length:r},()=>"---").join(" | ")} |`;return[`| ${e} |`,o,...n.map((i)=>`| ${i} |`)].join(`
|
|
11
11
|
`)}}),Fo=k({name:"tableRow",content:"(tableCell | tableHeader)*",toHtml:({children:t})=>`<tr>${t}</tr>`,toMarkdown:({childStrings:t})=>t.map((e)=>e.replaceAll(`
|
|
12
|
-
`," ")).join(" | ")}),No=k({name:"tableHeader",content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:null}},toHtml:({node:t,children:e})=>`<th${N(t.attrs)}>${e}</th>`,toMarkdown:({children:t})=>t}),Uo=k({name:"tableCell",content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:null}},toHtml:({node:t,children:e})=>`<td${N(t.attrs)}>${e}</td>`,toMarkdown:({children:t})=>t}),Jo=
|
|
12
|
+
`," ")).join(" | ")}),No=k({name:"tableHeader",content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:null}},toHtml:({node:t,children:e})=>`<th${N(t.attrs)}>${e}</th>`,toMarkdown:({children:t})=>t}),Uo=k({name:"tableCell",content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:null}},toHtml:({node:t,children:e})=>`<td${N(t.attrs)}>${e}</td>`,toMarkdown:({children:t})=>t}),Jo=Y({name:"bold",toHtml:({text:t})=>`<strong>${t}</strong>`,toMarkdown:({text:t})=>`**${t}**`}),Wo=Y({name:"italic",toHtml:({text:t})=>`<em>${t}</em>`,toMarkdown:({text:t})=>`*${t}*`}),zo=Y({name:"underline",toHtml:({text:t})=>`<u>${t}</u>`,toMarkdown:({text:t})=>`<u>${t}</u>`}),Ho=Y({name:"strike",toHtml:({text:t})=>`<s>${t}</s>`,toMarkdown:({text:t})=>`~~${t}~~`}),Bo=Y({name:"code",toHtml:({text:t})=>`<code>${t}</code>`,toMarkdown:({text:t})=>`\`${t}\``}),Vo=Y({name:"link",attrs:{href:{default:null},target:{default:null},rel:{default:null}},toHtml:({mark:t,text:e})=>`<a${Ne({href:t.attrs?.href??"",target:t.attrs?.target,rel:t.attrs?.rel})}>${e}</a>`,toMarkdown:({mark:t,text:e})=>`[${e}](${String(t.attrs?.href??"")})`});function f(t){let e=typeof t==="number"?Math.trunc(t):1;return Math.min(6,Math.max(1,e))}function p(t){return t.map((e)=>e.text??"").join("")}function N(t){let e=t?.colspan,n=t?.rowspan;return Ne({colspan:typeof e==="number"&&e>1?e:void 0,rowspan:typeof n==="number"&&n>1?n:void 0})}function g(t,e){let n=t?.mediaId;if(typeof n!=="string"||!e)return null;return e(n)}function x(t){return t===void 0||t.trim()===""?void 0:t}function b(t,e){let n=t?.mediaId;if(typeof n==="string"&&e){let o=e(n);if(o)return o}let r=t?.src;return typeof r==="string"?r:void 0}function he(t){let e=t.replaceAll(`\r
|
|
13
13
|
`,`
|
|
14
14
|
`).split(`
|
|
15
15
|
`),n=m(e);return{type:"doc",content:n.length>0?n:[{type:"paragraph"}]}}function En(t){let e=t.replaceAll(`\r
|
|
16
16
|
`,`
|
|
17
17
|
`).split(/\n{2,}/).map((n)=>n.trim()).filter((n)=>n.length>0);return{type:"doc",content:e.length===0?[{type:"paragraph"}]:e.map((n)=>({type:"paragraph",content:[{type:"text",text:n}]}))}}function m(t){let e=[],n=0;while(n<t.length){let r=t[n]??"";if(r.trim().length===0){n+=1;continue}let o=/^\s*(`{3,})(.*)$/.exec(r);if(o){let s=o[1],d=(o[2]??"").trim(),l=[];n+=1;while(n<t.length&&!(t[n]??"").startsWith(s))l.push(t[n]??""),n+=1;n+=1,e.push({type:"codeBlock",...d.length>0?{attrs:{language:d}}:{},...l.length>0?{content:[{type:"text",text:l.join(`
|
|
18
|
-
`)}]}:{}});continue}let i=/^(#{1,6})\s+(.*)$/.exec(r);if(i){e.push({type:"heading",attrs:{level:i[1].length},content:h(i[2].trim())}),n+=1;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(r)){e.push({type:"horizontalRule"}),n+=1;continue}if(/^\s*>/.test(r)){let s=[];while(n<t.length&&/^\s*>/.test(t[n]??""))s.push((t[n]??"").replace(/^\s*>\s?/,"")),n+=1;e.push({type:"blockquote",content:m(s)});continue}if(c(r)){let[s,d]=M(t,n);e.push(s),n=d;continue}let a=[];while(n<t.length){let s=t[n]??"";if(s.trim().length===0||c(s)||/^(#{1,6})\s/.test(s)||/^\s*>/.test(s)||/^\s*`{3,}/.test(s))break;a.push(s.trim()),n+=1}e.push({type:"paragraph",content:h(a.join(" "))})}return e}function c(t){let e=/^(\s*)[-*+]\s+(\[([ xX])\]\s+)?(.*)$/.exec(t);if(e){let r=e[3];return{ordered:!1,task:r===void 0?null:r.toLowerCase()==="x",indent:(e[1]??"").length,text:e[4]??"",start:1}}let n=/^(\s*)(\d+)[.)]\s+(.*)$/.exec(t);if(n)return{ordered:!0,task:null,indent:(n[1]??"").length,text:n[3]??"",start:Number(n[2]??1)};return null}function M(t,e){let n=c(t[e]??"");if(!n)return[{type:"paragraph"},e+1];let r=[],o=e;while(o<t.length){let a=c(t[o]??"");if(!a||a.indent!==n.indent)break;if(a.ordered!==n.ordered)break;if(a.task===null!==(n.task===null))break;let s=[a.text];o+=1;while(o<t.length){let d=t[o]??"";if(d.trim().length===0)break;let l=c(d);if(l&&l.indent<=n.indent)break;if(!l&&d.search(/\S/)<=n.indent)break;s.push(d.slice(n.indent+2)),o+=1}r.push({type:n.task===null?"listItem":"taskItem",...a.task===null?{}:{attrs:{checked:a.task}},content:m(s)})}let i=n.task!==null?"taskList":n.ordered?"orderedList":"bulletList";return[{type:i,...i==="orderedList"&&n.start!==1?{attrs:{start:n.start}}:{},content:r},o]}function h(t){let e=[],n="",r=()=>{if(n.length===0)return;e.push({type:"text",text:n}),n=""},o=0;while(o<t.length){let i=t.slice(o);if(i.startsWith("\\")&&i.length>1){n+=i[1],o+=2;continue}let a=/^\[([^\]]*)\]\(([^)\s]*)(?:\s+"([^"]*)")?\)/.exec(i);if(a){if(r(),o>0&&t[o-1]==="!"){e.push({type:"image",attrs:{src:a[2]??"",alt:a[1]??""}});let u=e.at(-2);if(u?.type==="text"&&u.text?.endsWith("!"))u.text=u.text.slice(0,-1)}else e.push({type:"text",text:a[1]??"",marks:[{type:"link",attrs:{href:a[2]??""}}]});o+=a[0].length;continue}let s=w(i);if(s){r();for(let l of h(s.inner))e.push(y(l,s.mark));o+=s.length;continue}let d=/^`([^`]+)`/.exec(i);if(d){r(),e.push({type:"text",text:d[1]??"",marks:[{type:"code"}]}),o+=d[0].length;continue}n+=t[o],o+=1}return r(),e}function w(t){let e=[[/^\*\*\*([^*]+)\*\*\*/,{type:"bold"}],[/^\*\*([^*]+)\*\*/,{type:"bold"}],[/^__([^_]+)__/,{type:"bold"}],[/^~~([^~]+)~~/,{type:"strike"}],[/^\*([^*]+)\*/,{type:"italic"}],[/^_([^_]+)_/,{type:"italic"}]];for(let[n,r]of e){let o=n.exec(t);if(o)return{mark:r,inner:o[1]??"",length:o[0].length}}return null}function y(t,e){if(t.type!=="text")return t;return{...t,marks:[...t.marks??[],e]}}export{So,To,Co,Oo,Po,_o,$o,Io,
|
|
18
|
+
`)}]}:{}});continue}let i=/^(#{1,6})\s+(.*)$/.exec(r);if(i){e.push({type:"heading",attrs:{level:i[1].length},content:h(i[2].trim())}),n+=1;continue}if(/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(r)){e.push({type:"horizontalRule"}),n+=1;continue}if(/^\s*>/.test(r)){let s=[];while(n<t.length&&/^\s*>/.test(t[n]??""))s.push((t[n]??"").replace(/^\s*>\s?/,"")),n+=1;e.push({type:"blockquote",content:m(s)});continue}if(c(r)){let[s,d]=M(t,n);e.push(s),n=d;continue}let a=[];while(n<t.length){let s=t[n]??"";if(s.trim().length===0||c(s)||/^(#{1,6})\s/.test(s)||/^\s*>/.test(s)||/^\s*`{3,}/.test(s))break;a.push(s.trim()),n+=1}e.push({type:"paragraph",content:h(a.join(" "))})}return e}function c(t){let e=/^(\s*)[-*+]\s+(\[([ xX])\]\s+)?(.*)$/.exec(t);if(e){let r=e[3];return{ordered:!1,task:r===void 0?null:r.toLowerCase()==="x",indent:(e[1]??"").length,text:e[4]??"",start:1}}let n=/^(\s*)(\d+)[.)]\s+(.*)$/.exec(t);if(n)return{ordered:!0,task:null,indent:(n[1]??"").length,text:n[3]??"",start:Number(n[2]??1)};return null}function M(t,e){let n=c(t[e]??"");if(!n)return[{type:"paragraph"},e+1];let r=[],o=e;while(o<t.length){let a=c(t[o]??"");if(!a||a.indent!==n.indent)break;if(a.ordered!==n.ordered)break;if(a.task===null!==(n.task===null))break;let s=[a.text];o+=1;while(o<t.length){let d=t[o]??"";if(d.trim().length===0)break;let l=c(d);if(l&&l.indent<=n.indent)break;if(!l&&d.search(/\S/)<=n.indent)break;s.push(d.slice(n.indent+2)),o+=1}r.push({type:n.task===null?"listItem":"taskItem",...a.task===null?{}:{attrs:{checked:a.task}},content:m(s)})}let i=n.task!==null?"taskList":n.ordered?"orderedList":"bulletList";return[{type:i,...i==="orderedList"&&n.start!==1?{attrs:{start:n.start}}:{},content:r},o]}function h(t){let e=[],n="",r=()=>{if(n.length===0)return;e.push({type:"text",text:n}),n=""},o=0;while(o<t.length){let i=t.slice(o);if(i.startsWith("\\")&&i.length>1){n+=i[1],o+=2;continue}let a=/^\[([^\]]*)\]\(([^)\s]*)(?:\s+"([^"]*)")?\)/.exec(i);if(a){if(r(),o>0&&t[o-1]==="!"){e.push({type:"image",attrs:{src:a[2]??"",alt:a[1]??""}});let u=e.at(-2);if(u?.type==="text"&&u.text?.endsWith("!"))u.text=u.text.slice(0,-1)}else e.push({type:"text",text:a[1]??"",marks:[{type:"link",attrs:{href:a[2]??""}}]});o+=a[0].length;continue}let s=w(i);if(s){r();for(let l of h(s.inner))e.push(y(l,s.mark));o+=s.length;continue}let d=/^`([^`]+)`/.exec(i);if(d){r(),e.push({type:"text",text:d[1]??"",marks:[{type:"code"}]}),o+=d[0].length;continue}n+=t[o],o+=1}return r(),e}function w(t){let e=[[/^\*\*\*([^*]+)\*\*\*/,{type:"bold"}],[/^\*\*([^*]+)\*\*/,{type:"bold"}],[/^__([^_]+)__/,{type:"bold"}],[/^~~([^~]+)~~/,{type:"strike"}],[/^\*([^*]+)\*/,{type:"italic"}],[/^_([^_]+)_/,{type:"italic"}]];for(let[n,r]of e){let o=n.exec(t);if(o)return{mark:r,inner:o[1]??"",length:o[0].length}}return null}function y(t,e){if(t.type!=="text")return t;return{...t,marks:[...t.marks??[],e]}}export{So,To,Co,Oo,Po,_o,$o,jo,Io,Eo,Mo,Do,qo,Lo,Fo,No,Uo,Jo,Wo,zo,Ho,Bo,Vo,he,En};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e}from"./index-x72d1hzh.js";var ho="*";function jt(t,n){return`${t}:${n}`}function m(t){if(t==="*")return["*","*"];let n=t.indexOf(":");if(n===-1)return[t,"*"];return[t.slice(0,n),t.slice(n+1)]}function b(t,n){return t==="*"||t===n}function Wn(t,n){let[o,r]=m(t),[i,s]=m(n);return b(o,i)&&b(r,s)}function E(t,n){if(!t)return!1;return t.permissions.some((o)=>Wn(o,n))}function rt(t,n){let o=new Set;for(let r of t)for(let i of n[r]??[])o.add(i);return[...o].sort()}function It(t,n){let o=new Set;for(let r of t){let[i,s]=m(r);for(let a of n){let[c,f]=m(a),p=j(i,c),d=j(s,f);if(p===null||d===null)continue;o.add(p==="*"&&d==="*"?"*":`${p}:${d}`)}}return[...o].sort()}function j(t,n){if(t==="*")return n;if(n==="*")return t;return t===n?t:null}function Et(t){let n=new Set;for(let o of t){if(o==="*"||o.includes(":")){n.add(o);continue}switch(o){case"read":n.add("*:read");break;case"write":n.add("*:read"),n.add("*:create"),n.add("*:update");break;case"delete":n.add("*:delete");break;default:break}}return[...n].sort()}function _e(t){if(t==="*")return!0;if(["read","write","delete"].includes(t))return!0;return/^[a-z0-9_*-]+:[a-z0-9_*-]+$/.test(t)}function O(t,n={}){let o=n.locale??t.i18n.defaultLocale;return{locale:o,chain:[o,...C(t,o,n)]}}function C(t,n,o){if(o.fallbackLocale===!1)return[];if(typeof o.fallbackLocale==="string")return o.fallbackLocale===n?[]:[o.fallbackLocale];let r=t.i18n.defaultLocale;return r===n?[]:[r]}function fn(t,n){let o=h(t)?t:{};for(let r of n.chain){let i=o[r];if(i!==void 0&&i!==null)return{value:i,from:r}}return{value:null,from:null}}function J(t,n,o){let r=h(t)?{...t}:{};return r[n]=o,r}function h(t){return typeof t==="object"&&t!==null&&!Array.isArray(t)}var v=["id","revision","createdAt","updatedAt","updatedBy","deletedAt","purgeAfter","scheduledAt","scheduledPatch","_fallback","_localeFields"],w=new Set(v);function A(t,n,o){let r=u(t.data),i={},s={},a=[];for(let[c,f]of Object.entries(n.fields)){if(f.localized){let d=r[c];if(d&&typeof d==="object"&&!Array.isArray(d)&&Object.hasOwn(d,o.locale))a.push(c);let g=fn(d,o);if(i[c]=g.value??y(f),g.from!==null&&g.from!==o.locale)s[c]=g.from;continue}let p=r[c];i[c]=p===void 0?y(f):p}if(Object.values(n.fields).some((c)=>c.localized))i._localeFields=a;if(i.id=String(t.id),i.revision=hn(t.revision),i.createdAt=l(t.created_at),i.updatedAt=l(t.updated_at),i.updatedBy=t.updated_by===void 0?null:t.updated_by,i.deletedAt=l(t.deleted_at),i.purgeAfter=l(t.purge_after),i.scheduledAt=l(t.scheduled_at),i.scheduledPatch=je(t)?.data??null,Object.keys(s).length>0)i._fallback=s;return i}function $e(t,n,o,r){S(t,n);let i=r===void 0,s={...r??{}},a=[];for(let[c,f]of Object.entries(t.fields)){let p=n[c];if(p!==void 0){s[c]=f.localized?J(s[c],o.locale,p):p,a.push(c);continue}if(!i)continue;let d=y(f);if(s[c]=f.localized?d===null?{}:{[o.locale]:d}:d,d!==null)a.push(c)}return{data:s,touched:a}}function Je(t,n,o,r){let i={};for(let s of r){let a=t.fields[s];if(!a)continue;let c=a.localized?u(n[s])[o.locale]??null:n[s]??null;if(c===null&&a.required){i[s]="is required";continue}let f=a.schema.safeParse(c);if(!f.success)i[s]=V(f.error.issues[0])}if(Object.keys(i).length>0)throw e.validation(`${t.name}: ${Object.entries(i).map(([s,a])=>`${s} ${a}`).join(", ")}`,{fields:i})}function V(t){if(!t)return"is invalid";let n=t.path.map((r)=>typeof r==="number"?`#${r+1}`:String(r)).join(" ");if(!n)return t.message;let o=t.code==="invalid_type"&&/received (null|undefined)$/.test(t.message);return`${n}: ${o?"is required":t.message}`}function go(t,n,o){return Object.keys(t.fields).filter((r)=>!R(n[r],o[r]))}function yo(t){let n={};for(let[o,r]of Object.entries(t))n[k(o)]=r instanceof Date?r.toISOString():r instanceof Uint8Array?null:r;return n}function je(t){let n=t.scheduled_patch;if(n===null||n===void 0)return null;let o=u(n),r=u(o.data),i=typeof o.locale==="string"?o.locale:null;if(i===null)return null;return{data:r,locale:i,actor:L(o.actor)}}function L(t){if(typeof t!=="object"||t===null||Array.isArray(t))return null;let n=t;if(typeof n.id!=="string")return null;return{id:n.id,source:n.source==="api-key"?"api-key":"session",roles:x(n.roles),permissions:x(n.permissions)}}function x(t){return Array.isArray(t)?t.filter((n)=>typeof n==="string"):[]}function hn(t){let n=Number(t??1);return Number.isFinite(n)&&n>0?Math.trunc(n):1}function l(t){if(t===void 0||t===null)return null;if(t instanceof Date)return t.toISOString();return String(t)}function u(t){return typeof t==="object"&&t!==null&&!Array.isArray(t)?t:{}}function y(t){let n=t.defaultValue??t.column.default;return n===void 0?null:n}function S(t,n){let o=Object.keys(n).filter((r)=>!(r in t.fields)&&!w.has(r));if(o.length>0)throw e.validation(`${t.name} has no field ${o.map((r)=>`"${r}"`).join(", ")}`,{unknown:o})}function R(t,n){if(t===n)return!0;if(t===void 0||n===void 0)return!1;if(typeof t!=="object"||typeof n!=="object")return!1;return JSON.stringify(t)===JSON.stringify(n)}function k(t){return t.replace(/_([a-z0-9])/g,(n,o)=>o.toUpperCase())}
|
|
2
|
+
export{ho,jt,Wn,E,rt,It,Et,_e,O,fn,A,$e,Je,go,yo,je,hn,l,u};
|