@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.
Files changed (57) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/base/data-types/default-types.d.ts +10 -0
  3. package/dist/base/data-types/default-types.js +3 -0
  4. package/dist/base/data-types/default-types.js.map +1 -1
  5. package/dist/base/export-jobs.d.ts +29 -0
  6. package/dist/base/export-jobs.js +17 -7
  7. package/dist/base/export-jobs.js.map +1 -1
  8. package/dist/base/form-block-schema.d.ts +5 -0
  9. package/dist/base/form-block-schema.js +4 -0
  10. package/dist/base/form-block-schema.js.map +1 -1
  11. package/dist/base/form-schema.d.ts +6 -0
  12. package/dist/base/form-schema.js.map +1 -1
  13. package/dist/base/form-types.d.ts +7 -0
  14. package/dist/base/form-types.js.map +1 -1
  15. package/dist/base/index.d.ts +1 -0
  16. package/dist/base/index.js +1 -0
  17. package/dist/base/index.js.map +1 -1
  18. package/dist/base/key-value-list.d.ts +1 -1
  19. package/dist/base/live-toggle.d.ts +39 -0
  20. package/dist/base/live-toggle.js +52 -0
  21. package/dist/base/live-toggle.js.map +1 -0
  22. package/dist/base/nav-card-grid.d.ts +1 -1
  23. package/dist/base/period-selector.d.ts +30 -1
  24. package/dist/base/period-selector.js +3 -0
  25. package/dist/base/period-selector.js.map +1 -1
  26. package/dist/base/stat-group.d.ts +2 -2
  27. package/dist/base/tab.d.ts +10 -0
  28. package/dist/base/tab.js +1 -0
  29. package/dist/base/tab.js.map +1 -1
  30. package/dist/base/table-view/column-display.d.ts +43 -1
  31. package/dist/base/table-view/column-display.js +16 -1
  32. package/dist/base/table-view/column-display.js.map +1 -1
  33. package/dist/base/table-view/factory.js +17 -1
  34. package/dist/base/table-view/factory.js.map +1 -1
  35. package/dist/base/table-view/internal/validation.js +1 -0
  36. package/dist/base/table-view/internal/validation.js.map +1 -1
  37. package/dist/base/table-view/options.d.ts +44 -1
  38. package/dist/base/table-view/options.js.map +1 -1
  39. package/dist/base/table-view/schema.d.ts +14 -8
  40. package/dist/base/table-view/schema.js +8 -0
  41. package/dist/base/table-view/schema.js.map +1 -1
  42. package/dist/base/table-view/source.d.ts +35 -2
  43. package/dist/base/table-view/source.js +17 -1
  44. package/dist/base/table-view/source.js.map +1 -1
  45. package/dist/base/top-list-card.d.ts +39 -0
  46. package/dist/base/top-list-card.js +2 -0
  47. package/dist/base/top-list-card.js.map +1 -1
  48. package/dist/base/types/action-target.d.ts +51 -2
  49. package/dist/base/types/internal/action-target.js +3 -1
  50. package/dist/base/types/internal/action-target.js.map +1 -1
  51. package/dist/base/types/row-action.d.ts +6 -3
  52. package/dist/guards.js +2 -2
  53. package/dist/guards.js.map +1 -1
  54. package/dist/page/controllers.js +12 -0
  55. package/dist/page/controllers.js.map +1 -1
  56. package/dist/page/types.d.ts +44 -0
  57. package/package.json +3 -2
@@ -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":"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"}
1
+ {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":"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"}
@@ -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.2",
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"