minip-bridge 1.0.22 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fs/index.mjs CHANGED
@@ -74,6 +74,7 @@ async function stat(path) {
74
74
  file.atime = new Date(file.atimeMs);
75
75
  file.mtime = new Date(file.mtimeMs);
76
76
  file.ctime = new Date(file.ctimeMs);
77
+ file.birthtime = new Date(file.birthtimeMs);
77
78
  const S_IFDIR = 16384;
78
79
  const S_IFREG = 32768;
79
80
  const S_IFLNK = 40960;
@@ -99,6 +100,7 @@ function statSync(path) {
99
100
  file.atime = new Date(file.atimeMs);
100
101
  file.mtime = new Date(file.mtimeMs);
101
102
  file.ctime = new Date(file.ctimeMs);
103
+ file.birthtime = new Date(file.birthtimeMs);
102
104
  const S_IFDIR = 16384;
103
105
  const S_IFREG = 32768;
104
106
  const S_IFLNK = 40960;
@@ -1 +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":";;;;;AAIA,eAAsB,OAAO,MAAc,MAA8B;AACvE,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC,EAAE,KAAK,SAAO;AACb,UAAM,IAAI;AACV,QAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,EAAE,MAAM;AAC3B,YAAM,IAAI,MAAM,EAAE,OAAO,sCAAsC;AAAA,IACjE;AAAA,EACF,CAAC;AACH;AAEO,SAAS,WAAW,MAAc,MAAe;AACtD,QAAM,MAAM,eAAS,eAAe;AAAA,IAClC,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACD,MAAI,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,MAAM;AAC/B,UAAM,IAAI,MAAM,IAAI,OAAO,sCAAsC;AAAA,EACnE;AACF;AAEA,eAAsB,OAAO,MAAc;AACzC,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,WAAW,MAAc;AACvC,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,OAAO,SAAiB,SAAiB;AAC7D,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,WAAW,SAAiB,SAAiB;AAC3D,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAGA,eAAsB,KAAK,MAAc;AACvC,QAAM,MAAM,MAAM,eAAS,WAAW;AAAA,IACpC,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,OAAO,IAAI;AAEjB,OAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;AAClC,OAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;AAClC,OAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;AAElC,QAAM,UAAU;AAChB,QAAM,UAAU;AAChB,QAAM,UAAU;AAEhB,OAAK,cAAc,WAAY;AAC7B,YAAQ,KAAK,OAAO,aAAa;AAAA,EACnC;AAEA,OAAK,SAAS,WAAY;AACxB,YAAQ,KAAK,OAAO,aAAa;AAAA,EACnC;AAEA,OAAK,iBAAiB,WAAY;AAChC,YAAQ,KAAK,OAAO,aAAa;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,SAAS,SAAS,MAAc;AACrC,QAAM,MAAM,eAAS,eAAe;AAAA,IAClC,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,OAAO,IAAI;AAEjB,OAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;AAClC,OAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;AAClC,OAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;AAElC,QAAM,UAAU;AAChB,QAAM,UAAU;AAChB,QAAM,UAAU;AAEhB,OAAK,cAAc,WAAY;AAC7B,YAAQ,KAAK,OAAO,aAAa;AAAA,EACnC;AAEA,OAAK,SAAS,WAAY;AACxB,YAAQ,KAAK,OAAO,aAAa;AAAA,EACnC;AAEA,OAAK,iBAAiB,WAAY;AAChC,YAAQ,KAAK,OAAO,aAAa;AAAA,EACnC;AAEA,SAAO;AACT;AAEA,eAAsB,GAAG,MAAc;AACrC,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,OAAO,MAAc;AACnC,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;ACtJA,eAAsB,MAAM,MAAc,YAAqB,MAAM;AACnE,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,UAAU,MAAc,YAAqB,MAAM;AACjE,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,QAAQ,MAAiC;AACvD,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC,EAAE,KAAK,SAAO,GAAkC,EAC9C,KAAK,SAAO,IAAI,IAAI;AACzB;AAEO,SAAS,YAAY,MAAwB;AAClD,QAAM,MAAM,eAAS,eAAe;AAAA,IAClC,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO,IAAI;AACb;AAEA,eAAsB,MAAM,MAAc,OAAiB;AACzD,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,UAAU,MAAc,OAAiB;AACvD,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AC1DA,SAAS,oBAAoB,QAA6B;AACxD,QAAM,eAAe,KAAK,MAAM;AAChC,QAAM,QAAQ,IAAI,WAAW,aAAa,MAAM;AAChD,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,CAAC,IAAI,aAAa,WAAW,CAAC;AAAA,EACtC;AACA,SAAO,MAAM;AACf;AAEA,SAAS,oBAAoB,QAA6B;AACxD,MAAI,SAAS;AACb,QAAM,QAAQ,IAAI,WAAW,MAAM;AACnC,QAAM,MAAM,MAAM;AAElB,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,cAAU,OAAO,aAAa,MAAM,CAAC,CAAC;AAAA,EACxC;AAEA,SAAO,KAAK,MAAM;AACpB;AAEO,SAAS,SAAS,MAAoC;AAC3D,SAAO,eAAS,WAAW;AAAA,IACzB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC,EAAE,KAAK,SAAQ,IAAkC,IAAI,EACnD,KAAK,SAAO,oBAAoB,GAAG,CAAC;AACzC;AAEO,SAAS,aAAa,MAA2B;AACtD,QAAM,MAAM,eAAS,eAAe;AAAA,IAClC,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO,oBAAoB,IAAI,IAAI;AACrC;AAEA,eAAsB,UAAU,MAAc,MAA4B;AACxE,MAAI,SAAS;AACb,MAAI,gBAAgB,aAAa;AAC/B,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,UAAM,UAAU,IAAI,YAAY;AAChC,UAAM,aAAa,QAAQ,OAAO,IAAI;AACtC,UAAM,cAAc,WAAW;AAC/B,aAAS,oBAAoB,WAA0B;AAAA,EACzD;AAGA,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,IACR;AAAA,EACF,CAAC;AACH;AAEO,SAAS,cAAc,MAAc,MAA4B;AACtE,MAAI,SAAS;AACb,MAAI,gBAAgB,aAAa;AAC/B,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,UAAM,UAAU,IAAI,YAAY;AAChC,UAAM,aAAa,QAAQ,OAAO,IAAI;AACtC,UAAM,cAAc,WAAW;AAC/B,aAAS,oBAAoB,WAA0B;AAAA,EACzD;AAEA,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,IACR;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,WAAW,MAAc,MAA4B;AACzE,MAAI,SAAS;AACb,MAAI,gBAAgB,aAAa;AAC/B,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,UAAM,UAAU,IAAI,YAAY;AAChC,UAAM,aAAa,QAAQ,OAAO,IAAI;AACtC,UAAM,cAAc,WAAW;AAC/B,aAAS,oBAAoB,WAA0B;AAAA,EACzD;AAEA,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,IACR;AAAA,EACF,CAAC;AACH;AAEO,SAAS,eAAe,MAAc,MAA4B;AACvE,MAAI,SAAS;AACb,MAAI,gBAAgB,aAAa;AAC/B,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,UAAM,UAAU,IAAI,YAAY;AAChC,UAAM,aAAa,QAAQ,OAAO,IAAI;AACtC,UAAM,cAAc,WAAW;AAC/B,aAAS,oBAAoB,WAA0B;AAAA,EACzD;AAEA,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,IACR;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,SAAS,KAAa,MAAc;AACxD,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,aAAa,KAAa,MAAc;AACtD,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,SAAS,MAAc,QAAgB;AAC3D,QAAM,eAAS,WAAW;AAAA,IACxB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,aAAa,MAAc,QAAgB;AACzD,iBAAS,eAAe;AAAA,IACtB,KAAK;AAAA,IACL,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}
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\r\n .callNative({\r\n api: \"fsAccess\",\r\n data: {\r\n path,\r\n mode,\r\n },\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 file.birthtime = new Date(file.birthtimeMs);\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 file.birthtime = new Date(file.birthtimeMs);\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}\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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minip-bridge",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "minip webview bridge",
5
5
  "main": "index.ts",
6
6
  "module": "./dist/index.mjs",
package/src/fs/common.ts CHANGED
@@ -1,20 +1,22 @@
1
1
  import jsBridge from "../bridge";
2
2
  import { MResponseWithData } from "../types";
3
- import { FileStats } from "../types/FileStats";
3
+ import { FileStats } from "../types/filestats";
4
4
 
5
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
- });
6
+ return jsBridge
7
+ .callNative({
8
+ api: "fsAccess",
9
+ data: {
10
+ path,
11
+ mode,
12
+ },
13
+ })
14
+ .then((res) => {
15
+ const r = res as MResponseWithData<boolean>;
16
+ if (!r.hasData() || !r.data) {
17
+ throw new Error(r.msg ?? "cannot access this file or directory");
18
+ }
19
+ });
18
20
  }
19
21
 
20
22
  export function accessSync(path: string, mode?: number) {
@@ -22,11 +24,11 @@ export function accessSync(path: string, mode?: number) {
22
24
  api: "fsAccessSync",
23
25
  data: {
24
26
  path,
25
- mode
26
- }
27
- }) as MResponseWithData<boolean>
27
+ mode,
28
+ },
29
+ }) as MResponseWithData<boolean>;
28
30
  if (!res.hasData() || !res.data) {
29
- throw new Error(res.msg ?? "cannot access this file or directory")
31
+ throw new Error(res.msg ?? "cannot access this file or directory");
30
32
  }
31
33
  }
32
34
 
@@ -34,18 +36,18 @@ export async function unlink(path: string) {
34
36
  await jsBridge.callNative({
35
37
  api: "fsUnlink",
36
38
  data: {
37
- path
38
- }
39
- })
39
+ path,
40
+ },
41
+ });
40
42
  }
41
43
 
42
44
  export function unlinkSync(path: string) {
43
45
  jsBridge.callNativeSync({
44
46
  api: "fsUnlinkSync",
45
47
  data: {
46
- path
47
- }
48
- })
48
+ path,
49
+ },
50
+ });
49
51
  }
50
52
 
51
53
  export async function rename(oldPath: string, newPath: string) {
@@ -53,9 +55,9 @@ export async function rename(oldPath: string, newPath: string) {
53
55
  api: "fsRename",
54
56
  data: {
55
57
  oldPath,
56
- newPath
57
- }
58
- })
58
+ newPath,
59
+ },
60
+ });
59
61
  }
60
62
 
61
63
  export function renameSync(oldPath: string, newPath: string) {
@@ -63,25 +65,26 @@ export function renameSync(oldPath: string, newPath: string) {
63
65
  api: "fsRenameSync",
64
66
  data: {
65
67
  oldPath,
66
- newPath
67
- }
68
- })
68
+ newPath,
69
+ },
70
+ });
69
71
  }
70
72
 
71
73
  // todo: check !!!!!
72
74
  export async function stat(path: string) {
73
- const res = await jsBridge.callNative({
75
+ const res = (await jsBridge.callNative({
74
76
  api: "fsStat",
75
77
  data: {
76
- path
77
- }
78
- }) as MResponseWithData<FileStats>
78
+ path,
79
+ },
80
+ })) as MResponseWithData<FileStats>;
79
81
 
80
- const file = res.data
82
+ const file = res.data;
81
83
 
82
84
  file.atime = new Date(file.atimeMs);
83
85
  file.mtime = new Date(file.mtimeMs);
84
86
  file.ctime = new Date(file.ctimeMs);
87
+ file.birthtime = new Date(file.birthtimeMs);
85
88
 
86
89
  const S_IFDIR = 0o040000;
87
90
  const S_IFREG = 0o100000;
@@ -99,22 +102,23 @@ export async function stat(path: string) {
99
102
  return (this.mode & S_IFLNK) === S_IFLNK;
100
103
  };
101
104
 
102
- return file
105
+ return file;
103
106
  }
104
107
 
105
108
  export function statSync(path: string) {
106
109
  const res = jsBridge.callNativeSync({
107
110
  api: "fsStatSync",
108
111
  data: {
109
- path
110
- }
111
- }) as MResponseWithData<FileStats>
112
+ path,
113
+ },
114
+ }) as MResponseWithData<FileStats>;
112
115
 
113
- const file = res.data
116
+ const file = res.data;
114
117
 
115
118
  file.atime = new Date(file.atimeMs);
116
119
  file.mtime = new Date(file.mtimeMs);
117
120
  file.ctime = new Date(file.ctimeMs);
121
+ file.birthtime = new Date(file.birthtimeMs);
118
122
 
119
123
  const S_IFDIR = 0o040000;
120
124
  const S_IFREG = 0o100000;
@@ -132,23 +136,23 @@ export function statSync(path: string) {
132
136
  return (this.mode & S_IFLNK) === S_IFLNK;
133
137
  };
134
138
 
135
- return file
139
+ return file;
136
140
  }
137
141
 
138
142
  export async function rm(path: string) {
139
143
  await jsBridge.callNative({
140
144
  api: "fsRm",
141
145
  data: {
142
- path
143
- }
144
- })
146
+ path,
147
+ },
148
+ });
145
149
  }
146
150
 
147
151
  export function rmSync(path: string) {
148
152
  jsBridge.callNativeSync({
149
153
  api: "fsRmSync",
150
154
  data: {
151
- path
152
- }
153
- })
154
- }
155
+ path,
156
+ },
157
+ });
158
+ }