@camstack/addon-benchmark 0.1.16 → 0.1.18

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,7 +1,7 @@
1
1
  const e = {
2
2
  "@camstack/sdk": {
3
3
  name: "@camstack/sdk",
4
- version: "0.1.38",
4
+ version: "0.1.40",
5
5
  scope: ["default"],
6
6
  loaded: !1,
7
7
  from: "__mfe_internal__addon_benchmark_page",
@@ -10,13 +10,13 @@ const e = {
10
10
  },
11
11
  shareConfig: {
12
12
  singleton: !0,
13
- requiredVersion: "^0.1.38",
13
+ requiredVersion: "^0.1.40",
14
14
  import: !1
15
15
  }
16
16
  },
17
17
  "@camstack/types": {
18
18
  name: "@camstack/types",
19
- version: "0.1.17",
19
+ version: "0.1.26",
20
20
  scope: ["default"],
21
21
  loaded: !1,
22
22
  from: "__mfe_internal__addon_benchmark_page",
@@ -25,13 +25,13 @@ const e = {
25
25
  },
26
26
  shareConfig: {
27
27
  singleton: !0,
28
- requiredVersion: "^0.1.17",
28
+ requiredVersion: "^0.1.26",
29
29
  import: !1
30
30
  }
31
31
  },
32
32
  "@camstack/ui-library": {
33
33
  name: "@camstack/ui-library",
34
- version: "0.1.41",
34
+ version: "0.1.43",
35
35
  scope: ["default"],
36
36
  loaded: !1,
37
37
  from: "__mfe_internal__addon_benchmark_page",
@@ -40,7 +40,7 @@ const e = {
40
40
  },
41
41
  shareConfig: {
42
42
  singleton: !0,
43
- requiredVersion: "^0.1.41",
43
+ requiredVersion: "^0.1.43",
44
44
  import: !1
45
45
  }
46
46
  },
@@ -63,7 +63,7 @@ async function l() {
63
63
  }), r.share["@camstack/sdk"] = e;
64
64
  }
65
65
  if (r.share["@camstack/types"] === void 0) {
66
- const e = { ...await import("./index-BY_6d_z0.mjs") };
66
+ const e = { ...await import("./index-9AUGaWzI.mjs") };
67
67
  Object.defineProperty(e, "__esModule", {
68
68
  value: !0,
69
69
  enumerable: !1
@@ -101,21 +101,21 @@ async function l() {
101
101
  "@camstack/sdk": {
102
102
  shareConfig: {
103
103
  singleton: !0,
104
- requiredVersion: "^0.1.38",
104
+ requiredVersion: "^0.1.40",
105
105
  import: !1
106
106
  }
107
107
  },
108
108
  "@camstack/types": {
109
109
  shareConfig: {
110
110
  singleton: !0,
111
- requiredVersion: "^0.1.17",
111
+ requiredVersion: "^0.1.26",
112
112
  import: !1
113
113
  }
114
114
  },
115
115
  "@camstack/ui-library": {
116
116
  shareConfig: {
117
117
  singleton: !0,
118
- requiredVersion: "^0.1.41",
118
+ requiredVersion: "^0.1.43",
119
119
  import: !1
120
120
  }
121
121
  },
@@ -8572,15 +8572,6 @@ const lu = a({
8572
8572
  addonId: o(),
8573
8573
  /** Display label shown on the login button + admin row. */
8574
8574
  displayName: o(),
8575
- /**
8576
- * Provider kind — drives icon + grouping in admin UI.
8577
- * - `local` — username/password form (always at top of login page)
8578
- * - `oidc` — OpenID Connect (Google, Microsoft, Okta, generic)
8579
- * - `saml` — SAML 2.0
8580
- * - `ldap` — LDAP / Active Directory
8581
- * - `other` — anything else (custom integrations)
8582
- */
8583
- kind: I(["local", "oidc", "saml", "ldap", "other"]),
8584
8575
  /** Optional iconography hint (lucide-react icon name OR emoji). */
8585
8576
  icon: o().optional(),
8586
8577
  /** When true, the provider exposes a redirect-based login flow
@@ -8640,16 +8631,8 @@ const lu = a({
8640
8631
  }), Hm = a({
8641
8632
  /** Stable id matching the addon id. */
8642
8633
  addonId: o(),
8643
- /** Display label shown on the admin row. */
8634
+ /** Display label shown on the admin row — sourced from the addon manifest. */
8644
8635
  displayName: o(),
8645
- /**
8646
- * Provider kind — drives icon + status formatting.
8647
- * - `cloudflare-tunnel`
8648
- * - `ngrok`
8649
- * - `tailscale`
8650
- * - `other`
8651
- */
8652
- kind: I(["cloudflare-tunnel", "ngrok", "tailscale", "other"]),
8653
8636
  /** When false, the provider is registered but disabled. */
8654
8637
  enabled: y(),
8655
8638
  /** True when the underlying tunnel/connection is up. */
@@ -8705,20 +8688,20 @@ const lu = a({
8705
8688
  }, Jm = a({
8706
8689
  /** Stable id matching the addon id. */
8707
8690
  addonId: o(),
8708
- /** Display label shown on the admin row. */
8691
+ /** Display label shown on the admin row — sourced from the addon manifest. */
8709
8692
  displayName: o(),
8710
- /**
8711
- * Provider kind — drives icon + grouping.
8712
- * - `cloudflare` — Cloudflare TURN
8713
- * - `coturn` — self-hosted coturn
8714
- * - `twilio` — Twilio Network Traversal
8715
- * - `other` — anything else
8716
- */
8717
- kind: I(["cloudflare", "coturn", "twilio", "other"]),
8718
8693
  /** When false, the provider is registered but disabled. */
8719
8694
  enabled: y(),
8720
8695
  /** Number of servers this provider is currently exposing. */
8721
8696
  serverCount: s(),
8697
+ /**
8698
+ * Flat list of every TURN/STUN URL this provider currently exposes.
8699
+ * One row per URL (multi-URL ICE server entries are flattened). The
8700
+ * admin UI shows this in a compact per-provider list so operators
8701
+ * can verify what's actually being negotiated without having to dig
8702
+ * into the combined `getAllServers` output.
8703
+ */
8704
+ urls: g(o()).readonly(),
8722
8705
  /** Last fetch error (when serverCount=0 due to API failure), if any. */
8723
8706
  error: o().optional()
8724
8707
  }), Ym = {
@@ -10243,10 +10226,8 @@ const lu = a({
10243
10226
  }), qg = a({
10244
10227
  /** Stable id matching the addon id. */
10245
10228
  addonId: o(),
10246
- /** Display label shown on the admin row. */
10229
+ /** Display label shown on the admin row — sourced from the addon manifest. */
10247
10230
  displayName: o(),
10248
- /** Drives icon + status formatting. */
10249
- kind: I(["tailscale", "headscale", "zerotier", "other"]),
10250
10231
  /** True when the host is joined to this provider's mesh. */
10251
10232
  joined: y(),
10252
10233
  /** Local mesh IP (empty when not joined). */
@@ -10285,7 +10266,7 @@ const lu = a({
10285
10266
  { kind: "mutation" }
10286
10267
  )
10287
10268
  }
10288
- }, je = I(["super_admin", "admin", "viewer", "agent"]), xt = a({
10269
+ }, je = I(["super_admin", "admin", "viewer", "agent", "scoped"]), xt = a({
10289
10270
  id: o(),
10290
10271
  username: o(),
10291
10272
  role: je,
@@ -10330,10 +10311,16 @@ const lu = a({
10330
10311
  name: o(),
10331
10312
  tokenPrefix: o(),
10332
10313
  scopes: g(Da),
10333
- expiresAt: s().optional(),
10334
- lastUsedAt: s().optional(),
10314
+ // Mirror the storage schema: `.nullish()` accepts the SQLite-native
10315
+ // `null` for absent timestamps as well as in-memory `undefined`.
10316
+ expiresAt: s().nullish(),
10317
+ lastUsedAt: s().nullish(),
10335
10318
  createdAt: s()
10336
10319
  }), Vg = a({
10320
+ // The owner the token is issued on behalf of. `adminProcedure` gates
10321
+ // this call so an admin can mint tokens for any user; the CLI passes
10322
+ // its own logged-in `user.id` here.
10323
+ userId: o(),
10337
10324
  name: o(),
10338
10325
  scopes: g(Da),
10339
10326
  expiresAt: s().optional()
@@ -10787,14 +10774,16 @@ const lu = a({
10787
10774
  // ── Listing ──────────────────────────────────────────────────────
10788
10775
  list: u(v(), g(kf).readonly()),
10789
10776
  // ── Logs (query) ────────────────────────────────────────────────
10777
+ // Default auth (`protected`): authenticated users — including scoped
10778
+ // tokens with the right route-prefix scope. Reading logs isn't an
10779
+ // administrative action; install/restart/uninstall stay admin-only.
10790
10780
  getLogs: u(
10791
10781
  a({
10792
10782
  addonId: o(),
10793
10783
  limit: s().min(1).max(500).default(100),
10794
10784
  level: di.optional()
10795
10785
  }),
10796
- g(Ef),
10797
- { auth: "admin" }
10786
+ g(Ef)
10798
10787
  ),
10799
10788
  // ── Packages ────────────────────────────────────────────────────
10800
10789
  listPackages: u(v(), g(If).readonly()),
@@ -10936,7 +10925,7 @@ const lu = a({
10936
10925
  ...Mf,
10937
10926
  "pipeline-orchestrator",
10938
10927
  "pipeline-runner"
10939
- ], Ea = I(["super_admin", "admin", "viewer", "agent"]), Oa = U([P("*"), g(o())]), Ra = A(o(), U([P("*"), g(o())])), Uv = a({
10928
+ ], Ea = I(["super_admin", "admin", "viewer", "agent", "scoped"]), Oa = U([P("*"), g(o())]), Ra = A(o(), U([P("*"), g(o())])), Uv = a({
10940
10929
  id: o(),
10941
10930
  username: o(),
10942
10931
  passwordHash: o(),
@@ -10965,8 +10954,10 @@ const lu = a({
10965
10954
  tokenHash: o(),
10966
10955
  tokenPrefix: o(),
10967
10956
  scopes: g(Nf),
10968
- expiresAt: s().optional(),
10969
- lastUsedAt: s().optional(),
10957
+ // SQLite/JSON storage round-trips undefined → null. Use `nullish` so the
10958
+ // schema accepts both `null` (read from disk) and `undefined` (in-memory).
10959
+ expiresAt: s().nullish(),
10960
+ lastUsedAt: s().nullish(),
10970
10961
  createdAt: s()
10971
10962
  });
10972
10963
  class Vv {
@@ -2926,7 +2926,7 @@ async function wt(e) {
2926
2926
  }
2927
2927
  }
2928
2928
  async function ba() {
2929
- return Le || (Le = wt(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_benchmark_page-BUKd6AUn.mjs")).catch((e) => {
2929
+ return Le || (Le = wt(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_benchmark_page-Cvj2DZgg.mjs")).catch((e) => {
2930
2930
  throw Le = void 0, e;
2931
2931
  })), Le;
2932
2932
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-benchmark",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "Detection addon benchmarking with reference images, accuracy metrics, and distributed execution",
5
5
  "keywords": [
6
6
  "camstack",