@arcblock/did-connect-service 4.1.40 → 4.1.42

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.
Files changed (89) hide show
  1. package/dist/_generated/asset-bytes.js +1 -1
  2. package/dist/_generated/asset-manifest.js +2 -2
  3. package/dist/app-identity.d.ts +283 -0
  4. package/dist/app-identity.d.ts.map +1 -0
  5. package/dist/app-identity.js +431 -0
  6. package/dist/app-identity.js.map +1 -0
  7. package/dist/assets/{admin-extra.c7a0720f.js → admin-extra.da2c9785.js} +164 -10
  8. package/dist/assets/{admin.ab0009f2.css → admin.d99b416e.css} +23 -0
  9. package/dist/blocklet-service-rpc-types.d.ts +12 -0
  10. package/dist/blocklet-service-rpc-types.d.ts.map +1 -1
  11. package/dist/blocklet-service-rpc.d.ts +10 -1
  12. package/dist/blocklet-service-rpc.d.ts.map +1 -1
  13. package/dist/blocklet-service-rpc.js +32 -3
  14. package/dist/blocklet-service-rpc.js.map +1 -1
  15. package/dist/blocklet-service.d.ts +7 -0
  16. package/dist/blocklet-service.d.ts.map +1 -1
  17. package/dist/blocklet-service.js +30 -23
  18. package/dist/blocklet-service.js.map +1 -1
  19. package/dist/branding-sources.d.ts +60 -0
  20. package/dist/branding-sources.d.ts.map +1 -0
  21. package/dist/branding-sources.js +55 -0
  22. package/dist/branding-sources.js.map +1 -0
  23. package/dist/embedded.d.ts +20 -0
  24. package/dist/embedded.d.ts.map +1 -1
  25. package/dist/embedded.js +45 -27
  26. package/dist/embedded.js.map +1 -1
  27. package/dist/handlers/access-key-connect-handler.d.ts.map +1 -1
  28. package/dist/handlers/access-key-connect-handler.js +3 -1
  29. package/dist/handlers/access-key-connect-handler.js.map +1 -1
  30. package/dist/handlers/admin-instance-handler.d.ts.map +1 -1
  31. package/dist/handlers/admin-instance-handler.js +4 -1
  32. package/dist/handlers/admin-instance-handler.js.map +1 -1
  33. package/dist/handlers/auth-handler.d.ts +36 -1
  34. package/dist/handlers/auth-handler.d.ts.map +1 -1
  35. package/dist/handlers/auth-handler.js +58 -38
  36. package/dist/handlers/auth-handler.js.map +1 -1
  37. package/dist/handlers/blocklet-js-handler.d.ts +10 -2
  38. package/dist/handlers/blocklet-js-handler.d.ts.map +1 -1
  39. package/dist/handlers/blocklet-js-handler.js +55 -25
  40. package/dist/handlers/blocklet-js-handler.js.map +1 -1
  41. package/dist/handlers/branding-handler.d.ts +97 -11
  42. package/dist/handlers/branding-handler.d.ts.map +1 -1
  43. package/dist/handlers/branding-handler.js +212 -113
  44. package/dist/handlers/branding-handler.js.map +1 -1
  45. package/dist/handlers/passkey-handler.d.ts +6 -1
  46. package/dist/handlers/passkey-handler.d.ts.map +1 -1
  47. package/dist/handlers/passkey-handler.js +38 -26
  48. package/dist/handlers/passkey-handler.js.map +1 -1
  49. package/dist/handlers/team-handler.d.ts +4 -0
  50. package/dist/handlers/team-handler.d.ts.map +1 -1
  51. package/dist/handlers/team-handler.js +24 -5
  52. package/dist/handlers/team-handler.js.map +1 -1
  53. package/dist/index.d.ts +5 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/logo-paths.d.ts +23 -0
  58. package/dist/logo-paths.d.ts.map +1 -1
  59. package/dist/logo-paths.js +57 -2
  60. package/dist/logo-paths.js.map +1 -1
  61. package/dist/package-branding.d.ts +95 -6
  62. package/dist/package-branding.d.ts.map +1 -1
  63. package/dist/package-branding.js +87 -36
  64. package/dist/package-branding.js.map +1 -1
  65. package/dist/pages/admin/i18n.d.ts.map +1 -1
  66. package/dist/pages/admin/i18n.js +32 -0
  67. package/dist/pages/admin/i18n.js.map +1 -1
  68. package/dist/pages/admin/styles.d.ts +1 -1
  69. package/dist/pages/admin/styles.d.ts.map +1 -1
  70. package/dist/pages/admin/styles.js +23 -0
  71. package/dist/pages/admin/styles.js.map +1 -1
  72. package/dist/pages/admin/tab-branding.d.ts.map +1 -1
  73. package/dist/pages/admin/tab-branding.js +180 -15
  74. package/dist/pages/admin/tab-branding.js.map +1 -1
  75. package/dist/store/d1-store.d.ts +9 -1
  76. package/dist/store/d1-store.d.ts.map +1 -1
  77. package/dist/store/d1-store.js +30 -0
  78. package/dist/store/d1-store.js.map +1 -1
  79. package/dist/theme-utils.d.ts +21 -0
  80. package/dist/theme-utils.d.ts.map +1 -1
  81. package/dist/theme-utils.js +63 -1
  82. package/dist/theme-utils.js.map +1 -1
  83. package/dist/types.d.ts +5 -0
  84. package/dist/types.d.ts.map +1 -1
  85. package/package.json +3 -3
  86. package/dist/http/security-headers.d.ts +0 -38
  87. package/dist/http/security-headers.d.ts.map +0 -1
  88. package/dist/http/security-headers.js +0 -67
  89. package/dist/http/security-headers.js.map +0 -1
@@ -4,10 +4,13 @@
4
4
  * Public routes (before enforceAccess): Logo access, Theme anti-FOUC
5
5
  * Admin routes (after enforceAccess): Branding/Theme/Navigation CRUD, Logo upload/delete
6
6
  */
7
+ import { identityFromAppInfo, logoFallbackChain, logoFingerprint, readInstanceIdentityRows, resolveAppIdentity, resolveLogoSlot, } from "../app-identity.js";
8
+ import { projectBrandingSources } from "../branding-sources.js";
7
9
  import { handlerError } from "../handler-errors.js";
8
10
  import { DEFAULT_LANGUAGE_ROWS, detectLocale, loadEnabledLocales, resolvePageLocale, } from "../locale.js";
9
- import { LOGO_CACHE_CONTROL, LOGO_PREVIEW_CACHE_CONTROL, previewLogoType, } from "../logo-paths.js";
10
- import { BLOCKLET_THEME_DARK_PALETTE, BLOCKLET_THEME_LIGHT_PALETTE, formatThemeForOutput } from "../theme-utils.js";
11
+ import { consoleLogger } from "../logger.js";
12
+ import { BRANDING_PUBLIC_PATHS, LOGO_CACHE_CONTROL, LOGO_PREVIEW_BASE, LOGO_PREVIEW_CACHE_CONTROL, OG_PNG_PATH, previewLogoType, publicLogoType, } from "../logo-paths.js";
13
+ import { BLOCKLET_THEME_DARK_PALETTE, BLOCKLET_THEME_LIGHT_PALETTE, sanitizeThemeColor } from "../theme-utils.js";
11
14
  export class BrandingHandler {
12
15
  options;
13
16
  // Per-instance theme cache — avoids D1 read on every styles.css / init.js
@@ -17,6 +20,10 @@ export class BrandingHandler {
17
20
  // TTL aligned with Cache-Control max-age.
18
21
  _themeCache = new Map();
19
22
  static THEME_CACHE_TTL = 60_000; // 60s
23
+ // Explicit per-request scope handed in by the caller (auth-handler's route
24
+ // context / construction instance). Keyed by the Request object so every
25
+ // internal helper resolves the same scope without re-reading headers.
26
+ _requestScope = new WeakMap();
20
27
  constructor(options) {
21
28
  this.options = options;
22
29
  }
@@ -24,23 +31,26 @@ export class BrandingHandler {
24
31
  * Public routes — Logo access + Theme anti-FOUC endpoints.
25
32
  * Called BEFORE enforceAccess in auth-handler route().
26
33
  */
27
- async fetchPublic(request) {
34
+ async fetchPublic(request, scopeInstanceDid) {
35
+ if (scopeInstanceDid)
36
+ this._requestScope.set(request, scopeInstanceDid);
28
37
  const url = new URL(request.url);
29
38
  const { pathname } = url;
30
- // Logo access (public)
31
- if (pathname.startsWith("/.well-known/service/blocklet/logo") ||
32
- pathname.startsWith("/.well-known/service/blocklet/splash") ||
33
- pathname.startsWith("/.well-known/service/blocklet/og-image") ||
34
- pathname === "/.well-known/service/blocklet/favicon" ||
35
- pathname === "/favicon.ico") {
39
+ // Public branding paths — routed from the ONE list hosts also purge
40
+ // (BRANDING_PUBLIC_PATHS in logo-paths.ts), never from inline matchers.
41
+ if (BRANDING_PUBLIC_PATHS.includes(pathname)) {
42
+ // Dynamic / static OG image. Only the .png image format is exposed
43
+ // publicly — the .html debug format renders user-controlled title/
44
+ // description as raw, unescaped markup served as text/html and has no
45
+ // consumer, so it is intentionally NOT routed (XSS hardening).
46
+ if (pathname === OG_PNG_PATH)
47
+ return this.serveOg(request);
36
48
  return this.serveLogo(request);
37
49
  }
38
- // Dynamic / static OG image. Only the .png image format is exposed
39
- // publicly — the .html debug format renders user-controlled title/
40
- // description as raw, unescaped markup served as text/html and has no
41
- // consumer, so it is intentionally NOT routed (XSS hardening).
42
- if (pathname === "/.well-known/service/blocklet/og.png") {
43
- return this.serveOg(request);
50
+ // Admin preview alias (no-store, outside the purge list by design). The
51
+ // whole namespace is claimed so an unknown type is a 404, not a fall-through.
52
+ if (pathname.startsWith(`${LOGO_PREVIEW_BASE}/`)) {
53
+ return this.serveLogo(request);
44
54
  }
45
55
  // Theme anti-FOUC (public, cacheable). Pass the request so the per-blocklet
46
56
  // instance scope (X-Instance-Did) drives which theme is served — matching the
@@ -55,7 +65,9 @@ export class BrandingHandler {
55
65
  * Admin routes — Branding/Theme/Navigation CRUD.
56
66
  * Called AFTER enforceAccess in auth-handler route() (requires admin).
57
67
  */
58
- async fetchAdmin(request) {
68
+ async fetchAdmin(request, scopeInstanceDid) {
69
+ if (scopeInstanceDid)
70
+ this._requestScope.set(request, scopeInstanceDid);
59
71
  const url = new URL(request.url);
60
72
  const { pathname } = url;
61
73
  // Branding API
@@ -89,17 +101,49 @@ export class BrandingHandler {
89
101
  }
90
102
  // ─── Logo Access ───────────────────────────────────────────────────
91
103
  /**
92
- * Per-request instance scope: multi-tenant hosts (e.g. arc's Node daemon
93
- * serving many blocklets) inject `X-Instance-Did` per request so each
94
- * blocklet/site gets its own branding row. Falls back to the
95
- * constructor-fixed instance (single-tenant deployments) and then to the
96
- * global scope. Same pattern the login flow already uses.
97
- *
98
- * Trust note: the header must be set by the HOSTING runtime (which owns
99
- * host→blocklet resolution), never passed through from clients.
104
+ * The instance this request's branding reads/writes are scoped to. Precedence:
105
+ * 1. the explicit scope the caller passed (auth-handler: route-context instance,
106
+ * else the header when the host owns it, else the construction instance) —
107
+ * the same scope the admin gate authorized against;
108
+ * 2. `X-Instance-Did`, only when `trustInstanceHeader` — a host opts in only if its
109
+ * runtime sets the header itself and strips any client-supplied value; for a
110
+ * host that does not, the header must stay untrusted (the default);
111
+ * 3. the constructor instance, then the global scope.
100
112
  */
101
113
  instanceDidFor(request) {
102
- return request.headers.get("X-Instance-Did") || this.options.instanceDid || "_global_";
114
+ const explicit = this._requestScope.get(request);
115
+ if (explicit)
116
+ return explicit;
117
+ const header = this.options.trustInstanceHeader ? request.headers.get("X-Instance-Did") : null;
118
+ return header || this.options.instanceDid || "_global_";
119
+ }
120
+ /**
121
+ * This request's identity rows. Branding always reads the host-asserted instance (or,
122
+ * with none asserted, the construction instance), so the rows are that scope's own.
123
+ */
124
+ identityRows(instanceDid, fields) {
125
+ return readInstanceIdentityRows(this.options.store, instanceDid, fields, "own");
126
+ }
127
+ /** The handler's build-time identity — the layer under the request-scope rows. */
128
+ get base() {
129
+ return this.options.appIdentity
130
+ ?? (this.options.appInfo ? identityFromAppInfo(this.options.appInfo) : undefined);
131
+ }
132
+ /** See {@link BrandingHandlerOptions.baseIdentity}. */
133
+ belowInstance() {
134
+ if (this.options.baseIdentity)
135
+ return this.options.baseIdentity;
136
+ const base = this.base;
137
+ const carriesInstance = base
138
+ && [base.name, base.description, base.icon, base.theme, base.passportColor, ...Object.values(base.logos)].some((field) => field?.from === "instance");
139
+ if (base && !carriesInstance)
140
+ return base;
141
+ // The deployment floor, with the package layer the build-time identity carries
142
+ // separately (#258) — so logo / palette / passportColor still restore to the package.
143
+ const floor = resolveAppIdentity({ instance: {}, deploymentName: this.options.rpName || undefined });
144
+ return base?.packageLayer
145
+ ? resolveAppIdentity({ instance: {}, inherited: { ...floor, packageLayer: base.packageLayer } })
146
+ : floor;
103
147
  }
104
148
  async localeFor(request) {
105
149
  const enabled = await loadEnabledLocales(this.options.store, this.instanceDidFor(request));
@@ -117,17 +161,13 @@ export class BrandingHandler {
117
161
  ? LOGO_PREVIEW_CACHE_CONTROL
118
162
  : LOGO_CACHE_CONTROL;
119
163
  const instanceDid = this.instanceDidFor(request);
120
- const logosRaw = await this.options.store.getSetting(instanceDid, "app:logos");
121
- const logos = logosRaw ? JSON.parse(logosRaw) : {};
122
- // Fallback chain
123
- const fallbackChain = this.getFallbackChain(logoType);
124
- let r2Key = null;
125
- for (const type of fallbackChain) {
126
- if (logos[type]) {
127
- r2Key = logos[type];
128
- break;
129
- }
130
- }
164
+ const identity = resolveAppIdentity({
165
+ instance: await this.identityRows(instanceDid, ["logos"]),
166
+ inherited: this.base,
167
+ });
168
+ // The first configured slot along the fallback chain decides — a miss on its
169
+ // bytes serves the generated fallback, it does NOT continue down the chain.
170
+ const r2Key = resolveLogoSlot(identity, logoType)?.key ?? null;
131
171
  if (!r2Key || !this.options.r2) {
132
172
  return this.defaultLogoResponse(instanceDid, cacheControl);
133
173
  }
@@ -163,36 +203,34 @@ export class BrandingHandler {
163
203
  // constructor/global scope.
164
204
  const serveStaticFallback = () => {
165
205
  const staticReq = new Request(new URL("/.well-known/service/blocklet/og-image", url.origin).toString(), { headers: request.headers });
206
+ const scope = this._requestScope.get(request);
207
+ if (scope)
208
+ this._requestScope.set(staticReq, scope);
166
209
  return this.serveLogo(staticReq);
167
210
  };
168
211
  if (!this.options.ogRenderer && !this.options.ogGenerator)
169
212
  return serveStaticFallback();
170
213
  // Build info context from D1 + request hints
171
214
  const instanceDid = this.instanceDidFor(request);
172
- const [brandingRaw, logosRaw] = await Promise.all([
173
- this.options.store.getSetting(instanceDid, "app:branding"),
174
- this.options.store.getSetting(instanceDid, "app:logos"),
175
- ]);
176
- const branding = brandingRaw ? JSON.parse(brandingRaw) : {};
177
- const logos = logosRaw ? JSON.parse(logosRaw) : {};
215
+ const rows = await this.identityRows(instanceDid, ["branding", "logos"]);
216
+ const base = this.base;
217
+ const identity = resolveAppIdentity({ instance: rows, inherited: base, defaultName: "App" });
178
218
  // Hash hints double as upload-presence signals: the generator only
179
219
  // references /blocklet/og-image as a background when ogImageHash is set
180
220
  // (no upload → templates render a brand-color gradient instead of the
181
- // stretched letter-SVG fallback).
182
- const hashOf = (key) => (key ? key.split("/").pop()?.slice(0, 16) : undefined);
183
- const fallbackInfo = this.options.appInfo ?? { name: "App" };
184
- const effectiveName = branding.name || fallbackInfo.name;
185
- const effectiveDescription = typeof branding.description === "string"
186
- ? branding.description
187
- : fallbackInfo.description ?? "";
221
+ // stretched letter-SVG fallback). Both are 16-char fingerprints: the R2 key's
222
+ // tail for an upload, the package logo's `v` for a package-only square (did#248).
223
+ const effectiveName = identity.name.value;
224
+ const effectiveDescription = identity.description.value ?? "";
188
225
  const info = {
189
226
  name: effectiveName,
190
227
  description: effectiveDescription,
191
228
  did: instanceDid,
192
229
  appUrl: url.origin,
193
- passportColor: branding.passportColor,
194
- logoHash: hashOf(logos.square),
195
- ogImageHash: hashOf(logos.ogImage),
230
+ // Own instance > package (S8) > absent — the OG gradient color.
231
+ passportColor: identity.passportColor?.value,
232
+ logoHash: logoFingerprint(identity.logos.square),
233
+ ogImageHash: logoFingerprint(identity.logos.ogImage),
196
234
  };
197
235
  const input = Object.fromEntries(url.searchParams.entries());
198
236
  const enabled = await loadEnabledLocales(this.options.store, instanceDid);
@@ -207,20 +245,22 @@ export class BrandingHandler {
207
245
  // Inner pages (no prefer_branding) always generate a per-page card with
208
246
  // their own title, likewise using the uploaded image as a background.
209
247
  if (input.prefer_branding === "1") {
210
- if (branding.name || this.options.appInfo)
248
+ if (base || identity.name.from === "instance")
211
249
  input.title = effectiveName;
212
- if (typeof branding.description === "string" || this.options.appInfo?.description !== undefined) {
250
+ if (identity.description.value !== undefined)
213
251
  input.description = effectiveDescription;
214
- }
215
252
  }
216
253
  delete input.prefer_branding;
217
254
  if (this.options.ogRenderer) {
218
255
  // The instance's own square branding logo — read directly from
219
256
  // CONNECT_BUCKET (never fetched over HTTP) when the render is a cache
220
257
  // MISS. `loadLogoAsset` is a lazy callback so a cache HIT inside the
221
- // renderer never touches R2 for it (arc/did#220).
258
+ // renderer never touches R2 for it (arc/did#220). A package-only square
259
+ // has no key and so no loader: connect-service has no package bytes
260
+ // (arc#7073 red line 1) — the card renders without a logo, while
261
+ // `logoHash` (= the package `v`) still versions the render cache.
222
262
  const r2 = this.options.r2;
223
- const squareLogoKey = logos.square;
263
+ const squareLogoKey = identity.logos.square?.key;
224
264
  const loadLogoAsset = squareLogoKey && r2
225
265
  ? async () => {
226
266
  const object = await r2.get(squareLogoKey);
@@ -277,60 +317,29 @@ export class BrandingHandler {
277
317
  }
278
318
  }
279
319
  resolveLogoType(pathname) {
280
- // Checked first: `/logo-preview/favicon` and `/logo-preview/og-image` would
281
- // otherwise be caught by the `endsWith` aliases below, which resolve the
282
- // same type but skip the no-store policy the alias exists to carry.
283
- const preview = previewLogoType(pathname);
284
- if (preview)
285
- return preview;
286
- if (pathname === "/favicon.ico")
287
- return "favicon";
288
- if (pathname.endsWith("/logo-rect-dark"))
289
- return "rectDark";
290
- if (pathname.endsWith("/logo-rect"))
291
- return "rect";
292
- if (pathname.endsWith("/logo-dark"))
293
- return "squareDark";
294
- if (pathname.endsWith("/logo-favicon"))
295
- return "favicon";
296
- if (pathname.endsWith("/favicon"))
297
- return "favicon"; // alias added for blocklet-server parity
298
- if (pathname.endsWith("/logo"))
299
- return "square";
300
- if (pathname.endsWith("/splash/portrait"))
301
- return "splashPortrait";
302
- if (pathname.endsWith("/splash/landscape"))
303
- return "splashLandscape";
304
- if (pathname.endsWith("/og-image"))
305
- return "ogImage";
306
- return null;
320
+ // Both are exact table lookups (logo-paths.ts): the preview alias, then the
321
+ // canonical public routes — the same table fetchPublic routes and hosts purge.
322
+ return previewLogoType(pathname) ?? publicLogoType(pathname);
307
323
  }
324
+ /** @deprecated Use `logoFallbackChain` from app-identity.ts (the single definition). */
308
325
  getFallbackChain(type) {
309
- const chains = {
310
- square: ["square"],
311
- squareDark: ["squareDark", "square"],
312
- rect: ["rect", "square"],
313
- rectDark: ["rectDark", "squareDark", "rect", "square"],
314
- favicon: ["favicon", "square"],
315
- splashPortrait: ["splashPortrait"],
316
- splashLandscape: ["splashLandscape"],
317
- ogImage: ["ogImage"],
318
- };
319
- return chains[type] || [type];
326
+ return [...logoFallbackChain(type)];
320
327
  }
321
328
  async defaultLogoResponse(instanceDid, cacheControl = LOGO_CACHE_CONTROL) {
322
- // Use app name's first letter instead of generic "B"
323
- // Use app name's first letter: branding.name → rpName → "A"
324
- let initial = (this.options.rpName || "App").charAt(0).toUpperCase();
329
+ // The letter mark honors ONLY instance app:branding.name → deployment name
330
+ // (`rpName`) → "App". Legacy app:name and package branding deliberately do not
331
+ // reach it (locked by the did#246 baseline: package-only apps show the deployment
332
+ // initial) — so exactly those two layers are what this call passes in.
333
+ let name = this.options.rpName || "App";
325
334
  try {
326
- const brandingRaw = await this.options.store.getSetting(instanceDid, "app:branding");
327
- if (brandingRaw) {
328
- const branding = JSON.parse(brandingRaw);
329
- if (branding.name)
330
- initial = branding.name.charAt(0).toUpperCase();
331
- }
335
+ name = resolveAppIdentity({
336
+ instance: await this.identityRows(instanceDid, ["branding"]),
337
+ deploymentName: this.options.rpName || undefined,
338
+ defaultName: "App",
339
+ }).name.value;
332
340
  }
333
341
  catch { /* use default */ }
342
+ const initial = name.charAt(0).toUpperCase();
334
343
  const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
335
344
  <rect width="64" height="64" rx="12" fill="#4F46E5"/>
336
345
  <text x="32" y="40" text-anchor="middle" fill="white" font-size="28" font-family="system-ui">${initial}</text>
@@ -342,12 +351,23 @@ export class BrandingHandler {
342
351
  // ─── Branding CRUD ─────────────────────────────────────────────────
343
352
  async getBranding(request) {
344
353
  const instanceDid = this.instanceDidFor(request);
345
- const [brandingRaw, logosRaw, langRaw, appleRaw] = await Promise.all([
354
+ const honorsLegacyName = this.options.honorsLegacyName !== false;
355
+ const [brandingRaw, logosRaw, langRaw, appleRaw, legacyNameRaw, themeRaw] = await Promise.all([
346
356
  this.options.store.getSetting(instanceDid, "app:branding"),
347
357
  this.options.store.getSetting(instanceDid, "app:logos"),
348
358
  this.options.store.getSetting(instanceDid, "app:languages"),
349
359
  this.options.store.getSetting(instanceDid, "apple:appIds"),
360
+ // Only a name layer on hosts whose pages honor it (see honorsLegacyName).
361
+ honorsLegacyName ? this.options.store.getSetting(instanceDid, "app:name") : null,
362
+ this.options.store.getSetting(instanceDid, "app:theme"),
350
363
  ]);
364
+ // Sources (did#249): the instance's own rows resolved over the layers below them.
365
+ // Additive — the four original keys keep their exact stored-row shape.
366
+ const below = this.belowInstance();
367
+ const effective = resolveAppIdentity({
368
+ instance: { branding: brandingRaw, legacyName: legacyNameRaw, logos: logosRaw, theme: themeRaw, scope: "own" },
369
+ inherited: below,
370
+ });
351
371
  return jsonResponse({
352
372
  branding: brandingRaw ? JSON.parse(brandingRaw) : {},
353
373
  logos: logosRaw ? JSON.parse(logosRaw) : {},
@@ -355,20 +375,42 @@ export class BrandingHandler {
355
375
  ? JSON.parse(langRaw)
356
376
  : DEFAULT_LANGUAGE_ROWS.map((row) => ({ code: row.code, name: row.name })),
357
377
  appleAppIds: appleRaw ? JSON.parse(appleRaw) : [],
378
+ sources: projectBrandingSources(effective, below),
358
379
  });
359
380
  }
360
381
  async updateBranding(request) {
361
382
  const body = await request.json();
362
383
  const instanceDid = this.instanceDidFor(request);
363
- // Partial merge update
364
- if (body.branding) {
384
+ // Partial merge update. A field sent as `null` is REMOVED — that is how the admin
385
+ // "restore default" action works: deleting the instance override lets the layer
386
+ // below (package → deployment → default) show through. The inherited value is
387
+ // never written back (arc#7073 red line 2), and a row left empty is deleted.
388
+ if (body.branding && typeof body.branding === "object") {
365
389
  const existing = await this.options.store.getSetting(instanceDid, "app:branding");
366
- const merged = { ...(existing ? JSON.parse(existing) : {}), ...body.branding };
367
- await this.options.store.setSetting(instanceDid, "app:branding", JSON.stringify(merged), 'system');
390
+ const merged = { ...(existing ? JSON.parse(existing) : {}) };
391
+ for (const [field, value] of Object.entries(body.branding)) {
392
+ if (field === "__proto__")
393
+ continue;
394
+ if (value === null)
395
+ delete merged[field];
396
+ else
397
+ merged[field] = value;
398
+ }
399
+ if (Object.keys(merged).length > 0) {
400
+ await this.options.store.setSetting(instanceDid, "app:branding", JSON.stringify(merged), 'system');
401
+ }
402
+ else {
403
+ await this.options.store.deleteSetting(instanceDid, "app:branding");
404
+ }
368
405
  // Sync app:name for instance list display
369
406
  if (merged.name) {
370
407
  await this.options.store.setSetting(instanceDid, "app:name", merged.name, 'system');
371
408
  }
409
+ else if (body.branding.name === null) {
410
+ // Restoring the name must also drop its legacy mirror, which name resolution
411
+ // still honors below app:branding.name — otherwise the override survives.
412
+ await this.options.store.deleteSetting(instanceDid, "app:name");
413
+ }
372
414
  }
373
415
  if (body.languages) {
374
416
  await this.options.store.setSetting(instanceDid, "app:languages", JSON.stringify(body.languages), 'system');
@@ -389,15 +431,70 @@ export class BrandingHandler {
389
431
  logos[key] = value;
390
432
  }
391
433
  }
392
- await this.options.store.setSetting(instanceDid, "app:logos", JSON.stringify(logos), 'system');
434
+ if (Object.keys(logos).length > 0) {
435
+ await this.options.store.setSetting(instanceDid, "app:logos", JSON.stringify(logos), 'system');
436
+ }
437
+ else {
438
+ await this.options.store.deleteSetting(instanceDid, "app:logos");
439
+ }
393
440
  }
394
441
  // Apple App IDs (for /.well-known/apple-app-site-association)
395
442
  if (body.appleAppIds !== undefined) {
396
443
  const ids = Array.isArray(body.appleAppIds) ? body.appleAppIds.filter((s) => typeof s === "string" && s.trim()) : [];
397
444
  await this.options.store.setSetting(instanceDid, "apple:appIds", JSON.stringify(ids), 'system');
398
445
  }
446
+ // Every write above has committed. Drop the host's cached build-time identity (it
447
+ // folded in app:branding) so the next request's pages resolve from the rows as they
448
+ // are now (did#249 review P3-2), then let the host purge its cached copies of the
449
+ // public branding paths (did#250). Neither can fail the save.
450
+ if (body.branding && typeof body.branding === "object")
451
+ this.invalidateIdentity(instanceDid);
452
+ await this.purgePublicPaths(instanceDid, new URL(request.url).host);
399
453
  return jsonResponse({ ok: true });
400
454
  }
455
+ /**
456
+ * Run the host's purge hook for `instanceDid`, if one was injected. Awaited so a
457
+ * Workers host does not cancel it with the response, but contained: a rejection
458
+ * or throw is logged and swallowed, because the branding write is the primary
459
+ * operation and the purge is only an optimization over the origin's max-age.
460
+ */
461
+ /**
462
+ * Run the host's identity-cache hook for `instanceDid`, if one was injected. Contained
463
+ * like the purge below: it is a public host option, and the save has already committed.
464
+ */
465
+ invalidateIdentity(instanceDid) {
466
+ const invalidate = this.options.invalidateIdentityCache;
467
+ if (!invalidate)
468
+ return;
469
+ try {
470
+ invalidate(instanceDid);
471
+ }
472
+ catch (err) {
473
+ (this.options.logger ?? consoleLogger).warn({
474
+ message: "identity cache invalidation failed; the save is kept",
475
+ mod: "branding",
476
+ instanceDid,
477
+ err,
478
+ });
479
+ }
480
+ }
481
+ async purgePublicPaths(instanceDid, host) {
482
+ const purge = this.options.purgeBrandingPaths;
483
+ if (!purge)
484
+ return;
485
+ try {
486
+ await purge({ instanceDid, host, paths: BRANDING_PUBLIC_PATHS });
487
+ }
488
+ catch (err) {
489
+ (this.options.logger ?? consoleLogger).warn({
490
+ message: "branding purge failed; the save is kept",
491
+ mod: "branding",
492
+ instanceDid,
493
+ host,
494
+ err,
495
+ });
496
+ }
497
+ }
401
498
  // ─── Logo Upload/Delete ────────────────────────────────────────────
402
499
  async uploadLogo(request) {
403
500
  const locale = await this.localeFor(request);
@@ -483,7 +580,7 @@ export class BrandingHandler {
483
580
  const bgDark = theme.dark?.palette?.background?.default || BLOCKLET_THEME_DARK_PALETTE.background.default;
484
581
  const textDark = theme.dark?.palette?.text?.primary || BLOCKLET_THEME_DARK_PALETTE.text.primary;
485
582
  // Sanitize color values — only allow safe CSS color characters
486
- const sanitize = (v) => v.replace(/[^a-zA-Z0-9#(),.\s%]/g, "");
583
+ const sanitize = sanitizeThemeColor;
487
584
  const css = `:root { --blocklet-background-default-color: ${sanitize(bgLight)}; --blocklet-text-primary-color: ${sanitize(textLight)}; }
488
585
  [data-theme='dark'] { --blocklet-background-default-color: ${sanitize(bgDark)}; --blocklet-text-primary-color: ${sanitize(textDark)}; }
489
586
  html, body { background-color: var(--blocklet-background-default-color); color: var(--blocklet-text-primary-color); transition: background-color 0.2s, color 0.2s; }`;
@@ -543,8 +640,10 @@ html, body { background-color: var(--blocklet-background-default-color); color:
543
640
  if (cached && Date.now() - cached.at < BrandingHandler.THEME_CACHE_TTL) {
544
641
  return cached.formatted;
545
642
  }
546
- const raw = await this.options.store.getSetting(instanceDid, "app:theme");
547
- const formatted = raw ? formatThemeForOutput(JSON.parse(raw)) : {};
643
+ const formatted = resolveAppIdentity({
644
+ instance: await this.identityRows(instanceDid, ["theme"]),
645
+ inherited: this.base,
646
+ }).theme.value;
548
647
  this._themeCache.set(instanceDid, { formatted, at: Date.now() });
549
648
  return formatted;
550
649
  }
@@ -1 +1 @@
1
- {"version":3,"file":"branding-handler.js","sourceRoot":"","sources":["../../src/handlers/branding-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branding-handler.js","sourceRoot":"","sources":["../../src/handlers/branding-handler.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare class Auth {
27
27
  private store;
28
28
  private jwtSecret;
29
29
  private rpName;
30
+ private appIdentity;
30
31
  private rpID?;
31
32
  private hostOnlyCookie;
32
33
  private jwtExpiresIn;
@@ -54,6 +55,10 @@ export declare class Auth {
54
55
  */
55
56
  verifyAccessKey(request: Request, instanceDid?: string): Promise<CallerIdentity | null>;
56
57
  /** Return the login page HTML, filtering methods by builtin-providers settings. */
58
+ /**
59
+ * @param assertedInstanceDid the instance the HOST asserted for this request (route
60
+ * context, or an opted-in `X-Instance-Did`); labels the identity's origin only.
61
+ */
57
62
  getLoginPage(instanceDid?: string, overrides?: {
58
63
  methods?: string[];
59
64
  oauthProviders?: Array<{
@@ -61,7 +66,7 @@ export declare class Auth {
61
66
  icon?: string;
62
67
  }>;
63
68
  masterOAuthOrigin?: string;
64
- }, request?: Request): Promise<Response>;
69
+ }, request?: Request, assertedInstanceDid?: string): Promise<Response>;
65
70
  /** GET /register — Generate registration challenge options.
66
71
  * Always returns options (even when registration is gated) because:
67
72
  * - Re-registration of existing passkeys bypasses the gate