@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.
- package/dist/_generated/asset-bytes.js +1 -1
- package/dist/_generated/asset-manifest.js +2 -2
- package/dist/app-identity.d.ts +283 -0
- package/dist/app-identity.d.ts.map +1 -0
- package/dist/app-identity.js +431 -0
- package/dist/app-identity.js.map +1 -0
- package/dist/assets/{admin-extra.c7a0720f.js → admin-extra.da2c9785.js} +164 -10
- package/dist/assets/{admin.ab0009f2.css → admin.d99b416e.css} +23 -0
- package/dist/blocklet-service-rpc-types.d.ts +12 -0
- package/dist/blocklet-service-rpc-types.d.ts.map +1 -1
- package/dist/blocklet-service-rpc.d.ts +10 -1
- package/dist/blocklet-service-rpc.d.ts.map +1 -1
- package/dist/blocklet-service-rpc.js +32 -3
- package/dist/blocklet-service-rpc.js.map +1 -1
- package/dist/blocklet-service.d.ts +7 -0
- package/dist/blocklet-service.d.ts.map +1 -1
- package/dist/blocklet-service.js +30 -23
- package/dist/blocklet-service.js.map +1 -1
- package/dist/branding-sources.d.ts +60 -0
- package/dist/branding-sources.d.ts.map +1 -0
- package/dist/branding-sources.js +55 -0
- package/dist/branding-sources.js.map +1 -0
- package/dist/embedded.d.ts +20 -0
- package/dist/embedded.d.ts.map +1 -1
- package/dist/embedded.js +45 -27
- package/dist/embedded.js.map +1 -1
- package/dist/handlers/access-key-connect-handler.d.ts.map +1 -1
- package/dist/handlers/access-key-connect-handler.js +3 -1
- package/dist/handlers/access-key-connect-handler.js.map +1 -1
- package/dist/handlers/admin-instance-handler.d.ts.map +1 -1
- package/dist/handlers/admin-instance-handler.js +4 -1
- package/dist/handlers/admin-instance-handler.js.map +1 -1
- package/dist/handlers/auth-handler.d.ts +36 -1
- package/dist/handlers/auth-handler.d.ts.map +1 -1
- package/dist/handlers/auth-handler.js +58 -38
- package/dist/handlers/auth-handler.js.map +1 -1
- package/dist/handlers/blocklet-js-handler.d.ts +10 -2
- package/dist/handlers/blocklet-js-handler.d.ts.map +1 -1
- package/dist/handlers/blocklet-js-handler.js +55 -25
- package/dist/handlers/blocklet-js-handler.js.map +1 -1
- package/dist/handlers/branding-handler.d.ts +97 -11
- package/dist/handlers/branding-handler.d.ts.map +1 -1
- package/dist/handlers/branding-handler.js +212 -113
- package/dist/handlers/branding-handler.js.map +1 -1
- package/dist/handlers/passkey-handler.d.ts +6 -1
- package/dist/handlers/passkey-handler.d.ts.map +1 -1
- package/dist/handlers/passkey-handler.js +38 -26
- package/dist/handlers/passkey-handler.js.map +1 -1
- package/dist/handlers/team-handler.d.ts +4 -0
- package/dist/handlers/team-handler.d.ts.map +1 -1
- package/dist/handlers/team-handler.js +24 -5
- package/dist/handlers/team-handler.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/logo-paths.d.ts +23 -0
- package/dist/logo-paths.d.ts.map +1 -1
- package/dist/logo-paths.js +57 -2
- package/dist/logo-paths.js.map +1 -1
- package/dist/package-branding.d.ts +95 -6
- package/dist/package-branding.d.ts.map +1 -1
- package/dist/package-branding.js +87 -36
- package/dist/package-branding.js.map +1 -1
- package/dist/pages/admin/i18n.d.ts.map +1 -1
- package/dist/pages/admin/i18n.js +32 -0
- package/dist/pages/admin/i18n.js.map +1 -1
- package/dist/pages/admin/styles.d.ts +1 -1
- package/dist/pages/admin/styles.d.ts.map +1 -1
- package/dist/pages/admin/styles.js +23 -0
- package/dist/pages/admin/styles.js.map +1 -1
- package/dist/pages/admin/tab-branding.d.ts.map +1 -1
- package/dist/pages/admin/tab-branding.js +180 -15
- package/dist/pages/admin/tab-branding.js.map +1 -1
- package/dist/store/d1-store.d.ts +9 -1
- package/dist/store/d1-store.d.ts.map +1 -1
- package/dist/store/d1-store.js +30 -0
- package/dist/store/d1-store.js.map +1 -1
- package/dist/theme-utils.d.ts +21 -0
- package/dist/theme-utils.d.ts.map +1 -1
- package/dist/theme-utils.js +63 -1
- package/dist/theme-utils.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/http/security-headers.d.ts +0 -38
- package/dist/http/security-headers.d.ts.map +0 -1
- package/dist/http/security-headers.js +0 -67
- 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 {
|
|
10
|
-
import {
|
|
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
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
//
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
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
|
-
|
|
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
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
183
|
-
const
|
|
184
|
-
const
|
|
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
|
-
|
|
194
|
-
|
|
195
|
-
|
|
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 (
|
|
248
|
+
if (base || identity.name.from === "instance")
|
|
211
249
|
input.title = effectiveName;
|
|
212
|
-
if (
|
|
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
|
-
//
|
|
281
|
-
//
|
|
282
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
323
|
-
//
|
|
324
|
-
|
|
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
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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
|
|
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
|
-
|
|
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) : {})
|
|
367
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
547
|
-
|
|
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
|