minip-bridge 1.0.20 → 1.0.21
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 +6 -18
- package/dist/{chunk-BHXED4CK.mjs → chunk-P6PQVD6M.mjs} +4 -52
- package/dist/chunk-P6PQVD6M.mjs.map +1 -0
- package/dist/chunk-PRRQDQWO.mjs +54 -0
- package/dist/chunk-PRRQDQWO.mjs.map +1 -0
- package/dist/fs/index.d.mts +54 -0
- package/dist/fs/index.mjs +359 -0
- package/dist/fs/index.mjs.map +1 -0
- package/dist/index.d.mts +19 -19
- package/dist/index.mjs +4 -2
- package/dist/index.mjs.map +1 -1
- package/dist/kysely/index.mjs +2 -1
- package/dist/kysely/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/bridge/index.ts +10 -10
- package/src/fs/common.ts +154 -0
- package/src/fs/dir.ts +62 -0
- package/src/fs/file.ts +164 -0
- package/src/fs/index.ts +3 -0
- package/src/types/filestats.ts +25 -0
- package/src/types/index.ts +1 -0
- package/tsup.config.ts +1 -1
- package/dist/chunk-BHXED4CK.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -24,22 +24,10 @@ navigateTo({page: "index.html", title: "title"})
|
|
|
24
24
|
- Directly use in html/js file
|
|
25
25
|
|
|
26
26
|
```html
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
</script>
|
|
36
|
-
</head>
|
|
37
|
-
<body>
|
|
38
|
-
<script type="module">
|
|
39
|
-
import * as minip from "minip-bridge";
|
|
40
|
-
|
|
41
|
-
console.log(minip);
|
|
42
|
-
console.log(minip.navigateTo);
|
|
43
|
-
</script>
|
|
44
|
-
</body>
|
|
27
|
+
<script type="module">
|
|
28
|
+
import * as minip from "minip-bridge";
|
|
29
|
+
|
|
30
|
+
console.log(minip);
|
|
31
|
+
console.log(minip.navigateTo);
|
|
32
|
+
</script>
|
|
45
33
|
```
|
|
@@ -1,53 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const _callNative = window.webkit.messageHandlers.MinipNativeInteraction;
|
|
5
|
-
jsBridge = {
|
|
6
|
-
callNative(req) {
|
|
7
|
-
return _callNative.postMessage(JSON.stringify(req)).then((res) => JSON.parse(res)).then((res) => {
|
|
8
|
-
if (res.code === 0 /* SUCCESS */) {
|
|
9
|
-
res.isSuccess = () => true;
|
|
10
|
-
const hashData = res.data !== null && res.data !== void 0;
|
|
11
|
-
res.hasData = () => hashData;
|
|
12
|
-
return res;
|
|
13
|
-
} else {
|
|
14
|
-
throw new Error(res.msg ?? "Unknown error, res: ");
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
callNativeSync(req) {
|
|
19
|
-
const res = prompt(JSON.stringify(req));
|
|
20
|
-
if (res) {
|
|
21
|
-
const r = JSON.parse(res);
|
|
22
|
-
r.isSuccess = () => true;
|
|
23
|
-
const hashData = r.data !== null && r.data !== void 0;
|
|
24
|
-
r.hasData = () => hashData;
|
|
25
|
-
return r;
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
code: 7 /* FAILED */,
|
|
29
|
-
msg: "Unknown error",
|
|
30
|
-
isSuccess: () => false,
|
|
31
|
-
hasData: () => false
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
} else {
|
|
36
|
-
jsBridge = {
|
|
37
|
-
callNative() {
|
|
38
|
-
return new Promise((_, reject) => {
|
|
39
|
-
reject("Cannot find JavaScript Bridge!!!");
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
callNativeSync() {
|
|
43
|
-
return {
|
|
44
|
-
code: 7 /* FAILED */,
|
|
45
|
-
msg: "Cannot find JavaScript Bridge!!!"
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
var bridge_default = jsBridge;
|
|
1
|
+
import {
|
|
2
|
+
bridge_default
|
|
3
|
+
} from "./chunk-PRRQDQWO.mjs";
|
|
51
4
|
|
|
52
5
|
// src/api/sqlite.ts
|
|
53
6
|
function sqliteOpenDB(path) {
|
|
@@ -135,7 +88,6 @@ function sqliteIteratorRelease(dbKey, stmtKey) {
|
|
|
135
88
|
}
|
|
136
89
|
|
|
137
90
|
export {
|
|
138
|
-
bridge_default,
|
|
139
91
|
sqliteOpenDB,
|
|
140
92
|
sqliteCloseDB,
|
|
141
93
|
sqlitePrepare,
|
|
@@ -146,4 +98,4 @@ export {
|
|
|
146
98
|
sqliteIteratorNext,
|
|
147
99
|
sqliteIteratorRelease
|
|
148
100
|
};
|
|
149
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-P6PQVD6M.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/sqlite.ts"],"sourcesContent":["import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\n\r\nexport function sqliteOpenDB(\r\n path: string,\r\n): Promise<MResponseWithData<{ dbKey: number }>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteOpenDB\",\r\n data: {\r\n path,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteCloseDB(dbKey: number): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteCloseDB\",\r\n data: {\r\n dbKey,\r\n },\r\n });\r\n}\r\n\r\nexport function sqlitePrepare(\r\n dbKey: number,\r\n sql: string,\r\n): Promise<MResponseWithData<{ stmtKey: number; reader: boolean }>> {\r\n return jsBridge.callNative({\r\n api: \"sqlitePrepare\",\r\n data: {\r\n dbKey,\r\n sql,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementAll(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<MResponseWithData<unknown[]>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementAll\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementRun(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<\r\n MResponseWithData<{\r\n changes: number | bigint;\r\n lastInsertRowid: number | bigint;\r\n }>\r\n> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementRun\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteExecute(\r\n dbKey: number,\r\n sql: string,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<\r\n MResponseWithData<{\r\n reader: boolean;\r\n runRes?: {\r\n changes: number | bigint;\r\n lastInsertRowid: number | bigint;\r\n };\r\n entityData?: unknown[];\r\n }>\r\n> {\r\n return jsBridge.callNative({\r\n api: \"sqliteExecute\",\r\n data: {\r\n dbKey,\r\n sql,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteCreateIterator(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteCreateIterator\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteIteratorNext(\r\n dbKey: number,\r\n stmtKey: number,\r\n): Promise<MResponseWithData<unknown | undefined>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteIteratorNext\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteIteratorRelease(\r\n dbKey: number,\r\n stmtKey: number,\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteIteratorRelease\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n },\r\n });\r\n}\r\n"],"mappings":";;;;;AAGO,SAAS,aACd,MAC+C;AAC/C,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,cAAc,OAAmC;AAC/D,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,cACd,OACA,KACkE;AAClE,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,mBACd,OACA,SACA,YACuC;AACvC,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,mBACd,OACA,SACA,YAMA;AACA,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,cACd,OACA,KACA,YAUA;AACA,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,qBACd,OACA,SACA,YACoB;AACpB,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,mBACd,OACA,SACiD;AACjD,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,sBACd,OACA,SACoB;AACpB,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// src/bridge/index.ts
|
|
2
|
+
var jsBridge;
|
|
3
|
+
if (window.webkit?.messageHandlers?.MinipNativeInteraction) {
|
|
4
|
+
const _callNative = window.webkit.messageHandlers.MinipNativeInteraction;
|
|
5
|
+
jsBridge = {
|
|
6
|
+
callNative(req) {
|
|
7
|
+
return _callNative.postMessage(JSON.stringify(req)).then((res) => JSON.parse(res)).then((res) => {
|
|
8
|
+
if (res.code === 0 /* SUCCESS */) {
|
|
9
|
+
res.isSuccess = () => true;
|
|
10
|
+
const hashData = res.data !== null && res.data !== void 0;
|
|
11
|
+
res.hasData = () => hashData;
|
|
12
|
+
return res;
|
|
13
|
+
} else {
|
|
14
|
+
throw new Error(res.msg ?? "Unknown error, res: ");
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
callNativeSync(req) {
|
|
19
|
+
const res = prompt(JSON.stringify(req));
|
|
20
|
+
if (res) {
|
|
21
|
+
const r = JSON.parse(res);
|
|
22
|
+
if (r.code === 0 /* SUCCESS */) {
|
|
23
|
+
r.isSuccess = () => true;
|
|
24
|
+
const hashData = r.data !== null && r.data !== void 0;
|
|
25
|
+
r.hasData = () => hashData;
|
|
26
|
+
return r;
|
|
27
|
+
} else {
|
|
28
|
+
throw new Error(r.msg ?? "Unknown error, res: ");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
throw new Error("Unknown error");
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
} else {
|
|
35
|
+
jsBridge = {
|
|
36
|
+
callNative() {
|
|
37
|
+
return new Promise((_, reject) => {
|
|
38
|
+
reject("Cannot find JavaScript Bridge!!!");
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
callNativeSync() {
|
|
42
|
+
return {
|
|
43
|
+
code: 7 /* FAILED */,
|
|
44
|
+
msg: "Cannot find JavaScript Bridge!!!"
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
var bridge_default = jsBridge;
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
bridge_default
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=chunk-PRRQDQWO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/bridge/index.ts"],"sourcesContent":["import { MResponseStatusCode } from \"../types\";\r\nimport { MRequest } from \"../types/request\";\r\n\r\ninterface WebKitCallable {\r\n postMessage: (data: string) => Promise<string>;\r\n}\r\ndeclare global {\r\n interface Window {\r\n webkit?: {\r\n messageHandlers?: {\r\n MinipNativeInteraction?: WebKitCallable;\r\n };\r\n };\r\n }\r\n}\r\n\r\nlet jsBridge: {\r\n callNative: <T>(req?: MRequest<T>) => Promise<any>;\r\n callNativeSync: <T>(req?: MRequest<T>) => any;\r\n};\r\n\r\n// apple webkit\r\nif (window.webkit?.messageHandlers?.MinipNativeInteraction) {\r\n const _callNative = window.webkit.messageHandlers.MinipNativeInteraction;\r\n jsBridge = {\r\n callNative(req) {\r\n return _callNative\r\n .postMessage(JSON.stringify(req))\r\n .then((res) => JSON.parse(res))\r\n .then((res) => {\r\n if (res.code === MResponseStatusCode.SUCCESS) {\r\n res.isSuccess = () => true;\r\n const hashData = res.data !== null && res.data !== undefined;\r\n res.hasData = () => hashData;\r\n return res;\r\n } else {\r\n throw new Error(res.msg ?? \"Unknown error, res: \");\r\n }\r\n });\r\n },\r\n callNativeSync(req) {\r\n const res = prompt(JSON.stringify(req));\r\n if (res) {\r\n const r = JSON.parse(res);\r\n\r\n if (r.code === MResponseStatusCode.SUCCESS) {\r\n r.isSuccess = () => true;\r\n const hashData = r.data !== null && r.data !== undefined;\r\n r.hasData = () => hashData;\r\n return r;\r\n } else {\r\n throw new Error(r.msg ?? \"Unknown error, res: \");\r\n }\r\n }\r\n throw new Error(\"Unknown error\");\r\n },\r\n };\r\n}\r\n// error\r\nelse {\r\n jsBridge = {\r\n callNative() {\r\n return new Promise((_, reject) => {\r\n reject(\"Cannot find JavaScript Bridge!!!\");\r\n });\r\n },\r\n callNativeSync() {\r\n return {\r\n code: MResponseStatusCode.FAILED,\r\n msg: \"Cannot find JavaScript Bridge!!!\",\r\n };\r\n },\r\n };\r\n}\r\n\r\nexport default jsBridge;\r\n"],"mappings":";AAgBA,IAAI;AAMJ,IAAI,OAAO,QAAQ,iBAAiB,wBAAwB;AAC1D,QAAM,cAAc,OAAO,OAAO,gBAAgB;AAClD,aAAW;AAAA,IACT,WAAW,KAAK;AACd,aAAO,YACJ,YAAY,KAAK,UAAU,GAAG,CAAC,EAC/B,KAAK,CAAC,QAAQ,KAAK,MAAM,GAAG,CAAC,EAC7B,KAAK,CAAC,QAAQ;AACb,YAAI,IAAI,0BAAsC;AAC5C,cAAI,YAAY,MAAM;AACtB,gBAAM,WAAW,IAAI,SAAS,QAAQ,IAAI,SAAS;AACnD,cAAI,UAAU,MAAM;AACpB,iBAAO;AAAA,QACT,OAAO;AACL,gBAAM,IAAI,MAAM,IAAI,OAAO,sBAAsB;AAAA,QACnD;AAAA,MACF,CAAC;AAAA,IACL;AAAA,IACA,eAAe,KAAK;AAClB,YAAM,MAAM,OAAO,KAAK,UAAU,GAAG,CAAC;AACtC,UAAI,KAAK;AACP,cAAM,IAAI,KAAK,MAAM,GAAG;AAExB,YAAI,EAAE,0BAAsC;AAC1C,YAAE,YAAY,MAAM;AACpB,gBAAM,WAAW,EAAE,SAAS,QAAQ,EAAE,SAAS;AAC/C,YAAE,UAAU,MAAM;AAClB,iBAAO;AAAA,QACT,OAAO;AACL,gBAAM,IAAI,MAAM,EAAE,OAAO,sBAAsB;AAAA,QACjD;AAAA,MACF;AACA,YAAM,IAAI,MAAM,eAAe;AAAA,IACjC;AAAA,EACF;AACF,OAEK;AACH,aAAW;AAAA,IACT,aAAa;AACX,aAAO,IAAI,QAAQ,CAAC,GAAG,WAAW;AAChC,eAAO,kCAAkC;AAAA,MAC3C,CAAC;AAAA,IACH;AAAA,IACA,iBAAiB;AACf,aAAO;AAAA,QACL;AAAA,QACA,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ;","names":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
interface FileStats {
|
|
2
|
+
dev: number;
|
|
3
|
+
ino: number;
|
|
4
|
+
mode: number;
|
|
5
|
+
nlink: number;
|
|
6
|
+
uid: number;
|
|
7
|
+
gid: number;
|
|
8
|
+
rdev: number;
|
|
9
|
+
size: number;
|
|
10
|
+
blksize: number;
|
|
11
|
+
blocks: number;
|
|
12
|
+
atimeMs: number;
|
|
13
|
+
mtimeMs: number;
|
|
14
|
+
ctimeMs: number;
|
|
15
|
+
birthtimeMs: number;
|
|
16
|
+
atime: Date;
|
|
17
|
+
mtime: Date;
|
|
18
|
+
ctime: Date;
|
|
19
|
+
birthtime: Date;
|
|
20
|
+
isDirectory(): boolean;
|
|
21
|
+
isFile(): boolean;
|
|
22
|
+
isSymbolicLink(): boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
declare function access(path: string, mode?: number): Promise<void>;
|
|
26
|
+
declare function accessSync(path: string, mode?: number): void;
|
|
27
|
+
declare function unlink(path: string): Promise<void>;
|
|
28
|
+
declare function unlinkSync(path: string): void;
|
|
29
|
+
declare function rename(oldPath: string, newPath: string): Promise<void>;
|
|
30
|
+
declare function renameSync(oldPath: string, newPath: string): void;
|
|
31
|
+
declare function stat(path: string): Promise<FileStats>;
|
|
32
|
+
declare function statSync(path: string): FileStats;
|
|
33
|
+
declare function rm(path: string): Promise<void>;
|
|
34
|
+
declare function rmSync(path: string): void;
|
|
35
|
+
|
|
36
|
+
declare function mkdir(path: string, recursive?: boolean): Promise<void>;
|
|
37
|
+
declare function mkdirSync(path: string, recursive?: boolean): void;
|
|
38
|
+
declare function readDir(path: string): Promise<string[]>;
|
|
39
|
+
declare function readDirSync(path: string): string[];
|
|
40
|
+
declare function rmdir(path: string, force?: boolean): Promise<void>;
|
|
41
|
+
declare function rmdirSync(path: string, force?: boolean): void;
|
|
42
|
+
|
|
43
|
+
declare function readFile(path: string): Promise<ArrayBuffer>;
|
|
44
|
+
declare function readFileSync(path: string): ArrayBuffer;
|
|
45
|
+
declare function writeFile(path: string, data: ArrayBuffer | string): Promise<void>;
|
|
46
|
+
declare function writeFileSync(path: string, data: ArrayBuffer | string): void;
|
|
47
|
+
declare function appendFile(path: string, data: ArrayBuffer | string): Promise<void>;
|
|
48
|
+
declare function appendFileSync(path: string, data: ArrayBuffer | string): void;
|
|
49
|
+
declare function copyFile(src: string, dest: string): Promise<void>;
|
|
50
|
+
declare function copyFileSync(src: string, dest: string): void;
|
|
51
|
+
declare function truncate(path: string, length: number): Promise<void>;
|
|
52
|
+
declare function truncateSync(path: string, length: number): void;
|
|
53
|
+
|
|
54
|
+
export { access, accessSync, appendFile, appendFileSync, copyFile, copyFileSync, mkdir, mkdirSync, readDir, readDirSync, readFile, readFileSync, rename, renameSync, rm, rmSync, rmdir, rmdirSync, stat, statSync, truncate, truncateSync, unlink, unlinkSync, writeFile, writeFileSync };
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import {
|
|
2
|
+
bridge_default
|
|
3
|
+
} from "../chunk-PRRQDQWO.mjs";
|
|
4
|
+
|
|
5
|
+
// src/fs/common.ts
|
|
6
|
+
async function access(path, mode) {
|
|
7
|
+
return bridge_default.callNative({
|
|
8
|
+
api: "fsAccess",
|
|
9
|
+
data: {
|
|
10
|
+
path,
|
|
11
|
+
mode
|
|
12
|
+
}
|
|
13
|
+
}).then((res) => {
|
|
14
|
+
const r = res;
|
|
15
|
+
if (!r.hasData() || !r.data) {
|
|
16
|
+
throw new Error(r.msg ?? "cannot access this file or directory");
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function accessSync(path, mode) {
|
|
21
|
+
const res = bridge_default.callNativeSync({
|
|
22
|
+
api: "fsAccessSync",
|
|
23
|
+
data: {
|
|
24
|
+
path,
|
|
25
|
+
mode
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
if (!res.hasData() || !res.data) {
|
|
29
|
+
throw new Error(res.msg ?? "cannot access this file or directory");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function unlink(path) {
|
|
33
|
+
await bridge_default.callNative({
|
|
34
|
+
api: "fsUnlink",
|
|
35
|
+
data: {
|
|
36
|
+
path
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function unlinkSync(path) {
|
|
41
|
+
bridge_default.callNativeSync({
|
|
42
|
+
api: "fsUnlinkSync",
|
|
43
|
+
data: {
|
|
44
|
+
path
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async function rename(oldPath, newPath) {
|
|
49
|
+
await bridge_default.callNative({
|
|
50
|
+
api: "fsRename",
|
|
51
|
+
data: {
|
|
52
|
+
oldPath,
|
|
53
|
+
newPath
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function renameSync(oldPath, newPath) {
|
|
58
|
+
bridge_default.callNativeSync({
|
|
59
|
+
api: "fsRenameSync",
|
|
60
|
+
data: {
|
|
61
|
+
oldPath,
|
|
62
|
+
newPath
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async function stat(path) {
|
|
67
|
+
const res = await bridge_default.callNative({
|
|
68
|
+
api: "fsStat",
|
|
69
|
+
data: {
|
|
70
|
+
path
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const file = res.data;
|
|
74
|
+
file.atime = new Date(file.atimeMs);
|
|
75
|
+
file.mtime = new Date(file.mtimeMs);
|
|
76
|
+
file.ctime = new Date(file.ctimeMs);
|
|
77
|
+
const S_IFDIR = 16384;
|
|
78
|
+
const S_IFREG = 32768;
|
|
79
|
+
const S_IFLNK = 40960;
|
|
80
|
+
file.isDirectory = function() {
|
|
81
|
+
return (this.mode & S_IFDIR) === S_IFDIR;
|
|
82
|
+
};
|
|
83
|
+
file.isFile = function() {
|
|
84
|
+
return (this.mode & S_IFREG) === S_IFREG;
|
|
85
|
+
};
|
|
86
|
+
file.isSymbolicLink = function() {
|
|
87
|
+
return (this.mode & S_IFLNK) === S_IFLNK;
|
|
88
|
+
};
|
|
89
|
+
return file;
|
|
90
|
+
}
|
|
91
|
+
function statSync(path) {
|
|
92
|
+
const res = bridge_default.callNativeSync({
|
|
93
|
+
api: "fsStatSync",
|
|
94
|
+
data: {
|
|
95
|
+
path
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
const file = res.data;
|
|
99
|
+
file.atime = new Date(file.atimeMs);
|
|
100
|
+
file.mtime = new Date(file.mtimeMs);
|
|
101
|
+
file.ctime = new Date(file.ctimeMs);
|
|
102
|
+
const S_IFDIR = 16384;
|
|
103
|
+
const S_IFREG = 32768;
|
|
104
|
+
const S_IFLNK = 40960;
|
|
105
|
+
file.isDirectory = function() {
|
|
106
|
+
return (this.mode & S_IFDIR) === S_IFDIR;
|
|
107
|
+
};
|
|
108
|
+
file.isFile = function() {
|
|
109
|
+
return (this.mode & S_IFREG) === S_IFREG;
|
|
110
|
+
};
|
|
111
|
+
file.isSymbolicLink = function() {
|
|
112
|
+
return (this.mode & S_IFLNK) === S_IFLNK;
|
|
113
|
+
};
|
|
114
|
+
return file;
|
|
115
|
+
}
|
|
116
|
+
async function rm(path) {
|
|
117
|
+
await bridge_default.callNative({
|
|
118
|
+
api: "fsRm",
|
|
119
|
+
data: {
|
|
120
|
+
path
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function rmSync(path) {
|
|
125
|
+
bridge_default.callNativeSync({
|
|
126
|
+
api: "fsRmSync",
|
|
127
|
+
data: {
|
|
128
|
+
path
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// src/fs/dir.ts
|
|
134
|
+
async function mkdir(path, recursive = true) {
|
|
135
|
+
await bridge_default.callNative({
|
|
136
|
+
api: "fsMkdir",
|
|
137
|
+
data: {
|
|
138
|
+
path,
|
|
139
|
+
recursive
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function mkdirSync(path, recursive = true) {
|
|
144
|
+
bridge_default.callNativeSync({
|
|
145
|
+
api: "fsMkdirSync",
|
|
146
|
+
data: {
|
|
147
|
+
path,
|
|
148
|
+
recursive
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function readDir(path) {
|
|
153
|
+
return bridge_default.callNative({
|
|
154
|
+
api: "fsReadDir",
|
|
155
|
+
data: {
|
|
156
|
+
path
|
|
157
|
+
}
|
|
158
|
+
}).then((res) => res).then((res) => res.data);
|
|
159
|
+
}
|
|
160
|
+
function readDirSync(path) {
|
|
161
|
+
const res = bridge_default.callNativeSync({
|
|
162
|
+
api: "fsReadDirSync",
|
|
163
|
+
data: {
|
|
164
|
+
path
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
return res.data;
|
|
168
|
+
}
|
|
169
|
+
async function rmdir(path, force) {
|
|
170
|
+
await bridge_default.callNative({
|
|
171
|
+
api: "fsRmdir",
|
|
172
|
+
data: {
|
|
173
|
+
path,
|
|
174
|
+
force
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
function rmdirSync(path, force) {
|
|
179
|
+
bridge_default.callNativeSync({
|
|
180
|
+
api: "fsRmdirSync",
|
|
181
|
+
data: {
|
|
182
|
+
path,
|
|
183
|
+
force
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// src/fs/file.ts
|
|
189
|
+
function base64ToArrayBuffer(base64) {
|
|
190
|
+
const binaryString = atob(base64);
|
|
191
|
+
const bytes = new Uint8Array(binaryString.length);
|
|
192
|
+
for (let i = 0; i < binaryString.length; i++) {
|
|
193
|
+
bytes[i] = binaryString.charCodeAt(i);
|
|
194
|
+
}
|
|
195
|
+
return bytes.buffer;
|
|
196
|
+
}
|
|
197
|
+
function arrayBufferToBase64(buffer) {
|
|
198
|
+
let binary = "";
|
|
199
|
+
const bytes = new Uint8Array(buffer);
|
|
200
|
+
const len = bytes.byteLength;
|
|
201
|
+
for (let i = 0; i < len; i++) {
|
|
202
|
+
binary += String.fromCharCode(bytes[i]);
|
|
203
|
+
}
|
|
204
|
+
return btoa(binary);
|
|
205
|
+
}
|
|
206
|
+
function readFile(path) {
|
|
207
|
+
return bridge_default.callNative({
|
|
208
|
+
api: "fsReadFile",
|
|
209
|
+
data: {
|
|
210
|
+
path
|
|
211
|
+
}
|
|
212
|
+
}).then((res) => res.data).then((res) => base64ToArrayBuffer(res));
|
|
213
|
+
}
|
|
214
|
+
function readFileSync(path) {
|
|
215
|
+
const res = bridge_default.callNativeSync({
|
|
216
|
+
api: "fsReadFileSync",
|
|
217
|
+
data: {
|
|
218
|
+
path
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
return base64ToArrayBuffer(res.data);
|
|
222
|
+
}
|
|
223
|
+
async function writeFile(path, data) {
|
|
224
|
+
let base64 = "";
|
|
225
|
+
if (data instanceof ArrayBuffer) {
|
|
226
|
+
base64 = arrayBufferToBase64(data);
|
|
227
|
+
} else {
|
|
228
|
+
const encoder = new TextEncoder();
|
|
229
|
+
const uint8Array = encoder.encode(data);
|
|
230
|
+
const arrayBuffer = uint8Array.buffer;
|
|
231
|
+
base64 = arrayBufferToBase64(arrayBuffer);
|
|
232
|
+
}
|
|
233
|
+
await bridge_default.callNative({
|
|
234
|
+
api: "fsWriteFile",
|
|
235
|
+
data: {
|
|
236
|
+
path,
|
|
237
|
+
data: base64
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
function writeFileSync(path, data) {
|
|
242
|
+
let base64 = "";
|
|
243
|
+
if (data instanceof ArrayBuffer) {
|
|
244
|
+
base64 = arrayBufferToBase64(data);
|
|
245
|
+
} else {
|
|
246
|
+
const encoder = new TextEncoder();
|
|
247
|
+
const uint8Array = encoder.encode(data);
|
|
248
|
+
const arrayBuffer = uint8Array.buffer;
|
|
249
|
+
base64 = arrayBufferToBase64(arrayBuffer);
|
|
250
|
+
}
|
|
251
|
+
bridge_default.callNativeSync({
|
|
252
|
+
api: "fsWriteFileSync",
|
|
253
|
+
data: {
|
|
254
|
+
path,
|
|
255
|
+
data: base64
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
async function appendFile(path, data) {
|
|
260
|
+
let base64 = "";
|
|
261
|
+
if (data instanceof ArrayBuffer) {
|
|
262
|
+
base64 = arrayBufferToBase64(data);
|
|
263
|
+
} else {
|
|
264
|
+
const encoder = new TextEncoder();
|
|
265
|
+
const uint8Array = encoder.encode(data);
|
|
266
|
+
const arrayBuffer = uint8Array.buffer;
|
|
267
|
+
base64 = arrayBufferToBase64(arrayBuffer);
|
|
268
|
+
}
|
|
269
|
+
await bridge_default.callNative({
|
|
270
|
+
api: "fsAppendFile",
|
|
271
|
+
data: {
|
|
272
|
+
path,
|
|
273
|
+
data: base64
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
function appendFileSync(path, data) {
|
|
278
|
+
let base64 = "";
|
|
279
|
+
if (data instanceof ArrayBuffer) {
|
|
280
|
+
base64 = arrayBufferToBase64(data);
|
|
281
|
+
} else {
|
|
282
|
+
const encoder = new TextEncoder();
|
|
283
|
+
const uint8Array = encoder.encode(data);
|
|
284
|
+
const arrayBuffer = uint8Array.buffer;
|
|
285
|
+
base64 = arrayBufferToBase64(arrayBuffer);
|
|
286
|
+
}
|
|
287
|
+
bridge_default.callNativeSync({
|
|
288
|
+
api: "fsAppendFileSync",
|
|
289
|
+
data: {
|
|
290
|
+
path,
|
|
291
|
+
data: base64
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
async function copyFile(src, dest) {
|
|
296
|
+
await bridge_default.callNative({
|
|
297
|
+
api: "fsCopyFile",
|
|
298
|
+
data: {
|
|
299
|
+
src,
|
|
300
|
+
dest
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
function copyFileSync(src, dest) {
|
|
305
|
+
bridge_default.callNativeSync({
|
|
306
|
+
api: "fsCopyFileSync",
|
|
307
|
+
data: {
|
|
308
|
+
src,
|
|
309
|
+
dest
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
async function truncate(path, length) {
|
|
314
|
+
await bridge_default.callNative({
|
|
315
|
+
api: "fsTruncate",
|
|
316
|
+
data: {
|
|
317
|
+
path,
|
|
318
|
+
length
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
function truncateSync(path, length) {
|
|
323
|
+
bridge_default.callNativeSync({
|
|
324
|
+
api: "fsTruncateSync",
|
|
325
|
+
data: {
|
|
326
|
+
path,
|
|
327
|
+
length
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
export {
|
|
332
|
+
access,
|
|
333
|
+
accessSync,
|
|
334
|
+
appendFile,
|
|
335
|
+
appendFileSync,
|
|
336
|
+
copyFile,
|
|
337
|
+
copyFileSync,
|
|
338
|
+
mkdir,
|
|
339
|
+
mkdirSync,
|
|
340
|
+
readDir,
|
|
341
|
+
readDirSync,
|
|
342
|
+
readFile,
|
|
343
|
+
readFileSync,
|
|
344
|
+
rename,
|
|
345
|
+
renameSync,
|
|
346
|
+
rm,
|
|
347
|
+
rmSync,
|
|
348
|
+
rmdir,
|
|
349
|
+
rmdirSync,
|
|
350
|
+
stat,
|
|
351
|
+
statSync,
|
|
352
|
+
truncate,
|
|
353
|
+
truncateSync,
|
|
354
|
+
unlink,
|
|
355
|
+
unlinkSync,
|
|
356
|
+
writeFile,
|
|
357
|
+
writeFileSync
|
|
358
|
+
};
|
|
359
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/fs/common.ts","../../src/fs/dir.ts","../../src/fs/file.ts"],"sourcesContent":["import jsBridge from \"../bridge\";\r\nimport { MResponseWithData } from \"../types\";\r\nimport { FileStats } from \"../types/FileStats\";\r\n\r\nexport async function access(path: string, mode?: number): Promise<void> {\r\n return jsBridge.callNative({\r\n api: \"fsAccess\",\r\n data: {\r\n path,\r\n mode\r\n }\r\n }).then(res => {\r\n const r = res as MResponseWithData<boolean>\r\n if (!r.hasData() || !r.data) {\r\n throw new Error(r.msg ?? \"cannot access this file or directory\")\r\n }\r\n });\r\n}\r\n\r\nexport function accessSync(path: string, mode?: number) {\r\n const res = jsBridge.callNativeSync({\r\n api: \"fsAccessSync\",\r\n data: {\r\n path,\r\n mode\r\n }\r\n }) as MResponseWithData<boolean>\r\n if (!res.hasData() || !res.data) {\r\n throw new Error(res.msg ?? \"cannot access this file or directory\")\r\n }\r\n}\r\n\r\nexport async function unlink(path: string) {\r\n await jsBridge.callNative({\r\n api: \"fsUnlink\",\r\n data: {\r\n path\r\n }\r\n })\r\n}\r\n\r\nexport function unlinkSync(path: string) {\r\n jsBridge.callNativeSync({\r\n api: \"fsUnlinkSync\",\r\n data: {\r\n path\r\n }\r\n })\r\n}\r\n\r\nexport async function rename(oldPath: string, newPath: string) {\r\n await jsBridge.callNative({\r\n api: \"fsRename\",\r\n data: {\r\n oldPath,\r\n newPath\r\n }\r\n })\r\n}\r\n\r\nexport function renameSync(oldPath: string, newPath: string) {\r\n jsBridge.callNativeSync({\r\n api: \"fsRenameSync\",\r\n data: {\r\n oldPath,\r\n newPath\r\n }\r\n })\r\n}\r\n\r\n// todo: check !!!!!\r\nexport async function stat(path: string) {\r\n const res = await jsBridge.callNative({\r\n api: \"fsStat\",\r\n data: {\r\n path\r\n }\r\n }) as MResponseWithData<FileStats>\r\n\r\n const file = res.data\r\n\r\n file.atime = new Date(file.atimeMs);\r\n file.mtime = new Date(file.mtimeMs);\r\n file.ctime = new Date(file.ctimeMs);\r\n\r\n const S_IFDIR = 0o040000;\r\n const S_IFREG = 0o100000;\r\n const S_IFLNK = 0o120000;\r\n\r\n file.isDirectory = function () {\r\n return (this.mode & S_IFDIR) === S_IFDIR;\r\n };\r\n\r\n file.isFile = function () {\r\n return (this.mode & S_IFREG) === S_IFREG;\r\n };\r\n\r\n file.isSymbolicLink = function () {\r\n return (this.mode & S_IFLNK) === S_IFLNK;\r\n };\r\n\r\n return file\r\n}\r\n\r\nexport function statSync(path: string) {\r\n const res = jsBridge.callNativeSync({\r\n api: \"fsStatSync\",\r\n data: {\r\n path\r\n }\r\n }) as MResponseWithData<FileStats>\r\n\r\n const file = res.data\r\n\r\n file.atime = new Date(file.atimeMs);\r\n file.mtime = new Date(file.mtimeMs);\r\n file.ctime = new Date(file.ctimeMs);\r\n\r\n const S_IFDIR = 0o040000;\r\n const S_IFREG = 0o100000;\r\n const S_IFLNK = 0o120000;\r\n\r\n file.isDirectory = function () {\r\n return (this.mode & S_IFDIR) === S_IFDIR;\r\n };\r\n\r\n file.isFile = function () {\r\n return (this.mode & S_IFREG) === S_IFREG;\r\n };\r\n\r\n file.isSymbolicLink = function () {\r\n return (this.mode & S_IFLNK) === S_IFLNK;\r\n };\r\n\r\n return file\r\n}\r\n\r\nexport async function rm(path: string) {\r\n await jsBridge.callNative({\r\n api: \"fsRm\",\r\n data: {\r\n path\r\n }\r\n })\r\n}\r\n\r\nexport function rmSync(path: string) {\r\n jsBridge.callNativeSync({\r\n api: \"fsRmSync\",\r\n data: {\r\n path\r\n }\r\n })\r\n}","import jsBridge from \"../bridge\";\r\nimport { MResponseWithData } from \"../types\";\r\n\r\nexport async function mkdir(path: string, recursive: boolean = true) {\r\n await jsBridge.callNative({\r\n api: \"fsMkdir\",\r\n data: {\r\n path,\r\n recursive\r\n }\r\n })\r\n}\r\n\r\nexport function mkdirSync(path: string, recursive: boolean = true) {\r\n jsBridge.callNativeSync({\r\n api: \"fsMkdirSync\",\r\n data: {\r\n path,\r\n recursive\r\n }\r\n })\r\n}\r\n\r\nexport function readDir(path: string): Promise<string[]> {\r\n return jsBridge.callNative({\r\n api: \"fsReadDir\",\r\n data: {\r\n path\r\n }\r\n }).then(res => res as MResponseWithData<string[]>)\r\n .then(res => res.data)\r\n}\r\n\r\nexport function readDirSync(path: string): string[] {\r\n const res = jsBridge.callNativeSync({\r\n api: \"fsReadDirSync\",\r\n data: {\r\n path\r\n }\r\n }) as MResponseWithData<string[]>\r\n return res.data\r\n}\r\n\r\nexport async function rmdir(path: string, force?: boolean) {\r\n await jsBridge.callNative({\r\n api: \"fsRmdir\",\r\n data: {\r\n path,\r\n force\r\n }\r\n })\r\n}\r\n\r\nexport function rmdirSync(path: string, force?: boolean) {\r\n jsBridge.callNativeSync({\r\n api: \"fsRmdirSync\",\r\n data: {\r\n path,\r\n force\r\n }\r\n })\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponseWithData } from \"../types\";\r\n\r\nfunction base64ToArrayBuffer(base64: string): ArrayBuffer {\r\n const binaryString = atob(base64);\r\n const bytes = new Uint8Array(binaryString.length);\r\n for (let i = 0; i < binaryString.length; i++) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n}\r\n\r\nfunction arrayBufferToBase64(buffer: ArrayBuffer): string {\r\n let binary = '';\r\n const bytes = new Uint8Array(buffer);\r\n const len = bytes.byteLength;\r\n\r\n for (let i = 0; i < len; i++) {\r\n binary += String.fromCharCode(bytes[i]);\r\n }\r\n\r\n return btoa(binary);\r\n}\r\n\r\nexport function readFile(path: string): Promise<ArrayBuffer> {\r\n return jsBridge.callNative({\r\n api: \"fsReadFile\",\r\n data: {\r\n path\r\n }\r\n }).then(res => (res as MResponseWithData<string>).data)\r\n .then(res => base64ToArrayBuffer(res))\r\n}\r\n\r\nexport function readFileSync(path: string): ArrayBuffer {\r\n const res = jsBridge.callNativeSync({\r\n api: \"fsReadFileSync\",\r\n data: {\r\n path\r\n }\r\n }) as MResponseWithData<string>\r\n return base64ToArrayBuffer(res.data)\r\n}\r\n\r\nexport async function writeFile(path: string, data: ArrayBuffer | string) {\r\n let base64 = \"\"\r\n if (data instanceof ArrayBuffer) {\r\n base64 = arrayBufferToBase64(data)\r\n } else {\r\n const encoder = new TextEncoder();\r\n const uint8Array = encoder.encode(data);\r\n const arrayBuffer = uint8Array.buffer;\r\n base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)\r\n }\r\n\r\n\r\n await jsBridge.callNative({\r\n api: \"fsWriteFile\",\r\n data: {\r\n path,\r\n data: base64\r\n }\r\n })\r\n}\r\n\r\nexport function writeFileSync(path: string, data: ArrayBuffer | string) {\r\n let base64 = \"\"\r\n if (data instanceof ArrayBuffer) {\r\n base64 = arrayBufferToBase64(data)\r\n } else {\r\n const encoder = new TextEncoder();\r\n const uint8Array = encoder.encode(data);\r\n const arrayBuffer = uint8Array.buffer;\r\n base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)\r\n }\r\n\r\n jsBridge.callNativeSync({\r\n api: \"fsWriteFileSync\",\r\n data: {\r\n path,\r\n data: base64\r\n }\r\n })\r\n}\r\n\r\nexport async function appendFile(path: string, data: ArrayBuffer | string) {\r\n let base64 = \"\"\r\n if (data instanceof ArrayBuffer) {\r\n base64 = arrayBufferToBase64(data)\r\n } else {\r\n const encoder = new TextEncoder();\r\n const uint8Array = encoder.encode(data);\r\n const arrayBuffer = uint8Array.buffer;\r\n base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)\r\n }\r\n\r\n await jsBridge.callNative({\r\n api: \"fsAppendFile\",\r\n data: {\r\n path,\r\n data: base64\r\n }\r\n })\r\n}\r\n\r\nexport function appendFileSync(path: string, data: ArrayBuffer | string) {\r\n let base64 = \"\"\r\n if (data instanceof ArrayBuffer) {\r\n base64 = arrayBufferToBase64(data)\r\n } else {\r\n const encoder = new TextEncoder();\r\n const uint8Array = encoder.encode(data);\r\n const arrayBuffer = uint8Array.buffer;\r\n base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)\r\n }\r\n\r\n jsBridge.callNativeSync({\r\n api: \"fsAppendFileSync\",\r\n data: {\r\n path,\r\n data: base64\r\n }\r\n })\r\n}\r\n\r\nexport async function copyFile(src: string, dest: string) {\r\n await jsBridge.callNative({\r\n api: \"fsCopyFile\",\r\n data: {\r\n src,\r\n dest\r\n }\r\n })\r\n}\r\n\r\nexport function copyFileSync(src: string, dest: string) {\r\n jsBridge.callNativeSync({\r\n api: \"fsCopyFileSync\",\r\n data: {\r\n src,\r\n dest\r\n }\r\n })\r\n}\r\n\r\nexport async function truncate(path: string, length: number) {\r\n await jsBridge.callNative({\r\n api: \"fsTruncate\",\r\n data: {\r\n path,\r\n length\r\n }\r\n })\r\n}\r\n\r\nexport function truncateSync(path: string, length: number) {\r\n jsBridge.callNativeSync({\r\n api: \"fsTruncateSync\",\r\n data: {\r\n path,\r\n length\r\n }\r\n })\r\n}"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -117,6 +117,24 @@ interface File {
|
|
|
117
117
|
hash: string;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
+
interface DeviceInfo {
|
|
121
|
+
language: string;
|
|
122
|
+
model: string;
|
|
123
|
+
system: string;
|
|
124
|
+
screen: ScreenInfo;
|
|
125
|
+
safeAreaInfo: SafeAreaInfo;
|
|
126
|
+
}
|
|
127
|
+
interface ScreenInfo {
|
|
128
|
+
width: number;
|
|
129
|
+
height: number;
|
|
130
|
+
}
|
|
131
|
+
interface SafeAreaInfo {
|
|
132
|
+
left: number;
|
|
133
|
+
right: number;
|
|
134
|
+
top: number;
|
|
135
|
+
bottom: number;
|
|
136
|
+
}
|
|
137
|
+
|
|
120
138
|
declare function navigateTo(data: {
|
|
121
139
|
page: string;
|
|
122
140
|
title?: string;
|
|
@@ -162,24 +180,6 @@ declare function setKVStorageSync(key: string, value: string): MResponse;
|
|
|
162
180
|
declare function deleteKVStorageSync(key: string): MResponse;
|
|
163
181
|
declare function clearKVStorageSync(): MResponse;
|
|
164
182
|
|
|
165
|
-
interface DeviceInfo {
|
|
166
|
-
language: string;
|
|
167
|
-
model: string;
|
|
168
|
-
system: string;
|
|
169
|
-
screen: ScreenInfo;
|
|
170
|
-
safeAreaInfo: SafeAreaInfo;
|
|
171
|
-
}
|
|
172
|
-
interface ScreenInfo {
|
|
173
|
-
width: number;
|
|
174
|
-
height: number;
|
|
175
|
-
}
|
|
176
|
-
interface SafeAreaInfo {
|
|
177
|
-
left: number;
|
|
178
|
-
right: number;
|
|
179
|
-
top: number;
|
|
180
|
-
bottom: number;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
183
|
/**
|
|
184
184
|
*
|
|
185
185
|
* @param type medium as default
|
|
@@ -235,4 +235,4 @@ declare global {
|
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
-
export { type AlertAction, type AlertConfig, type AppInfo, type DateAndTimePickerConfig, type HUDType, type MRequest, type MRequestBase, type MRequestWithData, type MResponse, MResponseStatusCode, type MResponseWithData, type MultipleColumnsPickerConfig, type ShowHUDRequest, type SingleColumnPickerConfig, clearKVStorage, clearKVStorageSync, clearMemoryStorage, closeApp, deleteKVStorage, deleteKVStorageSync, disablePullDownRefresh, enablePullDownRefresh, getClipboardData, getDeviceInfo, getDeviceInfoSync, getInstalledAppList, getKVStorage, getKVStorageSync, getMemoryStorage, hideHUD, installApp, navigateBack, navigateTo, onPullDownRefresh, openSettings, openWebsite, previewImage, previewVideo, redirectTo, removeMemoryStorage, scanQRCode, setClipboardData, setKVStorage, setKVStorageSync, setMemoryStorage, setMemoryStorageIfNotExist, setNavigationBarColor, setNavigationBarTitle, showAlert, showAppDetail, showHUD, showPicker, sqliteCloseDB, sqliteCreateIterator, sqliteExecute, sqliteIteratorNext, sqliteIteratorRelease, sqliteOpenDB, sqlitePrepare, sqliteStatementAll, sqliteStatementRun, startPullDownRefresh, stopPullDownRefresh, vibrate };
|
|
238
|
+
export { type AlertAction, type AlertConfig, type AppInfo, type DateAndTimePickerConfig, type DeviceInfo, type HUDType, type MRequest, type MRequestBase, type MRequestWithData, type MResponse, MResponseStatusCode, type MResponseWithData, type MultipleColumnsPickerConfig, type ShowHUDRequest, type SingleColumnPickerConfig, clearKVStorage, clearKVStorageSync, clearMemoryStorage, closeApp, deleteKVStorage, deleteKVStorageSync, disablePullDownRefresh, enablePullDownRefresh, getClipboardData, getDeviceInfo, getDeviceInfoSync, getInstalledAppList, getKVStorage, getKVStorageSync, getMemoryStorage, hideHUD, installApp, navigateBack, navigateTo, onPullDownRefresh, openSettings, openWebsite, previewImage, previewVideo, redirectTo, removeMemoryStorage, scanQRCode, setClipboardData, setKVStorage, setKVStorageSync, setMemoryStorage, setMemoryStorageIfNotExist, setNavigationBarColor, setNavigationBarTitle, showAlert, showAppDetail, showHUD, showPicker, sqliteCloseDB, sqliteCreateIterator, sqliteExecute, sqliteIteratorNext, sqliteIteratorRelease, sqliteOpenDB, sqlitePrepare, sqliteStatementAll, sqliteStatementRun, startPullDownRefresh, stopPullDownRefresh, vibrate };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
bridge_default,
|
|
3
2
|
sqliteCloseDB,
|
|
4
3
|
sqliteCreateIterator,
|
|
5
4
|
sqliteExecute,
|
|
@@ -9,7 +8,10 @@ import {
|
|
|
9
8
|
sqlitePrepare,
|
|
10
9
|
sqliteStatementAll,
|
|
11
10
|
sqliteStatementRun
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-P6PQVD6M.mjs";
|
|
12
|
+
import {
|
|
13
|
+
bridge_default
|
|
14
|
+
} from "./chunk-PRRQDQWO.mjs";
|
|
13
15
|
|
|
14
16
|
// src/api/route.ts
|
|
15
17
|
function navigateTo(data) {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/route.ts","../src/api/app.ts","../src/api/ui.ts","../src/api/kvstorage.ts","../src/api/device.ts","../src/api/memory-cache.ts"],"sourcesContent":["import jsBridge from \"../bridge\";\r\nimport { MResponse } from \"../types\";\r\n\r\nexport function navigateTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function navigateBack(delta: number = 1): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateBack\",\r\n data: {\r\n delta,\r\n },\r\n });\r\n}\r\n\r\nexport function redirectTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"redirectTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function openWebsite(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openWebsite\",\r\n data: { url },\r\n });\r\n}\r\n\r\nexport function openSettings(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openSettings\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { AppInfo, MResponse, MResponseWithData } from \"../types\";\r\n\r\nexport function closeApp(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"closeApp\",\r\n });\r\n}\r\n\r\nexport function showAppDetail(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showAppDetail\",\r\n });\r\n}\r\n\r\nexport function installApp(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"installApp\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function getInstalledAppList(): Promise<MResponseWithData<AppInfo[]>> {\r\n return jsBridge.callNative({\r\n api: \"getInstalledAppList\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport {\r\n AlertConfig,\r\n DateAndTimePickerConfig,\r\n MResponse,\r\n MResponseWithData,\r\n MultipleColumnsPickerConfig,\r\n ShowHUDRequest,\r\n SingleColumnPickerConfig,\r\n} from \"../types\";\r\n\r\n// navigation bar\r\n\r\nexport function setNavigationBarTitle(title: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarTitle\",\r\n data: {\r\n title,\r\n },\r\n });\r\n}\r\n\r\nexport function setNavigationBarColor(config: {\r\n foregroundColor: string;\r\n backgroundColor: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarColor\",\r\n data: config,\r\n });\r\n}\r\n\r\n// pulldown refresh\r\n\r\nexport function enablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"enablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function disablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"disablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function onPullDownRefresh(callback: (e: Event) => any) {\r\n window.addEventListener(\"pulldownrefresh\", callback);\r\n}\r\n\r\nexport function startPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"startPullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function stopPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"stopPullDownRefresh\",\r\n });\r\n}\r\n\r\n// HUD\r\n\r\nexport function showHUD(req: ShowHUDRequest): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showHUD\",\r\n data: req,\r\n });\r\n}\r\n\r\nexport function hideHUD(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"hideHUD\",\r\n });\r\n}\r\n\r\n// alert\r\nexport function showAlert(\r\n config: AlertConfig,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"showAlert\",\r\n data: config,\r\n });\r\n}\r\n\r\n// media\r\nexport function previewImage(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewImage\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function previewVideo(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewVideo\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\n// picker\r\nexport function showPicker(\r\n type: \"singleColumn\",\r\n data: SingleColumnPickerConfig,\r\n): Promise<MResponseWithData<number | null | undefined>>;\r\nexport function showPicker(\r\n type: \"multipleColumns\",\r\n data: MultipleColumnsPickerConfig,\r\n): Promise<MResponseWithData<number[] | null | undefined>>;\r\nexport function showPicker(\r\n type: \"date\" | \"time\",\r\n data: DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<string | null | undefined>>;\r\n\r\nexport function showPicker(\r\n type: \"singleColumn\" | \"multipleColumns\" | \"date\" | \"time\",\r\n data:\r\n | SingleColumnPickerConfig\r\n | MultipleColumnsPickerConfig\r\n | DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<number | number[] | string | null | undefined>> {\r\n let res;\r\n if (\r\n (type === \"time\" || type === \"date\") &&\r\n !(data as DateAndTimePickerConfig).dateFormat\r\n ) {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: {\r\n type,\r\n data: {\r\n ...data,\r\n dateFormat: type === \"date\" ? \"yyyy-MM-dd\" : \"HH:mm:ss\",\r\n },\r\n },\r\n });\r\n } else {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: { type, data },\r\n });\r\n }\r\n return res;\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\n\r\n// async methods\r\n\r\nexport function getKVStorage(key: string): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorage(key: string, value: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setKVStorage\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorage(key: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"deleteKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorage(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"clearKVStorage\",\r\n });\r\n}\r\n\r\n// sync methods\r\n\r\nexport function getKVStorageSync(key: string): MResponseWithData<string> {\r\n return jsBridge.callNativeSync({\r\n api: \"getKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorageSync(key: string, value: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"setKVStorageSync\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorageSync(key: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"deleteKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorageSync(): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"clearKVStorageSync\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\nimport { DeviceInfo } from \"../types/deviceinfo\";\r\n\r\n/**\r\n *\r\n * @param type medium as default\r\n */\r\nexport function vibrate(\r\n type?: \"light\" | \"medium\" | \"heavy\",\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"vibrate\",\r\n data: {\r\n type: type ?? \"medium\",\r\n },\r\n });\r\n}\r\n\r\nexport function getClipboardData(): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getClipboardData\",\r\n });\r\n}\r\n\r\nexport function setClipboardData(\r\n data: string,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"setClipboardData\",\r\n data: {\r\n data,\r\n },\r\n });\r\n}\r\n\r\nexport function scanQRCode(): Promise<\r\n MResponseWithData<string | undefined | null>\r\n> {\r\n return jsBridge.callNative({ api: \"scanQRCode\" });\r\n}\r\n\r\nexport function getDeviceInfo(): Promise<MResponseWithData<DeviceInfo>> {\r\n return jsBridge.callNative({ api: \"getDeviceInfo\" });\r\n}\r\n\r\nexport function getDeviceInfoSync(): MResponseWithData<DeviceInfo> {\r\n return jsBridge.callNativeSync({ api: \"getDeviceInfoSync\" });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\n\r\nexport function getMemoryStorage(\r\n key: string,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getMemoryStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setMemoryStorage(\r\n key: string,\r\n value: string,\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setMemoryStorage\",\r\n data: { key, value },\r\n });\r\n}\r\nexport function setMemoryStorageIfNotExist(\r\n key: string,\r\n value: string,\r\n): Promise<MResponseWithData<boolean>> {\r\n return jsBridge.callNative({\r\n api: \"setMemoryStorageIfNotExist\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function removeMemoryStorage(key: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"removeMemoryStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearMemoryStorage(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"clearMemoryStorage\",\r\n });\r\n}\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/api/route.ts","../src/api/app.ts","../src/api/ui.ts","../src/api/kvstorage.ts","../src/api/device.ts","../src/api/memory-cache.ts"],"sourcesContent":["import jsBridge from \"../bridge\";\r\nimport { MResponse } from \"../types\";\r\n\r\nexport function navigateTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function navigateBack(delta: number = 1): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"navigateBack\",\r\n data: {\r\n delta,\r\n },\r\n });\r\n}\r\n\r\nexport function redirectTo(data: {\r\n page: string;\r\n title?: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"redirectTo\",\r\n data: data,\r\n });\r\n}\r\n\r\nexport function openWebsite(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openWebsite\",\r\n data: { url },\r\n });\r\n}\r\n\r\nexport function openSettings(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"openSettings\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { AppInfo, MResponse, MResponseWithData } from \"../types\";\r\n\r\nexport function closeApp(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"closeApp\",\r\n });\r\n}\r\n\r\nexport function showAppDetail(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showAppDetail\",\r\n });\r\n}\r\n\r\nexport function installApp(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"installApp\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function getInstalledAppList(): Promise<MResponseWithData<AppInfo[]>> {\r\n return jsBridge.callNative({\r\n api: \"getInstalledAppList\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport {\r\n AlertConfig,\r\n DateAndTimePickerConfig,\r\n MResponse,\r\n MResponseWithData,\r\n MultipleColumnsPickerConfig,\r\n ShowHUDRequest,\r\n SingleColumnPickerConfig,\r\n} from \"../types\";\r\n\r\n// navigation bar\r\n\r\nexport function setNavigationBarTitle(title: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarTitle\",\r\n data: {\r\n title,\r\n },\r\n });\r\n}\r\n\r\nexport function setNavigationBarColor(config: {\r\n foregroundColor: string;\r\n backgroundColor: string;\r\n}): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setNavigationBarColor\",\r\n data: config,\r\n });\r\n}\r\n\r\n// pulldown refresh\r\n\r\nexport function enablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"enablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function disablePullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"disablePullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function onPullDownRefresh(callback: (e: Event) => any) {\r\n window.addEventListener(\"pulldownrefresh\", callback);\r\n}\r\n\r\nexport function startPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"startPullDownRefresh\",\r\n });\r\n}\r\n\r\nexport function stopPullDownRefresh(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"stopPullDownRefresh\",\r\n });\r\n}\r\n\r\n// HUD\r\n\r\nexport function showHUD(req: ShowHUDRequest): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"showHUD\",\r\n data: req,\r\n });\r\n}\r\n\r\nexport function hideHUD(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"hideHUD\",\r\n });\r\n}\r\n\r\n// alert\r\nexport function showAlert(\r\n config: AlertConfig,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"showAlert\",\r\n data: config,\r\n });\r\n}\r\n\r\n// media\r\nexport function previewImage(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewImage\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\nexport function previewVideo(url: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"previewVideo\",\r\n data: {\r\n url,\r\n },\r\n });\r\n}\r\n\r\n// picker\r\nexport function showPicker(\r\n type: \"singleColumn\",\r\n data: SingleColumnPickerConfig,\r\n): Promise<MResponseWithData<number | null | undefined>>;\r\nexport function showPicker(\r\n type: \"multipleColumns\",\r\n data: MultipleColumnsPickerConfig,\r\n): Promise<MResponseWithData<number[] | null | undefined>>;\r\nexport function showPicker(\r\n type: \"date\" | \"time\",\r\n data: DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<string | null | undefined>>;\r\n\r\nexport function showPicker(\r\n type: \"singleColumn\" | \"multipleColumns\" | \"date\" | \"time\",\r\n data:\r\n | SingleColumnPickerConfig\r\n | MultipleColumnsPickerConfig\r\n | DateAndTimePickerConfig,\r\n): Promise<MResponseWithData<number | number[] | string | null | undefined>> {\r\n let res;\r\n if (\r\n (type === \"time\" || type === \"date\") &&\r\n !(data as DateAndTimePickerConfig).dateFormat\r\n ) {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: {\r\n type,\r\n data: {\r\n ...data,\r\n dateFormat: type === \"date\" ? \"yyyy-MM-dd\" : \"HH:mm:ss\",\r\n },\r\n },\r\n });\r\n } else {\r\n res = jsBridge.callNative({\r\n api: \"showPicker\",\r\n data: { type, data },\r\n });\r\n }\r\n return res;\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\n\r\n// async methods\r\n\r\nexport function getKVStorage(key: string): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorage(key: string, value: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setKVStorage\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorage(key: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"deleteKVStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorage(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"clearKVStorage\",\r\n });\r\n}\r\n\r\n// sync methods\r\n\r\nexport function getKVStorageSync(key: string): MResponseWithData<string> {\r\n return jsBridge.callNativeSync({\r\n api: \"getKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setKVStorageSync(key: string, value: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"setKVStorageSync\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function deleteKVStorageSync(key: string): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"deleteKVStorageSync\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearKVStorageSync(): MResponse {\r\n return jsBridge.callNativeSync({\r\n api: \"clearKVStorageSync\",\r\n });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\nimport { DeviceInfo } from \"../types/deviceinfo\";\r\n\r\n/**\r\n *\r\n * @param type medium as default\r\n */\r\nexport function vibrate(\r\n type?: \"light\" | \"medium\" | \"heavy\",\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"vibrate\",\r\n data: {\r\n type: type ?? \"medium\",\r\n },\r\n });\r\n}\r\n\r\nexport function getClipboardData(): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getClipboardData\",\r\n });\r\n}\r\n\r\nexport function setClipboardData(\r\n data: string,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"setClipboardData\",\r\n data: {\r\n data,\r\n },\r\n });\r\n}\r\n\r\nexport function scanQRCode(): Promise<\r\n MResponseWithData<string | undefined | null>\r\n> {\r\n return jsBridge.callNative({ api: \"scanQRCode\" });\r\n}\r\n\r\nexport function getDeviceInfo(): Promise<MResponseWithData<DeviceInfo>> {\r\n return jsBridge.callNative({ api: \"getDeviceInfo\" });\r\n}\r\n\r\nexport function getDeviceInfoSync(): MResponseWithData<DeviceInfo> {\r\n return jsBridge.callNativeSync({ api: \"getDeviceInfoSync\" });\r\n}\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\n\r\nexport function getMemoryStorage(\r\n key: string,\r\n): Promise<MResponseWithData<string>> {\r\n return jsBridge.callNative({\r\n api: \"getMemoryStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function setMemoryStorage(\r\n key: string,\r\n value: string,\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"setMemoryStorage\",\r\n data: { key, value },\r\n });\r\n}\r\nexport function setMemoryStorageIfNotExist(\r\n key: string,\r\n value: string,\r\n): Promise<MResponseWithData<boolean>> {\r\n return jsBridge.callNative({\r\n api: \"setMemoryStorageIfNotExist\",\r\n data: { key, value },\r\n });\r\n}\r\n\r\nexport function removeMemoryStorage(key: string): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"removeMemoryStorage\",\r\n data: { key },\r\n });\r\n}\r\n\r\nexport function clearMemoryStorage(): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"clearMemoryStorage\",\r\n });\r\n}\r\n"],"mappings":"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","names":[]}
|
package/dist/kysely/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/kysely/index.ts","../../src/kysely/core/sqlite-query-iterator.ts","../../src/kysely/core/sqlite-database.ts","../../src/kysely/core/sqlite-dialect.ts","../../src/kysely/core/sqlite-driver.ts","../../src/kysely/core/sqlite-connection.ts"],"sourcesContent":["import { Kysely, Migrator, MigratorProps } from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./core/sqlite-database\";\r\nimport { MinipSqliteDialect } from \"./core/sqlite-dialect\";\r\n\r\nexport interface MinipSqliteKyselyMigratorProps\r\n extends Omit<MigratorProps, \"db\"> {}\r\n\r\nexport interface OpenSqliteKyselyDBProps {\r\n path: string;\r\n debug?: boolean;\r\n migratorProps?: MinipSqliteKyselyMigratorProps;\r\n}\r\n\r\nexport interface OpenSqliteKyselyDBWithMigrationProps\r\n extends OpenSqliteKyselyDBProps {}\r\n\r\nexport function openSqliteKyselyDB<T>(props: {\r\n path: string;\r\n debug?: boolean;\r\n}): Kysely<T>;\r\n\r\nexport function openSqliteKyselyDB<T>(props: {\r\n path: string;\r\n debug?: boolean;\r\n migratorProps: MinipSqliteKyselyMigratorProps;\r\n}): {\r\n db: Kysely<T>;\r\n migrator: Migrator;\r\n};\r\n\r\nexport function openSqliteKyselyDB<T>(props: OpenSqliteKyselyDBProps) {\r\n const dialect = new MinipSqliteDialect({\r\n database: new MinipSqliteDatabase(props.path, props.debug ?? false),\r\n });\r\n const db = new Kysely<T>({\r\n dialect,\r\n });\r\n\r\n if (props.migratorProps) {\r\n const migrator = new Migrator({\r\n db,\r\n ...props.migratorProps,\r\n });\r\n return {\r\n db,\r\n migrator,\r\n };\r\n }\r\n\r\n return db;\r\n}\r\n","import {\r\n sqliteCreateIterator,\r\n sqliteIteratorNext,\r\n sqliteIteratorRelease,\r\n} from \"../../api/sqlite\";\r\n\r\nexport class MinipSQLiteQueryIterator\r\n implements AsyncIterableIterator<unknown>\r\n{\r\n readonly dbKey: number;\r\n readonly stmtKey: number;\r\n readonly parameters: ReadonlyArray<unknown>;\r\n created: boolean = false;\r\n\r\n constructor(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n ) {\r\n this.dbKey = dbKey;\r\n this.stmtKey = stmtKey;\r\n this.parameters = parameters;\r\n }\r\n\r\n public async next(): Promise<IteratorResult<unknown>> {\r\n if (!this.created) {\r\n await sqliteCreateIterator(this.dbKey, this.stmtKey, this.parameters);\r\n this.created = true;\r\n }\r\n const res = await sqliteIteratorNext(this.dbKey, this.stmtKey);\r\n if (res.hasData()) return { value: res.data, done: false };\r\n return { value: undefined, done: true };\r\n }\r\n\r\n public async return(): Promise<IteratorResult<unknown>> {\r\n if (this.created) {\r\n await sqliteIteratorRelease(this.dbKey, this.stmtKey);\r\n }\r\n return { value: undefined, done: true };\r\n }\r\n\r\n [Symbol.asyncIterator](): AsyncIterableIterator<unknown> {\r\n return this;\r\n }\r\n}\r\n","import { MinipSqliteStatement } from \"./sqlite-statement\";\r\nimport {\r\n sqliteCloseDB,\r\n sqliteOpenDB,\r\n sqlitePrepare,\r\n sqliteStatementAll,\r\n sqliteStatementRun,\r\n} from \"../../api/sqlite\";\r\nimport { MinipSQLiteQueryIterator } from \"./sqlite-query-iterator\";\r\n\r\nexport class MinipSqliteDatabase {\r\n path: string;\r\n id: number;\r\n debug: boolean;\r\n constructor(path: string, debug: boolean) {\r\n this.path = path;\r\n this.id = -1;\r\n this.debug = debug;\r\n }\r\n async close(): Promise<void> {\r\n if (this.id === -1) return;\r\n await sqliteCloseDB(this.id);\r\n }\r\n async prepare(sql: string): Promise<MinipSqliteStatement> {\r\n if (this.id === -1) {\r\n const res = await sqliteOpenDB(this.path);\r\n this.id = res.data.dbKey;\r\n }\r\n\r\n const dbKey = this.id;\r\n const stmtRes = await sqlitePrepare(dbKey, sql);\r\n\r\n const stmtKey = stmtRes.data.stmtKey;\r\n const reader = stmtRes.data.reader;\r\n\r\n return {\r\n reader: reader,\r\n all(parameters) {\r\n return sqliteStatementAll(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n run(parameters) {\r\n return sqliteStatementRun(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n iterate(parameters) {\r\n return new MinipSQLiteQueryIterator(dbKey, stmtKey, parameters);\r\n },\r\n };\r\n }\r\n}\r\n","import {\r\n DatabaseIntrospector,\r\n Dialect,\r\n DialectAdapter,\r\n Driver,\r\n Kysely,\r\n QueryCompiler,\r\n SqliteAdapter,\r\n SqliteIntrospector,\r\n SqliteQueryCompiler,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteDriver } from \"./sqlite-driver\";\r\n\r\nexport class MinipSqliteDialect implements Dialect {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n createDriver(): Driver {\r\n return new MinipSqliteDriver(this.#config);\r\n }\r\n createQueryCompiler(): QueryCompiler {\r\n return new SqliteQueryCompiler();\r\n }\r\n createAdapter(): DialectAdapter {\r\n return new SqliteAdapter();\r\n }\r\n createIntrospector(db: Kysely<any>): DatabaseIntrospector {\r\n return new SqliteIntrospector(db);\r\n }\r\n}\r\n","import {\r\n CompiledQuery,\r\n DatabaseConnection,\r\n Driver,\r\n TransactionSettings,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteConnection } from \"./sqlite-connection\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteDriver implements Driver {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n #db?: MinipSqliteDatabase;\r\n #connection?: MinipSqliteConnection;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n async init() {\r\n this.#db = this.#config.database;\r\n this.#connection = new MinipSqliteConnection(this.#db);\r\n if (this.#config.onCreateConnection) {\r\n await this.#config.onCreateConnection(this.#connection);\r\n }\r\n }\r\n async acquireConnection(): Promise<MinipSqliteConnection> {\r\n return this.#connection!;\r\n }\r\n async beginTransaction(\r\n connection: DatabaseConnection,\r\n settings: TransactionSettings,\r\n ): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"begin\"));\r\n }\r\n async commitTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"commit\"));\r\n }\r\n async rollbackTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"rollback\"));\r\n }\r\n async releaseConnection(connection: DatabaseConnection): Promise<void> {}\r\n async destroy(): Promise<void> {\r\n this.#db?.close();\r\n }\r\n}\r\n","import {\r\n CompiledQuery,\r\n DatabaseConnection,\r\n QueryResult,\r\n SelectQueryNode,\r\n} from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteConnection implements DatabaseConnection {\r\n readonly #db: MinipSqliteDatabase;\r\n\r\n constructor(db: MinipSqliteDatabase) {\r\n this.#db = db;\r\n }\r\n async executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>> {\r\n const { sql, parameters } = compiledQuery;\r\n if (this.#db.debug) {\r\n console.debug(sql, parameters);\r\n }\r\n const stmt = await this.#db.prepare(sql);\r\n\r\n if (stmt.reader) {\r\n return {\r\n rows: (await stmt.all(parameters)) as R[],\r\n };\r\n } else {\r\n const { changes, lastInsertRowid } = await stmt.run(parameters);\r\n\r\n const numAffectedRows =\r\n changes !== undefined && changes !== null ? BigInt(changes) : undefined;\r\n\r\n return {\r\n numUpdatedOrDeletedRows: numAffectedRows,\r\n numAffectedRows,\r\n insertId:\r\n lastInsertRowid !== undefined && lastInsertRowid !== null\r\n ? BigInt(lastInsertRowid)\r\n : undefined,\r\n rows: [],\r\n };\r\n }\r\n }\r\n async *streamQuery<R>(\r\n compiledQuery: CompiledQuery,\r\n _chunkSize: number,\r\n ): AsyncIterableIterator<QueryResult<R>> {\r\n const { sql, parameters, query } = compiledQuery;\r\n const stmt = await this.#db.prepare(sql);\r\n if (SelectQueryNode.is(query)) {\r\n const iter = stmt.iterate(parameters) as AsyncIterableIterator<R>;\r\n for await (const row of iter) {\r\n yield {\r\n rows: [row],\r\n };\r\n }\r\n } else {\r\n throw new Error(\r\n \"Sqlite driver only supports streaming of select queries\",\r\n );\r\n }\r\n }\r\n}\r\n"],"mappings":"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","names":["Kysely","CompiledQuery","CompiledQuery","Kysely"]}
|
|
1
|
+
{"version":3,"sources":["../../src/kysely/index.ts","../../src/kysely/core/sqlite-query-iterator.ts","../../src/kysely/core/sqlite-database.ts","../../src/kysely/core/sqlite-dialect.ts","../../src/kysely/core/sqlite-driver.ts","../../src/kysely/core/sqlite-connection.ts"],"sourcesContent":["import { Kysely, Migrator, MigratorProps } from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./core/sqlite-database\";\r\nimport { MinipSqliteDialect } from \"./core/sqlite-dialect\";\r\n\r\nexport interface MinipSqliteKyselyMigratorProps\r\n extends Omit<MigratorProps, \"db\"> {}\r\n\r\nexport interface OpenSqliteKyselyDBProps {\r\n path: string;\r\n debug?: boolean;\r\n migratorProps?: MinipSqliteKyselyMigratorProps;\r\n}\r\n\r\nexport interface OpenSqliteKyselyDBWithMigrationProps\r\n extends OpenSqliteKyselyDBProps {}\r\n\r\nexport function openSqliteKyselyDB<T>(props: {\r\n path: string;\r\n debug?: boolean;\r\n}): Kysely<T>;\r\n\r\nexport function openSqliteKyselyDB<T>(props: {\r\n path: string;\r\n debug?: boolean;\r\n migratorProps: MinipSqliteKyselyMigratorProps;\r\n}): {\r\n db: Kysely<T>;\r\n migrator: Migrator;\r\n};\r\n\r\nexport function openSqliteKyselyDB<T>(props: OpenSqliteKyselyDBProps) {\r\n const dialect = new MinipSqliteDialect({\r\n database: new MinipSqliteDatabase(props.path, props.debug ?? false),\r\n });\r\n const db = new Kysely<T>({\r\n dialect,\r\n });\r\n\r\n if (props.migratorProps) {\r\n const migrator = new Migrator({\r\n db,\r\n ...props.migratorProps,\r\n });\r\n return {\r\n db,\r\n migrator,\r\n };\r\n }\r\n\r\n return db;\r\n}\r\n","import {\r\n sqliteCreateIterator,\r\n sqliteIteratorNext,\r\n sqliteIteratorRelease,\r\n} from \"../../api/sqlite\";\r\n\r\nexport class MinipSQLiteQueryIterator\r\n implements AsyncIterableIterator<unknown>\r\n{\r\n readonly dbKey: number;\r\n readonly stmtKey: number;\r\n readonly parameters: ReadonlyArray<unknown>;\r\n created: boolean = false;\r\n\r\n constructor(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n ) {\r\n this.dbKey = dbKey;\r\n this.stmtKey = stmtKey;\r\n this.parameters = parameters;\r\n }\r\n\r\n public async next(): Promise<IteratorResult<unknown>> {\r\n if (!this.created) {\r\n await sqliteCreateIterator(this.dbKey, this.stmtKey, this.parameters);\r\n this.created = true;\r\n }\r\n const res = await sqliteIteratorNext(this.dbKey, this.stmtKey);\r\n if (res.hasData()) return { value: res.data, done: false };\r\n return { value: undefined, done: true };\r\n }\r\n\r\n public async return(): Promise<IteratorResult<unknown>> {\r\n if (this.created) {\r\n await sqliteIteratorRelease(this.dbKey, this.stmtKey);\r\n }\r\n return { value: undefined, done: true };\r\n }\r\n\r\n [Symbol.asyncIterator](): AsyncIterableIterator<unknown> {\r\n return this;\r\n }\r\n}\r\n","import { MinipSqliteStatement } from \"./sqlite-statement\";\r\nimport {\r\n sqliteCloseDB,\r\n sqliteOpenDB,\r\n sqlitePrepare,\r\n sqliteStatementAll,\r\n sqliteStatementRun,\r\n} from \"../../api/sqlite\";\r\nimport { MinipSQLiteQueryIterator } from \"./sqlite-query-iterator\";\r\n\r\nexport class MinipSqliteDatabase {\r\n path: string;\r\n id: number;\r\n debug: boolean;\r\n constructor(path: string, debug: boolean) {\r\n this.path = path;\r\n this.id = -1;\r\n this.debug = debug;\r\n }\r\n async close(): Promise<void> {\r\n if (this.id === -1) return;\r\n await sqliteCloseDB(this.id);\r\n }\r\n async prepare(sql: string): Promise<MinipSqliteStatement> {\r\n if (this.id === -1) {\r\n const res = await sqliteOpenDB(this.path);\r\n this.id = res.data.dbKey;\r\n }\r\n\r\n const dbKey = this.id;\r\n const stmtRes = await sqlitePrepare(dbKey, sql);\r\n\r\n const stmtKey = stmtRes.data.stmtKey;\r\n const reader = stmtRes.data.reader;\r\n\r\n return {\r\n reader: reader,\r\n all(parameters) {\r\n return sqliteStatementAll(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n run(parameters) {\r\n return sqliteStatementRun(dbKey, stmtKey, parameters).then(\r\n (res) => res.data,\r\n );\r\n },\r\n iterate(parameters) {\r\n return new MinipSQLiteQueryIterator(dbKey, stmtKey, parameters);\r\n },\r\n };\r\n }\r\n}\r\n","import {\r\n DatabaseIntrospector,\r\n Dialect,\r\n DialectAdapter,\r\n Driver,\r\n Kysely,\r\n QueryCompiler,\r\n SqliteAdapter,\r\n SqliteIntrospector,\r\n SqliteQueryCompiler,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteDriver } from \"./sqlite-driver\";\r\n\r\nexport class MinipSqliteDialect implements Dialect {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n createDriver(): Driver {\r\n return new MinipSqliteDriver(this.#config);\r\n }\r\n createQueryCompiler(): QueryCompiler {\r\n return new SqliteQueryCompiler();\r\n }\r\n createAdapter(): DialectAdapter {\r\n return new SqliteAdapter();\r\n }\r\n createIntrospector(db: Kysely<any>): DatabaseIntrospector {\r\n return new SqliteIntrospector(db);\r\n }\r\n}\r\n","import {\r\n CompiledQuery,\r\n DatabaseConnection,\r\n Driver,\r\n TransactionSettings,\r\n} from \"kysely\";\r\nimport { MinipSqliteDialectConfig } from \"./sqlite-dialect-config\";\r\nimport { MinipSqliteConnection } from \"./sqlite-connection\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteDriver implements Driver {\r\n readonly #config: MinipSqliteDialectConfig;\r\n\r\n #db?: MinipSqliteDatabase;\r\n #connection?: MinipSqliteConnection;\r\n\r\n constructor(config: MinipSqliteDialectConfig) {\r\n this.#config = config;\r\n }\r\n\r\n async init() {\r\n this.#db = this.#config.database;\r\n this.#connection = new MinipSqliteConnection(this.#db);\r\n if (this.#config.onCreateConnection) {\r\n await this.#config.onCreateConnection(this.#connection);\r\n }\r\n }\r\n async acquireConnection(): Promise<MinipSqliteConnection> {\r\n return this.#connection!;\r\n }\r\n async beginTransaction(\r\n connection: DatabaseConnection,\r\n settings: TransactionSettings,\r\n ): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"begin\"));\r\n }\r\n async commitTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"commit\"));\r\n }\r\n async rollbackTransaction(connection: DatabaseConnection): Promise<void> {\r\n await connection.executeQuery(CompiledQuery.raw(\"rollback\"));\r\n }\r\n async releaseConnection(connection: DatabaseConnection): Promise<void> {}\r\n async destroy(): Promise<void> {\r\n this.#db?.close();\r\n }\r\n}\r\n","import {\r\n CompiledQuery,\r\n DatabaseConnection,\r\n QueryResult,\r\n SelectQueryNode,\r\n} from \"kysely\";\r\nimport { MinipSqliteDatabase } from \"./sqlite-database\";\r\n\r\nexport class MinipSqliteConnection implements DatabaseConnection {\r\n readonly #db: MinipSqliteDatabase;\r\n\r\n constructor(db: MinipSqliteDatabase) {\r\n this.#db = db;\r\n }\r\n async executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>> {\r\n const { sql, parameters } = compiledQuery;\r\n if (this.#db.debug) {\r\n console.debug(sql, parameters);\r\n }\r\n const stmt = await this.#db.prepare(sql);\r\n\r\n if (stmt.reader) {\r\n return {\r\n rows: (await stmt.all(parameters)) as R[],\r\n };\r\n } else {\r\n const { changes, lastInsertRowid } = await stmt.run(parameters);\r\n\r\n const numAffectedRows =\r\n changes !== undefined && changes !== null ? BigInt(changes) : undefined;\r\n\r\n return {\r\n numUpdatedOrDeletedRows: numAffectedRows,\r\n numAffectedRows,\r\n insertId:\r\n lastInsertRowid !== undefined && lastInsertRowid !== null\r\n ? BigInt(lastInsertRowid)\r\n : undefined,\r\n rows: [],\r\n };\r\n }\r\n }\r\n async *streamQuery<R>(\r\n compiledQuery: CompiledQuery,\r\n _chunkSize: number,\r\n ): AsyncIterableIterator<QueryResult<R>> {\r\n const { sql, parameters, query } = compiledQuery;\r\n const stmt = await this.#db.prepare(sql);\r\n if (SelectQueryNode.is(query)) {\r\n const iter = stmt.iterate(parameters) as AsyncIterableIterator<R>;\r\n for await (const row of iter) {\r\n yield {\r\n rows: [row],\r\n };\r\n }\r\n } else {\r\n throw new Error(\r\n \"Sqlite driver only supports streaming of select queries\",\r\n );\r\n }\r\n }\r\n}\r\n"],"mappings":"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","names":["Kysely","CompiledQuery","CompiledQuery","Kysely"]}
|
package/package.json
CHANGED
package/src/bridge/index.ts
CHANGED
|
@@ -42,17 +42,17 @@ if (window.webkit?.messageHandlers?.MinipNativeInteraction) {
|
|
|
42
42
|
const res = prompt(JSON.stringify(req));
|
|
43
43
|
if (res) {
|
|
44
44
|
const r = JSON.parse(res);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
|
|
46
|
+
if (r.code === MResponseStatusCode.SUCCESS) {
|
|
47
|
+
r.isSuccess = () => true;
|
|
48
|
+
const hashData = r.data !== null && r.data !== undefined;
|
|
49
|
+
r.hasData = () => hashData;
|
|
50
|
+
return r;
|
|
51
|
+
} else {
|
|
52
|
+
throw new Error(r.msg ?? "Unknown error, res: ");
|
|
53
|
+
}
|
|
49
54
|
}
|
|
50
|
-
|
|
51
|
-
code: MResponseStatusCode.FAILED,
|
|
52
|
-
msg: "Unknown error",
|
|
53
|
-
isSuccess: () => false,
|
|
54
|
-
hasData: () => false,
|
|
55
|
-
};
|
|
55
|
+
throw new Error("Unknown error");
|
|
56
56
|
},
|
|
57
57
|
};
|
|
58
58
|
}
|
package/src/fs/common.ts
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import jsBridge from "../bridge";
|
|
2
|
+
import { MResponseWithData } from "../types";
|
|
3
|
+
import { FileStats } from "../types/FileStats";
|
|
4
|
+
|
|
5
|
+
export async function access(path: string, mode?: number): Promise<void> {
|
|
6
|
+
return jsBridge.callNative({
|
|
7
|
+
api: "fsAccess",
|
|
8
|
+
data: {
|
|
9
|
+
path,
|
|
10
|
+
mode
|
|
11
|
+
}
|
|
12
|
+
}).then(res => {
|
|
13
|
+
const r = res as MResponseWithData<boolean>
|
|
14
|
+
if (!r.hasData() || !r.data) {
|
|
15
|
+
throw new Error(r.msg ?? "cannot access this file or directory")
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function accessSync(path: string, mode?: number) {
|
|
21
|
+
const res = jsBridge.callNativeSync({
|
|
22
|
+
api: "fsAccessSync",
|
|
23
|
+
data: {
|
|
24
|
+
path,
|
|
25
|
+
mode
|
|
26
|
+
}
|
|
27
|
+
}) as MResponseWithData<boolean>
|
|
28
|
+
if (!res.hasData() || !res.data) {
|
|
29
|
+
throw new Error(res.msg ?? "cannot access this file or directory")
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export async function unlink(path: string) {
|
|
34
|
+
await jsBridge.callNative({
|
|
35
|
+
api: "fsUnlink",
|
|
36
|
+
data: {
|
|
37
|
+
path
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function unlinkSync(path: string) {
|
|
43
|
+
jsBridge.callNativeSync({
|
|
44
|
+
api: "fsUnlinkSync",
|
|
45
|
+
data: {
|
|
46
|
+
path
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export async function rename(oldPath: string, newPath: string) {
|
|
52
|
+
await jsBridge.callNative({
|
|
53
|
+
api: "fsRename",
|
|
54
|
+
data: {
|
|
55
|
+
oldPath,
|
|
56
|
+
newPath
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function renameSync(oldPath: string, newPath: string) {
|
|
62
|
+
jsBridge.callNativeSync({
|
|
63
|
+
api: "fsRenameSync",
|
|
64
|
+
data: {
|
|
65
|
+
oldPath,
|
|
66
|
+
newPath
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// todo: check !!!!!
|
|
72
|
+
export async function stat(path: string) {
|
|
73
|
+
const res = await jsBridge.callNative({
|
|
74
|
+
api: "fsStat",
|
|
75
|
+
data: {
|
|
76
|
+
path
|
|
77
|
+
}
|
|
78
|
+
}) as MResponseWithData<FileStats>
|
|
79
|
+
|
|
80
|
+
const file = res.data
|
|
81
|
+
|
|
82
|
+
file.atime = new Date(file.atimeMs);
|
|
83
|
+
file.mtime = new Date(file.mtimeMs);
|
|
84
|
+
file.ctime = new Date(file.ctimeMs);
|
|
85
|
+
|
|
86
|
+
const S_IFDIR = 0o040000;
|
|
87
|
+
const S_IFREG = 0o100000;
|
|
88
|
+
const S_IFLNK = 0o120000;
|
|
89
|
+
|
|
90
|
+
file.isDirectory = function () {
|
|
91
|
+
return (this.mode & S_IFDIR) === S_IFDIR;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
file.isFile = function () {
|
|
95
|
+
return (this.mode & S_IFREG) === S_IFREG;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
file.isSymbolicLink = function () {
|
|
99
|
+
return (this.mode & S_IFLNK) === S_IFLNK;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
return file
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function statSync(path: string) {
|
|
106
|
+
const res = jsBridge.callNativeSync({
|
|
107
|
+
api: "fsStatSync",
|
|
108
|
+
data: {
|
|
109
|
+
path
|
|
110
|
+
}
|
|
111
|
+
}) as MResponseWithData<FileStats>
|
|
112
|
+
|
|
113
|
+
const file = res.data
|
|
114
|
+
|
|
115
|
+
file.atime = new Date(file.atimeMs);
|
|
116
|
+
file.mtime = new Date(file.mtimeMs);
|
|
117
|
+
file.ctime = new Date(file.ctimeMs);
|
|
118
|
+
|
|
119
|
+
const S_IFDIR = 0o040000;
|
|
120
|
+
const S_IFREG = 0o100000;
|
|
121
|
+
const S_IFLNK = 0o120000;
|
|
122
|
+
|
|
123
|
+
file.isDirectory = function () {
|
|
124
|
+
return (this.mode & S_IFDIR) === S_IFDIR;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
file.isFile = function () {
|
|
128
|
+
return (this.mode & S_IFREG) === S_IFREG;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
file.isSymbolicLink = function () {
|
|
132
|
+
return (this.mode & S_IFLNK) === S_IFLNK;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
return file
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export async function rm(path: string) {
|
|
139
|
+
await jsBridge.callNative({
|
|
140
|
+
api: "fsRm",
|
|
141
|
+
data: {
|
|
142
|
+
path
|
|
143
|
+
}
|
|
144
|
+
})
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export function rmSync(path: string) {
|
|
148
|
+
jsBridge.callNativeSync({
|
|
149
|
+
api: "fsRmSync",
|
|
150
|
+
data: {
|
|
151
|
+
path
|
|
152
|
+
}
|
|
153
|
+
})
|
|
154
|
+
}
|
package/src/fs/dir.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import jsBridge from "../bridge";
|
|
2
|
+
import { MResponseWithData } from "../types";
|
|
3
|
+
|
|
4
|
+
export async function mkdir(path: string, recursive: boolean = true) {
|
|
5
|
+
await jsBridge.callNative({
|
|
6
|
+
api: "fsMkdir",
|
|
7
|
+
data: {
|
|
8
|
+
path,
|
|
9
|
+
recursive
|
|
10
|
+
}
|
|
11
|
+
})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function mkdirSync(path: string, recursive: boolean = true) {
|
|
15
|
+
jsBridge.callNativeSync({
|
|
16
|
+
api: "fsMkdirSync",
|
|
17
|
+
data: {
|
|
18
|
+
path,
|
|
19
|
+
recursive
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function readDir(path: string): Promise<string[]> {
|
|
25
|
+
return jsBridge.callNative({
|
|
26
|
+
api: "fsReadDir",
|
|
27
|
+
data: {
|
|
28
|
+
path
|
|
29
|
+
}
|
|
30
|
+
}).then(res => res as MResponseWithData<string[]>)
|
|
31
|
+
.then(res => res.data)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function readDirSync(path: string): string[] {
|
|
35
|
+
const res = jsBridge.callNativeSync({
|
|
36
|
+
api: "fsReadDirSync",
|
|
37
|
+
data: {
|
|
38
|
+
path
|
|
39
|
+
}
|
|
40
|
+
}) as MResponseWithData<string[]>
|
|
41
|
+
return res.data
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export async function rmdir(path: string, force?: boolean) {
|
|
45
|
+
await jsBridge.callNative({
|
|
46
|
+
api: "fsRmdir",
|
|
47
|
+
data: {
|
|
48
|
+
path,
|
|
49
|
+
force
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function rmdirSync(path: string, force?: boolean) {
|
|
55
|
+
jsBridge.callNativeSync({
|
|
56
|
+
api: "fsRmdirSync",
|
|
57
|
+
data: {
|
|
58
|
+
path,
|
|
59
|
+
force
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
}
|
package/src/fs/file.ts
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import jsBridge from "../bridge";
|
|
2
|
+
import { MResponseWithData } from "../types";
|
|
3
|
+
|
|
4
|
+
function base64ToArrayBuffer(base64: string): ArrayBuffer {
|
|
5
|
+
const binaryString = atob(base64);
|
|
6
|
+
const bytes = new Uint8Array(binaryString.length);
|
|
7
|
+
for (let i = 0; i < binaryString.length; i++) {
|
|
8
|
+
bytes[i] = binaryString.charCodeAt(i);
|
|
9
|
+
}
|
|
10
|
+
return bytes.buffer;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function arrayBufferToBase64(buffer: ArrayBuffer): string {
|
|
14
|
+
let binary = '';
|
|
15
|
+
const bytes = new Uint8Array(buffer);
|
|
16
|
+
const len = bytes.byteLength;
|
|
17
|
+
|
|
18
|
+
for (let i = 0; i < len; i++) {
|
|
19
|
+
binary += String.fromCharCode(bytes[i]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return btoa(binary);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function readFile(path: string): Promise<ArrayBuffer> {
|
|
26
|
+
return jsBridge.callNative({
|
|
27
|
+
api: "fsReadFile",
|
|
28
|
+
data: {
|
|
29
|
+
path
|
|
30
|
+
}
|
|
31
|
+
}).then(res => (res as MResponseWithData<string>).data)
|
|
32
|
+
.then(res => base64ToArrayBuffer(res))
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function readFileSync(path: string): ArrayBuffer {
|
|
36
|
+
const res = jsBridge.callNativeSync({
|
|
37
|
+
api: "fsReadFileSync",
|
|
38
|
+
data: {
|
|
39
|
+
path
|
|
40
|
+
}
|
|
41
|
+
}) as MResponseWithData<string>
|
|
42
|
+
return base64ToArrayBuffer(res.data)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export async function writeFile(path: string, data: ArrayBuffer | string) {
|
|
46
|
+
let base64 = ""
|
|
47
|
+
if (data instanceof ArrayBuffer) {
|
|
48
|
+
base64 = arrayBufferToBase64(data)
|
|
49
|
+
} else {
|
|
50
|
+
const encoder = new TextEncoder();
|
|
51
|
+
const uint8Array = encoder.encode(data);
|
|
52
|
+
const arrayBuffer = uint8Array.buffer;
|
|
53
|
+
base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
await jsBridge.callNative({
|
|
58
|
+
api: "fsWriteFile",
|
|
59
|
+
data: {
|
|
60
|
+
path,
|
|
61
|
+
data: base64
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function writeFileSync(path: string, data: ArrayBuffer | string) {
|
|
67
|
+
let base64 = ""
|
|
68
|
+
if (data instanceof ArrayBuffer) {
|
|
69
|
+
base64 = arrayBufferToBase64(data)
|
|
70
|
+
} else {
|
|
71
|
+
const encoder = new TextEncoder();
|
|
72
|
+
const uint8Array = encoder.encode(data);
|
|
73
|
+
const arrayBuffer = uint8Array.buffer;
|
|
74
|
+
base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
jsBridge.callNativeSync({
|
|
78
|
+
api: "fsWriteFileSync",
|
|
79
|
+
data: {
|
|
80
|
+
path,
|
|
81
|
+
data: base64
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export async function appendFile(path: string, data: ArrayBuffer | string) {
|
|
87
|
+
let base64 = ""
|
|
88
|
+
if (data instanceof ArrayBuffer) {
|
|
89
|
+
base64 = arrayBufferToBase64(data)
|
|
90
|
+
} else {
|
|
91
|
+
const encoder = new TextEncoder();
|
|
92
|
+
const uint8Array = encoder.encode(data);
|
|
93
|
+
const arrayBuffer = uint8Array.buffer;
|
|
94
|
+
base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
await jsBridge.callNative({
|
|
98
|
+
api: "fsAppendFile",
|
|
99
|
+
data: {
|
|
100
|
+
path,
|
|
101
|
+
data: base64
|
|
102
|
+
}
|
|
103
|
+
})
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export function appendFileSync(path: string, data: ArrayBuffer | string) {
|
|
107
|
+
let base64 = ""
|
|
108
|
+
if (data instanceof ArrayBuffer) {
|
|
109
|
+
base64 = arrayBufferToBase64(data)
|
|
110
|
+
} else {
|
|
111
|
+
const encoder = new TextEncoder();
|
|
112
|
+
const uint8Array = encoder.encode(data);
|
|
113
|
+
const arrayBuffer = uint8Array.buffer;
|
|
114
|
+
base64 = arrayBufferToBase64(arrayBuffer as ArrayBuffer)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
jsBridge.callNativeSync({
|
|
118
|
+
api: "fsAppendFileSync",
|
|
119
|
+
data: {
|
|
120
|
+
path,
|
|
121
|
+
data: base64
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export async function copyFile(src: string, dest: string) {
|
|
127
|
+
await jsBridge.callNative({
|
|
128
|
+
api: "fsCopyFile",
|
|
129
|
+
data: {
|
|
130
|
+
src,
|
|
131
|
+
dest
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export function copyFileSync(src: string, dest: string) {
|
|
137
|
+
jsBridge.callNativeSync({
|
|
138
|
+
api: "fsCopyFileSync",
|
|
139
|
+
data: {
|
|
140
|
+
src,
|
|
141
|
+
dest
|
|
142
|
+
}
|
|
143
|
+
})
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export async function truncate(path: string, length: number) {
|
|
147
|
+
await jsBridge.callNative({
|
|
148
|
+
api: "fsTruncate",
|
|
149
|
+
data: {
|
|
150
|
+
path,
|
|
151
|
+
length
|
|
152
|
+
}
|
|
153
|
+
})
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export function truncateSync(path: string, length: number) {
|
|
157
|
+
jsBridge.callNativeSync({
|
|
158
|
+
api: "fsTruncateSync",
|
|
159
|
+
data: {
|
|
160
|
+
path,
|
|
161
|
+
length
|
|
162
|
+
}
|
|
163
|
+
})
|
|
164
|
+
}
|
package/src/fs/index.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface FileStats {
|
|
2
|
+
dev: number;
|
|
3
|
+
ino: number;
|
|
4
|
+
mode: number;
|
|
5
|
+
nlink: number;
|
|
6
|
+
uid: number;
|
|
7
|
+
gid: number;
|
|
8
|
+
rdev: number;
|
|
9
|
+
size: number;
|
|
10
|
+
blksize: number;
|
|
11
|
+
blocks: number;
|
|
12
|
+
atimeMs: number;
|
|
13
|
+
mtimeMs: number;
|
|
14
|
+
ctimeMs: number;
|
|
15
|
+
birthtimeMs: number;
|
|
16
|
+
|
|
17
|
+
atime: Date;
|
|
18
|
+
mtime: Date;
|
|
19
|
+
ctime: Date;
|
|
20
|
+
birthtime: Date;
|
|
21
|
+
|
|
22
|
+
isDirectory(): boolean;
|
|
23
|
+
isFile(): boolean;
|
|
24
|
+
isSymbolicLink(): boolean;
|
|
25
|
+
}
|
package/src/types/index.ts
CHANGED
package/tsup.config.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bridge/index.ts","../src/api/sqlite.ts"],"sourcesContent":["import { MResponseStatusCode } from \"../types\";\r\nimport { MRequest } from \"../types/request\";\r\n\r\ninterface WebKitCallable {\r\n postMessage: (data: string) => Promise<string>;\r\n}\r\ndeclare global {\r\n interface Window {\r\n webkit?: {\r\n messageHandlers?: {\r\n MinipNativeInteraction?: WebKitCallable;\r\n };\r\n };\r\n }\r\n}\r\n\r\nlet jsBridge: {\r\n callNative: <T>(req?: MRequest<T>) => Promise<any>;\r\n callNativeSync: <T>(req?: MRequest<T>) => any;\r\n};\r\n\r\n// apple webkit\r\nif (window.webkit?.messageHandlers?.MinipNativeInteraction) {\r\n const _callNative = window.webkit.messageHandlers.MinipNativeInteraction;\r\n jsBridge = {\r\n callNative(req) {\r\n return _callNative\r\n .postMessage(JSON.stringify(req))\r\n .then((res) => JSON.parse(res))\r\n .then((res) => {\r\n if (res.code === MResponseStatusCode.SUCCESS) {\r\n res.isSuccess = () => true;\r\n const hashData = res.data !== null && res.data !== undefined;\r\n res.hasData = () => hashData;\r\n return res;\r\n } else {\r\n throw new Error(res.msg ?? \"Unknown error, res: \");\r\n }\r\n });\r\n },\r\n callNativeSync(req) {\r\n const res = prompt(JSON.stringify(req));\r\n if (res) {\r\n const r = JSON.parse(res);\r\n r.isSuccess = () => true;\r\n const hashData = r.data !== null && r.data !== undefined;\r\n r.hasData = () => hashData;\r\n return r;\r\n }\r\n return {\r\n code: MResponseStatusCode.FAILED,\r\n msg: \"Unknown error\",\r\n isSuccess: () => false,\r\n hasData: () => false,\r\n };\r\n },\r\n };\r\n}\r\n// error\r\nelse {\r\n jsBridge = {\r\n callNative() {\r\n return new Promise((_, reject) => {\r\n reject(\"Cannot find JavaScript Bridge!!!\");\r\n });\r\n },\r\n callNativeSync() {\r\n return {\r\n code: MResponseStatusCode.FAILED,\r\n msg: \"Cannot find JavaScript Bridge!!!\",\r\n };\r\n },\r\n };\r\n}\r\n\r\nexport default jsBridge;\r\n","import jsBridge from \"../bridge\";\r\nimport { MResponse, MResponseWithData } from \"../types\";\r\n\r\nexport function sqliteOpenDB(\r\n path: string,\r\n): Promise<MResponseWithData<{ dbKey: number }>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteOpenDB\",\r\n data: {\r\n path,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteCloseDB(dbKey: number): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteCloseDB\",\r\n data: {\r\n dbKey,\r\n },\r\n });\r\n}\r\n\r\nexport function sqlitePrepare(\r\n dbKey: number,\r\n sql: string,\r\n): Promise<MResponseWithData<{ stmtKey: number; reader: boolean }>> {\r\n return jsBridge.callNative({\r\n api: \"sqlitePrepare\",\r\n data: {\r\n dbKey,\r\n sql,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementAll(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<MResponseWithData<unknown[]>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementAll\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteStatementRun(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<\r\n MResponseWithData<{\r\n changes: number | bigint;\r\n lastInsertRowid: number | bigint;\r\n }>\r\n> {\r\n return jsBridge.callNative({\r\n api: \"sqliteStatementRun\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteExecute(\r\n dbKey: number,\r\n sql: string,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<\r\n MResponseWithData<{\r\n reader: boolean;\r\n runRes?: {\r\n changes: number | bigint;\r\n lastInsertRowid: number | bigint;\r\n };\r\n entityData?: unknown[];\r\n }>\r\n> {\r\n return jsBridge.callNative({\r\n api: \"sqliteExecute\",\r\n data: {\r\n dbKey,\r\n sql,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteCreateIterator(\r\n dbKey: number,\r\n stmtKey: number,\r\n parameters: ReadonlyArray<unknown>,\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteCreateIterator\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n parameters,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteIteratorNext(\r\n dbKey: number,\r\n stmtKey: number,\r\n): Promise<MResponseWithData<unknown | undefined>> {\r\n return jsBridge.callNative({\r\n api: \"sqliteIteratorNext\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n },\r\n });\r\n}\r\n\r\nexport function sqliteIteratorRelease(\r\n dbKey: number,\r\n stmtKey: number,\r\n): Promise<MResponse> {\r\n return jsBridge.callNative({\r\n api: \"sqliteIteratorRelease\",\r\n data: {\r\n dbKey,\r\n stmtKey,\r\n },\r\n });\r\n}\r\n"],"mappings":"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","names":[]}
|