@adminiumjs/public-client 0.3.0-rc.4 → 0.3.1

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/index.d.ts CHANGED
@@ -31,8 +31,16 @@
31
31
  * resource and a forbidden one answer identically — so do not build UI that
32
32
  * tries to tell those apart.
33
33
  */
34
- export declare const PUBLIC_ERROR_CODES: readonly ["PUBLIC_API_DISABLED", "PUBLIC_KEY_INVALID", "PUBLIC_REF_NOT_FOUND", "PUBLIC_ACTION_NOT_ALLOWED", "PUBLIC_QUERY_REFUSED", "PUBLIC_RATE_LIMITED", "PUBLIC_ORIGIN_REFUSED", "PUBLIC_CLAIM_NO_MATCH", "PUBLIC_CLAIM_UNAVAILABLE", "PUBLIC_WRITE_REFUSED", "PUBLIC_WRITE_REJECTED", "PUBLIC_SLOT_FULL", "PUBLIC_SLOT_BUSY", "PUBLIC_TOO_LATE", "PUBLIC_UPSTREAM_UNAVAILABLE", "APP_DISABLED", "SURFACE_OFF", "PUBLIC_NETWORK_UNAVAILABLE"];
34
+ export declare const PUBLIC_ERROR_CODES: readonly ["PUBLIC_API_DISABLED", "PUBLIC_KEY_INVALID", "PUBLIC_REF_NOT_FOUND", "PUBLIC_ACTION_NOT_ALLOWED", "PUBLIC_QUERY_REFUSED", "PUBLIC_RATE_LIMITED", "PUBLIC_ORIGIN_REFUSED", "PUBLIC_CLAIM_NO_MATCH", "PUBLIC_CLAIM_UNAVAILABLE", "PUBLIC_WRITE_REFUSED", "PUBLIC_WRITE_REJECTED", "PUBLIC_SLOT_FULL", "PUBLIC_SLOT_BUSY", "PUBLIC_TOO_LATE", "PUBLIC_TOO_EARLY", "PUBLIC_CLAIM_LEVEL", "PUBLIC_LIMIT_REACHED", "PUBLIC_SWITCHED_OFF", "PUBLIC_STAFF_REQUIRED", "PUBLIC_KEY_OFF", "PUBLIC_CLAIM_NO_EMAIL", "PUBLIC_CLAIM_LOCKED", "PUBLIC_CODE_TOO_SOON", "PUBLIC_CODE_LIMIT", "PUBLIC_CODE_LOCKED", "PUBLIC_CODE_WRONG", "PUBLIC_CODE_EXPIRED", "PUBLIC_CODE_UNAVAILABLE", "PUBLIC_CODE_STEP_UP", "PUBLIC_EMAIL_CHANGE_LIMIT", "PUBLIC_PROOF_REQUIRED", "PUBLIC_UPSTREAM_UNAVAILABLE", "APP_DISABLED", "SURFACE_OFF", "LINK_EXPIRED", "PUBLIC_NETWORK_UNAVAILABLE"];
35
35
  export type PublicErrorCode = (typeof PUBLIC_ERROR_CODES)[number];
36
+ /**
37
+ * What a `PUBLIC_TOO_EARLY` refusal carries, as instants (ISO strings): the
38
+ * row's own time, and the moment the change will be taken.
39
+ */
40
+ export interface PublicTooEarly {
41
+ at: string;
42
+ from: string;
43
+ }
36
44
  /**
37
45
  * A failed request.
38
46
  *
@@ -44,8 +52,14 @@ export type PublicErrorCode = (typeof PUBLIC_ERROR_CODES)[number];
44
52
  export declare class PublicApiError extends Error {
45
53
  readonly code: PublicErrorCode;
46
54
  readonly status: number;
55
+ /**
56
+ * How long to wait before asking again: the `Retry-After` header on a rate
57
+ * limit, or the reply's own `retryAfter` on a code asked for too soon.
58
+ */
47
59
  readonly retryAfterSeconds: number | null;
48
- constructor(code: PublicErrorCode, status: number, message: string, retryAfterSeconds?: number);
60
+ /** What the server said beside the code — `triesLeft`, `retryAfter`. Empty when it said nothing. */
61
+ readonly params: Readonly<Record<string, unknown>>;
62
+ constructor(code: PublicErrorCode, status: number, message: string, retryAfterSeconds?: number, params?: Record<string, unknown>);
49
63
  /**
50
64
  * True when retrying later could plausibly work.
51
65
  *
@@ -56,6 +70,14 @@ export declare class PublicApiError extends Error {
56
70
  get isTransient(): boolean;
57
71
  /** True when the surface is off — the signal to fall back to demo content. */
58
72
  get isDisabled(): boolean;
73
+ /**
74
+ * True when the session found the person but this needs them VERIFIED: ask
75
+ * for the emailed code (`requestCode`), or — on an app that signs people in
76
+ * by link — sign in again by link.
77
+ */
78
+ get needsVerifiedSession(): boolean;
79
+ /** On a `PUBLIC_TOO_EARLY` refusal, the times it carries; null on any other. */
80
+ get tooEarly(): PublicTooEarly | null;
59
81
  }
60
82
  export type PublicSide = 'staff' | 'customer';
61
83
  /**
@@ -83,6 +105,8 @@ export interface PublicRefConfig {
83
105
  response?: {
84
106
  shape: PublicResponseShape;
85
107
  };
108
+ /** Present on an availability ref: ask `availability` or `bookingTimes`, never `list`. */
109
+ kind?: 'availability';
86
110
  }
87
111
  export interface PublicConfig {
88
112
  version: 1;
@@ -97,9 +121,19 @@ export interface PublicConfig {
97
121
  */
98
122
  currency: string | null;
99
123
  claim: {
100
- strategy: 'lookup' | 'email-code' | 'external';
124
+ /**
125
+ * `email-link`: the person asks for a link by address (`requestLink`), and
126
+ * nothing else signs them in. `token`: a shared link opens one row
127
+ * (`openShared`). `lookup` finds a person by their details (`claim`).
128
+ */
129
+ strategy: 'lookup' | 'email-code' | 'external' | 'email-link' | 'token';
101
130
  ref: string;
102
131
  match: string[];
132
+ /**
133
+ * `email-code`: a found session can be raised to `verified` by a code
134
+ * emailed to the person. `email-link`: sessions come only from a link.
135
+ */
136
+ verify?: 'email-code' | 'email-link';
103
137
  } | null;
104
138
  /**
105
139
  * Whether this key may ask for a document to be drawn.
@@ -153,6 +187,106 @@ export interface PublicClientOptions {
153
187
  publishableKey: string;
154
188
  /** Injectable for tests; `globalThis.fetch` otherwise. */
155
189
  fetch?: typeof fetch;
190
+ /**
191
+ * The human check on `create` and `claim`.
192
+ *
193
+ * Absent, the client answers the server: it sends without a proof and, when
194
+ * refused for want of one, solves a challenge and sends again. `true` solves
195
+ * one before every create and claim — a page that knows its refs ask saves
196
+ * the refused round trip. `false` never solves one, and the refusal reaches
197
+ * the page as `PUBLIC_PROOF_REQUIRED`. The object form names what is known
198
+ * to ask, and answers the server for the rest.
199
+ */
200
+ humanCheck?: boolean | {
201
+ refs?: readonly string[];
202
+ claim?: boolean;
203
+ };
204
+ /**
205
+ * The signed-in staff member's CSRF token, for a key bound to staff (a
206
+ * kiosk). Sent on every write, never on a read.
207
+ *
208
+ * A kiosk page reads both halves from its staff `surface-config.json`: the
209
+ * token from `csrfToken`, and the key from `publicKeys[purpose]` as
210
+ * `publishableKey`. A getter is read on each request, so a token that
211
+ * changes with a new sign-in is picked up without a new client.
212
+ *
213
+ * The key's other condition is the staff cookie, which a same-origin fetch
214
+ * sends by default: this client never sets `credentials`, and must not.
215
+ */
216
+ csrfToken?: string | (() => string | null | undefined);
217
+ }
218
+ /** How far a claim session reaches: `lookup` found the person, `verified` proved their mailbox. */
219
+ export type ClaimLevel = 'lookup' | 'verified';
220
+ /** The claim session a client holds, without its token. */
221
+ export interface PublicSession {
222
+ level: ClaimLevel;
223
+ /** Epoch ms. */
224
+ expiresAt: number;
225
+ }
226
+ /** A day of a strip of days, as a booking availability ref answers it. */
227
+ export interface DayAvailability {
228
+ /** `YYYY-MM-DD` on the tenant's calendar. */
229
+ date: string;
230
+ /** How many of the day's times are free. */
231
+ open: number;
232
+ state: 'open' | 'full' | 'closed';
233
+ }
234
+ /** What a booking availability read asks, whichever form. */
235
+ export interface BookingQuery {
236
+ /** The kind of visit — its key, as the table knows it. */
237
+ kind: string;
238
+ /** One person's key, or `any` (the default). */
239
+ resource?: string;
240
+ /**
241
+ * The id of a row this session reaches — the visit being moved — so its
242
+ * own time is not counted against it. Ignored for a row the session cannot
243
+ * read, so it tells a stranger nothing.
244
+ */
245
+ exclude?: string;
246
+ }
247
+ /**
248
+ * What `requestCode` asks for. `verify` goes to the address the person
249
+ * already has; `email-change` goes to the NEW address, and needs a verified
250
+ * session that confirmed a code in the last few minutes.
251
+ */
252
+ export type CodeRequest = {
253
+ purpose: 'verify';
254
+ } | {
255
+ purpose: 'email-change';
256
+ email: string;
257
+ };
258
+ /** A code is on its way. */
259
+ export interface CodeSent {
260
+ /** The address, masked (`l•••@e•••.com`): show it so the person knows where to look. */
261
+ sentTo: string;
262
+ /** Seconds before another code may be asked for. */
263
+ resendAfter: number;
264
+ /** Epoch ms after which this code no longer works. */
265
+ expiresAt: number;
266
+ }
267
+ /**
268
+ * The answer to a typed-back code.
269
+ *
270
+ * A wrong code is an ordinary outcome, like a claim that does not match, so it
271
+ * is a result rather than an exception. `ended` is true after an address
272
+ * change: every session of that person ends, this one too, and the client has
273
+ * already dropped it — the page asks them to find themselves again.
274
+ */
275
+ export type VerifyCodeResult = {
276
+ ok: true;
277
+ level: ClaimLevel;
278
+ expiresAt: number;
279
+ ended: boolean;
280
+ email?: string;
281
+ } | {
282
+ ok: false;
283
+ triesLeft: number;
284
+ };
285
+ /** A created row, and where it stands when the endpoint ranks ("you are 3rd on the list"). */
286
+ export interface Created<T = Row> {
287
+ data: T;
288
+ /** Null when the endpoint does not rank. */
289
+ rank: number | null;
156
290
  }
157
291
  /** One drawn document, as a claimed visitor may see it. */
158
292
  export interface PublicDocument {
@@ -171,9 +305,46 @@ export interface PublicDocument {
171
305
  createdAt: number;
172
306
  hasContent: boolean;
173
307
  }
308
+ /** Which documents to list, newest first: one row's, one kind, a page at a time. */
309
+ export interface DocumentListOptions {
310
+ /** With `id`: only the documents of that row of that ref. */
311
+ ref?: string;
312
+ id?: string | number;
313
+ kind?: string;
314
+ /** 1–100; the server's 50 when absent. */
315
+ limit?: number;
316
+ /** The `next` of the page before. */
317
+ cursor?: string;
318
+ signal?: AbortSignal;
319
+ }
320
+ /** A page of documents, and the cursor to the next — null on the last. */
321
+ export interface DocumentPage {
322
+ data: PublicDocument[];
323
+ next: string | null;
324
+ }
325
+ /**
326
+ * A document drawn from a row the claim reaches, named by the KIND the key's
327
+ * entry declares (an app's key). A statement names its period in one of three
328
+ * words — never dates, which the server works out.
329
+ */
330
+ export interface RenderForRow {
331
+ kind: string;
332
+ ref: string;
333
+ id: string | number;
334
+ period?: 'all' | 'year' | '12m';
335
+ locale?: string;
336
+ }
174
337
  export interface PublicDocuments {
175
- /** Every document this claim reaches. Empty without a claim, never an error. */
176
- list: (signal?: AbortSignal) => Promise<PublicDocument[]>;
338
+ /**
339
+ * The documents this claim reaches. With no argument (or a signal), the
340
+ * first page as an array — as before; with options, a {@link DocumentPage}
341
+ * whose `next` asks for the following one. Empty without a claim, never an
342
+ * error.
343
+ */
344
+ list: {
345
+ (signal?: AbortSignal): Promise<PublicDocument[]>;
346
+ (options: DocumentListOptions): Promise<DocumentPage>;
347
+ };
177
348
  get: (id: string, signal?: AbortSignal) => Promise<PublicDocument>;
178
349
  /**
179
350
  * Ask for one to be drawn — from a row this claim reaches, or from values.
@@ -187,12 +358,14 @@ export interface PublicDocuments {
187
358
  ref: string;
188
359
  id: string | number;
189
360
  locale?: string;
190
- } | {
361
+ } | RenderForRow | {
191
362
  kind: string;
192
363
  locale?: string;
193
364
  fields: Record<string, unknown>;
194
365
  collections: Record<string, Record<string, unknown>[]>;
195
- }) => Promise<PublicDocument>;
366
+ }) => Promise<PublicDocument & {
367
+ reused: boolean;
368
+ }>;
196
369
  /**
197
370
  * Send a copy to the address this session was claimed with.
198
371
  *
@@ -210,12 +383,37 @@ export interface SlotAvailability {
210
383
  time: string;
211
384
  state: 'free' | 'full';
212
385
  }
386
+ /** A sign-in link's email is on its way — to the address typed, if it is anyone's. */
387
+ export interface LinkRequested {
388
+ /** The address as typed, masked (`l•••@e•••.com`). The same answer for any address. */
389
+ sentTo: string;
390
+ }
391
+ /**
392
+ * What a sign-in link's page reads from `location.hash`: the token, and where
393
+ * to go once signed in — a path under the app, never a URL.
394
+ */
395
+ export interface LinkFragment {
396
+ token: string;
397
+ to: string | null;
398
+ }
399
+ /** A file of a row this session reaches, as downloaded. */
400
+ export interface PrivateFile {
401
+ blob: Blob;
402
+ filename: string | null;
403
+ /** An image or a PDF the page may draw; anything else is a download. */
404
+ inline: boolean;
405
+ }
213
406
  export interface PublicClient {
214
407
  /** The scope, fetched once and cached. */
215
408
  config: () => Promise<PublicConfig>;
216
409
  list: <T = Row>(ref: string, options?: ListOptions) => Promise<ListResult<T>>;
217
410
  get: <T = Row>(ref: string, id: string, signal?: AbortSignal) => Promise<T>;
218
411
  create: <T = Row>(ref: string, values: Row) => Promise<T>;
412
+ /**
413
+ * `create`, with where the new row stands. Its own verb so that `create`
414
+ * keeps answering the bare row every app already reads.
415
+ */
416
+ createWithRank: <T = Row>(ref: string, values: Row) => Promise<Created<T>>;
219
417
  update: <T = Row>(ref: string, id: string, values: Row) => Promise<T>;
220
418
  /**
221
419
  * Replace the row's writable columns — every one of them must be present (a
@@ -237,11 +435,84 @@ export interface PublicClient {
237
435
  * visitor's own booking is not counted against them.
238
436
  */
239
437
  availability: (ref: string, day: string, party: number, signal?: AbortSignal) => Promise<SlotAvailability[]>;
438
+ /**
439
+ * The times of one day, from an availability ref on a BOOKING table (a
440
+ * clinic): a kind of visit, with one person or anyone.
441
+ */
442
+ bookingTimes: (ref: string, query: BookingQuery & {
443
+ date: string;
444
+ }, signal?: AbortSignal) => Promise<SlotAvailability[]>;
445
+ /** A strip of up to 31 days from `from`, each open, full or closed, from the same ref. */
446
+ bookingDays: (ref: string, query: BookingQuery & {
447
+ from: string;
448
+ days: number;
449
+ }, signal?: AbortSignal) => Promise<DayAvailability[]>;
240
450
  /** Identify the visitor. Returns false when the details did not match. */
241
451
  claim: (match: Record<string, unknown>) => Promise<boolean>;
452
+ /** Email the claimed person a code — to raise the session, or to confirm a new address. */
453
+ requestCode: (request: CodeRequest) => Promise<CodeSent>;
454
+ /**
455
+ * Type the code back. On success the session the client holds takes the new
456
+ * level and expiry; after an address change it is dropped (see
457
+ * {@link VerifyCodeResult}).
458
+ */
459
+ verifyCode: (input: {
460
+ purpose?: CodeRequest['purpose'];
461
+ code: string;
462
+ }) => Promise<VerifyCodeResult>;
463
+ /**
464
+ * Email a sign-in link (and a code for another device) to an address.
465
+ * Answers the same for every address — whether it is a client's is never
466
+ * said. Throws `PUBLIC_CODE_UNAVAILABLE` when this server cannot send mail.
467
+ */
468
+ requestLink: (input: {
469
+ email: string;
470
+ lang?: string;
471
+ }) => Promise<LinkRequested>;
472
+ /**
473
+ * The first name a link's page greets its person by, spending nothing; null
474
+ * for a link used, expired or taken back. Reading it signs nobody in.
475
+ */
476
+ peekLink: (token: string) => Promise<string | null>;
477
+ /**
478
+ * Continue: use the link, once, and hold a VERIFIED session. False for a
479
+ * link used, expired or taken back — offer "Email me a new link".
480
+ */
481
+ openLink: (token: string) => Promise<boolean>;
482
+ /**
483
+ * The code from the email, typed on another device. A wrong code is an
484
+ * ordinary result, with the tries left; a code path locked for the day
485
+ * throws `PUBLIC_CLAIM_LOCKED` (the link in the email still works).
486
+ */
487
+ verifyLinkCode: (input: {
488
+ email: string;
489
+ code: string;
490
+ }) => Promise<VerifyCodeResult>;
491
+ /** "Email me a new link", from an old one: to that link's own address, always the same answer. */
492
+ resendLink: (token: string) => Promise<void>;
493
+ /**
494
+ * Open a row shared by link with the code from its fragment: `opened` holds
495
+ * a session on it, `unknown` is a code that opens nothing, `closed` a link
496
+ * stopped or expired.
497
+ */
498
+ openShared: (token: string) => Promise<'opened' | 'unknown' | 'closed'>;
499
+ /**
500
+ * A file a row of this session names, by the ref, the row's id and the
501
+ * column the key offers for download. Fetched with the session, so it is
502
+ * handed back as a Blob — a plain link would carry neither the key nor the
503
+ * session.
504
+ */
505
+ file: (ref: string, id: string | number, column: string, signal?: AbortSignal) => Promise<PrivateFile>;
506
+ /**
507
+ * The settings an add-on the app needs marks for a browser (payment
508
+ * instructions), for a VERIFIED session; `PUBLIC_REF_NOT_FOUND` otherwise.
509
+ */
510
+ addOnSettings: (key: string, signal?: AbortSignal) => Promise<Record<string, unknown>>;
242
511
  signOut: () => Promise<void>;
243
512
  /** Is a claim session currently held? */
244
513
  isClaimed: () => boolean;
514
+ /** The claim session held, or null. */
515
+ session: () => PublicSession | null;
245
516
  /**
246
517
  * The documents this visitor may see and ask for.
247
518
  *
@@ -261,6 +532,14 @@ export interface PublicClient {
261
532
  */
262
533
  assertRefs: (required: Record<string, string[]>) => Promise<void>;
263
534
  }
535
+ /**
536
+ * A sign-in link's (or a shared link's) fragment — `#<token>` or
537
+ * `#<token>&to=<path>` — as its page reads `location.hash`. `to` is kept only
538
+ * when it is a plain path under the app (letters, digits, `-._~/`), never a
539
+ * URL: a page must not send a person off-site from a link it did not make.
540
+ * Null when the fragment holds no token.
541
+ */
542
+ export declare function linkFromFragment(hash: string): LinkFragment | null;
264
543
  /**
265
544
  * Build a client, or `null` when this build has no server to talk to.
266
545
  *
@@ -307,4 +586,35 @@ export declare function fromTenantLocal(day: string, minutes: number, timezone:
307
586
  */
308
587
  export declare function formatTenantMoney(value: string | number, currency: string | null, locale?: string): string;
309
588
  export declare function isCanonicalTimeZone(timezone: string): boolean;
589
+ /** What a proof is asked for: a create, or a claim. */
590
+ export type ProofPurpose = 'write' | 'claim';
591
+ /** A challenge, as `GET /public/challenge` hands it out. */
592
+ export interface ProofChallenge {
593
+ /** Sent back as `x-adminium-proof: <id>.<nonce>`. */
594
+ id: string;
595
+ salt: string;
596
+ /** Leading zero bits `sha256(salt + nonce)` must start with. */
597
+ difficulty: number;
598
+ /** Epoch ms. Two minutes after it was handed out. */
599
+ expiresAt: number;
600
+ }
601
+ /** SHA-256 of a string (as UTF-8) or of bytes, synchronously. */
602
+ export declare const sha256: (input: string | Uint8Array) => Uint8Array;
603
+ /** How many zero bits a hash starts with. */
604
+ export declare const leadingZeroBits: (bytes: Uint8Array) => number;
605
+ /**
606
+ * What the worker runs: the kernel, rebuilt from its own text, searching from
607
+ * zero until it finds a nonce. Built as a string so that no bundler has to be
608
+ * told about a worker file.
609
+ */
610
+ export declare function proofWorkerSource(): string;
611
+ /**
612
+ * Find the nonce a challenge asks for.
613
+ *
614
+ * In a Web Worker where there is one, so the page stays responsive through
615
+ * the second a cheap phone spends on it. Where there is none — a test, a
616
+ * server render, a CSP that refuses `blob:` workers — on this thread, in
617
+ * small chunks that yield between them, so a click still lands meanwhile.
618
+ */
619
+ export declare function solveChallenge(challenge: ProofChallenge): Promise<string>;
310
620
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -57,6 +57,54 @@ export const PUBLIC_ERROR_CODES = [
57
57
  'PUBLIC_SLOT_BUSY',
58
58
  /** Too close to the time to cancel online; the venue still can. */
59
59
  'PUBLIC_TOO_LATE',
60
+ /**
61
+ * Too early for this change — a kiosk check-in more than an hour before the
62
+ * visit (409). `error.tooEarly` holds the row's time and when the window
63
+ * opens; say them in the venue's zone (`toTenantMinutes`).
64
+ */
65
+ 'PUBLIC_TOO_EARLY',
66
+ /**
67
+ * The resource needs a VERIFIED session and this one only found the person
68
+ * (403): ask for the emailed code with `requestCode`, then `verifyCode`.
69
+ */
70
+ 'PUBLIC_CLAIM_LEVEL',
71
+ /** The signed-in person already holds as many open rows here as the app allows (409). */
72
+ 'PUBLIC_LIMIT_REACHED',
73
+ /** The app switched this off in its own settings — online booking, say (403). */
74
+ 'PUBLIC_SWITCHED_OFF',
75
+ /**
76
+ * A kiosk's key used without its staff member signed in on this screen
77
+ * (403). One code for every reason, so do not try to tell them apart.
78
+ */
79
+ 'PUBLIC_STAFF_REQUIRED',
80
+ /** The app switched this key off — the kiosk switch (503). */
81
+ 'PUBLIC_KEY_OFF',
82
+ /** The person has no address a code could go to (409): send them to the desk. */
83
+ 'PUBLIC_CLAIM_NO_EMAIL',
84
+ /** Too many wrong codes for this person today (403); the desk can lift it. */
85
+ 'PUBLIC_CLAIM_LOCKED',
86
+ /** A code was sent a moment ago (429); `retryAfterSeconds` says how long to wait. */
87
+ 'PUBLIC_CODE_TOO_SOON',
88
+ /** This session has asked for as many codes as it may (429). */
89
+ 'PUBLIC_CODE_LIMIT',
90
+ /** The last code died of wrong tries and this session waits (429, `retryAfterSeconds`). */
91
+ 'PUBLIC_CODE_LOCKED',
92
+ /** That code is not right (403). `verifyCode` answers it as a result, with the tries left. */
93
+ 'PUBLIC_CODE_WRONG',
94
+ /** No code is open for this session: it expired, was used or was replaced (410). */
95
+ 'PUBLIC_CODE_EXPIRED',
96
+ /** No code can be sent from this server right now (503). */
97
+ 'PUBLIC_CODE_UNAVAILABLE',
98
+ /** Changing the address needs a code confirmed in the last few minutes (403). */
99
+ 'PUBLIC_CODE_STEP_UP',
100
+ /** The address was changed today already (429). */
101
+ 'PUBLIC_EMAIL_CHANGE_LIMIT',
102
+ /**
103
+ * The human check is missing, wrong, expired or already used (403). The
104
+ * client answers it itself on `create` and `claim` — once — so a page only
105
+ * sees it when a fresh proof was refused too.
106
+ */
107
+ 'PUBLIC_PROOF_REQUIRED',
60
108
  'PUBLIC_UPSTREAM_UNAVAILABLE',
61
109
  /**
62
110
  * The app that made this key at install is switched off (503), or its
@@ -65,6 +113,11 @@ export const PUBLIC_ERROR_CODES = [
65
113
  */
66
114
  'APP_DISABLED',
67
115
  'SURFACE_OFF',
116
+ /**
117
+ * A sign-in link (or a shared link) that cannot open anything any more: used,
118
+ * expired, stopped or taken back (410). Offer "Email me a new link".
119
+ */
120
+ 'LINK_EXPIRED',
68
121
  /** Not from the server: the network never answered. */
69
122
  'PUBLIC_NETWORK_UNAVAILABLE',
70
123
  ];
@@ -79,13 +132,21 @@ export const PUBLIC_ERROR_CODES = [
79
132
  export class PublicApiError extends Error {
80
133
  code;
81
134
  status;
135
+ /**
136
+ * How long to wait before asking again: the `Retry-After` header on a rate
137
+ * limit, or the reply's own `retryAfter` on a code asked for too soon.
138
+ */
82
139
  retryAfterSeconds;
83
- constructor(code, status, message, retryAfterSeconds) {
140
+ /** What the server said beside the code — `triesLeft`, `retryAfter`. Empty when it said nothing. */
141
+ params;
142
+ constructor(code, status, message, retryAfterSeconds, params) {
84
143
  super(message);
85
144
  this.name = 'PublicApiError';
86
145
  this.code = code;
87
146
  this.status = status;
88
- this.retryAfterSeconds = retryAfterSeconds ?? null;
147
+ this.params = params ?? {};
148
+ const told = this.params['retryAfter'];
149
+ this.retryAfterSeconds = retryAfterSeconds ?? (typeof told === 'number' ? told : null);
89
150
  }
90
151
  /**
91
152
  * True when retrying later could plausibly work.
@@ -104,10 +165,51 @@ export class PublicApiError extends Error {
104
165
  get isDisabled() {
105
166
  return this.code === 'PUBLIC_API_DISABLED';
106
167
  }
168
+ /**
169
+ * True when the session found the person but this needs them VERIFIED: ask
170
+ * for the emailed code (`requestCode`), or — on an app that signs people in
171
+ * by link — sign in again by link.
172
+ */
173
+ get needsVerifiedSession() {
174
+ return this.code === 'PUBLIC_CLAIM_LEVEL';
175
+ }
176
+ /** On a `PUBLIC_TOO_EARLY` refusal, the times it carries; null on any other. */
177
+ get tooEarly() {
178
+ if (this.code !== 'PUBLIC_TOO_EARLY')
179
+ return null;
180
+ const { at, from } = this.params;
181
+ return typeof at === 'string' && typeof from === 'string' ? { at, from } : null;
182
+ }
107
183
  }
108
184
  /* --------------------------------------------------------------- client */
109
185
  const SESSION_HEADER = 'x-adminium-public-session';
186
+ const PROOF_HEADER = 'x-adminium-proof';
187
+ /** The staff member's token on a kiosk's writes — the dashboard's own CSRF header. */
188
+ const CSRF_HEADER = 'x-adminium-csrf';
189
+ const SAFE_METHODS = new Set(['GET', 'HEAD', 'OPTIONS']);
190
+ /** Where a claim that asked for a proof is remembered — a symbol, so no ref name can be it. */
191
+ const CLAIM = Symbol('claim');
110
192
  const WRAPPED_KEYS = new Set(['data', 'page', 'cursor']);
193
+ /** An AbortSignal rather than options — the older form of `documents.list`. */
194
+ function isSignal(value) {
195
+ return typeof value.aborted === 'boolean' && typeof value.addEventListener === 'function';
196
+ }
197
+ /**
198
+ * A sign-in link's (or a shared link's) fragment — `#<token>` or
199
+ * `#<token>&to=<path>` — as its page reads `location.hash`. `to` is kept only
200
+ * when it is a plain path under the app (letters, digits, `-._~/`), never a
201
+ * URL: a page must not send a person off-site from a link it did not make.
202
+ * Null when the fragment holds no token.
203
+ */
204
+ export function linkFromFragment(hash) {
205
+ const [token = '', ...rest] = hash.replace(/^#/, '').split('&');
206
+ if (!/^[A-Za-z0-9_-]{8,64}$/.test(token))
207
+ return null;
208
+ const raw = rest.find((part) => part.startsWith('to='))?.slice(3);
209
+ const to = raw === undefined ? null : raw.replace(/^\//, '');
210
+ const safe = to !== null && /^[A-Za-z0-9][A-Za-z0-9._~-]*(\/[A-Za-z0-9][A-Za-z0-9._~-]*)*$/.test(to);
211
+ return { token, to: safe ? to : null };
212
+ }
111
213
  /**
112
214
  * Every list shape as one {@link ListResult}, read off the
113
215
  * reply itself so that it costs no `/config` request and works against a
@@ -139,14 +241,55 @@ export function createPublicClient(options) {
139
241
  if (baseUrl === undefined || baseUrl === '' || key === undefined || key === '')
140
242
  return null;
141
243
  const doFetch = options?.fetch ?? globalThis.fetch.bind(globalThis);
244
+ const humanCheck = options?.humanCheck;
245
+ const csrfToken = options?.csrfToken;
142
246
  let session = null;
143
247
  let cachedConfig = null;
248
+ /** Refs that asked for a proof under the session held now, and {@link CLAIM} when a claim did. */
249
+ const asked = new Set();
250
+ /**
251
+ * The only way the session changes. What asked for a proof is forgotten
252
+ * with it: a signed-in person is excused the proof on a ref that caps what
253
+ * they hold, so what asked of a stranger need not ask of them.
254
+ */
255
+ const holdSession = (next) => {
256
+ session = next;
257
+ asked.clear();
258
+ };
259
+ /** The error a refused reply carries, as the client throws it. */
260
+ const errorOf = async (res) => {
261
+ let code = 'PUBLIC_UPSTREAM_UNAVAILABLE';
262
+ let message = `HTTP ${String(res.status)}`;
263
+ let params;
264
+ try {
265
+ const body = (await res.json());
266
+ const got = body.error?.code;
267
+ if (typeof got === 'string' && PUBLIC_ERROR_CODES.includes(got)) {
268
+ code = got;
269
+ }
270
+ if (typeof body.error?.message === 'string')
271
+ message = body.error.message;
272
+ if (typeof body.error?.params === 'object' && body.error.params !== null)
273
+ params = body.error.params;
274
+ }
275
+ catch {
276
+ /* a non-JSON error body — the status is all there is */
277
+ }
278
+ const retry = res.headers.get('retry-after');
279
+ return new PublicApiError(code, res.status, message, retry === null ? undefined : Number(retry), params);
280
+ };
144
281
  /** One request, with the reply's headers — `list()` reads `X-Next-Cursor`. */
145
- const send = async (path, init = {}) => {
282
+ const send = async (path, init = {}, extra = {}) => {
283
+ const csrf = typeof csrfToken === 'function' ? csrfToken() : csrfToken;
284
+ const writes = init.method !== undefined && !SAFE_METHODS.has(init.method.toUpperCase());
146
285
  const headers = {
147
286
  authorization: `Bearer ${key}`,
148
287
  ...(init.body === undefined ? {} : { 'content-type': 'application/json' }),
149
- ...(session === null ? {} : { [SESSION_HEADER]: session }),
288
+ ...(session === null ? {} : { [SESSION_HEADER]: session.token }),
289
+ // Only on a write: the server checks it only there, and a token in every
290
+ // read is one more place for it to be logged.
291
+ ...(writes && typeof csrf === 'string' && csrf !== '' ? { [CSRF_HEADER]: csrf } : {}),
292
+ ...extra,
150
293
  };
151
294
  let res;
152
295
  try {
@@ -157,27 +300,70 @@ export function createPublicClient(options) {
157
300
  // said nothing, so there is no code to read — supply one.
158
301
  throw new PublicApiError('PUBLIC_NETWORK_UNAVAILABLE', 0, `could not reach ${baseUrl}: ${cause instanceof Error ? cause.message : String(cause)}`);
159
302
  }
160
- if (!res.ok) {
161
- let code = 'PUBLIC_UPSTREAM_UNAVAILABLE';
162
- let message = `HTTP ${String(res.status)}`;
163
- try {
164
- const body = (await res.json());
165
- const got = body.error?.code;
166
- if (typeof got === 'string' && PUBLIC_ERROR_CODES.includes(got)) {
167
- code = got;
168
- }
169
- if (typeof body.error?.message === 'string')
170
- message = body.error.message;
171
- }
172
- catch {
173
- /* a non-JSON error body — the status is all there is */
174
- }
175
- const retry = res.headers.get('retry-after');
176
- throw new PublicApiError(code, res.status, message, retry === null ? undefined : Number(retry));
303
+ if (!res.ok)
304
+ throw await errorOf(res);
305
+ return { body: (await res.json()), headers: res.headers, status: res.status };
306
+ };
307
+ const request = async (path, init = {}, extra) => (await send(path, init, extra)).body;
308
+ /** A challenge fetched and solved, as the header value that carries it. */
309
+ const prove = async (purpose) => {
310
+ const out = await request(`/api/v1/public/challenge?purpose=${purpose}`);
311
+ return `${out.data.id}.${await solveChallenge(out.data)}`;
312
+ };
313
+ /** Is this create (a ref) or the claim (null) known to ask for a proof before it is sent? */
314
+ const knownToAsk = (ref) => {
315
+ if (humanCheck === true || asked.has(ref ?? CLAIM))
316
+ return true;
317
+ if (typeof humanCheck !== 'object')
318
+ return false;
319
+ return ref === null ? humanCheck.claim === true : (humanCheck.refs ?? []).includes(ref);
320
+ };
321
+ /**
322
+ * A create or a claim, with the human check it may owe.
323
+ *
324
+ * Unless it is known to ask, it goes WITHOUT a proof first and answers the
325
+ * server. That is the one choice right on every key: the config does not
326
+ * say which refs ask, a kiosk's key is never asked, and a signed-in person
327
+ * is excused on a ref that caps what they hold. It costs a refused round
328
+ * trip where a proof was owed, against a second of a cheap phone's time on
329
+ * every write where it was not. A ref that asked once solves first after
330
+ * that, until the session changes.
331
+ *
332
+ * The challenge is fetched here, at the moment of sending, and never
333
+ * earlier: it lives two minutes, and one fetched when the form opened can be
334
+ * dead by the time the visitor presses the button.
335
+ *
336
+ * A refusal is retried ONCE with a fresh proof, never in a loop: a second
337
+ * refusal is a real one — a key whose clock or secret disagrees — and
338
+ * solving again would only spend the visitor's battery on it.
339
+ */
340
+ const withProof = async (purpose, ref, attempt) => {
341
+ if (humanCheck === false)
342
+ return attempt({});
343
+ const first = knownToAsk(ref) ? { [PROOF_HEADER]: await prove(purpose) } : {};
344
+ try {
345
+ return await attempt(first);
346
+ }
347
+ catch (error) {
348
+ if (!(error instanceof PublicApiError) || error.code !== 'PUBLIC_PROOF_REQUIRED')
349
+ throw error;
350
+ asked.add(ref ?? CLAIM);
351
+ return attempt({ [PROOF_HEADER]: await prove(purpose) });
177
352
  }
178
- return { body: (await res.json()), headers: res.headers };
179
353
  };
180
- const request = async (path, init = {}) => (await send(path, init)).body;
354
+ const insert = (ref, values) => withProof('write', ref, (proof) => request(`/api/v1/public/records/${ref}`, { method: 'POST', body: JSON.stringify({ values }) }, proof));
355
+ /** A booking availability read, in either form. */
356
+ const booking = async (ref, query, signal) => {
357
+ const init = {};
358
+ if (signal !== undefined)
359
+ init.signal = signal;
360
+ const p = new URLSearchParams();
361
+ for (const [name, value] of Object.entries(query))
362
+ if (value !== undefined)
363
+ p.set(name, String(value));
364
+ const out = await request(`/api/v1/public/availability/${ref}?${p.toString()}`, init);
365
+ return out.data;
366
+ };
181
367
  /**
182
368
  * Query-string encoder.
183
369
  *
@@ -226,6 +412,16 @@ export function createPublicClient(options) {
226
412
  const out = await request(`/api/v1/public/availability/${ref}?${query.toString()}`, init);
227
413
  return out.data;
228
414
  },
415
+ bookingTimes(ref, query, signal) {
416
+ // Named one by one rather than spread: the server refuses a mixture of
417
+ // the two forms, and a caller's stray `from` would be one.
418
+ const { kind, resource, exclude, date } = query;
419
+ return booking(ref, { kind, resource, date, exclude }, signal);
420
+ },
421
+ bookingDays(ref, query, signal) {
422
+ const { kind, resource, exclude, from, days } = query;
423
+ return booking(ref, { kind, resource, from, days, exclude }, signal);
424
+ },
229
425
  async get(ref, id, signal) {
230
426
  const init = {};
231
427
  if (signal !== undefined)
@@ -234,11 +430,11 @@ export function createPublicClient(options) {
234
430
  return out.data;
235
431
  },
236
432
  async create(ref, values) {
237
- const out = await request(`/api/v1/public/records/${ref}`, {
238
- method: 'POST',
239
- body: JSON.stringify({ values }),
240
- });
241
- return out.data;
433
+ return (await insert(ref, values)).data;
434
+ },
435
+ async createWithRank(ref, values) {
436
+ const out = await insert(ref, values);
437
+ return { data: out.data, rank: typeof out.rank === 'number' ? out.rank : null };
242
438
  },
243
439
  async update(ref, id, values) {
244
440
  const out = await request(`/api/v1/public/records/${ref}/${encodeURIComponent(id)}`, { method: 'PATCH', body: JSON.stringify({ values }) });
@@ -262,8 +458,9 @@ export function createPublicClient(options) {
262
458
  },
263
459
  async claim(match) {
264
460
  try {
265
- const out = await request('/api/v1/public/claim', { method: 'POST', body: JSON.stringify({ match }) });
266
- session = out.data.session;
461
+ const out = await withProof('claim', null, (proof) => request('/api/v1/public/claim', { method: 'POST', body: JSON.stringify({ match }) }, proof));
462
+ // A claim finds the person; only a code raises it to `verified`.
463
+ holdSession({ token: out.data.session, level: 'lookup', expiresAt: out.data.expiresAt });
267
464
  return true;
268
465
  }
269
466
  catch (error) {
@@ -281,6 +478,147 @@ export function createPublicClient(options) {
281
478
  throw error;
282
479
  }
283
480
  },
481
+ async requestCode(input) {
482
+ // Exactly the two shapes the server takes; it refuses any other key.
483
+ const body = input.purpose === 'verify' ? { purpose: 'verify' } : { purpose: input.purpose, email: input.email };
484
+ const out = await request('/api/v1/public/claim/code', {
485
+ method: 'POST',
486
+ body: JSON.stringify(body),
487
+ });
488
+ return out.data;
489
+ },
490
+ async verifyCode(input) {
491
+ const purpose = input.purpose ?? 'verify';
492
+ let out;
493
+ try {
494
+ out = await request('/api/v1/public/claim/verify', {
495
+ method: 'POST',
496
+ body: JSON.stringify({ purpose, code: input.code }),
497
+ });
498
+ }
499
+ catch (error) {
500
+ // A mistyped code is an ordinary outcome, like a claim that does not
501
+ // match; everything else — expired, locked — still throws.
502
+ if (error instanceof PublicApiError && error.code === 'PUBLIC_CODE_WRONG') {
503
+ const left = error.params['triesLeft'];
504
+ return { ok: false, triesLeft: typeof left === 'number' ? left : 0 };
505
+ }
506
+ throw error;
507
+ }
508
+ const { level, expiresAt, email } = out.data;
509
+ /*
510
+ * An address change ends every session of the person, this one too, and
511
+ * its reply's `expiresAt` is the moment it ended. Holding on to the
512
+ * token would only turn the next request into a puzzling 401.
513
+ */
514
+ const ended = purpose === 'email-change' || expiresAt <= Date.now();
515
+ if (ended)
516
+ holdSession(null);
517
+ else if (session !== null)
518
+ holdSession({ token: session.token, level, expiresAt });
519
+ return { ok: true, level, expiresAt, ended, ...(email === undefined ? {} : { email }) };
520
+ },
521
+ async requestLink(input) {
522
+ const out = await withProof('claim', null, (proof) => request('/api/v1/public/claim/link', { method: 'POST', body: JSON.stringify(input.lang === undefined ? { email: input.email } : { email: input.email, lang: input.lang }) }, proof));
523
+ return out.data;
524
+ },
525
+ async peekLink(token) {
526
+ try {
527
+ const out = await request('/api/v1/public/claim/link/peek', {
528
+ method: 'POST',
529
+ body: JSON.stringify({ token }),
530
+ });
531
+ return out.data.firstName;
532
+ }
533
+ catch (error) {
534
+ if (error instanceof PublicApiError && error.code === 'LINK_EXPIRED')
535
+ return null;
536
+ throw error;
537
+ }
538
+ },
539
+ async openLink(token) {
540
+ try {
541
+ const out = await request('/api/v1/public/claim/link/verify', {
542
+ method: 'POST',
543
+ body: JSON.stringify({ token }),
544
+ });
545
+ holdSession({ token: out.data.session, level: 'verified', expiresAt: out.data.expiresAt });
546
+ return true;
547
+ }
548
+ catch (error) {
549
+ if (error instanceof PublicApiError && error.code === 'LINK_EXPIRED')
550
+ return false;
551
+ throw error;
552
+ }
553
+ },
554
+ async verifyLinkCode(input) {
555
+ let out;
556
+ try {
557
+ out = await request('/api/v1/public/claim/link/verify', {
558
+ method: 'POST',
559
+ body: JSON.stringify({ email: input.email, code: input.code }),
560
+ });
561
+ }
562
+ catch (error) {
563
+ if (error instanceof PublicApiError && error.code === 'PUBLIC_CODE_WRONG') {
564
+ const left = error.params['triesLeft'];
565
+ return { ok: false, triesLeft: typeof left === 'number' ? left : 0 };
566
+ }
567
+ throw error;
568
+ }
569
+ holdSession({ token: out.data.session, level: 'verified', expiresAt: out.data.expiresAt });
570
+ return { ok: true, level: 'verified', expiresAt: out.data.expiresAt, ended: false };
571
+ },
572
+ async resendLink(token) {
573
+ await withProof('claim', null, (proof) => request('/api/v1/public/claim/link/resend', { method: 'POST', body: JSON.stringify({ token }) }, proof));
574
+ },
575
+ async openShared(token) {
576
+ try {
577
+ const out = await request('/api/v1/public/claim/token', {
578
+ method: 'POST',
579
+ body: JSON.stringify({ token }),
580
+ });
581
+ holdSession({ token: out.data.session, level: 'lookup', expiresAt: out.data.expiresAt });
582
+ return 'opened';
583
+ }
584
+ catch (error) {
585
+ if (error instanceof PublicApiError && error.code === 'PUBLIC_REF_NOT_FOUND')
586
+ return 'unknown';
587
+ if (error instanceof PublicApiError && error.code === 'LINK_EXPIRED')
588
+ return 'closed';
589
+ throw error;
590
+ }
591
+ },
592
+ async file(ref, id, column, signal) {
593
+ const path = `/api/v1/public/files/${encodeURIComponent(ref)}/${encodeURIComponent(String(id))}/${encodeURIComponent(column)}`;
594
+ const headers = {
595
+ authorization: `Bearer ${key}`,
596
+ ...(session === null ? {} : { [SESSION_HEADER]: session.token }),
597
+ };
598
+ let res;
599
+ try {
600
+ res = await doFetch(`${baseUrl}${path}`, { headers, ...(signal === undefined ? {} : { signal }) });
601
+ }
602
+ catch (cause) {
603
+ throw new PublicApiError('PUBLIC_NETWORK_UNAVAILABLE', 0, `could not reach ${baseUrl}: ${cause instanceof Error ? cause.message : String(cause)}`);
604
+ }
605
+ if (!res.ok)
606
+ throw await errorOf(res);
607
+ const disposition = res.headers.get('content-disposition') ?? '';
608
+ const named = /filename\*=UTF-8''([^;]+)/.exec(disposition)?.[1];
609
+ return {
610
+ blob: await res.blob(),
611
+ filename: named === undefined ? null : decodeURIComponent(named),
612
+ inline: disposition.startsWith('inline'),
613
+ };
614
+ },
615
+ async addOnSettings(addOnKey, signal) {
616
+ const init = {};
617
+ if (signal !== undefined)
618
+ init.signal = signal;
619
+ const out = await request(`/api/v1/public/add-ons/${encodeURIComponent(addOnKey)}/settings`, init);
620
+ return out.data.settings;
621
+ },
284
622
  async signOut() {
285
623
  if (session === null)
286
624
  return;
@@ -290,12 +628,15 @@ export function createPublicClient(options) {
290
628
  finally {
291
629
  // Dropped locally whatever the server said: a visitor who clicked sign
292
630
  // out must not still be holding a session because a request failed.
293
- session = null;
631
+ holdSession(null);
294
632
  }
295
633
  },
296
634
  isClaimed() {
297
635
  return session !== null;
298
636
  },
637
+ session() {
638
+ return session === null ? null : { level: session.level, expiresAt: session.expiresAt };
639
+ },
299
640
  async assertRefs(required) {
300
641
  const config = await client.config();
301
642
  const missing = [];
@@ -316,13 +657,29 @@ export function createPublicClient(options) {
316
657
  }
317
658
  },
318
659
  documents: {
319
- async list(signal) {
660
+ list: (async (options) => {
661
+ const paged = options !== undefined && !isSignal(options);
662
+ const signal = paged ? options.signal : options;
320
663
  const init = {};
321
664
  if (signal !== undefined)
322
665
  init.signal = signal;
323
- const out = await request('/api/v1/public/documents', init);
324
- return out.data;
325
- },
666
+ const p = new URLSearchParams();
667
+ if (paged) {
668
+ if (options.ref !== undefined)
669
+ p.set('ref', options.ref);
670
+ if (options.id !== undefined)
671
+ p.set('id', String(options.id));
672
+ if (options.kind !== undefined)
673
+ p.set('kind', options.kind);
674
+ if (options.limit !== undefined)
675
+ p.set('limit', String(options.limit));
676
+ if (options.cursor !== undefined)
677
+ p.set('cursor', options.cursor);
678
+ }
679
+ const query = p.toString();
680
+ const out = await send(`/api/v1/public/documents${query === '' ? '' : `?${query}`}`, init);
681
+ return paged ? { data: out.body.data, next: out.headers.get('x-next-cursor') } : out.body.data;
682
+ }),
326
683
  async get(id, signal) {
327
684
  const init = {};
328
685
  if (signal !== undefined)
@@ -331,11 +688,12 @@ export function createPublicClient(options) {
331
688
  return out.data;
332
689
  },
333
690
  async render(input) {
334
- const out = await request('/api/v1/public/documents/render', {
691
+ // 201 is a new document; 200 the one already drawn for this row, unchanged since.
692
+ const out = await send('/api/v1/public/documents/render', {
335
693
  method: 'POST',
336
694
  body: JSON.stringify(input),
337
695
  });
338
- return out.data;
696
+ return { ...out.body.data, reused: out.status === 200 };
339
697
  },
340
698
  async email(id) {
341
699
  // No body. The address is the session's, and there is nothing else to
@@ -446,4 +804,184 @@ export function isCanonicalTimeZone(timezone) {
446
804
  return timezone.includes('/');
447
805
  return supported.includes(timezone);
448
806
  }
807
+ /**
808
+ * The work, as one function that reaches for nothing outside itself.
809
+ *
810
+ * Self-contained because it is shipped twice: called here, and turned back
811
+ * into source text for the worker. A helper it named from outside would be
812
+ * missing in the worker, which has only what the text carries. That is also
813
+ * why the SHA-256 is written out rather than taken from `crypto.subtle`: that
814
+ * one is async, and a promise per attempt makes the ~65,000 attempts of a
815
+ * sixteen-bit proof many times slower than hashing them straight through.
816
+ *
817
+ * A bundler told to keep function names (esbuild's `keepNames`) wraps each
818
+ * inner function in a helper of its own, which the worker's text does not
819
+ * carry. That worker then fails to start and the search runs on the page
820
+ * instead — slower, never wrong.
821
+ */
822
+ function proofKernel() {
823
+ const K = new Int32Array([
824
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
825
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
826
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
827
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
828
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
829
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
830
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
831
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
832
+ ]);
833
+ const W = new Int32Array(64);
834
+ const encoder = new TextEncoder();
835
+ const sha256 = (input) => {
836
+ const bytes = typeof input === 'string' ? encoder.encode(input) : input;
837
+ // The message, a 1 bit, zeros, and its length in bits as 64 big-endian
838
+ // bits, filling a whole number of 64-byte blocks.
839
+ const padded = new Uint8Array((((bytes.length + 8) >> 6) + 1) * 64);
840
+ padded.set(bytes);
841
+ padded[bytes.length] = 0x80;
842
+ const view = new DataView(padded.buffer);
843
+ view.setUint32(padded.length - 8, Math.floor(bytes.length / 0x20000000));
844
+ view.setUint32(padded.length - 4, (bytes.length * 8) >>> 0);
845
+ const H = new Int32Array([0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19]);
846
+ for (let offset = 0; offset < padded.length; offset += 64) {
847
+ for (let i = 0; i < 16; i += 1)
848
+ W[i] = view.getInt32(offset + i * 4);
849
+ for (let i = 16; i < 64; i += 1) {
850
+ const w15 = W[i - 15];
851
+ const w2 = W[i - 2];
852
+ const s0 = ((w15 >>> 7) | (w15 << 25)) ^ ((w15 >>> 18) | (w15 << 14)) ^ (w15 >>> 3);
853
+ const s1 = ((w2 >>> 17) | (w2 << 15)) ^ ((w2 >>> 19) | (w2 << 13)) ^ (w2 >>> 10);
854
+ W[i] = (W[i - 16] + s0 + W[i - 7] + s1) | 0;
855
+ }
856
+ let a = H[0], b = H[1], c = H[2], d = H[3], e = H[4], f = H[5], g = H[6], h = H[7];
857
+ for (let i = 0; i < 64; i += 1) {
858
+ const S1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));
859
+ const t1 = (h + S1 + ((e & f) ^ (~e & g)) + K[i] + W[i]) | 0;
860
+ const S0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));
861
+ const t2 = (S0 + ((a & b) ^ (a & c) ^ (b & c))) | 0;
862
+ h = g;
863
+ g = f;
864
+ f = e;
865
+ e = (d + t1) | 0;
866
+ d = c;
867
+ c = b;
868
+ b = a;
869
+ a = (t1 + t2) | 0;
870
+ }
871
+ H[0] = (H[0] + a) | 0;
872
+ H[1] = (H[1] + b) | 0;
873
+ H[2] = (H[2] + c) | 0;
874
+ H[3] = (H[3] + d) | 0;
875
+ H[4] = (H[4] + e) | 0;
876
+ H[5] = (H[5] + f) | 0;
877
+ H[6] = (H[6] + g) | 0;
878
+ H[7] = (H[7] + h) | 0;
879
+ }
880
+ const out = new Uint8Array(32);
881
+ const outView = new DataView(out.buffer);
882
+ for (let i = 0; i < 8; i += 1)
883
+ outView.setInt32(i * 4, H[i]);
884
+ return out;
885
+ };
886
+ const leadingZeroBits = (bytes) => {
887
+ let bits = 0;
888
+ for (const byte of bytes) {
889
+ if (byte !== 0)
890
+ return bits + Math.clz32(byte) - 24;
891
+ bits += 8;
892
+ }
893
+ return bits;
894
+ };
895
+ // The nonce is the counter in lowercase base 36 — the only spelling the
896
+ // server's header pattern accepts.
897
+ const search = (salt, difficulty, start, count) => {
898
+ for (let n = start; n < start + count; n += 1) {
899
+ const nonce = n.toString(36);
900
+ if (leadingZeroBits(sha256(salt + nonce)) >= difficulty)
901
+ return nonce;
902
+ }
903
+ return null;
904
+ };
905
+ return { sha256, leadingZeroBits, search };
906
+ }
907
+ const kernel = /* @__PURE__ */ proofKernel();
908
+ /** SHA-256 of a string (as UTF-8) or of bytes, synchronously. */
909
+ export const sha256 = kernel.sha256;
910
+ /** How many zero bits a hash starts with. */
911
+ export const leadingZeroBits = kernel.leadingZeroBits;
912
+ /**
913
+ * What the worker runs: the kernel, rebuilt from its own text, searching from
914
+ * zero until it finds a nonce. Built as a string so that no bundler has to be
915
+ * told about a worker file.
916
+ */
917
+ export function proofWorkerSource() {
918
+ return (`const kernel = (${proofKernel.toString()})();\n` +
919
+ 'self.onmessage = (event) => {\n' +
920
+ ' const { salt, difficulty } = event.data;\n' +
921
+ ' self.postMessage(kernel.search(salt, difficulty, 0, Number.MAX_SAFE_INTEGER));\n' +
922
+ '};\n');
923
+ }
924
+ /** Attempts between yields on the main thread: a few milliseconds of work on a phone. */
925
+ const CHUNK = 2_000;
926
+ /** The search off the main thread, or null where there is no worker to be had. */
927
+ function solveInWorker(challenge) {
928
+ if (typeof Worker !== 'function' || typeof Blob !== 'function' || typeof URL.createObjectURL !== 'function') {
929
+ return null;
930
+ }
931
+ let url = null;
932
+ let worker;
933
+ try {
934
+ url = URL.createObjectURL(new Blob([proofWorkerSource()], { type: 'text/javascript' }));
935
+ worker = new Worker(url);
936
+ }
937
+ catch {
938
+ // A page whose CSP refuses `blob:` workers throws here, in some browsers.
939
+ if (url !== null)
940
+ URL.revokeObjectURL(url);
941
+ return null;
942
+ }
943
+ const done = () => {
944
+ worker.terminate();
945
+ if (url !== null)
946
+ URL.revokeObjectURL(url);
947
+ };
948
+ return new Promise((resolve, reject) => {
949
+ worker.onmessage = (event) => {
950
+ done();
951
+ resolve(String(event.data));
952
+ };
953
+ // …and fires this instead, in others.
954
+ worker.onerror = (event) => {
955
+ event.preventDefault();
956
+ done();
957
+ reject(new Error('the proof worker could not run'));
958
+ };
959
+ worker.postMessage({ salt: challenge.salt, difficulty: challenge.difficulty });
960
+ });
961
+ }
962
+ /**
963
+ * Find the nonce a challenge asks for.
964
+ *
965
+ * In a Web Worker where there is one, so the page stays responsive through
966
+ * the second a cheap phone spends on it. Where there is none — a test, a
967
+ * server render, a CSP that refuses `blob:` workers — on this thread, in
968
+ * small chunks that yield between them, so a click still lands meanwhile.
969
+ */
970
+ export async function solveChallenge(challenge) {
971
+ const offThread = solveInWorker(challenge);
972
+ if (offThread !== null) {
973
+ try {
974
+ return await offThread;
975
+ }
976
+ catch {
977
+ /* the worker would not run — do the work here instead */
978
+ }
979
+ }
980
+ for (let start = 0;; start += CHUNK) {
981
+ const found = kernel.search(challenge.salt, challenge.difficulty, start, CHUNK);
982
+ if (found !== null)
983
+ return found;
984
+ await new Promise((resolve) => setTimeout(resolve, 0));
985
+ }
986
+ }
449
987
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminiumjs/public-client",
3
- "version": "0.3.0-rc.4",
3
+ "version": "0.3.1",
4
4
  "license": "AGPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",