@easy-cms/core 1.2.0 → 1.4.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-D76KI3YL.js → chunk-B2J2KPHA.js} +4427 -3936
- package/dist/{config-BK8lrNcJ.d.ts → config-CBssruvP.d.ts} +39 -7
- package/dist/{handler-Bx_3ilqI.d.ts → handler-BcFlwRK8.d.ts} +1 -1
- package/dist/index.d.ts +73 -5
- package/dist/index.js +1 -1
- package/dist/internal.d.ts +3 -3
- package/dist/internal.js +1 -1
- package/dist/{plugin-aVtmn8t4.d.ts → plugin-CnqJrjt8.d.ts} +4 -2
- package/dist/plugin.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1632,7 +1632,8 @@ interface ScheduledPublish {
|
|
|
1632
1632
|
readonly action: 'publish' | 'unpublish';
|
|
1633
1633
|
/** ISO time the job runs at (or after). */
|
|
1634
1634
|
readonly runAt: string;
|
|
1635
|
-
|
|
1635
|
+
/** `running`: claimed by an instance that is publishing it now. */
|
|
1636
|
+
readonly state: 'pending' | 'running' | 'done' | 'failed';
|
|
1636
1637
|
readonly error: string | null;
|
|
1637
1638
|
readonly author: ID | null;
|
|
1638
1639
|
}
|
|
@@ -1934,8 +1935,14 @@ declare class EasyCMS<C extends Config = Config> {
|
|
|
1934
1935
|
failed: number;
|
|
1935
1936
|
};
|
|
1936
1937
|
}>;
|
|
1937
|
-
|
|
1938
|
+
private runJobsNow;
|
|
1939
|
+
/**
|
|
1940
|
+
* `jobs` of the config that are due. When each last ran is a row of `job-runs`; an instance
|
|
1941
|
+
* claims a run by moving `lastRunAt` from the value it read, so each run happens once however
|
|
1942
|
+
* many instances run jobs.
|
|
1943
|
+
*/
|
|
1938
1944
|
private runConfigJobs;
|
|
1945
|
+
private recordJobRun;
|
|
1939
1946
|
/**
|
|
1940
1947
|
* Sends an event of the app or a plugin (`events` in the config, e.g. `order.paid`) to the
|
|
1941
1948
|
* webhooks that list it. Returns at once; deliveries are queued and retried like content changes.
|
|
@@ -1954,9 +1961,15 @@ declare class EasyCMS<C extends Config = Config> {
|
|
|
1954
1961
|
}>;
|
|
1955
1962
|
/** Webhook deliveries until they succeed, stored in `webhook-deliveries`. */
|
|
1956
1963
|
private webhookQueue;
|
|
1964
|
+
/**
|
|
1965
|
+
* Takes a queued row for this process by writing `changes`, only if it still matches `expect`
|
|
1966
|
+
* (compare and set): `false` when another process changed it first.
|
|
1967
|
+
*/
|
|
1968
|
+
private claim;
|
|
1957
1969
|
/**
|
|
1958
1970
|
* Publishes or unpublishes documents whose scheduled time has come. Safe to call often, e.g.
|
|
1959
|
-
* from a cron job (`GET <api>/jobs/run`) where no process keeps running
|
|
1971
|
+
* from a cron job (`GET <api>/jobs/run`) where no process keeps running, and from several
|
|
1972
|
+
* processes at once: each job is claimed before it runs.
|
|
1960
1973
|
*/
|
|
1961
1974
|
runScheduled(now?: Date): Promise<{
|
|
1962
1975
|
ran: number;
|
|
@@ -1992,7 +2005,10 @@ declare class EasyCMS<C extends Config = Config> {
|
|
|
1992
2005
|
})[]>;
|
|
1993
2006
|
private pendingJobs;
|
|
1994
2007
|
private removeJob;
|
|
1995
|
-
/**
|
|
2008
|
+
/**
|
|
2009
|
+
* Removes webhook deliveries and emails that failed more than 30 days ago, and marks as failed
|
|
2010
|
+
* the ones an admin's Retry left `sending` because its instance stopped.
|
|
2011
|
+
*/
|
|
1996
2012
|
private pruneFailedDeliveries;
|
|
1997
2013
|
private global;
|
|
1998
2014
|
/**
|
|
@@ -2997,10 +3013,21 @@ interface JobConfig {
|
|
|
2997
3013
|
/** Unique, e.g. `ecommerce:carts`. */
|
|
2998
3014
|
readonly name: string;
|
|
2999
3015
|
/**
|
|
3000
|
-
* At most this often, in seconds. Default: every run
|
|
3001
|
-
* it holds across processes and serverless invocations.
|
|
3016
|
+
* At most this often, in seconds. Default: every run, or a day with `at`. The last run is kept
|
|
3017
|
+
* in the database, so it holds across processes and serverless invocations.
|
|
3002
3018
|
*/
|
|
3003
3019
|
readonly every?: number;
|
|
3020
|
+
/**
|
|
3021
|
+
* At this time of day, as `HH:MM` in `timeZone`: once a day, or every few days when `every` is
|
|
3022
|
+
* a number of whole days (e.g. `604800`, weekly). Missed (e.g. the server was down), it runs
|
|
3023
|
+
* once as soon as jobs run again.
|
|
3024
|
+
*/
|
|
3025
|
+
readonly at?: string;
|
|
3026
|
+
/**
|
|
3027
|
+
* Admins may change how often it runs (and at what time) in Settings → Jobs, and go back to
|
|
3028
|
+
* this config's schedule. Any job can be paused there. Default `false`.
|
|
3029
|
+
*/
|
|
3030
|
+
readonly adminSchedule?: boolean;
|
|
3004
3031
|
readonly run: (args: {
|
|
3005
3032
|
readonly cms: EasyCMS;
|
|
3006
3033
|
readonly now: Date;
|
|
@@ -3103,7 +3130,7 @@ declare function definePlugin<const T extends PluginTypes = Record<never, never>
|
|
|
3103
3130
|
interface BackupsConfig {
|
|
3104
3131
|
/** Back up automatically every day or week. Default: only by hand. */
|
|
3105
3132
|
readonly frequency?: 'daily' | 'weekly';
|
|
3106
|
-
/** When, as `HH:MM` in the server's
|
|
3133
|
+
/** When, as `HH:MM` in `timeZone` (the server's by default). Default `03:00`. */
|
|
3107
3134
|
readonly at?: string;
|
|
3108
3135
|
/** How many finished backups to keep; older ones are deleted. Default 7. */
|
|
3109
3136
|
readonly keep?: number;
|
|
@@ -3148,6 +3175,11 @@ interface Config {
|
|
|
3148
3175
|
* convention of Vercel Cron). Logged-in admins can always run jobs.
|
|
3149
3176
|
*/
|
|
3150
3177
|
readonly cronSecret?: string;
|
|
3178
|
+
/**
|
|
3179
|
+
* The time zone of times of day in the config (`jobs[].at`, `backups.at`), e.g.
|
|
3180
|
+
* `Asia/Bangkok`. Default: the server's, which is often UTC on serverless hosts.
|
|
3181
|
+
*/
|
|
3182
|
+
readonly timeZone?: string;
|
|
3151
3183
|
/** Endpoints notified when content changes, e.g. to rebuild a static site. */
|
|
3152
3184
|
readonly webhooks?: readonly WebhookConfig[];
|
|
3153
3185
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as ID, ab as Config, au as EasyCMS, bd as LocalizationConfig, aD as Field, aH as FieldError, aS as FilterOptions, af as CreateEasyCMSOptions, bI as ResolvedConfig } from './config-
|
|
1
|
+
import { I as ID, ab as Config, au as EasyCMS, bd as LocalizationConfig, aD as Field, aH as FieldError, aS as FilterOptions, af as CreateEasyCMSOptions, bI as ResolvedConfig } from './config-CBssruvP.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, E as EmailSetting } from './config-
|
|
2
|
-
export { A as ADAPTER_API_VERSION, a as ADMIN_ICONS, b as Access, c as AccessArgs, d as AccessOptions, e as AdminBrand, f as AdminCommand, g as AdminComponent, h as AdminConfig, i as AdminFieldArgs, j as AdminIcon, k as AdminLocale, l as AdminPage, m as AdminRole, n as AdminRoleChange, o as AdminRoleField, p as AdminRoleTarget, q as AdminRoleView, r as AdminRoles, s as AdminSso, t as AdminSwitcher, u as AdminViewAccess, v as AfterChangeHook, w as AfterDeleteHook, x as AfterReadHook, y as ApiKeyContext, z as ApiKeyGlobalOperation, B as ApiKeyOperation, C as ApiKeyPermissions, D as ArrayField, F as AuditChange, G as AuditConfig, H as AuditEntry, J as AuditLog, K as AuditPage, L as AuditVerification, M as Auth, N as AuthConfig, O as AuthProvider, Q as AuthProviderProfile, R as AuthProviderRequest, S as AuthUser, T as BackupsConfig, U as BeforeChangeHook, V as BeforeDeleteHook, W as BeforeValidateHook, X as Block, Y as BlocksField, Z as BooleanField, _ as BuiltinApiKeysCollection, $ as BuiltinMediaCollection, a0 as BuiltinMediaFoldersCollection, a1 as BuiltinUsersCollection, a2 as BundleHints, a3 as CliCommand, a4 as CollectionAccess, a5 as CollectionAdmin, a6 as CollectionConfig, a7 as CollectionDocument, a8 as CollectionHooks, a9 as CollectionListAdmin, aa as CollectionSlug, ab as Config, ac as ConfigError, ad as ConfigIssue, ae as ContainerAdmin, af as CreateEasyCMSOptions, ag as CreateInput, ah as CreateMigrationResult, ai as CustomField, aj as CustomFieldTypes, ak as DashboardWidget, al as Database, am as DatabaseAdapter, an as DatabaseInitArgs, ao as DatabaseTransfer, ap as DateField, aq as DepthOptions, ar as DirectUpload, as as DiskStorageOptions, at as DocumentOf, au as EasyCMS, av as EasyCMSError, aw as EmailAdapter, ax as EmailField, ay as EmailMessage, az as Endpoint, aA as EndpointRequest, aB as ErrorCode, aC as FIELD_TYPES, aD as Field, aE as FieldAccess, aF as FieldAccessFn, aG as FieldAdmin, aH as FieldError, aI as FieldRule, aJ as FieldType, aK as FieldTypeBase, aL as FieldTypeDefinition, aM as FieldTypeValidateContext, aN as FieldValidate, aO as FieldValidateContext, aP as FieldValue, aQ as FieldsInput, aR as FieldsValue, aS as FilterOptions, aT as FilterOptionsArgs, aU as FindArgs, aV as FindOptions, aW as FolderLevel, aX as FolderPermissions, aY as ForbiddenError, aZ as GlobalAccess, a_ as GlobalConfig, a$ as GlobalDocument, b0 as GlobalHooks, b1 as GlobalInput, b2 as GlobalSlug, b3 as GroupField, b4 as ImageSize, b5 as IncrementOptions, b6 as InferCollection, b7 as InferGlobal, b8 as JobConfig, b9 as JsonField, ba as Label, bb as LayoutNode, bc as LivePreview, bd as LocalizationConfig, be as Logger, bf as LoginArgs, bg as MediaDocument, bh as MediaSize, bi as MembersConfig, bj as MembersSignup, bk as MigrationInfo, bl as NavGroup, bm as NotFoundError, bn as NumberField, bo as OnRequest, bp as OnRequestArgs, bq as Operation, br as PLUGIN_API_VERSION, bs as PasswordEmail, bt as PasswordEmailArgs, bu as PasswordEmailFn, bv as PasswordLinkOptions, bw as PayloadTooLargeError, bx as Plugin, by as PluginInfo, bz as PluginTypes, bA as PreviewTarget, bB as PreviewURL, bC as QueryError, bD as ROLE_OPERATIONS, bE as RawDocument, bF as ReadOptions, bG as RelationshipField, bH as RequestContext, bI as ResolvedConfig, bJ as RichTextDocument, bK as RichTextField, bL as Role, bM as RoleOperation, bN as RolePermissions, bO as Roles, bP as RoutesConfig, bQ as ScheduledPublish, bR as SchemaError, bS as SchemaMode, bT as SelectField, bU as SelectOption, bV as Session, bW as SidebarPanel, bX as SignupArgs, bY as SignupResult, bZ as SingleSignOn, b_ as SlugField, b$ as SlugOf, c0 as SsoOutcome, c1 as SsoProviderRef, c2 as StorageAdapter, c3 as StoredFile, c4 as TextField, c5 as TextareaField, c6 as TooManyRequestsError, c7 as TypedPlugin, c8 as UnauthorizedError, c9 as UpdateInput, ca as UpdateOptions, cb as UploadConfig, cc as UploadField, cd as UploadFromURLConfig, ce as UserIdentity, cf as ValidationError, cg as Version, ch as VersionSummary, ci as VersionsConfig, cj as WEBHOOK_EVENTS, ck as WebhookConfig, cl as WebhookEvent, cm as WebhookPayload, cn as Where, co as WhereOperators, cp as anyone, cq as consoleEmail, cr as consoleLogger, cs as createEasyCMS, ct as defineConfig, cu as defineFieldType, cv as definePlugin, cw as diskStorage, cx as hasRows, cy as isAdmin, cz as isHasMany, cA as isSignedIn, cB as isStaff, cC as isSystemAdmin, cD as mimeAllowedBy, cE as rowFields, cF as silentLogger, cG 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, E as EmailSetting } from './config-CBssruvP.js';
|
|
2
|
+
export { A as ADAPTER_API_VERSION, a as ADMIN_ICONS, b as Access, c as AccessArgs, d as AccessOptions, e as AdminBrand, f as AdminCommand, g as AdminComponent, h as AdminConfig, i as AdminFieldArgs, j as AdminIcon, k as AdminLocale, l as AdminPage, m as AdminRole, n as AdminRoleChange, o as AdminRoleField, p as AdminRoleTarget, q as AdminRoleView, r as AdminRoles, s as AdminSso, t as AdminSwitcher, u as AdminViewAccess, v as AfterChangeHook, w as AfterDeleteHook, x as AfterReadHook, y as ApiKeyContext, z as ApiKeyGlobalOperation, B as ApiKeyOperation, C as ApiKeyPermissions, D as ArrayField, F as AuditChange, G as AuditConfig, H as AuditEntry, J as AuditLog, K as AuditPage, L as AuditVerification, M as Auth, N as AuthConfig, O as AuthProvider, Q as AuthProviderProfile, R as AuthProviderRequest, S as AuthUser, T as BackupsConfig, U as BeforeChangeHook, V as BeforeDeleteHook, W as BeforeValidateHook, X as Block, Y as BlocksField, Z as BooleanField, _ as BuiltinApiKeysCollection, $ as BuiltinMediaCollection, a0 as BuiltinMediaFoldersCollection, a1 as BuiltinUsersCollection, a2 as BundleHints, a3 as CliCommand, a4 as CollectionAccess, a5 as CollectionAdmin, a6 as CollectionConfig, a7 as CollectionDocument, a8 as CollectionHooks, a9 as CollectionListAdmin, aa as CollectionSlug, ab as Config, ac as ConfigError, ad as ConfigIssue, ae as ContainerAdmin, af as CreateEasyCMSOptions, ag as CreateInput, ah as CreateMigrationResult, ai as CustomField, aj as CustomFieldTypes, ak as DashboardWidget, al as Database, am as DatabaseAdapter, an as DatabaseInitArgs, ao as DatabaseTransfer, ap as DateField, aq as DepthOptions, ar as DirectUpload, as as DiskStorageOptions, at as DocumentOf, au as EasyCMS, av as EasyCMSError, aw as EmailAdapter, ax as EmailField, ay as EmailMessage, az as Endpoint, aA as EndpointRequest, aB as ErrorCode, aC as FIELD_TYPES, aD as Field, aE as FieldAccess, aF as FieldAccessFn, aG as FieldAdmin, aH as FieldError, aI as FieldRule, aJ as FieldType, aK as FieldTypeBase, aL as FieldTypeDefinition, aM as FieldTypeValidateContext, aN as FieldValidate, aO as FieldValidateContext, aP as FieldValue, aQ as FieldsInput, aR as FieldsValue, aS as FilterOptions, aT as FilterOptionsArgs, aU as FindArgs, aV as FindOptions, aW as FolderLevel, aX as FolderPermissions, aY as ForbiddenError, aZ as GlobalAccess, a_ as GlobalConfig, a$ as GlobalDocument, b0 as GlobalHooks, b1 as GlobalInput, b2 as GlobalSlug, b3 as GroupField, b4 as ImageSize, b5 as IncrementOptions, b6 as InferCollection, b7 as InferGlobal, b8 as JobConfig, b9 as JsonField, ba as Label, bb as LayoutNode, bc as LivePreview, bd as LocalizationConfig, be as Logger, bf as LoginArgs, bg as MediaDocument, bh as MediaSize, bi as MembersConfig, bj as MembersSignup, bk as MigrationInfo, bl as NavGroup, bm as NotFoundError, bn as NumberField, bo as OnRequest, bp as OnRequestArgs, bq as Operation, br as PLUGIN_API_VERSION, bs as PasswordEmail, bt as PasswordEmailArgs, bu as PasswordEmailFn, bv as PasswordLinkOptions, bw as PayloadTooLargeError, bx as Plugin, by as PluginInfo, bz as PluginTypes, bA as PreviewTarget, bB as PreviewURL, bC as QueryError, bD as ROLE_OPERATIONS, bE as RawDocument, bF as ReadOptions, bG as RelationshipField, bH as RequestContext, bI as ResolvedConfig, bJ as RichTextDocument, bK as RichTextField, bL as Role, bM as RoleOperation, bN as RolePermissions, bO as Roles, bP as RoutesConfig, bQ as ScheduledPublish, bR as SchemaError, bS as SchemaMode, bT as SelectField, bU as SelectOption, bV as Session, bW as SidebarPanel, bX as SignupArgs, bY as SignupResult, bZ as SingleSignOn, b_ as SlugField, b$ as SlugOf, c0 as SsoOutcome, c1 as SsoProviderRef, c2 as StorageAdapter, c3 as StoredFile, c4 as TextField, c5 as TextareaField, c6 as TooManyRequestsError, c7 as TypedPlugin, c8 as UnauthorizedError, c9 as UpdateInput, ca as UpdateOptions, cb as UploadConfig, cc as UploadField, cd as UploadFromURLConfig, ce as UserIdentity, cf as ValidationError, cg as Version, ch as VersionSummary, ci as VersionsConfig, cj as WEBHOOK_EVENTS, ck as WebhookConfig, cl as WebhookEvent, cm as WebhookPayload, cn as Where, co as WhereOperators, cp as anyone, cq as consoleEmail, cr as consoleLogger, cs as createEasyCMS, ct as defineConfig, cu as defineFieldType, cv as definePlugin, cw as diskStorage, cx as hasRows, cy as isAdmin, cz as isHasMany, cA as isSignedIn, cB as isStaff, cC as isSystemAdmin, cD as mimeAllowedBy, cE as rowFields, cF as silentLogger, cG as uniqueWithinOf } from './config-CBssruvP.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-CnqJrjt8.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-BcFlwRK8.js';
|
|
5
5
|
export { FieldCondition, matchesCondition } from './conditions.js';
|
|
6
6
|
|
|
7
7
|
type DeliveryKind = 'webhook' | 'email';
|
|
@@ -67,6 +67,62 @@ type EmailCheck = {
|
|
|
67
67
|
error: string;
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
+
/** One of the config's `jobs`, with its last run here (Settings → Jobs). */
|
|
71
|
+
interface AdminJob {
|
|
72
|
+
name: string;
|
|
73
|
+
/** Seconds between runs in effect; `null`: every time jobs run (or daily, with `at`). */
|
|
74
|
+
every: number | null;
|
|
75
|
+
/** Time of day in effect (`HH:MM` in `timeZone`), or `null`. */
|
|
76
|
+
at: string | null;
|
|
77
|
+
/** The config's schedule, which `every` and `at` differ from when an admin changed them. */
|
|
78
|
+
code: {
|
|
79
|
+
every: number | null;
|
|
80
|
+
at: string | null;
|
|
81
|
+
};
|
|
82
|
+
/** Admins may change its schedule (`adminSchedule`). */
|
|
83
|
+
adminSchedule: boolean;
|
|
84
|
+
/** Paused from Settings → Jobs: when and by whom (an email). */
|
|
85
|
+
paused: {
|
|
86
|
+
at: string;
|
|
87
|
+
by: string | null;
|
|
88
|
+
} | null;
|
|
89
|
+
/** An admin's schedule in place of the config's: who set it and when. */
|
|
90
|
+
changed: {
|
|
91
|
+
by: string | null;
|
|
92
|
+
at: string | null;
|
|
93
|
+
} | null;
|
|
94
|
+
/** ISO time of the last run, `null` before the first. */
|
|
95
|
+
lastRunAt: string | null;
|
|
96
|
+
/** ISO time it is next due; `null`: whenever jobs next run. */
|
|
97
|
+
nextAt: string | null;
|
|
98
|
+
/** `null` before its first run here (or a time carried over from before `job-runs`). */
|
|
99
|
+
lastStatus: 'running' | 'ok' | 'failed' | null;
|
|
100
|
+
lastError: string | null;
|
|
101
|
+
lastDurationMs: number | null;
|
|
102
|
+
}
|
|
103
|
+
/** A scheduled publish or unpublish that hasn't finished: waiting, running, or failed. */
|
|
104
|
+
interface AdminScheduledJob {
|
|
105
|
+
id: ID;
|
|
106
|
+
action: 'publish' | 'unpublish';
|
|
107
|
+
runAt: string;
|
|
108
|
+
state: 'pending' | 'running' | 'failed';
|
|
109
|
+
error: string | null;
|
|
110
|
+
/** The document's collection, or the global (`global`), and the document's id (0 for globals). */
|
|
111
|
+
collection?: string;
|
|
112
|
+
global?: string;
|
|
113
|
+
doc: ID;
|
|
114
|
+
}
|
|
115
|
+
/** What Settings → Jobs shows (`GET <api>/admin/jobs`). */
|
|
116
|
+
interface AdminJobs {
|
|
117
|
+
jobs: AdminJob[];
|
|
118
|
+
/** The time zone of `at` (`timeZone` in the config), `null`: the server's. */
|
|
119
|
+
timeZone: string | null;
|
|
120
|
+
/** This user may pause jobs and change schedules (admins of the whole system). */
|
|
121
|
+
canChange: boolean;
|
|
122
|
+
/** `null` when nothing uses `schedule`. */
|
|
123
|
+
scheduled: AdminScheduledJob[] | null;
|
|
124
|
+
}
|
|
125
|
+
|
|
70
126
|
interface SearchHit {
|
|
71
127
|
readonly collection: string;
|
|
72
128
|
readonly id: ID;
|
|
@@ -121,6 +177,18 @@ type AdminAttention =
|
|
|
121
177
|
id: 'audit-tampered';
|
|
122
178
|
invalid: number;
|
|
123
179
|
at: string;
|
|
180
|
+
}
|
|
181
|
+
/** `jobs` of the config whose last run failed (Settings → Jobs). */
|
|
182
|
+
| {
|
|
183
|
+
id: 'jobs';
|
|
184
|
+
count: number;
|
|
185
|
+
names: string[];
|
|
186
|
+
}
|
|
187
|
+
/** `jobs` paused from Settings → Jobs. */
|
|
188
|
+
| {
|
|
189
|
+
id: 'jobs-paused';
|
|
190
|
+
count: number;
|
|
191
|
+
names: string[];
|
|
124
192
|
};
|
|
125
193
|
/** What the dashboard shows admins (`GET <api>/admin/status`). */
|
|
126
194
|
interface AdminStatus {
|
|
@@ -147,4 +215,4 @@ interface AdminStatus {
|
|
|
147
215
|
/** The version of `@easy-cms/core`, set when the package is built. */
|
|
148
216
|
declare const VERSION: string;
|
|
149
217
|
|
|
150
|
-
export { type AdminAttention, type AdminDeliveries, type AdminDelivery, type AdminEmail, type AdminEmailDelivery, type AdminStatus, type AdminWebhookDelivery, type DeliveryKind, type DeliveryState, type EmailCheck, EmailSetting, ID, PaginatedDocs, type SearchHit, VERSION };
|
|
218
|
+
export { type AdminAttention, type AdminDeliveries, type AdminDelivery, type AdminEmail, type AdminEmailDelivery, type AdminJob, type AdminJobs, type AdminScheduledJob, type AdminStatus, type AdminWebhookDelivery, type DeliveryKind, type DeliveryState, type EmailCheck, EmailSetting, ID, PaginatedDocs, type SearchHit, VERSION };
|
package/dist/index.js
CHANGED
package/dist/internal.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ab as Config, al as Database, bl as NavGroup, a6 as CollectionConfig, I as ID, bE as RawDocument, aD as Field, bI as ResolvedConfig, ad as ConfigIssue } from './config-
|
|
2
|
-
export { cH as API_KEYS, cI as API_KEY_GLOBAL_OPERATIONS, cJ as API_KEY_OPERATIONS, cK as DEFAULT_MAX_VERSIONS, cL as DEFAULT_PASSWORD_EMAILS, cM as FIELD_TYPE_BASES, cN as FOLDER_LEVELS, cO as MediaFolders, cP as SSO_COOKIE, cQ as codeOfStatus, cx as hasRows, cz as isHasMany, cR as keyAllows, cD as mimeAllowedBy, cE as rowFields, cG 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 mergeForUpdate, y as parseId, z as platformClientIp, E as readCookie, F as validateFields, G as writeBackupFile } from './handler-
|
|
1
|
+
import { ab as Config, al as Database, bl as NavGroup, a6 as CollectionConfig, I as ID, bE as RawDocument, aD as Field, bI as ResolvedConfig, ad as ConfigIssue } from './config-CBssruvP.js';
|
|
2
|
+
export { cH as API_KEYS, cI as API_KEY_GLOBAL_OPERATIONS, cJ as API_KEY_OPERATIONS, cK as DEFAULT_MAX_VERSIONS, cL as DEFAULT_PASSWORD_EMAILS, cM as FIELD_TYPE_BASES, cN as FOLDER_LEVELS, cO as MediaFolders, cP as SSO_COOKIE, cQ as codeOfStatus, cx as hasRows, cz as isHasMany, cR as keyAllows, cD as mimeAllowedBy, cE as rowFields, cG as uniqueWithinOf } from './config-CBssruvP.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 mergeForUpdate, y as parseId, z as platformClientIp, E as readCookie, F as validateFields, G as writeBackupFile } from './handler-BcFlwRK8.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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ba as Label, aD as Field, I as ID, k as AdminLocale, t as AdminSwitcher, c1 as SsoProviderRef } from './config-
|
|
1
|
+
import { ba as Label, aD as Field, I as ID, k as AdminLocale, t as AdminSwitcher, c1 as SsoProviderRef } from './config-CBssruvP.js';
|
|
2
2
|
import { FieldCondition } from './conditions.js';
|
|
3
3
|
|
|
4
4
|
/** A Web Component from an admin module, with its `props` (plain JSON). */
|
|
@@ -39,7 +39,7 @@ type AdminNavItem = {
|
|
|
39
39
|
path: string;
|
|
40
40
|
} | {
|
|
41
41
|
kind: 'view';
|
|
42
|
-
view: 'roles' | 'sso' | 'backups' | 'email' | 'deliveries' | 'audit';
|
|
42
|
+
view: 'roles' | 'sso' | 'backups' | 'email' | 'deliveries' | 'jobs' | 'audit';
|
|
43
43
|
};
|
|
44
44
|
/** A group of the admin menu (`admin.nav`), with what this user may open in it. */
|
|
45
45
|
interface AdminNavGroup {
|
|
@@ -251,6 +251,8 @@ interface AdminSchema {
|
|
|
251
251
|
views: {
|
|
252
252
|
status: boolean;
|
|
253
253
|
deliveries: boolean;
|
|
254
|
+
/** Settings → Jobs: the config's `jobs` and the scheduled-publish queue. */
|
|
255
|
+
jobs: boolean;
|
|
254
256
|
backups: boolean;
|
|
255
257
|
email: boolean;
|
|
256
258
|
roles: boolean;
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { a as ADMIN_ICONS, g as AdminComponent, j as AdminIcon, S as AuthUser, a3 as CliCommand, a4 as CollectionAccess, a6 as CollectionConfig, ab as Config, ac as ConfigError, ak as DashboardWidget, av as EasyCMSError, az as Endpoint, aA as EndpointRequest, aB as ErrorCode, aD as Field, aE as FieldAccess, aH as FieldError, aK as FieldTypeBase, aL as FieldTypeDefinition, aM as FieldTypeValidateContext, aY as ForbiddenError, a_ as GlobalConfig, I as ID, b8 as JobConfig, ba as Label, bl as NavGroup, bm as NotFoundError, bo as OnRequest, bp as OnRequestArgs, br as PLUGIN_API_VERSION, bw as PayloadTooLargeError, bx as Plugin, by as PluginInfo, bz as PluginTypes, bC as QueryError, bH as RequestContext, c6 as TooManyRequestsError, c7 as TypedPlugin, c8 as UnauthorizedError, cf as ValidationError, cn as Where, cu as defineFieldType, cv 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 { a as ADMIN_ICONS, g as AdminComponent, j as AdminIcon, S as AuthUser, a3 as CliCommand, a4 as CollectionAccess, a6 as CollectionConfig, ab as Config, ac as ConfigError, ak as DashboardWidget, av as EasyCMSError, az as Endpoint, aA as EndpointRequest, aB as ErrorCode, aD as Field, aE as FieldAccess, aH as FieldError, aK as FieldTypeBase, aL as FieldTypeDefinition, aM as FieldTypeValidateContext, aY as ForbiddenError, a_ as GlobalConfig, I as ID, b8 as JobConfig, ba as Label, bl as NavGroup, bm as NotFoundError, bo as OnRequest, bp as OnRequestArgs, br as PLUGIN_API_VERSION, bw as PayloadTooLargeError, bx as Plugin, by as PluginInfo, bz as PluginTypes, bC as QueryError, bH as RequestContext, c6 as TooManyRequestsError, c7 as TypedPlugin, c8 as UnauthorizedError, cf as ValidationError, cn as Where, cu as defineFieldType, cv as definePlugin } from './config-CBssruvP.js';
|
|
2
|
+
export { A as ADMIN_API_VERSION, c as AdminElementProps, k as AdminPageRoute, S as SetFieldDetail, w as warnDeprecated } from './plugin-CnqJrjt8.js';
|
|
3
3
|
import './conditions.js';
|