@sparkvault/sdk-mobile 7.0.2 → 7.0.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 +18 -1
- package/dist/account.d.ts +42 -0
- package/dist/account.js +23 -0
- package/dist/account.js.map +1 -1
- package/dist/http.js +1 -1
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ingots.d.ts +26 -1
- package/dist/ingots.js +43 -7
- package/dist/ingots.js.map +1 -1
- package/dist/ingots.test-d.d.ts +25 -0
- package/dist/ingots.test-d.js +15 -0
- package/dist/ingots.test-d.js.map +1 -0
- package/dist/types.d.ts +51 -4
- package/package.json +1 -1
- package/src/account.ts +53 -0
- package/src/http.ts +1 -1
- package/src/index.ts +1 -0
- package/src/ingots.test-d.ts +46 -0
- package/src/ingots.ts +65 -8
- package/src/types.ts +51 -4
package/README.md
CHANGED
|
@@ -125,17 +125,34 @@ await sparkVault.ingots.uploadFromUri({
|
|
|
125
125
|
onProgress: (uploaded, total) => console.log(uploaded / total),
|
|
126
126
|
});
|
|
127
127
|
|
|
128
|
+
let attemptedUploadId: string | undefined;
|
|
128
129
|
await sparkVault.ingots.replaceFromUri({
|
|
129
130
|
vaultId,
|
|
130
131
|
ingotId,
|
|
131
132
|
vat: session.vat,
|
|
132
133
|
fileUri,
|
|
133
134
|
fileSize,
|
|
134
|
-
name: 'receipt.pdf',
|
|
135
135
|
contentType: 'application/pdf',
|
|
136
|
+
expectedContentVersion, // the content_version the replacement was built from
|
|
137
|
+
onSessionCreated: (upload) => { attemptedUploadId = upload.uploadId; },
|
|
136
138
|
});
|
|
137
139
|
```
|
|
138
140
|
|
|
141
|
+
A read-modify-write passes `expectedContentVersion` (the `content_version` the
|
|
142
|
+
replacement was built from, `null` for content stored without one); Core
|
|
143
|
+
refuses a stale one with a 412. The next replace names the publication this one
|
|
144
|
+
produced, the session's `uploadId` (Forge acknowledges the final chunk only once the
|
|
145
|
+
upload published); the result's `content_version` is what the read after the
|
|
146
|
+
transfer found, which a later writer's publication can already have replaced. A replace sends `name` only to rename the
|
|
147
|
+
ingot: omitted, Core keeps the stored name, so a rename made elsewhere stands,
|
|
148
|
+
and the result's `name` is the name the ingot is stored under.
|
|
149
|
+
|
|
150
|
+
`onSessionCreated` hands over the Forge session once it exists, with its
|
|
151
|
+
`uploadId`: the `content_version` the ingot reads once that upload publishes.
|
|
152
|
+
An upload that fails with its last answer lost (the final PATCH's, or the read
|
|
153
|
+
after it) may still have published; the ingot's `content_version` reading the
|
|
154
|
+
`uploadId` says it did.
|
|
155
|
+
|
|
139
156
|
Uploads use Forge with tus v1.0.0 and read file chunks through the configured
|
|
140
157
|
`fileReader` adapter. Generated content should be staged to a file URI first so
|
|
141
158
|
all uploads use the same streaming path.
|
package/dist/account.d.ts
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
import type { ResolvedMobileConfig } from './config.js';
|
|
2
2
|
import type { MobileHttpClient } from './http.js';
|
|
3
3
|
import type { CompleteSignupRequest, CompleteSignupResponse, PinVerifyResponse, SparkVaultAccount, SparkVaultUser, UpdateAccountRequest } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* A subscription bought through the App Store or Google Play that still bills
|
|
6
|
+
* the account. SparkVault cannot cancel a store subscription: only its buyer
|
|
7
|
+
* can, in the store.
|
|
8
|
+
*/
|
|
9
|
+
export interface StoreSubscription {
|
|
10
|
+
/** `base`: the license; `addon`: a capacity add-on. */
|
|
11
|
+
kind: 'base' | 'addon';
|
|
12
|
+
channel: 'appstore' | 'play';
|
|
13
|
+
/** The store's id for it (App Store original transaction id, Google Play purchase token), when known. */
|
|
14
|
+
id: string | null;
|
|
15
|
+
}
|
|
16
|
+
/** What DELETE /account answers: the deletion has started and finishes in the background. */
|
|
17
|
+
export interface AccountDeletionStarted {
|
|
18
|
+
message: string;
|
|
19
|
+
account_id: string;
|
|
20
|
+
/** Unix seconds: when the deletion started. */
|
|
21
|
+
started_at: number;
|
|
22
|
+
/**
|
|
23
|
+
* The Stripe subscriptions this deletion ended, at once and with nothing
|
|
24
|
+
* refunded. Empty when the deletion was already in progress.
|
|
25
|
+
*/
|
|
26
|
+
stripe_subscriptions_cancelled: string[];
|
|
27
|
+
/** The store subscriptions that keep billing until their buyer cancels them in the store. */
|
|
28
|
+
store_subscriptions: StoreSubscription[];
|
|
29
|
+
}
|
|
4
30
|
/**
|
|
5
31
|
* First-party SparkVault Core session, profile, and account client. Exchanges a
|
|
6
32
|
* verified Identity token for an app session and owns the authenticated
|
|
@@ -30,6 +56,22 @@ export declare class MobileAccountClient {
|
|
|
30
56
|
* replica that has not seen it yet.
|
|
31
57
|
*/
|
|
32
58
|
updateAccount(updates: UpdateAccountRequest): Promise<SparkVaultAccount>;
|
|
59
|
+
/**
|
|
60
|
+
* Delete the account, permanently: the account owner only, from their own
|
|
61
|
+
* signed-in session. `confirmation` is the organization name exactly as it
|
|
62
|
+
* stands. Stripe subscriptions end at once with nothing refunded; store
|
|
63
|
+
* subscriptions keep billing until cancelled in the store, and the answer
|
|
64
|
+
* names each one. The account's sessions end with it, so the caller signs
|
|
65
|
+
* out locally once this resolves.
|
|
66
|
+
*/
|
|
67
|
+
deleteAccount(confirmation: string): Promise<AccountDeletionStarted>;
|
|
68
|
+
/**
|
|
69
|
+
* Delete the signed-in member's own user, permanently: any member but the
|
|
70
|
+
* account owner, who deletes the account instead. `confirmation` is the
|
|
71
|
+
* member's sign-in email. Their sessions end with it, so the caller signs
|
|
72
|
+
* out locally once this resolves.
|
|
73
|
+
*/
|
|
74
|
+
deleteProfile(confirmation: string): Promise<void>;
|
|
33
75
|
revokeRefreshToken(refreshToken?: string): Promise<void>;
|
|
34
76
|
logout(options?: {
|
|
35
77
|
revoke?: boolean;
|
package/dist/account.js
CHANGED
|
@@ -79,6 +79,29 @@ export class MobileAccountClient {
|
|
|
79
79
|
}
|
|
80
80
|
return response.data;
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Delete the account, permanently: the account owner only, from their own
|
|
84
|
+
* signed-in session. `confirmation` is the organization name exactly as it
|
|
85
|
+
* stands. Stripe subscriptions end at once with nothing refunded; store
|
|
86
|
+
* subscriptions keep billing until cancelled in the store, and the answer
|
|
87
|
+
* names each one. The account's sessions end with it, so the caller signs
|
|
88
|
+
* out locally once this resolves.
|
|
89
|
+
*/
|
|
90
|
+
async deleteAccount(confirmation) {
|
|
91
|
+
const response = await this.http.delete(apiPath `/account`, {
|
|
92
|
+
body: { confirmation },
|
|
93
|
+
});
|
|
94
|
+
return response.data;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Delete the signed-in member's own user, permanently: any member but the
|
|
98
|
+
* account owner, who deletes the account instead. `confirmation` is the
|
|
99
|
+
* member's sign-in email. Their sessions end with it, so the caller signs
|
|
100
|
+
* out locally once this resolves.
|
|
101
|
+
*/
|
|
102
|
+
async deleteProfile(confirmation) {
|
|
103
|
+
await this.http.delete(apiPath `/profile`, { body: { confirmation } });
|
|
104
|
+
}
|
|
82
105
|
async revokeRefreshToken(refreshToken) {
|
|
83
106
|
const token = refreshToken ?? await this.config.tokenStorage.getRefreshToken();
|
|
84
107
|
if (!token)
|
package/dist/account.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAWxD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
|
package/dist/http.js
CHANGED
|
@@ -115,7 +115,7 @@ export class MobileHttpClient {
|
|
|
115
115
|
// normalize to SparkVaultNetworkError or consumers misclassify an offline
|
|
116
116
|
// failure as a generic (non-retryable) error.
|
|
117
117
|
if (err instanceof TypeError || (err instanceof Error && err.name === 'NetworkError')) {
|
|
118
|
-
return new SparkVaultNetworkError('
|
|
118
|
+
return new SparkVaultNetworkError("Couldn't reach SparkVault. Check your connection.");
|
|
119
119
|
}
|
|
120
120
|
return new SparkVaultMobileError(err instanceof Error ? err.message : 'Unknown request error');
|
|
121
121
|
}
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAkC,MAAM,mBAAmB,CAAC;AAiChF,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9E,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,IAAI,YAAY,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,OAAO,gBAAgB;IAO3B,YAAY,MAA4B;QALvB,kBAAa,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC7C,iBAAY,GAAG,gBAAgB,EAAkB,CAAC;QAC3D,aAAQ,GAAmB,IAAI,CAAC;QAChC,kBAAa,GAAyB,IAAI,CAAC;QAGjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,QAA2B;QACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAEO,aAAa,CAAC,KAAgB;QACpC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAuB;QAC9C,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YACnC,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC;QAEF,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YAC9D,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;QAChD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,qBAAqB,CAAC,OAAgB;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK;YAAE,OAAO;QAE3C,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAExC,IACE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC5B,CAAC;YACD,IAAI,CAAC,aAAa,GAAG;gBACnB,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,eAAe;gBAC1B,KAAK,EAAE,WAAW;aACnB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,iFAAiF;IACzE,cAAc,CAAC,GAAY;QACjC,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,GAAG,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;YACvF,OAAO,IAAI,sBAAsB,CAAC,gEAAgE,CAAC,CAAC;QACtG,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,8CAA8C;QAC9C,IAAI,GAAG,YAAY,SAAS,IAAI,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;YACtF,OAAO,IAAI,sBAAsB,CAAC,uDAAuD,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,IAAI,qBAAqB,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACjG,CAAC;IAED;;;;;OAKG;IACH,uEAAuE;IAC/D,KAAK,CAAC,aAAa,CAAC,QAAkB;QAC5C,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClF,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,MAAc,EAAE,SAAuB;QACvD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;QACjC,CAAC;QAED,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI,qBAAqB,CACtE,SAAS,CAAC,KAAK,EAAE,OAAO,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EACjF;YACE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,IAAI,MAAM;YACrC,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO;YACjC,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,CACF,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,IAAa,EAAE,KAA8B;QAC3D,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,CAAC;IAEO,aAAa,CAAC,IAAa;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAC1D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAgB,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;YACtE,IAAI,CAAC,YAAY;gBAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YACjD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,sEAAsE;YACtE,2DAA2D;YAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;gBACrE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,YAAoB;QAC1C,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,eAAe,EAAE;gBAC3E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,kBAAkB;oBAC1B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;iBACpC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;gBACrD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACjC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;oBACzE,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;iBAChD,CAAC,CAAC;gBACH,MAAM,SAAS,GAAiB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YACpF,CAAC;YAED,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAG7C,CAAA,CAAC,CAAC;QACL,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QAExB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gBACzD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;gBACtB,eAAe,EAAE,OAAO,IAAI,EAAE,YAAY;aAC3C,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,qBAAqB;QACrB,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACjE,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBACpE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,YAAY;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,6BAA6B,CAAC,uCAAuC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,OAAO,CAAC,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,MAAkB,EAAE,IAAa,EAAE,UAA0B,EAAE;QAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAExE,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAY;gBAC5B,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBACxC,WAAW,EAAE,IAAI;aAClB,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,EAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,YAAY,EAAE,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,OAAO,MAAwB,CAAC;IAClC,CAAC;IAED,GAAG,CAAI,IAAa,EAAE,OAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAI,IAAa,EAAE,IAAc,EAAE,OAAwB;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,GAAG,CAAI,IAAa,EAAE,IAAc,EAAE,OAAwB;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAI,IAAa,EAAE,IAAc,EAAE,OAAwB;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAI,IAAa,EAAE,OAAwB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEO,mBAAmB,CAAC,MAAc;QACxC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,2CAA2C,CAAC;YACrD,KAAK,GAAG;gBACN,OAAO,0BAA0B,CAAC;YACpC,KAAK,GAAG;gBACN,OAAO,yCAAyC,CAAC;YACnD,KAAK,GAAG;gBACN,OAAO,oDAAoD,CAAC;YAC9D,KAAK,GAAG;gBACN,OAAO,uCAAuC,CAAC;YACjD,KAAK,GAAG;gBACN,OAAO,sDAAsD,CAAC;YAChE,KAAK,GAAG;gBACN,OAAO,4CAA4C,CAAC;YACtD,KAAK,GAAG;gBACN,OAAO,2BAA2B,CAAC;YACrC,KAAK,GAAG;gBACN,OAAO,wCAAwC,CAAC;YAClD,KAAK,GAAG;gBACN,OAAO,4CAA4C,CAAC;YACtD,KAAK,GAAG;gBACN,OAAO,+CAA+C,CAAC;YACzD,KAAK,GAAG;gBACN,OAAO,0DAA0D,CAAC;YACpE;gBACE,OAAO,8BAA8B,MAAM,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type { MobileConnectivity, SparkVaultMobileConfig, ResolvedMobileConfig,
|
|
|
3
3
|
export type { AuthEvent, AuthEventListener, } from './http.js';
|
|
4
4
|
export { MobileProductsClient, MobileIdentityClient, } from './products/index.js';
|
|
5
5
|
export { MobileAccountClient, } from './account.js';
|
|
6
|
+
export type { AccountDeletionStarted, StoreSubscription } from './account.js';
|
|
6
7
|
export { MobileVaultsClient, } from './vaults.js';
|
|
7
8
|
export { MobileFoldersClient, } from './folders.js';
|
|
8
9
|
export { MobileIngotsClient, NAME_CONFLICT_POLICIES, } from './ingots.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAUrB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAUrB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAcrB,OAAO,EACL,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAUrB,OAAO,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAgBrB,OAAO,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,GACd,MAAM,UAAU,CAAC;AAOlB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/E,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC"}
|
package/dist/ingots.d.ts
CHANGED
|
@@ -92,8 +92,25 @@ export interface UploadFromUriOptions extends UploadOptions {
|
|
|
92
92
|
debug?: DebugLogger;
|
|
93
93
|
}
|
|
94
94
|
/** A replace addresses its ingot by id: no name is placed, so the create-only hooks do not apply. */
|
|
95
|
-
export interface ReplaceFromUriOptions extends Omit<UploadFromUriOptions, 'onNameConflict' | 'onIngotCreated'> {
|
|
95
|
+
export interface ReplaceFromUriOptions extends Omit<UploadFromUriOptions, 'name' | 'onNameConflict' | 'onIngotCreated'> {
|
|
96
96
|
ingotId: string;
|
|
97
|
+
/**
|
|
98
|
+
* A new name for the ingot, stored in the same request as the content.
|
|
99
|
+
* Omitted, the server keeps the name the ingot holds: a replace that sent
|
|
100
|
+
* back a name it read earlier would undo a rename made since. The result's
|
|
101
|
+
* `name` is the name the ingot is stored under either way.
|
|
102
|
+
*/
|
|
103
|
+
name?: string;
|
|
104
|
+
/**
|
|
105
|
+
* For a read-modify-write: the `content_version` of the content the
|
|
106
|
+
* replacement was built from, or null when that content carried none. The
|
|
107
|
+
* server refuses the replace with a 412 once that content has been replaced,
|
|
108
|
+
* or while another replacement of the ingot is in flight: on the PUT
|
|
109
|
+
* (`SparkVaultMobileError`) or on the upload's final PATCH
|
|
110
|
+
* (`TusUploadError`), both with `statusCode` 412. Omitted, the replace
|
|
111
|
+
* carries no precondition and overwrites whatever is stored.
|
|
112
|
+
*/
|
|
113
|
+
expectedContentVersion?: string | null;
|
|
97
114
|
}
|
|
98
115
|
export interface ResumeUploadOptions {
|
|
99
116
|
vaultId: string;
|
|
@@ -326,6 +343,14 @@ export declare class MobileIngotsClient {
|
|
|
326
343
|
* received, publication is unconfirmed), so the caller resumes the session
|
|
327
344
|
* it persisted later, which asks Forge for the receipt again and sends no
|
|
328
345
|
* bytes, rather than recording a backup the vault may not hold.
|
|
346
|
+
*
|
|
347
|
+
* Every read is strongly consistent: an eventually consistent read can
|
|
348
|
+
* still serve the row as it stood before this upload published, and a
|
|
349
|
+
* replaced row reads `active` throughout, so that stale image would pass
|
|
350
|
+
* the status check and report a `content_version` older than this
|
|
351
|
+
* upload's. A consistent read reports the version at the read, which a
|
|
352
|
+
* later writer's publication can already have replaced: the upload's own
|
|
353
|
+
* publication is its session's `uploadId`.
|
|
329
354
|
*/
|
|
330
355
|
private verifyIngotActive;
|
|
331
356
|
private verifyDownloadedFile;
|
package/dist/ingots.js
CHANGED
|
@@ -58,6 +58,22 @@ function toTypedCreateError(err) {
|
|
|
58
58
|
meta: err.meta,
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* The `content_version` the read after an upload found on its ingot: this
|
|
63
|
+
* upload's publication or a later writer's (see `UploadResult.content_version`),
|
|
64
|
+
* null when the server recorded none. That read is `verifyIngotActive`'s,
|
|
65
|
+
* which returns only an active ingot, so every upload that resolves reports it.
|
|
66
|
+
*/
|
|
67
|
+
function publicationOf(ingot) {
|
|
68
|
+
return { content_version: ingot.content_version ?? null };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Forge's id for an upload: the last segment of its session URL, where
|
|
72
|
+
* resolveForgeSessionUrl placed the session Forge's create answered with.
|
|
73
|
+
*/
|
|
74
|
+
function uploadIdOf(uploadUrl) {
|
|
75
|
+
return uploadUrl.slice(uploadUrl.lastIndexOf('/') + 1);
|
|
76
|
+
}
|
|
61
77
|
export class MobileIngotsClient {
|
|
62
78
|
constructor(config, http) {
|
|
63
79
|
this.config = config;
|
|
@@ -91,7 +107,7 @@ export class MobileIngotsClient {
|
|
|
91
107
|
fileSize: options.fileSize,
|
|
92
108
|
filename: name,
|
|
93
109
|
forgeUrl: init.forgeUrl,
|
|
94
|
-
onSessionCreated: session => options.onSessionCreated?.({ ...session, ingotId: init.ingotId, created }),
|
|
110
|
+
onSessionCreated: session => options.onSessionCreated?.({ ...session, ingotId: init.ingotId, created, uploadId: uploadIdOf(session.uploadUrl) }),
|
|
95
111
|
onSessionExpiry: options.onSessionExpiry,
|
|
96
112
|
transport: options.transport,
|
|
97
113
|
transferPolicy: options.transferPolicy,
|
|
@@ -110,6 +126,7 @@ export class MobileIngotsClient {
|
|
|
110
126
|
// only other outcome, and it always says so).
|
|
111
127
|
created,
|
|
112
128
|
status: ingot.status,
|
|
129
|
+
...publicationOf(ingot),
|
|
113
130
|
};
|
|
114
131
|
}
|
|
115
132
|
/**
|
|
@@ -152,6 +169,7 @@ export class MobileIngotsClient {
|
|
|
152
169
|
storage_location: 's3',
|
|
153
170
|
created: false,
|
|
154
171
|
status: ingot.status,
|
|
172
|
+
...publicationOf(ingot),
|
|
155
173
|
};
|
|
156
174
|
}
|
|
157
175
|
/**
|
|
@@ -220,19 +238,28 @@ export class MobileIngotsClient {
|
|
|
220
238
|
};
|
|
221
239
|
}
|
|
222
240
|
async replaceFromUri(options) {
|
|
223
|
-
const { vaultId, ingotId, vat,
|
|
241
|
+
const { vaultId, ingotId, vat, contentType, fileUri, fileSize, onProgress, abortSignal, debug } = options;
|
|
224
242
|
validateVaultId(vaultId);
|
|
225
243
|
validateIngotId(ingotId);
|
|
226
244
|
if (abortSignal?.aborted) {
|
|
227
245
|
throw new SparkVaultMobileError('Upload cancelled', { code: 'upload_cancelled' });
|
|
228
246
|
}
|
|
229
247
|
const response = await this.http.put(apiPath `/vaults/${vaultId}/ingots/${ingotId}`, {
|
|
230
|
-
name
|
|
248
|
+
// Omitted, the server keeps the stored name.
|
|
249
|
+
...(options.name !== undefined && { name: options.name }),
|
|
231
250
|
content_type: contentType,
|
|
232
251
|
size_bytes: fileSize,
|
|
233
252
|
...(options.contentHmac && { content_hmac: options.contentHmac }),
|
|
253
|
+
// Null is a precondition too (the edited content carried no version);
|
|
254
|
+
// only an omitted one leaves the replace unconditioned.
|
|
255
|
+
...(options.expectedContentVersion !== undefined && {
|
|
256
|
+
expected_content_version: options.expectedContentVersion,
|
|
257
|
+
}),
|
|
234
258
|
}, { vat });
|
|
235
|
-
|
|
259
|
+
// The name the ingot is stored under after the PUT: the server answers
|
|
260
|
+
// it, and it is what the transfer's errors and log lines name.
|
|
261
|
+
const name = response.data.name ?? options.name;
|
|
262
|
+
if (!response.data.ingot_id || !response.data.forge_url || !name) {
|
|
236
263
|
throw new SparkVaultMobileError('Server returned invalid response for ingot replacement');
|
|
237
264
|
}
|
|
238
265
|
await this.tus.uploadFromUri({
|
|
@@ -241,7 +268,7 @@ export class MobileIngotsClient {
|
|
|
241
268
|
filename: name,
|
|
242
269
|
forgeUrl: response.data.forge_url,
|
|
243
270
|
// A replace never mints an ingot: the row is the caller's existing one.
|
|
244
|
-
onSessionCreated: session => options.onSessionCreated?.({ ...session, ingotId, created: false }),
|
|
271
|
+
onSessionCreated: session => options.onSessionCreated?.({ ...session, ingotId, created: false, uploadId: uploadIdOf(session.uploadUrl) }),
|
|
245
272
|
onSessionExpiry: options.onSessionExpiry,
|
|
246
273
|
transport: options.transport,
|
|
247
274
|
transferPolicy: options.transferPolicy,
|
|
@@ -259,6 +286,7 @@ export class MobileIngotsClient {
|
|
|
259
286
|
// A replace never mints an ingot: the row is the caller's existing one.
|
|
260
287
|
created: false,
|
|
261
288
|
status: ingot.status,
|
|
289
|
+
...publicationOf(ingot),
|
|
262
290
|
};
|
|
263
291
|
}
|
|
264
292
|
/**
|
|
@@ -487,12 +515,20 @@ export class MobileIngotsClient {
|
|
|
487
515
|
* received, publication is unconfirmed), so the caller resumes the session
|
|
488
516
|
* it persisted later, which asks Forge for the receipt again and sends no
|
|
489
517
|
* bytes, rather than recording a backup the vault may not hold.
|
|
518
|
+
*
|
|
519
|
+
* Every read is strongly consistent: an eventually consistent read can
|
|
520
|
+
* still serve the row as it stood before this upload published, and a
|
|
521
|
+
* replaced row reads `active` throughout, so that stale image would pass
|
|
522
|
+
* the status check and report a `content_version` older than this
|
|
523
|
+
* upload's. A consistent read reports the version at the read, which a
|
|
524
|
+
* later writer's publication can already have replaced: the upload's own
|
|
525
|
+
* publication is its session's `uploadId`.
|
|
490
526
|
*/
|
|
491
527
|
async verifyIngotActive(ingotRef, upload, debug) {
|
|
492
528
|
const { vaultId, ingotId, vat } = ingotRef;
|
|
493
529
|
const deadline = Date.now() + MobileIngotsClient.INGOT_STATUS_POLL_BUDGET_MS;
|
|
494
530
|
let delay = MobileIngotsClient.INGOT_STATUS_POLL_INITIAL_MS;
|
|
495
|
-
let ingot = await this.get(vaultId, ingotId, vat);
|
|
531
|
+
let ingot = await this.get(vaultId, ingotId, vat, { consistent: true });
|
|
496
532
|
while (ingot.status !== 'active') {
|
|
497
533
|
const remaining = deadline - Date.now();
|
|
498
534
|
if (remaining <= 0) {
|
|
@@ -502,7 +538,7 @@ export class MobileIngotsClient {
|
|
|
502
538
|
}
|
|
503
539
|
await new Promise(resolve => setTimeout(resolve, Math.min(delay, remaining)));
|
|
504
540
|
delay = Math.min(delay * 2, MobileIngotsClient.INGOT_STATUS_POLL_MAX_MS);
|
|
505
|
-
ingot = await this.get(vaultId, ingotId, vat);
|
|
541
|
+
ingot = await this.get(vaultId, ingotId, vat, { consistent: true });
|
|
506
542
|
}
|
|
507
543
|
return ingot;
|
|
508
544
|
}
|
package/dist/ingots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingots.js","sourceRoot":"","sources":["../src/ingots.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ingots.js","sourceRoot":"","sources":["../src/ingots.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ingot sharing wire-contract assertions: COMPILE-TIME ONLY.
|
|
3
|
+
*
|
|
4
|
+
* `IngotSharingConfig` has no runtime: the client returns the response body as
|
|
5
|
+
* it arrives, so a unit test can never catch the type drifting from the server
|
|
6
|
+
* and every assertion would pass. `tsc --noEmit` (`pnpm typecheck`) is the gate
|
|
7
|
+
* instead. It is deliberately NOT a `*.test.ts`, which tsconfig excludes.
|
|
8
|
+
*
|
|
9
|
+
* Mirrored server source: apps/api/src/ingots/sharing.js (`formatSharingConfig`,
|
|
10
|
+
* the one shape GET and PUT /vaults/:id/ingots/:ingot_id/sharing answer). A
|
|
11
|
+
* field the server never sends reads as undefined wherever an app trusts it:
|
|
12
|
+
* a link section keyed on it never renders.
|
|
13
|
+
*/
|
|
14
|
+
import type { IngotSharingConfig } from './types.js';
|
|
15
|
+
/** Fails to compile unless `T` resolves to exactly `true`. */
|
|
16
|
+
type Assert<T extends true> = T;
|
|
17
|
+
/** Invariant type equality: the SAME type, not merely mutually assignable. */
|
|
18
|
+
type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? true : false;
|
|
19
|
+
export type IngotsWireContract = [
|
|
20
|
+
Assert<Equals<keyof IngotSharingConfig, 'ingot_id' | 'vault_id' | 'sharing_enabled' | 'shared' | 'visibility' | 'public_url' | 'link_code' | 'vault_all_ingots_public' | 'session_length_seconds' | 'invites'>>,
|
|
21
|
+
Assert<Equals<IngotSharingConfig['public_url'], string | null>>,
|
|
22
|
+
Assert<Equals<IngotSharingConfig['link_code'], string | null>>,
|
|
23
|
+
Assert<Equals<IngotSharingConfig['visibility'], 'invite_only' | 'authenticated' | 'public' | null>>
|
|
24
|
+
];
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ingot sharing wire-contract assertions: COMPILE-TIME ONLY.
|
|
3
|
+
*
|
|
4
|
+
* `IngotSharingConfig` has no runtime: the client returns the response body as
|
|
5
|
+
* it arrives, so a unit test can never catch the type drifting from the server
|
|
6
|
+
* and every assertion would pass. `tsc --noEmit` (`pnpm typecheck`) is the gate
|
|
7
|
+
* instead. It is deliberately NOT a `*.test.ts`, which tsconfig excludes.
|
|
8
|
+
*
|
|
9
|
+
* Mirrored server source: apps/api/src/ingots/sharing.js (`formatSharingConfig`,
|
|
10
|
+
* the one shape GET and PUT /vaults/:id/ingots/:ingot_id/sharing answer). A
|
|
11
|
+
* field the server never sends reads as undefined wherever an app trusts it:
|
|
12
|
+
* a link section keyed on it never renders.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ingots.test-d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingots.test-d.js","sourceRoot":"","sources":["../src/ingots.test-d.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
package/dist/types.d.ts
CHANGED
|
@@ -58,6 +58,13 @@ export interface SparkVaultUser {
|
|
|
58
58
|
name?: string;
|
|
59
59
|
role: OrgRole;
|
|
60
60
|
has_passkey?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Whether this user is the account owner (the member whose email is the
|
|
63
|
+
* account's email), who alone may delete the account. Only GET /v1/profile
|
|
64
|
+
* sends it: a sign-in, signup or refresh answer, and a profile save's
|
|
65
|
+
* answer, carry no flag.
|
|
66
|
+
*/
|
|
67
|
+
is_account_owner?: boolean;
|
|
61
68
|
created_at: number;
|
|
62
69
|
}
|
|
63
70
|
export interface SparkVaultAccount {
|
|
@@ -650,6 +657,10 @@ export interface FolderContentsResponse {
|
|
|
650
657
|
}
|
|
651
658
|
export interface UploadResult {
|
|
652
659
|
ingot_id: string;
|
|
660
|
+
/**
|
|
661
|
+
* The name the ingot is stored under: the server's numbered name under
|
|
662
|
+
* `new_name`, and for a replace the name it was sent, else the one it kept.
|
|
663
|
+
*/
|
|
653
664
|
name: string;
|
|
654
665
|
size_bytes: number;
|
|
655
666
|
storage_location: 's3';
|
|
@@ -668,13 +679,39 @@ export interface UploadResult {
|
|
|
668
679
|
* `retryLater` is set.
|
|
669
680
|
*/
|
|
670
681
|
status?: Ingot['status'];
|
|
682
|
+
/**
|
|
683
|
+
* The ingot's `content_version` (Forge's activation marker) as the strongly
|
|
684
|
+
* consistent read after the transfer found it, null when the server
|
|
685
|
+
* recorded none. It is this upload's publication or a later writer's that
|
|
686
|
+
* already replaced it, so it does not say which publication holds these
|
|
687
|
+
* bytes. A read-modify-write names this upload's own publication, its
|
|
688
|
+
* session's `uploadId` (`IngotUploadSession`), as the next replace's
|
|
689
|
+
* `expectedContentVersion`, so a save built on stale content is refused
|
|
690
|
+
* (412) instead of discarding another writer's changes.
|
|
691
|
+
*/
|
|
692
|
+
content_version: string | null;
|
|
671
693
|
}
|
|
694
|
+
/**
|
|
695
|
+
* An Ingot's durable sharing settings, as GET and PUT
|
|
696
|
+
* /vaults/:id/ingots/:ingot_id/sharing answer them (apps/api/src/ingots/sharing.js,
|
|
697
|
+
* `formatSharingConfig`; `ingots.test-d.ts` pins the field set).
|
|
698
|
+
*/
|
|
672
699
|
export interface IngotSharingConfig {
|
|
700
|
+
ingot_id: string;
|
|
701
|
+
vault_id: string;
|
|
702
|
+
/** Whether the vault shares files at all. */
|
|
703
|
+
sharing_enabled: boolean;
|
|
673
704
|
shared: boolean;
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
705
|
+
/** Null while the Ingot is not shared. */
|
|
706
|
+
visibility: 'invite_only' | 'authenticated' | 'public' | null;
|
|
707
|
+
/** The Ingot's durable files.sv link; null while it is not shared. */
|
|
708
|
+
public_url: string | null;
|
|
709
|
+
/** The code in `public_url`; null while the Ingot is not shared. */
|
|
710
|
+
link_code: string | null;
|
|
711
|
+
/** Whether the vault makes every Ingot public, which pins this one to Public. */
|
|
712
|
+
vault_all_ingots_public: boolean;
|
|
713
|
+
session_length_seconds: number;
|
|
714
|
+
invites: IngotInvite[];
|
|
678
715
|
}
|
|
679
716
|
export interface IngotInvite {
|
|
680
717
|
invite_id: string;
|
|
@@ -796,6 +833,16 @@ export interface IngotUploadSession extends TusSessionInfo {
|
|
|
796
833
|
ingotId: string;
|
|
797
834
|
/** Whether the upload minted the ingot (see `UploadResult.created`). */
|
|
798
835
|
created: boolean;
|
|
836
|
+
/**
|
|
837
|
+
* Forge's id for this upload (the session URL's last segment), which the
|
|
838
|
+
* server stamps as the ingot's `content_version` when the upload publishes.
|
|
839
|
+
* Forge acknowledges the final chunk only once the upload published, so an
|
|
840
|
+
* upload that succeeded published as this id. One that failed with its last
|
|
841
|
+
* answer lost may still have published, or publish later: the ingot's
|
|
842
|
+
* `content_version` reading this id says it did, and any other value proves
|
|
843
|
+
* nothing either way.
|
|
844
|
+
*/
|
|
845
|
+
uploadId: string;
|
|
799
846
|
}
|
|
800
847
|
/**
|
|
801
848
|
* Which transport a tus upload rides. `foreground` (the default) streams
|
package/package.json
CHANGED
package/src/account.ts
CHANGED
|
@@ -12,6 +12,34 @@ import type {
|
|
|
12
12
|
} from './types.js';
|
|
13
13
|
import { apiPath } from './request-path.js';
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* A subscription bought through the App Store or Google Play that still bills
|
|
17
|
+
* the account. SparkVault cannot cancel a store subscription: only its buyer
|
|
18
|
+
* can, in the store.
|
|
19
|
+
*/
|
|
20
|
+
export interface StoreSubscription {
|
|
21
|
+
/** `base`: the license; `addon`: a capacity add-on. */
|
|
22
|
+
kind: 'base' | 'addon';
|
|
23
|
+
channel: 'appstore' | 'play';
|
|
24
|
+
/** The store's id for it (App Store original transaction id, Google Play purchase token), when known. */
|
|
25
|
+
id: string | null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** What DELETE /account answers: the deletion has started and finishes in the background. */
|
|
29
|
+
export interface AccountDeletionStarted {
|
|
30
|
+
message: string;
|
|
31
|
+
account_id: string;
|
|
32
|
+
/** Unix seconds: when the deletion started. */
|
|
33
|
+
started_at: number;
|
|
34
|
+
/**
|
|
35
|
+
* The Stripe subscriptions this deletion ended, at once and with nothing
|
|
36
|
+
* refunded. Empty when the deletion was already in progress.
|
|
37
|
+
*/
|
|
38
|
+
stripe_subscriptions_cancelled: string[];
|
|
39
|
+
/** The store subscriptions that keep billing until their buyer cancels them in the store. */
|
|
40
|
+
store_subscriptions: StoreSubscription[];
|
|
41
|
+
}
|
|
42
|
+
|
|
15
43
|
/**
|
|
16
44
|
* First-party SparkVault Core session, profile, and account client. Exchanges a
|
|
17
45
|
* verified Identity token for an app session and owns the authenticated
|
|
@@ -120,6 +148,31 @@ export class MobileAccountClient {
|
|
|
120
148
|
return response.data;
|
|
121
149
|
}
|
|
122
150
|
|
|
151
|
+
/**
|
|
152
|
+
* Delete the account, permanently: the account owner only, from their own
|
|
153
|
+
* signed-in session. `confirmation` is the organization name exactly as it
|
|
154
|
+
* stands. Stripe subscriptions end at once with nothing refunded; store
|
|
155
|
+
* subscriptions keep billing until cancelled in the store, and the answer
|
|
156
|
+
* names each one. The account's sessions end with it, so the caller signs
|
|
157
|
+
* out locally once this resolves.
|
|
158
|
+
*/
|
|
159
|
+
async deleteAccount(confirmation: string): Promise<AccountDeletionStarted> {
|
|
160
|
+
const response = await this.http.delete<AccountDeletionStarted>(apiPath`/account`, {
|
|
161
|
+
body: { confirmation },
|
|
162
|
+
});
|
|
163
|
+
return response.data;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Delete the signed-in member's own user, permanently: any member but the
|
|
168
|
+
* account owner, who deletes the account instead. `confirmation` is the
|
|
169
|
+
* member's sign-in email. Their sessions end with it, so the caller signs
|
|
170
|
+
* out locally once this resolves.
|
|
171
|
+
*/
|
|
172
|
+
async deleteProfile(confirmation: string): Promise<void> {
|
|
173
|
+
await this.http.delete(apiPath`/profile`, { body: { confirmation } });
|
|
174
|
+
}
|
|
175
|
+
|
|
123
176
|
async revokeRefreshToken(refreshToken?: string): Promise<void> {
|
|
124
177
|
const token = refreshToken ?? await this.config.tokenStorage.getRefreshToken();
|
|
125
178
|
if (!token) return;
|
package/src/http.ts
CHANGED
|
@@ -175,7 +175,7 @@ export class MobileHttpClient {
|
|
|
175
175
|
// normalize to SparkVaultNetworkError or consumers misclassify an offline
|
|
176
176
|
// failure as a generic (non-retryable) error.
|
|
177
177
|
if (err instanceof TypeError || (err instanceof Error && err.name === 'NetworkError')) {
|
|
178
|
-
return new SparkVaultNetworkError('
|
|
178
|
+
return new SparkVaultNetworkError("Couldn't reach SparkVault. Check your connection.");
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
return new SparkVaultMobileError(err instanceof Error ? err.message : 'Unknown request error');
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ingot sharing wire-contract assertions: COMPILE-TIME ONLY.
|
|
3
|
+
*
|
|
4
|
+
* `IngotSharingConfig` has no runtime: the client returns the response body as
|
|
5
|
+
* it arrives, so a unit test can never catch the type drifting from the server
|
|
6
|
+
* and every assertion would pass. `tsc --noEmit` (`pnpm typecheck`) is the gate
|
|
7
|
+
* instead. It is deliberately NOT a `*.test.ts`, which tsconfig excludes.
|
|
8
|
+
*
|
|
9
|
+
* Mirrored server source: apps/api/src/ingots/sharing.js (`formatSharingConfig`,
|
|
10
|
+
* the one shape GET and PUT /vaults/:id/ingots/:ingot_id/sharing answer). A
|
|
11
|
+
* field the server never sends reads as undefined wherever an app trusts it:
|
|
12
|
+
* a link section keyed on it never renders.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { IngotSharingConfig } from './types.js';
|
|
16
|
+
|
|
17
|
+
/** Fails to compile unless `T` resolves to exactly `true`. */
|
|
18
|
+
type Assert<T extends true> = T;
|
|
19
|
+
|
|
20
|
+
/** Invariant type equality: the SAME type, not merely mutually assignable. */
|
|
21
|
+
type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2
|
|
22
|
+
? true
|
|
23
|
+
: false;
|
|
24
|
+
|
|
25
|
+
export type IngotsWireContract = [
|
|
26
|
+
// Exactly the fields formatSharingConfig builds, every one always present.
|
|
27
|
+
Assert<
|
|
28
|
+
Equals<
|
|
29
|
+
keyof IngotSharingConfig,
|
|
30
|
+
| 'ingot_id'
|
|
31
|
+
| 'vault_id'
|
|
32
|
+
| 'sharing_enabled'
|
|
33
|
+
| 'shared'
|
|
34
|
+
| 'visibility'
|
|
35
|
+
| 'public_url'
|
|
36
|
+
| 'link_code'
|
|
37
|
+
| 'vault_all_ingots_public'
|
|
38
|
+
| 'session_length_seconds'
|
|
39
|
+
| 'invites'
|
|
40
|
+
>
|
|
41
|
+
>,
|
|
42
|
+
// The durable link and its code are null while the Ingot is not shared.
|
|
43
|
+
Assert<Equals<IngotSharingConfig['public_url'], string | null>>,
|
|
44
|
+
Assert<Equals<IngotSharingConfig['link_code'], string | null>>,
|
|
45
|
+
Assert<Equals<IngotSharingConfig['visibility'], 'invite_only' | 'authenticated' | 'public' | null>>,
|
|
46
|
+
];
|
package/src/ingots.ts
CHANGED
|
@@ -122,8 +122,25 @@ export interface UploadFromUriOptions extends UploadOptions {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
/** A replace addresses its ingot by id: no name is placed, so the create-only hooks do not apply. */
|
|
125
|
-
export interface ReplaceFromUriOptions extends Omit<UploadFromUriOptions, 'onNameConflict' | 'onIngotCreated'> {
|
|
125
|
+
export interface ReplaceFromUriOptions extends Omit<UploadFromUriOptions, 'name' | 'onNameConflict' | 'onIngotCreated'> {
|
|
126
126
|
ingotId: string;
|
|
127
|
+
/**
|
|
128
|
+
* A new name for the ingot, stored in the same request as the content.
|
|
129
|
+
* Omitted, the server keeps the name the ingot holds: a replace that sent
|
|
130
|
+
* back a name it read earlier would undo a rename made since. The result's
|
|
131
|
+
* `name` is the name the ingot is stored under either way.
|
|
132
|
+
*/
|
|
133
|
+
name?: string;
|
|
134
|
+
/**
|
|
135
|
+
* For a read-modify-write: the `content_version` of the content the
|
|
136
|
+
* replacement was built from, or null when that content carried none. The
|
|
137
|
+
* server refuses the replace with a 412 once that content has been replaced,
|
|
138
|
+
* or while another replacement of the ingot is in flight: on the PUT
|
|
139
|
+
* (`SparkVaultMobileError`) or on the upload's final PATCH
|
|
140
|
+
* (`TusUploadError`), both with `statusCode` 412. Omitted, the replace
|
|
141
|
+
* carries no precondition and overwrites whatever is stored.
|
|
142
|
+
*/
|
|
143
|
+
expectedContentVersion?: string | null;
|
|
127
144
|
}
|
|
128
145
|
|
|
129
146
|
export interface ResumeUploadOptions {
|
|
@@ -303,6 +320,24 @@ function toTypedCreateError(err: unknown): unknown {
|
|
|
303
320
|
});
|
|
304
321
|
}
|
|
305
322
|
|
|
323
|
+
/**
|
|
324
|
+
* The `content_version` the read after an upload found on its ingot: this
|
|
325
|
+
* upload's publication or a later writer's (see `UploadResult.content_version`),
|
|
326
|
+
* null when the server recorded none. That read is `verifyIngotActive`'s,
|
|
327
|
+
* which returns only an active ingot, so every upload that resolves reports it.
|
|
328
|
+
*/
|
|
329
|
+
function publicationOf(ingot: Ingot): Pick<UploadResult, 'content_version'> {
|
|
330
|
+
return { content_version: ingot.content_version ?? null };
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Forge's id for an upload: the last segment of its session URL, where
|
|
335
|
+
* resolveForgeSessionUrl placed the session Forge's create answered with.
|
|
336
|
+
*/
|
|
337
|
+
function uploadIdOf(uploadUrl: string): string {
|
|
338
|
+
return uploadUrl.slice(uploadUrl.lastIndexOf('/') + 1);
|
|
339
|
+
}
|
|
340
|
+
|
|
306
341
|
export class MobileIngotsClient {
|
|
307
342
|
// Server-side finalization (encryption) of a just-uploaded ingot runs
|
|
308
343
|
// asynchronously and scales with file size, so a large video can sit in
|
|
@@ -355,7 +390,8 @@ export class MobileIngotsClient {
|
|
|
355
390
|
fileSize: options.fileSize,
|
|
356
391
|
filename: name,
|
|
357
392
|
forgeUrl: init.forgeUrl,
|
|
358
|
-
onSessionCreated: session =>
|
|
393
|
+
onSessionCreated: session =>
|
|
394
|
+
options.onSessionCreated?.({ ...session, ingotId: init.ingotId, created, uploadId: uploadIdOf(session.uploadUrl) }),
|
|
359
395
|
onSessionExpiry: options.onSessionExpiry,
|
|
360
396
|
transport: options.transport,
|
|
361
397
|
transferPolicy: options.transferPolicy,
|
|
@@ -380,6 +416,7 @@ export class MobileIngotsClient {
|
|
|
380
416
|
// only other outcome, and it always says so).
|
|
381
417
|
created,
|
|
382
418
|
status: ingot.status,
|
|
419
|
+
...publicationOf(ingot),
|
|
383
420
|
};
|
|
384
421
|
}
|
|
385
422
|
|
|
@@ -430,6 +467,7 @@ export class MobileIngotsClient {
|
|
|
430
467
|
storage_location: 's3',
|
|
431
468
|
created: false,
|
|
432
469
|
status: ingot.status,
|
|
470
|
+
...publicationOf(ingot),
|
|
433
471
|
};
|
|
434
472
|
}
|
|
435
473
|
|
|
@@ -503,7 +541,7 @@ export class MobileIngotsClient {
|
|
|
503
541
|
}
|
|
504
542
|
|
|
505
543
|
async replaceFromUri(options: ReplaceFromUriOptions): Promise<UploadResult> {
|
|
506
|
-
const { vaultId, ingotId, vat,
|
|
544
|
+
const { vaultId, ingotId, vat, contentType, fileUri, fileSize, onProgress, abortSignal, debug } = options;
|
|
507
545
|
validateVaultId(vaultId);
|
|
508
546
|
validateIngotId(ingotId);
|
|
509
547
|
|
|
@@ -514,15 +552,24 @@ export class MobileIngotsClient {
|
|
|
514
552
|
const response = await this.http.put<IngotUploadInitResponse>(
|
|
515
553
|
apiPath`/vaults/${vaultId}/ingots/${ingotId}`,
|
|
516
554
|
{
|
|
517
|
-
name
|
|
555
|
+
// Omitted, the server keeps the stored name.
|
|
556
|
+
...(options.name !== undefined && { name: options.name }),
|
|
518
557
|
content_type: contentType,
|
|
519
558
|
size_bytes: fileSize,
|
|
520
559
|
...(options.contentHmac && { content_hmac: options.contentHmac }),
|
|
560
|
+
// Null is a precondition too (the edited content carried no version);
|
|
561
|
+
// only an omitted one leaves the replace unconditioned.
|
|
562
|
+
...(options.expectedContentVersion !== undefined && {
|
|
563
|
+
expected_content_version: options.expectedContentVersion,
|
|
564
|
+
}),
|
|
521
565
|
},
|
|
522
566
|
{ vat }
|
|
523
567
|
);
|
|
524
568
|
|
|
525
|
-
|
|
569
|
+
// The name the ingot is stored under after the PUT: the server answers
|
|
570
|
+
// it, and it is what the transfer's errors and log lines name.
|
|
571
|
+
const name = response.data.name ?? options.name;
|
|
572
|
+
if (!response.data.ingot_id || !response.data.forge_url || !name) {
|
|
526
573
|
throw new SparkVaultMobileError('Server returned invalid response for ingot replacement');
|
|
527
574
|
}
|
|
528
575
|
|
|
@@ -532,7 +579,8 @@ export class MobileIngotsClient {
|
|
|
532
579
|
filename: name,
|
|
533
580
|
forgeUrl: response.data.forge_url,
|
|
534
581
|
// A replace never mints an ingot: the row is the caller's existing one.
|
|
535
|
-
onSessionCreated: session =>
|
|
582
|
+
onSessionCreated: session =>
|
|
583
|
+
options.onSessionCreated?.({ ...session, ingotId, created: false, uploadId: uploadIdOf(session.uploadUrl) }),
|
|
536
584
|
onSessionExpiry: options.onSessionExpiry,
|
|
537
585
|
transport: options.transport,
|
|
538
586
|
transferPolicy: options.transferPolicy,
|
|
@@ -556,6 +604,7 @@ export class MobileIngotsClient {
|
|
|
556
604
|
// A replace never mints an ingot: the row is the caller's existing one.
|
|
557
605
|
created: false,
|
|
558
606
|
status: ingot.status,
|
|
607
|
+
...publicationOf(ingot),
|
|
559
608
|
};
|
|
560
609
|
}
|
|
561
610
|
|
|
@@ -903,6 +952,14 @@ export class MobileIngotsClient {
|
|
|
903
952
|
* received, publication is unconfirmed), so the caller resumes the session
|
|
904
953
|
* it persisted later, which asks Forge for the receipt again and sends no
|
|
905
954
|
* bytes, rather than recording a backup the vault may not hold.
|
|
955
|
+
*
|
|
956
|
+
* Every read is strongly consistent: an eventually consistent read can
|
|
957
|
+
* still serve the row as it stood before this upload published, and a
|
|
958
|
+
* replaced row reads `active` throughout, so that stale image would pass
|
|
959
|
+
* the status check and report a `content_version` older than this
|
|
960
|
+
* upload's. A consistent read reports the version at the read, which a
|
|
961
|
+
* later writer's publication can already have replaced: the upload's own
|
|
962
|
+
* publication is its session's `uploadId`.
|
|
906
963
|
*/
|
|
907
964
|
private async verifyIngotActive(
|
|
908
965
|
ingotRef: { vaultId: string; ingotId: string; vat: string },
|
|
@@ -912,7 +969,7 @@ export class MobileIngotsClient {
|
|
|
912
969
|
const { vaultId, ingotId, vat } = ingotRef;
|
|
913
970
|
const deadline = Date.now() + MobileIngotsClient.INGOT_STATUS_POLL_BUDGET_MS;
|
|
914
971
|
let delay = MobileIngotsClient.INGOT_STATUS_POLL_INITIAL_MS;
|
|
915
|
-
let ingot = await this.get(vaultId, ingotId, vat);
|
|
972
|
+
let ingot = await this.get(vaultId, ingotId, vat, { consistent: true });
|
|
916
973
|
|
|
917
974
|
while (ingot.status !== 'active') {
|
|
918
975
|
const remaining = deadline - Date.now();
|
|
@@ -929,7 +986,7 @@ export class MobileIngotsClient {
|
|
|
929
986
|
|
|
930
987
|
await new Promise(resolve => setTimeout(resolve, Math.min(delay, remaining)));
|
|
931
988
|
delay = Math.min(delay * 2, MobileIngotsClient.INGOT_STATUS_POLL_MAX_MS);
|
|
932
|
-
ingot = await this.get(vaultId, ingotId, vat);
|
|
989
|
+
ingot = await this.get(vaultId, ingotId, vat, { consistent: true });
|
|
933
990
|
}
|
|
934
991
|
|
|
935
992
|
return ingot;
|
package/src/types.ts
CHANGED
|
@@ -67,6 +67,13 @@ export interface SparkVaultUser {
|
|
|
67
67
|
name?: string;
|
|
68
68
|
role: OrgRole;
|
|
69
69
|
has_passkey?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Whether this user is the account owner (the member whose email is the
|
|
72
|
+
* account's email), who alone may delete the account. Only GET /v1/profile
|
|
73
|
+
* sends it: a sign-in, signup or refresh answer, and a profile save's
|
|
74
|
+
* answer, carry no flag.
|
|
75
|
+
*/
|
|
76
|
+
is_account_owner?: boolean;
|
|
70
77
|
created_at: number;
|
|
71
78
|
}
|
|
72
79
|
|
|
@@ -731,6 +738,10 @@ export interface FolderContentsResponse {
|
|
|
731
738
|
|
|
732
739
|
export interface UploadResult {
|
|
733
740
|
ingot_id: string;
|
|
741
|
+
/**
|
|
742
|
+
* The name the ingot is stored under: the server's numbered name under
|
|
743
|
+
* `new_name`, and for a replace the name it was sent, else the one it kept.
|
|
744
|
+
*/
|
|
734
745
|
name: string;
|
|
735
746
|
size_bytes: number;
|
|
736
747
|
storage_location: 's3';
|
|
@@ -749,14 +760,40 @@ export interface UploadResult {
|
|
|
749
760
|
* `retryLater` is set.
|
|
750
761
|
*/
|
|
751
762
|
status?: Ingot['status'];
|
|
763
|
+
/**
|
|
764
|
+
* The ingot's `content_version` (Forge's activation marker) as the strongly
|
|
765
|
+
* consistent read after the transfer found it, null when the server
|
|
766
|
+
* recorded none. It is this upload's publication or a later writer's that
|
|
767
|
+
* already replaced it, so it does not say which publication holds these
|
|
768
|
+
* bytes. A read-modify-write names this upload's own publication, its
|
|
769
|
+
* session's `uploadId` (`IngotUploadSession`), as the next replace's
|
|
770
|
+
* `expectedContentVersion`, so a save built on stale content is refused
|
|
771
|
+
* (412) instead of discarding another writer's changes.
|
|
772
|
+
*/
|
|
773
|
+
content_version: string | null;
|
|
752
774
|
}
|
|
753
775
|
|
|
776
|
+
/**
|
|
777
|
+
* An Ingot's durable sharing settings, as GET and PUT
|
|
778
|
+
* /vaults/:id/ingots/:ingot_id/sharing answer them (apps/api/src/ingots/sharing.js,
|
|
779
|
+
* `formatSharingConfig`; `ingots.test-d.ts` pins the field set).
|
|
780
|
+
*/
|
|
754
781
|
export interface IngotSharingConfig {
|
|
782
|
+
ingot_id: string;
|
|
783
|
+
vault_id: string;
|
|
784
|
+
/** Whether the vault shares files at all. */
|
|
785
|
+
sharing_enabled: boolean;
|
|
755
786
|
shared: boolean;
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
787
|
+
/** Null while the Ingot is not shared. */
|
|
788
|
+
visibility: 'invite_only' | 'authenticated' | 'public' | null;
|
|
789
|
+
/** The Ingot's durable files.sv link; null while it is not shared. */
|
|
790
|
+
public_url: string | null;
|
|
791
|
+
/** The code in `public_url`; null while the Ingot is not shared. */
|
|
792
|
+
link_code: string | null;
|
|
793
|
+
/** Whether the vault makes every Ingot public, which pins this one to Public. */
|
|
794
|
+
vault_all_ingots_public: boolean;
|
|
795
|
+
session_length_seconds: number;
|
|
796
|
+
invites: IngotInvite[];
|
|
760
797
|
}
|
|
761
798
|
|
|
762
799
|
export interface IngotInvite {
|
|
@@ -892,6 +929,16 @@ export interface IngotUploadSession extends TusSessionInfo {
|
|
|
892
929
|
ingotId: string;
|
|
893
930
|
/** Whether the upload minted the ingot (see `UploadResult.created`). */
|
|
894
931
|
created: boolean;
|
|
932
|
+
/**
|
|
933
|
+
* Forge's id for this upload (the session URL's last segment), which the
|
|
934
|
+
* server stamps as the ingot's `content_version` when the upload publishes.
|
|
935
|
+
* Forge acknowledges the final chunk only once the upload published, so an
|
|
936
|
+
* upload that succeeded published as this id. One that failed with its last
|
|
937
|
+
* answer lost may still have published, or publish later: the ingot's
|
|
938
|
+
* `content_version` reading this id says it did, and any other value proves
|
|
939
|
+
* nothing either way.
|
|
940
|
+
*/
|
|
941
|
+
uploadId: string;
|
|
895
942
|
}
|
|
896
943
|
|
|
897
944
|
/**
|