@easy-cms/core 1.26.0 → 1.27.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/{chunk-5L544S33.js → chunk-3RZVRHBO.js} +55 -5
- package/dist/{chunk-J6E6QMDG.js → chunk-SYUQX2G6.js} +28 -0
- package/dist/{config-BpKdXA32.d.ts → config-BSIIyNMF.d.ts} +5 -0
- package/dist/{handler-BokoUN1I.d.ts → handler-DK6AcW-x.d.ts} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -2
- package/dist/internal.d.ts +2 -2
- package/dist/internal.js +2 -2
- package/dist/{plugin-AYwNCGrB.d.ts → plugin-B0_7iJ4s.d.ts} +1 -1
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.js +1 -1
- package/package.json +1 -1
|
@@ -19,11 +19,13 @@ import {
|
|
|
19
19
|
UnauthorizedError,
|
|
20
20
|
ValidationError,
|
|
21
21
|
applyFieldTypes,
|
|
22
|
+
errorText,
|
|
22
23
|
expandMimeTypes,
|
|
23
24
|
fieldTypeModules,
|
|
24
25
|
hasRows,
|
|
25
26
|
imageDimensions,
|
|
26
27
|
isHasMany,
|
|
28
|
+
isPassingError,
|
|
27
29
|
isPrivateKey,
|
|
28
30
|
mimeAllowed,
|
|
29
31
|
mimeAllowedBy,
|
|
@@ -36,7 +38,7 @@ import {
|
|
|
36
38
|
warnDeprecated,
|
|
37
39
|
withCharset,
|
|
38
40
|
withPrivacy
|
|
39
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-SYUQX2G6.js";
|
|
40
42
|
|
|
41
43
|
// src/access.ts
|
|
42
44
|
var isSystemAdmin = (user) => user?.role === "admin" && !user.apiKey && user.scoped !== true;
|
|
@@ -7930,7 +7932,7 @@ function cacheableResponse(request, body, status, headers, times, tags) {
|
|
|
7930
7932
|
}
|
|
7931
7933
|
|
|
7932
7934
|
// src/version.ts
|
|
7933
|
-
var VERSION = true ? "1.
|
|
7935
|
+
var VERSION = true ? "1.27.0" : "0.0.0-dev";
|
|
7934
7936
|
|
|
7935
7937
|
// src/telemetry.ts
|
|
7936
7938
|
var DB_CALLS = /* @__PURE__ */ new Set([
|
|
@@ -10013,7 +10015,7 @@ var EasyCMS = class {
|
|
|
10013
10015
|
if (!claimed) continue;
|
|
10014
10016
|
const parent = String(row.parent);
|
|
10015
10017
|
const action = row.action;
|
|
10016
|
-
|
|
10018
|
+
const run = async () => {
|
|
10017
10019
|
if (parent.startsWith("global:")) {
|
|
10018
10020
|
const { slug: slug2, scope } = splitGlobalKey(parent.slice("global:".length));
|
|
10019
10021
|
if (action === "publish")
|
|
@@ -10030,6 +10032,21 @@ var EasyCMS = class {
|
|
|
10030
10032
|
"unpublish"
|
|
10031
10033
|
);
|
|
10032
10034
|
}
|
|
10035
|
+
};
|
|
10036
|
+
try {
|
|
10037
|
+
for (let attempt = 0; ; attempt++) {
|
|
10038
|
+
try {
|
|
10039
|
+
await run();
|
|
10040
|
+
break;
|
|
10041
|
+
} catch (error) {
|
|
10042
|
+
const wait = SCHEDULED_RETRY_DELAYS[attempt];
|
|
10043
|
+
if (wait === void 0 || !isPassingError(error)) throw error;
|
|
10044
|
+
this.logger.warn(
|
|
10045
|
+
`Scheduled ${action} of ${parent} ${row.doc}: ${errorText(error)}; trying again`
|
|
10046
|
+
);
|
|
10047
|
+
await new Promise((resolve3) => setTimeout(resolve3, wait));
|
|
10048
|
+
}
|
|
10049
|
+
}
|
|
10033
10050
|
await this.db.update({
|
|
10034
10051
|
collection: SCHEDULED_JOBS,
|
|
10035
10052
|
id: row.id,
|
|
@@ -10038,7 +10055,7 @@ var EasyCMS = class {
|
|
|
10038
10055
|
ran++;
|
|
10039
10056
|
} catch (error) {
|
|
10040
10057
|
failed++;
|
|
10041
|
-
const message2 = error
|
|
10058
|
+
const message2 = errorText(error);
|
|
10042
10059
|
this.logger.error(`Scheduled ${action} of ${parent} ${row.doc} failed: ${message2}`, {
|
|
10043
10060
|
error
|
|
10044
10061
|
});
|
|
@@ -10048,7 +10065,7 @@ var EasyCMS = class {
|
|
|
10048
10065
|
data: {
|
|
10049
10066
|
...row,
|
|
10050
10067
|
state: "failed",
|
|
10051
|
-
error: message2
|
|
10068
|
+
error: message2,
|
|
10052
10069
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
10053
10070
|
}
|
|
10054
10071
|
});
|
|
@@ -10056,6 +10073,22 @@ var EasyCMS = class {
|
|
|
10056
10073
|
}
|
|
10057
10074
|
return { ran, failed };
|
|
10058
10075
|
}
|
|
10076
|
+
/**
|
|
10077
|
+
* Puts a failed scheduled publish or unpublish back in the queue and runs what is due (#333).
|
|
10078
|
+
* Returns `false` when the job isn't a failed one.
|
|
10079
|
+
*/
|
|
10080
|
+
async retryScheduled(id) {
|
|
10081
|
+
const row = await this.db.findById({ collection: SCHEDULED_JOBS, id });
|
|
10082
|
+
if (!row || row.state !== "failed") return false;
|
|
10083
|
+
const claimed = await this.claim(
|
|
10084
|
+
SCHEDULED_JOBS,
|
|
10085
|
+
row,
|
|
10086
|
+
{ state: "pending", error: null, updatedAt: (/* @__PURE__ */ new Date()).toISOString() },
|
|
10087
|
+
{ state: { equals: "failed" } }
|
|
10088
|
+
);
|
|
10089
|
+
if (claimed) await this.runScheduled();
|
|
10090
|
+
return claimed;
|
|
10091
|
+
}
|
|
10059
10092
|
/** Schedules a publish or unpublish, replacing a pending job with the same action. */
|
|
10060
10093
|
async schedule(collection2, id, job, options = {}) {
|
|
10061
10094
|
const { parsed } = await this.scheduleTarget(collection2, id, options);
|
|
@@ -11191,6 +11224,7 @@ function jobSchedule(job, row) {
|
|
|
11191
11224
|
var JOBS_RAN = "easy-cms:jobs-ran";
|
|
11192
11225
|
var LEGACY_JOB_RUNS = "easy-cms:jobs";
|
|
11193
11226
|
var JOB_LEASE = 10 * 6e4;
|
|
11227
|
+
var SCHEDULED_RETRY_DELAYS = [1e3, 3e3];
|
|
11194
11228
|
function durationSeconds(value) {
|
|
11195
11229
|
const match = typeof value === "string" ? /^(\d+)\s*([smhd])$/.exec(value.trim()) : null;
|
|
11196
11230
|
const seconds = typeof value === "number" ? value : match ? Number(match[1]) * { s: 1, m: 60, h: 3600, d: 86400 }[match[2]] : Number.NaN;
|
|
@@ -11328,6 +11362,15 @@ async function retryOutbox(cms, user, id) {
|
|
|
11328
11362
|
if (!await cms.retryOutbox(row.id))
|
|
11329
11363
|
throw new EasyCMSError("Only failed entries can be retried", 409);
|
|
11330
11364
|
}
|
|
11365
|
+
async function retryScheduled(cms, user, id) {
|
|
11366
|
+
if (!isSystemAdmin(user)) throw new ForbiddenError();
|
|
11367
|
+
if (!has(cms.config, SCHEDULED_JOBS)) throw new NotFoundError(SCHEDULED_JOBS, id);
|
|
11368
|
+
const parsed = parseId(id);
|
|
11369
|
+
const row = parsed === void 0 ? null : await cms.db.findById({ collection: SCHEDULED_JOBS, id: parsed });
|
|
11370
|
+
if (!row) throw new NotFoundError(SCHEDULED_JOBS, id);
|
|
11371
|
+
if (!await cms.retryScheduled(row.id))
|
|
11372
|
+
throw new EasyCMSError("Only failed jobs can be retried", 409);
|
|
11373
|
+
}
|
|
11331
11374
|
var TIME_OF_DAY2 = /^([01]\d|2[0-3]):[0-5]\d$/;
|
|
11332
11375
|
async function updateJob(cms, user, name, body) {
|
|
11333
11376
|
if (!isSystemAdmin(user)) throw new ForbiddenError();
|
|
@@ -13654,6 +13697,13 @@ async function route(cms, ctx, method, path, options) {
|
|
|
13654
13697
|
await cms.audit.record({ action: "jobs.outbox.retry", target: "jobs", detail: { id: id2 } });
|
|
13655
13698
|
return { body: await adminJobs(cms, ctx.user) };
|
|
13656
13699
|
}
|
|
13700
|
+
if (third === "scheduled" && segments.length === 4) {
|
|
13701
|
+
if (method !== "POST") throw methodNotAllowed(ctx, "POST");
|
|
13702
|
+
const id2 = segments[3];
|
|
13703
|
+
await retryScheduled(cms, ctx.user, id2);
|
|
13704
|
+
await cms.audit.record({ action: "jobs.scheduled.retry", target: "jobs", detail: { id: id2 } });
|
|
13705
|
+
return { body: await adminJobs(cms, ctx.user) };
|
|
13706
|
+
}
|
|
13657
13707
|
if (third !== void 0 && segments.length === 3) {
|
|
13658
13708
|
if (method !== "PATCH") throw methodNotAllowed(ctx, "PATCH");
|
|
13659
13709
|
const { action, detail } = await updateJob(
|
|
@@ -103,6 +103,32 @@ var PayloadTooLargeError = class extends EasyCMSError {
|
|
|
103
103
|
this.name = "PayloadTooLargeError";
|
|
104
104
|
}
|
|
105
105
|
};
|
|
106
|
+
function errorText(error, max = 500) {
|
|
107
|
+
const parts = [];
|
|
108
|
+
let current = error;
|
|
109
|
+
for (let depth = 0; current && depth < 5; depth++) {
|
|
110
|
+
const message = current instanceof Error ? current.message : typeof current === "string" ? current : "";
|
|
111
|
+
const code = current.code;
|
|
112
|
+
const text2 = [message, typeof code === "string" && !message.includes(code) ? code : ""].filter(Boolean).join(" ");
|
|
113
|
+
if (text2 && !parts.some((p) => p.includes(text2))) parts.push(text2);
|
|
114
|
+
current = current.cause;
|
|
115
|
+
}
|
|
116
|
+
const text = parts.join(" \u2014 ") || String(error);
|
|
117
|
+
return text.length > max ? `${text.slice(0, max - 1)}\u2026` : text;
|
|
118
|
+
}
|
|
119
|
+
var PASSING = /ECONNRESET|ECONNREFUSED|ETIMEDOUT|EPIPE|EAI_AGAIN|ENOTFOUND|fetch failed|socket hang up|network|timed? ?out|SQLITE_BUSY|database is locked|too many (clients|connections)|connection (terminated|closed|reset|refused)|server closed|stream (expired|not found)|\b50[234]\b/i;
|
|
120
|
+
function isPassingError(error) {
|
|
121
|
+
if (error instanceof EasyCMSError) return false;
|
|
122
|
+
let current = error;
|
|
123
|
+
for (let depth = 0; current && depth < 5; depth++) {
|
|
124
|
+
const message = current instanceof Error ? current.message : String(current);
|
|
125
|
+
const code = current.code;
|
|
126
|
+
const checked = message.startsWith("Failed query") ? "" : message;
|
|
127
|
+
if (PASSING.test(checked) || typeof code === "string" && PASSING.test(code)) return true;
|
|
128
|
+
current = current.cause;
|
|
129
|
+
}
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
106
132
|
|
|
107
133
|
// src/media.ts
|
|
108
134
|
var EXTENSIONS = {
|
|
@@ -548,6 +574,8 @@ export {
|
|
|
548
574
|
ForbiddenError,
|
|
549
575
|
TooManyRequestsError,
|
|
550
576
|
PayloadTooLargeError,
|
|
577
|
+
errorText,
|
|
578
|
+
isPassingError,
|
|
551
579
|
EXTENSIONS,
|
|
552
580
|
MIME_GROUPS,
|
|
553
581
|
expandMimeTypes,
|
|
@@ -2250,6 +2250,11 @@ declare class EasyCMS<C extends Config = Config> {
|
|
|
2250
2250
|
ran: number;
|
|
2251
2251
|
failed: number;
|
|
2252
2252
|
}>;
|
|
2253
|
+
/**
|
|
2254
|
+
* Puts a failed scheduled publish or unpublish back in the queue and runs what is due (#333).
|
|
2255
|
+
* Returns `false` when the job isn't a failed one.
|
|
2256
|
+
*/
|
|
2257
|
+
retryScheduled(id: ID): Promise<boolean>;
|
|
2253
2258
|
/** Schedules a publish or unpublish, replacing a pending job with the same action. */
|
|
2254
2259
|
schedule<S extends Slug<C>>(collection: S, id: ID, job: {
|
|
2255
2260
|
action: 'publish' | 'unpublish';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as ID, C as Config, E as EasyCMS, L as LocalizationConfig, F as Field, a as FieldError, b as FilterOptions, c as CreateEasyCMSOptions, R as ResolvedConfig } from './config-
|
|
1
|
+
import { I as ID, C as Config, E as EasyCMS, L as LocalizationConfig, F as Field, a as FieldError, b as FilterOptions, c as CreateEasyCMSOptions, R as ResolvedConfig } from './config-BSIIyNMF.js';
|
|
2
2
|
|
|
3
3
|
/** Decrypts a file from `encryptBackup`; throws for another key or a changed file. */
|
|
4
4
|
declare function decryptBackup(data: Uint8Array, encryptionKey: string): Uint8Array;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as PaginatedDocs, I as ID, d as EmailSetting, W as WebhookPayload } from './config-
|
|
2
|
-
export { A as ADAPTER_API_VERSION, e as ADMIN_ICONS, f as Access, g as AccessArgs, h as AccessOptions, i as AdminBrand, j as AdminCommand, k as AdminComponent, l as AdminConfig, m as AdminFieldArgs, n as AdminIcon, o as AdminLocale, p as AdminPage, q as AdminRole, r as AdminRoleChange, s as AdminRoleField, t as AdminRoleTarget, u as AdminRoleView, v as AdminRoles, w as AdminSso, x as AdminSwitcher, y as AdminViewAccess, z as AfterChangeHook, B as AfterDeleteHook, D as AfterReadHook, G as ApiKeyContext, H as ApiKeyGlobalOperation, J as ApiKeyOperation, K as ApiKeyPermissions, M as ArrayField, N as AuditChange, O as AuditConfig, Q as AuditEntry, S as AuditLog, T as AuditPage, U as AuditVerification, V as Auth, X as AuthConfig, Y as AuthProvider, Z as AuthProviderProfile, _ as AuthProviderRequest, $ as AuthUser, a0 as BackupsConfig, a1 as BeforeChangeHook, a2 as BeforeDeleteHook, a3 as BeforeValidateHook, a4 as Block, a5 as BlocksField, a6 as BooleanField, a7 as BuiltinApiKeysCollection, a8 as BuiltinMediaCollection, a9 as BuiltinMediaFoldersCollection, aa as BuiltinUsersCollection, ab as BundleHints, ac as CliCommand, ad as CollectionAccess, ae as CollectionAdmin, af as CollectionCalendarAdmin, ag as CollectionConfig, ah as CollectionDocument, ai as CollectionHooks, aj as CollectionListAdmin, ak as CollectionSearch, al as CollectionSlug, C as Config, am as ConfigError, an as ConfigIssue, ao as ContainerAdmin, c as CreateEasyCMSOptions, ap as CreateInput, aq as CreateMigrationResult, ar as CursorDocs, as as CustomField, at as CustomFieldTypes, au as DashboardWidget, av as Database, aw as DatabaseAdapter, ax as DatabaseInitArgs, ay as DatabaseTransfer, az as DateField, aA as DepthOptions, aB as DirectUpload, aC as DiskStorageOptions, aD as DocumentOf, E as EasyCMS, aE as EasyCMSError, aF as EmailAdapter, aG as EmailField, aH as EmailMessage, aI as Endpoint, aJ as EndpointRequest, aK as ErrorCode, aL as FIELD_TYPES, F as Field, aM as FieldAccess, aN as FieldAccessFn, aO as FieldAdmin, a as FieldError, aP as FieldRule, aQ as FieldType, aR as FieldTypeBase, aS as FieldTypeDefinition, aT as FieldTypeValidateContext, aU as FieldValidate, aV as FieldValidateContext, aW as FieldValue, aX as FieldsInput, aY as FieldsValue, b as FilterOptions, aZ as FilterOptionsArgs, a_ as FindAfterArgs, a$ as FindArgs, b0 as FindOptions, b1 as FolderLevel, b2 as FolderPermissions, b3 as ForbiddenError, b4 as GlobalAccess, b5 as GlobalConfig, b6 as GlobalDocument, b7 as GlobalHooks, b8 as GlobalInput, b9 as GlobalSlug, ba as GroupField, bb as ImageSize, bc as IncrementOptions, bd as InferCollection, be as InferGlobal, bf as JobConfig, bg as JsonField, bh as KeysetPage, bi as Label, bj as LayoutNode, bk as LivePreview, bl as LocaleOf, L as LocalizationConfig, bm as LogDetails, bn as Logger, bo as LoginArgs, bp as LogsConfig, bq as MediaDocument, br as MediaSize, bs as MembersConfig, bt as MembersSignup, bu as MigrationInfo, bv as NavGroup, bw as NotFoundError, bx as NumberField, by as OnRequest, bz as OnRequestArgs, bA as Operation, bB as OutboxRow, bC as PLUGIN_API_VERSION, bD as PasswordEmail, bE as PasswordEmailArgs, bF as PasswordEmailFn, bG as PasswordLinkOptions, bH as PayloadTooLargeError, bI as Plugin, bJ as PluginInfo, bK as PluginTypes, bL as PreviewTarget, bM as PreviewURL, bN as QueryError, bO as ROLE_OPERATIONS, bP as RawDocument, bQ as ReadOptions, bR as RelationshipField, bS as RequestContext, R as ResolvedConfig, bT as RichTextDocument, bU as RichTextField, bV as Role, bW as RoleOperation, bX as RolePermissions, bY as Roles, bZ as RoutesConfig, b_ as ScheduledPublish, b$ as SchemaError, c0 as SchemaMode, c1 as SearchAdapter, c2 as SearchEntry, c3 as SearchHits, c4 as SearchOptions, c5 as SearchQuery, c6 as SearchResults, c7 as SearchSetting, c8 as SelectField, c9 as SelectOption, ca as Session, cb as SidebarPanel, cc as SignupArgs, cd as SignupResult, ce as SingleSignOn, cf as SlugField, cg as SlugOf, ch as SsoOutcome, ci as SsoProviderRef, cj as StorageAdapter, ck as StoredFile, cl as TRIGRAM_LIKE_MIN, cm as TelemetryConfig, cn as TextField, co as TextareaField, cp as TooManyRequestsError, cq as TypedPlugin, cr as UiField, cs as UnauthorizedError, ct as UncountedDocs, cu as UpdateInput, cv as UpdateOptions, cw as UploadConfig, cx as UploadField, cy as UploadFromURLConfig, cz as UserIdentity, cA as ValidationError, cB as Version, cC as VersionSummary, cD as VersionsConfig, cE as WEBHOOK_EVENTS, cF as WebhookConfig, cG as WebhookEvent, cH as Where, cI as WhereOperators, cJ as anyone, cK as consoleEmail, cL as consoleLogger, cM as createEasyCMS, cN as defineConfig, cO as defineFieldType, cP as definePlugin, cQ as diskStorage, cR as hasRows, cS as isAdmin, cT as isHasMany, cU as isSignedIn, cV as isStaff, cW as isSystemAdmin, cX as jsonLogger, cY as memorySearch, cZ as mimeAllowedBy, c_ as rowFields, c$ as silentLogger, d0 as uniqueWithinOf } from './config-
|
|
3
|
-
export { A as ADMIN_API_VERSION, a as AdminCollection, b as AdminComponentRef, c as AdminElementProps, d as AdminField, e as AdminGlobal, f as AdminLayoutNode, g as AdminNavGroup, h as AdminNavItem, i as AdminNavNode, j as AdminPageRef, k as AdminPageRoute, l as AdminSchema, m as AdminWidgetRef, S as SetFieldDetail, w as warnDeprecated } from './plugin-
|
|
4
|
-
export { A as AdminBackup, a as AdminBackups, b as ApiHandlerOptions, B as BackupState, L as LoadConfigOptions, R as RestHandler, c as RestHandlerOptions, d as createApiHandler, e as createRestHandler, l as loadConfig, r as resolveConfig, s as sharedEasyCMS, f as slugify } from './handler-
|
|
1
|
+
import { P as PaginatedDocs, I as ID, d as EmailSetting, W as WebhookPayload } from './config-BSIIyNMF.js';
|
|
2
|
+
export { A as ADAPTER_API_VERSION, e as ADMIN_ICONS, f as Access, g as AccessArgs, h as AccessOptions, i as AdminBrand, j as AdminCommand, k as AdminComponent, l as AdminConfig, m as AdminFieldArgs, n as AdminIcon, o as AdminLocale, p as AdminPage, q as AdminRole, r as AdminRoleChange, s as AdminRoleField, t as AdminRoleTarget, u as AdminRoleView, v as AdminRoles, w as AdminSso, x as AdminSwitcher, y as AdminViewAccess, z as AfterChangeHook, B as AfterDeleteHook, D as AfterReadHook, G as ApiKeyContext, H as ApiKeyGlobalOperation, J as ApiKeyOperation, K as ApiKeyPermissions, M as ArrayField, N as AuditChange, O as AuditConfig, Q as AuditEntry, S as AuditLog, T as AuditPage, U as AuditVerification, V as Auth, X as AuthConfig, Y as AuthProvider, Z as AuthProviderProfile, _ as AuthProviderRequest, $ as AuthUser, a0 as BackupsConfig, a1 as BeforeChangeHook, a2 as BeforeDeleteHook, a3 as BeforeValidateHook, a4 as Block, a5 as BlocksField, a6 as BooleanField, a7 as BuiltinApiKeysCollection, a8 as BuiltinMediaCollection, a9 as BuiltinMediaFoldersCollection, aa as BuiltinUsersCollection, ab as BundleHints, ac as CliCommand, ad as CollectionAccess, ae as CollectionAdmin, af as CollectionCalendarAdmin, ag as CollectionConfig, ah as CollectionDocument, ai as CollectionHooks, aj as CollectionListAdmin, ak as CollectionSearch, al as CollectionSlug, C as Config, am as ConfigError, an as ConfigIssue, ao as ContainerAdmin, c as CreateEasyCMSOptions, ap as CreateInput, aq as CreateMigrationResult, ar as CursorDocs, as as CustomField, at as CustomFieldTypes, au as DashboardWidget, av as Database, aw as DatabaseAdapter, ax as DatabaseInitArgs, ay as DatabaseTransfer, az as DateField, aA as DepthOptions, aB as DirectUpload, aC as DiskStorageOptions, aD as DocumentOf, E as EasyCMS, aE as EasyCMSError, aF as EmailAdapter, aG as EmailField, aH as EmailMessage, aI as Endpoint, aJ as EndpointRequest, aK as ErrorCode, aL as FIELD_TYPES, F as Field, aM as FieldAccess, aN as FieldAccessFn, aO as FieldAdmin, a as FieldError, aP as FieldRule, aQ as FieldType, aR as FieldTypeBase, aS as FieldTypeDefinition, aT as FieldTypeValidateContext, aU as FieldValidate, aV as FieldValidateContext, aW as FieldValue, aX as FieldsInput, aY as FieldsValue, b as FilterOptions, aZ as FilterOptionsArgs, a_ as FindAfterArgs, a$ as FindArgs, b0 as FindOptions, b1 as FolderLevel, b2 as FolderPermissions, b3 as ForbiddenError, b4 as GlobalAccess, b5 as GlobalConfig, b6 as GlobalDocument, b7 as GlobalHooks, b8 as GlobalInput, b9 as GlobalSlug, ba as GroupField, bb as ImageSize, bc as IncrementOptions, bd as InferCollection, be as InferGlobal, bf as JobConfig, bg as JsonField, bh as KeysetPage, bi as Label, bj as LayoutNode, bk as LivePreview, bl as LocaleOf, L as LocalizationConfig, bm as LogDetails, bn as Logger, bo as LoginArgs, bp as LogsConfig, bq as MediaDocument, br as MediaSize, bs as MembersConfig, bt as MembersSignup, bu as MigrationInfo, bv as NavGroup, bw as NotFoundError, bx as NumberField, by as OnRequest, bz as OnRequestArgs, bA as Operation, bB as OutboxRow, bC as PLUGIN_API_VERSION, bD as PasswordEmail, bE as PasswordEmailArgs, bF as PasswordEmailFn, bG as PasswordLinkOptions, bH as PayloadTooLargeError, bI as Plugin, bJ as PluginInfo, bK as PluginTypes, bL as PreviewTarget, bM as PreviewURL, bN as QueryError, bO as ROLE_OPERATIONS, bP as RawDocument, bQ as ReadOptions, bR as RelationshipField, bS as RequestContext, R as ResolvedConfig, bT as RichTextDocument, bU as RichTextField, bV as Role, bW as RoleOperation, bX as RolePermissions, bY as Roles, bZ as RoutesConfig, b_ as ScheduledPublish, b$ as SchemaError, c0 as SchemaMode, c1 as SearchAdapter, c2 as SearchEntry, c3 as SearchHits, c4 as SearchOptions, c5 as SearchQuery, c6 as SearchResults, c7 as SearchSetting, c8 as SelectField, c9 as SelectOption, ca as Session, cb as SidebarPanel, cc as SignupArgs, cd as SignupResult, ce as SingleSignOn, cf as SlugField, cg as SlugOf, ch as SsoOutcome, ci as SsoProviderRef, cj as StorageAdapter, ck as StoredFile, cl as TRIGRAM_LIKE_MIN, cm as TelemetryConfig, cn as TextField, co as TextareaField, cp as TooManyRequestsError, cq as TypedPlugin, cr as UiField, cs as UnauthorizedError, ct as UncountedDocs, cu as UpdateInput, cv as UpdateOptions, cw as UploadConfig, cx as UploadField, cy as UploadFromURLConfig, cz as UserIdentity, cA as ValidationError, cB as Version, cC as VersionSummary, cD as VersionsConfig, cE as WEBHOOK_EVENTS, cF as WebhookConfig, cG as WebhookEvent, cH as Where, cI as WhereOperators, cJ as anyone, cK as consoleEmail, cL as consoleLogger, cM as createEasyCMS, cN as defineConfig, cO as defineFieldType, cP as definePlugin, cQ as diskStorage, cR as hasRows, cS as isAdmin, cT as isHasMany, cU as isSignedIn, cV as isStaff, cW as isSystemAdmin, cX as jsonLogger, cY as memorySearch, cZ as mimeAllowedBy, c_ as rowFields, c$ as silentLogger, d0 as uniqueWithinOf } from './config-BSIIyNMF.js';
|
|
3
|
+
export { A as ADMIN_API_VERSION, a as AdminCollection, b as AdminComponentRef, c as AdminElementProps, d as AdminField, e as AdminGlobal, f as AdminLayoutNode, g as AdminNavGroup, h as AdminNavItem, i as AdminNavNode, j as AdminPageRef, k as AdminPageRoute, l as AdminSchema, m as AdminWidgetRef, S as SetFieldDetail, w as warnDeprecated } from './plugin-B0_7iJ4s.js';
|
|
4
|
+
export { A as AdminBackup, a as AdminBackups, b as ApiHandlerOptions, B as BackupState, L as LoadConfigOptions, R as RestHandler, c as RestHandlerOptions, d as createApiHandler, e as createRestHandler, l as loadConfig, r as resolveConfig, s as sharedEasyCMS, f as slugify } from './handler-DK6AcW-x.js';
|
|
5
5
|
export { FieldCondition, matchesCondition } from './conditions.js';
|
|
6
6
|
|
|
7
7
|
type DeliveryKind = 'webhook' | 'email';
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
silentLogger,
|
|
29
29
|
slugify,
|
|
30
30
|
verifyWebhook
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-3RZVRHBO.js";
|
|
32
32
|
import {
|
|
33
33
|
matchesCondition
|
|
34
34
|
} from "./chunk-U266LV4M.js";
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
defineFieldType,
|
|
54
54
|
definePlugin,
|
|
55
55
|
warnDeprecated
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-SYUQX2G6.js";
|
|
57
57
|
export {
|
|
58
58
|
ADAPTER_API_VERSION,
|
|
59
59
|
ADMIN_API_VERSION,
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Config, Database, EasyCMS, NavGroup, CollectionConfig, ID, RawDocument, Field, ResolvedConfig, ConfigIssue } from './index.js';
|
|
2
|
-
export { d1 as API_KEYS, d2 as API_KEY_GLOBAL_OPERATIONS, d3 as API_KEY_OPERATIONS, d4 as DEFAULT_MAX_VERSIONS, d5 as DEFAULT_PASSWORD_EMAILS, d6 as FIELD_TYPE_BASES, d7 as FOLDER_LEVELS, d8 as MediaFolders, d9 as SSO_COOKIE, da as Secrets, cl as TRIGRAM_LIKE_MIN, db as codeOfStatus, cR as hasRows, cT as isHasMany, dc as isJsonLogger, dd as keyAllows, de as logFormat, cZ as mimeAllowedBy, c_ as rowFields, df as secretsOf, d0 as uniqueWithinOf } from './config-
|
|
3
|
-
export { C as CONFIG_FILE_NAMES, g as CSRF_COOKIE, h as CSRF_HEADER, D as DEFAULT_ADMIN_PATH, i as DEFAULT_API_PATH, j as DEFAULT_MAX_FILE_SIZE, k as DEFAULT_TOKEN_EXPIRATION, m as applyDefaults, n as applyPlugins, o as createRootEndpointHandler, p as decryptBackup, q as fillMissing, t as findConfigFile, u as forwardedClientIp, v as generateSlugs, w as importConfig, x as isEmail, y as mergeForUpdate, z as parseId, E as platformClientIp, F as readCookie, G as validateFields, H as writeBackupFile } from './handler-
|
|
2
|
+
export { d1 as API_KEYS, d2 as API_KEY_GLOBAL_OPERATIONS, d3 as API_KEY_OPERATIONS, d4 as DEFAULT_MAX_VERSIONS, d5 as DEFAULT_PASSWORD_EMAILS, d6 as FIELD_TYPE_BASES, d7 as FOLDER_LEVELS, d8 as MediaFolders, d9 as SSO_COOKIE, da as Secrets, cl as TRIGRAM_LIKE_MIN, db as codeOfStatus, cR as hasRows, cT as isHasMany, dc as isJsonLogger, dd as keyAllows, de as logFormat, cZ as mimeAllowedBy, c_ as rowFields, df as secretsOf, d0 as uniqueWithinOf } from './config-BSIIyNMF.js';
|
|
3
|
+
export { C as CONFIG_FILE_NAMES, g as CSRF_COOKIE, h as CSRF_HEADER, D as DEFAULT_ADMIN_PATH, i as DEFAULT_API_PATH, j as DEFAULT_MAX_FILE_SIZE, k as DEFAULT_TOKEN_EXPIRATION, m as applyDefaults, n as applyPlugins, o as createRootEndpointHandler, p as decryptBackup, q as fillMissing, t as findConfigFile, u as forwardedClientIp, v as generateSlugs, w as importConfig, x as isEmail, y as mergeForUpdate, z as parseId, E as platformClientIp, F as readCookie, G as validateFields, H as writeBackupFile } from './handler-DK6AcW-x.js';
|
|
4
4
|
export { conditionIssues } from './conditions.js';
|
|
5
5
|
|
|
6
6
|
/** The session cookie the REST API sets at login. */
|
package/dist/internal.js
CHANGED
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
verifyPassword,
|
|
59
59
|
verifyTurnstile,
|
|
60
60
|
writeBackupFile
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-3RZVRHBO.js";
|
|
62
62
|
import {
|
|
63
63
|
conditionIssues
|
|
64
64
|
} from "./chunk-U266LV4M.js";
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
rowFields,
|
|
78
78
|
sniffMimeType,
|
|
79
79
|
uniqueWithinOf
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-SYUQX2G6.js";
|
|
81
81
|
|
|
82
82
|
// src/typegen.ts
|
|
83
83
|
var pascal = (name) => name.split(/[^A-Za-z0-9]+/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bi as Label, F as Field, I as ID, o as AdminLocale, x as AdminSwitcher, ci as SsoProviderRef } from './config-
|
|
1
|
+
import { bi as Label, F as Field, I as ID, o as AdminLocale, x as AdminSwitcher, ci as SsoProviderRef } from './config-BSIIyNMF.js';
|
|
2
2
|
import { FieldCondition } from './conditions.js';
|
|
3
3
|
|
|
4
4
|
/** A Web Component from an admin module, with its `props` (plain JSON). */
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { e as ADMIN_ICONS, k as AdminComponent, n as AdminIcon, $ as AuthUser, ac as CliCommand, ad as CollectionAccess, ag as CollectionConfig, C as Config, am as ConfigError, au as DashboardWidget, aE as EasyCMSError, aI as Endpoint, aJ as EndpointRequest, aK as ErrorCode, F as Field, aM as FieldAccess, a as FieldError, aR as FieldTypeBase, aS as FieldTypeDefinition, aT as FieldTypeValidateContext, b3 as ForbiddenError, b5 as GlobalConfig, I as ID, bf as JobConfig, bi as Label, bv as NavGroup, bw as NotFoundError, by as OnRequest, bz as OnRequestArgs, bC as PLUGIN_API_VERSION, bH as PayloadTooLargeError, bI as Plugin, bJ as PluginInfo, bK as PluginTypes, bN as QueryError, bS as RequestContext, cp as TooManyRequestsError, cq as TypedPlugin, cs as UnauthorizedError, cA as ValidationError, cH as Where, cO as defineFieldType, cP as definePlugin } from './config-
|
|
2
|
-
export { A as ADMIN_API_VERSION, c as AdminElementProps, k as AdminPageRoute, S as SetFieldDetail, w as warnDeprecated } from './plugin-
|
|
1
|
+
export { e as ADMIN_ICONS, k as AdminComponent, n as AdminIcon, $ as AuthUser, ac as CliCommand, ad as CollectionAccess, ag as CollectionConfig, C as Config, am as ConfigError, au as DashboardWidget, aE as EasyCMSError, aI as Endpoint, aJ as EndpointRequest, aK as ErrorCode, F as Field, aM as FieldAccess, a as FieldError, aR as FieldTypeBase, aS as FieldTypeDefinition, aT as FieldTypeValidateContext, b3 as ForbiddenError, b5 as GlobalConfig, I as ID, bf as JobConfig, bi as Label, bv as NavGroup, bw as NotFoundError, by as OnRequest, bz as OnRequestArgs, bC as PLUGIN_API_VERSION, bH as PayloadTooLargeError, bI as Plugin, bJ as PluginInfo, bK as PluginTypes, bN as QueryError, bS as RequestContext, cp as TooManyRequestsError, cq as TypedPlugin, cs as UnauthorizedError, cA as ValidationError, cH as Where, cO as defineFieldType, cP as definePlugin } from './config-BSIIyNMF.js';
|
|
2
|
+
export { A as ADMIN_API_VERSION, c as AdminElementProps, k as AdminPageRoute, S as SetFieldDetail, w as warnDeprecated } from './plugin-B0_7iJ4s.js';
|
|
3
3
|
import './conditions.js';
|
package/dist/plugin.js
CHANGED