@party-stack/expo-runtime 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ExpoFileSystemBlobBytesStore.d.ts +10 -8
- package/lib/ExpoFileSystemBlobBytesStore.d.ts.map +1 -1
- package/lib/ExpoFileSystemBlobBytesStore.js +49 -43
- package/lib/ExpoFileSystemBlobBytesStore.js.map +1 -1
- package/lib/ExpoNetworkConnectivity.d.ts +12 -10
- package/lib/ExpoNetworkConnectivity.d.ts.map +1 -1
- package/lib/ExpoNetworkConnectivity.js +37 -36
- package/lib/ExpoNetworkConnectivity.js.map +1 -1
- package/lib/ExpoSecretStore.d.ts +9 -7
- package/lib/ExpoSecretStore.d.ts.map +1 -1
- package/lib/ExpoSecretStore.js +24 -21
- package/lib/ExpoSecretStore.js.map +1 -1
- package/lib/createExpoBrowserAuthentication.d.ts +3 -1
- package/lib/createExpoBrowserAuthentication.d.ts.map +1 -1
- package/lib/createExpoBrowserAuthentication.js +19 -21
- package/lib/createExpoBrowserAuthentication.js.map +1 -1
- package/lib/createExpoRuntime.d.ts +4 -1
- package/lib/createExpoRuntime.d.ts.map +1 -1
- package/lib/createExpoRuntime.js +34 -43
- package/lib/createExpoRuntime.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +2 -2
- package/package.json +9 -15
- package/lib/ExpoSecretStore.test.d.ts +0 -2
- package/lib/ExpoSecretStore.test.d.ts.map +0 -1
- package/lib/ExpoSecretStore.test.js +0 -40
- package/lib/ExpoSecretStore.test.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BlobBytesStore } from "@party-stack/runtime";
|
|
2
|
+
//#region src/ExpoFileSystemBlobBytesStore.d.ts
|
|
2
3
|
export interface ExpoFileSystemBlobBytesStoreOptions {
|
|
3
|
-
|
|
4
|
+
directoryName: string;
|
|
4
5
|
}
|
|
5
6
|
export declare class ExpoFileSystemBlobBytesStore implements BlobBytesStore {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
#private;
|
|
8
|
+
constructor(options: ExpoFileSystemBlobBytesStoreOptions);
|
|
9
|
+
write(id: string, blob: Blob): Promise<void>;
|
|
10
|
+
read(id: string): Promise<Blob>;
|
|
11
|
+
delete(id: string): Promise<void>;
|
|
12
|
+
clear(): Promise<void>;
|
|
12
13
|
}
|
|
14
|
+
//#endregion
|
|
13
15
|
//# sourceMappingURL=ExpoFileSystemBlobBytesStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoFileSystemBlobBytesStore.d.ts","
|
|
1
|
+
{"version":3,"file":"ExpoFileSystemBlobBytesStore.d.ts","names":[],"sources":["../src/ExpoFileSystemBlobBytesStore.ts"],"mappings":";;iBAGiB;EACb;;qBAOS,wCAAwC;;EAGjD,YAAY,SAAS;EAIf,MAAM,YAAY,MAAM,OAAO;EAMrC,KAAK,aAAa,QAAQ;EAU1B,OAAO,aAAa;EAOpB,SAAS"}
|
|
@@ -1,47 +1,53 @@
|
|
|
1
1
|
import { Directory, File, Paths } from "expo-file-system";
|
|
2
|
+
//#region src/ExpoFileSystemBlobBytesStore.ts
|
|
2
3
|
function encodeFileName(id) {
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
export class ExpoFileSystemBlobBytesStore {
|
|
6
|
-
#directoryName;
|
|
7
|
-
constructor(options) {
|
|
8
|
-
this.#directoryName = options.directoryName;
|
|
9
|
-
}
|
|
10
|
-
async write(id, blob) {
|
|
11
|
-
const file = this.#file(id);
|
|
12
|
-
file.create({ intermediates: true, overwrite: true });
|
|
13
|
-
file.write(new Uint8Array(await blob.arrayBuffer()));
|
|
14
|
-
}
|
|
15
|
-
read(id) {
|
|
16
|
-
return Promise.resolve().then(() => {
|
|
17
|
-
const file = this.#file(id);
|
|
18
|
-
if (!file.exists) {
|
|
19
|
-
throw new Error(`Blob bytes not found for "${id}".`);
|
|
20
|
-
}
|
|
21
|
-
return file;
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
delete(id) {
|
|
25
|
-
return Promise.resolve().then(() => {
|
|
26
|
-
const file = this.#file(id);
|
|
27
|
-
if (file.exists)
|
|
28
|
-
file.delete();
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
clear() {
|
|
32
|
-
return Promise.resolve().then(() => {
|
|
33
|
-
const directory = new Directory(Paths.document, this.#directoryName);
|
|
34
|
-
if (directory.exists)
|
|
35
|
-
directory.delete();
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
#directory() {
|
|
39
|
-
const directory = new Directory(Paths.document, this.#directoryName);
|
|
40
|
-
directory.create({ idempotent: true, intermediates: true });
|
|
41
|
-
return directory;
|
|
42
|
-
}
|
|
43
|
-
#file(id) {
|
|
44
|
-
return new File(this.#directory(), encodeFileName(id));
|
|
45
|
-
}
|
|
4
|
+
return encodeURIComponent(id);
|
|
46
5
|
}
|
|
6
|
+
var ExpoFileSystemBlobBytesStore = class {
|
|
7
|
+
#directoryName;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.#directoryName = options.directoryName;
|
|
10
|
+
}
|
|
11
|
+
async write(id, blob) {
|
|
12
|
+
const file = this.#file(id);
|
|
13
|
+
file.create({
|
|
14
|
+
intermediates: true,
|
|
15
|
+
overwrite: true
|
|
16
|
+
});
|
|
17
|
+
file.write(new Uint8Array(await blob.arrayBuffer()));
|
|
18
|
+
}
|
|
19
|
+
read(id) {
|
|
20
|
+
return Promise.resolve().then(() => {
|
|
21
|
+
const file = this.#file(id);
|
|
22
|
+
if (!file.exists) throw new Error(`Blob bytes not found for "${id}".`);
|
|
23
|
+
return file;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
delete(id) {
|
|
27
|
+
return Promise.resolve().then(() => {
|
|
28
|
+
const file = this.#file(id);
|
|
29
|
+
if (file.exists) file.delete();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
clear() {
|
|
33
|
+
return Promise.resolve().then(() => {
|
|
34
|
+
const directory = new Directory(Paths.document, this.#directoryName);
|
|
35
|
+
if (directory.exists) directory.delete();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
#directory() {
|
|
39
|
+
const directory = new Directory(Paths.document, this.#directoryName);
|
|
40
|
+
directory.create({
|
|
41
|
+
idempotent: true,
|
|
42
|
+
intermediates: true
|
|
43
|
+
});
|
|
44
|
+
return directory;
|
|
45
|
+
}
|
|
46
|
+
#file(id) {
|
|
47
|
+
return new File(this.#directory(), encodeFileName(id));
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
export { ExpoFileSystemBlobBytesStore };
|
|
52
|
+
|
|
47
53
|
//# sourceMappingURL=ExpoFileSystemBlobBytesStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoFileSystemBlobBytesStore.js","
|
|
1
|
+
{"version":3,"file":"ExpoFileSystemBlobBytesStore.js","names":[],"sources":["../src/ExpoFileSystemBlobBytesStore.ts"],"sourcesContent":["import { Directory, File, Paths } from \"expo-file-system\";\nimport type { BlobBytesStore } from \"@party-stack/runtime\";\n\nexport interface ExpoFileSystemBlobBytesStoreOptions {\n directoryName: string;\n}\n\nfunction encodeFileName(id: string): string {\n return encodeURIComponent(id);\n}\n\nexport class ExpoFileSystemBlobBytesStore implements BlobBytesStore {\n #directoryName: string;\n\n constructor(options: ExpoFileSystemBlobBytesStoreOptions) {\n this.#directoryName = options.directoryName;\n }\n\n async write(id: string, blob: Blob): Promise<void> {\n const file = this.#file(id);\n file.create({ intermediates: true, overwrite: true });\n file.write(new Uint8Array(await blob.arrayBuffer()));\n }\n\n read(id: string): Promise<Blob> {\n return Promise.resolve().then(() => {\n const file = this.#file(id);\n if (!file.exists) {\n throw new Error(`Blob bytes not found for \"${id}\".`);\n }\n return file;\n });\n }\n\n delete(id: string): Promise<void> {\n return Promise.resolve().then(() => {\n const file = this.#file(id);\n if (file.exists) file.delete();\n });\n }\n\n clear(): Promise<void> {\n return Promise.resolve().then(() => {\n const directory = new Directory(Paths.document, this.#directoryName);\n if (directory.exists) directory.delete();\n });\n }\n\n #directory(): Directory {\n const directory = new Directory(Paths.document, this.#directoryName);\n directory.create({ idempotent: true, intermediates: true });\n return directory;\n }\n\n #file(id: string): File {\n return new File(this.#directory(), encodeFileName(id));\n }\n}\n"],"mappings":";;AAOA,SAAS,eAAe,IAAoB;CACxC,OAAO,mBAAmB,EAAE;AAChC;AAEA,IAAa,+BAAb,MAAoE;CAChE;CAEA,YAAY,SAA8C;EACtD,KAAK,iBAAiB,QAAQ;CAClC;CAEA,MAAM,MAAM,IAAY,MAA2B;EAC/C,MAAM,OAAO,KAAK,MAAM,EAAE;EAC1B,KAAK,OAAO;GAAE,eAAe;GAAM,WAAW;EAAK,CAAC;EACpD,KAAK,MAAM,IAAI,WAAW,MAAM,KAAK,YAAY,CAAC,CAAC;CACvD;CAEA,KAAK,IAA2B;EAC5B,OAAO,QAAQ,QAAQ,CAAC,CAAC,WAAW;GAChC,MAAM,OAAO,KAAK,MAAM,EAAE;GAC1B,IAAI,CAAC,KAAK,QACN,MAAM,IAAI,MAAM,6BAA6B,GAAG,GAAG;GAEvD,OAAO;EACX,CAAC;CACL;CAEA,OAAO,IAA2B;EAC9B,OAAO,QAAQ,QAAQ,CAAC,CAAC,WAAW;GAChC,MAAM,OAAO,KAAK,MAAM,EAAE;GAC1B,IAAI,KAAK,QAAQ,KAAK,OAAO;EACjC,CAAC;CACL;CAEA,QAAuB;EACnB,OAAO,QAAQ,QAAQ,CAAC,CAAC,WAAW;GAChC,MAAM,YAAY,IAAI,UAAU,MAAM,UAAU,KAAK,cAAc;GACnE,IAAI,UAAU,QAAQ,UAAU,OAAO;EAC3C,CAAC;CACL;CAEA,aAAwB;EACpB,MAAM,YAAY,IAAI,UAAU,MAAM,UAAU,KAAK,cAAc;EACnE,UAAU,OAAO;GAAE,YAAY;GAAM,eAAe;EAAK,CAAC;EAC1D,OAAO;CACX;CAEA,MAAM,IAAkB;EACpB,OAAO,IAAI,KAAK,KAAK,WAAW,GAAG,eAAe,EAAE,CAAC;CACzD;AACJ"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { NetworkConnectivity } from "@party-stack/runtime";
|
|
2
|
+
//#region src/ExpoNetworkConnectivity.d.ts
|
|
2
3
|
export declare class ExpoNetworkConnectivity implements NetworkConnectivity {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
private readonly listeners;
|
|
5
|
+
private connected;
|
|
6
|
+
private readonly unsubscribe;
|
|
7
|
+
static create(): Promise<ExpoNetworkConnectivity>;
|
|
8
|
+
private constructor();
|
|
9
|
+
get isConnected(): boolean;
|
|
10
|
+
subscribe(listener: (isConnected: boolean) => void): () => void;
|
|
11
|
+
close(): void;
|
|
12
|
+
private update;
|
|
12
13
|
}
|
|
14
|
+
//#endregion
|
|
13
15
|
//# sourceMappingURL=ExpoNetworkConnectivity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoNetworkConnectivity.d.ts","
|
|
1
|
+
{"version":3,"file":"ExpoNetworkConnectivity.d.ts","names":[],"sources":["../src/ExpoNetworkConnectivity.ts"],"mappings":";;qBAGa,mCAAmC;mBAC3B;UACT;mBACS;SAEJ,UAAU,QAAQ;UAKxB;MAOH;EAIJ,UAAU,WAAW;EAOrB;UAKQ"}
|
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
import NetInfo from "@react-native-community/netinfo";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
2
|
+
//#region src/ExpoNetworkConnectivity.ts
|
|
3
|
+
var ExpoNetworkConnectivity = class ExpoNetworkConnectivity {
|
|
4
|
+
listeners = /* @__PURE__ */ new Set();
|
|
5
|
+
connected;
|
|
6
|
+
unsubscribe;
|
|
7
|
+
static async create() {
|
|
8
|
+
const initialState = await NetInfo.fetch();
|
|
9
|
+
return new ExpoNetworkConnectivity(initialState.isConnected === true);
|
|
10
|
+
}
|
|
11
|
+
constructor(initialIsConnected) {
|
|
12
|
+
this.connected = initialIsConnected;
|
|
13
|
+
this.unsubscribe = NetInfo.addEventListener((state) => {
|
|
14
|
+
this.update(state.isConnected === true);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
get isConnected() {
|
|
18
|
+
return this.connected;
|
|
19
|
+
}
|
|
20
|
+
subscribe(listener) {
|
|
21
|
+
this.listeners.add(listener);
|
|
22
|
+
return () => {
|
|
23
|
+
this.listeners.delete(listener);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
close() {
|
|
27
|
+
this.unsubscribe();
|
|
28
|
+
this.listeners.clear();
|
|
29
|
+
}
|
|
30
|
+
update(isConnected) {
|
|
31
|
+
if (isConnected === this.connected) return;
|
|
32
|
+
this.connected = isConnected;
|
|
33
|
+
for (const listener of this.listeners) listener(isConnected);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
export { ExpoNetworkConnectivity };
|
|
38
|
+
|
|
38
39
|
//# sourceMappingURL=ExpoNetworkConnectivity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoNetworkConnectivity.js","
|
|
1
|
+
{"version":3,"file":"ExpoNetworkConnectivity.js","names":[],"sources":["../src/ExpoNetworkConnectivity.ts"],"sourcesContent":["import NetInfo from \"@react-native-community/netinfo\";\nimport type { NetworkConnectivity } from \"@party-stack/runtime\";\n\nexport class ExpoNetworkConnectivity implements NetworkConnectivity {\n private readonly listeners = new Set<(isConnected: boolean) => void>();\n private connected: boolean;\n private readonly unsubscribe: () => void;\n\n static async create(): Promise<ExpoNetworkConnectivity> {\n const initialState = await NetInfo.fetch();\n return new ExpoNetworkConnectivity(initialState.isConnected === true);\n }\n\n private constructor(initialIsConnected: boolean) {\n this.connected = initialIsConnected;\n this.unsubscribe = NetInfo.addEventListener((state) => {\n this.update(state.isConnected === true);\n });\n }\n\n get isConnected(): boolean {\n return this.connected;\n }\n\n subscribe(listener: (isConnected: boolean) => void): () => void {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n close(): void {\n this.unsubscribe();\n this.listeners.clear();\n }\n\n private update(isConnected: boolean): void {\n if (isConnected === this.connected) return;\n this.connected = isConnected;\n for (const listener of this.listeners) {\n listener(isConnected);\n }\n }\n}\n"],"mappings":";;AAGA,IAAa,0BAAb,MAAa,wBAAuD;CAChE,4BAA6B,IAAI,IAAoC;CACrE;CACA;CAEA,aAAa,SAA2C;EACpD,MAAM,eAAe,MAAM,QAAQ,MAAM;EACzC,OAAO,IAAI,wBAAwB,aAAa,gBAAgB,IAAI;CACxE;CAEA,YAAoB,oBAA6B;EAC7C,KAAK,YAAY;EACjB,KAAK,cAAc,QAAQ,kBAAkB,UAAU;GACnD,KAAK,OAAO,MAAM,gBAAgB,IAAI;EAC1C,CAAC;CACL;CAEA,IAAI,cAAuB;EACvB,OAAO,KAAK;CAChB;CAEA,UAAU,UAAsD;EAC5D,KAAK,UAAU,IAAI,QAAQ;EAC3B,aAAa;GACT,KAAK,UAAU,OAAO,QAAQ;EAClC;CACJ;CAEA,QAAc;EACV,KAAK,YAAY;EACjB,KAAK,UAAU,MAAM;CACzB;CAEA,OAAe,aAA4B;EACvC,IAAI,gBAAgB,KAAK,WAAW;EACpC,KAAK,YAAY;EACjB,KAAK,MAAM,YAAY,KAAK,WACxB,SAAS,WAAW;CAE5B;AACJ"}
|
package/lib/ExpoSecretStore.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { SecretStore } from "@party-stack/runtime";
|
|
2
|
+
//#region src/ExpoSecretStore.d.ts
|
|
2
3
|
export declare class ExpoSecretStore implements SecretStore {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
private readonly prefix;
|
|
5
|
+
constructor(prefix: string);
|
|
6
|
+
get(key: string): Promise<string | undefined>;
|
|
7
|
+
set(key: string, value: string): Promise<void>;
|
|
8
|
+
delete(key: string): Promise<void>;
|
|
9
|
+
private key;
|
|
9
10
|
}
|
|
11
|
+
//#endregion
|
|
10
12
|
//# sourceMappingURL=ExpoSecretStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoSecretStore.d.ts","
|
|
1
|
+
{"version":3,"file":"ExpoSecretStore.d.ts","names":[],"sources":["../src/ExpoSecretStore.ts"],"mappings":";;qBASa,2BAA2B;mBACP;EAA7B,YAA6B;EAE7B,IAAI,cAAc;EAIlB,IAAI,aAAa,gBAAgB;EAIjC,OAAO,cAAc;UAIb"}
|
package/lib/ExpoSecretStore.js
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { deleteItemAsync, getItemAsync, setItemAsync } from "expo-secure-store";
|
|
2
|
-
|
|
2
|
+
//#region src/ExpoSecretStore.ts
|
|
3
3
|
function encodeKey(value) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
export class ExpoSecretStore {
|
|
8
|
-
prefix;
|
|
9
|
-
constructor(prefix) {
|
|
10
|
-
this.prefix = prefix;
|
|
11
|
-
}
|
|
12
|
-
get(key) {
|
|
13
|
-
return getItemAsync(this.key(key)).then((value) => value ?? undefined);
|
|
14
|
-
}
|
|
15
|
-
set(key, value) {
|
|
16
|
-
return setItemAsync(this.key(key), value);
|
|
17
|
-
}
|
|
18
|
-
delete(key) {
|
|
19
|
-
return deleteItemAsync(this.key(key));
|
|
20
|
-
}
|
|
21
|
-
key(key) {
|
|
22
|
-
return encodeKey(JSON.stringify([this.prefix, key]));
|
|
23
|
-
}
|
|
4
|
+
const bytes = new TextEncoder().encode(value);
|
|
5
|
+
return `party-stack.${Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("")}`;
|
|
24
6
|
}
|
|
7
|
+
var ExpoSecretStore = class {
|
|
8
|
+
prefix;
|
|
9
|
+
constructor(prefix) {
|
|
10
|
+
this.prefix = prefix;
|
|
11
|
+
}
|
|
12
|
+
get(key) {
|
|
13
|
+
return getItemAsync(this.key(key)).then((value) => value ?? void 0);
|
|
14
|
+
}
|
|
15
|
+
set(key, value) {
|
|
16
|
+
return setItemAsync(this.key(key), value);
|
|
17
|
+
}
|
|
18
|
+
delete(key) {
|
|
19
|
+
return deleteItemAsync(this.key(key));
|
|
20
|
+
}
|
|
21
|
+
key(key) {
|
|
22
|
+
return encodeKey(JSON.stringify([this.prefix, key]));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//#endregion
|
|
26
|
+
export { ExpoSecretStore };
|
|
27
|
+
|
|
25
28
|
//# sourceMappingURL=ExpoSecretStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoSecretStore.js","
|
|
1
|
+
{"version":3,"file":"ExpoSecretStore.js","names":[],"sources":["../src/ExpoSecretStore.ts"],"sourcesContent":["import { deleteItemAsync, getItemAsync, setItemAsync } from \"expo-secure-store\";\nimport type { SecretStore } from \"@party-stack/runtime\";\n\n// https://docs.expo.dev/versions/latest/sdk/securestore#securestoresetitemkey-value-options\nfunction encodeKey(value: string): string {\n const bytes = new TextEncoder().encode(value);\n return `party-stack.${Array.from(bytes, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\")}`;\n}\n\nexport class ExpoSecretStore implements SecretStore {\n constructor(private readonly prefix: string) {}\n\n get(key: string): Promise<string | undefined> {\n return getItemAsync(this.key(key)).then((value) => value ?? undefined);\n }\n\n set(key: string, value: string): Promise<void> {\n return setItemAsync(this.key(key), value);\n }\n\n delete(key: string): Promise<void> {\n return deleteItemAsync(this.key(key));\n }\n\n private key(key: string): string {\n return encodeKey(JSON.stringify([this.prefix, key]));\n }\n}\n"],"mappings":";;AAIA,SAAS,UAAU,OAAuB;CACtC,MAAM,QAAQ,IAAI,YAAY,CAAC,CAAC,OAAO,KAAK;CAC5C,OAAO,eAAe,MAAM,KAAK,QAAQ,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;AACjG;AAEA,IAAa,kBAAb,MAAoD;CACnB;CAA7B,YAAY,QAAiC;EAAhB,KAAA,SAAA;CAAiB;CAE9C,IAAI,KAA0C;EAC1C,OAAO,aAAa,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,UAAU,SAAS,KAAA,CAAS;CACzE;CAEA,IAAI,KAAa,OAA8B;EAC3C,OAAO,aAAa,KAAK,IAAI,GAAG,GAAG,KAAK;CAC5C;CAEA,OAAO,KAA4B;EAC/B,OAAO,gBAAgB,KAAK,IAAI,GAAG,CAAC;CACxC;CAEA,IAAY,KAAqB;EAC7B,OAAO,UAAU,KAAK,UAAU,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC;CACvD;AACJ"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BrowserAuthentication } from "@party-stack/runtime";
|
|
2
|
+
//#region src/createExpoBrowserAuthentication.d.ts
|
|
2
3
|
export declare function createExpoBrowserAuthentication(): BrowserAuthentication;
|
|
4
|
+
//#endregion
|
|
3
5
|
//# sourceMappingURL=createExpoBrowserAuthentication.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExpoBrowserAuthentication.d.ts","
|
|
1
|
+
{"version":3,"file":"createExpoBrowserAuthentication.d.ts","names":[],"sources":["../src/createExpoBrowserAuthentication.ts"],"mappings":";;wBAGgB,mCAAmC"}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
import { BrowserAuthenticationCancelledError
|
|
2
|
-
import { dismissAuthSession, openAuthSessionAsync
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
dismissAuthSession();
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
},
|
|
21
|
-
};
|
|
1
|
+
import { BrowserAuthenticationCancelledError } from "@party-stack/runtime";
|
|
2
|
+
import { dismissAuthSession, openAuthSessionAsync } from "expo-web-browser";
|
|
3
|
+
//#region src/createExpoBrowserAuthentication.ts
|
|
4
|
+
function createExpoBrowserAuthentication() {
|
|
5
|
+
return { start({ redirectUrl }) {
|
|
6
|
+
return {
|
|
7
|
+
async open(authorizationUrl) {
|
|
8
|
+
const result = await openAuthSessionAsync(authorizationUrl, redirectUrl);
|
|
9
|
+
if (result.type === "success") return { callbackUrl: result.url };
|
|
10
|
+
throw new BrowserAuthenticationCancelledError();
|
|
11
|
+
},
|
|
12
|
+
close() {
|
|
13
|
+
dismissAuthSession();
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
} };
|
|
22
17
|
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { createExpoBrowserAuthentication };
|
|
20
|
+
|
|
23
21
|
//# sourceMappingURL=createExpoBrowserAuthentication.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExpoBrowserAuthentication.js","
|
|
1
|
+
{"version":3,"file":"createExpoBrowserAuthentication.js","names":[],"sources":["../src/createExpoBrowserAuthentication.ts"],"sourcesContent":["import { BrowserAuthenticationCancelledError, type BrowserAuthentication } from \"@party-stack/runtime\";\nimport { dismissAuthSession, openAuthSessionAsync } from \"expo-web-browser\";\n\nexport function createExpoBrowserAuthentication(): BrowserAuthentication {\n return {\n start({ redirectUrl }) {\n return {\n async open(authorizationUrl) {\n const result = await openAuthSessionAsync(authorizationUrl, redirectUrl);\n if (result.type === \"success\") {\n return {\n callbackUrl: result.url,\n };\n }\n throw new BrowserAuthenticationCancelledError();\n },\n close() {\n dismissAuthSession();\n },\n };\n },\n };\n}\n"],"mappings":";;;AAGA,SAAgB,kCAAyD;CACrE,OAAO,EACH,MAAM,EAAE,eAAe;EACnB,OAAO;GACH,MAAM,KAAK,kBAAkB;IACzB,MAAM,SAAS,MAAM,qBAAqB,kBAAkB,WAAW;IACvE,IAAI,OAAO,SAAS,WAChB,OAAO,EACH,aAAa,OAAO,IACxB;IAEJ,MAAM,IAAI,oCAAoC;GAClD;GACA,QAAQ;IACJ,mBAAmB;GACvB;EACJ;CACJ,EACJ;AACJ"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { RuntimeAdapter } from "@party-stack/runtime";
|
|
1
2
|
import "temporal-polyfill/global";
|
|
2
|
-
|
|
3
|
+
//#region src/createExpoRuntime.d.ts
|
|
4
|
+
export declare const createExpoRuntime: (owner: string, namespace: string) => Promise<RuntimeAdapter>;
|
|
5
|
+
//#endregion
|
|
3
6
|
//# sourceMappingURL=createExpoRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExpoRuntime.d.ts","
|
|
1
|
+
{"version":3,"file":"createExpoRuntime.d.ts","names":[],"sources":["../src/createExpoRuntime.ts"],"mappings":";;;qBAYa,oBAAoB,eAAe,sBAAsB,QAAQ"}
|
package/lib/createExpoRuntime.js
CHANGED
|
@@ -1,48 +1,39 @@
|
|
|
1
|
-
// SQLite persistence revives Temporal values through the registered global constructors.
|
|
2
|
-
import "temporal-polyfill/global";
|
|
3
|
-
import { SingleProcessCoordination } from "@party-stack/coordination";
|
|
4
|
-
import { defineRuntime } from "@party-stack/runtime";
|
|
5
|
-
import { createExpoSQLitePersistence, } from "@tanstack/expo-db-sqlite-persistence";
|
|
6
|
-
import { deleteDatabaseAsync, openDatabaseAsync } from "expo-sqlite";
|
|
7
|
-
import { createExpoBrowserAuthentication } from "./createExpoBrowserAuthentication.js";
|
|
8
1
|
import { ExpoFileSystemBlobBytesStore } from "./ExpoFileSystemBlobBytesStore.js";
|
|
9
2
|
import { ExpoNetworkConnectivity } from "./ExpoNetworkConnectivity.js";
|
|
10
3
|
import { ExpoSecretStore } from "./ExpoSecretStore.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
await coordination.close();
|
|
43
|
-
connectivity.close();
|
|
44
|
-
await database.closeAsync();
|
|
45
|
-
},
|
|
46
|
-
};
|
|
4
|
+
import { createExpoBrowserAuthentication } from "./createExpoBrowserAuthentication.js";
|
|
5
|
+
import { defineRuntime } from "@party-stack/runtime";
|
|
6
|
+
import "temporal-polyfill/global";
|
|
7
|
+
import { SingleProcessCoordination } from "@party-stack/coordination";
|
|
8
|
+
import { createExpoSQLitePersistence } from "@tanstack/expo-db-sqlite-persistence";
|
|
9
|
+
import { deleteDatabaseAsync, openDatabaseAsync } from "expo-sqlite";
|
|
10
|
+
//#region src/createExpoRuntime.ts
|
|
11
|
+
const createExpoRuntime = defineRuntime(async (owner, namespace) => {
|
|
12
|
+
const name = `party-stack:${owner}:${namespace}`;
|
|
13
|
+
const [database, connectivity] = await Promise.all([openDatabaseAsync(`${name}.db`), ExpoNetworkConnectivity.create()]);
|
|
14
|
+
const persistence = createExpoSQLitePersistence({ database });
|
|
15
|
+
const coordination = new SingleProcessCoordination({ scope: name });
|
|
16
|
+
const blobBytes = new ExpoFileSystemBlobBytesStore({ directoryName: `${name}:blobs` });
|
|
17
|
+
return {
|
|
18
|
+
owner,
|
|
19
|
+
namespace,
|
|
20
|
+
blobBytes,
|
|
21
|
+
browserAuthentication: createExpoBrowserAuthentication(),
|
|
22
|
+
secrets: new ExpoSecretStore(`${name}:secrets`),
|
|
23
|
+
connectivity,
|
|
24
|
+
coordination,
|
|
25
|
+
persistence,
|
|
26
|
+
destroy: async () => {
|
|
27
|
+
await Promise.all([deleteDatabaseAsync(`${name}.db`), blobBytes.clear()]);
|
|
28
|
+
},
|
|
29
|
+
cleanup: async () => {
|
|
30
|
+
await coordination.close();
|
|
31
|
+
connectivity.close();
|
|
32
|
+
await database.closeAsync();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
47
35
|
});
|
|
36
|
+
//#endregion
|
|
37
|
+
export { createExpoRuntime };
|
|
38
|
+
|
|
48
39
|
//# sourceMappingURL=createExpoRuntime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createExpoRuntime.js","
|
|
1
|
+
{"version":3,"file":"createExpoRuntime.js","names":[],"sources":["../src/createExpoRuntime.ts"],"sourcesContent":["// SQLite persistence revives Temporal values through the registered global constructors.\nimport \"temporal-polyfill/global\";\nimport { SingleProcessCoordination } from \"@party-stack/coordination\";\nimport { defineRuntime } from \"@party-stack/runtime\";\nimport { createExpoSQLitePersistence } from \"@tanstack/expo-db-sqlite-persistence\";\nimport { deleteDatabaseAsync, openDatabaseAsync } from \"expo-sqlite\";\nimport { createExpoBrowserAuthentication } from \"./createExpoBrowserAuthentication.js\";\nimport { ExpoFileSystemBlobBytesStore } from \"./ExpoFileSystemBlobBytesStore.js\";\nimport { ExpoNetworkConnectivity } from \"./ExpoNetworkConnectivity.js\";\nimport { ExpoSecretStore } from \"./ExpoSecretStore.js\";\nimport type { RuntimeAdapter } from \"@party-stack/runtime\";\n\nexport const createExpoRuntime: (owner: string, namespace: string) => Promise<RuntimeAdapter> = defineRuntime(\n async (owner, namespace) => {\n const name = `party-stack:${owner}:${namespace}`;\n const [database, connectivity] = await Promise.all([\n openDatabaseAsync(`${name}.db`),\n ExpoNetworkConnectivity.create(),\n ]);\n const persistence = createExpoSQLitePersistence({\n database: database,\n });\n const coordination = new SingleProcessCoordination({\n scope: name,\n });\n const blobBytes = new ExpoFileSystemBlobBytesStore({\n directoryName: `${name}:blobs`,\n });\n return {\n owner,\n namespace,\n blobBytes,\n browserAuthentication: createExpoBrowserAuthentication(),\n secrets: new ExpoSecretStore(`${name}:secrets`),\n connectivity,\n coordination,\n persistence,\n destroy: async () => {\n await Promise.all([deleteDatabaseAsync(`${name}.db`), blobBytes.clear()]);\n },\n cleanup: async () => {\n await coordination.close();\n connectivity.close();\n await database.closeAsync();\n },\n };\n }\n);\n"],"mappings":";;;;;;;;;;AAYA,MAAa,oBAAmF,cAC5F,OAAO,OAAO,cAAc;CACxB,MAAM,OAAO,eAAe,MAAM,GAAG;CACrC,MAAM,CAAC,UAAU,gBAAgB,MAAM,QAAQ,IAAI,CAC/C,kBAAkB,GAAG,KAAK,IAAI,GAC9B,wBAAwB,OAAO,CACnC,CAAC;CACD,MAAM,cAAc,4BAA4B,EAClC,SACd,CAAC;CACD,MAAM,eAAe,IAAI,0BAA0B,EAC/C,OAAO,KACX,CAAC;CACD,MAAM,YAAY,IAAI,6BAA6B,EAC/C,eAAe,GAAG,KAAK,QAC3B,CAAC;CACD,OAAO;EACH;EACA;EACA;EACA,uBAAuB,gCAAgC;EACvD,SAAS,IAAI,gBAAgB,GAAG,KAAK,SAAS;EAC9C;EACA;EACA;EACA,SAAS,YAAY;GACjB,MAAM,QAAQ,IAAI,CAAC,oBAAoB,GAAG,KAAK,IAAI,GAAG,UAAU,MAAM,CAAC,CAAC;EAC5E;EACA,SAAS,YAAY;GACjB,MAAM,aAAa,MAAM;GACzB,aAAa,MAAM;GACnB,MAAM,SAAS,WAAW;EAC9B;CACJ;AACJ,CACJ"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { createExpoRuntime } from "./createExpoRuntime.js";
|
|
2
|
+
export { createExpoRuntime };
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { createExpoRuntime } from "./createExpoRuntime.js";
|
|
2
|
+
export { createExpoRuntime };
|
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@party-stack/expo-runtime",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
|
+
"files": [
|
|
5
|
+
"lib"
|
|
6
|
+
],
|
|
4
7
|
"type": "module",
|
|
5
8
|
"exports": {
|
|
6
9
|
".": {
|
|
@@ -8,34 +11,25 @@
|
|
|
8
11
|
"default": "./lib/index.js"
|
|
9
12
|
}
|
|
10
13
|
},
|
|
11
|
-
"files": [
|
|
12
|
-
"lib"
|
|
13
|
-
],
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@tanstack/expo-db-sqlite-persistence": "0.2.30",
|
|
16
16
|
"expo-secure-store": "^57.0.1",
|
|
17
17
|
"expo-web-browser": "^57.0.2",
|
|
18
18
|
"temporal-polyfill": "^0.3.0",
|
|
19
|
-
"@party-stack/coordination": "0.3.
|
|
20
|
-
"@party-stack/runtime": "0.4.
|
|
19
|
+
"@party-stack/coordination": "0.3.1",
|
|
20
|
+
"@party-stack/runtime": "0.4.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@bobbyfidz/universal-build-config": "^0.1.1",
|
|
24
23
|
"@react-native-community/netinfo": "^12.0.1",
|
|
25
|
-
"eslint": "^9.25.0",
|
|
26
24
|
"expo-file-system": "^55.0.19",
|
|
27
25
|
"expo-sqlite": "^55.0.15",
|
|
28
|
-
"typescript": "~
|
|
29
|
-
"
|
|
26
|
+
"typescript": "~7.0.2",
|
|
27
|
+
"vite-plus": "1.1.0",
|
|
28
|
+
"@party-stack/build-config": "0.1.1"
|
|
30
29
|
},
|
|
31
30
|
"peerDependencies": {
|
|
32
31
|
"@react-native-community/netinfo": "^12.0.1",
|
|
33
32
|
"expo-file-system": "^55.0.19",
|
|
34
33
|
"expo-sqlite": "^55.0.15"
|
|
35
|
-
},
|
|
36
|
-
"scripts": {
|
|
37
|
-
"build": "tsc",
|
|
38
|
-
"lint": "eslint",
|
|
39
|
-
"test": "vitest run --pass-with-no-tests"
|
|
40
34
|
}
|
|
41
35
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoSecretStore.test.d.ts","sourceRoot":"","sources":["../src/ExpoSecretStore.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it, vi, } from "vitest";
|
|
2
|
-
import { ExpoSecretStore } from "./ExpoSecretStore.js";
|
|
3
|
-
const secureStore = vi.hoisted(() => ({
|
|
4
|
-
deleteItemAsync: vi.fn((key) => {
|
|
5
|
-
void key;
|
|
6
|
-
return Promise.resolve();
|
|
7
|
-
}),
|
|
8
|
-
getItemAsync: vi.fn((key) => {
|
|
9
|
-
void key;
|
|
10
|
-
return Promise.resolve(null);
|
|
11
|
-
}),
|
|
12
|
-
setItemAsync: vi.fn((key, value) => {
|
|
13
|
-
void key;
|
|
14
|
-
void value;
|
|
15
|
-
return Promise.resolve();
|
|
16
|
-
}),
|
|
17
|
-
}));
|
|
18
|
-
vi.mock("expo-secure-store", () => secureStore);
|
|
19
|
-
describe("ExpoSecretStore", () => {
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
vi.clearAllMocks();
|
|
22
|
-
});
|
|
23
|
-
it("encodes namespaced keys using only SecureStore-safe characters", async () => {
|
|
24
|
-
const store = new ExpoSecretStore("party-stack:user@example.com:oauth");
|
|
25
|
-
await store.set("tokens/client:id", "secret");
|
|
26
|
-
const key = secureStore.setItemAsync
|
|
27
|
-
.mock.calls[0]?.[0];
|
|
28
|
-
expect(key).toMatch(/^[A-Za-z0-9._-]+$/);
|
|
29
|
-
expect(key).not.toContain("user@example.com");
|
|
30
|
-
expect(secureStore.setItemAsync).toHaveBeenCalledWith(key, "secret");
|
|
31
|
-
});
|
|
32
|
-
it("separates prefix and key without collisions", async () => {
|
|
33
|
-
await new ExpoSecretStore("a").set("b:c", "one");
|
|
34
|
-
await new ExpoSecretStore("a:b").set("c", "two");
|
|
35
|
-
expect(secureStore.setItemAsync
|
|
36
|
-
.mock.calls[0]?.[0]).not.toBe(secureStore.setItemAsync
|
|
37
|
-
.mock.calls[1]?.[0]);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=ExpoSecretStore.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoSecretStore.test.js","sourceRoot":"","sources":["../src/ExpoSecretStore.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,QAAQ,EACR,MAAM,EACN,EAAE,EACF,EAAE,GACL,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClC,eAAe,EAAE,EAAE,CAAC,EAAE,CAClB,CAAC,GAAW,EAAE,EAAE;QACZ,KAAK,GAAG,CAAC;QACT,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CACJ;IACD,YAAY,EAAE,EAAE,CAAC,EAAE,CACf,CAAC,GAAW,EAAE,EAAE;QACZ,KAAK,GAAG,CAAC;QACT,OAAO,OAAO,CAAC,OAAO,CAClB,IAAI,CACP,CAAC;IACN,CAAC,CACJ;IACD,YAAY,EAAE,EAAE,CAAC,EAAE,CACf,CACI,GAAW,EACX,KAAa,EACf,EAAE;QACA,KAAK,GAAG,CAAC;QACT,KAAK,KAAK,CAAC;QACX,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CACJ;CACJ,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAC9B,WAAW,CACd,CAAC;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,KAAK,GACP,IAAI,eAAe,CACf,oCAAoC,CACvC,CAAC;QAEN,MAAM,KAAK,CAAC,GAAG,CACX,kBAAkB,EAClB,QAAQ,CACX,CAAC;QAEF,MAAM,GAAG,GACL,WAAW,CAAC,YAAY;aACnB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CACf,mBAAmB,CACtB,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CACrB,kBAAkB,CACrB,CAAC;QACF,MAAM,CACF,WAAW,CAAC,YAAY,CAC3B,CAAC,oBAAoB,CAClB,GAAG,EACH,QAAQ,CACX,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAI,eAAe,CACrB,GAAG,CACN,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpB,MAAM,IAAI,eAAe,CACrB,KAAK,CACR,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAElB,MAAM,CACF,WAAW,CAAC,YAAY;aACnB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC1B,CAAC,GAAG,CAAC,IAAI,CACN,WAAW,CAAC,YAAY;aACnB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC1B,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|