@memberjunction/core-entities 6.2.0-edge.2 → 6.2.0-edge.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/custom/FormScope/FormContributionClaims.d.ts +20 -0
- package/dist/custom/FormScope/FormContributionClaims.d.ts.map +1 -0
- package/dist/custom/FormScope/FormContributionClaims.js +33 -0
- package/dist/custom/FormScope/FormContributionClaims.js.map +1 -0
- package/dist/custom/FormScope/FormContributionLifecycle.d.ts +43 -0
- package/dist/custom/FormScope/FormContributionLifecycle.d.ts.map +1 -0
- package/dist/custom/FormScope/FormContributionLifecycle.js +47 -0
- package/dist/custom/FormScope/FormContributionLifecycle.js.map +1 -0
- package/dist/custom/FormScope/FormContributionRow.d.ts +40 -0
- package/dist/custom/FormScope/FormContributionRow.d.ts.map +1 -0
- package/dist/custom/FormScope/FormContributionRow.js +84 -0
- package/dist/custom/FormScope/FormContributionRow.js.map +1 -0
- package/dist/custom/FormScope/FormPanelHides.d.ts +14 -0
- package/dist/custom/FormScope/FormPanelHides.d.ts.map +1 -0
- package/dist/custom/FormScope/FormPanelHides.js +32 -0
- package/dist/custom/FormScope/FormPanelHides.js.map +1 -0
- package/dist/custom/FormScope/FormScopeRules.d.ts +220 -0
- package/dist/custom/FormScope/FormScopeRules.d.ts.map +1 -0
- package/dist/custom/FormScope/FormScopeRules.js +295 -0
- package/dist/custom/FormScope/FormScopeRules.js.map +1 -0
- package/dist/engines/IdentityClaimEngine.d.ts +15 -2
- package/dist/engines/IdentityClaimEngine.d.ts.map +1 -1
- package/dist/engines/IdentityClaimEngine.js.map +1 -1
- package/dist/engines/QueryEngine.d.ts.map +1 -1
- package/dist/engines/QueryEngine.js +2 -1
- package/dist/engines/QueryEngine.js.map +1 -1
- package/dist/engines/component-metadata.d.ts +3 -1
- package/dist/engines/component-metadata.d.ts.map +1 -1
- package/dist/engines/component-metadata.js +12 -5
- package/dist/engines/component-metadata.js.map +1 -1
- package/dist/engines/interactive-forms.d.ts +128 -9
- package/dist/engines/interactive-forms.d.ts.map +1 -1
- package/dist/engines/interactive-forms.js +268 -14
- package/dist/engines/interactive-forms.js.map +1 -1
- package/dist/generated/entities/__mj.d.ts +4308 -203
- package/dist/generated/entities/__mj.d.ts.map +1 -1
- package/dist/generated/entities/__mj.js +11370 -5862
- package/dist/generated/entities/__mj.js.map +1 -1
- package/dist/generated/remote_operations.d.ts +262 -0
- package/dist/generated/remote_operations.d.ts.map +1 -1
- package/dist/generated/remote_operations.js +126 -0
- package/dist/generated/remote_operations.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { AuthorizationEvaluator } from '@memberjunction/core';
|
|
2
|
+
import { UUIDsEqual } from '@memberjunction/global';
|
|
3
|
+
/**
|
|
4
|
+
* Who may write a full custom form or a panel, and at which scope.
|
|
5
|
+
*
|
|
6
|
+
* A form or panel belongs to one user, to a role, or to everyone. Anyone may manage their own.
|
|
7
|
+
* Changing what OTHER people see — creating, editing, removing or re-aiming a role or everyone
|
|
8
|
+
* item — takes the {@link MANAGE_FORM_DEFAULTS_AUTHORIZATION} grant. Changing the component a
|
|
9
|
+
* form or panel draws changes that form or panel, so {@link ComponentWriteRefusal},
|
|
10
|
+
* {@link FormRowComponentRefusal} and {@link ComponentNameCollisionRefusal} apply the same rule to
|
|
11
|
+
* the `MJ: Components` row, to which component a row points at, and to a component's name.
|
|
12
|
+
*
|
|
13
|
+
* Lives here, in a package both the server and the browser depend on, so the two cannot disagree:
|
|
14
|
+
* the server-side entity subclasses enforce this rule on every write path, and the form's drawer
|
|
15
|
+
* calls the same function to decide which controls to draw.
|
|
16
|
+
*/
|
|
17
|
+
/** The authorization that lets a user publish a form or panel to a role or to everyone. */
|
|
18
|
+
export const MANAGE_FORM_DEFAULTS_AUTHORIZATION = 'Manage Form Defaults';
|
|
19
|
+
/** The scopes as stored. Keyed by {@link FormScope}, so it stays in step with the value list. */
|
|
20
|
+
const CANONICAL_FORM_SCOPES = { User: true, Role: true, Global: true };
|
|
21
|
+
/** True when `value` is exactly `User`, `Role` or `Global`: no padding, this casing. */
|
|
22
|
+
export function IsCanonicalFormScope(value) {
|
|
23
|
+
return typeof value === 'string' && Object.prototype.hasOwnProperty.call(CANONICAL_FORM_SCOPES, value);
|
|
24
|
+
}
|
|
25
|
+
const GRANT_REFUSAL = `Publishing a form or panel to a role or to everyone, or changing one that is, requires the ` +
|
|
26
|
+
`${MANAGE_FORM_DEFAULTS_AUTHORIZATION} authorization.`;
|
|
27
|
+
const OWNERSHIP_REFUSAL = 'You can only change your own personal forms and panels. This one belongs to someone else, and ' +
|
|
28
|
+
'holding the Manage Form Defaults authorization does not change that — it governs what other ' +
|
|
29
|
+
'people are shown, not their own customisations.';
|
|
30
|
+
/**
|
|
31
|
+
* Why this write is not allowed, or null when it is.
|
|
32
|
+
*
|
|
33
|
+
* Both sides of the write are checked. A personal side must belong to the caller; a shared side
|
|
34
|
+
* needs the grant. Checking only the new side would let a user demote a shared item to their own
|
|
35
|
+
* and take it over; checking only the old side would let them promote their own to everyone.
|
|
36
|
+
*
|
|
37
|
+
* A scope is read the way the database reads it: a side is personal when its scope is `User`
|
|
38
|
+
* after trimming and case-folding. Any side whose scope is not exactly `User` (`Role`, `Global`,
|
|
39
|
+
* a padded or re-cased value, a blank, an unknown value) counts as shared and needs the grant.
|
|
40
|
+
*/
|
|
41
|
+
export function FormScopeWriteRefusal(write) {
|
|
42
|
+
const next = { Scope: write.NextScope, UserID: write.NextUserID };
|
|
43
|
+
const sides = write.Operation === 'create'
|
|
44
|
+
? [next]
|
|
45
|
+
: [{ Scope: write.PriorScope, UserID: write.PriorUserID }, next];
|
|
46
|
+
// Ownership first: it is the stricter rule, and a holder is refused by it too.
|
|
47
|
+
for (const side of sides) {
|
|
48
|
+
if (readsAsPersonal(side.Scope) && !UUIDsEqual(side.UserID ?? '', write.CallerID)) {
|
|
49
|
+
return OWNERSHIP_REFUSAL;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (!write.CallerHoldsGrant && sides.some((side) => side.Scope !== 'User')) {
|
|
53
|
+
return GRANT_REFUSAL;
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
/** True when a scope is `User` once trimmed and case-folded, as the database compares it. */
|
|
58
|
+
function readsAsPersonal(scope) {
|
|
59
|
+
return (scope ?? '').trim().toLowerCase() === 'user';
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The `MJ: Components` columns that change what a form or panel using the component draws, or
|
|
63
|
+
* which component a lookup by name finds. An update by a holder of the grant is checked only when
|
|
64
|
+
* it changes one of them; an update by any other caller is always checked. A write with no caller
|
|
65
|
+
* (a trusted server context) is not checked.
|
|
66
|
+
*/
|
|
67
|
+
export const GUARDED_COMPONENT_FIELDS = ['Specification', 'Status', 'Name', 'Type', 'Namespace'];
|
|
68
|
+
const GUARDED_COMPONENT_FIELD_KEYS = new Set(GUARDED_COMPONENT_FIELDS.map((f) => f.toLowerCase()));
|
|
69
|
+
const COMPONENT_REFUSAL_LEAD = 'This component is used by a form or panel, so changing its specification, status, name, ' +
|
|
70
|
+
'namespace or type, or deleting it, changes that form or panel.';
|
|
71
|
+
const OWN_COMPONENT_RULE = 'Without the Manage Form Defaults authorization you can change or delete only a component of ' +
|
|
72
|
+
'your own: one used by your own personal forms or panels and by nothing else, or one used by ' +
|
|
73
|
+
'none that you created.';
|
|
74
|
+
const FOREIGN_COMPONENT_REFUSAL_LEAD = `${OWN_COMPONENT_RULE} This one is used by a form or panel that is not your own.`;
|
|
75
|
+
const GRANT_WOULD_ALLOW = 'With that authorization you could make this change.';
|
|
76
|
+
const UNREFERENCED_COMPONENT_REFUSAL = `${OWN_COMPONENT_RULE} No form or panel uses this one, you did not create it, and other forms ` +
|
|
77
|
+
'may load it by name.';
|
|
78
|
+
const UNCLAIMED_COMPONENT_REFUSAL = 'Without the Manage Form Defaults authorization you can point a form or panel only at a component ' +
|
|
79
|
+
'of your own: one used by your own personal forms and panels and by nothing else, or one used by ' +
|
|
80
|
+
'none that you created. No form or panel uses this one, and you did not create it.';
|
|
81
|
+
const ROW_COMPONENT_REFUSAL_LEAD = 'Another form or panel already uses this component, and pointing a form or panel at it would ' +
|
|
82
|
+
'let a change to it reach that one too.';
|
|
83
|
+
const NAME_COLLISION_REFUSAL = 'Another component already has this name. Forms find components by name, so without the Manage ' +
|
|
84
|
+
'Form Defaults authorization a component may share its name only with components of your own: ' +
|
|
85
|
+
'used by your own personal forms and panels and by nothing else, or used by none and created by you.';
|
|
86
|
+
/**
|
|
87
|
+
* Whether this write by a caller must be checked against the forms and panels that use the
|
|
88
|
+
* component: a delete; any update by a caller without the grant, whatever columns it changes; or
|
|
89
|
+
* an update by a holder that changes a {@link GUARDED_COMPONENT_FIELDS} column. With no caller (a
|
|
90
|
+
* trusted server context) nothing is checked. A create is never checked here;
|
|
91
|
+
* {@link ComponentNameCollisionRefusal} covers its name.
|
|
92
|
+
*/
|
|
93
|
+
export function ComponentWriteIsGuarded(write) {
|
|
94
|
+
if (write.CallerID == null || write.Operation === 'create')
|
|
95
|
+
return false;
|
|
96
|
+
if (write.Operation === 'delete' || !write.CallerHoldsGrant)
|
|
97
|
+
return true;
|
|
98
|
+
return write.ChangedFields.some((field) => GUARDED_COMPONENT_FIELD_KEYS.has(field.trim().toLowerCase()));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Whether a component is the caller's own: used by at least one row and only by the caller's own
|
|
102
|
+
* personal rows, or used by no row and created by the caller. A row whose scope is not exactly
|
|
103
|
+
* `User` is not the caller's own, whoever it names.
|
|
104
|
+
*/
|
|
105
|
+
export function IsCallersOwnComponent(component, callerID) {
|
|
106
|
+
return component.References.length > 0
|
|
107
|
+
? referenceRefusal(component.References, callerID, false) === null
|
|
108
|
+
: component.CreatedByCaller;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Why a write to a component is not allowed, or null when it is. Only a write that
|
|
112
|
+
* {@link ComponentWriteIsGuarded} selects is checked.
|
|
113
|
+
*
|
|
114
|
+
* Without the grant, any update and a delete are allowed only for a component of the caller's own
|
|
115
|
+
* ({@link IsCallersOwnComponent}): used by at least one row and only by the caller's own personal
|
|
116
|
+
* rows, or used by no row and created by the caller. Forms can load a component by name, so a
|
|
117
|
+
* component with no row may still be what someone else's form draws.
|
|
118
|
+
*
|
|
119
|
+
* With the grant, each row that uses the component is checked with {@link FormScopeWriteRefusal}
|
|
120
|
+
* as if the caller were updating that row in place: a `Role` or `Global` row passes, another
|
|
121
|
+
* user's personal row refuses, and the caller's own personal row passes. A component no row uses
|
|
122
|
+
* may be changed.
|
|
123
|
+
*
|
|
124
|
+
* A refusal for a caller without the grant says whether the grant would help. It says the grant
|
|
125
|
+
* would allow the write when a holder making the same write would pass. It says the grant does
|
|
126
|
+
* not change the answer only when a holder would be refused too: the write is one a holder is
|
|
127
|
+
* checked for, and another user's personal row uses the component.
|
|
128
|
+
*/
|
|
129
|
+
export function ComponentWriteRefusal(write) {
|
|
130
|
+
if (!ComponentWriteIsGuarded(write))
|
|
131
|
+
return null;
|
|
132
|
+
const callerID = write.CallerID ?? '';
|
|
133
|
+
if (write.CallerHoldsGrant) {
|
|
134
|
+
const refusal = referenceRefusal(write.References, callerID, true);
|
|
135
|
+
return refusal ? `${COMPONENT_REFUSAL_LEAD} ${refusal}` : null;
|
|
136
|
+
}
|
|
137
|
+
if (IsCallersOwnComponent(write, callerID))
|
|
138
|
+
return null;
|
|
139
|
+
if (write.References.length === 0)
|
|
140
|
+
return UNREFERENCED_COMPONENT_REFUSAL;
|
|
141
|
+
const holderWouldBeRefused = ComponentWriteRefusal({ ...write, CallerHoldsGrant: true }) !== null;
|
|
142
|
+
return `${FOREIGN_COMPONENT_REFUSAL_LEAD} ${holderWouldBeRefused ? OWNERSHIP_REFUSAL : GRANT_WOULD_ALLOW}`;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Why a form or panel row may not point at this component, or null when it may. Applies when the
|
|
146
|
+
* row is created or its `ComponentID` changes.
|
|
147
|
+
*
|
|
148
|
+
* Without the grant, the component must be the caller's own ({@link IsCallersOwnComponent}): used
|
|
149
|
+
* only by the caller's own personal rows, or used by none and created by the caller. With the
|
|
150
|
+
* grant, every other row that uses it is checked as {@link ComponentWriteRefusal} checks it: a
|
|
151
|
+
* shared row passes, and another user's personal row refuses everyone, an Owner included. Without
|
|
152
|
+
* this, a personal row pointed at someone else's component would make that component the
|
|
153
|
+
* caller's to change, or lock it against everyone else.
|
|
154
|
+
*/
|
|
155
|
+
export function FormRowComponentRefusal(check) {
|
|
156
|
+
if (check.CallerID == null)
|
|
157
|
+
return null;
|
|
158
|
+
const others = check.References.filter((reference) => !(check.RowID && reference.ID && UUIDsEqual(reference.ID, check.RowID)));
|
|
159
|
+
if (!check.CallerHoldsGrant && others.length === 0) {
|
|
160
|
+
return check.CreatedByCaller ? null : UNCLAIMED_COMPONENT_REFUSAL;
|
|
161
|
+
}
|
|
162
|
+
const refusal = referenceRefusal(others, check.CallerID, check.CallerHoldsGrant);
|
|
163
|
+
return refusal ? `${ROW_COMPONENT_REFUSAL_LEAD} ${refusal}` : null;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Why a component may not take this name, or null when it may.
|
|
167
|
+
*
|
|
168
|
+
* A form's spec can load a component by name, and the lookup returns whichever match it finds
|
|
169
|
+
* first, so a second component with the same name could stand in for the first. Without the grant,
|
|
170
|
+
* a created or renamed component may share its name only with components that are the caller's
|
|
171
|
+
* own ({@link IsCallersOwnComponent}). A holder is not restricted, so they can resolve a collision.
|
|
172
|
+
*/
|
|
173
|
+
export function ComponentNameCollisionRefusal(check) {
|
|
174
|
+
if (!check.NamesComponent || check.CallerID == null || check.CallerHoldsGrant)
|
|
175
|
+
return null;
|
|
176
|
+
const callerID = check.CallerID;
|
|
177
|
+
const foreign = check.Collisions.some((collision) => !IsCallersOwnComponent(collision, callerID));
|
|
178
|
+
return foreign ? NAME_COLLISION_REFUSAL : null;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* The first refusal among these rows for a caller changing them in place, personal rows first,
|
|
182
|
+
* or null when every row allows it.
|
|
183
|
+
*/
|
|
184
|
+
function referenceRefusal(references, callerID, callerHoldsGrant) {
|
|
185
|
+
const personalFirst = [...references].sort((a, b) => Number(readsAsPersonal(b.Scope)) - Number(readsAsPersonal(a.Scope)));
|
|
186
|
+
for (const reference of personalFirst) {
|
|
187
|
+
const refusal = FormScopeWriteRefusal({
|
|
188
|
+
Operation: 'update',
|
|
189
|
+
PriorScope: reference.Scope, PriorUserID: reference.UserID,
|
|
190
|
+
NextScope: reference.Scope, NextUserID: reference.UserID,
|
|
191
|
+
CallerID: callerID,
|
|
192
|
+
CallerHoldsGrant: callerHoldsGrant,
|
|
193
|
+
});
|
|
194
|
+
if (refusal)
|
|
195
|
+
return refusal;
|
|
196
|
+
}
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* How narrow a scope's audience is, for breaking a tie between two rows at the same precedence.
|
|
201
|
+
* Higher wins: `User` (3) over `Role` (2) over `Global` (1). A value that is not one of the three
|
|
202
|
+
* ranks 0, below every scope.
|
|
203
|
+
*/
|
|
204
|
+
export function ContributionScopeRank(scope) {
|
|
205
|
+
switch (scope) {
|
|
206
|
+
case 'User': return 3;
|
|
207
|
+
case 'Role': return 2;
|
|
208
|
+
case 'Global': return 1;
|
|
209
|
+
default: return 0;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Whether `candidate` beats `incumbent` for one contribution key: higher precedence first; on a
|
|
214
|
+
* tie a compiled panel beats any row, and between rows the narrower scope wins
|
|
215
|
+
* ({@link ContributionScopeRank}). On a full tie the incumbent stays, so the result follows the
|
|
216
|
+
* order the caller walks the contributions in.
|
|
217
|
+
*/
|
|
218
|
+
export function FormContributionOutranks(candidate, incumbent) {
|
|
219
|
+
const precedence = (candidate.Precedence ?? 0) - (incumbent.Precedence ?? 0);
|
|
220
|
+
if (precedence !== 0)
|
|
221
|
+
return precedence > 0;
|
|
222
|
+
return tieRank(candidate) > tieRank(incumbent);
|
|
223
|
+
}
|
|
224
|
+
function tieRank(contribution) {
|
|
225
|
+
return contribution.Compiled ? Number.POSITIVE_INFINITY : ContributionScopeRank(contribution.Scope);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Whether a user may pick a full custom form and see it rendered.
|
|
229
|
+
*
|
|
230
|
+
* A live (`Active`) form always. A set-aside (`Inactive`) form only when it is the user's own
|
|
231
|
+
* `User` row: applying a second form sets the first aside, and the user must be able to swap back.
|
|
232
|
+
* A shared form set to `Inactive` was retracted by whoever manages it, so it is neither offered nor
|
|
233
|
+
* rendered. A `Pending` row is a draft and is never either. The browser's form resolver and the
|
|
234
|
+
* server's composition action both decide with this.
|
|
235
|
+
*
|
|
236
|
+
* It checks `Status` and `Scope` only, not whose row it is or which role it is for. Callers pass
|
|
237
|
+
* rows that already apply to the user: their own `User` rows, their roles' rows and `Global` rows.
|
|
238
|
+
*/
|
|
239
|
+
export function IsSelectableFormOverride(row) {
|
|
240
|
+
return row.Status === 'Active' || (row.Status === 'Inactive' && row.Scope === 'User');
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Entities whose forms show only the user's own full custom forms and panels, lowercased.
|
|
244
|
+
*
|
|
245
|
+
* A full custom form or a panel runs a React spec the runtime interprets. On an identity,
|
|
246
|
+
* permission or form-metadata surface, one published to a role or to everyone would change what
|
|
247
|
+
* other people see where it matters most, so only `User`-scope items render there.
|
|
248
|
+
*/
|
|
249
|
+
export const RESTRICTED_FORM_ENTITIES = new Set([
|
|
250
|
+
'mj: users',
|
|
251
|
+
'mj: roles',
|
|
252
|
+
'mj: user roles',
|
|
253
|
+
'mj: authorizations',
|
|
254
|
+
'mj: authorization roles',
|
|
255
|
+
'mj: entity permissions',
|
|
256
|
+
'mj: row level security filters',
|
|
257
|
+
'mj: api keys',
|
|
258
|
+
'mj: entity field permissions',
|
|
259
|
+
'mj: entity form overrides',
|
|
260
|
+
'mj: entity form contributions',
|
|
261
|
+
]);
|
|
262
|
+
/**
|
|
263
|
+
* Whether a full custom form or panel at this scope may render on this entity's form.
|
|
264
|
+
*
|
|
265
|
+
* Always for `User`. Any other scope only off {@link RESTRICTED_FORM_ENTITIES}; the name is
|
|
266
|
+
* matched trimmed and case-folded. Applied where rows are read, so it holds however a row was
|
|
267
|
+
* written, `mj sync` and direct SQL included.
|
|
268
|
+
*/
|
|
269
|
+
export function FormScopeAllowedOnEntity(entityName, scope) {
|
|
270
|
+
if (scope === 'User')
|
|
271
|
+
return true;
|
|
272
|
+
return !RESTRICTED_FORM_ENTITIES.has((entityName ?? '').trim().toLowerCase());
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Whether this user may publish forms and panels to a role or to everyone.
|
|
276
|
+
*
|
|
277
|
+
* An `Owner`-type user counts as holding it: they are the platform's top authority and must never
|
|
278
|
+
* be locked out of this. It does not let them touch other people's personal items — that is
|
|
279
|
+
* {@link FormScopeWriteRefusal}'s ownership rule, which no grant overrides.
|
|
280
|
+
*
|
|
281
|
+
* False without a user or when the authorization is not defined, so a deployment that has not
|
|
282
|
+
* synced the authorization yet fails closed.
|
|
283
|
+
*/
|
|
284
|
+
export function UserCanManageFormDefaults(user, provider) {
|
|
285
|
+
if (!user)
|
|
286
|
+
return false;
|
|
287
|
+
if (user.Type?.trim().toLowerCase() === 'owner')
|
|
288
|
+
return true;
|
|
289
|
+
const authorizations = provider?.Authorizations ?? [];
|
|
290
|
+
const grant = authorizations.find((a) => a.Name?.trim().toLowerCase() === MANAGE_FORM_DEFAULTS_AUTHORIZATION.toLowerCase());
|
|
291
|
+
if (!grant)
|
|
292
|
+
return false;
|
|
293
|
+
return new AuthorizationEvaluator().UserCanExecuteWithAncestors(grant, user, authorizations);
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=FormScopeRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormScopeRules.js","sourceRoot":"","sources":["../../../src/custom/FormScope/FormScopeRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,8 +90,16 @@ export interface CreateClaimParams {
|
|
|
90
90
|
ClaimTypeName?: string;
|
|
91
91
|
/** ID of the IdentityClaimType (if Name is not provided) */
|
|
92
92
|
ClaimTypeID?: string;
|
|
93
|
-
/**
|
|
94
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Email address of the intended recipient/claimant.
|
|
95
|
+
*
|
|
96
|
+
* Optional ONLY for claim types whose `Configuration` sets `RequireToken: true`. Such a claim
|
|
97
|
+
* is redeemed by its token alone, so it needs no recipient — for example, a link that hands
|
|
98
|
+
* an anonymous visitor's work to whoever signs in holding it. The claim is stored with an
|
|
99
|
+
* empty `NormalizedEmail`, which no account can match, so email-match redemption and
|
|
100
|
+
* auto-claim on login can never reach it. Every other claim type still requires an email.
|
|
101
|
+
*/
|
|
102
|
+
NormalizedEmail?: string;
|
|
95
103
|
/** Optional polymorphic target entity ID */
|
|
96
104
|
EntityID?: string | null;
|
|
97
105
|
/** Optional target record primary key ID */
|
|
@@ -100,6 +108,11 @@ export interface CreateClaimParams {
|
|
|
100
108
|
Payload?: Record<string, unknown> | null;
|
|
101
109
|
/** Lifespan in days before expiration (defaults to ClaimType.DefaultExpirationDays) */
|
|
102
110
|
ExpiresInDays?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Exact expiry instant, for claims shorter than a day (whole days cannot express "ten
|
|
113
|
+
* minutes"). Takes precedence over `ExpiresInDays`. Must be a valid instant in the future.
|
|
114
|
+
*/
|
|
115
|
+
ExpiresAt?: Date;
|
|
103
116
|
/** Optional linked MagicLinkInvite ID for token verification */
|
|
104
117
|
MagicLinkInviteID?: string | null;
|
|
105
118
|
/** Optional tracking metadata */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityClaimEngine.d.ts","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAE,QAAQ,EAAsB,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACpD,IAAI,EAAE,QAAQ,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,8BAAsB,uBAAuB;IACzC;;OAEG;aACa,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;;;;OAMG;aACa,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAE1E;;OAEG;aACa,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;OAEG;aACa,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC3C;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"IdentityClaimEngine.d.ts","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityClaimEngine.js","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAyD,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AA4BlD;;;GAGG;AACH,MAAM,OAAgB,uBAAuB;CAwB5C;
|
|
1
|
+
{"version":3,"file":"IdentityClaimEngine.js","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EACH,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,qBACa,WAAY,SAAQ,UAAU,CAAC,WAAW,CAAC;IACpD;;;OAGG;IACH,WAAkB,QAAQ,IAAI,WAAW,CAExC;IAED,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAA4B;IAEnC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EACH,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,qBACa,WAAY,SAAQ,UAAU,CAAC,WAAW,CAAC;IACpD;;;OAGG;IACH,WAAkB,QAAQ,IAAI,WAAW,CAExC;IAED,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAA4B;IAEnC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAkBhG,gCAAgC;IAChC,IAAW,OAAO,IAAI,qBAAqB,EAAE,CAE5C;IAED,2BAA2B;IAC3B,IAAW,UAAU,IAAI,qBAAqB,EAAE,CAE/C;IAED,2EAA2E;IAC3E,IAAW,eAAe,IAAI,qBAAqB,EAAE,CAEpD;IAED,kCAAkC;IAClC,IAAW,MAAM,IAAI,kBAAkB,EAAE,CAExC;IAED,uEAAuE;IACvE,IAAW,WAAW,IAAI,kBAAkB,EAAE,CAE7C;IAED,sCAAsC;IACtC,IAAW,UAAU,IAAI,sBAAsB,EAAE,CAEhD;IAED,2EAA2E;IAC3E,IAAW,eAAe,IAAI,sBAAsB,EAAE,CAErD;IAED,gDAAgD;IAChD,IAAW,aAAa,IAAI,mBAAmB,EAAE,CAEhD;IAED,mCAAmC;IACnC,IAAW,WAAW,IAAI,uBAAuB,EAAE,CAElD;IAED,4EAA4E;IAC5E,IAAW,gBAAgB,IAAI,uBAAuB,EAAE,CAEvD;IAED,4DAA4D;IAC5D,IAAW,YAAY,IAAI,uBAAuB,EAAE,CAEnD;IAED,6EAA6E;IAC7E,IAAW,iBAAiB,IAAI,uBAAuB,EAAE,CAExD;IAED,6CAA6C;IAC7C,IAAW,SAAS,IAAI,gBAAgB,EAAE,CAEzC;IAED,kCAAkC;IAClC,IAAW,WAAW,IAAI,kBAAkB,EAAE,CAE7C;IAID,sDAAsD;IACtD,IAAW,eAAe,IAAI,qBAAqB,EAAE,CAEpD;IAED,6BAA6B;IACtB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAMnE,4DAA4D;IACrD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAW5F,qDAAqD;IAC9C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAI5D,yDAAyD;IAClD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAIpE,sDAAsD;IAC/C,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAItE,uDAAuD;IAChD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAIxE,iDAAiD;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;CAKvE"}
|
|
@@ -33,7 +33,8 @@ let QueryEngine = class QueryEngine extends BaseEngine {
|
|
|
33
33
|
}
|
|
34
34
|
async Config(forceRefresh, contextUser, provider) {
|
|
35
35
|
const configs = [
|
|
36
|
-
|
|
36
|
+
// IncludeBinaryFields: the binary vector column is loaded server-side (QueryEngineServer reads it), skipped over the wire.
|
|
37
|
+
{ Type: 'entity', EntityName: 'MJ: Queries', PropertyName: '_queries', CacheLocal: true, IncludeBinaryFields: 'DatabaseProviderOnly' },
|
|
37
38
|
{ Type: 'entity', EntityName: 'MJ: Query Categories', PropertyName: '_categories', CacheLocal: true },
|
|
38
39
|
{ Type: 'entity', EntityName: 'MJ: Query Fields', PropertyName: '_fields', CacheLocal: true },
|
|
39
40
|
{ Type: 'entity', EntityName: 'MJ: Query Parameters', PropertyName: '_parameters', CacheLocal: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryEngine.js","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAA+C,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAapD;;;;GAIG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAuB;IAAjD;;QASK,aAAQ,GAA4B,EAAE,CAAC;QACvC,gBAAW,GAA4B,EAAE,CAAC;QAC1C,YAAO,GAAyB,EAAE,CAAC;QACnC,gBAAW,GAA6B,EAAE,CAAC;QAC3C,mBAAc,GAA0B,EAAE,CAAC;QAC3C,iBAAY,GAA8B,EAAE,CAAC;QAC7C,kBAAa,GAA8B,EAAE,CAAC;QAC9C,eAAU,GAAuB,EAAE,CAAC;QACpC,iBAAY,GAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryEngine.js","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,9 @@ export declare class ComponentMetadataEngine extends BaseEngine<ComponentMetadat
|
|
|
33
33
|
FindComponentByID(id: string, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<MJComponentEntityExtended | undefined>;
|
|
34
34
|
/**
|
|
35
35
|
* Finds a component by name (case-insensitive), optionally filtered by namespace and registry.
|
|
36
|
-
* Performs a targeted RunView query instead of searching a bulk-loaded cache.
|
|
36
|
+
* Performs a targeted RunView query instead of searching a bulk-loaded cache. On SQL Server the
|
|
37
|
+
* name is a Unicode literal (`N'...'`), so a name with characters outside the database's code
|
|
38
|
+
* page matches as stored.
|
|
37
39
|
*/
|
|
38
40
|
FindComponent(name: string, namespace?: string, registry?: string, contextUser?: UserInfo): Promise<MJComponentEntityExtended | undefined>;
|
|
39
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-metadata.d.ts","sourceRoot":"","sources":["../../src/engines/component-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAqB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC5H,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC9B,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;GAUG;AACH,qBAAa,uBAAwB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IAC5E;;OAEG;IACH,WAAkB,QAAQ,IAAI,uBAAuB,CAEpD;IAED,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,sBAAsB,CAAgC;IAEjD,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IA8BhG,IAAW,kBAAkB,IAAI,wBAAwB,EAAE,CAE1D;IAED,IAAW,qBAAqB,IAAI,4BAA4B,EAAE,CAEjE;IAED,IAAW,mBAAmB,IAAI,yBAAyB,EAAE,CAE5D;IAED,IAAW,qBAAqB,IAAI,2BAA2B,EAAE,CAEhE;IAED;;;OAGG;IACU,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAShJ
|
|
1
|
+
{"version":3,"file":"component-metadata.d.ts","sourceRoot":"","sources":["../../src/engines/component-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAqB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC5H,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC9B,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;GAUG;AACH,qBAAa,uBAAwB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IAC5E;;OAEG;IACH,WAAkB,QAAQ,IAAI,uBAAuB,CAEpD;IAED,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,sBAAsB,CAAgC;IAEjD,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IA8BhG,IAAW,kBAAkB,IAAI,wBAAwB,EAAE,CAE1D;IAED,IAAW,qBAAqB,IAAI,4BAA4B,EAAE,CAEjE;IAED,IAAW,mBAAmB,IAAI,yBAAyB,EAAE,CAE5D;IAED,IAAW,qBAAqB,IAAI,2BAA2B,EAAE,CAEhE;IAED;;;OAGG;IACU,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAShJ;;;;;OAKG;IACU,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;CA2B1J"}
|
|
@@ -72,20 +72,27 @@ export class ComponentMetadataEngine extends BaseEngine {
|
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Finds a component by name (case-insensitive), optionally filtered by namespace and registry.
|
|
75
|
-
* Performs a targeted RunView query instead of searching a bulk-loaded cache.
|
|
75
|
+
* Performs a targeted RunView query instead of searching a bulk-loaded cache. On SQL Server the
|
|
76
|
+
* name is a Unicode literal (`N'...'`), so a name with characters outside the database's code
|
|
77
|
+
* page matches as stored.
|
|
76
78
|
*/
|
|
77
79
|
async FindComponent(name, namespace, registry, contextUser) {
|
|
78
80
|
const rv = new RunView();
|
|
79
|
-
const
|
|
81
|
+
const nameLiteral = name.trim().replace(/'/g, "''");
|
|
82
|
+
const otherParts = [];
|
|
80
83
|
if (namespace) {
|
|
81
|
-
|
|
84
|
+
otherParts.push(`Namespace='${namespace.trim().replace(/'/g, "''")}'`);
|
|
82
85
|
}
|
|
83
86
|
if (registry) {
|
|
84
|
-
|
|
87
|
+
otherParts.push(`SourceRegistry='${registry.trim().replace(/'/g, "''")}'`);
|
|
85
88
|
}
|
|
89
|
+
const otherFilter = otherParts.map((part) => ` AND ${part}`).join('');
|
|
86
90
|
const result = await rv.RunView({
|
|
87
91
|
EntityName: 'MJ: Components',
|
|
88
|
-
ExtraFilter:
|
|
92
|
+
ExtraFilter: {
|
|
93
|
+
default: `Name='${nameLiteral}'${otherFilter}`,
|
|
94
|
+
sqlserver: `Name=N'${nameLiteral}'${otherFilter}`,
|
|
95
|
+
},
|
|
89
96
|
MaxRows: 1,
|
|
90
97
|
ResultType: 'entity_object'
|
|
91
98
|
}, contextUser);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-metadata.js","sourceRoot":"","sources":["../../src/engines/component-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+C,QAAQ,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAS5H;;;;;;;;;;GAUG;AACH,MAAM,OAAO,uBAAwB,SAAQ,UAAmC;IAC5E;;OAEG;IACI,MAAM,KAAK,QAAQ;QACvB,OAAO,KAAK,CAAC,WAAW,EAA2B,CAAC;IACvD,CAAC;IAOM,KAAK,CAAC,MAAM,CAAC,YAAsB,EAAE,WAAsB,EAAE,QAA4B;QAC5F,MAAM,CAAC,GAAwC;YAC3C;gBACI,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,yBAAyB;gBACrC,YAAY,EAAE,qBAAqB;gBACnC,UAAU,EAAE,IAAI;aACnB;YACD;gBACI,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,6BAA6B;gBACzC,YAAY,EAAE,wBAAwB;gBACtC,UAAU,EAAE,IAAI;aACnB;YACD;gBACI,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,0BAA0B;gBACtC,YAAY,EAAE,sBAAsB;gBACpC,UAAU,EAAE,IAAI;aACnB;YACD;gBACI,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,4BAA4B;gBACxC,YAAY,EAAE,wBAAwB;gBACtC,UAAU,EAAE,IAAI;aACnB;SACJ,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IAED,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,WAAsB,EAAE,QAA4B;QAC3F,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,uDAAuD;QAC9F,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAA4B,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAClG,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"component-metadata.js","sourceRoot":"","sources":["../../src/engines/component-metadata.ts"],"names":[],"mappings":"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"}
|