@antelopejs/interface-dms 0.12.0 โ 0.13.1
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 +139 -0
- package/README.md +2 -2
- package/dist/base/block-registry/internal/describe.js +1 -3
- package/dist/base/block-registry/internal/describe.js.map +1 -1
- package/dist/base/table-view/internal/guards.js +15 -8
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/option-contract.d.ts +8 -0
- package/dist/base/table-view/schema.d.ts +5 -0
- package/dist/base/table-view/schema.js +2 -1
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/component-options/page-layout.d.ts +3 -2
- package/dist/component-options/page-layout.js.map +1 -1
- package/dist/db/internal/tenantLifecycle.model.d.ts +8 -2
- package/dist/db/internal/tenantLifecycle.model.js +16 -7
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
- package/dist/internal/uploads.d.ts +30 -0
- package/dist/internal/uploads.js +19 -0
- package/dist/internal/uploads.js.map +1 -1
- package/dist/page/internal/metadata-upload-registration.d.ts +2 -2
- package/dist/page/internal/metadata-upload-registration.js +5 -5
- package/dist/page/internal/metadata-upload-registration.js.map +1 -1
- package/dist/page/internal/metadata-uploads.d.ts +2 -15
- package/dist/page/internal/metadata-uploads.js +1 -4
- package/dist/page/internal/metadata-uploads.js.map +1 -1
- package/dist/page/internal/page-record.js +4 -2
- package/dist/page/internal/page-record.js.map +1 -1
- package/dist/tenant-lifecycle.d.ts +34 -4
- package/dist/tenant-lifecycle.js +57 -11
- package/dist/tenant-lifecycle.js.map +1 -1
- package/dist/uploads.d.ts +1 -1
- package/dist/uploads.js +2 -6
- package/dist/uploads.js.map +1 -1
- package/docs/1.core/5.tenancy.md +39 -1
- package/docs/1.core/7.hooks.md +1 -1
- package/docs/3.base/11.page-layouts.md +1 -4
- package/docs/3.base/4.tables.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,144 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.13.1
|
|
4
|
+
|
|
5
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.13.0...v0.13.1)
|
|
6
|
+
|
|
7
|
+
### ๐ Enhancements
|
|
8
|
+
|
|
9
|
+
- **dms-ui:** Show a KPI payload's caption as the card's footnote ([#844](https://github.com/AntelopeJS/dms/pull/844))
|
|
10
|
+
|
|
11
|
+
### ๐ฉน Fixes
|
|
12
|
+
|
|
13
|
+
- **docs:** Open the sign-in capture signed out so later scenes keep the session ([#836](https://github.com/AntelopeJS/dms/pull/836))
|
|
14
|
+
- **dms-control:** Let read-only commands read a run from another PID namespace ([#843](https://github.com/AntelopeJS/dms/pull/843))
|
|
15
|
+
- **agents:** Type-check the probes' JSDoc with checkJs ([#842](https://github.com/AntelopeJS/dms/pull/842))
|
|
16
|
+
|
|
17
|
+
### ๐ Documentation
|
|
18
|
+
|
|
19
|
+
- **readme:** Tell the one-run story from the X article ([#841](https://github.com/AntelopeJS/dms/pull/841))
|
|
20
|
+
|
|
21
|
+
### ๐ฆ Build
|
|
22
|
+
|
|
23
|
+
- **deps:** Take tooling-configs 0.5.0 ([#840](https://github.com/AntelopeJS/dms/pull/840))
|
|
24
|
+
|
|
25
|
+
### ๐ก Chore
|
|
26
|
+
|
|
27
|
+
- **dms:** Depend on @antelopejs/interface-dms 0.13 ([#839](https://github.com/AntelopeJS/dms/pull/839))
|
|
28
|
+
- **release:** @antelopejs/dms v0.19.0 ([f1b73262](https://github.com/AntelopeJS/dms/commit/f1b73262))
|
|
29
|
+
- **release:** @antelopejs/dms v0.19.1 ([1fb6093f](https://github.com/AntelopeJS/dms/commit/1fb6093f))
|
|
30
|
+
|
|
31
|
+
### โค๏ธ Contributors
|
|
32
|
+
|
|
33
|
+
- Antony Rizzitelli ([@Upd4ting](http://github.com/Upd4ting))
|
|
34
|
+
|
|
35
|
+
## v0.13.0
|
|
36
|
+
|
|
37
|
+
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.12.0...v0.13.0)
|
|
38
|
+
|
|
39
|
+
### ๐ Enhancements
|
|
40
|
+
|
|
41
|
+
- **header:** Let a header action draw a module component as its icon ([#772](https://github.com/AntelopeJS/dms/pull/772))
|
|
42
|
+
- **dms:** Read the sign-in country without a bundled database ([#776](https://github.com/AntelopeJS/dms/pull/776))
|
|
43
|
+
- **verify-dms:** Run every feature when a shared file changes ([#783](https://github.com/AntelopeJS/dms/pull/783))
|
|
44
|
+
- **dms-control:** Record per-phase timings of a verify run ([#784](https://github.com/AntelopeJS/dms/pull/784))
|
|
45
|
+
- **dms-control:** Serve the dashboard with ajs dms dev under up --dev-frontend ([#829](https://github.com/AntelopeJS/dms/pull/829))
|
|
46
|
+
- **table-view:** Add liveHold.whileOnScreen to let a live table follow its feed on screen ([#808](https://github.com/AntelopeJS/dms/pull/808))
|
|
47
|
+
|
|
48
|
+
### ๐ฅ Performance
|
|
49
|
+
|
|
50
|
+
- **store:** Let the modules listing read stale registry answers ([#768](https://github.com/AntelopeJS/dms/pull/768))
|
|
51
|
+
- **dms-control:** Stop the previous journey's backend at once ([#785](https://github.com/AntelopeJS/dms/pull/785))
|
|
52
|
+
- **ci:** Scan the playground import fixtures together ([#791](https://github.com/AntelopeJS/dms/pull/791))
|
|
53
|
+
- **dms-control:** Start the next journey's backend while the current one runs ([#788](https://github.com/AntelopeJS/dms/pull/788))
|
|
54
|
+
- **docs:** Capture the documentation screenshots in parallel ([#792](https://github.com/AntelopeJS/dms/pull/792))
|
|
55
|
+
- **dms-control:** Reuse the frontend build of unchanged sources ([#787](https://github.com/AntelopeJS/dms/pull/787))
|
|
56
|
+
- **dms-control:** Take screenshots on checks and failures only ([#786](https://github.com/AntelopeJS/dms/pull/786))
|
|
57
|
+
|
|
58
|
+
### ๐ฉน Fixes
|
|
59
|
+
|
|
60
|
+
- **layout:** Keep the platform title in the document title after sign-in ([#767](https://github.com/AntelopeJS/dms/pull/767))
|
|
61
|
+
- **layout:** Keep a closing toast inside the collapsed stack ([#771](https://github.com/AntelopeJS/dms/pull/771))
|
|
62
|
+
- **auth:** List each person once in the account switcher ([#770](https://github.com/AntelopeJS/dms/pull/770))
|
|
63
|
+
- **dms-dev:** Run dev servers side by side across worktrees ([#769](https://github.com/AntelopeJS/dms/pull/769))
|
|
64
|
+
- **dms-layout:** Re-export usePageHeaderActions by relative path so unimport scans it ([#777](https://github.com/AntelopeJS/dms/pull/777))
|
|
65
|
+
- **dms-control:** Refuse to signal a pid that is not a whole number above 1 ([#789](https://github.com/AntelopeJS/dms/pull/789))
|
|
66
|
+
- **ci:** Check the scanner exit status per diagnostic kind in the import test ([#793](https://github.com/AntelopeJS/dms/pull/793))
|
|
67
|
+
- **verify-dms:** Expect the assistant ask item in the palette no-match journey ([#799](https://github.com/AntelopeJS/dms/pull/799))
|
|
68
|
+
- **notifications:** Undo mark-all-read in one bulk update ([#826](https://github.com/AntelopeJS/dms/pull/826))
|
|
69
|
+
- **dms:** Auto-import isReducedMotionActive for frontend modules ([#823](https://github.com/AntelopeJS/dms/pull/823))
|
|
70
|
+
- **dms-control:** Resolve moduleRoot to the module above a skill playground ([#827](https://github.com/AntelopeJS/dms/pull/827))
|
|
71
|
+
- **preview:** Draw a serialized resource form that reads any path of the site ([#820](https://github.com/AntelopeJS/dms/pull/820))
|
|
72
|
+
- **dms-control:** Key a non-literal module specifier by its structure in the emit fingerprint ([#816](https://github.com/AntelopeJS/dms/pull/816))
|
|
73
|
+
- **dms:** Keep the newest row read when two table row updates answer out of order ([#812](https://github.com/AntelopeJS/dms/pull/812))
|
|
74
|
+
- **dms-ui:** Keep query-only block action links in the browser ([#832](https://github.com/AntelopeJS/dms/pull/832))
|
|
75
|
+
- **chart:** Stop a donut redrawing itself through its parent resize observer ([#835](https://github.com/AntelopeJS/dms/pull/835))
|
|
76
|
+
- **release:** Decide the interface range check as semver does ([#813](https://github.com/AntelopeJS/dms/pull/813))
|
|
77
|
+
- **dms-control:** Let journeys stop and restart the run's mongod ([#831](https://github.com/AntelopeJS/dms/pull/831))
|
|
78
|
+
- **dms-control:** Start the base backend when the base ref has no playground ([#818](https://github.com/AntelopeJS/dms/pull/818))
|
|
79
|
+
- **dms-control:** Start the run's mongod as a single-node replica set ([#830](https://github.com/AntelopeJS/dms/pull/830))
|
|
80
|
+
- **realtime:** Read a page's data again once its subscription is in place ([#810](https://github.com/AntelopeJS/dms/pull/810))
|
|
81
|
+
- **dms-control:** Ship playwright-core as an optional dependency of @antelopejs/dms ([#817](https://github.com/AntelopeJS/dms/pull/817))
|
|
82
|
+
- **auth:** Show a no-workspace screen when no module serves /auth/no-workspace ([#800](https://github.com/AntelopeJS/dms/pull/800))
|
|
83
|
+
- **dms-control:** Fail a formal finding dropped by a check edit instead of counting it fixed ([#821](https://github.com/AntelopeJS/dms/pull/821))
|
|
84
|
+
- **playground:** Load an api that reads RouteHandler.controller ([#819](https://github.com/AntelopeJS/dms/pull/819))
|
|
85
|
+
- **dms-ui:** Build a module drawer's provides from the raw caller provides ([#809](https://github.com/AntelopeJS/dms/pull/809))
|
|
86
|
+
- **dms-control:** Identify each process from the read that finds it, and check it again before each signal ([#801](https://github.com/AntelopeJS/dms/pull/801))
|
|
87
|
+
- **interface-dms:** Answer 400 to a guarded confirmation body that is not a JSON object ([#828](https://github.com/AntelopeJS/dms/pull/828))
|
|
88
|
+
- **interface-dms:** Accept a model row or a PromiseLike from PageRecordLoader ([#815](https://github.com/AntelopeJS/dms/pull/815))
|
|
89
|
+
- **interface-dms:** Refuse upload field options that are not an object ([#825](https://github.com/AntelopeJS/dms/pull/825))
|
|
90
|
+
- **oauth:** Create no account before the platform has its owner ([#807](https://github.com/AntelopeJS/dms/pull/807))
|
|
91
|
+
- **dms:** Stop without waiting for a default tenant provisioning run in progress ([#804](https://github.com/AntelopeJS/dms/pull/804))
|
|
92
|
+
- **tenant-lifecycle:** Name a blocked release and give operators a way to retire it ([#822](https://github.com/AntelopeJS/dms/pull/822))
|
|
93
|
+
- **onboarding:** Keep the register as the one writer of has_onboarded ([#806](https://github.com/AntelopeJS/dms/pull/806))
|
|
94
|
+
|
|
95
|
+
### ๐
Refactors
|
|
96
|
+
|
|
97
|
+
- **dms-control:** Remove publish, its evidence branch, comment and status ([#838](https://github.com/AntelopeJS/dms/pull/838))
|
|
98
|
+
- **iface:** Drop the shape-name suppressions in block-registry describe ([#803](https://github.com/AntelopeJS/dms/pull/803))
|
|
99
|
+
|
|
100
|
+
### ๐ Documentation
|
|
101
|
+
|
|
102
|
+
- **dms:** Explain what the AntelopeJS agent plugin unlocks, External database included ([#773](https://github.com/AntelopeJS/dms/pull/773))
|
|
103
|
+
- **dms:** Mark the ResourceForm mode and the source tables in the docs examples ([#780](https://github.com/AntelopeJS/dms/pull/780))
|
|
104
|
+
- **dms:** Start the quickstart with the dms-starter template ([#782](https://github.com/AntelopeJS/dms/pull/782))
|
|
105
|
+
- **readme:** Lead with the problem and add animated section banners ([#833](https://github.com/AntelopeJS/dms/pull/833))
|
|
106
|
+
- **readme:** Open on the Helio tour and explain the Connect flow ([#834](https://github.com/AntelopeJS/dms/pull/834))
|
|
107
|
+
- **getting-started:** Title the starter guide "Quickstart" ([#837](https://github.com/AntelopeJS/dms/pull/837))
|
|
108
|
+
- Refresh the stale block screenshots ([#802](https://github.com/AntelopeJS/dms/pull/802))
|
|
109
|
+
|
|
110
|
+
### ๐ฆ Build
|
|
111
|
+
|
|
112
|
+
- **deps:** Move to @antelopejs/core 1.20 and drop the interface-core override ([#765](https://github.com/AntelopeJS/dms/pull/765))
|
|
113
|
+
- **deps:** Bump @antelopejs packages to the 2026-11-06 releases ([#781](https://github.com/AntelopeJS/dms/pull/781))
|
|
114
|
+
|
|
115
|
+
### ๐ก Chore
|
|
116
|
+
|
|
117
|
+
- **release:** @antelopejs/dms v0.16.0 ([f438f68f](https://github.com/AntelopeJS/dms/commit/f438f68f))
|
|
118
|
+
- Land the cleanup campaign on main ([#764](https://github.com/AntelopeJS/dms/pull/764))
|
|
119
|
+
- **release:** @antelopejs/dms v0.16.1 ([15b8db45](https://github.com/AntelopeJS/dms/commit/15b8db45))
|
|
120
|
+
- Remove the .amp directory ([#766](https://github.com/AntelopeJS/dms/pull/766))
|
|
121
|
+
- **release:** @antelopejs/dms v0.16.2 ([a623158c](https://github.com/AntelopeJS/dms/commit/a623158c))
|
|
122
|
+
- **dms-control:** Remove seeded runs and containment journeys from verification ([#774](https://github.com/AntelopeJS/dms/pull/774))
|
|
123
|
+
- **release:** @antelopejs/dms v0.17.0 ([b6f3224e](https://github.com/AntelopeJS/dms/commit/b6f3224e))
|
|
124
|
+
- **dms:** Commit the module locks the test runs record ([#775](https://github.com/AntelopeJS/dms/pull/775))
|
|
125
|
+
- **ci:** Remove the weekly mutation caller ([#778](https://github.com/AntelopeJS/dms/pull/778))
|
|
126
|
+
- **release:** @antelopejs/dms v0.18.0 ([95115920](https://github.com/AntelopeJS/dms/commit/95115920))
|
|
127
|
+
- **release:** @antelopejs/dms v0.18.1 ([07d0e757](https://github.com/AntelopeJS/dms/commit/07d0e757))
|
|
128
|
+
- **release:** @antelopejs/dms v0.18.2 ([1834895e](https://github.com/AntelopeJS/dms/commit/1834895e))
|
|
129
|
+
|
|
130
|
+
### โ
Tests
|
|
131
|
+
|
|
132
|
+
- **frontend:** Import the table row actions subject at file load ([#805](https://github.com/AntelopeJS/dms/pull/805))
|
|
133
|
+
|
|
134
|
+
### ๐ค CI
|
|
135
|
+
|
|
136
|
+
- Call ci-node.yml@v1 ([#779](https://github.com/AntelopeJS/dms/pull/779))
|
|
137
|
+
|
|
138
|
+
### โค๏ธ Contributors
|
|
139
|
+
|
|
140
|
+
- Antony Rizzitelli ([@Upd4ting](http://github.com/Upd4ting))
|
|
141
|
+
|
|
3
142
|
## v0.12.0
|
|
4
143
|
|
|
5
144
|
[compare changes](https://github.com/AntelopeJS/dms/compare/interface-v0.10.4...v0.12.0)
|
package/README.md
CHANGED
|
@@ -64,8 +64,8 @@ export class SalesPage extends PageController("sales", {
|
|
|
64
64
|
| `@antelopejs/interface-api-util` | `>=0.1.3 <1.0.0` | `0.3.0` |
|
|
65
65
|
| `@antelopejs/interface-core` | `>=0.4.0 <1.0.0` | `0.4.0` |
|
|
66
66
|
| `@antelopejs/interface-data-api` | `>=0.6.0 <1.0.0` | `0.6.0` |
|
|
67
|
-
| `@antelopejs/interface-database` | `>=0.1.11 <1.0.0` | `0.3.
|
|
68
|
-
| `@antelopejs/interface-database-decorators` | `>=0.1.12 <1.0.0` | `0.2.
|
|
67
|
+
| `@antelopejs/interface-database` | `>=0.1.11 <1.0.0` | `0.3.1` |
|
|
68
|
+
| `@antelopejs/interface-database-decorators` | `>=0.1.12 <1.0.0` | `0.2.1` |
|
|
69
69
|
| `@antelopejs/interface-file-storage` | `>=0.1.4 <1.0.0` | `0.1.4` |
|
|
70
70
|
|
|
71
71
|
<!-- antelopejs-docs-compat:end -->
|
|
@@ -264,9 +264,7 @@ function describeSchema(schema, depth = 0) {
|
|
|
264
264
|
base.ui = unwrapped.ui;
|
|
265
265
|
return base;
|
|
266
266
|
}
|
|
267
|
-
function describeProperties(
|
|
268
|
-
// oxlint-disable-next-line anti-slop/no-shape-in-symbol-names -- Zod owns the imported schema-property type name.
|
|
269
|
-
properties, depth) {
|
|
267
|
+
function describeProperties(properties, depth) {
|
|
270
268
|
const described = {};
|
|
271
269
|
for (const [key, value] of Object.entries(properties)) {
|
|
272
270
|
described[key] = describeSchema(value, depth);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../../src/base/block-registry/internal/describe.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../../src/base/block-registry/internal/describe.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ const data_functions_1 = require("../data-functions");
|
|
|
12
12
|
const meta_1 = require("../meta");
|
|
13
13
|
const options_1 = require("../options");
|
|
14
14
|
const meta_2 = require("./meta");
|
|
15
|
+
const type_check_1 = require("../../../utils/internal/type-check");
|
|
15
16
|
const row_rules_1 = require("./row-rules");
|
|
16
17
|
/** The deepest nesting of arrays and objects a guard body may have, the body itself counted. */
|
|
17
18
|
const MAX_BODY_DEPTH = 64;
|
|
@@ -31,7 +32,7 @@ const nestsDeeperThan = (members, limit) => {
|
|
|
31
32
|
const below = [];
|
|
32
33
|
for (const values of level) {
|
|
33
34
|
for (const value of values) {
|
|
34
|
-
if (value
|
|
35
|
+
if ((0, type_check_1.isObject)(value) && !(0, type_check_1.isNull)(value))
|
|
35
36
|
below.push(Object.values(value));
|
|
36
37
|
}
|
|
37
38
|
}
|
|
@@ -57,7 +58,7 @@ const copyJsonFields = (entries) => {
|
|
|
57
58
|
value = [];
|
|
58
59
|
pending.push([Object.entries(child), value]);
|
|
59
60
|
}
|
|
60
|
-
else if (child
|
|
61
|
+
else if ((0, type_check_1.isObject)(child) && !(0, type_check_1.isNull)(child)) {
|
|
61
62
|
value = {};
|
|
62
63
|
pending.push([Object.entries(child), value]);
|
|
63
64
|
}
|
|
@@ -75,15 +76,21 @@ const copyJsonFields = (entries) => {
|
|
|
75
76
|
/**
|
|
76
77
|
* The fields of a JSON object sent as text.
|
|
77
78
|
*
|
|
78
|
-
* @throws
|
|
79
|
-
*
|
|
80
|
-
*
|
|
79
|
+
* @throws An HTTP 400 result when `text` is not JSON, when it is JSON but not
|
|
80
|
+
* an object, and when it nests arrays and objects more than
|
|
81
|
+
* {@link MAX_BODY_DEPTH} levels deep. The first two carry the messages
|
|
82
|
+
* `Validation.ParseBody` answers a write with.
|
|
81
83
|
*/
|
|
82
84
|
const parseJsonObject = (text) => {
|
|
83
|
-
|
|
85
|
+
let json;
|
|
86
|
+
try {
|
|
87
|
+
json = JSON.parse(text);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
(0, interface_api_util_1.assert)(false, 400, "Invalid JSON body.");
|
|
91
|
+
}
|
|
84
92
|
const fields = JSON_FIELDS.safeParse(json);
|
|
85
|
-
|
|
86
|
-
throw new TypeError("The JSON body is not an object");
|
|
93
|
+
(0, interface_api_util_1.assert)(fields.success, 400, "The request body must be a JSON object.");
|
|
87
94
|
(0, interface_api_util_1.assert)(!nestsDeeperThan(Object.values(fields.data), MAX_BODY_DEPTH), 400, `The JSON body nests more than ${MAX_BODY_DEPTH} levels deep.`);
|
|
88
95
|
return copyJsonFields(Object.entries(fields.data));
|
|
89
96
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/guards.ts"],"names":[],"mappings":";;;AAAA,6DAAyE;AACzE,uEAA2E;AAC3E,+DAAyD;AACzD,uEAIwC;AACxC,0EAGmD;AACnD,gEAA6D;AAC7D,6BAAwB;AAGxB,sDAAqD;AACrD,kCAAwC;AACxC,wCAAkD;AAClD,iCAA6C;AAC7C,2CAA+C;AAI/C,gGAAgG;AAChG,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAM,cAAc,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAEhF,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,eAAe,GAAG,CAAC,OAAkB,EAAE,KAAa,EAAE,EAAE;IAC5D,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,GAAG,KAAK;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/base/table-view/internal/guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,14 @@ export interface TableViewOptionsSerialized extends Omit<TableViewOptions, "colu
|
|
|
64
64
|
* the rows once again when the hold ends, if it missed any.
|
|
65
65
|
*/
|
|
66
66
|
export interface TableViewLiveHoldOptions {
|
|
67
|
+
/**
|
|
68
|
+
* While its rows are on screen or scrolled past: a new row landing at the
|
|
69
|
+
* top would push down the rows the user reads, so the new ones wait behind
|
|
70
|
+
* the "N new ยท Show" pill. `false` lets the table follow its feed while its
|
|
71
|
+
* page is in Direct, holding only while paused or for a reason it names.
|
|
72
|
+
* Defaults to true.
|
|
73
|
+
*/
|
|
74
|
+
whileOnScreen?: boolean;
|
|
67
75
|
/** While one of its rows is open in the side panel. Defaults to false. */
|
|
68
76
|
whileRowOpen?: boolean;
|
|
69
77
|
/** While the user has scrolled its first row out of view. Defaults to false. */
|
|
@@ -834,6 +834,7 @@ export declare const TableViewSchema: z.ZodObject<{
|
|
|
834
834
|
realtime: z.ZodDefault<z.ZodBoolean>;
|
|
835
835
|
realtimeTopic: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
836
836
|
liveHold: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
837
|
+
whileOnScreen: z.ZodOptional<z.ZodBoolean>;
|
|
837
838
|
whileRowOpen: z.ZodOptional<z.ZodBoolean>;
|
|
838
839
|
whileScrolled: z.ZodOptional<z.ZodBoolean>;
|
|
839
840
|
whileSearching: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -841,12 +842,14 @@ export declare const TableViewSchema: z.ZodObject<{
|
|
|
841
842
|
missedLabel: z.ZodOptional<z.ZodString>;
|
|
842
843
|
}, "strip", z.ZodTypeAny, {
|
|
843
844
|
missedLabel?: string | undefined;
|
|
845
|
+
whileOnScreen?: boolean | undefined;
|
|
844
846
|
whileRowOpen?: boolean | undefined;
|
|
845
847
|
whileScrolled?: boolean | undefined;
|
|
846
848
|
whileSearching?: boolean | undefined;
|
|
847
849
|
whileSorted?: boolean | undefined;
|
|
848
850
|
}, {
|
|
849
851
|
missedLabel?: string | undefined;
|
|
852
|
+
whileOnScreen?: boolean | undefined;
|
|
850
853
|
whileRowOpen?: boolean | undefined;
|
|
851
854
|
whileScrolled?: boolean | undefined;
|
|
852
855
|
whileSearching?: boolean | undefined;
|
|
@@ -1130,6 +1133,7 @@ export declare const TableViewSchema: z.ZodObject<{
|
|
|
1130
1133
|
realtimeTopic?: string | string[] | undefined;
|
|
1131
1134
|
liveHold?: boolean | {
|
|
1132
1135
|
missedLabel?: string | undefined;
|
|
1136
|
+
whileOnScreen?: boolean | undefined;
|
|
1133
1137
|
whileRowOpen?: boolean | undefined;
|
|
1134
1138
|
whileScrolled?: boolean | undefined;
|
|
1135
1139
|
whileSearching?: boolean | undefined;
|
|
@@ -1347,6 +1351,7 @@ export declare const TableViewSchema: z.ZodObject<{
|
|
|
1347
1351
|
realtimeTopic?: string | string[] | undefined;
|
|
1348
1352
|
liveHold?: boolean | {
|
|
1349
1353
|
missedLabel?: string | undefined;
|
|
1354
|
+
whileOnScreen?: boolean | undefined;
|
|
1350
1355
|
whileRowOpen?: boolean | undefined;
|
|
1351
1356
|
whileScrolled?: boolean | undefined;
|
|
1352
1357
|
whileSearching?: boolean | undefined;
|
|
@@ -309,6 +309,7 @@ exports.TableViewSchema = zod_1.z.object({
|
|
|
309
309
|
.union([
|
|
310
310
|
zod_1.z.boolean(),
|
|
311
311
|
zod_1.z.object({
|
|
312
|
+
whileOnScreen: zod_1.z.boolean().optional(),
|
|
312
313
|
whileRowOpen: zod_1.z.boolean().optional(),
|
|
313
314
|
whileScrolled: zod_1.z.boolean().optional(),
|
|
314
315
|
whileSearching: zod_1.z.boolean().optional(),
|
|
@@ -317,7 +318,7 @@ exports.TableViewSchema = zod_1.z.object({
|
|
|
317
318
|
}),
|
|
318
319
|
])
|
|
319
320
|
.optional()
|
|
320
|
-
.describe("On a live page, keeps the rows while paused or on screen and shows what is new over them; `{ whileRowOpen, whileScrolled, whileSearching, whileSorted }` also names why it holds in Direct, `missedLabel` words the new rows."), {
|
|
321
|
+
.describe("On a live page, keeps the rows while paused or on screen and shows what is new over them; `whileOnScreen: false` lets them follow the feed while on screen, `{ whileRowOpen, whileScrolled, whileSearching, whileSorted }` also names why it holds in Direct, `missedLabel` words the new rows."), {
|
|
321
322
|
label: "Hold rows while paused",
|
|
322
323
|
group: "data",
|
|
323
324
|
widget: "switch",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/base/table-view/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/base/table-view/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,sDAM2B;AAE3B,iDAA+C;AAC/C,wCAAsC;AAKtC,uCAcmB;AACnB,gDAA+D;AAC/D,sEAAiE;AAEjE,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAEhD,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,EAAE;QAC1B,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,YAAY;KAC1B,CAAC;IACF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC;IACzB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,IAAA,mBAAE,EACR,eAAe;SACZ,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC,EACvE,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpB;IACD,IAAI,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACnD,SAAS,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzE,SAAS,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzE,EAAE,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAsB,CAAC,QAAQ,EAAE,EAAE;QACpD,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,KAAK;KACd,CAAC;IACF,UAAU,EAAE,IAAA,mBAAE,EACZ,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EACnE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CACpC;IACD,YAAY,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;KACrB,CAAC;IACF,SAAS,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAA6B,CAAC,QAAQ,EAAE,EAAE;QAClE,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,IAAI;KACb,CAAC;IACF,QAAQ,EAAE,IAAA,mBAAE,EACV,OAAC;SACE,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,EAAE,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAA,kBAAQ,EAAC,YAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;SACpE,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC,EACjE,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAChD;CACF,CAAyC,CAAC;AAE3C,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,EAAE;QACpB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,YAAY;KAC1B,CAAC;IACF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACnD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,OAAC;SACJ,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;SACrE,QAAQ,EAAE;CACd,CAAiD,CAAC;AAEnD,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAA4B,IAAU,EAAE,EAAE,CACzE,OAAC;KACE,MAAM,CAAC;IACN,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;IACpB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;CACzB,CAAC;KACD,QAAQ,EAAE;KACV,QAAQ,CAAC,4CAA4C,CAAC,CAAC;AAE5D,MAAM,mBAAmB,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACvD,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,KAAK,EAAE,wBAAwB,CAAC,4BAA4B,CAAC;KAC9D,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,IAAA,6BAAY,GAAa,CAAC,QAAQ,EAAE;QAC1C,KAAK,EAAE,wBAAwB,CAAC,4BAA4B,CAAC;KAC9D,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,wBAAwB,CAAC,6BAA6B,CAAC;KAC/D,CAAC;CACH,CAA0C,CAAC;AAE5C,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IACrE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAA6C,CAAC;AAE/C,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACtD,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAA6C,CAAC;AAE/C,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,YAAY,EAAE,IAAA,mBAAE,EACd,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC,EACnE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAClE;IACD,SAAS,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvC,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;CACtE,CAA0C,CAAC;AAE5C,MAAM,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1B,MAAM,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;QACzC,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,UAAU;KACxB,CAAC;IACF,SAAS,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAqC,CAAC,QAAQ,EAAE,EAAE;QAC1E,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,IAAI;KACb,CAAC;CACH,CAAiD,CAAC;AAEnD,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,IAAA,mBAAE,EACX,IAAA,6BAAY,GAAuC,CAAC,QAAQ,EAAE,EAC9D,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB;IACD,eAAe,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,OAAC;SACZ,MAAM,CAAC;QACN,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACxC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC/B,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC/B,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;SACD,QAAQ,EAAE;CACd,CAAmD,CAAC;AAErD,MAAM,qBAAqB,GAAG,OAAC,CAAC,KAAK,CAAC;IACpC,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,EAAE;QACb,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,UAAU;KACxB,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QACjE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG;IAChC,eAAe,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACpE,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,WAAW;KACpB,CAAC;IACF,MAAM,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACjC,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,QAAQ,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACnC,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,QAAQ;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,gBAAgB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC/B,OAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACtE,WAAW,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;QACnE,GAAG,yBAAyB;KAC7B,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAA6C,EAAE;YACvE,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,GAAG,yBAAyB;KAC7B,CAAC;CACH,CAAuD,CAAC;AAEzD,oDAAoD;AACpD,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CACxC,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AAE1D,sEAAsE;AACzD,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE;QACtE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,SAAS;KACjB,CAAC;IACF,OAAO,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrD,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,WAAW;KACpB,CAAC;IACF,SAAS,EAAE,IAAA,mBAAE,EACX,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,wEAAwE,CACzE,EACH,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAC7D;IACD,QAAQ,EAAE,IAAA,mBAAE,EACV,OAAC;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC1B,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC,EACzD,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAC/D;IACD,UAAU,EAAE,IAAA,mBAAE,EACZ,gBAAgB;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC,EACjE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAChE;IACD,MAAM,EAAE,IAAA,mBAAE,EACR,OAAC;SACE,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACzB,QAAQ,EAAE;SACV,QAAQ,CACP,0EAA0E,CAC3E,EACH,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,CAC9D;IACD,iBAAiB,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC3C,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,SAAS;KACjB,CAAC;IACF,cAAc,EAAE,IAAA,mBAAE,EAChB,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,uEAAuE,CACxE,EACH,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAChE;IACD,YAAY,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtD,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,UAAU;KAClB,CAAC;IACF,QAAQ,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAAmB,CAAC,CAAC,QAAQ,EAAE,EAAE;QACxE,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,6BAAmB;KACzB,CAAC;IACF,MAAM,EAAE,IAAA,mBAAE,EACR,OAAC;SACE,MAAM,CAAC;QACN,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;SACD,QAAQ,EAAE,EACb,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,CAC5C;IACD,QAAQ,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,8BAAoB,CAAC,EAAE;QACrD,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,UAAU;KACxB,CAAC;IACF,QAAQ,EAAE,IAAA,mBAAE,EACV,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC,EACxE;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,UAAU;KACxB,CACF;IACD,UAAU,EAAE,IAAA,mBAAE,EAAC,qCAAgB,CAAC,QAAQ,EAAE,EAAE;QAC1C,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,aAAa,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAkB,CAAC,QAAQ,EAAE,EAAE;QAC3D,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,IAAI;KACb,CAAC;IACF,aAAa,EAAE,IAAA,mBAAE,EAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE;QAChD,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,UAAU;KAClB,CAAC;IACF,WAAW,EAAE,IAAA,mBAAE,EACb,OAAC;SACE,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,4EAA4E,CAC7E,EACH,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CACzE;IACD,kBAAkB,EAAE,IAAA,mBAAE,EACpB,OAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iFAAiF,CAClF,EACH,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,CAC9C;IACD,cAAc,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtD,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,WAAW,EAAE,IAAA,mBAAE,EACb,OAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QACnE,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;SACD,QAAQ,EAAE,EACb,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,CACzC;IACD,UAAU,EAAE,IAAA,mBAAE,EACZ,IAAA,6BAAY,GAAiB;SAC1B,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC,EAC3E,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CACxE;IACD,iBAAiB,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjE,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,iBAAiB,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5D,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,MAAM;KACf,CAAC;IACF,oBAAoB,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC/C,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,IAAI,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,UAAU;KAClB,CAAC;IACF,QAAQ,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACtC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,aAAa,EAAE,IAAA,mBAAE,EACf,OAAC;SACE,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC,EACtE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAC5D;IACD,QAAQ,EAAE,IAAA,mBAAE,EACV,OAAC;SACE,KAAK,CAAC;QACL,OAAC,CAAC,OAAO,EAAE;QACX,OAAC,CAAC,MAAM,CAAC;YACP,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrC,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACpC,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrC,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACtC,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACnC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,iSAAiS,CAClS,EACH;QACE,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,IAAI;KACf,CACF;IACD,MAAM,EAAE,IAAA,mBAAE,EAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC3E,IAAI,EAAE,IAAA,mBAAE,EAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;QAC9B,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,UAAU;KAClB,CAAC;IACF,QAAQ,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9C,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,UAAU;KAClB,CAAC;IACF,cAAc,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAClD,aAAa,EAAE,eAAe,CAAC,mBAAmB,CAAC;IACnD,MAAM,EAAE,IAAA,mBAAE,EAAC,IAAA,6BAAY,GAAmB,CAAC,QAAQ,EAAE,EAAE;QACrD,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,IAAI;KACb,CAAC;IACF,sBAAsB,EAAE,IAAA,mBAAE,EAAC,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACjD,KAAK,EAAE,2BAA2B;QAClC,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,QAAQ;KACjB,CAAC;CACH,CAA6C,CAAC;AAE/C,IAAA,kCAAiB,EAAC;IAChB,IAAI,EAAE,WAAW;IACjB,aAAa,EAAE,mCAAyB;IACxC,MAAM,EAAE,uBAAe;IACvB,aAAa,EAAE,IAAI;IACnB,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,8DAA8D;QAC3E,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { ComponentFilterContext, ComponentInfo } from "../component";
|
|
2
|
-
import type { MaybePromise } from "../types";
|
|
3
2
|
import type { CustomButton } from "./button";
|
|
4
3
|
/** A button of the page header: a `CustomButton` that may say where it goes. */
|
|
5
4
|
export interface PageHeaderButton extends CustomButton {
|
|
@@ -27,7 +26,9 @@ export interface PageHeaderButton extends CustomButton {
|
|
|
27
26
|
*
|
|
28
27
|
* @example ({ params }) => GetModel(SiteModel).get(params?.id ?? "")
|
|
29
28
|
*/
|
|
30
|
-
export type PageRecordLoader = (context: ComponentFilterContext) =>
|
|
29
|
+
export type PageRecordLoader = (context: ComponentFilterContext) => (object & {
|
|
30
|
+
then?: never;
|
|
31
|
+
}) | undefined | PromiseLike<object | undefined>;
|
|
31
32
|
export interface DefaultLayoutOptions {
|
|
32
33
|
/**
|
|
33
34
|
* Content spans the whole panel. Defaults to `true`: dashboard pages are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-layout.js","sourceRoot":"","sources":["../../src/component-options/page-layout.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"page-layout.js","sourceRoot":"","sources":["../../src/component-options/page-layout.ts"],"names":[],"mappings":";;AAyGA,sCAKC;AAMD,wCAIC;AAQD,wCAIC;AAED,kCAKC;AA1ID,8DAAmE;AACnE,4DAAiE;AA2EjE,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAE1C,SAAS,mBAAmB,CAC1B,MAAwB,EACxB,KAAa;IAEb,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACvE,MAAM,QAAQ,GAA6B;QACzC,GAAG,IAAI;QACP,EAAE,EAAE,EAAE,IAAI,GAAG,uBAAuB,GAAG,KAAK,EAAE;QAC9C,MAAM,EAAE,IAAA,qCAAqB,EAAC,MAAM,CAAC;KACtC,CAAC;IACF,IAAI,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,IAAA,uCAAsB,EAAC,OAAO,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,aAAqB,EACrB,OAA6B;IAE7B,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,aAAa,GAAmC,IAAI,CAAC;IAC3D,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACnD,CAAC;AAED,SAAgB,aAAa,CAAC,OAA8B;IAC1D,OAAO,eAAe,CAAC,oBAAoB,EAAE;QAC3C,SAAS,EAAE,IAAI;QACf,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,OAAiD;IAEjD,OAAO,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,OAAiD;IAEjD,OAAO,eAAe,CAAC,qBAAqB,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO;QACL,aAAa,EAAE,kBAAkB;QACjC,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -35,9 +35,15 @@ export declare class TenantLifecycleModel extends TenantLifecycleModel_base {
|
|
|
35
35
|
pause(tenantId: string, barrierId: string, expectedRevision: string): Promise<boolean>;
|
|
36
36
|
/** Also revokes an in-flight acquisition when no barrier has landed yet. */
|
|
37
37
|
resume(tenantId: string, barrierId: string): Promise<boolean>;
|
|
38
|
-
/**
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Called only by the invocation that has finished every awaited producer
|
|
40
|
+
* effect, or by an operator who knows its effects are over. False when no
|
|
41
|
+
* row holds the attempt; it never initializes a row.
|
|
42
|
+
*/
|
|
43
|
+
finish(tenantId: string, attemptId: string): Promise<boolean>;
|
|
40
44
|
/** Closes permanently before testing quiescence; active or uncertain work blocks deletion. */
|
|
41
45
|
close(tenantId: string): Promise<void>;
|
|
46
|
+
/** The tenant's row, or the legacy shared row, without initializing one. */
|
|
47
|
+
private existing;
|
|
42
48
|
}
|
|
43
49
|
export {};
|
|
@@ -15,10 +15,10 @@ const HTTP_CONFLICT = 409;
|
|
|
15
15
|
class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicDataModel)(tenantLifecycle_table_1.TenantLifecycle, tenantLifecycle_table_1.tenantLifecycleTableName) {
|
|
16
16
|
/** Initializes once; an existing closed row is never replaced or reopened. */
|
|
17
17
|
async state(tenantId) {
|
|
18
|
-
const
|
|
19
|
-
const existing = (await this.get(id)) ?? (await this.get(LIFECYCLE_ID));
|
|
18
|
+
const existing = await this.existing(tenantId);
|
|
20
19
|
if (existing)
|
|
21
20
|
return existing;
|
|
21
|
+
const id = `${LIFECYCLE_ID}:${tenantId}`;
|
|
22
22
|
let failure;
|
|
23
23
|
try {
|
|
24
24
|
await this.insert({
|
|
@@ -84,15 +84,19 @@ class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicData
|
|
|
84
84
|
return true;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* Called only by the invocation that has finished every awaited producer
|
|
89
|
+
* effect, or by an operator who knows its effects are over. False when no
|
|
90
|
+
* row holds the attempt; it never initializes a row.
|
|
91
|
+
*/
|
|
88
92
|
async finish(tenantId, attemptId) {
|
|
89
93
|
while (true) {
|
|
90
|
-
const state = await this.
|
|
91
|
-
if (!state
|
|
92
|
-
return;
|
|
94
|
+
const state = await this.existing(tenantId);
|
|
95
|
+
if (!state?.activeAttemptIds.includes(attemptId))
|
|
96
|
+
return false;
|
|
93
97
|
const activeAttemptIds = state.activeAttemptIds.filter((id) => id !== attemptId);
|
|
94
98
|
if (await this.transition(state, { activeAttemptIds }))
|
|
95
|
-
return;
|
|
99
|
+
return true;
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
102
|
/** Closes permanently before testing quiescence; active or uncertain work blocks deletion. */
|
|
@@ -110,6 +114,11 @@ class TenantLifecycleModel extends (0, interface_database_decorators_1.BasicData
|
|
|
110
114
|
return;
|
|
111
115
|
}
|
|
112
116
|
}
|
|
117
|
+
/** The tenant's row, or the legacy shared row, without initializing one. */
|
|
118
|
+
async existing(tenantId) {
|
|
119
|
+
return ((await this.get(`${LIFECYCLE_ID}:${tenantId}`)) ??
|
|
120
|
+
(await this.get(LIFECYCLE_ID)));
|
|
121
|
+
}
|
|
113
122
|
}
|
|
114
123
|
exports.TenantLifecycleModel = TenantLifecycleModel;
|
|
115
124
|
//# sourceMappingURL=tenantLifecycle.model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenantLifecycle.model.js","sourceRoot":"","sources":["../../../src/db/internal/tenantLifecycle.model.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,uEAAwD;AACxD,6FAA2E;AAC3E,mEAGiC;AAEjC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAC9C,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,IAAA,8CAAc,EACtD,uCAAe,EACf,gDAAwB,CACzB;IACC,8EAA8E;IAC9E,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,MAAM,
|
|
1
|
+
{"version":3,"file":"tenantLifecycle.model.js","sourceRoot":"","sources":["../../../src/db/internal/tenantLifecycle.model.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,uEAAwD;AACxD,6FAA2E;AAC3E,mEAGiC;AAEjC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAC9C,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,IAAA,8CAAc,EACtD,uCAAe,EACf,gDAAwB,CACzB;IACC,8EAA8E;IAC9E,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,EAAE,GAAG,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAC;QACzC,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC;gBAChB,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,IAAA,wBAAU,GAAE;gBACtB,MAAM,EAAE,KAAK;gBACb,gBAAgB,EAAE,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO;YACV,MAAM,CACJ,OAAO,IAAI,IAAI,KAAK,CAAC,+CAA+C,CAAC,CACtE,CAAC;QACJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,KAAsB,EACtB,KAA+B;QAE/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;aAC7B,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,UAAU;YACzB,gBAAgB,EAAE,KAAK,CAAC,QAAQ;YAChC,YAAY,EAAE,IAAA,wBAAU,GAAE;YAC1B,KAAK;SACN,CAAC;aACD,GAAG,EAAE,CAAC;QACT,IAAI,OAAO,KAAK,SAAS;YACvB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,OAAO,OAAO,KAAK,SAAS,CAAC;IAC/B,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,SAAiB;QAC7C,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1E,IAAA,2BAAM,EACJ,CAAC,KAAK,CAAC,SAAS,EAChB,aAAa,EACb,sCAAsC,CACvC,CAAC;YACF,IACE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC3B,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC;aACzD,CAAC;gBAEF,OAAO;QACX,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,KAAK,CACT,QAAgB,EAChB,SAAiB,EACjB,gBAAwB;QAExB,IAAI,CAAC,SAAS;YACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB;YACxE,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,SAAiB;QAC9C,IAAI,CAAC,SAAS;YACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;gBACpE,OAAO,KAAK,CAAC;YACf,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,SAAiB;QAC9C,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/D,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CACpD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CACzB,CAAC;YACF,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;QACtE,CAAC;IACH,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBAAE,SAAS;YAClE,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;IAED,4EAA4E;IACpE,KAAK,CAAC,QAAQ,CACpB,QAAgB;QAEhB,OAAO,CACL,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAC,CAAC;YAC/C,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAC/B,CAAC;IACJ,CAAC;CACF;AArID,oDAqIC"}
|
|
@@ -17,3 +17,33 @@ export type NativeUploadFieldRegistration = UploadTokenClaims & {
|
|
|
17
17
|
/** The field's own declared constraints, enforced at presign on top of the global ones. */
|
|
18
18
|
constraints?: UploadConstraints;
|
|
19
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* The keys of a native upload field's options that stamping and registration
|
|
22
|
+
* read, and the token they write back. The options carry more keys than these,
|
|
23
|
+
* and none of them is checked until it is read.
|
|
24
|
+
*
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export interface UploadFieldOptions {
|
|
28
|
+
storage?: unknown;
|
|
29
|
+
path?: unknown;
|
|
30
|
+
attachmentField?: unknown;
|
|
31
|
+
visibility?: unknown;
|
|
32
|
+
constraints?: unknown;
|
|
33
|
+
uploadToken?: unknown;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Read the component options of a file or image field before a token is
|
|
37
|
+
* stamped into them. Absent options become an empty object that carries the
|
|
38
|
+
* token.
|
|
39
|
+
*
|
|
40
|
+
* @throws TypeError when the options are neither absent nor an object, so the
|
|
41
|
+
* field definition is refused where it is stamped or registered.
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export declare function readUploadFieldOptions(field: {
|
|
45
|
+
type: string;
|
|
46
|
+
component: {
|
|
47
|
+
options?: unknown;
|
|
48
|
+
};
|
|
49
|
+
}): UploadFieldOptions;
|
package/dist/internal/uploads.js
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readUploadFieldOptions = readUploadFieldOptions;
|
|
4
|
+
/**
|
|
5
|
+
* Read the component options of a file or image field before a token is
|
|
6
|
+
* stamped into them. Absent options become an empty object that carries the
|
|
7
|
+
* token.
|
|
8
|
+
*
|
|
9
|
+
* @throws TypeError when the options are neither absent nor an object, so the
|
|
10
|
+
* field definition is refused where it is stamped or registered.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
function readUploadFieldOptions(field) {
|
|
14
|
+
const options = field.component.options ?? {};
|
|
15
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Field options are erased contributor values; a primitive or an array cannot carry the upload token.
|
|
16
|
+
if (typeof options !== "object" || Array.isArray(options)) {
|
|
17
|
+
throw new TypeError(`A ${field.type} field's component options must be an object, got ${JSON.stringify(options)}`);
|
|
18
|
+
}
|
|
19
|
+
field.component.options = options;
|
|
20
|
+
return options;
|
|
21
|
+
}
|
|
3
22
|
//# sourceMappingURL=uploads.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/internal/uploads.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/internal/uploads.ts"],"names":[],"mappings":";;AA+CA,wDAaC;AAtBD;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,KAGtC;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9C,8JAA8J;IAC9J,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CACjB,KAAK,KAAK,CAAC,IAAI,qDAAqD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @internal */
|
|
2
2
|
import type { ComponentInfoSerialized } from "../../component";
|
|
3
|
-
import type
|
|
3
|
+
import { type NativeUploadFieldRegistration } from "../../internal/uploads";
|
|
4
4
|
import type { PageMetadata } from "../metadata";
|
|
5
5
|
import { type UploadFieldNode } from "./metadata-uploads";
|
|
6
6
|
/** @internal */
|
|
@@ -8,7 +8,7 @@ export declare function prepareUploadOptions(page: PageMetadata, serialized: Com
|
|
|
8
8
|
/** @internal */
|
|
9
9
|
export declare function prepareUploadRegistration(page: PageMetadata, node: UploadFieldNode, componentName: string, componentId: string, path: string[]): {
|
|
10
10
|
mount: import("../component-tree").ComponentTreeNode;
|
|
11
|
-
options: import("
|
|
11
|
+
options: import("../../internal/uploads").UploadFieldOptions;
|
|
12
12
|
registration: NativeUploadFieldRegistration;
|
|
13
13
|
componentId: string;
|
|
14
14
|
} | undefined;
|
|
@@ -4,7 +4,8 @@ exports.prepareUploadOptions = prepareUploadOptions;
|
|
|
4
4
|
exports.prepareUploadRegistration = prepareUploadRegistration;
|
|
5
5
|
exports.finishUploadRegistration = finishUploadRegistration;
|
|
6
6
|
exports.registerNativeUploadField = registerNativeUploadField;
|
|
7
|
-
const uploads_1 = require("../../uploads");
|
|
7
|
+
const uploads_1 = require("../../internal/uploads");
|
|
8
|
+
const uploads_2 = require("../../uploads");
|
|
8
9
|
const metadata_owner_1 = require("./metadata-owner");
|
|
9
10
|
const metadata_uploads_1 = require("./metadata-uploads");
|
|
10
11
|
/** @internal */
|
|
@@ -22,8 +23,7 @@ function prepareUploadRegistration(page, node, componentName, componentId, path)
|
|
|
22
23
|
const mount = owner.componentMap.get(componentId);
|
|
23
24
|
if (owner.detached || mount?.access !== "own")
|
|
24
25
|
return;
|
|
25
|
-
const options = node
|
|
26
|
-
node.component.options = options;
|
|
26
|
+
const options = (0, uploads_1.readUploadFieldOptions)(node);
|
|
27
27
|
const registration = {
|
|
28
28
|
pageId: page.pageInfo?.fullId ?? "",
|
|
29
29
|
componentId,
|
|
@@ -57,7 +57,7 @@ function finishUploadRegistration(page, phase) {
|
|
|
57
57
|
if (owner.detached ||
|
|
58
58
|
owner.componentMap.get(phase.componentId) !== phase.mount)
|
|
59
59
|
return;
|
|
60
|
-
|
|
60
|
+
uploads_2.internal.RegisterNativeUploadField.register(phase.registration);
|
|
61
61
|
const fields = owner.nativeUploadFields.get(phase.componentId) ?? [];
|
|
62
62
|
fields.push(phase.registration);
|
|
63
63
|
owner.nativeUploadFields.set(phase.componentId, fields);
|
|
@@ -67,7 +67,7 @@ async function registerNativeUploadField(page, node, componentName, componentId,
|
|
|
67
67
|
const phase = prepareUploadRegistration(page, node, componentName, componentId, path);
|
|
68
68
|
if (!phase)
|
|
69
69
|
return;
|
|
70
|
-
phase.options.uploadToken = await (0,
|
|
70
|
+
phase.options.uploadToken = await (0, uploads_2.SignUploadToken)(phase.registration);
|
|
71
71
|
finishUploadRegistration(page, phase);
|
|
72
72
|
}
|
|
73
73
|
//# sourceMappingURL=metadata-upload-registration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-upload-registration.js","sourceRoot":"","sources":["../../../src/page/internal/metadata-upload-registration.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"metadata-upload-registration.js","sourceRoot":"","sources":["../../../src/page/internal/metadata-upload-registration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
/** @internal */
|
|
2
2
|
import type { UploadConstraints } from "@antelopejs/interface-file-storage";
|
|
3
3
|
import type { Component } from "../../component";
|
|
4
|
-
|
|
5
|
-
* The keys of a native upload field's options that registration reads, and
|
|
6
|
-
* the token it writes back. The options carry more keys than these.
|
|
7
|
-
*
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export interface UploadFieldOptions {
|
|
11
|
-
storage?: unknown;
|
|
12
|
-
path?: unknown;
|
|
13
|
-
attachmentField?: unknown;
|
|
14
|
-
visibility?: unknown;
|
|
15
|
-
constraints?: unknown;
|
|
16
|
-
uploadToken?: string;
|
|
17
|
-
}
|
|
4
|
+
import type { UploadFieldOptions } from "../../internal/uploads";
|
|
18
5
|
/** @internal */
|
|
19
6
|
export interface UploadFieldNode {
|
|
20
7
|
type: string;
|
|
21
8
|
disabled?: unknown;
|
|
22
9
|
component: {
|
|
23
|
-
options?:
|
|
10
|
+
options?: unknown;
|
|
24
11
|
};
|
|
25
12
|
}
|
|
26
13
|
/** @internal */
|
|
@@ -12,10 +12,7 @@ function isNativeUploadField(value) {
|
|
|
12
12
|
if (typeof node.type !== "string" ||
|
|
13
13
|
!NATIVE_UPLOAD_FIELD_TYPES.has(node.type))
|
|
14
14
|
return false;
|
|
15
|
-
|
|
16
|
-
return false;
|
|
17
|
-
const component = node.component;
|
|
18
|
-
return component.options == null || typeof component.options === "object";
|
|
15
|
+
return !!node.component && typeof node.component === "object";
|
|
19
16
|
}
|
|
20
17
|
/** @internal */
|
|
21
18
|
function readUploadConstraints(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-uploads.js","sourceRoot":"","sources":["../../../src/page/internal/metadata-uploads.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"metadata-uploads.js","sourceRoot":"","sources":["../../../src/page/internal/metadata-uploads.ts"],"names":[],"mappings":";;AAeA,kDASC;AAGD,sDAiBC;AAGD,wDAcC;AAxDD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAS7D,gBAAgB;AAChB,SAAgB,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAA4C,KAAK,CAAC;IAC5D,IACE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC;AAChE,CAAC;AAED,gBAAgB;AAChB,SAAgB,qBAAqB,CACnC,OAA2B;IAE3B,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAChC,2JAA2J;IAC3J,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,QAAQ,GAAsB,GAAG,CAAC;IACxC,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,4JAA4J;IAC5J,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;QACtC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC1C,WAAW,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM;QAC7D,uKAAuK;QACvK,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAC3C,CAAC;IACJ,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,gBAAgB;AAChB,SAAgB,sBAAsB,CACpC,aAAqB,EACrB,SAAoB,EACpB,IAAuB;IAEvB,IAAI,aAAa,KAAK,gBAAgB;QACpC,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CACzE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CACpB,CAAC;IACF,OAAO,CACL,CAAC,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;QACtD,4BAA4B,CAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -37,8 +37,10 @@ async function readPageRecord(layout, context) {
|
|
|
37
37
|
if (!options?.record)
|
|
38
38
|
return undefined;
|
|
39
39
|
try {
|
|
40
|
-
const record =
|
|
41
|
-
return record
|
|
40
|
+
const record = await options.record(context);
|
|
41
|
+
return isRecordNode(record)
|
|
42
|
+
? { record, status: "found" }
|
|
43
|
+
: { status: "missing" };
|
|
42
44
|
}
|
|
43
45
|
catch (error) {
|
|
44
46
|
logging_1.Logging.Error("[dms] the record of the page could not be read:", error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-record.js","sourceRoot":"","sources":["../../../src/page/internal/page-record.ts"],"names":[],"mappings":";;AA2DA,
|
|
1
|
+
{"version":3,"file":"page-record.js","sourceRoot":"","sources":["../../../src/page/internal/page-record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The release of an invocation that finished or refused failed on every try.
|
|
3
|
+
* Its admission stays, so the deletion of `tenantId` is blocked until
|
|
4
|
+
* {@link releaseTenantLifecycleAttempt} retires `attemptId`. The `cause` is the
|
|
5
|
+
* failure of the last try.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TenantLifecycleReleaseError extends Error {
|
|
8
|
+
readonly tenantId: string;
|
|
9
|
+
readonly attemptId: string;
|
|
10
|
+
constructor(tenantId: string, attemptId: string, cause: unknown);
|
|
11
|
+
}
|
|
1
12
|
/**
|
|
2
13
|
* Admits one invocation. Work must await every producer effect and start no
|
|
3
14
|
* detached writer. Failure retains its admission; an independent replay must
|
|
@@ -7,16 +18,35 @@
|
|
|
7
18
|
* A success, and a deliberate refusal (an HTTP 4xx), are the exceptions: work
|
|
8
19
|
* that awaits every effect has none left in flight once it finishes or
|
|
9
20
|
* refuses, so keeping the admission would only block the tenant's deletion
|
|
10
|
-
* forever. The release is tried {@link RELEASE_ATTEMPTS} times
|
|
11
|
-
* fails, the admission stays
|
|
12
|
-
*
|
|
13
|
-
*
|
|
21
|
+
* forever. The release is tried {@link RELEASE_ATTEMPTS} times, with a pause
|
|
22
|
+
* between tries. If every try fails, the admission stays, the failure is
|
|
23
|
+
* logged and the call rejects, so the blocked deletion is reported instead of
|
|
24
|
+
* hidden: with an `AggregateError` of the refusal and a
|
|
25
|
+
* {@link TenantLifecycleReleaseError} after a refusal, with the
|
|
26
|
+
* {@link TenantLifecycleReleaseError} after a success.
|
|
14
27
|
*
|
|
15
28
|
* A refusal is read by shape, not `instanceof`, because it can come from
|
|
16
29
|
* another module's copy of the API interface (a dms-saas seat limit raised
|
|
17
30
|
* from a hook, for instance).
|
|
18
31
|
*/
|
|
19
32
|
export declare function runTenantLifecycleOperation<T>(tenantId: string, work: () => Promise<T>): Promise<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Retires one admission by hand: the operator path for a deletion that
|
|
35
|
+
* {@link closeTenantLifecycleAdmission} reports blocked.
|
|
36
|
+
*
|
|
37
|
+
* Call it with the `tenantId` and `attemptId` of a
|
|
38
|
+
* {@link TenantLifecycleReleaseError} once the database answers again. That
|
|
39
|
+
* invocation finished or refused, so none of its effects is in flight. Any
|
|
40
|
+
* other attempt that {@link observeTenantLifecycle} lists retains its admission
|
|
41
|
+
* because its effects may be indeterminate: retire it only after confirming
|
|
42
|
+
* that its work left no write in flight, since deletion may then overtake it.
|
|
43
|
+
*
|
|
44
|
+
* Resolves true when it retired the admission. Resolves false, and writes
|
|
45
|
+
* nothing, when the tenant holds no such admission: the attempt was already
|
|
46
|
+
* retired, or an id is wrong. Never call it from a
|
|
47
|
+
* `runTenantLifecycleOperation` callback or on a timer.
|
|
48
|
+
*/
|
|
49
|
+
export declare function releaseTenantLifecycleAttempt(tenantId: string, attemptId: string): Promise<boolean>;
|
|
20
50
|
/**
|
|
21
51
|
* Must succeed before any destructive tenant phase. Closure is permanent;
|
|
22
52
|
* rejection requires preserving data, never timeout-based takeover or reopening.
|
package/dist/tenant-lifecycle.js
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantLifecycleReleaseError = void 0;
|
|
3
4
|
exports.runTenantLifecycleOperation = runTenantLifecycleOperation;
|
|
5
|
+
exports.releaseTenantLifecycleAttempt = releaseTenantLifecycleAttempt;
|
|
4
6
|
exports.closeTenantLifecycleAdmission = closeTenantLifecycleAdmission;
|
|
5
7
|
exports.observeTenantLifecycle = observeTenantLifecycle;
|
|
6
8
|
exports.pauseTenantLifecycleAdmission = pauseTenantLifecycleAdmission;
|
|
7
9
|
exports.resumeTenantLifecycleAdmission = resumeTenantLifecycleAdmission;
|
|
8
10
|
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const promises_1 = require("node:timers/promises");
|
|
12
|
+
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
9
13
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
10
14
|
const tenantLifecycle_model_1 = require("./db/internal/tenantLifecycle.model");
|
|
11
15
|
const HTTP_CLIENT_ERROR_MIN = 400;
|
|
12
16
|
const HTTP_SERVER_ERROR_MIN = 500;
|
|
13
17
|
const RELEASE_ATTEMPTS = 3;
|
|
18
|
+
const RELEASE_BACKOFF_MS = 200;
|
|
14
19
|
/**
|
|
15
20
|
* Whether a status is an HTTP 4xx: a refusal on purpose, a decision rather
|
|
16
21
|
* than an effect whose outcome is unknown.
|
|
@@ -18,26 +23,46 @@ const RELEASE_ATTEMPTS = 3;
|
|
|
18
23
|
function isClientErrorStatus(status) {
|
|
19
24
|
return status >= HTTP_CLIENT_ERROR_MIN && status < HTTP_SERVER_ERROR_MIN;
|
|
20
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* The release of an invocation that finished or refused failed on every try.
|
|
28
|
+
* Its admission stays, so the deletion of `tenantId` is blocked until
|
|
29
|
+
* {@link releaseTenantLifecycleAttempt} retires `attemptId`. The `cause` is the
|
|
30
|
+
* failure of the last try.
|
|
31
|
+
*/
|
|
32
|
+
class TenantLifecycleReleaseError extends Error {
|
|
33
|
+
tenantId;
|
|
34
|
+
attemptId;
|
|
35
|
+
constructor(tenantId, attemptId, cause) {
|
|
36
|
+
super(`Tenant lifecycle release of attempt '${attemptId}' failed ${RELEASE_ATTEMPTS} times; deletion of tenant '${tenantId}' stays blocked until releaseTenantLifecycleAttempt('${tenantId}', '${attemptId}') succeeds`, { cause });
|
|
37
|
+
this.name = "TenantLifecycleReleaseError";
|
|
38
|
+
this.tenantId = tenantId;
|
|
39
|
+
this.attemptId = attemptId;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.TenantLifecycleReleaseError = TenantLifecycleReleaseError;
|
|
21
43
|
/**
|
|
22
44
|
* Releases the admission of an invocation whose effects are all known: it
|
|
23
45
|
* finished, or it refused on purpose. Releasing is idempotent, so a failed
|
|
24
|
-
* release is tried again
|
|
25
|
-
*
|
|
46
|
+
* release is tried again after a pause that doubles each time, which rides out
|
|
47
|
+
* a short outage. When every try fails, the failure is logged and returned,
|
|
48
|
+
* never swallowed.
|
|
26
49
|
*/
|
|
27
50
|
async function releaseAttempt(model, tenantId, attemptId) {
|
|
28
51
|
let failure;
|
|
29
52
|
for (let attempt = 0; attempt < RELEASE_ATTEMPTS; attempt++) {
|
|
53
|
+
if (attempt > 0)
|
|
54
|
+
await (0, promises_1.setTimeout)(RELEASE_BACKOFF_MS * 2 ** (attempt - 1));
|
|
30
55
|
try {
|
|
31
56
|
await model.finish(tenantId, attemptId);
|
|
32
57
|
return undefined;
|
|
33
58
|
}
|
|
34
59
|
catch (releaseFailure) {
|
|
35
|
-
failure =
|
|
36
|
-
cause: releaseFailure,
|
|
37
|
-
});
|
|
60
|
+
failure = releaseFailure;
|
|
38
61
|
}
|
|
39
62
|
}
|
|
40
|
-
|
|
63
|
+
const error = new TenantLifecycleReleaseError(tenantId, attemptId, failure);
|
|
64
|
+
logging_1.Logging.Error(error.message, failure);
|
|
65
|
+
return error;
|
|
41
66
|
}
|
|
42
67
|
/**
|
|
43
68
|
* Admits one invocation. Work must await every producer effect and start no
|
|
@@ -48,10 +73,12 @@ async function releaseAttempt(model, tenantId, attemptId) {
|
|
|
48
73
|
* A success, and a deliberate refusal (an HTTP 4xx), are the exceptions: work
|
|
49
74
|
* that awaits every effect has none left in flight once it finishes or
|
|
50
75
|
* refuses, so keeping the admission would only block the tenant's deletion
|
|
51
|
-
* forever. The release is tried {@link RELEASE_ATTEMPTS} times
|
|
52
|
-
* fails, the admission stays
|
|
53
|
-
*
|
|
54
|
-
*
|
|
76
|
+
* forever. The release is tried {@link RELEASE_ATTEMPTS} times, with a pause
|
|
77
|
+
* between tries. If every try fails, the admission stays, the failure is
|
|
78
|
+
* logged and the call rejects, so the blocked deletion is reported instead of
|
|
79
|
+
* hidden: with an `AggregateError` of the refusal and a
|
|
80
|
+
* {@link TenantLifecycleReleaseError} after a refusal, with the
|
|
81
|
+
* {@link TenantLifecycleReleaseError} after a success.
|
|
55
82
|
*
|
|
56
83
|
* A refusal is read by shape, not `instanceof`, because it can come from
|
|
57
84
|
* another module's copy of the API interface (a dms-saas seat limit raised
|
|
@@ -74,7 +101,7 @@ async function runTenantLifecycleOperation(tenantId, work) {
|
|
|
74
101
|
isClientErrorStatus(getStatus.call(error))) {
|
|
75
102
|
const releaseFailure = await releaseAttempt(model, tenantId, attemptId);
|
|
76
103
|
if (releaseFailure) {
|
|
77
|
-
throw new AggregateError([error, releaseFailure],
|
|
104
|
+
throw new AggregateError([error, releaseFailure], `Tenant lifecycle admission of tenant '${tenantId}' refused the work but could not release attempt '${attemptId}'; deletion of this tenant stays blocked`);
|
|
78
105
|
}
|
|
79
106
|
}
|
|
80
107
|
throw error;
|
|
@@ -84,6 +111,25 @@ async function runTenantLifecycleOperation(tenantId, work) {
|
|
|
84
111
|
throw releaseFailure;
|
|
85
112
|
return result;
|
|
86
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Retires one admission by hand: the operator path for a deletion that
|
|
116
|
+
* {@link closeTenantLifecycleAdmission} reports blocked.
|
|
117
|
+
*
|
|
118
|
+
* Call it with the `tenantId` and `attemptId` of a
|
|
119
|
+
* {@link TenantLifecycleReleaseError} once the database answers again. That
|
|
120
|
+
* invocation finished or refused, so none of its effects is in flight. Any
|
|
121
|
+
* other attempt that {@link observeTenantLifecycle} lists retains its admission
|
|
122
|
+
* because its effects may be indeterminate: retire it only after confirming
|
|
123
|
+
* that its work left no write in flight, since deletion may then overtake it.
|
|
124
|
+
*
|
|
125
|
+
* Resolves true when it retired the admission. Resolves false, and writes
|
|
126
|
+
* nothing, when the tenant holds no such admission: the attempt was already
|
|
127
|
+
* retired, or an id is wrong. Never call it from a
|
|
128
|
+
* `runTenantLifecycleOperation` callback or on a timer.
|
|
129
|
+
*/
|
|
130
|
+
async function releaseTenantLifecycleAttempt(tenantId, attemptId) {
|
|
131
|
+
return (0, interface_database_decorators_1.GetModel)(tenantLifecycle_model_1.TenantLifecycleModel, tenantId).finish(tenantId, attemptId);
|
|
132
|
+
}
|
|
87
133
|
/**
|
|
88
134
|
* Must succeed before any destructive tenant phase. Closure is permanent;
|
|
89
135
|
* rejection requires preserving data, never timeout-based takeover or reopening.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-lifecycle.js","sourceRoot":"","sources":["../src/tenant-lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tenant-lifecycle.js","sourceRoot":"","sources":["../src/tenant-lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/uploads.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RegisteringProxy } from "@antelopejs/interface-core";
|
|
2
|
-
import type
|
|
2
|
+
import { type NativeUploadFieldRegistration, type UploadTokenClaims } from "./internal/uploads";
|
|
3
3
|
/** @internal */
|
|
4
4
|
export declare namespace internal {
|
|
5
5
|
const RegisterNativeUploadField: RegisteringProxy<(registration: NativeUploadFieldRegistration) => void>;
|
package/dist/uploads.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SignUploadToken = exports.internal = void 0;
|
|
4
4
|
exports.StampUploadFieldTokens = StampUploadFieldTokens;
|
|
5
5
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
6
|
+
const uploads_1 = require("./internal/uploads");
|
|
6
7
|
/** @internal */
|
|
7
8
|
var internal;
|
|
8
9
|
(function (internal) {
|
|
@@ -39,12 +40,7 @@ function uploadFieldNodes(node) {
|
|
|
39
40
|
];
|
|
40
41
|
}
|
|
41
42
|
async function stampNode(node) {
|
|
42
|
-
const
|
|
43
|
-
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- The existing serialized-node check does not validate options; non-object options are replaced before stamping.
|
|
44
|
-
if (!component.options || typeof component.options !== "object") {
|
|
45
|
-
component.options = {};
|
|
46
|
-
}
|
|
47
|
-
const options = component.options;
|
|
43
|
+
const options = (0, uploads_1.readUploadFieldOptions)(node);
|
|
48
44
|
options.uploadToken = await (0, exports.SignUploadToken)({
|
|
49
45
|
pageId: "",
|
|
50
46
|
componentId: "",
|
package/dist/uploads.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":";;;AA2FA,wDAQC;AAnGD,+DAGoC;AACpC,gDAI4B;AAE5B,gBAAgB;AAChB,IAAiB,QAAQ,CAIxB;AAJD,WAAiB,QAAQ;IACV,kCAAyB,GAAG,IAAI,iCAAgB,EAE1D,CAAC;AACN,CAAC,EAJgB,QAAQ,wBAAR,QAAQ,QAIxB;AAED;;;;;;;GAOG;AACU,QAAA,eAAe,GAC1B,IAAA,kCAAiB,GAAkD,CAAC;AAOtE,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,OAAO,CACL,aAAa,CAAC,IAAI,CAAC;QACnB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,MAAM,IAAI,IAAI;QACd,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;QAC/C,WAAW,IAAI,IAAI;QACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,oNAAoN;AACpN,SAAS,gBAAgB,CAAC,IAAa;IACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO;QACL,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAqB;IAC5C,MAAM,OAAO,GAAG,IAAA,gCAAsB,EAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,WAAW,GAAG,MAAM,IAAA,uBAAe,EAAC;QAC1C,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;QACf,OAAO;QACL,qIAAqI;QACrI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACnE,sHAAsH;QACtH,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACjE,KAAK;QACH,qIAAqI;QACrI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;YACzC,CAAC,CAAC,OAAO,CAAC,eAAe;YACzB,CAAC,CAAC,SAAS;QACf,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,sBAAsB,CAAI,OAAU;IACxD,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,0OAA0O;IAC1O,MAAM,MAAM,GAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;QAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/docs/1.core/5.tenancy.md
CHANGED
|
@@ -360,7 +360,13 @@ Deleting an account makes one call per tenant the user belongs to, one after the
|
|
|
360
360
|
|
|
361
361
|
`runTenantLifecycleOperation<T>(tenantId: string, work: () => Promise<T>): Promise<T>` admits one invocation, calls `work`, then releases that admission and returns the result. Closed admission rejects without running `work`. Membership and invitation writes use it through `changeTenantMembers`. Call it directly only for other work that must coordinate with tenant deletion. That work must await every effect and start no detached writer.
|
|
362
362
|
|
|
363
|
-
A successful callback releases its admission. A deliberate refusal, an `HTTPResult` with a 4xx status, also releases its admission and rethrows the original refusal. The release is tried three times. If every try fails, the admission stays and the call rejects. After a refusal it rejects with an `AggregateError` of the refusal and
|
|
363
|
+
A successful callback releases its admission. A deliberate refusal, an `HTTPResult` with a 4xx status, also releases its admission and rethrows the original refusal. The release is tried three times, 200 ms and then 400 ms apart, so a short database outage does not block the tenant. If every try fails, the admission stays, the module logs an error that names the tenant and the attempt, and the call rejects. After a refusal it rejects with an `AggregateError` of the refusal and a `TenantLifecycleReleaseError`. After a success it rejects with the `TenantLifecycleReleaseError`. Any other failure retains the admission, because its effects may be indeterminate. A retry is a new invocation and never retires the identity of the failed one. There is no automatic expiry. An operator retires an admission with [`releaseTenantLifecycleAttempt`](#unblocking-a-deletion).
|
|
364
|
+
|
|
365
|
+
| `TenantLifecycleReleaseError` field | Value |
|
|
366
|
+
| ----------------------------------- | ----- |
|
|
367
|
+
| `tenantId` | The tenant whose deletion stays blocked. |
|
|
368
|
+
| `attemptId` | The admission that stays, as `observeTenantLifecycle` lists it in `activeAttemptIds`. |
|
|
369
|
+
| `cause` | The failure of the last release try. |
|
|
364
370
|
|
|
365
371
|
### Pausing admission
|
|
366
372
|
|
|
@@ -391,6 +397,38 @@ Call it before any destructive tenant phase, including deletion hooks. Do not de
|
|
|
391
397
|
|
|
392
398
|
The [backend services guide](/docs/building/backend-services#tenant-deletion-closes-producer-admission-first) shows where closure fits in a module's deletion flow.
|
|
393
399
|
|
|
400
|
+
### Unblocking a deletion
|
|
401
|
+
|
|
402
|
+
`releaseTenantLifecycleAttempt(tenantId: string, attemptId: string): Promise<boolean>` retires one admission by hand. It is the operator path for a tenant whose `closeTenantLifecycleAdmission` keeps rejecting. It resolves `true` when it retired the admission. It resolves `false`, and writes nothing, when the tenant holds no such admission: the attempt was already retired, or the tenant or attempt id is wrong. Calling it again is safe.
|
|
403
|
+
|
|
404
|
+
Retire only an attempt whose effects you know are over:
|
|
405
|
+
|
|
406
|
+
- An attempt that a `TenantLifecycleReleaseError` names finished or refused, so none of its effects is in flight. Retire it once the database answers again. The error and the log line give both ids.
|
|
407
|
+
- Any other attempt that `observeTenantLifecycle` lists failed with effects that may be indeterminate. Retire it only after you have confirmed that its work left no write in flight, because the deletion can then overtake that write.
|
|
408
|
+
|
|
409
|
+
Call it from an operator script or a one-off task, never from a `runTenantLifecycleOperation` callback or on a timer. Then call `closeTenantLifecycleAdmission` again.
|
|
410
|
+
|
|
411
|
+
```typescript
|
|
412
|
+
import {
|
|
413
|
+
TenantLifecycleReleaseError,
|
|
414
|
+
closeTenantLifecycleAdmission,
|
|
415
|
+
releaseTenantLifecycleAttempt,
|
|
416
|
+
} from "@antelopejs/interface-dms/tenant-lifecycle";
|
|
417
|
+
|
|
418
|
+
export async function unblockDeletion(
|
|
419
|
+
releaseFailure: TenantLifecycleReleaseError,
|
|
420
|
+
): Promise<void> {
|
|
421
|
+
const retired = await releaseTenantLifecycleAttempt(
|
|
422
|
+
releaseFailure.tenantId,
|
|
423
|
+
releaseFailure.attemptId,
|
|
424
|
+
);
|
|
425
|
+
if (!retired) {
|
|
426
|
+
throw new Error(`No admission ${releaseFailure.attemptId} to retire`);
|
|
427
|
+
}
|
|
428
|
+
await closeTenantLifecycleAdmission(releaseFailure.tenantId);
|
|
429
|
+
}
|
|
430
|
+
```
|
|
431
|
+
|
|
394
432
|
## Built-in data controllers
|
|
395
433
|
|
|
396
434
|
The interface ships the two data controllers behind the built-in settings screens. The DMS module registers both itself, so their routes exist as soon as it is loaded. Reference them, and do not register them again.
|
package/docs/1.core/7.hooks.md
CHANGED
|
@@ -286,7 +286,7 @@ A handler that throws for its own reasons fails someone's signup. Keep its work
|
|
|
286
286
|
|
|
287
287
|
`extras` is opaque. The DMS reads no key of it, validates nothing, and stores nothing. It carries the object from the caller of the provisioning flow to the handlers, and each handler writes the keys it recognises. The shape is a contract between that caller and that handler, and the DMS is not part of it. A product can therefore collect a new field without a DMS release.
|
|
288
288
|
|
|
289
|
-
The hook fires once per tenant, when the tenant is created, and never again on a later start once it has succeeded. The DMS fires it for the `default` tenant once every module has started, so the tables and settings that modules registered are ready. That payload has no `userId`, because the `default` tenant has no owner until onboarding. Replicas that share a new database elect one holder through a lease on the tenant's row, and the others serve meanwhile. A holder that stops renewing for `provisioningLease.staleAfterMs` is taken over, even if its handlers are still running. If that attempt fails, or its process dies, the next start or another replica runs every handler again, so a handler skips what it already wrote. A SaaS module such as `dms-saas` fires the hook for each workspace its signup flow creates.
|
|
289
|
+
The hook fires once per tenant, when the tenant is created, and never again on a later start once it has succeeded. The DMS fires it for the `default` tenant once every module has started, so the tables and settings that modules registered are ready. That payload has no `userId`, because the `default` tenant has no owner until onboarding. Replicas that share a new database elect one holder through a lease on the tenant's row, and the others serve meanwhile. A holder that stops renewing for `provisioningLease.staleAfterMs` is taken over, even if its handlers are still running. If that attempt fails, or its process dies, the next start or another replica runs every handler again, so a handler skips what it already wrote. Stopping the DMS does not wait for the handlers. An attempt still running then stops renewing its lease and is taken over the same way, even if its handlers are still running. A SaaS module such as `dms-saas` fires the hook for each workspace its signup flow creates.
|
|
290
290
|
|
|
291
291
|
A module writes the default data a tenant starts with in this hook, such as templates, folders, a sender or a demo history. Once written, that data belongs to the tenant. The module does not write it again on a later start, does not compare it with what members changed since, and does not wait for the tenant from `start()` or `DATABASE_INITIALIZED`.
|
|
292
292
|
|
|
@@ -160,10 +160,7 @@ class Site extends Table {
|
|
|
160
160
|
class SiteModel extends BasicDataModel(Site, "sites") {}
|
|
161
161
|
|
|
162
162
|
DefaultLayout({
|
|
163
|
-
record:
|
|
164
|
-
const site = await GetModel(SiteModel).get(params?.id ?? "");
|
|
165
|
-
return site && { ...site };
|
|
166
|
-
},
|
|
163
|
+
record: ({ params }) => GetModel(SiteModel).get(params?.id ?? ""),
|
|
167
164
|
headerActions: [
|
|
168
165
|
{
|
|
169
166
|
label: "$sites.directions",
|
package/docs/3.base/4.tables.md
CHANGED
|
@@ -266,7 +266,7 @@ Typing `TableViewOptions` by `InstanceType<T>` is what makes row-action rules fi
|
|
|
266
266
|
| `tabs` | `TableViewTab[]` | Tabs above the table, each applying a hidden filter on one column (`filter` optional). A tab may link to another page instead (`to`: page controller or path, `countFrom`: data controller or location for its counter); a tab with id `"all"` replaces the implicit one; `permission` (an action of the table) or `permissionId` (an absolute id) gates it; `navBadge` (`true`, or `{ tone }`) publishes its counter as the page's nav badge. Serialized as `TableViewTabSerialized` (`to` resolved per request, `toPage`). |
|
|
267
267
|
| `realtime` | `boolean` | Set to `false` to disable realtime broadcast and presence for this resource. Realtime is on by default. |
|
|
268
268
|
| `realtimeTopic` | `string \| string[]` | Topics the backend publishes on when rows change outside the table's routes: the table reads its rows again on each event. Registered against the page from `onCreated`; also offered by `TableView.fromSource`. |
|
|
269
|
-
| `liveHold` | `boolean \| TableViewLiveHoldOptions` | On a page declared with `live`, keeps the rows while the page is paused, and in Direct while they are on screen or scrolled past (a new row at the top would push them down), and shows a "N new ยท Show" pill over the rows, which moves nothing, counting the rows its tab, search and filters match now beyond those it holds (asked of its count route), not the events; Show reads them once without leaving the pause. `{ whileRowOpen?, whileScrolled?, whileSearching?, whileSorted? }` (all default `false`) also holds the table alone, the page staying live, while a row is open in the side panel, its first row is scrolled out of view, the user's search narrows the rows or they are sorted otherwise than by `defaultSort`; the strip then names the reason ("Table on hold ยท search active"). `missedLabel` words the strip's count, given `{count}` ("12 new requests"); while the page is paused the strip adds the page's `setMissedDetail` breakdown. A `TableView.fromSource` route receives `liveHeldAt` (ISO 8601) on every request made while held. Also offered by `TableView.fromSource`. |
|
|
269
|
+
| `liveHold` | `boolean \| TableViewLiveHoldOptions` | On a page declared with `live`, keeps the rows while the page is paused, and in Direct while they are on screen or scrolled past (a new row at the top would push them down; `whileOnScreen: false` lets them follow the feed), and shows a "N new ยท Show" pill over the rows, which moves nothing, counting the rows its tab, search and filters match now beyond those it holds (asked of its count route), not the events; Show reads them once without leaving the pause. `{ whileRowOpen?, whileScrolled?, whileSearching?, whileSorted? }` (all default `false`) also holds the table alone, the page staying live, while a row is open in the side panel, its first row is scrolled out of view, the user's search narrows the rows or they are sorted otherwise than by `defaultSort`; the strip then names the reason ("Table on hold ยท search active"). `missedLabel` words the strip's count, given `{count}` ("12 new requests"); while the page is paused the strip adds the page's `setMissedDetail` breakdown. A `TableView.fromSource` route receives `liveHeldAt` (ISO 8601) on every request made while held. Also offered by `TableView.fromSource`. |
|
|
270
270
|
| `reorder` | `TableViewReorderOptions` | `{ field }`: rows ordered by hand with a drag handle, on the grid and on the `cards` display. `field` must be a `@Sortable()`, writable `NumberType` column, and the edit action on: registration throws otherwise. The rows are listed sorted on it, and a move saves only the rows whose value changed. |
|
|
271
271
|
| `kanban` | `KanbanOptions` | Enable the kanban display. |
|
|
272
272
|
| `grouped` | `GroupedOptions` | `{ groupByField, by?: "value" \| "day" \| "week", collapsible?, count? }`: offer the `grouped` display, the grid's columns under a header row per group. `groupByField` must be a `@Sortable()` column, a `DateType` one to group by day or week. |
|
package/package.json
CHANGED