@arcblock/did-connect-service 4.1.40 → 4.1.41

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 (64) hide show
  1. package/dist/app-identity.d.ts +211 -0
  2. package/dist/app-identity.d.ts.map +1 -0
  3. package/dist/app-identity.js +343 -0
  4. package/dist/app-identity.js.map +1 -0
  5. package/dist/blocklet-service-rpc-types.d.ts +12 -0
  6. package/dist/blocklet-service-rpc-types.d.ts.map +1 -1
  7. package/dist/blocklet-service-rpc.d.ts +10 -1
  8. package/dist/blocklet-service-rpc.d.ts.map +1 -1
  9. package/dist/blocklet-service-rpc.js +32 -3
  10. package/dist/blocklet-service-rpc.js.map +1 -1
  11. package/dist/blocklet-service.d.ts.map +1 -1
  12. package/dist/blocklet-service.js +13 -22
  13. package/dist/blocklet-service.js.map +1 -1
  14. package/dist/embedded.d.ts +9 -0
  15. package/dist/embedded.d.ts.map +1 -1
  16. package/dist/embedded.js +14 -6
  17. package/dist/embedded.js.map +1 -1
  18. package/dist/handlers/access-key-connect-handler.d.ts.map +1 -1
  19. package/dist/handlers/access-key-connect-handler.js +3 -1
  20. package/dist/handlers/access-key-connect-handler.js.map +1 -1
  21. package/dist/handlers/admin-instance-handler.d.ts.map +1 -1
  22. package/dist/handlers/admin-instance-handler.js +4 -1
  23. package/dist/handlers/admin-instance-handler.js.map +1 -1
  24. package/dist/handlers/auth-handler.d.ts +18 -1
  25. package/dist/handlers/auth-handler.d.ts.map +1 -1
  26. package/dist/handlers/auth-handler.js +53 -38
  27. package/dist/handlers/auth-handler.js.map +1 -1
  28. package/dist/handlers/blocklet-js-handler.d.ts +10 -2
  29. package/dist/handlers/blocklet-js-handler.d.ts.map +1 -1
  30. package/dist/handlers/blocklet-js-handler.js +36 -18
  31. package/dist/handlers/blocklet-js-handler.js.map +1 -1
  32. package/dist/handlers/branding-handler.d.ts +30 -11
  33. package/dist/handlers/branding-handler.d.ts.map +1 -1
  34. package/dist/handlers/branding-handler.js +76 -62
  35. package/dist/handlers/branding-handler.js.map +1 -1
  36. package/dist/handlers/passkey-handler.d.ts +6 -1
  37. package/dist/handlers/passkey-handler.d.ts.map +1 -1
  38. package/dist/handlers/passkey-handler.js +38 -26
  39. package/dist/handlers/passkey-handler.js.map +1 -1
  40. package/dist/handlers/team-handler.d.ts +4 -0
  41. package/dist/handlers/team-handler.d.ts.map +1 -1
  42. package/dist/handlers/team-handler.js +24 -5
  43. package/dist/handlers/team-handler.js.map +1 -1
  44. package/dist/index.d.ts +3 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/package-branding.d.ts +0 -6
  49. package/dist/package-branding.d.ts.map +1 -1
  50. package/dist/package-branding.js +2 -32
  51. package/dist/package-branding.js.map +1 -1
  52. package/dist/store/d1-store.d.ts +9 -1
  53. package/dist/store/d1-store.d.ts.map +1 -1
  54. package/dist/store/d1-store.js +30 -0
  55. package/dist/store/d1-store.js.map +1 -1
  56. package/dist/theme-utils.js +1 -1
  57. package/dist/theme-utils.js.map +1 -1
  58. package/dist/types.d.ts +5 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/package.json +3 -3
  61. package/dist/http/security-headers.d.ts +0 -38
  62. package/dist/http/security-headers.d.ts.map +0 -1
  63. package/dist/http/security-headers.js +0 -67
  64. package/dist/http/security-headers.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ /**
2
+ * App identity — the single resolver for "what is this app called and what does it
3
+ * look like" (did#247, S4 of ArcBlock/arc#7073).
4
+ *
5
+ * Every surface that shows the app's identity (name / description / icon / logos /
6
+ * theme) resolves it here instead of reading D1 and layering fallbacks on its own:
7
+ * `resolveAppInfo`, `BrandingHandler` (logo serving, letter-mark fallback, theme CSS,
8
+ * OG text), `BlockletJsHandler` (`__blocklet__.js`), the login page, the homepage and
9
+ * the access-key page name.
10
+ *
11
+ * Layers, highest first (no new layer is introduced here — this is convergence only):
12
+ *
13
+ * name instance app:branding.name → instance legacy app:name → package name
14
+ * → deployment name → built-in default
15
+ * description instance app:branding.description (any string, "" included)
16
+ * → package description → absent
17
+ * icon instance app:branding.icon
18
+ * logos instance app:logos.<type> (R2 key)
19
+ * theme instance app:theme, deep-merged over the built-in palettes
20
+ *
21
+ * connect-service never reads the app package itself (arc#7073 red line 1): the
22
+ * package layer only ever arrives as host-supplied {@link PackageBranding}, and it is
23
+ * never written back into D1 (red line 2).
24
+ *
25
+ * ## Per-field origin
26
+ *
27
+ * Every field carries `from`. `"instance"` means the value is configured on the
28
+ * instance whose identity is being resolved — nothing else. When the host asserted a
29
+ * request's instance X (route-context `instanceDid`, or an opted-in `X-Instance-Did`)
30
+ * but a surface read another scope's rows (e.g. `__blocklet__.js` reading the
31
+ * handler's construction instance), those rows are passed with `scope: "fallback"`
32
+ * and labelled `"deployment"` — see {@link identityScopeFor}. The arc-side lesson
33
+ * recorded on `resolveRawInstanceBranding` (services/shared/src/identity.ts) is that a
34
+ * ROOT fallback masquerading as instance-configured branding permanently outranks the
35
+ * package layer. With no asserted instance (a root / control-plane request), the
36
+ * construction rows ARE the instance's own and are labelled `"instance"`.
37
+ *
38
+ * Precedence note for S5: fallback-scope rows currently OUTRANK the package layer
39
+ * (they sit where instance rows sit, only relabelled) — byte-identical to today. S5
40
+ * must decide explicitly whether the order becomes own instance > package > fallback.
41
+ *
42
+ * ## Which layers a surface honors is the caller's input, not a flag
43
+ *
44
+ * The surfaces do not all honor the same layers today, and S4 preserves that byte for
45
+ * byte (locked by test/app-identity-baseline.test.ts). The resolver is pure and takes
46
+ * only the layers it is given, so each divergence is expressed by what the caller
47
+ * passes:
48
+ *
49
+ * - Letter-mark logo fallback: passes only the instance `branding` row and the
50
+ * deployment name — legacy app:name and package branding never reach the initial.
51
+ * - Embedded (Node) host: builds its handler identity with no instance rows at all,
52
+ * so legacy app:name is never honored there (per-request surfaces still overlay
53
+ * the request-scope app:branding).
54
+ * - Per-request surfaces pass the handler's build-time identity as `inherited`: the
55
+ * request-scope instance rows sit on top of it, and it replaces the
56
+ * package / deployment / default layers for name and description.
57
+ * - The scope (which instance's rows are read) stays where it is today at each call
58
+ * site; see `readInstanceIdentityRows`.
59
+ * - Logos and theme are also taken from `inherited` for any slot the request-scope rows
60
+ * do not configure, so a later layer (package logos in S5, palette in S8) is added
61
+ * once, in the build-time identity. Today the build-time identity carries no logos or
62
+ * theme, so this is byte-identical.
63
+ */
64
+ import { type AppInfo, type PackageBranding } from "./package-branding.js";
65
+ export type Origin = "instance" | "package" | "deployment" | "default";
66
+ /** Logo slots (`app:logos.<type>` = R2 key on the instance layer). */
67
+ export declare const LOGO_TYPES: readonly ["square", "squareDark", "rect", "rectDark", "favicon", "splashPortrait", "splashLandscape", "ogImage"];
68
+ export type LogoType = (typeof LOGO_TYPES)[number];
69
+ /**
70
+ * The D1 settings keys that carry app identity. Every identity SURFACE reads them through
71
+ * `readInstanceIdentityRows` / `instanceIdentityRowsFromSettings`. Raw reads remain in the
72
+ * admin CRUD endpoints, instance listings and federation/invite paths (see the did#253
73
+ * PR's unconverged-readers table).
74
+ */
75
+ export declare const IDENTITY_SETTING_KEYS: {
76
+ readonly branding: "app:branding";
77
+ readonly legacyName: "app:name";
78
+ readonly logos: "app:logos";
79
+ readonly theme: "app:theme";
80
+ };
81
+ export type IdentityRowField = keyof typeof IDENTITY_SETTING_KEYS;
82
+ /**
83
+ * Raw identity rows of one instance, as stored. A field that is `null`/`undefined`
84
+ * is "not configured" (or not read by this caller).
85
+ */
86
+ export interface InstanceIdentityRows {
87
+ branding?: string | null;
88
+ legacyName?: string | null;
89
+ logos?: string | null;
90
+ theme?: string | null;
91
+ /**
92
+ * `"own"` (default): the rows belong to the instance being resolved.
93
+ * `"fallback"`: the caller read a stand-in scope (the deployment's root instance)
94
+ * because it cannot scope to the requesting instance — values are used unchanged
95
+ * but labelled `"deployment"`, never `"instance"`.
96
+ */
97
+ scope?: "own" | "fallback";
98
+ }
99
+ export interface AppIdentityInput {
100
+ instance?: InstanceIdentityRows;
101
+ /**
102
+ * An identity already resolved for this app (the handler's build-time identity).
103
+ * When given, it replaces the package / deployment / default layers for name and
104
+ * description — including an empty inherited name — and keeps its own origins. Its
105
+ * logos / blurhash / theme fill whatever the request-scope rows do not configure.
106
+ */
107
+ inherited?: AppIdentity;
108
+ /** Host-supplied package branding. Ignored when `inherited` is given. */
109
+ packageBranding?: PackageBranding;
110
+ /** Deployment-global name (`CONNECT_APP_NAME` / embedded `appName`). `""` counts as set. */
111
+ deploymentName?: string;
112
+ /** Built-in last resort for the name. Default `"DID Connect"`. */
113
+ defaultName?: string;
114
+ }
115
+ export interface AppIdentity {
116
+ v: 1;
117
+ /** Fingerprint of the instance + package components (and the inherited identity). */
118
+ etag: string;
119
+ name: {
120
+ value: string;
121
+ from: Origin;
122
+ };
123
+ description: {
124
+ value?: string;
125
+ from: Origin;
126
+ };
127
+ icon: {
128
+ value?: string;
129
+ from: Origin;
130
+ };
131
+ /** Configured slots. `key` is the R2 key for instance slots; later layers may omit it. */
132
+ logos: Partial<Record<LogoType, {
133
+ from: Origin;
134
+ key?: string;
135
+ }>>;
136
+ /** `app:logos.blurhash`, passed through as stored. */
137
+ blurhash?: {
138
+ value: unknown;
139
+ from: Origin;
140
+ };
141
+ theme: {
142
+ /** `formatThemeForOutput` of the stored theme (`{}` when none). */
143
+ value: any;
144
+ /**
145
+ * The prefer the stored theme declares — current concept's prefer, else the
146
+ * top-level prefer — with no default. The login page uses this rule; it differs
147
+ * from `value.prefer` (which defaults to "system" and ignores the top-level prefer
148
+ * in the concepts shape) and both are preserved as-is.
149
+ */
150
+ prefer?: unknown;
151
+ from: Origin;
152
+ };
153
+ }
154
+ /** A stored JSON object row, or `{}` for absent / malformed / non-object rows. */
155
+ export declare function parseSettingObject(raw: string | null | undefined): Record<string, any>;
156
+ export declare function resolveAppIdentity(input: AppIdentityInput): AppIdentity;
157
+ /** The legacy `AppInfo` shape (`resolveAppInfo`'s output) of an identity. */
158
+ export declare function toAppInfo(identity: AppIdentity): AppInfo;
159
+ /**
160
+ * Wrap an `AppInfo` a host resolved on its own (no per-field origins available) as an
161
+ * identity. Labelled `"deployment"`: it is host/deployment-supplied, and must never
162
+ * read as instance-configured.
163
+ */
164
+ export declare function identityFromAppInfo(appInfo: AppInfo): AppIdentity;
165
+ interface SettingReader {
166
+ getSetting(instanceDid: string, key: string): Promise<string | null>;
167
+ }
168
+ /**
169
+ * Read the requested identity rows of `instanceDid` (one `getSetting` per field, in
170
+ * parallel). The caller owns the scope decision — which instance's rows answer this
171
+ * request — and says so via `scope`.
172
+ */
173
+ export declare function readInstanceIdentityRows(store: SettingReader, instanceDid: string, fields: readonly IdentityRowField[], scope?: "own" | "fallback"): Promise<InstanceIdentityRows>;
174
+ /**
175
+ * The requested identity rows out of an already-loaded settings map (e.g. from
176
+ * `listSettings`). Pass `fields` explicitly: a surface that does not honor a layer
177
+ * (e.g. legacy `app:name`) must not receive it just because the map happens to hold it.
178
+ */
179
+ export declare function instanceIdentityRowsFromSettings(settings: ReadonlyMap<string, string | null> | undefined, fields?: readonly IdentityRowField[], scope?: "own" | "fallback"): InstanceIdentityRows;
180
+ /**
181
+ * The `scope` of rows read from `readInstanceDid`, given the instance the HOST asserted
182
+ * for this request — the route-context `instanceDid`, or `X-Instance-Did` only on an
183
+ * embedded host that opted in with `trustInstanceHeader` (the same signal that decides
184
+ * branding scope; never a raw client header).
185
+ *
186
+ * - nothing asserted (root / control-plane request, single-tenant) → `"own"`
187
+ * - asserted X and the rows are X's → `"own"`
188
+ * - asserted X but the rows are another scope's (or no scope) → `"fallback"`
189
+ */
190
+ export declare function identityScopeFor(readInstanceDid: string | undefined, assertedInstanceDid: string | undefined): "own" | "fallback";
191
+ /** The slots a logo type falls back through, most specific first. */
192
+ export declare function logoFallbackChain(type: string): readonly string[];
193
+ /**
194
+ * The slot that answers `type`: the FIRST configured slot along its fallback chain.
195
+ * That slot decides — a miss on its bytes serves the generated fallback, it does not
196
+ * continue down the chain.
197
+ */
198
+ export declare function resolveLogoSlot(identity: AppIdentity, type: string): {
199
+ slot: LogoType;
200
+ from: Origin;
201
+ key?: string;
202
+ } | null;
203
+ /** `resolveAppInfo`'s historical signature, now a view over {@link resolveAppIdentity}. */
204
+ export declare function resolveAppInfo(params: {
205
+ brandingRaw: string | null;
206
+ legacyAppName: string | null;
207
+ packageBranding?: PackageBranding;
208
+ deploymentName?: string;
209
+ }): AppInfo;
210
+ export {};
211
+ //# sourceMappingURL=app-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-identity.d.ts","sourceRoot":"","sources":["../src/app-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,343 @@
1
+ /**
2
+ * App identity — the single resolver for "what is this app called and what does it
3
+ * look like" (did#247, S4 of ArcBlock/arc#7073).
4
+ *
5
+ * Every surface that shows the app's identity (name / description / icon / logos /
6
+ * theme) resolves it here instead of reading D1 and layering fallbacks on its own:
7
+ * `resolveAppInfo`, `BrandingHandler` (logo serving, letter-mark fallback, theme CSS,
8
+ * OG text), `BlockletJsHandler` (`__blocklet__.js`), the login page, the homepage and
9
+ * the access-key page name.
10
+ *
11
+ * Layers, highest first (no new layer is introduced here — this is convergence only):
12
+ *
13
+ * name instance app:branding.name → instance legacy app:name → package name
14
+ * → deployment name → built-in default
15
+ * description instance app:branding.description (any string, "" included)
16
+ * → package description → absent
17
+ * icon instance app:branding.icon
18
+ * logos instance app:logos.<type> (R2 key)
19
+ * theme instance app:theme, deep-merged over the built-in palettes
20
+ *
21
+ * connect-service never reads the app package itself (arc#7073 red line 1): the
22
+ * package layer only ever arrives as host-supplied {@link PackageBranding}, and it is
23
+ * never written back into D1 (red line 2).
24
+ *
25
+ * ## Per-field origin
26
+ *
27
+ * Every field carries `from`. `"instance"` means the value is configured on the
28
+ * instance whose identity is being resolved — nothing else. When the host asserted a
29
+ * request's instance X (route-context `instanceDid`, or an opted-in `X-Instance-Did`)
30
+ * but a surface read another scope's rows (e.g. `__blocklet__.js` reading the
31
+ * handler's construction instance), those rows are passed with `scope: "fallback"`
32
+ * and labelled `"deployment"` — see {@link identityScopeFor}. The arc-side lesson
33
+ * recorded on `resolveRawInstanceBranding` (services/shared/src/identity.ts) is that a
34
+ * ROOT fallback masquerading as instance-configured branding permanently outranks the
35
+ * package layer. With no asserted instance (a root / control-plane request), the
36
+ * construction rows ARE the instance's own and are labelled `"instance"`.
37
+ *
38
+ * Precedence note for S5: fallback-scope rows currently OUTRANK the package layer
39
+ * (they sit where instance rows sit, only relabelled) — byte-identical to today. S5
40
+ * must decide explicitly whether the order becomes own instance > package > fallback.
41
+ *
42
+ * ## Which layers a surface honors is the caller's input, not a flag
43
+ *
44
+ * The surfaces do not all honor the same layers today, and S4 preserves that byte for
45
+ * byte (locked by test/app-identity-baseline.test.ts). The resolver is pure and takes
46
+ * only the layers it is given, so each divergence is expressed by what the caller
47
+ * passes:
48
+ *
49
+ * - Letter-mark logo fallback: passes only the instance `branding` row and the
50
+ * deployment name — legacy app:name and package branding never reach the initial.
51
+ * - Embedded (Node) host: builds its handler identity with no instance rows at all,
52
+ * so legacy app:name is never honored there (per-request surfaces still overlay
53
+ * the request-scope app:branding).
54
+ * - Per-request surfaces pass the handler's build-time identity as `inherited`: the
55
+ * request-scope instance rows sit on top of it, and it replaces the
56
+ * package / deployment / default layers for name and description.
57
+ * - The scope (which instance's rows are read) stays where it is today at each call
58
+ * site; see `readInstanceIdentityRows`.
59
+ * - Logos and theme are also taken from `inherited` for any slot the request-scope rows
60
+ * do not configure, so a later layer (package logos in S5, palette in S8) is added
61
+ * once, in the build-time identity. Today the build-time identity carries no logos or
62
+ * theme, so this is byte-identical.
63
+ */
64
+ import { packageBrandingCacheToken, sanitizePackageBranding, } from "./package-branding.js";
65
+ import { formatThemeForOutput } from "./theme-utils.js";
66
+ /** Logo slots (`app:logos.<type>` = R2 key on the instance layer). */
67
+ export const LOGO_TYPES = [
68
+ "square",
69
+ "squareDark",
70
+ "rect",
71
+ "rectDark",
72
+ "favicon",
73
+ "splashPortrait",
74
+ "splashLandscape",
75
+ "ogImage",
76
+ ];
77
+ /**
78
+ * The D1 settings keys that carry app identity. Every identity SURFACE reads them through
79
+ * `readInstanceIdentityRows` / `instanceIdentityRowsFromSettings`. Raw reads remain in the
80
+ * admin CRUD endpoints, instance listings and federation/invite paths (see the did#253
81
+ * PR's unconverged-readers table).
82
+ */
83
+ export const IDENTITY_SETTING_KEYS = {
84
+ branding: "app:branding",
85
+ legacyName: "app:name",
86
+ logos: "app:logos",
87
+ theme: "app:theme",
88
+ };
89
+ // ─── Parsing ──────────────────────────────────────────────────────────────
90
+ function parseJson(raw) {
91
+ if (!raw)
92
+ return undefined;
93
+ try {
94
+ return JSON.parse(raw);
95
+ }
96
+ catch {
97
+ return undefined;
98
+ }
99
+ }
100
+ /** A stored JSON object row, or `{}` for absent / malformed / non-object rows. */
101
+ export function parseSettingObject(raw) {
102
+ const parsed = parseJson(raw);
103
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
104
+ ? parsed
105
+ : {};
106
+ }
107
+ function nonEmptyString(value) {
108
+ return typeof value === "string" && value ? value : undefined;
109
+ }
110
+ /** Mirrors formatThemeForOutput's own branching: does the stored theme configure anything? */
111
+ function themeIsConfigured(theme) {
112
+ if (Array.isArray(theme.concepts) && theme.currentConceptId) {
113
+ return theme.concepts.some((c) => c?.id === theme.currentConceptId);
114
+ }
115
+ return Boolean(theme.light || theme.dark || theme.common || theme.prefer || theme.name);
116
+ }
117
+ function declaredPrefer(theme) {
118
+ const concept = Array.isArray(theme.concepts)
119
+ ? theme.concepts.find((c) => c?.id === theme.currentConceptId)
120
+ : undefined;
121
+ return concept?.prefer || theme.prefer;
122
+ }
123
+ // ─── Fingerprint ──────────────────────────────────────────────────────────
124
+ /** FNV-1a 32-bit, seeded — two seeds give a 64-bit (16 hex) fingerprint. Not a MAC. */
125
+ function fnv1a(input, seed) {
126
+ let hash = seed >>> 0;
127
+ for (let i = 0; i < input.length; i++) {
128
+ hash ^= input.charCodeAt(i);
129
+ hash = Math.imul(hash, 0x01000193) >>> 0;
130
+ }
131
+ return hash.toString(16).padStart(8, "0");
132
+ }
133
+ function fingerprint(parts) {
134
+ const canonical = JSON.stringify(parts);
135
+ return `v1-${fnv1a(canonical, 0x811c9dc5)}${fnv1a(canonical, 0x9747b28c)}`;
136
+ }
137
+ // ─── Resolver ─────────────────────────────────────────────────────────────
138
+ export function resolveAppIdentity(input) {
139
+ const rows = input.instance ?? {};
140
+ const instanceFrom = rows.scope === "fallback" ? "deployment" : "instance";
141
+ const inherited = input.inherited;
142
+ const packageBranding = inherited ? undefined : sanitizePackageBranding(input.packageBranding);
143
+ const branding = parseSettingObject(rows.branding);
144
+ const logosRow = parseSettingObject(rows.logos);
145
+ // name
146
+ let name;
147
+ const brandingName = nonEmptyString(branding.name);
148
+ const legacyName = nonEmptyString(rows.legacyName);
149
+ const packageName = packageBranding?.name || undefined;
150
+ if (brandingName !== undefined)
151
+ name = { value: brandingName, from: instanceFrom };
152
+ else if (legacyName !== undefined)
153
+ name = { value: legacyName, from: instanceFrom };
154
+ else if (inherited)
155
+ name = { ...inherited.name };
156
+ else if (packageName !== undefined)
157
+ name = { value: packageName, from: "package" };
158
+ else if (input.deploymentName !== undefined)
159
+ name = { value: input.deploymentName, from: "deployment" };
160
+ else
161
+ name = { value: input.defaultName ?? "DID Connect", from: "default" };
162
+ // description
163
+ let description;
164
+ if (typeof branding.description === "string")
165
+ description = { value: branding.description, from: instanceFrom };
166
+ else if (inherited)
167
+ description = { ...inherited.description };
168
+ else if (packageBranding !== undefined && Object.hasOwn(packageBranding, "description")) {
169
+ description = { value: packageBranding.description, from: "package" };
170
+ }
171
+ else
172
+ description = { from: "default" };
173
+ // icon (instance only; inherited keeps its own)
174
+ const brandingIcon = nonEmptyString(branding.icon);
175
+ const icon = brandingIcon !== undefined
176
+ ? { value: brandingIcon, from: instanceFrom }
177
+ : inherited
178
+ ? { ...inherited.icon }
179
+ : { from: "default" };
180
+ // logos
181
+ const logos = {};
182
+ for (const type of LOGO_TYPES) {
183
+ const key = nonEmptyString(logosRow[type]);
184
+ if (key !== undefined)
185
+ logos[type] = { from: instanceFrom, key };
186
+ else if (inherited?.logos[type])
187
+ logos[type] = { ...inherited.logos[type] };
188
+ }
189
+ const blurhash = logosRow.blurhash
190
+ ? { value: logosRow.blurhash, from: instanceFrom }
191
+ : inherited?.blurhash
192
+ ? { ...inherited.blurhash }
193
+ : undefined;
194
+ // theme
195
+ const storedTheme = parseJson(rows.theme);
196
+ const themeObject = typeof storedTheme === "object" && storedTheme !== null
197
+ ? storedTheme
198
+ : undefined;
199
+ // Non-object JSON values (a bare string/number) reach formatThemeForOutput as-is —
200
+ // exactly what __blocklet__.js did — and resolve to the default palette.
201
+ const themeInput = storedTheme === undefined || storedTheme === null ? {} : storedTheme;
202
+ const ownTheme = {
203
+ value: formatThemeForOutput(themeInput),
204
+ ...(themeObject && declaredPrefer(themeObject) !== undefined ? { prefer: declaredPrefer(themeObject) } : {}),
205
+ from: themeObject && themeIsConfigured(themeObject) ? instanceFrom : "default",
206
+ };
207
+ // An inherited NON-default theme (a later layer) fills in when the request-scope row
208
+ // configures none. A default inherited theme never replaces the computed one, so
209
+ // bytes stay exactly what the row alone produces today.
210
+ const theme = ownTheme.from === "default" && inherited && inherited.theme.from !== "default"
211
+ ? { ...inherited.theme }
212
+ : ownTheme;
213
+ const etag = fingerprint([
214
+ rows.branding ?? null,
215
+ rows.legacyName ?? null,
216
+ rows.logos ?? null,
217
+ rows.theme ?? null,
218
+ rows.scope ?? "own",
219
+ inherited ? inherited.etag : packageBrandingCacheToken(packageBranding),
220
+ inherited ? null : (input.deploymentName ?? null),
221
+ inherited ? null : (input.defaultName ?? null),
222
+ ]);
223
+ return {
224
+ v: 1,
225
+ etag,
226
+ name,
227
+ description,
228
+ icon,
229
+ logos,
230
+ ...(blurhash ? { blurhash } : {}),
231
+ theme,
232
+ };
233
+ }
234
+ // ─── AppInfo bridge ───────────────────────────────────────────────────────
235
+ /** The legacy `AppInfo` shape (`resolveAppInfo`'s output) of an identity. */
236
+ export function toAppInfo(identity) {
237
+ return {
238
+ name: identity.name.value,
239
+ ...(identity.description.value !== undefined ? { description: identity.description.value } : {}),
240
+ ...(identity.icon.value ? { icon: identity.icon.value } : {}),
241
+ };
242
+ }
243
+ /**
244
+ * Wrap an `AppInfo` a host resolved on its own (no per-field origins available) as an
245
+ * identity. Labelled `"deployment"`: it is host/deployment-supplied, and must never
246
+ * read as instance-configured.
247
+ */
248
+ export function identityFromAppInfo(appInfo) {
249
+ return {
250
+ v: 1,
251
+ etag: fingerprint(["appInfo", appInfo.name, appInfo.description ?? null, appInfo.icon ?? null]),
252
+ name: { value: appInfo.name, from: "deployment" },
253
+ description: appInfo.description !== undefined
254
+ ? { value: appInfo.description, from: "deployment" }
255
+ : { from: "default" },
256
+ icon: appInfo.icon !== undefined ? { value: appInfo.icon, from: "deployment" } : { from: "default" },
257
+ logos: {},
258
+ theme: { value: formatThemeForOutput({}), from: "default" },
259
+ };
260
+ }
261
+ /**
262
+ * Read the requested identity rows of `instanceDid` (one `getSetting` per field, in
263
+ * parallel). The caller owns the scope decision — which instance's rows answer this
264
+ * request — and says so via `scope`.
265
+ */
266
+ export async function readInstanceIdentityRows(store, instanceDid, fields, scope = "own") {
267
+ const values = await Promise.all(fields.map((f) => store.getSetting(instanceDid, IDENTITY_SETTING_KEYS[f])));
268
+ const rows = {};
269
+ fields.forEach((f, i) => {
270
+ rows[f] = values[i] ?? null;
271
+ });
272
+ rows.scope = scope;
273
+ return rows;
274
+ }
275
+ /**
276
+ * The requested identity rows out of an already-loaded settings map (e.g. from
277
+ * `listSettings`). Pass `fields` explicitly: a surface that does not honor a layer
278
+ * (e.g. legacy `app:name`) must not receive it just because the map happens to hold it.
279
+ */
280
+ export function instanceIdentityRowsFromSettings(settings, fields = ["branding", "legacyName", "logos", "theme"], scope = "own") {
281
+ const rows = {};
282
+ for (const f of fields)
283
+ rows[f] = settings?.get(IDENTITY_SETTING_KEYS[f]) ?? null;
284
+ rows.scope = scope;
285
+ return rows;
286
+ }
287
+ /**
288
+ * The `scope` of rows read from `readInstanceDid`, given the instance the HOST asserted
289
+ * for this request — the route-context `instanceDid`, or `X-Instance-Did` only on an
290
+ * embedded host that opted in with `trustInstanceHeader` (the same signal that decides
291
+ * branding scope; never a raw client header).
292
+ *
293
+ * - nothing asserted (root / control-plane request, single-tenant) → `"own"`
294
+ * - asserted X and the rows are X's → `"own"`
295
+ * - asserted X but the rows are another scope's (or no scope) → `"fallback"`
296
+ */
297
+ export function identityScopeFor(readInstanceDid, assertedInstanceDid) {
298
+ if (!assertedInstanceDid)
299
+ return "own";
300
+ return readInstanceDid && sameInstance(readInstanceDid, assertedInstanceDid) ? "own" : "fallback";
301
+ }
302
+ /** did:abt: prefix and bare address name the same instance; opaque keys compare exactly. */
303
+ function sameInstance(a, b) {
304
+ const bare = (v) => (v.startsWith("did:abt:") ? v.slice("did:abt:".length) : v);
305
+ return bare(a) === bare(b);
306
+ }
307
+ // ─── Logo slot resolution ─────────────────────────────────────────────────
308
+ const LOGO_FALLBACK_CHAINS = {
309
+ square: ["square"],
310
+ squareDark: ["squareDark", "square"],
311
+ rect: ["rect", "square"],
312
+ rectDark: ["rectDark", "squareDark", "rect", "square"],
313
+ favicon: ["favicon", "square"],
314
+ splashPortrait: ["splashPortrait"],
315
+ splashLandscape: ["splashLandscape"],
316
+ ogImage: ["ogImage"],
317
+ };
318
+ /** The slots a logo type falls back through, most specific first. */
319
+ export function logoFallbackChain(type) {
320
+ return LOGO_FALLBACK_CHAINS[type] ?? [type];
321
+ }
322
+ /**
323
+ * The slot that answers `type`: the FIRST configured slot along its fallback chain.
324
+ * That slot decides — a miss on its bytes serves the generated fallback, it does not
325
+ * continue down the chain.
326
+ */
327
+ export function resolveLogoSlot(identity, type) {
328
+ for (const slot of logoFallbackChain(type)) {
329
+ const hit = identity.logos[slot];
330
+ if (hit)
331
+ return { slot: slot, ...hit };
332
+ }
333
+ return null;
334
+ }
335
+ /** `resolveAppInfo`'s historical signature, now a view over {@link resolveAppIdentity}. */
336
+ export function resolveAppInfo(params) {
337
+ return toAppInfo(resolveAppIdentity({
338
+ instance: { branding: params.brandingRaw, legacyName: params.legacyAppName },
339
+ packageBranding: params.packageBranding,
340
+ deploymentName: params.deploymentName,
341
+ }));
342
+ }
343
+ //# sourceMappingURL=app-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-identity.js","sourceRoot":"","sources":["../src/app-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH,OAAO,EAGL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ;IACR,YAAY;IACZ,MAAM;IACN,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,iBAAiB;IACjB,SAAS;CACD,CAAC;AAGX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;CACV,CAAC;AA+DX,6EAA6E;AAE7E,SAAS,SAAS,CAAC,GAA8B;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,GAA8B;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5E,CAAC,CAAE,MAA8B;QACjC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAED,8FAA8F;AAC9F,SAAS,iBAAiB,CAAC,KAA0B;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,cAAc,CAAC,KAA0B;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,gBAAgB,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;AACzC,CAAC;AAED,6EAA6E;AAE7E,uFAAuF;AACvF,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY;IACxC,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,KAAgB;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,MAAM,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,6EAA6E;AAE7E,MAAM,UAAU,kBAAkB,CAAC,KAAuB;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IAClC,MAAM,YAAY,GAAW,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IACnF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAE/F,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhD,OAAO;IACP,IAAI,IAAyB,CAAC;IAC9B,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,eAAe,EAAE,IAAI,IAAI,SAAS,CAAC;IACvD,IAAI,YAAY,KAAK,SAAS;QAAE,IAAI,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SAC9E,IAAI,UAAU,KAAK,SAAS;QAAE,IAAI,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SAC/E,IAAI,SAAS;QAAE,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;SAC5C,IAAI,WAAW,KAAK,SAAS;QAAE,IAAI,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC9E,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS;QAAE,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;;QACnG,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,IAAI,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAE3E,cAAc;IACd,IAAI,WAAuC,CAAC;IAC5C,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ;QAAE,WAAW,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SAC3G,IAAI,SAAS;QAAE,WAAW,GAAG,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;SAC1D,IAAI,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,CAAC;QACxF,WAAW,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACxE,CAAC;;QAAM,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAEzC,gDAAgD;IAChD,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAwB,YAAY,KAAK,SAAS;QAC1D,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE;QAC7C,CAAC,CAAC,SAAS;YACT,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAE1B,QAAQ;IACR,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;aAC5D,IAAI,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ;QAChC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;QAClD,CAAC,CAAC,SAAS,EAAE,QAAQ;YACnB,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE;YAC3B,CAAC,CAAC,SAAS,CAAC;IAEhB,QAAQ;IACR,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI;QACzE,CAAC,CAAE,WAAmC;QACtC,CAAC,CAAC,SAAS,CAAC;IACd,mFAAmF;IACnF,yEAAyE;IACzE,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IACxF,MAAM,QAAQ,GAAyB;QACrC,KAAK,EAAE,oBAAoB,CAAC,UAAU,CAAC;QACvC,GAAG,CAAC,WAAW,IAAI,cAAc,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5G,IAAI,EAAE,WAAW,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAC;IACF,qFAAqF;IACrF,iFAAiF;IACjF,wDAAwD;IACxD,MAAM,KAAK,GACT,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;QAC5E,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;QACxB,CAAC,CAAC,QAAQ,CAAC;IAEf,MAAM,IAAI,GAAG,WAAW,CAAC;QACvB,IAAI,CAAC,QAAQ,IAAI,IAAI;QACrB,IAAI,CAAC,UAAU,IAAI,IAAI;QACvB,IAAI,CAAC,KAAK,IAAI,IAAI;QAClB,IAAI,CAAC,KAAK,IAAI,IAAI;QAClB,IAAI,CAAC,KAAK,IAAI,KAAK;QACnB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,eAAe,CAAC;QACvE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC;QACjD,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;KAC/C,CAAC,CAAC;IAEH,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,IAAI;QACJ,IAAI;QACJ,WAAW;QACX,IAAI;QACJ,KAAK;QACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,KAAK;KACN,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,QAAqB;IAC7C,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;QACzB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,IAAI,EAAE,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAC/F,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;QACjD,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE;YACpD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;QACvB,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;QACpG,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;KAC5D,CAAC;AACJ,CAAC;AAQD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAoB,EACpB,WAAmB,EACnB,MAAmC,EACnC,QAA4B,KAAK;IAEjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAyB,EAAE,CAAC;IACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAAwD,EACxD,SAAsC,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,EAClF,QAA4B,KAAK;IAEjC,MAAM,IAAI,GAAyB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAClF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,eAAmC,EACnC,mBAAuC;IAEvC,IAAI,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,eAAe,IAAI,YAAY,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACpG,CAAC;AAED,4FAA4F;AAC5F,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS;IACxC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,6EAA6E;AAE7E,MAAM,oBAAoB,GAA0C;IAClE,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;IACpC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxB,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC;IACtD,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC9B,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAClC,eAAe,EAAE,CAAC,iBAAiB,CAAC;IACpC,OAAO,EAAE,CAAC,SAAS,CAAC;CACrB,CAAC;AAEF,qEAAqE;AACrE,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAQ,oBAA0D,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAqB,EACrB,IAAY;IAEZ,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAgB,CAAC,CAAC;QAC7C,IAAI,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,IAAgB,EAAE,GAAG,GAAG,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,cAAc,CAAC,MAK9B;IACC,OAAO,SAAS,CACd,kBAAkB,CAAC;QACjB,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;QAC5E,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -30,6 +30,12 @@ export interface MemberWithUserInfoDTO extends StoredMembershipDTO {
30
30
  avatar?: string;
31
31
  approved: number;
32
32
  }
33
+ /** Mention search hit. No email, phone, or credential fields. */
34
+ export interface PublicMemberDTO {
35
+ did: string;
36
+ fullName: string | null;
37
+ avatar: string | null;
38
+ }
33
39
  export interface StoredUserDTO {
34
40
  did: string;
35
41
  pk: string;
@@ -124,6 +130,12 @@ export interface BlockletServiceRPCInterface {
124
130
  /** Membership count without materialising the list — for `stat`-shaped callers. */
125
131
  countMemberships(instanceDid: string): Promise<number>;
126
132
  listMembershipsWithUserInfo(instanceDid: string): Promise<MemberWithUserInfoDTO[]>;
133
+ /**
134
+ * Approved members of one instance whose fullName contains `query` or whose
135
+ * DID starts with it. Blank query returns []. `limit` is capped at 10.
136
+ * Authorization is the caller's job; this never returns email or other secrets.
137
+ */
138
+ searchMembersPublic(instanceDid: string, query: string, limit: number): Promise<PublicMemberDTO[]>;
127
139
  createMembership(userDid: string, instanceDid: string, role: string, invitedBy?: string): Promise<void>;
128
140
  updateMembershipRole(userDid: string, instanceDid: string, role: string): Promise<void>;
129
141
  deleteMembership(userDid: string, instanceDid: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"blocklet-service-rpc-types.d.ts","sourceRoot":"","sources":["../src/blocklet-service-rpc-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yGAAyG;IACzG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,iFAAiF;AACjF,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAIrC,MAAM,WAAW,2BAA2B;IAG1C,oDAAoD;IACpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEvD;wFACoF;IACpF,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEjF,2CAA2C;IAC3C,eAAe,CACb,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAErC,4DAA4D;IAC5D,aAAa,CACX,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CACN;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;KAAE,GACnD;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAA;KAAE,CACxC,CAAC;IAKF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACzF,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACrE,mFAAmF;IACnF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACnF,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGhE,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrE,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACxG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG/D,uBAAuB,CACrB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACxD,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9E,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG1D,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC7E,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAKzD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC7D,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9G,UAAU,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG1E,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC7F,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3C,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEzE;;;;;;;OAOG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE7E,qHAAqH;IACrH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtD,uFAAuF;IACvF,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAM1F,+EAA+E;IAC/E,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,sFAAsF;IACtF,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,oCAAoC;IACpC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,2CAA2C;IAC3C,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC3D"}
1
+ {"version":3,"file":"blocklet-service-rpc-types.d.ts","sourceRoot":"","sources":["../src/blocklet-service-rpc-types.ts"],"names":[],"mappings":"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"}