@teleporthq/teleport-uidl-resolver 0.43.46 → 0.43.48

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.
@@ -208,6 +208,114 @@ describe('insertLink', () => {
208
208
  })
209
209
  })
210
210
 
211
+ it('resolves a navlink whose route value carries a folder prefix', () => {
212
+ // A details page's route value is folder-qualified (`add-event/Add-Event`)
213
+ // while the navlink still names the page (`Add-Event`). Matching only on
214
+ // the whole value missed every one of them and silently fabricated
215
+ // `/add-event` — a path with no file behind it.
216
+ const node = elementNode('container')
217
+ const navlink = navlinkMockedDefinition()
218
+ navlink.content.routeName = { type: 'static', content: 'Guild-Details' }
219
+ node.content.abilities = { link: navlink }
220
+
221
+ const result = insertLinks(
222
+ node,
223
+ {
224
+ projectRouteDefinition: {
225
+ type: 'route',
226
+ defaultValue: 'home',
227
+ values: [{ value: 'guild-details/Guild-Details', pageOptions: { navLink: '/guilds' } }],
228
+ },
229
+ },
230
+ false
231
+ )
232
+
233
+ expect(result.content.attrs.transitionTo.content).toBe('/guilds')
234
+ })
235
+
236
+ it('does not guess when two folders hold a page of the same name', () => {
237
+ const node = elementNode('container')
238
+ const navlink = navlinkMockedDefinition()
239
+ navlink.content.routeName = { type: 'static', content: 'Details' }
240
+ node.content.abilities = { link: navlink }
241
+
242
+ const result = insertLinks(
243
+ node,
244
+ {
245
+ projectRouteDefinition: {
246
+ type: 'route',
247
+ defaultValue: 'home',
248
+ values: [
249
+ { value: 'events/Details', pageOptions: { navLink: '/events/detail' } },
250
+ { value: 'guilds/Details', pageOptions: { navLink: '/guilds/detail' } },
251
+ ],
252
+ },
253
+ },
254
+ false
255
+ )
256
+
257
+ // Ambiguous → the pre-existing fallback, not an arbitrary pick.
258
+ expect(result.content.attrs.transitionTo.content).toBe('/details')
259
+ })
260
+
261
+ it('refuses to link a dynamic route that has no record id to fill it', () => {
262
+ // `/rsvp-event/[id]` is a TEMPLATE. Without a differentiator there is no id
263
+ // to substitute, so neither the template (a literal `[id]` in the address
264
+ // bar) nor the bare prefix (`/rsvp-event`, which matches no file) is
265
+ // navigable. Run 798e2775 shipped the bare prefix in the global footer of
266
+ // all 17 pages.
267
+ const node = elementNode('container')
268
+ const navlink = navlinkMockedDefinition()
269
+ navlink.content.routeName = { type: 'static', content: 'Add-Event' }
270
+ node.content.abilities = { link: navlink }
271
+
272
+ const result = insertLinks(
273
+ node,
274
+ {
275
+ projectRouteDefinition: {
276
+ type: 'route',
277
+ defaultValue: 'home',
278
+ values: [{ value: 'add-event/Add-Event', pageOptions: { navLink: '/add-event/[id]' } }],
279
+ },
280
+ },
281
+ false
282
+ )
283
+
284
+ expect(result.content.attrs.transitionTo.content).toBe('#')
285
+ })
286
+
287
+ it('still builds the record URL for a dynamic route WITH a differentiator', () => {
288
+ // The row-scoped case must keep working — it is the reason dynamic routes
289
+ // exist, and it is what the guard above must not touch.
290
+ const node = elementNode('container')
291
+ const navlink = navlinkMockedDefinition()
292
+ navlink.content.routeName = { type: 'static', content: 'Event-Details' }
293
+ navlink.content.differentiatorValue = {
294
+ type: 'dynamic',
295
+ content: { referenceType: 'global', refPath: ['Current User', 'id'] },
296
+ } as never
297
+ node.content.abilities = { link: navlink }
298
+
299
+ const result = insertLinks(
300
+ node,
301
+ {
302
+ projectRouteDefinition: {
303
+ type: 'route',
304
+ defaultValue: 'home',
305
+ values: [
306
+ { value: 'event-details/Event-Details', pageOptions: { navLink: '/event-details' } },
307
+ ],
308
+ },
309
+ },
310
+ false
311
+ )
312
+
313
+ expect(result.content.attrs.transitionTo).toEqual({
314
+ type: 'expr',
315
+ content: '`/event-details/' + '$' + '{' + 'currentUser?.id}' + '`',
316
+ })
317
+ })
318
+
211
319
  it('marks the link wrapper display:contents when the flex parent uses a project-referenced style', () => {
212
320
  const child = elementNode('container')
213
321
  child.content.abilities = { link: navlinkMockedDefinition() }
@@ -255,6 +363,58 @@ describe('insertLink', () => {
255
363
  expect(wrapper.content.elementType).toBe('navlink')
256
364
  expect(wrapper.content.style?.display).toBeUndefined()
257
365
  })
366
+
367
+ it('sees through box-less ancestors to the real flex parent', () => {
368
+ /* The regression this exists for. A linked card almost never sits directly
369
+ inside its grid — it sits inside a repeater, inside a data provider,
370
+ inside a fragment, none of which draw a box. Asking the IMMEDIATE parent
371
+ "are you a flex container?" answered no, the wrapper was left as a normal
372
+ box, and it became the flex item instead of the card: every card lost its
373
+ `flex: 0 0 <width>` and collapsed to content width. The published grid
374
+ stopped matching the editor, which renders no wrapper at all. */
375
+ const card = elementNode('container')
376
+ card.content.abilities = { link: navlinkMockedDefinition() }
377
+
378
+ const fragment = elementNode('fragment', {}, [card])
379
+ const grid = elementNode('container', {}, [fragment])
380
+ grid.content.referencedStyles = {
381
+ TQ_row: {
382
+ id: 'TQ_row',
383
+ type: 'style-map',
384
+ content: { mapType: 'project-referenced', referenceId: 'tq-scroll-row' },
385
+ },
386
+ }
387
+
388
+ const result = insertLinks(grid, flexProjectStyleSetOptions('flex'), false)
389
+ const resolvedFragment = result.content.children[0] as UIDLElementNode
390
+ const wrapper = resolvedFragment.content.children[0] as UIDLElementNode
391
+
392
+ expect(wrapper.content.elementType).toBe('navlink')
393
+ expect(wrapper.content.style?.display).toEqual({ type: 'static', content: 'contents' })
394
+ })
395
+
396
+ it('still ignores box-less ancestors when the real parent is not flex/grid', () => {
397
+ // The transparency walk must not manufacture a flex parent that isn't there.
398
+ const card = elementNode('container')
399
+ card.content.abilities = { link: navlinkMockedDefinition() }
400
+
401
+ const fragment = elementNode('fragment', {}, [card])
402
+ const block = elementNode('container', {}, [fragment])
403
+ block.content.referencedStyles = {
404
+ TQ_row: {
405
+ id: 'TQ_row',
406
+ type: 'style-map',
407
+ content: { mapType: 'project-referenced', referenceId: 'tq-scroll-row' },
408
+ },
409
+ }
410
+
411
+ const result = insertLinks(block, flexProjectStyleSetOptions('block'), false)
412
+ const resolvedFragment = result.content.children[0] as UIDLElementNode
413
+ const wrapper = resolvedFragment.content.children[0] as UIDLElementNode
414
+
415
+ expect(wrapper.content.elementType).toBe('navlink')
416
+ expect(wrapper.content.style?.display).toBeUndefined()
417
+ })
258
418
  })
259
419
 
260
420
  describe('insertLink with link-type prop', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EAEZ,eAAe,EAEf,kBAAkB,EAInB,MAAM,4BAA4B,CAAA;AAoFnC,eAAO,MAAM,WAAW,SAChB,eAAe,WACZ,gBAAgB,iBACX,OAAO,eACR,eAAe,oBACV,OAAO,MAAM,EAAE,kBAAkB,CAAC,KACnD,eA+OF,CAAA;AA6FD,eAAO,MAAM,cAAc,SAAU,YAAY,WAAW,gBAAgB,KAAG,eAS9E,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EAEZ,eAAe,EAEf,kBAAkB,EAEnB,MAAM,4BAA4B,CAAA;AAuDnC,eAAO,MAAM,WAAW,SAChB,eAAe,WACZ,gBAAgB,iBACX,OAAO,eACR,eAAe,oBACV,OAAO,MAAM,EAAE,kBAAkB,CAAC,KACnD,eAoUF,CAAA;AA6FD,eAAO,MAAM,cAAc,SAAU,YAAY,WAAW,gBAAgB,KAAG,eAS9E,CAAA"}
@@ -44,120 +44,101 @@ var isAttributeSafeForAnchor = function (attrName) {
44
44
  attrName.startsWith('data-') ||
45
45
  ANCHOR_SAFE_ARIA_ATTRIBUTES.has(attrName));
46
46
  };
47
- // display values that turn a node into a flex/grid container, making its direct
48
- // children into flex/grid items.
49
- var FLEX_OR_GRID_DISPLAYS = new Set(['flex', 'inline-flex', 'grid', 'inline-grid']);
50
- var isStaticFlexOrGridDisplay = function (display) { return (display === null || display === void 0 ? void 0 : display.type) === 'static' && FLEX_OR_GRID_DISPLAYS.has(String(display.content)); };
51
47
  /* When a styled element also carries a link, the link is realised as a wrapper
52
- <a>/navlink around it. If the parent is a flex/grid container, that wrapper
53
- would become the flex/grid item instead of the styled child, dropping the
54
- child's sizing (e.g. a `flex: 0 0 …` card width). Detecting that here lets the
55
- caller mark the wrapper `display: contents` so the styled child stays the real
56
- flex/grid item. The parent's display can come from an inline style or, more
57
- commonly for generated projects, from a project-referenced style class — and
58
- abilities are resolved before referenced styles are flattened, so we read it
59
- straight from the project style-set definitions. */
60
- var parentIsFlexOrGridContainer = function (parentNode, options) {
61
- var _a, _b;
62
- if (!parentNode) {
63
- return false;
64
- }
65
- if (isStaticFlexOrGridDisplay((_a = parentNode.content.style) === null || _a === void 0 ? void 0 : _a.display)) {
66
- return true;
67
- }
68
- var referencedStyles = parentNode.content.referencedStyles;
69
- var styleSetDefinitions = (_b = options.projectStyleSet) === null || _b === void 0 ? void 0 : _b.styleSetDefinitions;
70
- if (!referencedStyles || !styleSetDefinitions) {
71
- return false;
72
- }
73
- return Object.values(referencedStyles).some(function (referencedStyle) {
74
- var _a;
75
- if (referencedStyle.content.mapType !== 'project-referenced') {
76
- return false;
77
- }
78
- var styleSet = styleSetDefinitions[referencedStyle.content.referenceId];
79
- return isStaticFlexOrGridDisplay((_a = styleSet === null || styleSet === void 0 ? void 0 : styleSet.content) === null || _a === void 0 ? void 0 : _a.display);
80
- });
81
- };
48
+ <a>/navlink around it. If the layout parent is a flex/grid container, that
49
+ wrapper would become the flex/grid item instead of the styled child, dropping
50
+ the child's sizing (e.g. a `flex: 0 0 …` card width). Detecting that here lets
51
+ the caller mark the wrapper `display: contents` so the styled child stays the
52
+ real flex/grid item.
53
+
54
+ The container test lives in LayoutTopology because this is not the only place
55
+ that inserts a wrapper between a container and its items. */
56
+ var parentIsFlexOrGridContainer = function (parentNode, options) { var _a; return teleport_shared_1.LayoutTopology.isFlexOrGridContainer(parentNode, (_a = options.projectStyleSet) === null || _a === void 0 ? void 0 : _a.styleSetDefinitions); };
82
57
  var insertLinks = function (node, options, linkInParent, parentNode, propDefinitions) {
83
58
  var _a, _b, _c;
84
59
  if (linkInParent === void 0) { linkInParent = false; }
85
60
  var _d = node.content, abilities = _d.abilities, children = _d.children, elementType = _d.elementType, semanticType = _d.semanticType, _e = _d.attrs, attrs = _e === void 0 ? {} : _e;
86
61
  var linkInNode = linkInParent || !!(abilities === null || abilities === void 0 ? void 0 : abilities.link);
62
+ /* What this node's descendants should treat as their layout parent. A node
63
+ that draws no box (a fragment) passes its OWN layout parent through, so a
64
+ card sitting inside `grid > data-provider > fragment > repeater` still sees
65
+ the grid. Passing `node` blindly here is what let a link wrapper become the
66
+ flex item of a card grid and collapse every card to content width. */
67
+ var layoutParent = teleport_shared_1.LayoutTopology.resolveLayoutParent(node, parentNode);
87
68
  node.content.children = children === null || children === void 0 ? void 0 : children.map(function (child) {
88
69
  var _a;
89
70
  if (child.type === 'element') {
90
- return (0, exports.insertLinks)(child, options, linkInNode, node, propDefinitions);
71
+ return (0, exports.insertLinks)(child, options, linkInNode, layoutParent, propDefinitions);
91
72
  }
92
73
  if (child.type === 'repeat') {
93
- child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, node, propDefinitions);
74
+ child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, layoutParent, propDefinitions);
94
75
  }
95
76
  if (child.type === 'conditional' && child.content.node.type === 'element') {
96
- child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, node, propDefinitions);
77
+ child.content.node = (0, exports.insertLinks)(child.content.node, options, linkInNode, layoutParent, propDefinitions);
97
78
  }
98
79
  if (child.type === 'slot' && ((_a = child.content.fallback) === null || _a === void 0 ? void 0 : _a.type) === 'element') {
99
- child.content.fallback = (0, exports.insertLinks)(child.content.fallback, options, linkInNode, node, propDefinitions);
80
+ child.content.fallback = (0, exports.insertLinks)(child.content.fallback, options, linkInNode, layoutParent, propDefinitions);
100
81
  }
101
82
  if (child.type === 'cms-list') {
102
83
  var _b = child.content.nodes, success = _b.success, error = _b.error, loading = _b.loading;
103
84
  if (success) {
104
- child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node, propDefinitions);
85
+ child.content.nodes.success = (0, exports.insertLinks)(success, options, false, layoutParent, propDefinitions);
105
86
  }
106
87
  if (error) {
107
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
88
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, layoutParent, propDefinitions);
108
89
  }
109
90
  if (loading) {
110
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
91
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, layoutParent, propDefinitions);
111
92
  }
112
93
  }
113
94
  if (child.type === 'cms-list-repeater') {
114
95
  var _c = child.content.nodes, list = _c.list, empty = _c.empty, loading = _c.loading;
115
96
  if (list) {
116
- child.content.nodes.list = (0, exports.insertLinks)(list, options, false, node, propDefinitions);
97
+ child.content.nodes.list = (0, exports.insertLinks)(list, options, false, layoutParent, propDefinitions);
117
98
  }
118
99
  if (empty) {
119
- child.content.nodes.empty = (0, exports.insertLinks)(empty, options, false, node, propDefinitions);
100
+ child.content.nodes.empty = (0, exports.insertLinks)(empty, options, false, layoutParent, propDefinitions);
120
101
  }
121
102
  if (loading) {
122
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
103
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, layoutParent, propDefinitions);
123
104
  }
124
105
  }
125
106
  if (child.type === 'cms-mixed-type') {
126
107
  if (child.content.mappings) {
127
108
  Object.keys(child.content.mappings).forEach(function (key) {
128
- child.content.mappings[key] = (0, exports.insertLinks)(child.content.mappings[key], options, false, node, propDefinitions);
109
+ child.content.mappings[key] = (0, exports.insertLinks)(child.content.mappings[key], options, false, layoutParent, propDefinitions);
129
110
  });
130
111
  }
131
112
  var _d = child.content.nodes, fallback = _d.fallback, error = _d.error;
132
113
  if (fallback) {
133
- child.content.nodes.fallback = (0, exports.insertLinks)(fallback, options, false, node, propDefinitions);
114
+ child.content.nodes.fallback = (0, exports.insertLinks)(fallback, options, false, layoutParent, propDefinitions);
134
115
  }
135
116
  if (error) {
136
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
117
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, layoutParent, propDefinitions);
137
118
  }
138
119
  }
139
120
  if (child.type === 'cms-item') {
140
121
  var _e = child.content.nodes, success = _e.success, error = _e.error, loading = _e.loading;
141
122
  if (success) {
142
- child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node, propDefinitions);
123
+ child.content.nodes.success = (0, exports.insertLinks)(success, options, false, layoutParent, propDefinitions);
143
124
  }
144
125
  if (error) {
145
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
126
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, layoutParent, propDefinitions);
146
127
  }
147
128
  if (loading) {
148
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
129
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, layoutParent, propDefinitions);
149
130
  }
150
131
  }
151
132
  if (child.type === 'data-source-list' || child.type === 'data-source-item') {
152
133
  var _f = child.content.nodes, success = _f.success, error = _f.error, loading = _f.loading;
153
134
  if (success) {
154
- child.content.nodes.success = (0, exports.insertLinks)(success, options, false, node, propDefinitions);
135
+ child.content.nodes.success = (0, exports.insertLinks)(success, options, false, layoutParent, propDefinitions);
155
136
  }
156
137
  if (error) {
157
- child.content.nodes.error = (0, exports.insertLinks)(error, options, false, node, propDefinitions);
138
+ child.content.nodes.error = (0, exports.insertLinks)(error, options, false, layoutParent, propDefinitions);
158
139
  }
159
140
  if (loading) {
160
- child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, node, propDefinitions);
141
+ child.content.nodes.loading = (0, exports.insertLinks)(loading, options, false, layoutParent, propDefinitions);
161
142
  }
162
143
  }
163
144
  return child;
@@ -360,6 +341,16 @@ var createLinkAttributes = function (link, options) {
360
341
  transitionTo: buildDifferentiatorTransitionTo(baseRoute, differentiatorValue),
361
342
  };
362
343
  }
344
+ // No differentiator + a dynamic destination = nothing navigable. See
345
+ // UNRESOLVABLE_NAVLINK_HREF. Checked HERE rather than inside
346
+ // `resolveNavlink` so the differentiator branch above still receives the
347
+ // real `/prefix/[id]` template it needs to substitute the row id into.
348
+ if (baseRoute.type === 'static' &&
349
+ teleport_shared_1.RoutePaths.pathHasDynamicSegment(String(baseRoute.content))) {
350
+ return {
351
+ transitionTo: { type: 'static', content: UNRESOLVABLE_NAVLINK_HREF },
352
+ };
353
+ }
363
354
  return {
364
355
  transitionTo: baseRoute,
365
356
  };
@@ -382,6 +373,43 @@ var createLinkAttributes = function (link, options) {
382
373
  throw new Error("createLinkNode called with invalid link type '".concat(link.type, "'"));
383
374
  }
384
375
  };
376
+ /**
377
+ * A route whose `value` is folder-qualified (`add-character/Add-Character`)
378
+ * still answers to its bare page name in a navlink's `routeName`
379
+ * (`Add-Character`) — the folder prefix is part of the ROUTE, not of the page's
380
+ * identity. Matching only on the whole value made every such lookup miss and
381
+ * fall through to the fabricated `/${friendlyURL}` below.
382
+ *
383
+ * Resolved only when the last segment identifies the route UNAMBIGUOUSLY; with
384
+ * two pages of the same name in different folders there is no way to tell which
385
+ * one was meant, so we keep the old miss rather than guess.
386
+ */
387
+ var findRouteByName = function (values, routeName) {
388
+ var exact = values.find(function (routeItem) { return routeItem.value === routeName; });
389
+ if (exact) {
390
+ return exact;
391
+ }
392
+ // `value` is typed `string | number | boolean` — only a string route can carry
393
+ // a folder prefix, so anything else can never match by last segment.
394
+ var byLastSegment = values.filter(function (routeItem) {
395
+ return typeof routeItem.value === 'string' && routeItem.value.split('/').pop() === routeName;
396
+ });
397
+ return byLastSegment.length === 1 ? byLastSegment[0] : undefined;
398
+ };
399
+ /**
400
+ * A DYNAMIC route (`/rsvp-event/[id]`) is not a URL — it is a template that
401
+ * needs one record's id. A navlink with no `differentiatorValue` has no id to
402
+ * put there, so neither spelling is navigable: the template ships a literal
403
+ * `[id]` in the address bar, and the bare prefix (`/rsvp-event`) matches no file
404
+ * and 404s. `#` is the platform's existing representation for a link that
405
+ * cannot be resolved — the element still renders, it just does not navigate,
406
+ * which is strictly better than a link that provably fails.
407
+ *
408
+ * This is the last line of defence, not the fix: a nav or CTA link pointing at a
409
+ * single-record page is a planning defect, and the generator that produced the
410
+ * UIDL is where it should be prevented.
411
+ */
412
+ var UNRESOLVABLE_NAVLINK_HREF = '#';
385
413
  var resolveNavlink = function (route, options) {
386
414
  var _a, _b;
387
415
  if (options.skipNavlinkResolver) {
@@ -397,7 +425,7 @@ var resolveNavlink = function (route, options) {
397
425
  }
398
426
  var friendlyURL = teleport_shared_1.StringUtils.camelCaseToDashCase(teleport_shared_1.StringUtils.removeIllegalCharacters(routeName.toString()));
399
427
  var transitionRoute = options.projectRouteDefinition
400
- ? options.projectRouteDefinition.values.find(function (routeItem) { return routeItem.value === routeName; })
428
+ ? findRouteByName(options.projectRouteDefinition.values, routeName.toString())
401
429
  : null;
402
430
  if (!transitionRoute) {
403
431
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAAyD;AAezD,mEAAmE;AACnE,IAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,2BAA2B;IAC3B,OAAO;IACP,IAAI;IACJ,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,WAAW;CACZ,CAAC,CAAA;AAEF,uDAAuD;AACvD,IAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,cAAc;IACd,eAAe,EAAE,qBAAqB;CACvC,CAAC,CAAA;AAEF,IAAM,wBAAwB,GAAG,UAAC,QAAgB;IAChD,OAAO,CACL,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5B,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAED,gFAAgF;AAChF,iCAAiC;AACjC,IAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;AAErF,IAAM,yBAAyB,GAAG,UAChC,OAA2D,IAC/C,OAAA,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,QAAQ,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAhF,CAAgF,CAAA;AAE9F;;;;;;;;sDAQsD;AACtD,IAAM,2BAA2B,GAAG,UAClC,UAAuC,EACvC,OAAyB;;IAEzB,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,KAAK,CAAA;KACb;IAED,IAAI,yBAAyB,CAAC,MAAA,UAAU,CAAC,OAAO,CAAC,KAAK,0CAAE,OAAO,CAAC,EAAE;QAChE,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAA;IAC5D,IAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,eAAe,0CAAE,mBAAmB,CAAA;IACxE,IAAI,CAAC,gBAAgB,IAAI,CAAC,mBAAmB,EAAE;QAC7C,OAAO,KAAK,CAAA;KACb;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAC,eAAe;;QAC1D,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,KAAK,oBAAoB,EAAE;YAC5D,OAAO,KAAK,CAAA;SACb;QACD,IAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzE,OAAO,yBAAyB,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,OAAO,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAEM,IAAM,WAAW,GAAG,UACzB,IAAqB,EACrB,OAAyB,EACzB,YAA6B,EAC7B,UAA4B,EAC5B,eAAoD;;IAFpD,6BAAA,EAAA,oBAA6B;IAIvB,IAAA,KAAiE,IAAI,CAAC,OAAO,EAA3E,SAAS,eAAA,EAAE,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAE,YAAY,kBAAA,EAAE,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAiB,CAAA;IACnF,IAAM,UAAU,GAAG,YAAY,IAAI,CAAC,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAA,CAAA;IAEpD,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAC,UAAC,KAAK;;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC5B,OAAO,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;SACtE;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAA,mBAAW,EAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,EAClB,OAAO,EACP,UAAU,EACV,IAAI,EACJ,eAAe,CAChB,CAAA;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACzE,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAA,mBAAW,EAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,EAClB,OAAO,EACP,UAAU,EACV,IAAI,EACJ,eAAe,CAChB,CAAA;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,0CAAE,IAAI,MAAK,SAAS,EAAE;YACvE,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAA,mBAAW,EAClC,KAAK,CAAC,OAAO,CAAC,QAAQ,EACtB,OAAO,EACP,UAAU,EACV,IAAI,EACJ,eAAe,CAChB,CAAA;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;YAE3B,IAAA,KACE,KAAK,CAAC,OAAO,MADmB,EAAzB,OAAO,aAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAE,CACnB;YAEjB,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC1F;YAED,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aACtF;YAED,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC1F;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;YAEpC,IAAA,KACE,KAAK,CAAC,OAAO,MADgB,EAAtB,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAE,CAChB;YAEjB,IAAI,IAAI,EAAE;gBACR,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aACpF;YAED,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aACtF;YAED,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC1F;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACnC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;oBAC9C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAA,mBAAW,EACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,IAAI,EACJ,eAAe,CAChB,CAAA;gBACH,CAAC,CAAC,CAAA;aACH;YAGC,IAAA,KACE,KAAK,CAAC,OAAO,MADW,EAAjB,QAAQ,cAAA,EAAE,KAAK,WAAE,CACX;YACjB,IAAI,QAAQ,EAAE;gBACZ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC5F;YAED,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aACtF;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;YAE3B,IAAA,KACE,KAAK,CAAC,OAAO,MADmB,EAAzB,OAAO,aAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAE,CACnB;YAEjB,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC1F;YAED,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aACtF;YAED,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC1F;SACF;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;YAExE,IAAA,KACE,KAAK,CAAC,OAAO,MADmB,EAAzB,OAAO,aAAA,EAAE,KAAK,WAAA,EAAE,OAAO,aAAE,CACnB;YAEjB,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC1F;YAED,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aACtF;YAED,IAAI,OAAO,EAAE;gBACX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;aAC1F;SACF;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,KAAsB,UAAkB,EAAlB,KAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAlB,cAAkB,EAAlB,IAAkB,EAAE;QAArC,IAAM,OAAO,SAAA;QAChB,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;QAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAA,mBAAW,EACvC,IAAuB,EACvB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,eAAe,CAChB,CAAA;SACF;KACF;IAED,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,EAAE;QACnB,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;YAC3E,OAAO,IAAI,CAAA;SACZ;QAED,mDAAmD;QACnD,IAAI,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,0CAAE,IAAI,EAAE;YAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;SAC/B;QAED;;sEAE8D;QAC9D,IACE,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YACjC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM;YAC/C,CAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,0CAAE,IAAI,MAAK,MAAM,EAC7D;YACA,OAAO,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,IAA4B,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;SAC7F;QAED;2CACmC;QACnC,IAAI,WAAW,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAA;YAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,cAChB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CACtB,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,yBACb,IAAI,CAAC,OAAO,CAAC,KAAK,GAClB,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CACjD,CAAA;YACD,OAAO,IAAI,CAAA;SACZ;QAED;qEAC6D;QAC7D,IAAI,WAAW,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAA;YAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,yBACb,IAAI,CAAC,OAAO,CAAC,KAAK,GAClB,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CACjD,CAAA;YAED,OAAO,IAAI,CAAA;SACZ;QAED,IAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAExD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACjD,gEAAgE;YAChE,IAAM,WAAS,GAAuC,EAAE,CAAA;YACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;gBAC/C,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE;oBACtC,WAAS,CAAC,QAAQ,CAAC,gBAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAE,CAAA;iBAC1D;YACH,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,OAAO,CAAC,KAAK,yBACjB,QAAQ,CAAC,OAAO,CAAC,KAAK,GACtB,WAAS,CACb,CAAA;YAED,gEAAgE;YAChE,MAAM,CAAC,IAAI,CAAC,WAAS,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;gBACtC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;SACH;QAED,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,UAAU,KAAK,SAAS,IAAI,2BAA2B,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;YAChF,QAAQ,CAAC,OAAO,CAAC,KAAK,yBACjB,QAAQ,CAAC,OAAO,CAAC,KAAK,KACzB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GACjD,CAAA;SACF;QAED,OAAO,QAAQ,CAAA;KAChB;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AArPY,QAAA,WAAW,eAqPvB;AAED,IAAM,kBAAkB,GAAG,UACzB,IAAqB,EACrB,OAA6B,EAC7B,OAAyB,EACzB,UAA4B;IAEtB,IAAA,KAAgC,IAAI,CAAC,OAAO,EAA1C,WAAW,iBAAA,EAAE,YAAY,kBAAiB,CAAA;IAClD,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;IAEjC,IAAM,SAAS,GAAuC;QACpD,4EAA4E;QAC5E,6EAA6E;QAC7E,2DAA2D;QAC3D,4EAA4E;QAC5E,0EAA0E;QAC1E,yBAAyB;QACzB,GAAG,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,uBAAgB,MAAM,mCAAyB,MAAM,sBAAY,MAAM,cAAW;SAC5F;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,gBAAS,MAAM,wCAAqC;SAC9D;QACD,GAAG,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,gBAAS,MAAM,qDAAkD;SAC3E;KACF,CAAA;IAED,6CAA6C;IAC7C,IAAI,WAAW,KAAK,QAAQ,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,cAChB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CACtB,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,yBAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,GAAK,SAAS,CAAE,CAAA;QAC5D,OAAO,IAAI,CAAA;KACZ;IAED,gDAAgD;IAChD,IAAI,WAAW,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM,EAAE;QACrD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,yBAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,GAAK,SAAS,CAAE,CAAA;QAC5D,OAAO,IAAI,CAAA;KACZ;IAED,4CAA4C;IAC5C,IAAM,QAAQ,GAAoB;QAChC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP,WAAW,EAAE,WAAW;YACxB,KAAK,eAAO,SAAS,CAAE;YACvB,QAAQ,EAAE,EAAE;SACb;KACF,CAAA;IAED,0CAA0C;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACjD,IAAM,WAAS,GAAuC,EAAE,CAAA;QACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;YAC/C,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE;gBACtC,WAAS,CAAC,QAAQ,CAAC,gBAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAE,CAAA;aAC1D;QACH,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,OAAO,CAAC,KAAK,yBACjB,QAAQ,CAAC,OAAO,CAAC,KAAK,GACtB,WAAS,CACb,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,WAAS,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;YACtC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;KACH;IAED,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEpC,IAAI,UAAU,KAAK,SAAS,IAAI,2BAA2B,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;QAChF,QAAQ,CAAC,OAAO,CAAC,KAAK,yBACjB,QAAQ,CAAC,OAAO,CAAC,KAAK,KACzB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GACjD,CAAA;KACF;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAEM,IAAM,cAAc,GAAG,UAAC,IAAkB,EAAE,OAAyB;IAC1E,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC;YACrC,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC;YAC1C,QAAQ,EAAE,EAAE;SACb;KACF,CAAA;AACH,CAAC,CAAA;AATY,QAAA,cAAc,kBAS1B;AAED,IAAM,kBAAkB,GAAG,UAAC,IAAkB;IAC5C,8CAA8C;IAC9C,iDAAiD;IACjD,iDAAiD;IACjD,gDAAgD;IAChD,YAAY;IACZ,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AAChF,CAAC,CAAA;AAED,IAAM,oBAAoB,GAAG,UAC3B,IAAkB,EAClB,OAAyB;;IAEzB,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,KAAK,CAAC,CAAC;YACV,kBACE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAClB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;gBACrB,CAAC,CAAC;oBACE,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,QAAQ;qBAClB;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,qBAAqB;qBAC/B;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC,EACR;SACF;QAED,KAAK,SAAS,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC1C,OAAO;oBACL,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,WAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAE;qBAC5C;iBACF,CAAA;aACF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;gBACxC,OAAO;oBACL,GAAG,EAAE;wBACH,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI;qBACtD;iBACF,CAAA;aACF;YAED,OAAM;SACP;QAED,KAAK,SAAS;YACZ,OAAO;gBACL,YAAY,EAAE,IAAI;aACnB,CAAA;QAEH,KAAK,SAAS,CAAC,CAAC;YACd,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACjE,IAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAA;YAC5D,IAAI,mBAAmB,EAAE;gBACvB,OAAO;oBACL,YAAY,EAAE,+BAA+B,CAAC,SAAS,EAAE,mBAAmB,CAAC;iBAC9E,CAAA;aACF;YACD,OAAO;gBACL,YAAY,EAAE,SAAS;aACxB,CAAA;SACF;QAED,KAAK,MAAM,CAAC,CAAC;YACX,IAAI,OAAO,GAAG,iBAAU,IAAI,CAAC,OAAO,CAAC,IAAI,sBAAY,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAE,CAAA;YACjF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACrB,OAAO,GAAG,OAAO,GAAG,gBAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,CAAA;aACjD;YAED,OAAO;gBACL,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAA;SACF;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO;gBACL,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,EAAE;aAC9D,CAAA;SACF;QAED;YACE,MAAM,IAAI,KAAK,CACb,wDAAkD,IAAqB,CAAC,IAAI,MAAG,CAChF,CAAA;KACJ;AACH,CAAC,CAAA;AAED,IAAM,cAAc,GAAG,UACrB,KAAyB,EACzB,OAAyB;;IAEzB,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC/B,OAAO,KAAK,CAAA;KACb;IAEO,IAAA,IAAI,GAAyB,KAAK,KAA9B,EAAW,SAAS,GAAK,KAAK,QAAV,CAAU;IAE1C,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,OAAO,KAAK,CAAA;KACb;IAED,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxC,mDAAmD;QACnD,OAAO,KAAK,CAAA;KACb;IAED,IAAM,WAAW,GAAG,6BAAW,CAAC,mBAAmB,CACjD,6BAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAC1D,CAAA;IAED,IAAM,eAAe,GAAG,OAAO,CAAC,sBAAsB;QACpD,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,KAAK,KAAK,SAAS,EAA7B,CAA6B,CAAC;QAC1F,CAAC,CAAC,IAAI,CAAA;IAER,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAI,WAAW,CAAE;SAC3B,CAAA;KACF;IAED,IAAI,CAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,0CAAE,OAAO,MAAK,GAAG,EAAE;QACjD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,OAAO;SAC7C,CAAA;KACF;IAEO,IAAA,WAAW,GAAK,eAAe,YAApB,CAAoB;IAEvC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,MAAA,WAAW,CAAC,OAAO,mCAAI,WAAI,WAAW,CAAE;KAClD,CAAA;AACH,CAAC,CAAA;AAED,4EAA4E;AAC5E,mEAAmE;AACnE,IAAM,yBAAyB,GAA2B;IACxD,YAAY,EAAE,WAAW;IACzB,IAAI,EAAE,MAAM;IACZ,cAAc,EAAE,aAAa;CAC9B,CAAA;AAED,IAAM,yBAAyB,GAAG,UAAC,KAAa;IAC9C,OAAA,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;AAA1E,CAA0E,CAAA;AAE5E,2EAA2E;AAC3E,iEAAiE;AACjE,IAAM,4BAA4B,GAAG,UAAC,KAAiC;IACrE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC3B,OAAO,yBAAyB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;KACxD;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;QACzB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;KAC7B;IAED,oBAAoB;IACpB,IAAM,OAAO,GAAG,KAAK,CAAC,OAIrB,CAAA;IACD,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAA;IAErC,IAAI,OAAO,CAAC,aAAa,KAAK,QAAQ,EAAE;QACtC,IAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAA;QAC1B,IAAM,QAAQ,GAAG,KAAK;YACpB,CAAC,CAAE,OAAO,CAAC,EAAa;YACxB,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;QACvD,IAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACnD,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,GAAW,IAAK,OAAA,YAAK,GAAG,CAAE,EAAV,CAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChE,OAAO,UAAG,QAAQ,SAAG,KAAK,CAAE,CAAA;KAC7B;IAED,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,MAAM,EAAE;QACzE,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;QAC/D,IAAM,IAAI,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAA;QAC7B,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,GAAW,IAAK,OAAA,YAAK,GAAG,CAAE,EAAV,CAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/D,OAAO,UAAG,MAAM,SAAG,IAAI,SAAG,KAAK,CAAE,CAAA;KAClC;IAED,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,EAAE;QACrC,IAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,CAAA;QAC3C,IAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,GAAW,IAAK,OAAA,YAAK,GAAG,CAAE,EAAV,CAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5D,OAAO,UAAG,IAAI,SAAG,KAAK,CAAE,CAAA;KACzB;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AACjC,CAAC,CAAA;AAED,IAAM,+BAA+B,GAAG,UACtC,SAA6B,EAC7B,mBAA+C;IAE/C,yEAAyE;IACzE,0EAA0E;IAC1E,iEAAiE;IACjE,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC/B,OAAO,SAAS,CAAA;KACjB;IACD,IAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAErE,2EAA2E;IAC3E,4EAA4E;IAC5E,sBAAsB;IACtB,IAAI,mBAAmB,CAAC,IAAI,KAAK,QAAQ,EAAE;QACzC,IAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1E,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,UAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,cAAI,UAAU,CAAE;SACtD,CAAA;KACF;IAED,IAAM,QAAQ,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,CAAA;IAClE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,WAAK,QAAQ,gBAAO,QAAQ,OAAK;KAC3C,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"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"}