@sparkvault/sdk-mobile 7.0.1 → 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/app-sdk/upload-publication.d.ts +52 -1
- package/dist/app-sdk/upload-publication.js +57 -1
- package/dist/app-sdk/upload-publication.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/app-sdk/upload-publication.js +63 -1
- 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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"}
|
|
@@ -12,7 +12,18 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export function uploadTransferReference(istk: string): string;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Why Core revoked the upload token a forge-transactions record is
|
|
16
|
+
* (UPLOAD_TOKEN_REVOCATION's reasons), or null for any other record, or none:
|
|
17
|
+
* the one reading Core's mint and every Forge read of a token apply.
|
|
18
|
+
*
|
|
19
|
+
* @param {Object|null|undefined} record - A forge-transactions record, or none
|
|
20
|
+
* @returns {string|null}
|
|
21
|
+
*/
|
|
22
|
+
export function uploadTokenRevocationReason(record: Object | null | undefined): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* The upload publication contract between Forge and Core's activation, and
|
|
25
|
+
* the facts of a transfer token both services spell: its shape, and Core's
|
|
26
|
+
* revocation of an upload's token.
|
|
16
27
|
*
|
|
17
28
|
* Forge stamps UPLOAD_PUBLICATION_PROTOCOL on every upload session it creates
|
|
18
29
|
* and on the final state it hands Core's activation (POST
|
|
@@ -38,6 +49,15 @@ export const UPLOAD_PUBLICATION_PROTOCOL: 2;
|
|
|
38
49
|
* the session's id.
|
|
39
50
|
*/
|
|
40
51
|
export const UPLOAD_ID_PATTERN: RegExp;
|
|
52
|
+
/** The random bytes an ISTK, the bearer token of one Forge transfer, is spelled from. */
|
|
53
|
+
export const ISTK_BYTES: 32;
|
|
54
|
+
/**
|
|
55
|
+
* An ISTK as Core mints one: the unpadded base64url of its ISTK_BYTES random
|
|
56
|
+
* bytes, 43 characters. Forge reads a presented token as a forge-transactions
|
|
57
|
+
* key only in this shape: the table keys other records too (an upload's token
|
|
58
|
+
* pointer, `UPLOAD_TOKEN#{upload_id}`), which no request may read as a token.
|
|
59
|
+
*/
|
|
60
|
+
export const ISTK_PATTERN: RegExp;
|
|
41
61
|
/**
|
|
42
62
|
* How much of an ISTK names a transfer's charge on the usage ledger: enough to
|
|
43
63
|
* be unique to the token, never the whole bearer credential.
|
|
@@ -72,6 +92,37 @@ export const UPLOAD_REFUSAL_CODES: Readonly<{
|
|
|
72
92
|
* any other a gone session.
|
|
73
93
|
*/
|
|
74
94
|
export const UPLOAD_FINAL_REFUSAL_CODES: readonly ("UPLOAD_SUPERSEDED" | "UPLOAD_POOL_FULL")[];
|
|
95
|
+
/**
|
|
96
|
+
* The words an upload a later staging of its ingot superseded is refused in
|
|
97
|
+
* (UPLOAD_SUPERSEDED), whichever service meets it: Core's activation, Core's
|
|
98
|
+
* mint of a token it revoked before issuing it, and Forge meeting a token Core
|
|
99
|
+
* revoked when the later staging superseded its upload.
|
|
100
|
+
*/
|
|
101
|
+
export const UPLOAD_SUPERSEDED_MESSAGE: "A later upload replaced this one before it finished. The later upload is the one kept, so this one was discarded.";
|
|
102
|
+
/**
|
|
103
|
+
* Core's revocation of an upload's encrypt token: the `status` it writes on
|
|
104
|
+
* the token's forge-transactions record, and the `revoked_reason` beside it,
|
|
105
|
+
* written by the write that ends the upload's staging. Each reason is the
|
|
106
|
+
* refusal every reader of the token answers the upload with from then on,
|
|
107
|
+
* as Core's activation refuses such an upload: Core's mint of a token it
|
|
108
|
+
* revoked before issuing it, and Forge on every request the token, or a
|
|
109
|
+
* session it opened, makes.
|
|
110
|
+
*
|
|
111
|
+
* - UPLOAD_SUPERSEDED: a later staging of its ingot superseded the upload
|
|
112
|
+
* (410 UPLOAD_SUPERSEDED, in UPLOAD_SUPERSEDED_MESSAGE's words), which no
|
|
113
|
+
* new upload remedies;
|
|
114
|
+
* - INGOT_DELETED: the ingot it was staged onto was deleted, by a delete or
|
|
115
|
+
* the cascade of its folder, vault or account (a 404 naming the ingot, as
|
|
116
|
+
* activation answers an upload whose ingot is gone), which ends the upload
|
|
117
|
+
* alone: a new upload can store the file again.
|
|
118
|
+
*/
|
|
119
|
+
export const UPLOAD_TOKEN_REVOCATION: Readonly<{
|
|
120
|
+
status: "revoked";
|
|
121
|
+
reasons: Readonly<{
|
|
122
|
+
UPLOAD_SUPERSEDED: "UPLOAD_SUPERSEDED";
|
|
123
|
+
INGOT_DELETED: "INGOT_DELETED";
|
|
124
|
+
}>;
|
|
125
|
+
}>;
|
|
75
126
|
/**
|
|
76
127
|
* The response header that names the code Core refused an upload with for
|
|
77
128
|
* good: Forge sends it on every terminal answer to a tus request, a HEAD's
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
// Source of truth: packages/app-sdk/src/upload-publication.js
|
|
3
3
|
// Regenerate with: pnpm --filter @sparkvault/sdk-mobile build
|
|
4
4
|
/**
|
|
5
|
-
* The upload publication contract between Forge and Core's activation
|
|
5
|
+
* The upload publication contract between Forge and Core's activation, and
|
|
6
|
+
* the facts of a transfer token both services spell: its shape, and Core's
|
|
7
|
+
* revocation of an upload's token.
|
|
6
8
|
*
|
|
7
9
|
* Forge stamps UPLOAD_PUBLICATION_PROTOCOL on every upload session it creates
|
|
8
10
|
* and on the final state it hands Core's activation (POST
|
|
@@ -28,6 +30,15 @@ export const UPLOAD_PUBLICATION_PROTOCOL = 2;
|
|
|
28
30
|
* the session's id.
|
|
29
31
|
*/
|
|
30
32
|
export const UPLOAD_ID_PATTERN = /^tus_[0-9a-f]{32}$/;
|
|
33
|
+
/** The random bytes an ISTK, the bearer token of one Forge transfer, is spelled from. */
|
|
34
|
+
export const ISTK_BYTES = 32;
|
|
35
|
+
/**
|
|
36
|
+
* An ISTK as Core mints one: the unpadded base64url of its ISTK_BYTES random
|
|
37
|
+
* bytes, 43 characters. Forge reads a presented token as a forge-transactions
|
|
38
|
+
* key only in this shape: the table keys other records too (an upload's token
|
|
39
|
+
* pointer, `UPLOAD_TOKEN#{upload_id}`), which no request may read as a token.
|
|
40
|
+
*/
|
|
41
|
+
export const ISTK_PATTERN = new RegExp(`^[A-Za-z0-9_-]{${Math.ceil((ISTK_BYTES * 4) / 3)}}$`);
|
|
31
42
|
/**
|
|
32
43
|
* How much of an ISTK names a transfer's charge on the usage ledger: enough to
|
|
33
44
|
* be unique to the token, never the whole bearer credential.
|
|
@@ -83,6 +94,51 @@ export const UPLOAD_FINAL_REFUSAL_CODES = Object.freeze([
|
|
|
83
94
|
UPLOAD_REFUSAL_CODES.UPLOAD_POOL_FULL,
|
|
84
95
|
UPLOAD_REFUSAL_CODES.UPLOAD_SUPERSEDED
|
|
85
96
|
]);
|
|
97
|
+
/**
|
|
98
|
+
* The words an upload a later staging of its ingot superseded is refused in
|
|
99
|
+
* (UPLOAD_SUPERSEDED), whichever service meets it: Core's activation, Core's
|
|
100
|
+
* mint of a token it revoked before issuing it, and Forge meeting a token Core
|
|
101
|
+
* revoked when the later staging superseded its upload.
|
|
102
|
+
*/
|
|
103
|
+
export const UPLOAD_SUPERSEDED_MESSAGE = 'A later upload replaced this one before it finished. The later upload is the one kept, so this one was discarded.';
|
|
104
|
+
/**
|
|
105
|
+
* Core's revocation of an upload's encrypt token: the `status` it writes on
|
|
106
|
+
* the token's forge-transactions record, and the `revoked_reason` beside it,
|
|
107
|
+
* written by the write that ends the upload's staging. Each reason is the
|
|
108
|
+
* refusal every reader of the token answers the upload with from then on,
|
|
109
|
+
* as Core's activation refuses such an upload: Core's mint of a token it
|
|
110
|
+
* revoked before issuing it, and Forge on every request the token, or a
|
|
111
|
+
* session it opened, makes.
|
|
112
|
+
*
|
|
113
|
+
* - UPLOAD_SUPERSEDED: a later staging of its ingot superseded the upload
|
|
114
|
+
* (410 UPLOAD_SUPERSEDED, in UPLOAD_SUPERSEDED_MESSAGE's words), which no
|
|
115
|
+
* new upload remedies;
|
|
116
|
+
* - INGOT_DELETED: the ingot it was staged onto was deleted, by a delete or
|
|
117
|
+
* the cascade of its folder, vault or account (a 404 naming the ingot, as
|
|
118
|
+
* activation answers an upload whose ingot is gone), which ends the upload
|
|
119
|
+
* alone: a new upload can store the file again.
|
|
120
|
+
*/
|
|
121
|
+
export const UPLOAD_TOKEN_REVOCATION = Object.freeze({
|
|
122
|
+
status: 'revoked',
|
|
123
|
+
reasons: Object.freeze({
|
|
124
|
+
UPLOAD_SUPERSEDED: UPLOAD_REFUSAL_CODES.UPLOAD_SUPERSEDED,
|
|
125
|
+
INGOT_DELETED: 'INGOT_DELETED'
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
const REVOCATION_REASONS = Object.values(UPLOAD_TOKEN_REVOCATION.reasons);
|
|
129
|
+
/**
|
|
130
|
+
* Why Core revoked the upload token a forge-transactions record is
|
|
131
|
+
* (UPLOAD_TOKEN_REVOCATION's reasons), or null for any other record, or none:
|
|
132
|
+
* the one reading Core's mint and every Forge read of a token apply.
|
|
133
|
+
*
|
|
134
|
+
* @param {Object|null|undefined} record - A forge-transactions record, or none
|
|
135
|
+
* @returns {string|null}
|
|
136
|
+
*/
|
|
137
|
+
export function uploadTokenRevocationReason(record) {
|
|
138
|
+
if (record?.status !== UPLOAD_TOKEN_REVOCATION.status)
|
|
139
|
+
return null;
|
|
140
|
+
return REVOCATION_REASONS.includes(record.revoked_reason) ? record.revoked_reason : null;
|
|
141
|
+
}
|
|
86
142
|
/**
|
|
87
143
|
* The response header that names the code Core refused an upload with for
|
|
88
144
|
* good: Forge sends it on every terminal answer to a tus request, a HEAD's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-publication.js","sourceRoot":"","sources":["../../src/app-sdk/upload-publication.js"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,8DAA8D;AAC9D,8DAA8D;AAE9D
|
|
1
|
+
{"version":3,"file":"upload-publication.js","sourceRoot":"","sources":["../../src/app-sdk/upload-publication.js"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,8DAA8D;AAC9D,8DAA8D;AAE9D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,yFAAyF;AACzF,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAI;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,6BAA6B,EAAE,CAAC;QAC5E,MAAM,IAAI,SAAS,CACjB,+EAA+E,6BAA6B,aAAa,CAC1H,CAAC;IACJ,CAAC;IACD,OAAO,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC,EAAE,CAAC;AACvF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;IACtD,oBAAoB,CAAC,gBAAgB;IACrC,oBAAoB,CAAC,iBAAiB;CACvC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,mHAAmH,CAAC;AAEtH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,iBAAiB,EAAE,oBAAoB,CAAC,iBAAiB;QACzD,aAAa,EAAE,eAAe;KAC/B,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAM;IAChD,IAAI,MAAM,EAAE,MAAM,KAAK,uBAAuB,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACnE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC"}
|
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":"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"}
|
|
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
|
}
|