@inkeep/agents-manage-api 0.39.5 → 0.40.0

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 (123) hide show
  1. package/dist/create-app.d.ts +21 -0
  2. package/dist/create-app.js +144 -0
  3. package/dist/data/agentFull.d.ts +15 -0
  4. package/dist/data/agentFull.js +84 -0
  5. package/dist/data/conversations.d.ts +77 -0
  6. package/dist/data/conversations.js +152 -0
  7. package/dist/data/db/dbClient.d.ts +6 -0
  8. package/dist/data/db/dbClient.js +17 -0
  9. package/dist/env.d.ts +61 -0
  10. package/dist/env.js +55 -0
  11. package/dist/factory.d.ts +17 -2
  12. package/dist/factory.js +35 -2
  13. package/dist/index.d.ts +119 -22
  14. package/dist/index.js +8 -5
  15. package/dist/initialization.d.ts +6 -0
  16. package/dist/initialization.js +79 -0
  17. package/dist/logger.d.ts +2 -0
  18. package/dist/logger.js +3 -0
  19. package/dist/middleware/auth.d.ts +24 -0
  20. package/dist/middleware/auth.js +55 -0
  21. package/dist/middleware/error-handler.d.ts +12 -0
  22. package/dist/middleware/error-handler.js +88 -0
  23. package/dist/middleware/require-permission.d.ts +19 -0
  24. package/dist/middleware/require-permission.js +80 -0
  25. package/dist/middleware/session-auth.d.ts +6 -0
  26. package/dist/middleware/session-auth.js +26 -0
  27. package/dist/middleware/tenant-access.d.ts +12 -0
  28. package/dist/middleware/tenant-access.js +54 -0
  29. package/dist/openapi.d.ts +7 -0
  30. package/dist/openapi.js +157 -0
  31. package/dist/routes/agent.d.ts +9 -0
  32. package/dist/routes/agent.js +244 -0
  33. package/dist/routes/agentFull.d.ts +9 -0
  34. package/dist/routes/agentFull.js +188 -0
  35. package/dist/routes/agentToolRelations.d.ts +9 -0
  36. package/dist/routes/agentToolRelations.js +284 -0
  37. package/dist/routes/apiKeys.d.ts +9 -0
  38. package/dist/routes/apiKeys.js +217 -0
  39. package/dist/routes/artifactComponents.d.ts +9 -0
  40. package/dist/routes/artifactComponents.js +204 -0
  41. package/dist/routes/cliAuth.d.ts +9 -0
  42. package/dist/routes/cliAuth.js +60 -0
  43. package/dist/routes/contextConfigs.d.ts +9 -0
  44. package/dist/routes/contextConfigs.js +175 -0
  45. package/dist/routes/conversations.d.ts +7 -0
  46. package/dist/routes/conversations.js +59 -0
  47. package/dist/routes/credentialStores.d.ts +9 -0
  48. package/dist/routes/credentialStores.js +81 -0
  49. package/dist/routes/credentials.d.ts +9 -0
  50. package/dist/routes/credentials.js +204 -0
  51. package/dist/routes/dataComponents.d.ts +9 -0
  52. package/dist/routes/dataComponents.js +188 -0
  53. package/dist/routes/externalAgents.d.ts +9 -0
  54. package/dist/routes/externalAgents.js +195 -0
  55. package/dist/routes/functionTools.d.ts +9 -0
  56. package/dist/routes/functionTools.js +252 -0
  57. package/dist/routes/functions.d.ts +9 -0
  58. package/dist/routes/functions.js +281 -0
  59. package/dist/routes/index.d.ts +7 -0
  60. package/dist/routes/index.js +54 -0
  61. package/dist/routes/invitations.d.ts +9 -0
  62. package/dist/routes/invitations.js +41 -0
  63. package/dist/routes/mcp.d.ts +7 -0
  64. package/dist/routes/mcp.js +45 -0
  65. package/dist/routes/mcpCatalog.d.ts +13 -0
  66. package/dist/routes/mcpCatalog.js +454 -0
  67. package/dist/routes/oauth.d.ts +10 -0
  68. package/dist/routes/oauth.js +314 -0
  69. package/dist/routes/playgroundToken.d.ts +9 -0
  70. package/dist/routes/playgroundToken.js +108 -0
  71. package/dist/routes/projectFull.d.ts +9 -0
  72. package/dist/routes/projectFull.js +193 -0
  73. package/dist/routes/projects.d.ts +9 -0
  74. package/dist/routes/projects.js +188 -0
  75. package/dist/routes/shared.d.ts +93 -0
  76. package/dist/routes/shared.js +44 -0
  77. package/dist/routes/signoz.d.ts +10 -0
  78. package/dist/routes/signoz.js +155 -0
  79. package/dist/routes/subAgentArtifactComponents.d.ts +9 -0
  80. package/dist/routes/subAgentArtifactComponents.js +198 -0
  81. package/dist/routes/subAgentDataComponents.d.ts +9 -0
  82. package/dist/routes/subAgentDataComponents.js +197 -0
  83. package/dist/routes/subAgentExternalAgentRelations.d.ts +9 -0
  84. package/dist/routes/subAgentExternalAgentRelations.js +213 -0
  85. package/dist/routes/subAgentRelations.d.ts +9 -0
  86. package/dist/routes/subAgentRelations.js +259 -0
  87. package/dist/routes/subAgentTeamAgentRelations.d.ts +9 -0
  88. package/dist/routes/subAgentTeamAgentRelations.js +213 -0
  89. package/dist/routes/subAgentToolRelations.d.ts +9 -0
  90. package/dist/routes/subAgentToolRelations.js +284 -0
  91. package/dist/routes/subAgents.d.ts +9 -0
  92. package/dist/routes/subAgents.js +210 -0
  93. package/dist/routes/thirdPartyMCPServers.d.ts +14 -0
  94. package/dist/routes/thirdPartyMCPServers.js +72 -0
  95. package/dist/routes/tools.d.ts +9 -0
  96. package/dist/routes/tools.js +256 -0
  97. package/dist/routes/userOrganizations.d.ts +9 -0
  98. package/dist/routes/userOrganizations.js +58 -0
  99. package/dist/sso-helpers.d.ts +20 -0
  100. package/dist/sso-helpers.js +51 -0
  101. package/dist/types/app.d.ts +47 -0
  102. package/dist/types/app.js +1 -0
  103. package/dist/utils/cors.d.ts +33 -0
  104. package/dist/utils/cors.js +98 -0
  105. package/dist/utils/oauth-service.d.ts +71 -0
  106. package/dist/utils/oauth-service.js +106 -0
  107. package/dist/utils/signoz-helpers.d.ts +9 -0
  108. package/dist/utils/signoz-helpers.js +33 -0
  109. package/dist/utils/temp-api-keys.d.ts +17 -0
  110. package/dist/utils/temp-api-keys.js +26 -0
  111. package/package.json +6 -13
  112. package/dist/chunk-VBDAOXYI.js +0 -832
  113. package/dist/chunk-VBDAOXYI.js.map +0 -1
  114. package/dist/factory2.d.ts +0 -41
  115. package/dist/factory2.d.ts.map +0 -1
  116. package/dist/factory2.js +0 -37085
  117. package/dist/factory2.js.map +0 -1
  118. package/dist/index.d.ts.map +0 -1
  119. package/dist/index.js.map +0 -1
  120. package/dist/nodefs.js +0 -27
  121. package/dist/nodefs.js.map +0 -1
  122. package/dist/opfs-ahp.js +0 -368
  123. package/dist/opfs-ahp.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;cA6Ea,mBAAI;;;sBAKf,YAAA,CAAA;;IALW,OAKX,EAAA,IAAA;IAAA,iBAAA,EAAA,MAAA;;;;;EAWwz3J,eAAA,EAAA;UAAk+C,6CAAA;EAAA,CAAA,GAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;kCAAl+C;;;6BAAA,YAAA,CAAA;;;;;gCAAk+C,YAAA;;;;;;;;;yBAAA,YAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAhB3w6J,UAAA,EAAA;wBAAA,IAAA,EAAA,MAAA;wBAO2D,WAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAtE,KAAK"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["app: Hono"],"sources":["../src/index.ts"],"sourcesContent":["import { CredentialStoreRegistry, createDefaultCredentialStores } from '@inkeep/agents-core';\nimport type { SSOProviderConfig } from '@inkeep/agents-core/auth';\nimport { createAuth } from '@inkeep/agents-core/auth';\nimport { Hono } from 'hono';\nimport { createManagementHono } from './app';\nimport dbClient from './data/db/dbClient';\nimport { env } from './env';\nimport { initializeDefaultUser } from './initialization';\nimport { createAuth0Provider } from './sso-helpers';\n\n// Re-export Hono to ensure it's not tree-shaken (required for Vercel framework detection)\nexport { Hono };\n\n// Re-export everything from factory for backward compatibility\nexport type { SSOProviderConfig, UserAuthConfig } from './factory';\nexport {\n createAuth0Provider,\n createManagementApp,\n createManagementHono,\n createOIDCProvider,\n initializeDefaultUser,\n} from './factory';\n\n// Default configuration and stores for module-level app\nconst defaultConfig = {\n port: 3002,\n serverOptions: {\n requestTimeout: 60000,\n keepAliveTimeout: 60000,\n keepAlive: true,\n },\n};\n\nconst defaultStores = createDefaultCredentialStores();\nconst defaultRegistry = new CredentialStoreRegistry(defaultStores);\n\nfunction createManagementAuth(userAuthConfig?: {\n ssoProviders?: SSOProviderConfig[];\n socialProviders?: any;\n}) {\n if (env.DISABLE_AUTH) {\n return null;\n }\n\n return createAuth({\n baseURL: env.INKEEP_AGENTS_MANAGE_API_URL || 'http://localhost:3002',\n secret: env.BETTER_AUTH_SECRET || 'development-secret-change-in-production',\n dbClient,\n ...(userAuthConfig?.ssoProviders && { ssoProviders: userAuthConfig.ssoProviders }),\n ...(userAuthConfig?.socialProviders && { socialProviders: userAuthConfig.socialProviders }),\n });\n}\n\n// Module-level initialization for default app export\n// This only runs when importing the default app (legacy/simple deployments)\nconst ssoProviders = await Promise.all([\n process.env.AUTH0_DOMAIN && process.env.AUTH0_CLIENT_ID && process.env.AUTH0_CLIENT_SECRET\n ? createAuth0Provider({\n domain: process.env.AUTH0_DOMAIN,\n clientId: process.env.AUTH0_CLIENT_ID,\n clientSecret: process.env.AUTH0_CLIENT_SECRET,\n })\n : null,\n]);\n\nconst socialProviders =\n process.env.PUBLIC_GOOGLE_CLIENT_ID && process.env.GOOGLE_CLIENT_SECRET\n ? {\n google: {\n prompt: 'select_account' as const,\n display: 'popup' as const,\n clientId: process.env.PUBLIC_GOOGLE_CLIENT_ID,\n clientSecret: process.env.GOOGLE_CLIENT_SECRET,\n },\n }\n : undefined;\n\nexport const auth = createManagementAuth({\n ssoProviders: ssoProviders.filter(\n (p: SSOProviderConfig | null): p is SSOProviderConfig => p !== null\n ),\n socialProviders,\n});\n\nconst app: Hono = createManagementHono(defaultConfig, defaultRegistry, auth);\n\n// Initialize default user for development environment only\nif (env.ENVIRONMENT === 'development') {\n void initializeDefaultUser(auth);\n}\n\n// Export the default app for Vite dev server and simple deployments\nexport default app;\n"],"mappings":";;;;;;;AAwBA,MAAM,gBAAgB;CACpB,MAAM;CACN,eAAe;EACb,gBAAgB;EAChB,kBAAkB;EAClB,WAAW;EACZ;CACF;AAGD,MAAM,kBAAkB,IAAI,wBADN,+BAA+B,CACa;AAElE,SAAS,qBAAqB,gBAG3B;AACD,KAAI,IAAI,aACN,QAAO;AAGT,QAAO,WAAW;EAChB,SAAS,IAAI,gCAAgC;EAC7C,QAAQ,IAAI,sBAAsB;EAClC;EACA,GAAI,gBAAgB,gBAAgB,EAAE,cAAc,eAAe,cAAc;EACjF,GAAI,gBAAgB,mBAAmB,EAAE,iBAAiB,eAAe,iBAAiB;EAC3F,CAAC;;AAKJ,MAAM,eAAe,MAAM,QAAQ,IAAI,CACrC,QAAQ,IAAI,gBAAgB,QAAQ,IAAI,mBAAmB,QAAQ,IAAI,sBACnE,oBAAoB;CAClB,QAAQ,QAAQ,IAAI;CACpB,UAAU,QAAQ,IAAI;CACtB,cAAc,QAAQ,IAAI;CAC3B,CAAC,GACF,KACL,CAAC;AAEF,MAAM,kBACJ,QAAQ,IAAI,2BAA2B,QAAQ,IAAI,uBAC/C,EACE,QAAQ;CACN,QAAQ;CACR,SAAS;CACT,UAAU,QAAQ,IAAI;CACtB,cAAc,QAAQ,IAAI;CAC3B,EACF,GACD;AAEN,MAAa,OAAO,qBAAqB;CACvC,cAAc,aAAa,QACxB,MAAwD,MAAM,KAChE;CACD;CACD,CAAC;AAEF,MAAMA,MAAY,qBAAqB,eAAe,iBAAiB,KAAK;AAG5E,IAAI,IAAI,gBAAgB,cACtB,CAAK,sBAAsB,KAAK;AAIlC,kBAAe"}
package/dist/nodefs.js DELETED
@@ -1,27 +0,0 @@
1
- import { h as u, s as ur, t as C } from "./chunk-VBDAOXYI.js";
2
- import * as s from "fs";
3
- import * as o from "path";
4
-
5
- //#region ../node_modules/.pnpm/@electric-sql+pglite@0.3.14/node_modules/@electric-sql/pglite/dist/fs/nodefs.js
6
- u();
7
- var m = class extends ur {
8
- constructor(t) {
9
- super(t), this.rootDir = o.resolve(t), s.existsSync(o.join(this.rootDir)) || s.mkdirSync(this.rootDir);
10
- }
11
- async init(t, e) {
12
- return this.pg = t, { emscriptenOpts: {
13
- ...e,
14
- preRun: [...e.preRun || [], (r) => {
15
- let c = r.FS.filesystems.NODEFS;
16
- r.FS.mkdir(C), r.FS.mount(c, { root: this.rootDir }, C);
17
- }]
18
- } };
19
- }
20
- async closeFs() {
21
- this.pg.Module.FS.quit();
22
- }
23
- };
24
-
25
- //#endregion
26
- export { m as NodeFS };
27
- //# sourceMappingURL=nodefs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodefs.js","names":["n","p","i"],"sources":["../../node_modules/.pnpm/@electric-sql+pglite@0.3.14/node_modules/@electric-sql/pglite/dist/fs/nodefs.js"],"sourcesContent":["import{d as i,e as p}from\"../chunk-VBDAOXYI.js\";import{j as n}from\"../chunk-QY3QWFKW.js\";n();import*as s from\"fs\";import*as o from\"path\";var m=class extends p{constructor(t){super(t),this.rootDir=o.resolve(t),s.existsSync(o.join(this.rootDir))||s.mkdirSync(this.rootDir)}async init(t,e){return this.pg=t,{emscriptenOpts:{...e,preRun:[...e.preRun||[],r=>{let c=r.FS.filesystems.NODEFS;r.FS.mkdir(i),r.FS.mount(c,{root:this.rootDir},i)}]}}}async closeFs(){this.pg.Module.FS.quit()}};export{m as NodeFS};\n//# sourceMappingURL=nodefs.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;AAAyFA,GAAG;AAA6C,IAAI,IAAE,cAAcC,GAAC;CAAC,YAAY,GAAE;AAAC,QAAM,EAAE,EAAC,KAAK,UAAQ,EAAE,QAAQ,EAAE,EAAC,EAAE,WAAW,EAAE,KAAK,KAAK,QAAQ,CAAC,IAAE,EAAE,UAAU,KAAK,QAAQ;;CAAC,MAAM,KAAK,GAAE,GAAE;AAAC,SAAO,KAAK,KAAG,GAAE,EAAC,gBAAe;GAAC,GAAG;GAAE,QAAO,CAAC,GAAG,EAAE,UAAQ,EAAE,GAAC,MAAG;IAAC,IAAI,IAAE,EAAE,GAAG,YAAY;AAAO,MAAE,GAAG,MAAMC,EAAE,EAAC,EAAE,GAAG,MAAM,GAAE,EAAC,MAAK,KAAK,SAAQ,EAACA,EAAE;KAAE;GAAC,EAAC;;CAAC,MAAM,UAAS;AAAC,OAAK,GAAG,OAAO,GAAG,MAAM"}
package/dist/opfs-ahp.js DELETED
@@ -1,368 +0,0 @@
1
- import { d as R, f as T, g as x, h as u, i as cr, m as h, o as pr, p as U } from "./chunk-VBDAOXYI.js";
2
-
3
- //#region ../node_modules/.pnpm/@electric-sql+pglite@0.3.14/node_modules/@electric-sql/pglite/dist/fs/opfs-ahp.js
4
- u();
5
- var $ = "state.txt", G = "data", T$1 = {
6
- DIR: 16384,
7
- FILE: 32768
8
- }, H, v, F, M, y, b, m, x$1, P, D, S, n, C, O, k, w, f, I, W, j, L = class extends cr {
9
- constructor(e, { initialPoolSize: t = 1e3, maintainedPoolSize: o = 100, debug: i = !1 } = {}) {
10
- super(e, { debug: i });
11
- R(this, n);
12
- R(this, H);
13
- R(this, v);
14
- R(this, F);
15
- R(this, M);
16
- R(this, y);
17
- R(this, b, /* @__PURE__ */ new Map());
18
- R(this, m, /* @__PURE__ */ new Map());
19
- R(this, x$1, 0);
20
- R(this, P, /* @__PURE__ */ new Map());
21
- R(this, D, /* @__PURE__ */ new Map());
22
- this.lastCheckpoint = 0;
23
- this.checkpointInterval = 1e3 * 60;
24
- this.poolCounter = 0;
25
- R(this, S, /* @__PURE__ */ new Set());
26
- this.initialPoolSize = t, this.maintainedPoolSize = o;
27
- }
28
- async init(e, t) {
29
- return await T(this, n, C).call(this), super.init(e, t);
30
- }
31
- async syncToFs(e = !1) {
32
- await this.maybeCheckpointState(), await this.maintainPool(), e || this.flush();
33
- }
34
- async closeFs() {
35
- for (let e of h(this, m).values()) e.close();
36
- h(this, y).flush(), h(this, y).close(), this.pg.Module.FS.quit();
37
- }
38
- async maintainPool(e) {
39
- e = e || this.maintainedPoolSize;
40
- let t = e - this.state.pool.length, o = [];
41
- for (let i = 0; i < t; i++) o.push(new Promise(async (c) => {
42
- ++this.poolCounter;
43
- let a = `${(Date.now() - 1704063600).toString(16).padStart(8, "0")}-${this.poolCounter.toString(16).padStart(8, "0")}`, h$1 = await h(this, F).getFileHandle(a, { create: !0 }), d = await h$1.createSyncAccessHandle();
44
- h(this, b).set(a, h$1), h(this, m).set(a, d), T(this, n, k).call(this, {
45
- opp: "createPoolFile",
46
- args: [a]
47
- }), this.state.pool.push(a), c();
48
- }));
49
- for (let i = 0; i > t; i--) o.push(new Promise(async (c) => {
50
- let a = this.state.pool.pop();
51
- T(this, n, k).call(this, {
52
- opp: "deletePoolFile",
53
- args: [a]
54
- });
55
- let h$1 = h(this, b).get(a);
56
- h(this, m).get(a)?.close(), await h(this, F).removeEntry(h$1.name), h(this, b).delete(a), h(this, m).delete(a), c();
57
- }));
58
- await Promise.all(o);
59
- }
60
- _createPoolFileState(e) {
61
- this.state.pool.push(e);
62
- }
63
- _deletePoolFileState(e) {
64
- let t = this.state.pool.indexOf(e);
65
- t > -1 && this.state.pool.splice(t, 1);
66
- }
67
- async maybeCheckpointState() {
68
- Date.now() - this.lastCheckpoint > this.checkpointInterval && await this.checkpointState();
69
- }
70
- async checkpointState() {
71
- let e = new TextEncoder().encode(JSON.stringify(this.state));
72
- h(this, y).truncate(0), h(this, y).write(e, { at: 0 }), h(this, y).flush(), this.lastCheckpoint = Date.now();
73
- }
74
- flush() {
75
- for (let e of h(this, S)) try {
76
- e.flush();
77
- } catch {}
78
- h(this, S).clear();
79
- }
80
- chmod(e, t) {
81
- T(this, n, O).call(this, {
82
- opp: "chmod",
83
- args: [e, t]
84
- }, () => {
85
- this._chmodState(e, t);
86
- });
87
- }
88
- _chmodState(e, t) {
89
- let o = T(this, n, f).call(this, e);
90
- o.mode = t;
91
- }
92
- close(e) {
93
- let t = T(this, n, I).call(this, e);
94
- h(this, P).delete(e), h(this, D).delete(t);
95
- }
96
- fstat(e) {
97
- let t = T(this, n, I).call(this, e);
98
- return this.lstat(t);
99
- }
100
- lstat(e) {
101
- let t = T(this, n, f).call(this, e), o = t.type === "file" ? h(this, m).get(t.backingFilename).getSize() : 0, i = 4096;
102
- return {
103
- dev: 0,
104
- ino: 0,
105
- mode: t.mode,
106
- nlink: 1,
107
- uid: 0,
108
- gid: 0,
109
- rdev: 0,
110
- size: o,
111
- blksize: i,
112
- blocks: Math.ceil(o / i),
113
- atime: t.lastModified,
114
- mtime: t.lastModified,
115
- ctime: t.lastModified
116
- };
117
- }
118
- mkdir(e, t) {
119
- T(this, n, O).call(this, {
120
- opp: "mkdir",
121
- args: [e, t]
122
- }, () => {
123
- this._mkdirState(e, t);
124
- });
125
- }
126
- _mkdirState(e, t) {
127
- let o = T(this, n, w).call(this, e), i = o.pop(), c = [], a = this.state.root;
128
- for (let d of o) {
129
- if (c.push(e), !Object.prototype.hasOwnProperty.call(a.children, d)) if (t?.recursive) this.mkdir(c.join("/"));
130
- else throw new p("ENOENT", "No such file or directory");
131
- if (a.children[d].type !== "directory") throw new p("ENOTDIR", "Not a directory");
132
- a = a.children[d];
133
- }
134
- if (Object.prototype.hasOwnProperty.call(a.children, i)) throw new p("EEXIST", "File exists");
135
- let h$1 = {
136
- type: "directory",
137
- lastModified: Date.now(),
138
- mode: t?.mode || T$1.DIR,
139
- children: {}
140
- };
141
- a.children[i] = h$1;
142
- }
143
- open(e, t, o) {
144
- if (T(this, n, f).call(this, e).type !== "file") throw new p("EISDIR", "Is a directory");
145
- let c = T(this, n, W).call(this);
146
- return h(this, P).set(c, e), h(this, D).set(e, c), c;
147
- }
148
- readdir(e) {
149
- let t = T(this, n, f).call(this, e);
150
- if (t.type !== "directory") throw new p("ENOTDIR", "Not a directory");
151
- return Object.keys(t.children);
152
- }
153
- read(e, t, o, i, c) {
154
- let a = T(this, n, I).call(this, e), h$1 = T(this, n, f).call(this, a);
155
- if (h$1.type !== "file") throw new p("EISDIR", "Is a directory");
156
- return h(this, m).get(h$1.backingFilename).read(new Uint8Array(t.buffer, o, i), { at: c });
157
- }
158
- rename(e, t) {
159
- T(this, n, O).call(this, {
160
- opp: "rename",
161
- args: [e, t]
162
- }, () => {
163
- this._renameState(e, t, !0);
164
- });
165
- }
166
- _renameState(e, t, o = !1) {
167
- let i = T(this, n, w).call(this, e), c = i.pop(), a = T(this, n, f).call(this, i.join("/"));
168
- if (!Object.prototype.hasOwnProperty.call(a.children, c)) throw new p("ENOENT", "No such file or directory");
169
- let h$1 = T(this, n, w).call(this, t), d = h$1.pop(), l = T(this, n, f).call(this, h$1.join("/"));
170
- if (o && Object.prototype.hasOwnProperty.call(l.children, d)) {
171
- let u$1 = l.children[d];
172
- h(this, m).get(u$1.backingFilename).truncate(0), this.state.pool.push(u$1.backingFilename);
173
- }
174
- l.children[d] = a.children[c], delete a.children[c];
175
- }
176
- rmdir(e) {
177
- T(this, n, O).call(this, {
178
- opp: "rmdir",
179
- args: [e]
180
- }, () => {
181
- this._rmdirState(e);
182
- });
183
- }
184
- _rmdirState(e) {
185
- let t = T(this, n, w).call(this, e), o = t.pop(), i = T(this, n, f).call(this, t.join("/"));
186
- if (!Object.prototype.hasOwnProperty.call(i.children, o)) throw new p("ENOENT", "No such file or directory");
187
- let c = i.children[o];
188
- if (c.type !== "directory") throw new p("ENOTDIR", "Not a directory");
189
- if (Object.keys(c.children).length > 0) throw new p("ENOTEMPTY", "Directory not empty");
190
- delete i.children[o];
191
- }
192
- truncate(e, t = 0) {
193
- let o = T(this, n, f).call(this, e);
194
- if (o.type !== "file") throw new p("EISDIR", "Is a directory");
195
- let i = h(this, m).get(o.backingFilename);
196
- if (!i) throw new p("ENOENT", "No such file or directory");
197
- i.truncate(t), h(this, S).add(i);
198
- }
199
- unlink(e) {
200
- T(this, n, O).call(this, {
201
- opp: "unlink",
202
- args: [e]
203
- }, () => {
204
- this._unlinkState(e, !0);
205
- });
206
- }
207
- _unlinkState(e, t = !1) {
208
- let o = T(this, n, w).call(this, e), i = o.pop(), c = T(this, n, f).call(this, o.join("/"));
209
- if (!Object.prototype.hasOwnProperty.call(c.children, i)) throw new p("ENOENT", "No such file or directory");
210
- let a = c.children[i];
211
- if (a.type !== "file") throw new p("EISDIR", "Is a directory");
212
- if (delete c.children[i], t) {
213
- let h$1 = h(this, m).get(a.backingFilename);
214
- h$1?.truncate(0), h(this, S).add(h$1), h(this, D).has(e) && (h(this, P).delete(h(this, D).get(e)), h(this, D).delete(e));
215
- }
216
- this.state.pool.push(a.backingFilename);
217
- }
218
- utimes(e, t, o) {
219
- T(this, n, O).call(this, {
220
- opp: "utimes",
221
- args: [
222
- e,
223
- t,
224
- o
225
- ]
226
- }, () => {
227
- this._utimesState(e, t, o);
228
- });
229
- }
230
- _utimesState(e, t, o) {
231
- let i = T(this, n, f).call(this, e);
232
- i.lastModified = o;
233
- }
234
- writeFile(e, t, o) {
235
- let i = T(this, n, w).call(this, e), c = i.pop(), a = T(this, n, f).call(this, i.join("/"));
236
- if (Object.prototype.hasOwnProperty.call(a.children, c)) {
237
- let l = a.children[c];
238
- l.lastModified = Date.now(), T(this, n, k).call(this, {
239
- opp: "setLastModified",
240
- args: [e, l.lastModified]
241
- });
242
- } else {
243
- if (this.state.pool.length === 0) throw new Error("No more file handles available in the pool");
244
- let l = {
245
- type: "file",
246
- lastModified: Date.now(),
247
- mode: o?.mode || T$1.FILE,
248
- backingFilename: this.state.pool.pop()
249
- };
250
- a.children[c] = l, T(this, n, k).call(this, {
251
- opp: "createFileNode",
252
- args: [e, l]
253
- });
254
- }
255
- let h$1 = a.children[c], d = h(this, m).get(h$1.backingFilename);
256
- t.length > 0 && (d.write(typeof t == "string" ? new TextEncoder().encode(t) : new Uint8Array(t), { at: 0 }), e.startsWith("/pg_wal") && h(this, S).add(d));
257
- }
258
- _createFileNodeState(e, t) {
259
- let o = T(this, n, w).call(this, e), i = o.pop(), c = T(this, n, f).call(this, o.join("/"));
260
- c.children[i] = t;
261
- let a = this.state.pool.indexOf(t.backingFilename);
262
- return a > -1 && this.state.pool.splice(a, 1), t;
263
- }
264
- _setLastModifiedState(e, t) {
265
- let o = T(this, n, f).call(this, e);
266
- o.lastModified = t;
267
- }
268
- write(e, t, o, i, c) {
269
- let a = T(this, n, I).call(this, e), h$1 = T(this, n, f).call(this, a);
270
- if (h$1.type !== "file") throw new p("EISDIR", "Is a directory");
271
- let d = h(this, m).get(h$1.backingFilename);
272
- if (!d) throw new p("EBADF", "Bad file descriptor");
273
- let l = d.write(new Uint8Array(t, o, i), { at: c });
274
- return a.startsWith("/pg_wal") && h(this, S).add(d), l;
275
- }
276
- };
277
- H = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), F = /* @__PURE__ */ new WeakMap(), M = /* @__PURE__ */ new WeakMap(), y = /* @__PURE__ */ new WeakMap(), b = /* @__PURE__ */ new WeakMap(), m = /* @__PURE__ */ new WeakMap(), x$1 = /* @__PURE__ */ new WeakMap(), P = /* @__PURE__ */ new WeakMap(), D = /* @__PURE__ */ new WeakMap(), S = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakSet(), C = async function() {
278
- x(this, H, await navigator.storage.getDirectory()), x(this, v, await T(this, n, j).call(this, this.dataDir, { create: !0 })), x(this, F, await T(this, n, j).call(this, G, {
279
- from: h(this, v),
280
- create: !0
281
- })), x(this, M, await h(this, v).getFileHandle($, { create: !0 })), x(this, y, await h(this, M).createSyncAccessHandle());
282
- let e = new ArrayBuffer(h(this, y).getSize());
283
- h(this, y).read(e, { at: 0 });
284
- let t, o = new TextDecoder().decode(e).split(`
285
- `), i = !1;
286
- try {
287
- t = JSON.parse(o[0]);
288
- } catch {
289
- t = {
290
- root: {
291
- type: "directory",
292
- lastModified: Date.now(),
293
- mode: T$1.DIR,
294
- children: {}
295
- },
296
- pool: []
297
- }, h(this, y).truncate(0), h(this, y).write(new TextEncoder().encode(JSON.stringify(t)), { at: 0 }), i = !0;
298
- }
299
- this.state = t;
300
- let c = o.slice(1).filter(Boolean).map((l) => JSON.parse(l));
301
- for (let l of c) {
302
- let u$1 = `_${l.opp}State`;
303
- if (typeof this[u$1] == "function") try {
304
- this[u$1].bind(this)(...l.args);
305
- } catch (N) {
306
- console.warn("Error applying OPFS AHP WAL entry", l, N);
307
- }
308
- }
309
- let a = [], h$1 = async (l) => {
310
- if (l.type === "file") try {
311
- let u$1 = await h(this, F).getFileHandle(l.backingFilename), N = await u$1.createSyncAccessHandle();
312
- h(this, b).set(l.backingFilename, u$1), h(this, m).set(l.backingFilename, N);
313
- } catch (u$1) {
314
- console.error("Error opening file handle for node", l, u$1);
315
- }
316
- else for (let u$1 of Object.values(l.children)) a.push(h$1(u$1));
317
- };
318
- await h$1(this.state.root);
319
- let d = [];
320
- for (let l of this.state.pool) d.push(new Promise(async (u$1) => {
321
- h(this, b).has(l) && console.warn("File handle already exists for pool file", l);
322
- let N = await h(this, F).getFileHandle(l), U$1 = await N.createSyncAccessHandle();
323
- h(this, b).set(l, N), h(this, m).set(l, U$1), u$1();
324
- }));
325
- await Promise.all([...a, ...d]), await this.maintainPool(i ? this.initialPoolSize : this.maintainedPoolSize);
326
- }, O = function(e, t) {
327
- let o = T(this, n, k).call(this, e);
328
- try {
329
- t();
330
- } catch (i) {
331
- throw h(this, y).truncate(o), i;
332
- }
333
- }, k = function(e) {
334
- let t = JSON.stringify(e), o = new TextEncoder().encode(`
335
- ${t}`), i = h(this, y).getSize();
336
- return h(this, y).write(o, { at: i }), h(this, S).add(h(this, y)), i;
337
- }, w = function(e) {
338
- return e.split("/").filter(Boolean);
339
- }, f = function(e, t) {
340
- let o = T(this, n, w).call(this, e), i = t || this.state.root;
341
- for (let c of o) {
342
- if (i.type !== "directory") throw new p("ENOTDIR", "Not a directory");
343
- if (!Object.prototype.hasOwnProperty.call(i.children, c)) throw new p("ENOENT", "No such file or directory");
344
- i = i.children[c];
345
- }
346
- return i;
347
- }, I = function(e) {
348
- let t = h(this, P).get(e);
349
- if (!t) throw new p("EBADF", "Bad file descriptor");
350
- return t;
351
- }, W = function() {
352
- let e = ++U(this, x$1)._;
353
- for (; h(this, P).has(e);) U(this, x$1)._++;
354
- return e;
355
- }, j = async function(e, t) {
356
- let o = T(this, n, w).call(this, e), i = t?.from || h(this, H);
357
- for (let c of o) i = await i.getDirectoryHandle(c, { create: t?.create });
358
- return i;
359
- };
360
- var p = class extends Error {
361
- constructor(A, e) {
362
- super(e), typeof A == "number" ? this.code = A : typeof A == "string" && (this.code = pr[A]);
363
- }
364
- };
365
-
366
- //#endregion
367
- export { L as OpfsAhpFS };
368
- //# sourceMappingURL=opfs-ahp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opfs-ahp.js","names":["R","T","x","B","r","s","h","u","E","U","_","z"],"sources":["../../node_modules/.pnpm/@electric-sql+pglite@0.3.14/node_modules/@electric-sql/pglite/dist/fs/opfs-ahp.js"],"sourcesContent":["import{f as B,g as z}from\"../chunk-VBDAOXYI.js\";import{e as s,f as g,g as E,h as r,i as _,j as R}from\"../chunk-QY3QWFKW.js\";R();var $=\"state.txt\",G=\"data\",T={DIR:16384,FILE:32768},H,v,F,M,y,b,m,x,P,D,S,n,C,O,k,w,f,I,W,j,L=class extends B{constructor(e,{initialPoolSize:t=1e3,maintainedPoolSize:o=100,debug:i=!1}={}){super(e,{debug:i});g(this,n);g(this,H);g(this,v);g(this,F);g(this,M);g(this,y);g(this,b,new Map);g(this,m,new Map);g(this,x,0);g(this,P,new Map);g(this,D,new Map);this.lastCheckpoint=0;this.checkpointInterval=1e3*60;this.poolCounter=0;g(this,S,new Set);this.initialPoolSize=t,this.maintainedPoolSize=o}async init(e,t){return await r(this,n,C).call(this),super.init(e,t)}async syncToFs(e=!1){await this.maybeCheckpointState(),await this.maintainPool(),e||this.flush()}async closeFs(){for(let e of s(this,m).values())e.close();s(this,y).flush(),s(this,y).close(),this.pg.Module.FS.quit()}async maintainPool(e){e=e||this.maintainedPoolSize;let t=e-this.state.pool.length,o=[];for(let i=0;i<t;i++)o.push(new Promise(async c=>{++this.poolCounter;let a=`${(Date.now()-1704063600).toString(16).padStart(8,\"0\")}-${this.poolCounter.toString(16).padStart(8,\"0\")}`,h=await s(this,F).getFileHandle(a,{create:!0}),d=await h.createSyncAccessHandle();s(this,b).set(a,h),s(this,m).set(a,d),r(this,n,k).call(this,{opp:\"createPoolFile\",args:[a]}),this.state.pool.push(a),c()}));for(let i=0;i>t;i--)o.push(new Promise(async c=>{let a=this.state.pool.pop();r(this,n,k).call(this,{opp:\"deletePoolFile\",args:[a]});let h=s(this,b).get(a);s(this,m).get(a)?.close(),await s(this,F).removeEntry(h.name),s(this,b).delete(a),s(this,m).delete(a),c()}));await Promise.all(o)}_createPoolFileState(e){this.state.pool.push(e)}_deletePoolFileState(e){let t=this.state.pool.indexOf(e);t>-1&&this.state.pool.splice(t,1)}async maybeCheckpointState(){Date.now()-this.lastCheckpoint>this.checkpointInterval&&await this.checkpointState()}async checkpointState(){let e=new TextEncoder().encode(JSON.stringify(this.state));s(this,y).truncate(0),s(this,y).write(e,{at:0}),s(this,y).flush(),this.lastCheckpoint=Date.now()}flush(){for(let e of s(this,S))try{e.flush()}catch{}s(this,S).clear()}chmod(e,t){r(this,n,O).call(this,{opp:\"chmod\",args:[e,t]},()=>{this._chmodState(e,t)})}_chmodState(e,t){let o=r(this,n,f).call(this,e);o.mode=t}close(e){let t=r(this,n,I).call(this,e);s(this,P).delete(e),s(this,D).delete(t)}fstat(e){let t=r(this,n,I).call(this,e);return this.lstat(t)}lstat(e){let t=r(this,n,f).call(this,e),o=t.type===\"file\"?s(this,m).get(t.backingFilename).getSize():0,i=4096;return{dev:0,ino:0,mode:t.mode,nlink:1,uid:0,gid:0,rdev:0,size:o,blksize:i,blocks:Math.ceil(o/i),atime:t.lastModified,mtime:t.lastModified,ctime:t.lastModified}}mkdir(e,t){r(this,n,O).call(this,{opp:\"mkdir\",args:[e,t]},()=>{this._mkdirState(e,t)})}_mkdirState(e,t){let o=r(this,n,w).call(this,e),i=o.pop(),c=[],a=this.state.root;for(let d of o){if(c.push(e),!Object.prototype.hasOwnProperty.call(a.children,d))if(t?.recursive)this.mkdir(c.join(\"/\"));else throw new p(\"ENOENT\",\"No such file or directory\");if(a.children[d].type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");a=a.children[d]}if(Object.prototype.hasOwnProperty.call(a.children,i))throw new p(\"EEXIST\",\"File exists\");let h={type:\"directory\",lastModified:Date.now(),mode:t?.mode||T.DIR,children:{}};a.children[i]=h}open(e,t,o){if(r(this,n,f).call(this,e).type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let c=r(this,n,W).call(this);return s(this,P).set(c,e),s(this,D).set(e,c),c}readdir(e){let t=r(this,n,f).call(this,e);if(t.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");return Object.keys(t.children)}read(e,t,o,i,c){let a=r(this,n,I).call(this,e),h=r(this,n,f).call(this,a);if(h.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");return s(this,m).get(h.backingFilename).read(new Uint8Array(t.buffer,o,i),{at:c})}rename(e,t){r(this,n,O).call(this,{opp:\"rename\",args:[e,t]},()=>{this._renameState(e,t,!0)})}_renameState(e,t,o=!1){let i=r(this,n,w).call(this,e),c=i.pop(),a=r(this,n,f).call(this,i.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(a.children,c))throw new p(\"ENOENT\",\"No such file or directory\");let h=r(this,n,w).call(this,t),d=h.pop(),l=r(this,n,f).call(this,h.join(\"/\"));if(o&&Object.prototype.hasOwnProperty.call(l.children,d)){let u=l.children[d];s(this,m).get(u.backingFilename).truncate(0),this.state.pool.push(u.backingFilename)}l.children[d]=a.children[c],delete a.children[c]}rmdir(e){r(this,n,O).call(this,{opp:\"rmdir\",args:[e]},()=>{this._rmdirState(e)})}_rmdirState(e){let t=r(this,n,w).call(this,e),o=t.pop(),i=r(this,n,f).call(this,t.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(i.children,o))throw new p(\"ENOENT\",\"No such file or directory\");let c=i.children[o];if(c.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");if(Object.keys(c.children).length>0)throw new p(\"ENOTEMPTY\",\"Directory not empty\");delete i.children[o]}truncate(e,t=0){let o=r(this,n,f).call(this,e);if(o.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let i=s(this,m).get(o.backingFilename);if(!i)throw new p(\"ENOENT\",\"No such file or directory\");i.truncate(t),s(this,S).add(i)}unlink(e){r(this,n,O).call(this,{opp:\"unlink\",args:[e]},()=>{this._unlinkState(e,!0)})}_unlinkState(e,t=!1){let o=r(this,n,w).call(this,e),i=o.pop(),c=r(this,n,f).call(this,o.join(\"/\"));if(!Object.prototype.hasOwnProperty.call(c.children,i))throw new p(\"ENOENT\",\"No such file or directory\");let a=c.children[i];if(a.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");if(delete c.children[i],t){let h=s(this,m).get(a.backingFilename);h?.truncate(0),s(this,S).add(h),s(this,D).has(e)&&(s(this,P).delete(s(this,D).get(e)),s(this,D).delete(e))}this.state.pool.push(a.backingFilename)}utimes(e,t,o){r(this,n,O).call(this,{opp:\"utimes\",args:[e,t,o]},()=>{this._utimesState(e,t,o)})}_utimesState(e,t,o){let i=r(this,n,f).call(this,e);i.lastModified=o}writeFile(e,t,o){let i=r(this,n,w).call(this,e),c=i.pop(),a=r(this,n,f).call(this,i.join(\"/\"));if(Object.prototype.hasOwnProperty.call(a.children,c)){let l=a.children[c];l.lastModified=Date.now(),r(this,n,k).call(this,{opp:\"setLastModified\",args:[e,l.lastModified]})}else{if(this.state.pool.length===0)throw new Error(\"No more file handles available in the pool\");let l={type:\"file\",lastModified:Date.now(),mode:o?.mode||T.FILE,backingFilename:this.state.pool.pop()};a.children[c]=l,r(this,n,k).call(this,{opp:\"createFileNode\",args:[e,l]})}let h=a.children[c],d=s(this,m).get(h.backingFilename);t.length>0&&(d.write(typeof t==\"string\"?new TextEncoder().encode(t):new Uint8Array(t),{at:0}),e.startsWith(\"/pg_wal\")&&s(this,S).add(d))}_createFileNodeState(e,t){let o=r(this,n,w).call(this,e),i=o.pop(),c=r(this,n,f).call(this,o.join(\"/\"));c.children[i]=t;let a=this.state.pool.indexOf(t.backingFilename);return a>-1&&this.state.pool.splice(a,1),t}_setLastModifiedState(e,t){let o=r(this,n,f).call(this,e);o.lastModified=t}write(e,t,o,i,c){let a=r(this,n,I).call(this,e),h=r(this,n,f).call(this,a);if(h.type!==\"file\")throw new p(\"EISDIR\",\"Is a directory\");let d=s(this,m).get(h.backingFilename);if(!d)throw new p(\"EBADF\",\"Bad file descriptor\");let l=d.write(new Uint8Array(t,o,i),{at:c});return a.startsWith(\"/pg_wal\")&&s(this,S).add(d),l}};H=new WeakMap,v=new WeakMap,F=new WeakMap,M=new WeakMap,y=new WeakMap,b=new WeakMap,m=new WeakMap,x=new WeakMap,P=new WeakMap,D=new WeakMap,S=new WeakMap,n=new WeakSet,C=async function(){E(this,H,await navigator.storage.getDirectory()),E(this,v,await r(this,n,j).call(this,this.dataDir,{create:!0})),E(this,F,await r(this,n,j).call(this,G,{from:s(this,v),create:!0})),E(this,M,await s(this,v).getFileHandle($,{create:!0})),E(this,y,await s(this,M).createSyncAccessHandle());let e=new ArrayBuffer(s(this,y).getSize());s(this,y).read(e,{at:0});let t,o=new TextDecoder().decode(e).split(`\n`),i=!1;try{t=JSON.parse(o[0])}catch{t={root:{type:\"directory\",lastModified:Date.now(),mode:T.DIR,children:{}},pool:[]},s(this,y).truncate(0),s(this,y).write(new TextEncoder().encode(JSON.stringify(t)),{at:0}),i=!0}this.state=t;let c=o.slice(1).filter(Boolean).map(l=>JSON.parse(l));for(let l of c){let u=`_${l.opp}State`;if(typeof this[u]==\"function\")try{this[u].bind(this)(...l.args)}catch(N){console.warn(\"Error applying OPFS AHP WAL entry\",l,N)}}let a=[],h=async l=>{if(l.type===\"file\")try{let u=await s(this,F).getFileHandle(l.backingFilename),N=await u.createSyncAccessHandle();s(this,b).set(l.backingFilename,u),s(this,m).set(l.backingFilename,N)}catch(u){console.error(\"Error opening file handle for node\",l,u)}else for(let u of Object.values(l.children))a.push(h(u))};await h(this.state.root);let d=[];for(let l of this.state.pool)d.push(new Promise(async u=>{s(this,b).has(l)&&console.warn(\"File handle already exists for pool file\",l);let N=await s(this,F).getFileHandle(l),U=await N.createSyncAccessHandle();s(this,b).set(l,N),s(this,m).set(l,U),u()}));await Promise.all([...a,...d]),await this.maintainPool(i?this.initialPoolSize:this.maintainedPoolSize)},O=function(e,t){let o=r(this,n,k).call(this,e);try{t()}catch(i){throw s(this,y).truncate(o),i}},k=function(e){let t=JSON.stringify(e),o=new TextEncoder().encode(`\n${t}`),i=s(this,y).getSize();return s(this,y).write(o,{at:i}),s(this,S).add(s(this,y)),i},w=function(e){return e.split(\"/\").filter(Boolean)},f=function(e,t){let o=r(this,n,w).call(this,e),i=t||this.state.root;for(let c of o){if(i.type!==\"directory\")throw new p(\"ENOTDIR\",\"Not a directory\");if(!Object.prototype.hasOwnProperty.call(i.children,c))throw new p(\"ENOENT\",\"No such file or directory\");i=i.children[c]}return i},I=function(e){let t=s(this,P).get(e);if(!t)throw new p(\"EBADF\",\"Bad file descriptor\");return t},W=function(){let e=++_(this,x)._;for(;s(this,P).has(e);)_(this,x)._++;return e},j=async function(e,t){let o=r(this,n,w).call(this,e),i=t?.from||s(this,H);for(let c of o)i=await i.getDirectoryHandle(c,{create:t?.create});return i};var p=class extends Error{constructor(A,e){super(e),typeof A==\"number\"?this.code=A:typeof A==\"string\"&&(this.code=z[A])}};export{L as OpfsAhpFS};\n//# sourceMappingURL=opfs-ahp.js.map"],"x_google_ignoreList":[0],"mappings":"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"}