@bridgething/client 0.12.0 → 0.14.0
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/README.md +54 -0
- package/dist/default-settings.d.ts +1 -0
- package/dist/default-settings.js +1 -0
- package/dist/device-name.d.ts +6 -0
- package/dist/device-name.d.ts.map +1 -0
- package/dist/device-name.js +4 -0
- package/dist/device-name.js.map +1 -0
- package/dist/dispatch.generated.d.ts +67 -5
- package/dist/dispatch.generated.d.ts.map +1 -1
- package/dist/dispatch.generated.js +337 -12
- package/dist/dispatch.generated.js.map +1 -1
- package/dist/form.d.ts +16 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +419 -0
- package/dist/form.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/settings-protocol.d.ts +259 -0
- package/dist/settings-protocol.d.ts.map +1 -0
- package/dist/settings-protocol.js +216 -0
- package/dist/settings-protocol.js.map +1 -0
- package/dist/settings.d.ts +38 -35
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +216 -48
- package/dist/settings.js.map +1 -1
- package/dist/testing.d.ts +49 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +45 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme.d.ts +22 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +92 -0
- package/dist/theme.js.map +1 -0
- package/package.json +39 -4
package/dist/settings.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { UNKNOWN_VERB, base64FromBytes, blobChunks, decodeSettingsMessage, } from './settings-protocol.js';
|
|
2
|
+
import { THEME_DEFAULTS_CSS, themeCss } from './theme.js';
|
|
1
3
|
const CALL_TIMEOUT_MS = 15_000;
|
|
2
4
|
const AUTHORIZE_TIMEOUT_MS = 600_000;
|
|
3
5
|
const FETCH_TIMEOUT_SLACK_MS = 5_000;
|
|
@@ -6,33 +8,86 @@ const TEXTY = /json|text|xml|urlencoded/i;
|
|
|
6
8
|
const NULL_BODY_STATUS = new Set([101, 103, 204, 205, 304]);
|
|
7
9
|
const HOST_MISSING = 'not running inside a bridgething settings host (no companion webview, no host frame)';
|
|
8
10
|
let nextId = 1;
|
|
11
|
+
let epoch = 0;
|
|
12
|
+
let known = null;
|
|
13
|
+
const pins = new Map();
|
|
9
14
|
const pending = new Map();
|
|
10
15
|
const docListeners = new Set();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
const themeListeners = new Set();
|
|
17
|
+
const contextListeners = new Set();
|
|
18
|
+
const refreshListeners = new Set();
|
|
19
|
+
let themeStyle = null;
|
|
20
|
+
function paintTheme(theme) {
|
|
21
|
+
if (typeof document === 'undefined')
|
|
17
22
|
return;
|
|
23
|
+
if (!themeStyle?.isConnected) {
|
|
24
|
+
themeStyle = document.createElement('style');
|
|
25
|
+
themeStyle.dataset.bridgethingTheme = '';
|
|
26
|
+
const parent = document.head ?? document.documentElement;
|
|
27
|
+
parent.insertBefore(themeStyle, parent.firstChild);
|
|
18
28
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
themeStyle.textContent = theme ? THEME_DEFAULTS_CSS + themeCss(theme) : THEME_DEFAULTS_CSS;
|
|
30
|
+
}
|
|
31
|
+
function release(at) {
|
|
32
|
+
send({ id: nextId++, verb: 'release', epoch: at });
|
|
33
|
+
}
|
|
34
|
+
function retarget(context, next) {
|
|
35
|
+
if (next < epoch)
|
|
36
|
+
return;
|
|
37
|
+
const previous = known;
|
|
38
|
+
known = context;
|
|
39
|
+
if (next === epoch)
|
|
40
|
+
return;
|
|
41
|
+
const left = epoch;
|
|
42
|
+
epoch = next;
|
|
43
|
+
for (let at = left; at < next; at += 1)
|
|
44
|
+
if (!pins.has(at))
|
|
45
|
+
release(at);
|
|
46
|
+
if (context.theme)
|
|
47
|
+
paintTheme(context.theme);
|
|
48
|
+
for (const listener of contextListeners)
|
|
49
|
+
listener(context, previous);
|
|
50
|
+
}
|
|
51
|
+
function deliver(json) {
|
|
52
|
+
const message = decodeSettingsMessage(json);
|
|
53
|
+
if (!message)
|
|
54
|
+
return;
|
|
55
|
+
if ('event' in message) {
|
|
56
|
+
if (message.event === 'docChanged')
|
|
57
|
+
for (const listener of docListeners)
|
|
58
|
+
listener(message.key, message.value);
|
|
59
|
+
if (message.event === 'themeChanged') {
|
|
60
|
+
paintTheme(message.theme);
|
|
61
|
+
for (const listener of themeListeners)
|
|
62
|
+
listener(message.theme);
|
|
63
|
+
}
|
|
64
|
+
if (message.event === 'contextChanged')
|
|
65
|
+
retarget(message.context, message.epoch);
|
|
66
|
+
if (message.event === 'refresh') {
|
|
67
|
+
known = message.context;
|
|
68
|
+
if (message.context.theme)
|
|
69
|
+
paintTheme(message.context.theme);
|
|
70
|
+
for (const listener of refreshListeners)
|
|
71
|
+
listener(message.context);
|
|
72
|
+
}
|
|
73
|
+
if (message.event === 'progress')
|
|
74
|
+
pending.get(message.id)?.progress?.(message.sent, message.total);
|
|
22
75
|
return;
|
|
23
76
|
}
|
|
24
|
-
|
|
25
|
-
|
|
77
|
+
if (message.ok && message.epoch !== undefined)
|
|
78
|
+
retarget(message.value, message.epoch);
|
|
79
|
+
const entry = pending.get(message.id);
|
|
26
80
|
if (!entry)
|
|
27
81
|
return;
|
|
28
|
-
pending.delete(
|
|
82
|
+
pending.delete(message.id);
|
|
29
83
|
clearTimeout(entry.timer);
|
|
30
|
-
if (
|
|
31
|
-
entry.resolve(
|
|
84
|
+
if (message.ok)
|
|
85
|
+
entry.resolve(message.value);
|
|
32
86
|
else
|
|
33
|
-
entry.reject(new Error(
|
|
87
|
+
entry.reject(new Error(message.error));
|
|
34
88
|
}
|
|
35
|
-
function send(
|
|
89
|
+
function send(request) {
|
|
90
|
+
const json = JSON.stringify(request);
|
|
36
91
|
if (typeof window === 'undefined')
|
|
37
92
|
return false;
|
|
38
93
|
const webview = window.ReactNativeWebView;
|
|
@@ -55,16 +110,19 @@ if (typeof window !== 'undefined') {
|
|
|
55
110
|
deliver(event.data);
|
|
56
111
|
});
|
|
57
112
|
}
|
|
58
|
-
function call(verb, payload, timeoutMs = CALL_TIMEOUT_MS) {
|
|
113
|
+
function call(verb, payload, timeoutMs = CALL_TIMEOUT_MS, progress, at = epoch) {
|
|
59
114
|
const id = nextId++;
|
|
60
115
|
return new Promise((resolve, reject) => {
|
|
61
|
-
const timer =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
116
|
+
const timer = timeoutMs === null
|
|
117
|
+
? undefined
|
|
118
|
+
: setTimeout(() => {
|
|
119
|
+
if (pending.delete(id)) {
|
|
120
|
+
reject(new Error(`bridgething settings call '${verb}' timed out after ${timeoutMs}ms`));
|
|
121
|
+
}
|
|
122
|
+
}, timeoutMs);
|
|
123
|
+
pending.set(id, { resolve: resolve, reject, timer, progress });
|
|
66
124
|
try {
|
|
67
|
-
if (!send(
|
|
125
|
+
if (!send({ id, verb, payload, epoch: at }))
|
|
68
126
|
throw new Error(HOST_MISSING);
|
|
69
127
|
}
|
|
70
128
|
catch (err) {
|
|
@@ -82,6 +140,14 @@ export class SettingsFetchError extends Error {
|
|
|
82
140
|
this.name = 'SettingsFetchError';
|
|
83
141
|
}
|
|
84
142
|
}
|
|
143
|
+
export class BlobError extends Error {
|
|
144
|
+
kind;
|
|
145
|
+
constructor(kind, message) {
|
|
146
|
+
super(message);
|
|
147
|
+
this.kind = kind;
|
|
148
|
+
this.name = 'BlobError';
|
|
149
|
+
}
|
|
150
|
+
}
|
|
85
151
|
export class AuthorizeError extends Error {
|
|
86
152
|
kind;
|
|
87
153
|
constructor(kind, message) {
|
|
@@ -97,7 +163,7 @@ function token(message) {
|
|
|
97
163
|
return message.split(':', 1)[0].trim();
|
|
98
164
|
}
|
|
99
165
|
function hostLacksVerb(message) {
|
|
100
|
-
return message === HOST_MISSING || message.startsWith(
|
|
166
|
+
return message === HOST_MISSING || message.startsWith(UNKNOWN_VERB);
|
|
101
167
|
}
|
|
102
168
|
function fetchFailure(err) {
|
|
103
169
|
if (err instanceof SettingsFetchError)
|
|
@@ -123,6 +189,34 @@ function authorizeFailure(err) {
|
|
|
123
189
|
return new AuthorizeError(kind, message);
|
|
124
190
|
return err instanceof Error ? err : new Error(message);
|
|
125
191
|
}
|
|
192
|
+
const BLOB_KINDS = {
|
|
193
|
+
unsupported: 'unsupported',
|
|
194
|
+
not_connected: 'disconnected',
|
|
195
|
+
link_lost: 'disconnected',
|
|
196
|
+
too_large: 'too_large',
|
|
197
|
+
quota_exceeded: 'quota_exceeded',
|
|
198
|
+
storage_full: 'storage_full',
|
|
199
|
+
not_media: 'not_media',
|
|
200
|
+
unknown_handle: 'unknown_handle',
|
|
201
|
+
busy: 'busy',
|
|
202
|
+
no_gesture: 'no_gesture',
|
|
203
|
+
};
|
|
204
|
+
function blobFailure(err) {
|
|
205
|
+
if (err instanceof BlobError)
|
|
206
|
+
return err;
|
|
207
|
+
const message = reason(err);
|
|
208
|
+
if (hostLacksVerb(message))
|
|
209
|
+
return new BlobError('unsupported', message);
|
|
210
|
+
return new BlobError(BLOB_KINDS[token(message)] ?? 'failed', message);
|
|
211
|
+
}
|
|
212
|
+
async function blobCall(verb, payload, timeoutMs, progress) {
|
|
213
|
+
try {
|
|
214
|
+
return await call(verb, payload, timeoutMs, progress);
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
throw blobFailure(err);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
126
220
|
function decodeUtf8(bytes) {
|
|
127
221
|
try {
|
|
128
222
|
return new TextDecoder('utf-8', { fatal: true }).decode(bytes);
|
|
@@ -131,14 +225,6 @@ function decodeUtf8(bytes) {
|
|
|
131
225
|
return null;
|
|
132
226
|
}
|
|
133
227
|
}
|
|
134
|
-
function base64FromBytes(bytes) {
|
|
135
|
-
const chunk = 0x8000;
|
|
136
|
-
let binary = '';
|
|
137
|
-
for (let at = 0; at < bytes.length; at += chunk) {
|
|
138
|
-
binary += String.fromCharCode(...bytes.subarray(at, at + chunk));
|
|
139
|
-
}
|
|
140
|
-
return btoa(binary);
|
|
141
|
-
}
|
|
142
228
|
function bytesFromBase64(data) {
|
|
143
229
|
const binary = atob(data);
|
|
144
230
|
const bytes = new Uint8Array(new ArrayBuffer(binary.length));
|
|
@@ -189,22 +275,43 @@ async function toVerbRequest(input, init) {
|
|
|
189
275
|
verb.timeoutMs = init.timeoutMs;
|
|
190
276
|
return verb;
|
|
191
277
|
}
|
|
278
|
+
function configVerbs(at) {
|
|
279
|
+
return {
|
|
280
|
+
fields: () => call('config.fields', undefined, CALL_TIMEOUT_MS, undefined, at()),
|
|
281
|
+
list: () => call('config.list', undefined, CALL_TIMEOUT_MS, undefined, at()),
|
|
282
|
+
set: (key, value) => call('config.set', { key, value }, CALL_TIMEOUT_MS, undefined, at()),
|
|
283
|
+
delete: key => call('config.delete', { key }, CALL_TIMEOUT_MS, undefined, at()),
|
|
284
|
+
};
|
|
285
|
+
}
|
|
192
286
|
export const settings = {
|
|
193
|
-
context() {
|
|
194
|
-
|
|
287
|
+
async context() {
|
|
288
|
+
const context = await call('context', undefined);
|
|
289
|
+
if (context.theme)
|
|
290
|
+
paintTheme(context.theme);
|
|
291
|
+
return context;
|
|
195
292
|
},
|
|
196
293
|
config: {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
294
|
+
...configVerbs(() => epoch),
|
|
295
|
+
pin() {
|
|
296
|
+
const pinned = epoch;
|
|
297
|
+
pins.set(pinned, (pins.get(pinned) ?? 0) + 1);
|
|
298
|
+
let held = true;
|
|
299
|
+
return {
|
|
300
|
+
...configVerbs(() => pinned),
|
|
301
|
+
release() {
|
|
302
|
+
if (!held)
|
|
303
|
+
return;
|
|
304
|
+
held = false;
|
|
305
|
+
const left = (pins.get(pinned) ?? 1) - 1;
|
|
306
|
+
if (left > 0) {
|
|
307
|
+
pins.set(pinned, left);
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
pins.delete(pinned);
|
|
311
|
+
if (pinned < epoch)
|
|
312
|
+
release(pinned);
|
|
313
|
+
},
|
|
314
|
+
};
|
|
208
315
|
},
|
|
209
316
|
},
|
|
210
317
|
doc: {
|
|
@@ -212,7 +319,7 @@ export const settings = {
|
|
|
212
319
|
return call('doc.get', { key });
|
|
213
320
|
},
|
|
214
321
|
list() {
|
|
215
|
-
return call('doc.list');
|
|
322
|
+
return call('doc.list', undefined);
|
|
216
323
|
},
|
|
217
324
|
set(key, value) {
|
|
218
325
|
return call('doc.set', { key, value });
|
|
@@ -249,13 +356,74 @@ export const settings = {
|
|
|
249
356
|
}
|
|
250
357
|
},
|
|
251
358
|
},
|
|
359
|
+
pick(options) {
|
|
360
|
+
return blobCall('pick', options.cover ? { kind: options.kind, cover: options.cover } : { kind: options.kind }, null);
|
|
361
|
+
},
|
|
362
|
+
blob: {
|
|
363
|
+
async create(mime) {
|
|
364
|
+
return (await blobCall('blob.create', { mime })).handle;
|
|
365
|
+
},
|
|
366
|
+
async append(handle, data) {
|
|
367
|
+
let size = null;
|
|
368
|
+
for await (const chunk of blobChunks(data)) {
|
|
369
|
+
size = (await blobCall('blob.append', { handle, data: base64FromBytes(chunk) })).size;
|
|
370
|
+
}
|
|
371
|
+
return size ?? (await blobCall('blob.append', { handle, data: '' })).size;
|
|
372
|
+
},
|
|
373
|
+
put(key, handle, options = {}) {
|
|
374
|
+
return blobCall('blob.put', { key, handle }, null, options.onProgress);
|
|
375
|
+
},
|
|
376
|
+
async delete(key) {
|
|
377
|
+
await blobCall('blob.delete', { key });
|
|
378
|
+
},
|
|
379
|
+
list() {
|
|
380
|
+
return blobCall('blob.list', undefined);
|
|
381
|
+
},
|
|
382
|
+
},
|
|
252
383
|
onDocChanged(listener) {
|
|
253
384
|
docListeners.add(listener);
|
|
254
|
-
return () =>
|
|
385
|
+
return () => {
|
|
386
|
+
docListeners.delete(listener);
|
|
387
|
+
};
|
|
388
|
+
},
|
|
389
|
+
onThemeChanged(listener) {
|
|
390
|
+
themeListeners.add(listener);
|
|
391
|
+
return () => {
|
|
392
|
+
themeListeners.delete(listener);
|
|
393
|
+
};
|
|
394
|
+
},
|
|
395
|
+
onContextChanged(listener) {
|
|
396
|
+
contextListeners.add(listener);
|
|
397
|
+
return () => {
|
|
398
|
+
contextListeners.delete(listener);
|
|
399
|
+
};
|
|
400
|
+
},
|
|
401
|
+
onRefresh(listener) {
|
|
402
|
+
refreshListeners.add(listener);
|
|
403
|
+
return () => {
|
|
404
|
+
refreshListeners.delete(listener);
|
|
405
|
+
};
|
|
255
406
|
},
|
|
256
407
|
done() {
|
|
257
|
-
if (!send(
|
|
408
|
+
if (!send({ id: nextId++, verb: 'done', epoch }))
|
|
258
409
|
throw new Error(HOST_MISSING);
|
|
259
410
|
},
|
|
260
411
|
};
|
|
412
|
+
function reportHeight() {
|
|
413
|
+
if (typeof ResizeObserver === 'undefined')
|
|
414
|
+
return;
|
|
415
|
+
let reported = 0;
|
|
416
|
+
new ResizeObserver(() => {
|
|
417
|
+
const height = Math.ceil(document.documentElement.getBoundingClientRect().height);
|
|
418
|
+
if (height <= 0 || height === reported)
|
|
419
|
+
return;
|
|
420
|
+
reported = height;
|
|
421
|
+
send({ id: nextId++, verb: 'resize', payload: { height } });
|
|
422
|
+
}).observe(document.documentElement);
|
|
423
|
+
}
|
|
424
|
+
if (typeof document !== 'undefined') {
|
|
425
|
+
paintTheme(undefined);
|
|
426
|
+
reportHeight();
|
|
427
|
+
settings.context().catch(() => undefined);
|
|
428
|
+
}
|
|
261
429
|
//# sourceMappingURL=settings.js.map
|
package/dist/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type SettingsHost, type SettingsSession } from './settings-protocol.js';
|
|
2
|
+
type PageNode = {
|
|
3
|
+
textContent: string | null;
|
|
4
|
+
dispatchEvent(event: object): boolean;
|
|
5
|
+
click(): void;
|
|
6
|
+
};
|
|
7
|
+
export type SettingsPageWindow = {
|
|
8
|
+
readonly document: {
|
|
9
|
+
readonly body: {
|
|
10
|
+
readonly textContent: string | null;
|
|
11
|
+
appendChild(node: object): unknown;
|
|
12
|
+
};
|
|
13
|
+
write(html: string): void;
|
|
14
|
+
createElement(tag: 'script'): {
|
|
15
|
+
textContent: string | null;
|
|
16
|
+
};
|
|
17
|
+
querySelector(selector: string): object | null;
|
|
18
|
+
querySelectorAll(selector: 'button'): Iterable<PageNode>;
|
|
19
|
+
};
|
|
20
|
+
readonly Event: new (type: string, init: {
|
|
21
|
+
bubbles: boolean;
|
|
22
|
+
}) => object;
|
|
23
|
+
readonly happyDOM: {
|
|
24
|
+
close(): Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export type SettingsPageFrame<W extends SettingsPageWindow> = W & {
|
|
28
|
+
ReactNativeWebView?: {
|
|
29
|
+
postMessage: (json: string) => void;
|
|
30
|
+
};
|
|
31
|
+
__bridgethingSettingsDeliver?: (json: string) => void;
|
|
32
|
+
};
|
|
33
|
+
export type SettingsPageOptions<T> = {
|
|
34
|
+
target: T | null;
|
|
35
|
+
bind: (target: T) => SettingsHost;
|
|
36
|
+
};
|
|
37
|
+
export type SettingsPage<T, W extends SettingsPageWindow> = {
|
|
38
|
+
readonly frame: SettingsPageFrame<W>;
|
|
39
|
+
readonly session: SettingsSession<T>;
|
|
40
|
+
load(html: string): void;
|
|
41
|
+
text(): string;
|
|
42
|
+
until(ready: () => boolean): Promise<void>;
|
|
43
|
+
enter(selector: string, value: string): void;
|
|
44
|
+
press(label: string): void;
|
|
45
|
+
close(): Promise<void>;
|
|
46
|
+
};
|
|
47
|
+
export declare function settingsPage<T, W extends SettingsPageWindow>(window: W, options: SettingsPageOptions<T>): SettingsPage<T, W>;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEtG,KAAK,QAAQ,GAAG;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAAC;AAErG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;QAC3F,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG;YAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QAC7D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QAC/C,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC1D,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IACzE,QAAQ,CAAC,QAAQ,EAAE;QAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,IAAI,CAAC,GAAG;IAChE,kBAAkB,CAAC,EAAE;QAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IAC7D,4BAA4B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,YAAY,CAAA;CAAE,CAAC;AAE7F,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,kBAAkB,IAAI;IAC1D,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,MAAM,CAAC;IACf,KAAK,CAAC,KAAK,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAIF,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,kBAAkB,EAC1D,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAuCpB"}
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { openSettingsSession } from './settings-protocol.js';
|
|
2
|
+
const MODULE_SCRIPT = /<script type="module"[^>]*>([\s\S]*?)<\/script>/;
|
|
3
|
+
export function settingsPage(window, options) {
|
|
4
|
+
const frame = window;
|
|
5
|
+
const session = openSettingsSession({
|
|
6
|
+
...options,
|
|
7
|
+
deliver: message => frame.__bridgethingSettingsDeliver?.(JSON.stringify(message)),
|
|
8
|
+
});
|
|
9
|
+
frame.ReactNativeWebView = { postMessage: json => session.receive(json) };
|
|
10
|
+
return {
|
|
11
|
+
frame,
|
|
12
|
+
session,
|
|
13
|
+
load(html) {
|
|
14
|
+
const script = MODULE_SCRIPT.exec(html);
|
|
15
|
+
if (!script)
|
|
16
|
+
throw new Error('the settings page carries no inline module script');
|
|
17
|
+
frame.document.write(html.replace(script[0], ''));
|
|
18
|
+
const element = frame.document.createElement('script');
|
|
19
|
+
element.textContent = script[1];
|
|
20
|
+
frame.document.body.appendChild(element);
|
|
21
|
+
},
|
|
22
|
+
text: () => frame.document.body.textContent ?? '',
|
|
23
|
+
async until(ready) {
|
|
24
|
+
for (let i = 0; i < 50 && !ready(); i += 1) {
|
|
25
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
26
|
+
}
|
|
27
|
+
await new Promise(resolve => setTimeout(resolve, 20));
|
|
28
|
+
},
|
|
29
|
+
enter(selector, value) {
|
|
30
|
+
const field = frame.document.querySelector(selector);
|
|
31
|
+
if (!field)
|
|
32
|
+
throw new Error(`the page has no ${selector}`);
|
|
33
|
+
Reflect.set(Object.getPrototypeOf(field), 'value', value, field);
|
|
34
|
+
field.dispatchEvent(new frame.Event('input', { bubbles: true }));
|
|
35
|
+
},
|
|
36
|
+
press(label) {
|
|
37
|
+
const button = [...frame.document.querySelectorAll('button')].find(found => found.textContent?.trim() === label);
|
|
38
|
+
if (!button)
|
|
39
|
+
throw new Error(`the page has no ${label} button`);
|
|
40
|
+
button.click();
|
|
41
|
+
},
|
|
42
|
+
close: () => frame.happyDOM.close(),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type ThemeScheme = 'light' | 'dark';
|
|
2
|
+
export type ThemeColor = 'bg' | 'screen' | 'fg' | 'muted' | 'accent' | 'ok' | 'err' | 'warn' | 'experimental' | 'rule' | 'ruleStrong' | 'edge' | 'dim' | 'soft' | 'near' | 'neutralSoft' | 'accentSoft' | 'okSoft' | 'errSoft' | 'warnSoft' | 'experimentalSoft' | 'scrim';
|
|
3
|
+
export type ThemeFont = 'display' | 'body' | 'mono';
|
|
4
|
+
export type ThemeText = 'eyebrow' | 'hint' | 'body' | 'row' | 'rowLg' | 'title' | 'hero' | 'screenTitle';
|
|
5
|
+
export type ThemeDefaults = {
|
|
6
|
+
colors: Record<ThemeScheme, Record<ThemeColor, string>>;
|
|
7
|
+
fonts: Record<ThemeFont, string>;
|
|
8
|
+
text: Record<ThemeText, number>;
|
|
9
|
+
};
|
|
10
|
+
export declare const THEME_DEFAULTS: ThemeDefaults;
|
|
11
|
+
export type ThemeGroup = 'color' | 'font' | 'text';
|
|
12
|
+
export type Theme = {
|
|
13
|
+
scheme: ThemeScheme;
|
|
14
|
+
colors: Record<ThemeColor, string>;
|
|
15
|
+
text: Record<ThemeText, number>;
|
|
16
|
+
fonts: Record<ThemeFont, string>;
|
|
17
|
+
};
|
|
18
|
+
export declare function themeToken(group: ThemeGroup, token: string): string;
|
|
19
|
+
export declare function themeVariable(group: ThemeGroup, token: string): string;
|
|
20
|
+
export declare const THEME_DEFAULTS_CSS: string;
|
|
21
|
+
export declare function themeCss(theme: Theme): string;
|
|
22
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,QAAQ,GACR,IAAI,GACJ,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,MAAM,GACN,cAAc,GACd,MAAM,GACN,YAAY,GACZ,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,GACN,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,UAAU,GACV,kBAAkB,GAClB,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;AAEzG,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAkE5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAMF,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtE;AAcD,eAAO,MAAM,kBAAkB,QAEsE,CAAC;AAEtG,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE7C"}
|
package/dist/theme.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export const THEME_DEFAULTS = {
|
|
2
|
+
colors: {
|
|
3
|
+
dark: {
|
|
4
|
+
bg: '#0a0c0e',
|
|
5
|
+
screen: '#060809',
|
|
6
|
+
fg: '#efefef',
|
|
7
|
+
muted: '#a7adb5',
|
|
8
|
+
accent: '#00a8e8',
|
|
9
|
+
ok: '#3ddc84',
|
|
10
|
+
err: '#dc3d3d',
|
|
11
|
+
warn: '#ff7070',
|
|
12
|
+
experimental: '#ffb066',
|
|
13
|
+
rule: 'rgba(239, 239, 239, 0.1)',
|
|
14
|
+
ruleStrong: 'rgba(239, 239, 239, 0.15)',
|
|
15
|
+
edge: 'rgba(239, 239, 239, 0.25)',
|
|
16
|
+
dim: 'rgba(239, 239, 239, 0.35)',
|
|
17
|
+
soft: 'rgba(239, 239, 239, 0.55)',
|
|
18
|
+
near: 'rgba(239, 239, 239, 0.8)',
|
|
19
|
+
neutralSoft: 'rgba(239, 239, 239, 0.08)',
|
|
20
|
+
accentSoft: 'rgba(0, 168, 232, 0.14)',
|
|
21
|
+
okSoft: 'rgba(61, 220, 132, 0.14)',
|
|
22
|
+
errSoft: 'rgba(220, 61, 61, 0.14)',
|
|
23
|
+
warnSoft: 'rgba(255, 112, 112, 0.14)',
|
|
24
|
+
experimentalSoft: 'rgba(255, 176, 102, 0.14)',
|
|
25
|
+
scrim: 'rgba(0, 0, 0, 0.55)',
|
|
26
|
+
},
|
|
27
|
+
light: {
|
|
28
|
+
bg: '#f2f4f6',
|
|
29
|
+
screen: '#ffffff',
|
|
30
|
+
fg: '#0a0c0e',
|
|
31
|
+
muted: '#5c6670',
|
|
32
|
+
accent: '#0072a3',
|
|
33
|
+
ok: '#106e3f',
|
|
34
|
+
err: '#b93030',
|
|
35
|
+
warn: '#a34848',
|
|
36
|
+
experimental: '#8a5210',
|
|
37
|
+
rule: 'rgba(10, 12, 14, 0.1)',
|
|
38
|
+
ruleStrong: 'rgba(10, 12, 14, 0.15)',
|
|
39
|
+
edge: 'rgba(10, 12, 14, 0.25)',
|
|
40
|
+
dim: 'rgba(10, 12, 14, 0.35)',
|
|
41
|
+
soft: 'rgba(10, 12, 14, 0.55)',
|
|
42
|
+
near: 'rgba(10, 12, 14, 0.8)',
|
|
43
|
+
neutralSoft: 'rgba(10, 12, 14, 0.06)',
|
|
44
|
+
accentSoft: 'rgba(0, 114, 163, 0.12)',
|
|
45
|
+
okSoft: 'rgba(16, 110, 63, 0.12)',
|
|
46
|
+
errSoft: 'rgba(185, 48, 48, 0.12)',
|
|
47
|
+
warnSoft: 'rgba(163, 72, 72, 0.12)',
|
|
48
|
+
experimentalSoft: 'rgba(138, 82, 16, 0.12)',
|
|
49
|
+
scrim: 'rgba(0, 0, 0, 0.55)',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
fonts: {
|
|
53
|
+
display: "'Outfit', system-ui, sans-serif",
|
|
54
|
+
body: "'Inter', system-ui, sans-serif",
|
|
55
|
+
mono: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
|
|
56
|
+
},
|
|
57
|
+
text: {
|
|
58
|
+
eyebrow: 11,
|
|
59
|
+
hint: 12,
|
|
60
|
+
body: 14,
|
|
61
|
+
row: 15,
|
|
62
|
+
rowLg: 17,
|
|
63
|
+
title: 20,
|
|
64
|
+
hero: 22,
|
|
65
|
+
screenTitle: 34,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
function kebab(token) {
|
|
69
|
+
return token.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
|
|
70
|
+
}
|
|
71
|
+
export function themeToken(group, token) {
|
|
72
|
+
return `${group}-${kebab(token)}`;
|
|
73
|
+
}
|
|
74
|
+
export function themeVariable(group, token) {
|
|
75
|
+
return `--bt-${themeToken(group, token)}`;
|
|
76
|
+
}
|
|
77
|
+
function declarations(colors, type) {
|
|
78
|
+
const lines = Object.entries(colors).map(([token, value]) => `${themeVariable('color', token)}:${value};`);
|
|
79
|
+
if (type) {
|
|
80
|
+
for (const [token, value] of Object.entries(type.fonts))
|
|
81
|
+
lines.push(`${themeVariable('font', token)}:${value};`);
|
|
82
|
+
for (const [token, value] of Object.entries(type.text))
|
|
83
|
+
lines.push(`${themeVariable('text', token)}:${value}px;`);
|
|
84
|
+
}
|
|
85
|
+
return lines.join('');
|
|
86
|
+
}
|
|
87
|
+
export const THEME_DEFAULTS_CSS = `:where(:root){--bt-scheme:light dark;${declarations(THEME_DEFAULTS.colors.dark, THEME_DEFAULTS)}}` +
|
|
88
|
+
`@media (prefers-color-scheme: light){:where(:root){${declarations(THEME_DEFAULTS.colors.light)}}}`;
|
|
89
|
+
export function themeCss(theme) {
|
|
90
|
+
return `:where(:root){--bt-scheme:${theme.scheme};${declarations(theme.colors, theme)}}`;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|