@antelopejs/interface-dms 0.5.2 → 0.5.4
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/CHANGELOG.md +46 -0
- package/dist/base/data-types/default-types.d.ts +10 -0
- package/dist/base/data-types/default-types.js +3 -0
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/export-jobs.d.ts +29 -0
- package/dist/base/export-jobs.js +17 -7
- package/dist/base/export-jobs.js.map +1 -1
- package/dist/base/form-block-schema.d.ts +5 -0
- package/dist/base/form-block-schema.js +4 -0
- package/dist/base/form-block-schema.js.map +1 -1
- package/dist/base/form-schema.d.ts +6 -0
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/form-types.d.ts +7 -0
- package/dist/base/form-types.js.map +1 -1
- package/dist/base/index.d.ts +1 -0
- package/dist/base/index.js +1 -0
- package/dist/base/index.js.map +1 -1
- package/dist/base/key-value-list.d.ts +1 -1
- package/dist/base/live-toggle.d.ts +39 -0
- package/dist/base/live-toggle.js +52 -0
- package/dist/base/live-toggle.js.map +1 -0
- package/dist/base/nav-card-grid.d.ts +1 -1
- package/dist/base/period-selector.d.ts +30 -1
- package/dist/base/period-selector.js +3 -0
- package/dist/base/period-selector.js.map +1 -1
- package/dist/base/stat-group.d.ts +2 -2
- package/dist/base/tab.d.ts +10 -0
- package/dist/base/tab.js +1 -0
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/column-display.d.ts +43 -1
- package/dist/base/table-view/column-display.js +16 -1
- package/dist/base/table-view/column-display.js.map +1 -1
- package/dist/base/table-view/factory.js +17 -1
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/validation.js +1 -0
- package/dist/base/table-view/internal/validation.js.map +1 -1
- package/dist/base/table-view/options.d.ts +44 -1
- package/dist/base/table-view/options.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +14 -8
- package/dist/base/table-view/schema.js +8 -0
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/base/table-view/source.d.ts +35 -2
- package/dist/base/table-view/source.js +17 -1
- package/dist/base/table-view/source.js.map +1 -1
- package/dist/base/top-list-card.d.ts +39 -0
- package/dist/base/top-list-card.js +2 -0
- package/dist/base/top-list-card.js.map +1 -1
- package/dist/base/types/action-target.d.ts +51 -2
- package/dist/base/types/internal/action-target.js +3 -1
- package/dist/base/types/internal/action-target.js.map +1 -1
- package/dist/base/types/row-action.d.ts +6 -3
- package/dist/guards.js +2 -2
- package/dist/guards.js.map +1 -1
- package/dist/page/controllers.js +12 -0
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/types.d.ts +44 -0
- package/package.json +3 -2
package/dist/page/controllers.js
CHANGED
|
@@ -131,12 +131,23 @@ function assertHasCategoryOrModule(id, options, kind) {
|
|
|
131
131
|
throw new Error(`${kind} "${id}" must declare either "category" or "module" in its options.`);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
+
// A rate the browser would read as "no cap" or as a busy loop is refused at
|
|
135
|
+
// declaration, where the module author sees it, rather than ignored at run time.
|
|
136
|
+
function assertValidLiveOptions(id, options) {
|
|
137
|
+
const maxRate = options.live?.maxRate;
|
|
138
|
+
if (maxRate === undefined)
|
|
139
|
+
return;
|
|
140
|
+
if (!Number.isFinite(maxRate) || maxRate <= 0) {
|
|
141
|
+
throw new Error(`Page "${id}" declares live.maxRate ${maxRate}: it must be a positive number of seconds.`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
134
144
|
function Category(id, options) {
|
|
135
145
|
assertHasCategoryOrModule(id, options, "Category");
|
|
136
146
|
return (0, categories_1.createCategoryFunction)(id, options);
|
|
137
147
|
}
|
|
138
148
|
function PageController(id, options, layout) {
|
|
139
149
|
assertHasCategoryOrModule(id, options, "Page");
|
|
150
|
+
assertValidLiveOptions(id, options);
|
|
140
151
|
const resolvedOptions = (0, categories_1.applyModuleResolution)(id, options);
|
|
141
152
|
const resolvedCategory = (0, categories_1.resolveCategoryInfo)(resolvedOptions.category);
|
|
142
153
|
(0, categories_1.validateNotInsideSettings)(resolvedOptions.module, resolvedCategory);
|
|
@@ -148,6 +159,7 @@ function PageController(id, options, layout) {
|
|
|
148
159
|
return cl;
|
|
149
160
|
}
|
|
150
161
|
function RootPageController(id, options, layout) {
|
|
162
|
+
assertValidLiveOptions(id, options);
|
|
151
163
|
const fullSlug = (0, categories_1.calculateFullSlug)(id, options);
|
|
152
164
|
const cl = class extends (0, interface_api_1.Controller)(fullSlug) {
|
|
153
165
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":"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"}
|
package/dist/page/types.d.ts
CHANGED
|
@@ -123,6 +123,33 @@ export interface ModuleInfo {
|
|
|
123
123
|
* under it, `"self"` for the entry alone.
|
|
124
124
|
*/
|
|
125
125
|
export type MemberAccess = boolean | "self";
|
|
126
|
+
/**
|
|
127
|
+
* The Direct / Pause valve of a page's realtime (`MenuOptions.live`). It adds
|
|
128
|
+
* no transport: blocks keep their `realtimeTopic` and tables their
|
|
129
|
+
* `realtime`, and the page only decides when the events they receive turn
|
|
130
|
+
* into requests.
|
|
131
|
+
*
|
|
132
|
+
* - **Direct** (the default): a block or table refetches on its events as
|
|
133
|
+
* usual, at most once per `maxRate` seconds. The last event of a burst is
|
|
134
|
+
* never lost: it refetches when the interval ends.
|
|
135
|
+
* - **Pause**: nothing is requested on an event. Each block and table counts
|
|
136
|
+
* the events it receives, and resuming refetches once each one that missed
|
|
137
|
+
* any. A rolling period (`last-hour`, `last-24h`) stops sliding meanwhile.
|
|
138
|
+
*
|
|
139
|
+
* What the user asks for always reads, paused or not: a page header button, a
|
|
140
|
+
* form saved with `BlockFunctions.REFRESH_PAGE`, a table's row actions.
|
|
141
|
+
*
|
|
142
|
+
* The user switches with a `LiveToggle()` block, or the L key while one is on
|
|
143
|
+
* the page; the choice is kept per page in the browser. A table declared with
|
|
144
|
+
* `liveHold` keeps its rows while paused and offers to show what is new.
|
|
145
|
+
*/
|
|
146
|
+
export interface PageLiveOptions {
|
|
147
|
+
/**
|
|
148
|
+
* Shortest interval, in seconds, between two refetches of one block in
|
|
149
|
+
* Direct. Unset, a block refetches on each event, as without `live`.
|
|
150
|
+
*/
|
|
151
|
+
maxRate?: number;
|
|
152
|
+
}
|
|
126
153
|
export interface MenuOptions {
|
|
127
154
|
displayName: string;
|
|
128
155
|
category?: CategoryInfo | ControllerClass;
|
|
@@ -191,6 +218,23 @@ export interface MenuOptions {
|
|
|
191
218
|
* must still reach.
|
|
192
219
|
*/
|
|
193
220
|
bypassTenantAccessGate?: boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Gives the page a Direct / Pause state over the realtime of its blocks
|
|
223
|
+
* (see {@link PageLiveOptions}). A page without it refetches on every
|
|
224
|
+
* event, as before. Read on pages only: a category ignores it.
|
|
225
|
+
*
|
|
226
|
+
* ```ts
|
|
227
|
+
* export class RequestLogs extends PageController("logs", {
|
|
228
|
+
* displayName: "Request logs",
|
|
229
|
+
* module: "api",
|
|
230
|
+
* live: { maxRate: 5 },
|
|
231
|
+
* }) {
|
|
232
|
+
* static liveToggle = LiveToggle();
|
|
233
|
+
* static table = TableView.fromSource({ ..., realtimeTopic: "api:requests", liveHold: true });
|
|
234
|
+
* }
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
live?: PageLiveOptions;
|
|
194
238
|
}
|
|
195
239
|
export interface CategoryInfo extends Omit<MenuOptions, "category"> {
|
|
196
240
|
id: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/interface-dms",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "Public AntelopeJS interfaces of the DMS: pages, components, permissions, tenancy, auth, notifications and HTML rendering.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"antelopejs",
|
|
@@ -30,8 +30,9 @@
|
|
|
30
30
|
"lint": "oxlint && oxfmt --check .",
|
|
31
31
|
"lint:fix": "oxlint --fix --max-warnings=1000000 && oxfmt .",
|
|
32
32
|
"format": "oxfmt .",
|
|
33
|
-
"prepack": "pnpm run build && pnpm run check:exports",
|
|
33
|
+
"prepack": "pnpm run build && pnpm run check:exports && pnpm run check:proxies",
|
|
34
34
|
"check:exports": "node scripts/check-exports.mjs",
|
|
35
|
+
"check:proxies": "node scripts/check-proxies.mjs",
|
|
35
36
|
"release": "release-it",
|
|
36
37
|
"knip": "knip --dependencies",
|
|
37
38
|
"knip:all": "knip"
|