@kosdev-code/kos-ui-plugin 2.1.8 → 2.1.10

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.
@@ -1,8 +1,8 @@
1
- var U = Object.defineProperty;
2
- var A = (n, t, e) => t in n ? U(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
- var E = (n, t, e) => (A(n, typeof t != "symbol" ? t + "" : t, e), e);
4
- import { z as x } from "zod";
5
- function j(n, t) {
1
+ var W = Object.defineProperty;
2
+ var G = (n, t, e) => t in n ? W(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
+ var C = (n, t, e) => (G(n, typeof t != "symbol" ? t + "" : t, e), e);
4
+ import { z as w } from "zod";
5
+ function z(n, t) {
6
6
  for (var e = 0; e < t.length; e++) {
7
7
  const i = t[e];
8
8
  if (typeof i != "string" && !Array.isArray(i)) {
@@ -18,29 +18,29 @@ function j(n, t) {
18
18
  }
19
19
  return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" }));
20
20
  }
21
- var $ = {}, b = {};
22
- Object.defineProperty(b, "__esModule", { value: !0 });
23
- b.loadRemoteModule = b.setRemoteDefinitions = b.setRemoteUrlResolver = void 0;
24
- let P, I;
25
- const C = /* @__PURE__ */ new Map(), S = /* @__PURE__ */ new Map();
26
- let F = !1;
27
- function N(n) {
28
- I = n;
21
+ var F = {}, E = {};
22
+ Object.defineProperty(E, "__esModule", { value: !0 });
23
+ E.loadRemoteModule = E.setRemoteDefinitions = E.setRemoteUrlResolver = void 0;
24
+ let R, D;
25
+ const O = /* @__PURE__ */ new Map(), U = /* @__PURE__ */ new Map();
26
+ let j = !1;
27
+ function J(n) {
28
+ D = n;
29
29
  }
30
- b.setRemoteUrlResolver = N;
31
- function K(n) {
32
- P = n;
30
+ E.setRemoteUrlResolver = J;
31
+ function Z(n) {
32
+ R = n;
33
33
  }
34
- b.setRemoteDefinitions = K;
35
- async function V(n, t) {
34
+ E.setRemoteDefinitions = Z;
35
+ async function Y(n, t) {
36
36
  const e = `${n}:${t}`;
37
- if (C.has(e))
38
- return C.get(e);
39
- const o = (await (S.has(n) ? S.get(n) : await L(n)).get(t))();
40
- return C.set(e, o), o;
37
+ if (O.has(e))
38
+ return O.get(e);
39
+ const o = (await (U.has(n) ? U.get(n) : await X(n)).get(t))();
40
+ return O.set(e, o), o;
41
41
  }
42
- b.loadRemoteModule = V;
43
- const M = (n, t) => new Promise((e, i) => {
42
+ E.loadRemoteModule = Y;
43
+ const Q = (n, t) => new Promise((e, i) => {
44
44
  const s = document.createElement("script");
45
45
  s.src = n, s.type = "text/javascript", s.async = !0, s.onload = () => {
46
46
  e({
@@ -55,19 +55,19 @@ const M = (n, t) => new Promise((e, i) => {
55
55
  });
56
56
  }, s.onerror = () => i(new Error(`Remote ${t} not found`)), document.head.appendChild(s);
57
57
  });
58
- async function L(n) {
59
- if (!I && !P)
58
+ async function X(n) {
59
+ if (!D && !R)
60
60
  throw new Error("Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.");
61
- F || (F = !0, await __webpack_init_sharing__("default"));
62
- const t = P ? P[n] : await I(n);
61
+ j || (j = !0, await __webpack_init_sharing__("default"));
62
+ const t = R ? R[n] : await D(n);
63
63
  let e = t;
64
64
  !t.endsWith(".mjs") && !t.endsWith(".js") && (e = `${t}${t.endsWith("/") ? "" : "/"}remoteEntry.js`);
65
- const i = await M(e, n);
66
- return await i.init(__webpack_share_scopes__.default), S.set(n, i), i;
65
+ const i = await Q(e, n);
66
+ return await i.init(__webpack_share_scopes__.default), U.set(n, i), i;
67
67
  }
68
68
  (function(n) {
69
69
  Object.defineProperty(n, "__esModule", { value: !0 }), n.setRemoteUrlResolver = n.setRemoteDefinitions = n.loadRemoteModule = void 0;
70
- var t = b;
70
+ var t = E;
71
71
  Object.defineProperty(n, "loadRemoteModule", { enumerable: !0, get: function() {
72
72
  return t.loadRemoteModule;
73
73
  } }), Object.defineProperty(n, "setRemoteDefinitions", { enumerable: !0, get: function() {
@@ -75,11 +75,11 @@ async function L(n) {
75
75
  } }), Object.defineProperty(n, "setRemoteUrlResolver", { enumerable: !0, get: function() {
76
76
  return t.setRemoteUrlResolver;
77
77
  } });
78
- })($);
79
- const Ce = /* @__PURE__ */ j({
78
+ })(F);
79
+ const Ne = /* @__PURE__ */ z({
80
80
  __proto__: null
81
- }, [$]);
82
- function q(n) {
81
+ }, [F]);
82
+ function ee(n) {
83
83
  var t;
84
84
  try {
85
85
  if ("shape" in n) {
@@ -104,9 +104,9 @@ function q(n) {
104
104
  return console.warn("Failed to extract schema field info:", e), [];
105
105
  }
106
106
  }
107
- class B {
107
+ class te {
108
108
  constructor() {
109
- E(this, "issues", []);
109
+ C(this, "issues", []);
110
110
  }
111
111
  addError(t) {
112
112
  this.issues.push({ type: "error", message: t });
@@ -127,9 +127,9 @@ class B {
127
127
  return [...this.issues];
128
128
  }
129
129
  }
130
- class H {
130
+ class ne {
131
131
  constructor() {
132
- E(this, "cache", /* @__PURE__ */ new Map());
132
+ C(this, "cache", /* @__PURE__ */ new Map());
133
133
  }
134
134
  set(t, e) {
135
135
  this.cache.set(t, e);
@@ -141,23 +141,23 @@ class H {
141
141
  this.cache.clear();
142
142
  }
143
143
  }
144
- const w = new H();
145
- function Re(n) {
146
- return w.get(n);
144
+ const I = new ne();
145
+ function Ke(n) {
146
+ return I.get(n);
147
147
  }
148
- const T = [];
149
- function W(n) {
150
- T.push(n);
148
+ const K = [];
149
+ function ie(n) {
150
+ K.push(n);
151
151
  }
152
- function z(n, t, e) {
153
- return T.reduce(
152
+ function se(n, t, e) {
153
+ return K.reduce(
154
154
  (i, s) => s(i, t, e),
155
155
  n
156
156
  );
157
157
  }
158
- class G {
158
+ class oe {
159
159
  constructor() {
160
- E(this, "extensionPoints", /* @__PURE__ */ new Map());
160
+ C(this, "extensionPoints", /* @__PURE__ */ new Map());
161
161
  }
162
162
  define(t) {
163
163
  if (this.extensionPoints.has(t.id))
@@ -173,17 +173,17 @@ class G {
173
173
  return;
174
174
  }
175
175
  const i = this.createReducer(t);
176
- W(i), e.isRegistered = !0;
176
+ ie(i), e.isRegistered = !0;
177
177
  }
178
178
  };
179
- return t.schema && (e.getSchemaFieldInfo = () => q(t.schema)), this.extensionPoints.set(t.id, e), e;
179
+ return t.schema && (e.getSchemaFieldInfo = () => ee(t.schema)), this.extensionPoints.set(t.id, e), e;
180
180
  }
181
181
  createReducer(t) {
182
182
  return (e, i, s) => {
183
183
  const o = i[t.contributionKey];
184
184
  return !o || typeof o != "object" || Object.entries(o).forEach(
185
185
  ([a, r]) => {
186
- var m, h;
186
+ var f, h;
187
187
  if (!r)
188
188
  return;
189
189
  const c = {
@@ -193,12 +193,12 @@ class G {
193
193
  contributions: i
194
194
  };
195
195
  if (t.validate) {
196
- const d = new B();
196
+ const d = new te();
197
197
  if (t.validate(
198
198
  r,
199
199
  d
200
200
  ) === "skip") {
201
- w.set(a, [
201
+ I.set(a, [
202
202
  {
203
203
  type: "warning",
204
204
  message: "Plugin marked to skip processing"
@@ -207,19 +207,19 @@ class G {
207
207
  return;
208
208
  }
209
209
  if (d.hasIssues()) {
210
- const g = d.getIssues().map((p) => ({
211
- ...p,
212
- message: `Extension point validation: ${p.message}`
210
+ const x = d.getIssues().map((m) => ({
211
+ ...m,
212
+ message: `Extension point validation: ${m.message}`
213
213
  }));
214
- if (w.set(a, g), d.hasErrors()) {
214
+ if (I.set(a, x), d.hasErrors()) {
215
215
  console.error(
216
216
  `Validation failed for ${t.id} contribution "${a}":`,
217
- g.filter((p) => p.type === "error").map((p) => p.message).join(", ")
217
+ x.filter((m) => m.type === "error").map((m) => m.message).join(", ")
218
218
  );
219
219
  return;
220
220
  }
221
221
  } else
222
- w.set(a, []);
222
+ I.set(a, []);
223
223
  }
224
224
  const l = t.transform ? t.transform(r, c) : r;
225
225
  e[t.id] || (e[t.id] = {});
@@ -230,12 +230,12 @@ class G {
230
230
  remote: c.remote,
231
231
  sectionId: c.sectionId
232
232
  };
233
- if (t.isRankable && typeof r.rank == "number" && (u.rank = r.rank), l && typeof l == "object" && ("component" in l && (u.component = l.component), "view" in l && (u.view = l.view), "location" in l && (u.location = l.location)), e[t.id][a] = u, t.hasView && ((m = t.relatedPoints) != null && m.view)) {
234
- const d = r.experienceId, f = s == null ? void 0 : s[d];
235
- f && (e[t.relatedPoints.view] || (e[t.relatedPoints.view] = {}), e[t.relatedPoints.view][a] = {
233
+ if (t.isRankable && typeof r.rank == "number" && (u.rank = r.rank), l && typeof l == "object" && ("component" in l && (u.component = l.component), "view" in l && (u.view = l.view), "location" in l && (u.location = l.location)), e[t.id][a] = u, t.hasView && ((f = t.relatedPoints) != null && f.view)) {
234
+ const d = r.experienceId, p = s == null ? void 0 : s[d];
235
+ p && (e[t.relatedPoints.view] || (e[t.relatedPoints.view] = {}), e[t.relatedPoints.view][a] = {
236
236
  id: a,
237
237
  type: `${t.contributionKey}.view`,
238
- data: f,
238
+ data: p,
239
239
  remote: c.remote,
240
240
  sectionId: c.sectionId
241
241
  });
@@ -278,11 +278,11 @@ class G {
278
278
  return this.extensionPoints.has(t);
279
279
  }
280
280
  }
281
- const O = new G();
282
- function y() {
283
- return O;
281
+ const V = new oe();
282
+ function b() {
283
+ return V;
284
284
  }
285
- function J(n = {}) {
285
+ function re(n = {}) {
286
286
  const {
287
287
  experienceIdProperty: t = "experienceId",
288
288
  flattenComponentProperties: e = !0,
@@ -298,16 +298,16 @@ function J(n = {}) {
298
298
  return e && r && (r.component && (c.component = r.component), r.location && (c.location = r.location)), i && (c = i(s, r, o) || c), c;
299
299
  };
300
300
  }
301
- function Z(n) {
302
- return O.define(n);
301
+ function ae(n) {
302
+ return V.define(n);
303
303
  }
304
- const Y = {
304
+ const ce = {
305
305
  $timestamp: () => Date.now(),
306
306
  $date: () => (/* @__PURE__ */ new Date()).toISOString(),
307
307
  $packageVersion: () => process.env.npm_package_version || "0.0.0",
308
308
  $env: () => process.env.NODE_ENV || "development"
309
309
  };
310
- function Q(n) {
310
+ function le(n) {
311
311
  const t = {
312
312
  id: n.id,
313
313
  displayName: n.displayName,
@@ -318,25 +318,25 @@ function Q(n) {
318
318
  relatedPoints: n.relatedPoints,
319
319
  metadata: n.metadata ? {
320
320
  ...n.metadata,
321
- exportName: n.metadata.exportName || X(n.id)
321
+ exportName: n.metadata.exportName || ue(n.id)
322
322
  } : void 0
323
323
  };
324
- return n.schema && (t.schema = ee(n.schema, {
324
+ return n.schema && (t.schema = de(n.schema, {
325
325
  hasView: n.hasView,
326
326
  isRankable: n.isRankable
327
- })), n.validation && (t.validate = ne(n.validation)), n.transform ? t.transform = ue(n.transform) : n.hasView && (t.transform = J()), t;
327
+ })), n.validation && (t.validate = fe(n.validation)), n.transform ? t.transform = Pe(n.transform) : n.hasView && (t.transform = re()), t;
328
328
  }
329
- function X(n) {
329
+ function ue(n) {
330
330
  return n.split(".").map((t) => t.charAt(0).toUpperCase() + t.slice(1)).join("") + "Extension";
331
331
  }
332
- function ee(n, t) {
332
+ function de(n, t) {
333
333
  try {
334
334
  const { z: e } = require("zod");
335
335
  if (n.properties) {
336
336
  const i = {};
337
337
  i.id = e.string().min(1), i.title = e.string().min(1), i.namespace = e.string().min(1), t != null && t.hasView && (i.experienceId = e.string().min(1)), t != null && t.isRankable && (i.rank = e.number().min(0).max(1e3).optional());
338
338
  for (const [o, a] of Object.entries(n.properties))
339
- i[o] = te(a, e);
339
+ i[o] = pe(a, e);
340
340
  let s = e.object(i);
341
341
  return n.additionalProperties || (s = s.strict()), s;
342
342
  }
@@ -346,7 +346,7 @@ function ee(n, t) {
346
346
  return;
347
347
  }
348
348
  }
349
- function te(n, t) {
349
+ function pe(n, t) {
350
350
  let e;
351
351
  switch (n.type) {
352
352
  case "string":
@@ -369,38 +369,38 @@ function te(n, t) {
369
369
  }
370
370
  return n.description && (e = e.describe(n.description)), n.default !== void 0 && (e = e.default(n.default)), e;
371
371
  }
372
- function ne(n) {
373
- return n.module ? le(n.module) : (t, e) => {
372
+ function fe(n) {
373
+ return n.module ? Ee(n.module) : (t, e) => {
374
374
  if (!n.rules)
375
375
  return;
376
376
  const i = t;
377
377
  for (const s of n.rules)
378
- ie(s, i, e);
378
+ me(s, i, e);
379
379
  };
380
380
  }
381
- function ie(n, t, e) {
381
+ function me(n, t, e) {
382
382
  switch (n.type) {
383
383
  case "required":
384
- se(n, t, e);
384
+ ge(n, t, e);
385
385
  break;
386
386
  case "range":
387
- oe(n, t, e);
387
+ he(n, t, e);
388
388
  break;
389
389
  case "pattern":
390
- re(n, t, e);
390
+ ye(n, t, e);
391
391
  break;
392
392
  case "dependency":
393
- ae(n, t, e);
393
+ be(n, t, e);
394
394
  break;
395
395
  case "custom":
396
- ce(n, t, e);
396
+ xe(n, t, e);
397
397
  break;
398
398
  }
399
399
  }
400
- function se(n, t, e) {
400
+ function ge(n, t, e) {
401
401
  n.field && !t[n.field] && e.addError(n.message || `Field '${n.field}' is required`);
402
402
  }
403
- function oe(n, t, e) {
403
+ function he(n, t, e) {
404
404
  if (n.field && typeof t[n.field] == "number") {
405
405
  const i = t[n.field];
406
406
  n.min !== void 0 && i < n.min && e.addError(
@@ -410,42 +410,42 @@ function oe(n, t, e) {
410
410
  );
411
411
  }
412
412
  }
413
- function re(n, t, e) {
413
+ function ye(n, t, e) {
414
414
  n.field && n.pattern && typeof t[n.field] == "string" && (new RegExp(n.pattern).test(t[n.field]) || e.addError(
415
415
  n.message || `Field '${n.field}' does not match pattern ${n.pattern}`
416
416
  ));
417
417
  }
418
- function ae(n, t, e) {
418
+ function be(n, t, e) {
419
419
  if (n.field && n.dependsOn && n.expression)
420
420
  try {
421
- v(n.expression, t) || e.addError(
421
+ S(n.expression, t) || e.addError(
422
422
  n.message || `Field '${n.field}' dependency validation failed`
423
423
  );
424
424
  } catch (i) {
425
425
  e.addWarning(`Failed to evaluate dependency expression: ${i}`);
426
426
  }
427
427
  }
428
- function ce(n, t, e) {
428
+ function xe(n, t, e) {
429
429
  if (n.expression)
430
430
  try {
431
- v(n.expression, t) || e.addError(n.message || "Custom validation failed");
431
+ S(n.expression, t) || e.addError(n.message || "Custom validation failed");
432
432
  } catch (i) {
433
433
  e.addWarning(`Failed to evaluate custom expression: ${i}`);
434
434
  }
435
435
  }
436
- function le(n) {
436
+ function Ee(n) {
437
437
  return (t, e) => {
438
438
  console.warn(`External validation module not implemented: ${n}`), e.addWarning(
439
439
  `External validation module not yet supported: ${n}`
440
440
  );
441
441
  };
442
442
  }
443
- function ue(n) {
444
- return n.module ? de(n.module) : (t, e) => {
443
+ function Pe(n) {
444
+ return n.module ? we(n.module) : (t, e) => {
445
445
  const i = { ...t };
446
446
  if (n.addFields)
447
447
  for (const [s, o] of Object.entries(n.addFields))
448
- i[s] = pe(o);
448
+ i[s] = ve(o);
449
449
  if (n.removeFields)
450
450
  for (const s of n.removeFields)
451
451
  delete i[s];
@@ -456,25 +456,25 @@ function ue(n) {
456
456
  s in i && (i[o] = i[s], delete i[s]);
457
457
  if (n.normalizeFields)
458
458
  for (const { field: s, operation: o } of n.normalizeFields)
459
- s in i && typeof i[s] == "string" && (i[s] = fe(
459
+ s in i && typeof i[s] == "string" && (i[s] = $e(
460
460
  i[s],
461
461
  o
462
462
  ));
463
463
  return i;
464
464
  };
465
465
  }
466
- function de(n) {
466
+ function we(n) {
467
467
  return (t, e) => (console.warn(`External transform module not implemented: ${n}`), t);
468
468
  }
469
- function pe(n) {
469
+ function ve(n) {
470
470
  if (typeof n == "string" && n.startsWith("$")) {
471
- const t = Y[n];
471
+ const t = ce[n];
472
472
  if (t)
473
473
  return t();
474
474
  }
475
475
  return n;
476
476
  }
477
- function fe(n, t) {
477
+ function $e(n, t) {
478
478
  switch (t) {
479
479
  case "trim":
480
480
  return n.trim();
@@ -483,20 +483,20 @@ function fe(n, t) {
483
483
  case "uppercase":
484
484
  return n.toUpperCase();
485
485
  case "camelCase":
486
- return me(n);
486
+ return ke(n);
487
487
  case "kebabCase":
488
- return ge(n);
488
+ return Ce(n);
489
489
  default:
490
490
  return n;
491
491
  }
492
492
  }
493
- function me(n) {
493
+ function ke(n) {
494
494
  return n.replace(/[-_\s]+(.)?/g, (t, e) => e ? e.toUpperCase() : "").replace(/^./, (t) => t.toLowerCase());
495
495
  }
496
- function ge(n) {
496
+ function Ce(n) {
497
497
  return n.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
498
498
  }
499
- function v(n, t) {
499
+ function S(n, t) {
500
500
  try {
501
501
  let e = n;
502
502
  for (const [i, s] of Object.entries(t)) {
@@ -514,14 +514,14 @@ function v(n, t) {
514
514
  const [i, s] = e.split("===").map((o) => o.trim());
515
515
  return i === s;
516
516
  }
517
- return e.includes("||") ? e.split("||").map((s) => s.trim()).some((s) => v(s, t)) : e.includes("&&") ? e.split("&&").map((s) => s.trim()).every((s) => v(s, t)) : !1;
517
+ return e.includes("||") ? e.split("||").map((s) => s.trim()).some((s) => S(s, t)) : e.includes("&&") ? e.split("&&").map((s) => s.trim()).every((s) => S(s, t)) : !1;
518
518
  } catch (e) {
519
519
  return console.error("Expression evaluation failed:", e), !1;
520
520
  }
521
521
  }
522
- const he = (n) => (t, e) => {
522
+ const Re = (n) => (t, e) => {
523
523
  var c;
524
- const i = n[e].remote, s = e, o = ((c = n[e].contributes) == null ? void 0 : c.experiences) ?? {};
524
+ const i = n[e].remote, s = n[e].section || "default", o = ((c = n[e].contributes) == null ? void 0 : c.experiences) ?? {};
525
525
  return Object.keys(o).forEach((l) => {
526
526
  const u = o[l];
527
527
  t.experiences[l] = {
@@ -529,18 +529,18 @@ const he = (n) => (t, e) => {
529
529
  remote: i,
530
530
  sectionId: s
531
531
  };
532
- }), y().getAllExtensionPoints().forEach((l) => {
532
+ }), b().getAllExtensionPoints().forEach((l) => {
533
533
  var h;
534
- const { contributionKey: u } = l.config, m = (h = n[e].contributes) == null ? void 0 : h[u];
535
- m && (t[u] || (t[u] = {}), Array.isArray(m) ? m.forEach((d) => {
534
+ const { contributionKey: u } = l.config, f = (h = n[e].contributes) == null ? void 0 : h[u];
535
+ f && (t[u] || (t[u] = {}), Array.isArray(f) ? f.forEach((d) => {
536
536
  d && d.id && (t[u][d.id] = {
537
537
  ...d,
538
538
  remote: i,
539
539
  sectionId: s
540
540
  });
541
- }) : typeof m == "object" && Object.entries(m).forEach(([d, f]) => {
541
+ }) : typeof f == "object" && Object.entries(f).forEach(([d, p]) => {
542
542
  t[u][d] = {
543
- ...f,
543
+ ...p,
544
544
  id: d,
545
545
  remote: i,
546
546
  sectionId: s
@@ -548,7 +548,7 @@ const he = (n) => (t, e) => {
548
548
  }));
549
549
  }), t;
550
550
  };
551
- async function ye(n) {
551
+ async function Ie(n) {
552
552
  const t = n ?? window.KosPlugins.__dynamicRemotes;
553
553
  if (window.KosPlugins.extensions) {
554
554
  const o = window.KosPlugins.extensions;
@@ -559,7 +559,7 @@ async function ye(n) {
559
559
  extensions: window.KosPlugins.__extensions
560
560
  };
561
561
  }
562
- const e = window.KosPlugins.__extensions ?? await xe(t), i = {};
562
+ const e = window.KosPlugins.__extensions ?? await Fe(t), i = {};
563
563
  if (e)
564
564
  for (const o of Object.keys(e))
565
565
  i[o] = Object.values(
@@ -567,29 +567,29 @@ async function ye(n) {
567
567
  );
568
568
  return window.KosPlugins.extensions = i, { extensionPoints: i, getExtensions: (o) => i[o] || [], remotes: t, extensions: e };
569
569
  }
570
- const _ = {
570
+ const N = {
571
571
  controlPourDefinitions: {},
572
572
  experiences: {}
573
573
  };
574
- function be(n) {
575
- return n ? Object.keys(n).reduce(he(n), {
576
- ..._
577
- }) : _;
574
+ function Se(n) {
575
+ return n ? Object.keys(n).reduce(Re(n), {
576
+ ...N
577
+ }) : N;
578
578
  }
579
- async function xe(n) {
579
+ async function Fe(n) {
580
580
  if (!n)
581
581
  return window.KosPlugins = window.KosPlugins || {}, {};
582
582
  for (const o of Object.values(n)) {
583
583
  try {
584
584
  if (o.extensions && Array.isArray(o.extensions)) {
585
- const a = o.extensions.filter((r) => r && typeof r == "object" && "id" in r).map((r) => Q(r));
585
+ const a = o.extensions.filter((r) => r && typeof r == "object" && "id" in r).map((r) => le(r));
586
586
  if (a.length > 0) {
587
587
  console.info(
588
588
  `Registering ${a.length} JSON extension point(s) from ${o.remote}`
589
589
  );
590
590
  for (const r of a)
591
591
  try {
592
- Z(r).register(), console.debug(`Registered JSON extension point: ${r.id}`);
592
+ ae(r).register(), console.debug(`Registered JSON extension point: ${r.id}`);
593
593
  } catch (c) {
594
594
  console.error(
595
595
  `Failed to register JSON extension point '${r.id}' from ${o.remote}:`,
@@ -606,7 +606,7 @@ async function xe(n) {
606
606
  }
607
607
  if (o.init)
608
608
  try {
609
- const a = await $.loadRemoteModule(
609
+ const a = await F.loadRemoteModule(
610
610
  o.remote,
611
611
  "./InitPlugin"
612
612
  );
@@ -618,26 +618,26 @@ async function xe(n) {
618
618
  console.warn(`Failed to load InitPlugin from ${o.remote}:`, a);
619
619
  }
620
620
  }
621
- const t = be(n), e = t.experiences, s = z(
621
+ const t = Se(n), e = t.experiences, s = se(
622
622
  {},
623
623
  t,
624
624
  e
625
625
  );
626
626
  return window.KosPlugins = window.KosPlugins || {}, window.KosPlugins.__extensions = s, s;
627
627
  }
628
- async function Ie(n) {
629
- const { getExtensions: t } = await ye();
628
+ async function Ve(n) {
629
+ const { getExtensions: t } = await Ie();
630
630
  return t(n);
631
631
  }
632
- const Ee = (n = null) => (n || window.location.search.replace("?", "")).split("&").map((t) => {
632
+ const _e = (n = null) => (n || window.location.search.replace("?", "")).split("&").map((t) => {
633
633
  const [e, i] = t.split("=");
634
634
  return [e, decodeURIComponent(i || "")];
635
- }).reduce((t, [e, i]) => (t[e] = i, t), {}), Pe = () => {
636
- const n = window.location.origin, t = Ee();
635
+ }).reduce((t, [e, i]) => (t[e] = i, t), {}), Oe = () => {
636
+ const n = window.location.origin, t = _e();
637
637
  return (t == null ? void 0 : t.host) || n;
638
- }, Se = async (n) => {
639
- var f;
640
- const t = Pe(), e = n ?? {}, {
638
+ }, Me = async (n) => {
639
+ var x;
640
+ const t = Oe(), e = n ?? {}, {
641
641
  pluginBaseUrl: i = t,
642
642
  pluginApiPath: s,
643
643
  overrides: o = {},
@@ -646,26 +646,52 @@ const Ee = (n = null) => (n || window.location.search.replace("?", "")).split("&
646
646
  console.log(
647
647
  `initialize-plugins: Using Plugin Framework. Fetching plugins from ${r}`
648
648
  );
649
- const l = await (await fetch(r)).json(), u = typeof (a == null ? void 0 : a.context) == "string" ? [a.context] : (a == null ? void 0 : a.context) || [], m = ((f = l.data) == null ? void 0 : f.filter((g) => u.length === 0 || u.includes(g.name)).flatMap((g) => g.plugins)) ?? [], h = m == null ? void 0 : m.reduce((g, p) => {
650
- const k = (o == null ? void 0 : o[p.id]) ?? `${i}${p.path}`;
651
- return p.descriptor ? g[p.id] = {
652
- basePath: `${k}remoteEntry.js`,
653
- extensions: p.descriptor.extensions || [],
654
- contributes: p.descriptor.contributes,
655
- remote: p.descriptor.id,
656
- init: !!p.descriptor.init
657
- } : console.error(
658
- `initialize-plugins: Plugin ${p.id} does not have a descriptor`
659
- ), g;
649
+ const l = await (await fetch(r)).json(), u = typeof (a == null ? void 0 : a.context) == "string" ? [a.context] : (a == null ? void 0 : a.context) || [], f = (x = l.data) == null ? void 0 : x.filter((m) => u.length === 0 || u.includes(m.name)).flatMap(
650
+ (m) => m.plugins.map((g) => ({ ...g, name: m.name })) ?? []
651
+ ), h = a == null ? void 0 : a.group, d = f == null ? void 0 : f.reduce((m, g) => {
652
+ const _ = (o == null ? void 0 : o[g.id]) ?? `${i}${g.path}`;
653
+ if (g.descriptor) {
654
+ const A = (g.descriptor.extensions || []).reduce((P, y) => {
655
+ const k = y.groups || [];
656
+ return (!h || k.includes(h)) && P.push(y), P;
657
+ }, []), v = g.descriptor.contributes || {};
658
+ let $ = !1;
659
+ const L = Object.keys(v).reduce(
660
+ (P, y) => {
661
+ if (Array.isArray(v[y])) {
662
+ const k = (v[y] || []).filter((B) => {
663
+ const H = B.groups || [];
664
+ return !h || H.includes(h);
665
+ });
666
+ $ = $ || k.length > 0, P[y] = k;
667
+ } else
668
+ P[y] = v[y], $ = Object.keys(v[y]).length > 0;
669
+ return P;
670
+ },
671
+ {}
672
+ ), q = !!g.descriptor.init && (A.length > 0 || $);
673
+ m[g.id] = {
674
+ section: g.name,
675
+ basePath: `${_}remoteEntry.js`,
676
+ extensions: A,
677
+ contributes: L,
678
+ remote: g.descriptor.id,
679
+ init: q
680
+ };
681
+ } else
682
+ console.error(
683
+ `initialize-plugins: Plugin ${g.id} does not have a descriptor`
684
+ );
685
+ return m;
660
686
  }, {});
661
- window.KosPlugins = window.KosPlugins || {}, window.KosPlugins.__dynamicRemotes = h;
662
- const d = Object.keys(h).reduce((g, p) => {
663
- const k = h[p].remote;
664
- return g[k] = h[p].basePath, g;
687
+ window.KosPlugins = window.KosPlugins || {}, window.KosPlugins.__dynamicRemotes = d;
688
+ const p = Object.keys(d).reduce((m, g) => {
689
+ const _ = d[g].remote;
690
+ return m[_] = d[g].basePath, m;
665
691
  }, {});
666
- return $.setRemoteDefinitions(d), d;
692
+ return F.setRemoteDefinitions(p), p;
667
693
  };
668
- function Fe(n, t, e = !1) {
694
+ function Le(n, t, e = !1) {
669
695
  return !n || Object.keys(n).length === 0 ? null : e ? t && n[t] ? n[t] : null : t && n[t] ? n[t] : Object.values(n).filter((s) => typeof s.id == "string").sort((s, o) => {
670
696
  const a = typeof s.rank == "number" ? s.rank : 1 / 0, r = typeof o.rank == "number" ? o.rank : 1 / 0;
671
697
  if (a === r) {
@@ -675,37 +701,37 @@ function Fe(n, t, e = !1) {
675
701
  return a - r;
676
702
  })[0] ?? null;
677
703
  }
678
- const D = x.object({
679
- id: x.string().min(1, "ID is required").describe("Unique identifier for this extension"),
680
- title: x.string().min(1, "Title is required").describe("Display title shown in the interface"),
681
- namespace: x.string().min(1, "Namespace is required").describe("Namespace for organizing related extensions"),
682
- experienceId: x.string().min(1, "Experience ID is required").describe("Reference to the UI component experience for rendering")
683
- }), we = D.extend({
684
- rank: x.number().int().min(0).optional().describe("Optional ranking for ordering (higher = preferred)")
704
+ const M = w.object({
705
+ id: w.string().min(1, "ID is required").describe("Unique identifier for this extension"),
706
+ title: w.string().min(1, "Title is required").describe("Display title shown in the interface"),
707
+ namespace: w.string().min(1, "Namespace is required").describe("Namespace for organizing related extensions"),
708
+ experienceId: w.string().min(1, "Experience ID is required").describe("Reference to the UI component experience for rendering")
709
+ }), Te = M.extend({
710
+ rank: w.number().int().min(0).optional().describe("Optional ranking for ordering (higher = preferred)")
685
711
  });
686
- function _e(n, t, e) {
712
+ function qe(n, t, e) {
687
713
  const i = n.safeParse(t);
688
714
  return i.success ? !0 : (i.error.errors.forEach((s) => {
689
715
  e.addError(`${s.path.join(".")}: ${s.message}`);
690
716
  }), !1);
691
717
  }
692
- function Te(n, t, e) {
718
+ function Be(n, t, e) {
693
719
  t && !t.includes(".") && e.addWarning(
694
720
  `${n} '${t}' should typically include dot notation (e.g., 'category.item')`
695
721
  );
696
722
  }
697
- function ve(n, t, e = 1e3) {
723
+ function De(n, t, e = 1e3) {
698
724
  n !== void 0 && n > e && t.addWarning(
699
725
  `Rank ${n} seems unusually high - consider using lower values for better ordering`
700
726
  );
701
727
  }
702
- function Oe(n, t = {}) {
703
- return (t.rankable ? we : D).extend(n);
728
+ function He(n, t = {}) {
729
+ return (t.rankable ? Te : M).extend(n);
704
730
  }
705
- function De(n, t, e = 1e3) {
706
- typeof n == "object" && n !== null && "rank" in n && ve(n.rank, t, e);
731
+ function We(n, t, e = 1e3) {
732
+ typeof n == "object" && n !== null && "rank" in n && De(n.rank, t, e);
707
733
  }
708
- class R {
734
+ class T {
709
735
  /**
710
736
  * Get all extension points with their plugin information
711
737
  */
@@ -713,7 +739,7 @@ class R {
713
739
  const {
714
740
  includeLegacyExtensions: i = !0,
715
741
  includeEmptyExtensionPoints: s = !0
716
- } = e, a = y().getAllExtensionPoints(), r = [];
742
+ } = e, a = b().getAllExtensionPoints(), r = [];
717
743
  return a.forEach((c) => {
718
744
  const l = Object.values((t == null ? void 0 : t[c.id]) || {});
719
745
  !s && l.length === 0 || r.push({
@@ -726,7 +752,7 @@ class R {
726
752
  plugins: l
727
753
  });
728
754
  }), i && t && Object.entries(t).forEach(([c, l]) => {
729
- if (r.some((m) => m.id === c))
755
+ if (r.some((f) => f.id === c))
730
756
  return;
731
757
  const u = Object.values(l || {});
732
758
  !s && u.length === 0 || r.push({
@@ -747,7 +773,7 @@ class R {
747
773
  return t.filter(
748
774
  (s) => {
749
775
  var o, a, r, c, l, u;
750
- return s.id.toLowerCase().includes(i) || ((o = s.displayName) == null ? void 0 : o.toLowerCase().includes(i)) || ((a = s.description) == null ? void 0 : a.toLowerCase().includes(i)) || ((c = (r = s.metadata) == null ? void 0 : r.category) == null ? void 0 : c.toLowerCase().includes(i)) || ((u = (l = s.metadata) == null ? void 0 : l.tags) == null ? void 0 : u.some((m) => m.toLowerCase().includes(i)));
776
+ return s.id.toLowerCase().includes(i) || ((o = s.displayName) == null ? void 0 : o.toLowerCase().includes(i)) || ((a = s.description) == null ? void 0 : a.toLowerCase().includes(i)) || ((c = (r = s.metadata) == null ? void 0 : r.category) == null ? void 0 : c.toLowerCase().includes(i)) || ((u = (l = s.metadata) == null ? void 0 : l.tags) == null ? void 0 : u.some((f) => f.toLowerCase().includes(i)));
751
777
  }
752
778
  );
753
779
  }
@@ -883,28 +909,28 @@ class R {
883
909
  incompatibleTypes: [],
884
910
  suggestions: []
885
911
  };
886
- const r = y(), c = new Set(
912
+ const r = b(), c = new Set(
887
913
  e.map((l) => l.id)
888
914
  );
889
915
  return Object.entries(t.contributes).forEach(
890
916
  ([l, u]) => {
891
- this.getExpectedExtensionPoints(l).forEach((f) => {
892
- c.has(f) || (s.push(f), i.push(
893
- `Extension point '${f}' not available for '${l}' contributions`
917
+ this.getExpectedExtensionPoints(l).forEach((p) => {
918
+ c.has(p) || (s.push(p), i.push(
919
+ `Extension point '${p}' not available for '${l}' contributions`
894
920
  ), a.push(
895
- `Ensure the extension point '${f}' is registered`
921
+ `Ensure the extension point '${p}' is registered`
896
922
  ));
897
923
  });
898
924
  const d = r.getAllExtensionPoints().find(
899
- (f) => f.config.contributionKey === l
925
+ (p) => p.config.contributionKey === l
900
926
  );
901
- d && u.length > 0 && u.forEach((f, g) => {
902
- d.config.isRankable && typeof f.rank != "number" && (i.push(
903
- `${l}[${g}]: Extension point '${d.id}' expects 'rank' property`
927
+ d && u.length > 0 && u.forEach((p, x) => {
928
+ d.config.isRankable && typeof p.rank != "number" && (i.push(
929
+ `${l}[${x}]: Extension point '${d.id}' expects 'rank' property`
904
930
  ), a.push(
905
931
  "Add 'rank' property with numeric value for ordering"
906
- )), d.config.hasView && !f.experienceId && (i.push(
907
- `${l}[${g}]: Extension point '${d.id}' expects 'experienceId' for view-based contributions`
932
+ )), d.config.hasView && !p.experienceId && (i.push(
933
+ `${l}[${x}]: Extension point '${d.id}' expects 'experienceId' for view-based contributions`
908
934
  ), a.push(
909
935
  "Add 'experienceId' property linking to an experience definition"
910
936
  ));
@@ -957,7 +983,7 @@ class R {
957
983
  };
958
984
  }
959
985
  }
960
- class Ue {
986
+ class Ge {
961
987
  /**
962
988
  * Generate complete documentation for all extension points
963
989
  */
@@ -967,13 +993,13 @@ class Ue {
967
993
  includeTypeDefinitions: s = !0,
968
994
  includeLegacyExtensions: o = !0,
969
995
  includePluginHealth: a = !0
970
- } = e, r = R.getExtensionPoints(
996
+ } = e, r = T.getExtensionPoints(
971
997
  t,
972
998
  {
973
999
  includeLegacyExtensions: o,
974
1000
  includeEmptyExtensionPoints: !0
975
1001
  }
976
- ), c = R.calculateHealthStats(r);
1002
+ ), c = T.calculateHealthStats(r);
977
1003
  let l = this.generateHeader(c);
978
1004
  return l += this.generateTableOfContents(r), l += this.generateOverviewSection(r, c), r.forEach((u) => {
979
1005
  l += this.generateExtensionPointSection(u, {
@@ -1184,7 +1210,7 @@ No plugins currently registered for this extension point.
1184
1210
  `), s.sectionId && (i += `- **Section**: ${s.sectionId}
1185
1211
  `), s.rank !== void 0 && (i += `- **Rank**: ${s.rank}
1186
1212
  `), e) {
1187
- const o = R.analyzePlugin(s);
1213
+ const o = T.analyzePlugin(s);
1188
1214
  i += `- **Health**: ${this.getHealthEmoji(o.healthStatus)} ${o.healthStatus}
1189
1215
  `, o.capabilities.length > 0 && (i += `- **Capabilities**: ${o.capabilities.join(", ")}
1190
1216
  `);
@@ -1199,7 +1225,7 @@ No plugins currently registered for this extension point.
1199
1225
  static generateSchemaFieldsSection(t) {
1200
1226
  if (t.source !== "simplified")
1201
1227
  return "";
1202
- const i = y().getExtensionPoint(t.id);
1228
+ const i = b().getExtensionPoint(t.id);
1203
1229
  if (!(i != null && i.getSchemaFieldInfo))
1204
1230
  return "";
1205
1231
  const s = i.getSchemaFieldInfo();
@@ -1399,7 +1425,7 @@ console.log(validation.warnings); // Check for warnings
1399
1425
  // Helper methods
1400
1426
  static getExtensionPointImportName(t) {
1401
1427
  var a;
1402
- const i = y().getExtensionPoint(t);
1428
+ const i = b().getExtensionPoint(t);
1403
1429
  if ((a = i == null ? void 0 : i.config.metadata) != null && a.exportName)
1404
1430
  return i.config.metadata.exportName;
1405
1431
  const s = t.split(".");
@@ -1427,7 +1453,7 @@ console.log(validation.warnings); // Check for warnings
1427
1453
  }
1428
1454
  static inferContributionKey(t) {
1429
1455
  if (t.source === "simplified") {
1430
- const a = y().getExtensionPoint(t.id);
1456
+ const a = b().getExtensionPoint(t.id);
1431
1457
  if (a != null && a.config.contributionKey)
1432
1458
  return a.config.contributionKey;
1433
1459
  }
@@ -1445,7 +1471,7 @@ console.log(validation.warnings); // Check for warnings
1445
1471
  }
1446
1472
  static isViewBasedExtensionPoint(t) {
1447
1473
  if (t.source === "simplified") {
1448
- const i = y().getExtensionPoint(t.id);
1474
+ const i = b().getExtensionPoint(t.id);
1449
1475
  return (i == null ? void 0 : i.config.hasView) || !1;
1450
1476
  }
1451
1477
  return t.plugins.some(
@@ -1454,7 +1480,7 @@ console.log(validation.warnings); // Check for warnings
1454
1480
  }
1455
1481
  static isRankableExtensionPoint(t) {
1456
1482
  if (t.source === "simplified") {
1457
- const i = y().getExtensionPoint(t.id);
1483
+ const i = b().getExtensionPoint(t.id);
1458
1484
  return (i == null ? void 0 : i.config.isRankable) || !1;
1459
1485
  }
1460
1486
  return t.plugins.some(
@@ -1467,7 +1493,7 @@ console.log(validation.warnings); // Check for warnings
1467
1493
  static getSchemaFieldsForContribution(t) {
1468
1494
  if (t.source !== "simplified")
1469
1495
  return [];
1470
- const i = y().getExtensionPoint(t.id);
1496
+ const i = b().getExtensionPoint(t.id);
1471
1497
  return i != null && i.getSchemaFieldInfo ? i.getSchemaFieldInfo() : [];
1472
1498
  }
1473
1499
  static getSpecificFields(t) {
@@ -1496,28 +1522,28 @@ console.log(validation.warnings); // Check for warnings
1496
1522
  }
1497
1523
  }
1498
1524
  export {
1499
- D as B,
1500
- Ue as D,
1501
- R as P,
1502
- we as R,
1503
- Se as a,
1504
- ye as b,
1505
- y as c,
1506
- he as d,
1507
- be as e,
1508
- Ie as f,
1509
- Re as g,
1510
- Z as h,
1511
- Ce as i,
1512
- J as j,
1513
- O as k,
1514
- xe as l,
1515
- $ as m,
1516
- Te as n,
1517
- ve as o,
1518
- Oe as p,
1519
- De as q,
1520
- Fe as r,
1521
- _e as v
1525
+ M as B,
1526
+ Ge as D,
1527
+ T as P,
1528
+ Te as R,
1529
+ Me as a,
1530
+ Ie as b,
1531
+ b as c,
1532
+ Re as d,
1533
+ Se as e,
1534
+ Ve as f,
1535
+ Ke as g,
1536
+ ae as h,
1537
+ Ne as i,
1538
+ re as j,
1539
+ V as k,
1540
+ Fe as l,
1541
+ F as m,
1542
+ Be as n,
1543
+ De as o,
1544
+ He as p,
1545
+ We as q,
1546
+ Le as r,
1547
+ qe as v
1522
1548
  };
1523
- //# sourceMappingURL=documentation-generator-BdlPnORN.js.map
1549
+ //# sourceMappingURL=documentation-generator-DZ1-wZzF.js.map