@efffrida/gplayapi 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/GooglePlayApi.d.ts
CHANGED
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @since 1.0.0
|
|
6
6
|
*/
|
|
7
|
-
import type * as PlatformError from "effect/PlatformError";
|
|
8
7
|
import type * as Schema from "effect/Schema";
|
|
9
8
|
import type * as Scope from "effect/Scope";
|
|
10
9
|
import type * as HttpClientError from "effect/unstable/http/HttpClientError";
|
|
10
|
+
import * as Cause from "effect/Cause";
|
|
11
11
|
import * as Crypto from "effect/Crypto";
|
|
12
12
|
import * as Effect from "effect/Effect";
|
|
13
13
|
import * as FileSystem from "effect/FileSystem";
|
|
14
|
+
import * as PlatformError from "effect/PlatformError";
|
|
14
15
|
import * as Stream from "effect/Stream";
|
|
15
16
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
16
17
|
import { type BulkDetailsResponse, type BuyResponse, type DeliveryResponse, type DetailsResponse } from "./generated/GooglePlay_pb.ts";
|
|
@@ -90,7 +91,7 @@ export declare const downloadToStreams: (bundleIdentifier: string, options?: {
|
|
|
90
91
|
size: bigint;
|
|
91
92
|
name: string;
|
|
92
93
|
url: string;
|
|
93
|
-
}[]], HttpClientError.HttpClientError | Schema.SchemaError, HttpClient.HttpClient | AndroidDeviceService>;
|
|
94
|
+
}[]], HttpClientError.HttpClientError | Schema.SchemaError | Cause.NoSuchElementError, HttpClient.HttpClient | AndroidDeviceService>;
|
|
94
95
|
/**
|
|
95
96
|
* @since 1.0.0
|
|
96
97
|
* @category API
|
|
@@ -126,5 +127,5 @@ export declare const downloadToDisk: (bundleIdentifier: string, options?: {
|
|
|
126
127
|
} | {
|
|
127
128
|
"SHA-512": string;
|
|
128
129
|
};
|
|
129
|
-
}[]], HttpClientError.HttpClientError | Schema.SchemaError | PlatformError.PlatformError, HttpClient.HttpClient | AndroidDeviceService | FileSystem.FileSystem | Scope.Scope | Crypto.Crypto>;
|
|
130
|
+
}[]], HttpClientError.HttpClientError | Schema.SchemaError | PlatformError.PlatformError | Cause.NoSuchElementError, HttpClient.HttpClient | AndroidDeviceService | FileSystem.FileSystem | Scope.Scope | Crypto.Crypto>;
|
|
130
131
|
//# sourceMappingURL=GooglePlayApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GooglePlayApi.d.ts","sourceRoot":"","sources":["../src/GooglePlayApi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"GooglePlayApi.d.ts","sourceRoot":"","sources":["../src/GooglePlayApi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,eAAe,MAAM,sCAAsC,CAAC;AAG7E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMvE,OAAO;AACH;;;GAGG;AACH,aAAa;AAEb;;;GAGG;AACH,OAAO,IAAI,oBAAoB,GAClC,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,OAAO,kKAkBlB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW,sKAuBtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ;eAEK,MAAM;iBAAe,MAAM,GAAG,MAAM;sBAAoB,MAAM;oIAsBtF,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ;eAGF,MAAM;mBACF,MAAM;iBACR,MAAM,GAAG,MAAM;sBACV,MAAM,GAAG,SAAS;yIAwB1C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;gBAIJ,MAAM,GAAG,SAAS;kBAChB,MAAM,GAAG,MAAM,GAAG,SAAS;;YAKvC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC;eAC9D;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;UAChG,MAAM;UACN,MAAM;SACP,MAAM;;YAJH,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC;eAC9D;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;UAChG,MAAM;UACN,MAAM;SACP,MAAM;oIAqFjB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;gBAID,MAAM,GAAG,SAAS;kBAChB,MAAM,GAAG,MAAM,GAAG,SAAS;;SAK1C,MAAM;UACL,MAAM;UACN,MAAM;UACN,MAAM;eACD;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;;SAJjG,MAAM;UACL,MAAM;UACN,MAAM;UACN,MAAM;eACD;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;wNAqE5G,CAAC"}
|
package/dist/GooglePlayApi.js
CHANGED
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
* @since 1.0.0
|
|
6
6
|
*/
|
|
7
7
|
import * as Array from "effect/Array";
|
|
8
|
+
import * as Cause from "effect/Cause";
|
|
8
9
|
import * as Crypto from "effect/Crypto";
|
|
9
10
|
import * as Effect from "effect/Effect";
|
|
10
11
|
import * as FileSystem from "effect/FileSystem";
|
|
11
12
|
import * as Match from "effect/Match";
|
|
13
|
+
import * as PlatformError from "effect/PlatformError";
|
|
12
14
|
import * as Stream from "effect/Stream";
|
|
13
15
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
14
16
|
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
@@ -129,7 +131,7 @@ export const downloadToStreams = /*#__PURE__*/Effect.fnUntraced(function* (bundl
|
|
|
129
131
|
});
|
|
130
132
|
const mainDeliveryData = deliveryResult?.appDeliveryData;
|
|
131
133
|
if (mainDeliveryData === undefined) {
|
|
132
|
-
return yield*
|
|
134
|
+
return yield* new Cause.NoSuchElementError();
|
|
133
135
|
}
|
|
134
136
|
const main = Effect.gen(function* () {
|
|
135
137
|
const integrity = Buffer.from(mainDeliveryData.sha256, "base64url").toString("hex");
|
|
@@ -192,7 +194,9 @@ export const downloadToDisk = /*#__PURE__*/Effect.fnUntraced(function* (bundleId
|
|
|
192
194
|
size,
|
|
193
195
|
integrity
|
|
194
196
|
}) {
|
|
195
|
-
const file = yield* fileSystem.makeTempFileScoped(
|
|
197
|
+
const file = yield* fileSystem.makeTempFileScoped({
|
|
198
|
+
suffix: ".apk"
|
|
199
|
+
});
|
|
196
200
|
const digestAlgorithm = Match.value(integrity).pipe(Match.when({
|
|
197
201
|
"SHA-1": Match.string
|
|
198
202
|
}, () => "SHA-1"), Match.when({
|
|
@@ -205,7 +209,12 @@ export const downloadToDisk = /*#__PURE__*/Effect.fnUntraced(function* (bundleId
|
|
|
205
209
|
const expectedIntegrity = integrity[digestAlgorithm];
|
|
206
210
|
const downloadedIntegrity = yield* stream.pipe(Stream.tapSink(fileSystem.sink(file)), digest(digestAlgorithm));
|
|
207
211
|
if (downloadedIntegrity !== expectedIntegrity) {
|
|
208
|
-
return yield*
|
|
212
|
+
return yield* new PlatformError.PlatformError(new PlatformError.SystemError({
|
|
213
|
+
_tag: "InvalidData",
|
|
214
|
+
module: "GooglePlayApi",
|
|
215
|
+
method: "downloadToDisk",
|
|
216
|
+
description: `Downloaded ${name} integrity mismatch: expected ${integrity}, got ${downloadedIntegrity}`
|
|
217
|
+
}));
|
|
209
218
|
}
|
|
210
219
|
return {
|
|
211
220
|
url,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GooglePlayApi.js","names":["Array","Crypto","Effect","FileSystem","Match","Stream","HttpClient","HttpClientRequest","BulkDetailsRequestSchema","Service","AndroidDeviceService","decodeResponseFromResponseWrapper","encodeRequest","fdfeBase","AndroidDevice","details","fnUntraced","bundleIdentifier","decoderDetailsResponse","device","httpRequest","get","urlParams","doc","headers","authHeaders","pipe","prependUrl","httpResponse","execute","pbResponse","bulkDetails","decoderBulkDetailsResponse","encoderBulkDetailsRequest","includeDetails","includeChildDocs","DocId","post","pbRequest","purchase","options","decoderBuyResponse","ch","certificateHash","ot","offerType","toString","vc","versionCode","delivery","decoderDeliveryResponse","dtok","deliveryToken","downloadToStreams","item","offer","appDetails","encodedDeliveryToken","deliveryResult","mainDeliveryData","appDeliveryData","undefined","
|
|
1
|
+
{"version":3,"file":"GooglePlayApi.js","names":["Array","Cause","Crypto","Effect","FileSystem","Match","PlatformError","Stream","HttpClient","HttpClientRequest","BulkDetailsRequestSchema","Service","AndroidDeviceService","decodeResponseFromResponseWrapper","encodeRequest","fdfeBase","AndroidDevice","details","fnUntraced","bundleIdentifier","decoderDetailsResponse","device","httpRequest","get","urlParams","doc","headers","authHeaders","pipe","prependUrl","httpResponse","execute","pbResponse","bulkDetails","decoderBulkDetailsResponse","encoderBulkDetailsRequest","includeDetails","includeChildDocs","DocId","post","pbRequest","purchase","options","decoderBuyResponse","ch","certificateHash","ot","offerType","toString","vc","versionCode","delivery","decoderDeliveryResponse","dtok","deliveryToken","downloadToStreams","item","offer","appDetails","encodedDeliveryToken","deliveryResult","mainDeliveryData","appDeliveryData","undefined","NoSuchElementError","main","gen","integrity","Buffer","from","sha256","stream","downloadUrl","map","response","logDebug","downloadSize","name","url","size","splits","splitDeliveryData","split","expansions","additionalFile","expansion","typeStr","fileType","sha1","all","downloadToDisk","fileSystem","streams","digest","algorithm","mkUint8Array","flatMap","buffer","use","crypto","digestBuffer","fromIterable","b","padStart","join","write","file","makeTempFileScoped","suffix","digestAlgorithm","value","when","string","exhaustive","expectedIntegrity","downloadedIntegrity","tapSink","sink","SystemError","_tag","module","method","description","effects"],"sources":["../src/GooglePlayApi.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;AAWA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,aAAa,MAAM,sBAAsB;AACrD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,iCAAiC;AAC7D,OAAO,KAAKC,iBAAiB,MAAM,wCAAwC;AAE3E,SACIC,wBAAwB,QAKrB,8BAA8B;AACrC,SAASC,OAAO,IAAIC,oBAAoB,QAAQ,sBAAsB;AACtE,SAASC,iCAAiC,EAAEC,aAAa,QAAQ,oBAAoB;AAErF;AACA,MAAMC,QAAQ,GAAG,yCAAyC;AAE1D;AACI;;;;AAIAC,aAAa;AAEb;;;;AAIAL,OAAO,IAAIC,oBAAoB,QAC5B,sBAAsB;AAE7B;;;;AAIA,OAAO,MAAMK,OAAO,gBAAGd,MAAM,CAACe,UAAU,CAAC,WACrCC,gBAAwB;EAMxB,MAAMC,sBAAsB,GAAGP,iCAAiC,CAAC,iBAAiB,CAAC;EACnF,MAAMQ,MAAM,GAAG,OAAOT,oBAAoB;EAE1C,MAAMU,WAAW,GAAGb,iBAAiB,CAACc,GAAG,CAAC,UAAU,EAAE;IAClDC,SAAS,EAAE;MAAEC,GAAG,EAAEN;IAAgB,CAAE;IACpCO,OAAO,EAAE,OAAOL,MAAM,CAACM;GAC1B,CAAC,CAACC,IAAI,CAACnB,iBAAiB,CAACoB,UAAU,CAACd,QAAQ,CAAC,CAAC;EAE/C,MAAMe,YAAY,GAAG,OAAOtB,UAAU,CAACuB,OAAO,CAACT,WAAW,CAAC;EAC3D,MAAMU,UAAU,GAAG,OAAOZ,sBAAsB,CAACU,YAAY,CAAC;EAC9D,OAAOE,UAAU;AACrB,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,WAAW,gBAAG9B,MAAM,CAACe,UAAU,CAAC,WACzCC,gBAAwB;EAMxB,MAAMe,0BAA0B,GAAGrB,iCAAiC,CAAC,qBAAqB,CAAC;EAC3F,MAAMsB,yBAAyB,GAAGrB,aAAa,CAACJ,wBAAwB,EAAE;IACtE0B,cAAc,EAAE,IAAI;IACpBC,gBAAgB,EAAE,IAAI;IACtBC,KAAK,EAAE,CAACnB,gBAAgB;GAC3B,CAAC;EAEF,MAAME,MAAM,GAAG,OAAOT,oBAAoB;EAC1C,MAAMU,WAAW,GAAGb,iBAAiB,CAAC8B,IAAI,CAAC,cAAc,EAAE;IACvDb,OAAO,EAAE,OAAOL,MAAM,CAACM;GAC1B,CAAC,CAACC,IAAI,CAACnB,iBAAiB,CAACoB,UAAU,CAACd,QAAQ,CAAC,CAAC;EAE/C,MAAMyB,SAAS,GAAG,OAAOL,yBAAyB,CAACb,WAAW,CAAC;EAC/D,MAAMQ,YAAY,GAAG,OAAOtB,UAAU,CAACuB,OAAO,CAACS,SAAS,CAAC;EACzD,MAAMR,UAAU,GAAG,OAAOE,0BAA0B,CAACJ,YAAY,CAAC;EAClE,OAAOE,UAAU;AACrB,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMS,QAAQ,gBAAGtC,MAAM,CAACe,UAAU,CAAC,WACtCC,gBAAwB,EACxBuB,OAAsF;EAMtF,MAAMC,kBAAkB,GAAG9B,iCAAiC,CAAC,aAAa,CAAC;EAE3E,MAAMQ,MAAM,GAAG,OAAOT,oBAAoB;EAC1C,MAAMU,WAAW,GAAGb,iBAAiB,CAAC8B,IAAI,CAAC,WAAW,EAAE;IACpDb,OAAO,EAAE,OAAOL,MAAM,CAACM,WAAW;IAClCH,SAAS,EAAE;MACPC,GAAG,EAAEN,gBAAgB;MACrByB,EAAE,EAAEF,OAAO,CAACG,eAAe,IAAI,EAAE;MACjCC,EAAE,EAAEJ,OAAO,CAACK,SAAS,CAACC,QAAQ,EAAE;MAChCC,EAAE,EAAEP,OAAO,CAACQ,WAAW,CAACF,QAAQ;;GAEvC,CAAC,CAACpB,IAAI,CAACnB,iBAAiB,CAACoB,UAAU,CAACd,QAAQ,CAAC,CAAC;EAE/C,MAAMe,YAAY,GAAG,OAAOtB,UAAU,CAACuB,OAAO,CAACT,WAAW,CAAC;EAC3D,MAAMU,UAAU,GAAG,OAAOW,kBAAkB,CAACb,YAAY,CAAC;EAC1D,OAAOE,UAAU;AACrB,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMmB,QAAQ,gBAAGhD,MAAM,CAACe,UAAU,CAAC,WACtCC,gBAAwB,EACxBuB,OAKC;EAMD,MAAMU,uBAAuB,GAAGvC,iCAAiC,CAAC,kBAAkB,CAAC;EAErF,MAAMQ,MAAM,GAAG,OAAOT,oBAAoB;EAC1C,MAAMU,WAAW,GAAGb,iBAAiB,CAACc,GAAG,CAAC,WAAW,EAAE;IACnDG,OAAO,EAAE,OAAOL,MAAM,CAACM,WAAW;IAClCH,SAAS,EAAE;MACPC,GAAG,EAAEN,gBAAgB;MACrBkC,IAAI,EAAEX,OAAO,CAACY,aAAa;MAC3BV,EAAE,EAAEF,OAAO,CAACG,eAAe,IAAI,EAAE;MACjCC,EAAE,EAAEJ,OAAO,CAACK,SAAS,CAACC,QAAQ,EAAE;MAChCC,EAAE,EAAEP,OAAO,CAACQ,WAAW,CAACF,QAAQ;;GAEvC,CAAC,CAACpB,IAAI,CAACnB,iBAAiB,CAACoB,UAAU,CAACd,QAAQ,CAAC,CAAC;EAE/C,MAAMe,YAAY,GAAG,OAAOtB,UAAU,CAACuB,OAAO,CAACT,WAAW,CAAC;EAC3D,MAAMU,UAAU,GAAG,OAAOoB,uBAAuB,CAACtB,YAAY,CAAC;EAC/D,OAAOE,UAAU;AACrB,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMuB,iBAAiB,gBAAGpD,MAAM,CAACe,UAAU,CAAC,WAC/CC,gBAAwB,EACxBuB,OAKe;EAYf,MAAM;IAAEc;EAAI,CAAE,GAAG,OAAOvC,OAAO,CAACE,gBAAgB,CAAC;EACjD,MAAM4B,SAAS,GAAGL,OAAO,EAAEK,SAAS,IAAIS,IAAI,EAAEC,KAAK,CAAC,CAAC,CAAC,CAACV,SAAS,IAAI,CAAC;EACrE,MAAMG,WAAW,GAAGR,OAAO,EAAEQ,WAAW,IAAIM,IAAI,EAAEvC,OAAO,EAAEyC,UAAU,EAAER,WAAW,IAAI,CAAC;EAEvF,MAAM;IAAES;EAAoB,CAAE,GAAG,OAAOlB,QAAQ,CAACtB,gBAAgB,EAAE;IAC/D4B,SAAS,EAAEA,SAAS;IACpBG,WAAW,EAAEA;GAChB,CAAC;EAEF,MAAMU,cAAc,GAAG,OAAOT,QAAQ,CAAChC,gBAAgB,EAAE;IACrDmC,aAAa,EAAEK,oBAAoB;IACnCZ,SAAS,EAAEA,SAAS;IACpBG,WAAW,EAAEA;GAChB,CAAC;EAEF,MAAMW,gBAAgB,GAAGD,cAAc,EAAEE,eAAe;EACxD,IAAID,gBAAgB,KAAKE,SAAS,EAAE;IAChC,OAAO,OAAO,IAAI9D,KAAK,CAAC+D,kBAAkB,EAAE;EAChD;EAEA,MAAMC,IAAI,GAAG9D,MAAM,CAAC+D,GAAG,CAAC,aAAS;IAC7B,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACR,gBAAgB,CAACS,MAAM,EAAE,WAAW,CAAC,CAACtB,QAAQ,CAAC,KAAK,CAAC;IACnF,MAAMuB,MAAM,GAAG,OAAO/D,UAAU,CAACe,GAAG,CAACsC,gBAAgB,CAACW,WAAW,CAAC,CAAC5C,IAAI,CACnEzB,MAAM,CAACsE,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,MAAM,CAAC,CAC5C;IAED,OAAOpE,MAAM,CAACwE,QAAQ,CAClB,uBAAuBd,gBAAgB,CAACe,YAAY,cAAcf,gBAAgB,CAACW,WAAW,mBAAmBL,SAAS,UAAU,CACvI;IAED,OAAO;MACHI,MAAM;MACNM,IAAI,EAAE,GAAG1D,gBAAgB,MAAM;MAC/B2D,GAAG,EAAEjB,gBAAgB,CAACW,WAAW;MACjCO,IAAI,EAAElB,gBAAgB,CAACe,YAAY;MACnCT,SAAS,EAAE;QAAE,SAAS,EAAEA;MAAS;KACpC;EACL,CAAC,CAAC;EAEF,MAAMa,MAAM,GAAGhF,KAAK,CAACyE,GAAG,CAACZ,gBAAgB,CAACoB,iBAAiB,EAAGC,KAAK,IAC/D/E,MAAM,CAAC+D,GAAG,CAAC,aAAS;IAChB,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACa,KAAK,CAACZ,MAAM,EAAE,WAAW,CAAC,CAACtB,QAAQ,CAAC,KAAK,CAAC;IACxE,MAAMuB,MAAM,GAAG,OAAO/D,UAAU,CAACe,GAAG,CAAC2D,KAAK,CAACV,WAAW,CAAC,CAAC5C,IAAI,CAACzB,MAAM,CAACsE,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,MAAM,CAAC,CAAC;IAEvG,OAAOpE,MAAM,CAACwE,QAAQ,CAClB,iBAAiBO,KAAK,CAACL,IAAI,OAAOK,KAAK,CAACN,YAAY,cAAcM,KAAK,CAACV,WAAW,mBAAmBL,SAAS,UAAU,CAC5H;IAED,OAAO;MACHI,MAAM;MACNO,GAAG,EAAEI,KAAK,CAACV,WAAW;MACtBO,IAAI,EAAEG,KAAK,CAACN,YAAY;MACxBC,IAAI,EAAE,GAAGK,KAAK,CAACL,IAAI,MAAM;MACzBV,SAAS,EAAE;QAAE,SAAS,EAAEA;MAAS;KACpC;EACL,CAAC,CAAC,CACL;EAED,MAAMgB,UAAU,GAAGnF,KAAK,CAACyE,GAAG,CAACZ,gBAAgB,CAACuB,cAAc,EAAGC,SAAS,IACpElF,MAAM,CAAC+D,GAAG,CAAC,aAAS;IAChB,MAAMoB,OAAO,GAAGD,SAAS,CAACE,QAAQ,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO;IAC3D,MAAMV,IAAI,GAAG,GAAGS,OAAO,IAAID,SAAS,CAACnC,WAAW,IAAI/B,gBAAgB,MAAM;IAC1E,MAAMgD,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACgB,SAAS,CAACG,IAAI,EAAE,WAAW,CAAC,CAACxC,QAAQ,CAAC,KAAK,CAAC;IAC1E,MAAMuB,MAAM,GAAG,OAAO/D,UAAU,CAACe,GAAG,CAAC8D,SAAS,CAACb,WAAW,CAAC,CAAC5C,IAAI,CAACzB,MAAM,CAACsE,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,MAAM,CAAC,CAAC;IAE3G,OAAOpE,MAAM,CAACwE,QAAQ,CAClB,0BAA0BE,IAAI,OAAOQ,SAAS,CAACN,IAAI,cAAcM,SAAS,CAACb,WAAW,mBAAmBL,SAAS,QAAQ,CAC7H;IAED,OAAO;MACHU,IAAI;MACJN,MAAM;MACNQ,IAAI,EAAEM,SAAS,CAACN,IAAI;MACpBD,GAAG,EAAEO,SAAS,CAACb,WAAW;MAC1BL,SAAS,EAAE;QAAE,OAAO,EAAEA;MAAS;KAClC;EACL,CAAC,CAAC,CACL;EAED,OAAO,OAAOhE,MAAM,CAACsF,GAAG,CAAC,CAACxB,IAAI,EAAE,GAAGe,MAAM,EAAE,GAAGG,UAAU,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMO,cAAc,gBAAGvF,MAAM,CAACe,UAAU,CAAC,WAC5CC,gBAAwB,EACxBuB,OAKe;EAYf,MAAMiD,UAAU,GAAG,OAAOvF,UAAU,CAACA,UAAU;EAC/C,MAAMwF,OAAO,GAAG,OAAOrC,iBAAiB,CAACpC,gBAAgB,EAAEuB,OAAO,CAAC;EAEnE,MAAMmD,MAAM,GACPC,SAAiC,IAE9BvB,MAAuC,IAEvCA,MAAM,CAAC3C,IAAI,CACPrB,MAAM,CAACwF,YAAY,EACnB5F,MAAM,CAAC6F,OAAO,CAAEC,MAAM,IAAK/F,MAAM,CAACA,MAAM,CAACgG,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACN,MAAM,CAACC,SAAS,EAAEG,MAAM,CAAC,CAAC,CAAC,EAC3F9F,MAAM,CAACsE,GAAG,CAAE2B,YAAY,IACpBpG,KAAK,CAACqG,YAAY,CAACD,YAAY,CAAC,CAC3B3B,GAAG,CAAE6B,CAAC,IAAKA,CAAC,CAACtD,QAAQ,CAAC,EAAE,CAAC,CAACuD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAC3CC,IAAI,CAAC,EAAE,CAAC,CAChB,CACJ;EAET,MAAMC,KAAK,GAUPtG,MAAM,CAACe,UAAU,CAAC,WAAW;IAAEqD,MAAM;IAAEM,IAAI;IAAEC,GAAG;IAAEC,IAAI;IAAEZ;EAAS,CAAE;IACnE,MAAMuC,IAAI,GAAG,OAAOf,UAAU,CAACgB,kBAAkB,CAAC;MAAEC,MAAM,EAAE;IAAM,CAAE,CAAC;IAErE,MAAMC,eAAe,GAAGxG,KAAK,CAACyG,KAAK,CAAC3C,SAAS,CAAC,CAACvC,IAAI,CAC/CvB,KAAK,CAAC0G,IAAI,CAAC;MAAE,OAAO,EAAE1G,KAAK,CAAC2G;IAAM,CAAE,EAAE,MAAM,OAAgB,CAAC,EAC7D3G,KAAK,CAAC0G,IAAI,CAAC;MAAE,SAAS,EAAE1G,KAAK,CAAC2G;IAAM,CAAE,EAAE,MAAM,SAAkB,CAAC,EACjE3G,KAAK,CAAC0G,IAAI,CAAC;MAAE,SAAS,EAAE1G,KAAK,CAAC2G;IAAM,CAAE,EAAE,MAAM,SAAkB,CAAC,EACjE3G,KAAK,CAAC0G,IAAI,CAAC;MAAE,SAAS,EAAE1G,KAAK,CAAC2G;IAAM,CAAE,EAAE,MAAM,SAAkB,CAAC,EACjE3G,KAAK,CAAC4G,UAAU,CACnB;IAED,MAAMC,iBAAiB,GAAI/C,SAAoD,CAAC0C,eAAe,CAAC;IAChG,MAAMM,mBAAmB,GAAG,OAAO5C,MAAM,CAAC3C,IAAI,CAACrB,MAAM,CAAC6G,OAAO,CAACzB,UAAU,CAAC0B,IAAI,CAACX,IAAI,CAAC,CAAC,EAAEb,MAAM,CAACgB,eAAe,CAAC,CAAC;IAE9G,IAAIM,mBAAmB,KAAKD,iBAAiB,EAAE;MAC3C,OAAO,OAAO,IAAI5G,aAAa,CAACA,aAAa,CACzC,IAAIA,aAAa,CAACgH,WAAW,CAAC;QAC1BC,IAAI,EAAE,aAAa;QACnBC,MAAM,EAAE,eAAe;QACvBC,MAAM,EAAE,gBAAgB;QACxBC,WAAW,EAAE,cAAc7C,IAAI,iCAAiCV,SAAS,SAASgD,mBAAmB;OACxG,CAAC,CACL;IACL;IAEA,OAAO;MACHrC,GAAG;MACHD,IAAI;MACJ6B,IAAI;MACJ3B,IAAI;MACJZ;KACH;EACL,CAAC,CAAC;EAEF,MAAMwD,OAAO,GAAG3H,KAAK,CAACyE,GAAG,CAACmB,OAAO,EAAEa,KAAK,CAAC;EACzC,OAAO,OAAOtG,MAAM,CAACsF,GAAG,CAACkC,OAAO,CAAC;AACrC,CAAC,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
package/src/GooglePlayApi.ts
CHANGED
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
* @since 1.0.0
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type * as PlatformError from "effect/PlatformError";
|
|
9
8
|
import type * as Schema from "effect/Schema";
|
|
10
9
|
import type * as Scope from "effect/Scope";
|
|
11
10
|
import type * as HttpClientError from "effect/unstable/http/HttpClientError";
|
|
12
11
|
|
|
13
12
|
import * as Array from "effect/Array";
|
|
13
|
+
import * as Cause from "effect/Cause";
|
|
14
14
|
import * as Crypto from "effect/Crypto";
|
|
15
15
|
import * as Effect from "effect/Effect";
|
|
16
16
|
import * as FileSystem from "effect/FileSystem";
|
|
17
17
|
import * as Match from "effect/Match";
|
|
18
|
+
import * as PlatformError from "effect/PlatformError";
|
|
18
19
|
import * as Stream from "effect/Stream";
|
|
19
20
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
20
21
|
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
@@ -185,7 +186,7 @@ export const downloadToStreams = Effect.fnUntraced(function* (
|
|
|
185
186
|
name: string;
|
|
186
187
|
url: string;
|
|
187
188
|
}>,
|
|
188
|
-
HttpClientError.HttpClientError | Schema.SchemaError,
|
|
189
|
+
Cause.NoSuchElementError | HttpClientError.HttpClientError | Schema.SchemaError,
|
|
189
190
|
AndroidDeviceService | HttpClient.HttpClient
|
|
190
191
|
> {
|
|
191
192
|
const { item } = yield* details(bundleIdentifier);
|
|
@@ -205,7 +206,7 @@ export const downloadToStreams = Effect.fnUntraced(function* (
|
|
|
205
206
|
|
|
206
207
|
const mainDeliveryData = deliveryResult?.appDeliveryData;
|
|
207
208
|
if (mainDeliveryData === undefined) {
|
|
208
|
-
return yield*
|
|
209
|
+
return yield* new Cause.NoSuchElementError();
|
|
209
210
|
}
|
|
210
211
|
|
|
211
212
|
const main = Effect.gen(function* () {
|
|
@@ -290,7 +291,7 @@ export const downloadToDisk = Effect.fnUntraced(function* (
|
|
|
290
291
|
size: bigint;
|
|
291
292
|
integrity: { "SHA-1": string } | { "SHA-256": string } | { "SHA-384": string } | { "SHA-512": string };
|
|
292
293
|
}>,
|
|
293
|
-
PlatformError.PlatformError | HttpClientError.HttpClientError | Schema.SchemaError,
|
|
294
|
+
Cause.NoSuchElementError | PlatformError.PlatformError | HttpClientError.HttpClientError | Schema.SchemaError,
|
|
294
295
|
AndroidDeviceService | Crypto.Crypto | HttpClient.HttpClient | FileSystem.FileSystem | Scope.Scope
|
|
295
296
|
> {
|
|
296
297
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
@@ -322,7 +323,7 @@ export const downloadToDisk = Effect.fnUntraced(function* (
|
|
|
322
323
|
PlatformError.PlatformError | HttpClientError.HttpClientError,
|
|
323
324
|
Crypto.Crypto | Scope.Scope
|
|
324
325
|
> = Effect.fnUntraced(function* ({ stream, name, url, size, integrity }) {
|
|
325
|
-
const file = yield* fileSystem.makeTempFileScoped();
|
|
326
|
+
const file = yield* fileSystem.makeTempFileScoped({ suffix: ".apk" });
|
|
326
327
|
|
|
327
328
|
const digestAlgorithm = Match.value(integrity).pipe(
|
|
328
329
|
Match.when({ "SHA-1": Match.string }, () => "SHA-1" as const),
|
|
@@ -336,8 +337,13 @@ export const downloadToDisk = Effect.fnUntraced(function* (
|
|
|
336
337
|
const downloadedIntegrity = yield* stream.pipe(Stream.tapSink(fileSystem.sink(file)), digest(digestAlgorithm));
|
|
337
338
|
|
|
338
339
|
if (downloadedIntegrity !== expectedIntegrity) {
|
|
339
|
-
return yield*
|
|
340
|
-
|
|
340
|
+
return yield* new PlatformError.PlatformError(
|
|
341
|
+
new PlatformError.SystemError({
|
|
342
|
+
_tag: "InvalidData",
|
|
343
|
+
module: "GooglePlayApi",
|
|
344
|
+
method: "downloadToDisk",
|
|
345
|
+
description: `Downloaded ${name} integrity mismatch: expected ${integrity}, got ${downloadedIntegrity}`,
|
|
346
|
+
})
|
|
341
347
|
);
|
|
342
348
|
}
|
|
343
349
|
|