@glodon-aiot/bot-client-sdk 3.26.0-alpha.4 → 3.26.0-alpha.5

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.
Files changed (56) hide show
  1. package/README.md +105 -76
  2. package/dist/es/Config.mjs +63 -85
  3. package/dist/es/builtinTools/browserRuntime/BrowserCommandRunner.mjs +201 -0
  4. package/dist/es/builtinTools/browserRuntime/PythonRunner.mjs +356 -0
  5. package/dist/es/builtinTools/browserRuntime/WorkspaceBashFs.mjs +350 -0
  6. package/dist/es/builtinTools/browserRuntime/assets.mjs +9 -0
  7. package/dist/es/builtinTools/browserRuntime/loadBash.mjs +17 -0
  8. package/dist/es/builtinTools/browserRuntime/pyodideRunner.py.mjs +96 -0
  9. package/dist/es/builtinTools/browserRuntime/pyodideWorker.mjs +242 -0
  10. package/dist/es/builtinTools/command.mjs +56 -0
  11. package/dist/es/builtinTools/constants.mjs +10 -0
  12. package/dist/es/builtinTools/createBuiltinToolsPlugin.mjs +236 -0
  13. package/dist/es/builtinTools/overview.mjs +77 -0
  14. package/dist/es/builtinTools/paths.mjs +63 -0
  15. package/dist/es/builtinTools/schemas.mjs +216 -0
  16. package/dist/es/builtinTools/tools.mjs +471 -0
  17. package/dist/es/index.mjs +49 -48
  18. package/dist/es/localFiles/adapters/FileSystemAccessAdapter.mjs +193 -103
  19. package/dist/es/localFiles/adapters/HostBridgeAdapter.mjs +138 -77
  20. package/dist/es/localFiles/adapters/MemoryWorkspaceAdapter.mjs +132 -97
  21. package/dist/es/localFiles/adapters/WorkspaceFileAdapter.mjs +32 -28
  22. package/dist/es/localFiles/constants.mjs +1 -1
  23. package/dist/es/localFiles/host/connectHostBridge.mjs +22 -18
  24. package/dist/es/localFiles/host/protocol.mjs +6 -5
  25. package/dist/es/localFiles/schemas.mjs +45 -60
  26. package/dist/es/localFiles/validate.mjs +37 -37
  27. package/dist/es/localFiles/workspace/LocalWorkspace.mjs +71 -52
  28. package/dist/es/package.json.mjs +33 -27
  29. package/dist/lib/index.js +372 -9
  30. package/dist/src/Config.d.ts +2 -2
  31. package/dist/src/builtinTools/browserRuntime/BrowserCommandRunner.d.ts +26 -0
  32. package/dist/src/builtinTools/browserRuntime/PythonRunner.d.ts +67 -0
  33. package/dist/src/builtinTools/browserRuntime/WorkspaceBashFs.d.ts +51 -0
  34. package/dist/src/builtinTools/browserRuntime/assets.d.ts +13 -0
  35. package/dist/src/builtinTools/browserRuntime/loadBash.d.ts +3 -0
  36. package/dist/src/builtinTools/browserRuntime/pyodideWorker.d.ts +44 -0
  37. package/dist/src/builtinTools/command.d.ts +26 -0
  38. package/dist/src/builtinTools/constants.d.ts +17 -0
  39. package/dist/src/builtinTools/createBuiltinToolsPlugin.d.ts +11 -0
  40. package/dist/src/builtinTools/overview.d.ts +5 -0
  41. package/dist/src/builtinTools/paths.d.ts +15 -0
  42. package/dist/src/builtinTools/schemas.d.ts +3 -0
  43. package/dist/src/builtinTools/tools.d.ts +60 -0
  44. package/dist/src/localFiles/adapters/FileSystemAccessAdapter.d.ts +4 -1
  45. package/dist/src/localFiles/adapters/HostBridgeAdapter.d.ts +20 -1
  46. package/dist/src/localFiles/adapters/MemoryWorkspaceAdapter.d.ts +4 -1
  47. package/dist/src/localFiles/adapters/WorkspaceFileAdapter.d.ts +14 -0
  48. package/dist/src/localFiles/adapters/fsaTypes.d.ts +2 -0
  49. package/dist/src/localFiles/constants.d.ts +2 -1
  50. package/dist/src/localFiles/host/protocol.d.ts +13 -0
  51. package/dist/src/localFiles/index.d.ts +3 -2
  52. package/dist/src/localFiles/schemas.d.ts +2 -3
  53. package/dist/src/localFiles/types.d.ts +14 -1
  54. package/dist/src/localFiles/workspace/LocalWorkspace.d.ts +12 -0
  55. package/package.json +8 -2
  56. package/dist/es/localFiles/createLocalPythonPlugin.mjs +0 -196
package/dist/es/index.mjs CHANGED
@@ -1,70 +1,71 @@
1
1
  import { configuration as e, configure as T, getRegisteredLocalFilesPluginCode as E, getRegisteredLocalPythonPluginCode as r, resolveLocalFilesPluginCode as L } from "./Config.mjs";
2
2
  import { default as S } from "./BotClient.mjs";
3
3
  import { default as O } from "./Session.mjs";
4
- import { default as t } from "./AgentPlugin.mjs";
4
+ import { default as C } from "./AgentPlugin.mjs";
5
5
  import { ToolCode as l, ToolError as D, toToolError as R } from "./localFiles/errors.mjs";
6
- import { BUILTIN_TOOL_SCHEMAS as a, LOCAL_FILE_TOOL_SCHEMAS as U, LOCAL_PYTHON_TOOL_SCHEMA as M } from "./localFiles/schemas.mjs";
7
- import { createLocalFilesPlugin as i } from "./localFiles/createLocalFilesPlugin.mjs";
6
+ import { LOCAL_FILE_TOOL_SCHEMAS as a, LOCAL_PYTHON_TOOL_SCHEMA as U } from "./localFiles/schemas.mjs";
7
+ import { BUILTIN_TOOL_SCHEMAS as M } from "./builtinTools/schemas.mjs";
8
+ import { createLocalFilesPlugin as s } from "./localFiles/createLocalFilesPlugin.mjs";
8
9
  import { LocalWorkspace as P } from "./localFiles/workspace/LocalWorkspace.mjs";
9
- import { createIndexedDbStore as H, createMemoryStore as m } from "./localFiles/workspace/handleStore.mjs";
10
+ import { createIndexedDbStore as H, createMemoryStore as n } from "./localFiles/workspace/handleStore.mjs";
10
11
  import { FileSystemAccessAdapter as d } from "./localFiles/adapters/FileSystemAccessAdapter.mjs";
11
- import { MemoryWorkspaceAdapter as c } from "./localFiles/adapters/MemoryWorkspaceAdapter.mjs";
12
- import { createDefaultSessionFileTransfer as X } from "./localFiles/transfer/SessionFileTransfer.mjs";
13
- import { getDownloadUrlAllowlist as B, isDownloadUrlAllowed as Y } from "./localFiles/security/downloadUrlPolicy.mjs";
14
- import { SDK_SENSITIVE_BASELINE as W } from "./localFiles/security/sensitiveFiles.mjs";
15
- import { BINARY_SNIFF_BYTES as y, BUILTIN_TOOLS_PLUGIN_CODE as K, BUILTIN_TOOLS_PLUGIN_CODES as k, DEFAULT_DOWNLOAD_URL_ALLOWLIST as b, DEFAULT_IGNORED_DIRECTORIES as h, DEFAULT_IGNORED_FILE_PATTERNS as v, DEFAULT_LIMITS as V, KiB as Z, LIST_DIRECTORY_DEFAULT_LIMIT as j, LIST_DIRECTORY_MAX_LIMIT as q, LOCAL_FILES_FUNCTION_CODES as z, LOCAL_FILES_PLUGIN_CODES as J, LOCAL_PYTHON_FUNCTION_CODE as Q, LOCAL_PYTHON_PLUGIN_CODES as $, MiB as __, PYTHON_DEFAULT_TIMEOUT_MS as o_, PYTHON_MAX_ARGS as e_, PYTHON_MAX_TIMEOUT_MS as T_, SEARCH_DEFAULT_DEPTH as E_, SEARCH_FUNCTION_CODES as r_, SEARCH_MAX_DEPTH as L_, TEXT_SEARCH_MAX_CONTEXT_LINES as I_, TEXT_SEARCH_MAX_FILES as S_, TEXT_SEARCH_MAX_FILE_BYTES as A_, TEXT_SEARCH_MAX_LINE_CHARS as O_, TRANSFER_FILE_SIZE_LIMIT_MB as C_, TRANSFER_FUNCTION_CODES as t_, WORKSPACE_GRANT_ID as N_, WRITE_FUNCTION_CODES as l_ } from "./localFiles/constants.mjs";
12
+ import { MemoryWorkspaceAdapter as g } from "./localFiles/adapters/MemoryWorkspaceAdapter.mjs";
13
+ import { createDefaultSessionFileTransfer as u } from "./localFiles/transfer/SessionFileTransfer.mjs";
14
+ import { getDownloadUrlAllowlist as Y, isDownloadUrlAllowed as G } from "./localFiles/security/downloadUrlPolicy.mjs";
15
+ import { SDK_SENSITIVE_BASELINE as w } from "./localFiles/security/sensitiveFiles.mjs";
16
+ import { BINARY_SNIFF_BYTES as K, BUILTIN_TOOLS_PLUGIN_CODE as k, BUILTIN_TOOLS_PLUGIN_CODES as b, DEFAULT_DOWNLOAD_URL_ALLOWLIST as h, DEFAULT_IGNORED_DIRECTORIES as v, DEFAULT_IGNORED_FILE_PATTERNS as V, DEFAULT_LIMITS as Z, KiB as j, LIST_DIRECTORY_DEFAULT_LIMIT as q, LIST_DIRECTORY_MAX_LIMIT as z, LOCAL_FILES_FUNCTION_CODES as J, LOCAL_FILES_PLUGIN_CODES as Q, LOCAL_PYTHON_FUNCTION_CODE as $, LOCAL_PYTHON_PLUGIN_CODES as __, MiB as o_, PYTHON_DEFAULT_TIMEOUT_MS as e_, PYTHON_MAX_ARGS as T_, PYTHON_MAX_TIMEOUT_MS as E_, SEARCH_DEFAULT_DEPTH as r_, SEARCH_FUNCTION_CODES as L_, SEARCH_MAX_DEPTH as I_, TEXT_SEARCH_MAX_CONTEXT_LINES as S_, TEXT_SEARCH_MAX_FILES as A_, TEXT_SEARCH_MAX_FILE_BYTES as O_, TEXT_SEARCH_MAX_LINE_CHARS as t_, TRANSFER_FILE_SIZE_LIMIT_MB as C_, TRANSFER_FUNCTION_CODES as N_, WORKSPACE_GRANT_ID as l_, WRITE_FUNCTION_CODES as D_ } from "./localFiles/constants.mjs";
16
17
  export {
17
- t as AgentPlugin,
18
- y as BINARY_SNIFF_BYTES,
19
- K as BUILTIN_TOOLS_PLUGIN_CODE,
20
- k as BUILTIN_TOOLS_PLUGIN_CODES,
21
- a as BUILTIN_TOOL_SCHEMAS,
18
+ C as AgentPlugin,
19
+ K as BINARY_SNIFF_BYTES,
20
+ k as BUILTIN_TOOLS_PLUGIN_CODE,
21
+ b as BUILTIN_TOOLS_PLUGIN_CODES,
22
+ M as BUILTIN_TOOL_SCHEMAS,
22
23
  S as BotClient,
23
- b as DEFAULT_DOWNLOAD_URL_ALLOWLIST,
24
- h as DEFAULT_IGNORED_DIRECTORIES,
25
- v as DEFAULT_IGNORED_FILE_PATTERNS,
26
- V as DEFAULT_LIMITS,
24
+ h as DEFAULT_DOWNLOAD_URL_ALLOWLIST,
25
+ v as DEFAULT_IGNORED_DIRECTORIES,
26
+ V as DEFAULT_IGNORED_FILE_PATTERNS,
27
+ Z as DEFAULT_LIMITS,
27
28
  d as FileSystemAccessAdapter,
28
- Z as KiB,
29
- j as LIST_DIRECTORY_DEFAULT_LIMIT,
30
- q as LIST_DIRECTORY_MAX_LIMIT,
31
- z as LOCAL_FILES_FUNCTION_CODES,
32
- J as LOCAL_FILES_PLUGIN_CODES,
33
- U as LOCAL_FILE_TOOL_SCHEMAS,
34
- Q as LOCAL_PYTHON_FUNCTION_CODE,
35
- $ as LOCAL_PYTHON_PLUGIN_CODES,
36
- M as LOCAL_PYTHON_TOOL_SCHEMA,
29
+ j as KiB,
30
+ q as LIST_DIRECTORY_DEFAULT_LIMIT,
31
+ z as LIST_DIRECTORY_MAX_LIMIT,
32
+ J as LOCAL_FILES_FUNCTION_CODES,
33
+ Q as LOCAL_FILES_PLUGIN_CODES,
34
+ a as LOCAL_FILE_TOOL_SCHEMAS,
35
+ $ as LOCAL_PYTHON_FUNCTION_CODE,
36
+ __ as LOCAL_PYTHON_PLUGIN_CODES,
37
+ U as LOCAL_PYTHON_TOOL_SCHEMA,
37
38
  P as LocalWorkspace,
38
- c as MemoryWorkspaceAdapter,
39
- __ as MiB,
40
- o_ as PYTHON_DEFAULT_TIMEOUT_MS,
41
- e_ as PYTHON_MAX_ARGS,
42
- T_ as PYTHON_MAX_TIMEOUT_MS,
43
- W as SDK_SENSITIVE_BASELINE,
44
- E_ as SEARCH_DEFAULT_DEPTH,
45
- r_ as SEARCH_FUNCTION_CODES,
46
- L_ as SEARCH_MAX_DEPTH,
39
+ g as MemoryWorkspaceAdapter,
40
+ o_ as MiB,
41
+ e_ as PYTHON_DEFAULT_TIMEOUT_MS,
42
+ T_ as PYTHON_MAX_ARGS,
43
+ E_ as PYTHON_MAX_TIMEOUT_MS,
44
+ w as SDK_SENSITIVE_BASELINE,
45
+ r_ as SEARCH_DEFAULT_DEPTH,
46
+ L_ as SEARCH_FUNCTION_CODES,
47
+ I_ as SEARCH_MAX_DEPTH,
47
48
  O as Session,
48
- I_ as TEXT_SEARCH_MAX_CONTEXT_LINES,
49
- S_ as TEXT_SEARCH_MAX_FILES,
50
- A_ as TEXT_SEARCH_MAX_FILE_BYTES,
51
- O_ as TEXT_SEARCH_MAX_LINE_CHARS,
49
+ S_ as TEXT_SEARCH_MAX_CONTEXT_LINES,
50
+ A_ as TEXT_SEARCH_MAX_FILES,
51
+ O_ as TEXT_SEARCH_MAX_FILE_BYTES,
52
+ t_ as TEXT_SEARCH_MAX_LINE_CHARS,
52
53
  C_ as TRANSFER_FILE_SIZE_LIMIT_MB,
53
- t_ as TRANSFER_FUNCTION_CODES,
54
+ N_ as TRANSFER_FUNCTION_CODES,
54
55
  l as ToolCode,
55
56
  D as ToolError,
56
- N_ as WORKSPACE_GRANT_ID,
57
- l_ as WRITE_FUNCTION_CODES,
57
+ l_ as WORKSPACE_GRANT_ID,
58
+ D_ as WRITE_FUNCTION_CODES,
58
59
  e as configuration,
59
60
  T as configure,
60
- X as createDefaultSessionFileTransfer,
61
+ u as createDefaultSessionFileTransfer,
61
62
  H as createIndexedDbStore,
62
- i as createLocalFilesPlugin,
63
- m as createMemoryStore,
64
- B as getDownloadUrlAllowlist,
63
+ s as createLocalFilesPlugin,
64
+ n as createMemoryStore,
65
+ Y as getDownloadUrlAllowlist,
65
66
  E as getRegisteredLocalFilesPluginCode,
66
67
  r as getRegisteredLocalPythonPluginCode,
67
- Y as isDownloadUrlAllowed,
68
+ G as isDownloadUrlAllowed,
68
69
  L as resolveLocalFilesPluginCode,
69
70
  R as toToolError
70
71
  };
@@ -1,174 +1,264 @@
1
- var g = (i, e) => {
2
- if (e = Symbol[i])
3
- return e;
4
- throw Error("Symbol." + i + " is not defined");
1
+ var g = (o, t) => {
2
+ if (t = Symbol[o])
3
+ return t;
4
+ throw Error("Symbol." + o + " is not defined");
5
5
  };
6
- var d = (i, e, r) => new Promise((t, a) => {
7
- var n = (o) => {
6
+ var y = (o, t, e) => new Promise((r, a) => {
7
+ var c = (i) => {
8
8
  try {
9
- c(r.next(o));
10
- } catch (s) {
11
- a(s);
9
+ l(e.next(i));
10
+ } catch (n) {
11
+ a(n);
12
12
  }
13
- }, h = (o) => {
13
+ }, w = (i) => {
14
14
  try {
15
- c(r.throw(o));
16
- } catch (s) {
17
- a(s);
15
+ l(e.throw(i));
16
+ } catch (n) {
17
+ a(n);
18
18
  }
19
- }, c = (o) => o.done ? t(o.value) : Promise.resolve(o.value).then(n, h);
20
- c((r = r.apply(i, e)).next());
19
+ }, l = (i) => i.done ? r(i.value) : Promise.resolve(i.value).then(c, w);
20
+ l((e = e.apply(o, t)).next());
21
21
  });
22
- var y = (i, e, r) => (e = i[g("asyncIterator")]) ? e.call(i) : (i = i[g("iterator")](), e = {}, r = (t, a) => (a = i[t]) && (e[t] = (n) => new Promise((h, c, o) => (n = a.call(i, n), o = n.done, Promise.resolve(n.value).then((s) => h({ value: s, done: o }), c)))), r("next"), r("return"), e);
23
- import { domError as F, toChunks as v } from "./WorkspaceFileAdapter.mjs";
24
- import { throwIfAborted as u } from "../errors.mjs";
25
- import { splitPath as w } from "../security/pathPolicy.mjs";
26
- function p(i, e) {
27
- return !!i && typeof i == "object" && i.name === e;
22
+ var p = (o, t, e) => (t = o[g("asyncIterator")]) ? t.call(o) : (o = o[g("iterator")](), t = {}, e = (r, a) => (a = o[r]) && (t[r] = (c) => new Promise((w, l, i) => (c = a.call(o, c), i = c.done, Promise.resolve(c.value).then((n) => w({ value: n, done: i }), l)))), e("next"), e("return"), t);
23
+ import { domError as m, toChunks as D, isSameOrInside as k } from "./WorkspaceFileAdapter.mjs";
24
+ import { throwIfAborted as v } from "../errors.mjs";
25
+ import { splitPath as f } from "../security/pathPolicy.mjs";
26
+ function u(o, t) {
27
+ return !!o && typeof o == "object" && o.name === t;
28
28
  }
29
- class H {
30
- constructor(e) {
31
- this.root = e;
29
+ class b {
30
+ constructor(t) {
31
+ this.root = t;
32
32
  }
33
33
  get displayName() {
34
34
  return this.root.name;
35
35
  }
36
- resolveDirectory(e, r = !1) {
37
- return d(this, null, function* () {
38
- let t = this.root;
39
- for (const a of e)
40
- t = yield t.getDirectoryHandle(a, {
41
- create: r
36
+ resolveDirectory(t, e = !1) {
37
+ return y(this, null, function* () {
38
+ let r = this.root;
39
+ for (const a of t)
40
+ r = yield r.getDirectoryHandle(a, {
41
+ create: e
42
42
  });
43
- return t;
43
+ return r;
44
44
  });
45
45
  }
46
- resolveFile(e) {
47
- return d(this, null, function* () {
48
- const r = w(e), t = r.pop();
49
- if (!t)
50
- throw F("TypeMismatchError");
51
- return (yield this.resolveDirectory(r)).getFileHandle(t);
46
+ resolveFile(t) {
47
+ return y(this, null, function* () {
48
+ const e = f(t), r = e.pop();
49
+ if (!r)
50
+ throw m("TypeMismatchError");
51
+ return (yield this.resolveDirectory(e)).getFileHandle(r);
52
52
  });
53
53
  }
54
- stat(e) {
55
- return d(this, null, function* () {
56
- const r = w(e), t = r.pop();
57
- if (!t)
54
+ stat(t) {
55
+ return y(this, null, function* () {
56
+ const e = f(t), r = e.pop();
57
+ if (!r)
58
58
  return {
59
59
  name: this.root.name,
60
60
  kind: "directory"
61
61
  };
62
- const a = yield this.resolveDirectory(r);
62
+ const a = yield this.resolveDirectory(e);
63
63
  try {
64
- const n = yield (yield a.getFileHandle(t)).getFile();
64
+ const c = yield (yield a.getFileHandle(r)).getFile();
65
65
  return {
66
- name: t,
66
+ name: r,
67
67
  kind: "file",
68
- size: n.size,
69
- lastModified: n.lastModified
68
+ size: c.size,
69
+ lastModified: c.lastModified
70
70
  };
71
- } catch (n) {
72
- if (!p(n, "TypeMismatchError"))
73
- throw n;
74
- return yield a.getDirectoryHandle(t), {
75
- name: t,
71
+ } catch (c) {
72
+ if (!u(c, "TypeMismatchError"))
73
+ throw c;
74
+ return yield a.getDirectoryHandle(r), {
75
+ name: r,
76
76
  kind: "directory"
77
77
  };
78
78
  }
79
79
  });
80
80
  }
81
- listEntries(e, r) {
82
- return d(this, null, function* () {
83
- const t = yield this.resolveDirectory(w(e)), a = [];
81
+ listEntries(t, e) {
82
+ return y(this, null, function* () {
83
+ const r = yield this.resolveDirectory(f(t)), a = [];
84
84
  try {
85
- for (var n = y(t.values()), h, c, o; h = !(c = yield n.next()).done; h = !1) {
86
- const s = c.value;
87
- if (u(r), s.kind === "directory")
85
+ for (var c = p(r.values()), w, l, i; w = !(l = yield c.next()).done; w = !1) {
86
+ const n = l.value;
87
+ if (v(e), n.kind === "directory")
88
88
  a.push({
89
- name: s.name,
89
+ name: n.name,
90
90
  kind: "directory"
91
91
  });
92
92
  else
93
93
  try {
94
- const l = yield s.getFile();
94
+ const s = yield n.getFile();
95
95
  a.push({
96
- name: s.name,
96
+ name: n.name,
97
97
  kind: "file",
98
- size: l.size,
99
- lastModified: l.lastModified
98
+ size: s.size,
99
+ lastModified: s.lastModified
100
100
  });
101
- } catch (l) {
102
- if (p(l, "NotAllowedError"))
103
- throw l;
101
+ } catch (s) {
102
+ if (u(s, "NotAllowedError"))
103
+ throw s;
104
104
  a.push({
105
- name: s.name,
105
+ name: n.name,
106
106
  kind: "file"
107
107
  });
108
108
  }
109
109
  }
110
- } catch (c) {
111
- o = [c];
110
+ } catch (l) {
111
+ i = [l];
112
112
  } finally {
113
113
  try {
114
- h && (c = n.return) && (yield c.call(n));
114
+ w && (l = c.return) && (yield l.call(c));
115
115
  } finally {
116
- if (o)
117
- throw o[0];
116
+ if (i)
117
+ throw i[0];
118
118
  }
119
119
  }
120
120
  return a;
121
121
  });
122
122
  }
123
- readFile(e) {
124
- return d(this, null, function* () {
125
- return (yield this.resolveFile(e)).getFile();
123
+ readFile(t) {
124
+ return y(this, null, function* () {
125
+ return (yield this.resolveFile(t)).getFile();
126
126
  });
127
127
  }
128
- writeFile(a, n) {
129
- return d(this, arguments, function* (e, r, t = {}) {
130
- const h = w(e), c = h.pop();
131
- if (!c)
132
- throw F("TypeMismatchError");
133
- const o = yield this.resolveDirectory(h, t.createDirectories);
134
- let s = !0;
128
+ writeFile(a, c) {
129
+ return y(this, arguments, function* (t, e, r = {}) {
130
+ const w = f(t), l = w.pop();
131
+ if (!l)
132
+ throw m("TypeMismatchError");
133
+ const i = yield this.resolveDirectory(w, r.createDirectories);
134
+ let n = !0;
135
135
  try {
136
- yield o.getFileHandle(c);
137
- } catch (m) {
138
- if (!p(m, "NotFoundError"))
139
- throw m;
140
- s = !1;
136
+ yield i.getFileHandle(l);
137
+ } catch (h) {
138
+ if (!u(h, "NotFoundError"))
139
+ throw h;
140
+ n = !1;
141
141
  }
142
- const l = yield o.getFileHandle(c, {
142
+ const s = yield i.getFileHandle(l, {
143
143
  create: !0
144
144
  });
145
- let f;
145
+ let d;
146
146
  try {
147
- f = yield l.createWritable();
147
+ d = yield s.createWritable();
148
148
  try {
149
- for (var N = y(v(r)), b, T, x; b = !(T = yield N.next()).done; b = !1) {
150
- const m = T.value;
151
- u(t.signal), yield f.write(m);
149
+ for (var A = p(D(e)), x, S, W; x = !(S = yield A.next()).done; x = !1) {
150
+ const h = S.value;
151
+ v(r.signal), yield d.write(h);
152
152
  }
153
- } catch (T) {
154
- x = [T];
153
+ } catch (S) {
154
+ W = [S];
155
155
  } finally {
156
156
  try {
157
- b && (T = N.return) && (yield T.call(N));
157
+ x && (S = A.return) && (yield S.call(A));
158
158
  } finally {
159
- if (x)
160
- throw x[0];
159
+ if (W)
160
+ throw W[0];
161
161
  }
162
162
  }
163
- u(t.signal), yield f.close();
164
- } catch (m) {
165
- throw yield f == null ? void 0 : f.abort().catch(() => {
166
- }), s || (yield o.removeEntry(c).catch(() => {
167
- })), m;
163
+ v(r.signal), yield d.close();
164
+ } catch (h) {
165
+ throw yield d == null ? void 0 : d.abort().catch(() => {
166
+ }), n || (yield i.removeEntry(l).catch(() => {
167
+ })), h;
168
+ }
169
+ });
170
+ }
171
+ createDirectory(t) {
172
+ return y(this, null, function* () {
173
+ yield this.resolveDirectory(f(t), !0);
174
+ });
175
+ }
176
+ remove(r) {
177
+ return y(this, arguments, function* (t, e = {}) {
178
+ const a = f(t), c = a.pop();
179
+ if (!c)
180
+ throw m("InvalidModificationError");
181
+ yield (yield this.resolveDirectory(a)).removeEntry(c, {
182
+ recursive: e.recursive === !0
183
+ });
184
+ });
185
+ }
186
+ move(t, e) {
187
+ return y(this, null, function* () {
188
+ const r = f(t), a = f(e), c = r.pop(), w = a.pop();
189
+ if (!c || !w)
190
+ throw m("InvalidModificationError");
191
+ const l = yield this.resolveDirectory(r), i = yield E(l, c), n = yield this.resolveDirectory(a);
192
+ if (k(t, e))
193
+ throw m("InvalidModificationError");
194
+ let s;
195
+ try {
196
+ s = yield E(n, w);
197
+ } catch (d) {
198
+ if (!u(d, "NotFoundError"))
199
+ throw d;
168
200
  }
201
+ if (s && (s.kind === "directory" || i.kind === "directory"))
202
+ throw m("InvalidModificationError");
203
+ if (!s && typeof i.move == "function")
204
+ try {
205
+ yield i.move(n, w);
206
+ return;
207
+ } catch (d) {
208
+ if (!u(d, "NotSupportedError") && !(d instanceof TypeError))
209
+ throw d;
210
+ }
211
+ yield F(i, n, w), yield l.removeEntry(c, {
212
+ recursive: !0
213
+ });
169
214
  });
170
215
  }
171
216
  }
217
+ function E(o, t) {
218
+ return y(this, null, function* () {
219
+ try {
220
+ return yield o.getFileHandle(t);
221
+ } catch (e) {
222
+ if (!u(e, "TypeMismatchError"))
223
+ throw e;
224
+ return o.getDirectoryHandle(t);
225
+ }
226
+ });
227
+ }
228
+ function F(o, t, e) {
229
+ return y(this, null, function* () {
230
+ if (o.kind === "file") {
231
+ const i = yield o.getFile(), n = yield (yield t.getFileHandle(e, {
232
+ create: !0
233
+ })).createWritable();
234
+ try {
235
+ yield n.write(i), yield n.close();
236
+ } catch (s) {
237
+ throw yield n.abort().catch(() => {
238
+ }), s;
239
+ }
240
+ return;
241
+ }
242
+ const r = yield t.getDirectoryHandle(e, {
243
+ create: !0
244
+ });
245
+ try {
246
+ for (var a = p(o.values()), c, w, l; c = !(w = yield a.next()).done; c = !1) {
247
+ const i = w.value;
248
+ yield F(i, r, i.name);
249
+ }
250
+ } catch (w) {
251
+ l = [w];
252
+ } finally {
253
+ try {
254
+ c && (w = a.return) && (yield w.call(a));
255
+ } finally {
256
+ if (l)
257
+ throw l[0];
258
+ }
259
+ }
260
+ });
261
+ }
172
262
  export {
173
- H as FileSystemAccessAdapter
263
+ b as FileSystemAccessAdapter
174
264
  };