@weaveprotocol/core 0.2.1 → 0.2.3
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 +67 -46
- package/dist/doors/doors.d.ts +1 -1
- package/dist/elements/auth-styles.d.ts +1 -1
- package/dist/elements/auth-styles.d.ts.map +1 -1
- package/dist/elements/auth-styles.js +13 -0
- package/dist/elements/auth-styles.js.map +1 -1
- package/dist/elements/weave-auth.d.ts +2 -2
- package/dist/elements/weave-auth.d.ts.map +1 -1
- package/dist/elements/weave-auth.js +251 -119
- package/dist/elements/weave-auth.js.map +1 -1
- package/dist/identity/account-vault.d.ts +10 -3
- package/dist/identity/account-vault.d.ts.map +1 -1
- package/dist/identity/account-vault.js +10 -3
- package/dist/identity/account-vault.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/network/mailbox.d.ts +1 -1
- package/dist/network/mailbox.js +1 -1
- package/dist/network/peer-auth.d.ts +19 -0
- package/dist/network/peer-auth.d.ts.map +1 -1
- package/dist/network/peer-auth.js +22 -8
- package/dist/network/peer-auth.js.map +1 -1
- package/dist/node/actions.d.ts.map +1 -1
- package/dist/node/actions.js +9 -2
- package/dist/node/actions.js.map +1 -1
- package/dist/node/carrier.d.ts +16 -0
- package/dist/node/carrier.d.ts.map +1 -1
- package/dist/node/carrier.js +12 -0
- package/dist/node/carrier.js.map +1 -1
- package/dist/node/host.d.ts +2 -2
- package/dist/node/host.d.ts.map +1 -1
- package/dist/node/index.d.ts +3 -3
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/node.js +1 -1
- package/dist/node/node.js.map +1 -1
- package/dist/node/space-runtime.d.ts.map +1 -1
- package/dist/node/space-runtime.js +9 -1
- package/dist/node/space-runtime.js.map +1 -1
- package/dist/node/types.d.ts +6 -2
- package/dist/node/types.d.ts.map +1 -1
- package/dist/records/describe.d.ts +2 -0
- package/dist/records/describe.d.ts.map +1 -1
- package/dist/records/describe.js +5 -0
- package/dist/records/describe.js.map +1 -1
- package/dist/schema/collection-def.d.ts +16 -0
- package/dist/schema/collection-def.d.ts.map +1 -1
- package/dist/schema/collection-def.js +30 -0
- package/dist/schema/collection-def.js.map +1 -1
- package/dist/schemas/apps.d.ts +4 -1
- package/dist/schemas/apps.d.ts.map +1 -1
- package/dist/schemas/apps.js +8 -2
- package/dist/schemas/apps.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/screens.d.ts +16 -4
- package/dist/schemas/screens.d.ts.map +1 -1
- package/dist/schemas/screens.js +49 -6
- package/dist/schemas/screens.js.map +1 -1
- package/dist/session/auth.d.ts +56 -10
- package/dist/session/auth.d.ts.map +1 -1
- package/dist/session/auth.js +247 -69
- package/dist/session/auth.js.map +1 -1
- package/dist/session/connect.d.ts +57 -3
- package/dist/session/connect.d.ts.map +1 -1
- package/dist/session/connect.js +49 -6
- package/dist/session/connect.js.map +1 -1
- package/dist/session/connection.d.ts +8 -1
- package/dist/session/connection.d.ts.map +1 -1
- package/dist/session/connection.js +6 -1
- package/dist/session/connection.js.map +1 -1
- package/dist/session/credentials.d.ts +22 -6
- package/dist/session/credentials.d.ts.map +1 -1
- package/dist/session/credentials.js +35 -6
- package/dist/session/credentials.js.map +1 -1
- package/dist/session/hosting.d.ts +1 -1
- package/dist/session/index.d.ts +5 -5
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +3 -3
- package/dist/session/index.js.map +1 -1
- package/dist/space/notify.d.ts +59 -1
- package/dist/space/notify.d.ts.map +1 -1
- package/dist/space/notify.js +91 -0
- package/dist/space/notify.js.map +1 -1
- package/dist/storage/blob/s3.js +1 -1
- package/package.json +52 -42
package/dist/session/auth.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { NodeNetworkConfig, P2PNode } from '../node/types.js';
|
|
|
6
6
|
import { type ProtocolErrorCode } from '../utils/errors.js';
|
|
7
7
|
import { type Place, type PodContents } from './places.js';
|
|
8
8
|
import { type KeyValueStore, type StaySignedIn } from './stay-signed-in.js';
|
|
9
|
-
import { type CarryGrant, type ConnectRequest, type Grant } from './connect.js';
|
|
9
|
+
import { type CarryGrant, type ConnectRequest, type Grant, type ProposeRequest, type Proposed } from './connect.js';
|
|
10
10
|
import { type PairingOffer, type PairingStage } from './pairing.js';
|
|
11
11
|
export interface WeaveAuthConfig {
|
|
12
12
|
/** What passkey prompts call this app. Default "Weave". */
|
|
@@ -33,14 +33,29 @@ export interface WeaveAuthConfig {
|
|
|
33
33
|
/**
|
|
34
34
|
* Which screen the flow is on.
|
|
35
35
|
*
|
|
36
|
-
* `where` — where should your data live (a pod, or this browser); asked once.
|
|
37
36
|
* `welcome` — the place holds no accounts: new here, or not?
|
|
37
|
+
* `existing` — "I already have one": open a pod, use the recovery code, or add this device from another.
|
|
38
38
|
* `signIn` — choose an account and unlock it.
|
|
39
|
-
* `
|
|
39
|
+
* `restore` — type the recovery code.
|
|
40
|
+
* `create` — name a new account.
|
|
41
|
+
* `recovery` — signed in, and `freshCode` is the recovery code to keep safe.
|
|
42
|
+
* `unlock` — signed in, choosing a passkey or a password for every day. Required.
|
|
43
|
+
* `pod` — signed in, offered a pod to keep the new account in. Optional.
|
|
40
44
|
* `pair` — opened from a phone-pairing QR code.
|
|
41
45
|
* `ready` — signed in; `session` is set.
|
|
46
|
+
*
|
|
47
|
+
* `recovery`, `unlock` and `pod` already have a session, but the flow is not
|
|
48
|
+
* finished: a screen that waits for `ready` does not show the app halfway.
|
|
49
|
+
*/
|
|
50
|
+
export type AuthStage = 'starting' | 'welcome' | 'existing' | 'signIn' | 'restore' | 'create' | 'recovery' | 'unlock' | 'pod' | 'pair' | 'ready';
|
|
51
|
+
/**
|
|
52
|
+
* Why the flow is setting an account up: made just now, opened with its
|
|
53
|
+
* recovery code where it had no everyday way in, or arrived from a pairing
|
|
54
|
+
* link. Decides which of the setup screens are shown.
|
|
42
55
|
*/
|
|
43
|
-
export type
|
|
56
|
+
export type AuthSetup = 'new' | 'restored' | 'paired';
|
|
57
|
+
/** The shortest password `setPassword` takes. It guards a copy of the seed in a folder that may be copied. */
|
|
58
|
+
export declare const MIN_PASSWORD_LENGTH = 10;
|
|
44
59
|
/** A failure, in the shape a screen needs to explain it */
|
|
45
60
|
export interface AuthError {
|
|
46
61
|
readonly message: string;
|
|
@@ -58,7 +73,7 @@ export interface AccountEntry {
|
|
|
58
73
|
* cleared — is listed by the vault but unopenable here.
|
|
59
74
|
*/
|
|
60
75
|
readonly shortcuts: ReadonlyArray<DeviceWrap>;
|
|
61
|
-
/** Whether a
|
|
76
|
+
/** Whether a password unlocks it here */
|
|
62
77
|
readonly hasPassword: boolean;
|
|
63
78
|
}
|
|
64
79
|
/** An open account: who it is, and the node doing its work */
|
|
@@ -113,6 +128,15 @@ export interface GrantChoice {
|
|
|
113
128
|
readonly spaceIds: ReadonlyArray<string>;
|
|
114
129
|
/** How long the note lasts, overriding what the request asked for. Default: the request's `days`, or 7. */
|
|
115
130
|
readonly days?: number;
|
|
131
|
+
/** Which of the request's `notify` proposals the person said yes to, by index. Default: all of them. */
|
|
132
|
+
readonly notify?: ReadonlyArray<number>;
|
|
133
|
+
}
|
|
134
|
+
/** What the person chose on the screen for a later proposal */
|
|
135
|
+
export interface ProposeChoice {
|
|
136
|
+
readonly origin: string;
|
|
137
|
+
readonly request: ProposeRequest;
|
|
138
|
+
/** Which proposals they said yes to, by index. Default: all of them. */
|
|
139
|
+
readonly notify?: ReadonlyArray<number>;
|
|
116
140
|
}
|
|
117
141
|
export interface AuthState {
|
|
118
142
|
readonly stage: AuthStage;
|
|
@@ -123,8 +147,10 @@ export interface AuthState {
|
|
|
123
147
|
/** Ways into the selected account */
|
|
124
148
|
readonly entry: AccountEntry | null;
|
|
125
149
|
readonly session: WeaveSession | null;
|
|
126
|
-
/**
|
|
150
|
+
/** The recovery code, while the `recovery` screen shows it; cleared by `codeSaved()` */
|
|
127
151
|
readonly freshCode: string | null;
|
|
152
|
+
/** Set while the account is being set up (`recovery`, `unlock`, `pod`) */
|
|
153
|
+
readonly setup: AuthSetup | null;
|
|
128
154
|
/** Something is in progress; buttons should wait */
|
|
129
155
|
readonly busy: boolean;
|
|
130
156
|
readonly error: AuthError | null;
|
|
@@ -151,29 +177,42 @@ export interface WeaveAuth {
|
|
|
151
177
|
choosePod(): Promise<void>;
|
|
152
178
|
/** Keeps accounts in this browser, and stops using a pod if one was open */
|
|
153
179
|
useBrowser(): Promise<void>;
|
|
154
|
-
/** Back to the where-should-your-data-live question */
|
|
155
|
-
changeStorage(): void;
|
|
156
180
|
select(accountId: string): Promise<void>;
|
|
181
|
+
/** Opens an account with its recovery code. Where it has no passkey or password yet, sets one up next. */
|
|
157
182
|
signInWithCode(code: string): Promise<void>;
|
|
183
|
+
/** Opens the selected account with its password. A recovery code typed or filled here works too. */
|
|
158
184
|
signInWithPassword(password: string): Promise<void>;
|
|
159
185
|
signInWithPasskey(): Promise<void>;
|
|
160
186
|
startCreating(): void;
|
|
161
187
|
showSignIn(): void;
|
|
188
|
+
/** Back to "new here, or not?" */
|
|
189
|
+
showWelcome(): void;
|
|
190
|
+
/** "I already have an account": the ways to reach one from here */
|
|
191
|
+
showExisting(): void;
|
|
192
|
+
/** The recovery code form, for the selected account if there is one */
|
|
193
|
+
showRestore(): void;
|
|
162
194
|
createAccount(name: string): Promise<void>;
|
|
163
|
-
/** The
|
|
195
|
+
/** The recovery code has been kept somewhere safe; on to choosing a way in */
|
|
164
196
|
codeSaved(): void;
|
|
197
|
+
/** Leaves the optional `pod` step with the data in this browser */
|
|
198
|
+
finishSetup(): void;
|
|
165
199
|
acceptPairing(): Promise<void>;
|
|
166
200
|
dismissPairing(): void;
|
|
167
201
|
clearError(): void;
|
|
168
202
|
rename(name: string): Promise<boolean>;
|
|
203
|
+
/** Adds a passkey for this site. During setup, moves the flow on. */
|
|
169
204
|
addPasskey(): Promise<boolean>;
|
|
205
|
+
/** Sets or replaces the account's password. During setup, moves the flow on. */
|
|
206
|
+
setPassword(password: string): Promise<boolean>;
|
|
170
207
|
removeShortcut(kind: 'passkey' | 'passphrase'): Promise<boolean>;
|
|
171
208
|
confirmPod(how: 'combine' | 'switch'): Promise<void>;
|
|
172
209
|
cancelPod(): void;
|
|
173
210
|
/** Removes the copy this browser kept after a move into a pod */
|
|
174
211
|
forgetBrowserCopy(): Promise<void>;
|
|
175
212
|
dismissMoved(): void;
|
|
176
|
-
/** The
|
|
213
|
+
/** The recovery code of the open account. Null when signed out. */
|
|
214
|
+
recoveryCode(): string | null;
|
|
215
|
+
/** @deprecated The recovery code is no longer the everyday password. Use {@link WeaveAuth.recoveryCode}. */
|
|
177
216
|
accountPassword(): string | null;
|
|
178
217
|
/** Starts offering this account to a phone */
|
|
179
218
|
offerToPhone(onStage: (stage: PairingStage) => void): Promise<PairingOffer>;
|
|
@@ -192,6 +231,13 @@ export interface WeaveAuth {
|
|
|
192
231
|
readonly origin: string;
|
|
193
232
|
readonly request: ConnectRequest;
|
|
194
233
|
}): Promise<Omit<CarryGrant, 'home'>>;
|
|
234
|
+
/**
|
|
235
|
+
* Adds the subscriptions an app or carrier connected from this home
|
|
236
|
+
* proposed later, as the account home — the ones the person kept, naming
|
|
237
|
+
* it, looking only at spaces it may reach.
|
|
238
|
+
* @throws When nothing from `origin` is connected here, a proposal names a space it wasn't given, or a carrier names a topic value
|
|
239
|
+
*/
|
|
240
|
+
propose(choice: ProposeChoice): Promise<Proposed>;
|
|
195
241
|
/** Apps this account is connected to from this home, newest first */
|
|
196
242
|
connections(): ReadonlyArray<Connection>;
|
|
197
243
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/session/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/session/auth.ts"],"names":[],"mappings":"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"}
|