@maria_rcks/t1code 0.0.5 → 0.0.7

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 (101) hide show
  1. package/bin/t1code.js +38 -4
  2. package/dist/index.mjs +10 -4
  3. package/dist/server/BunPTY-tfevpp75.js +114 -0
  4. package/dist/server/NodePTY-shw8pxrb.js +115 -0
  5. package/dist/server/NodeSqliteClient-1zz4vbn2.js +180 -0
  6. package/dist/server/SqliteClient-53018gfq.js +147 -0
  7. package/dist/server/index-313s4ptc.js +18 -0
  8. package/dist/server/index-8anfbrkb.js +844 -0
  9. package/dist/server/index-9kq36ye2.js +584 -0
  10. package/dist/server/index-jgecjkfd.js +34490 -0
  11. package/dist/server/index-wckvcay0.js +48 -0
  12. package/dist/server/index-wrajk4wc.js +523 -0
  13. package/dist/server/index-z7xpvjdt.js +247 -0
  14. package/dist/server/index.js +56202 -0
  15. package/dist/server/node_modules/node-pty/LICENSE +69 -0
  16. package/dist/server/node_modules/node-pty/README.md +165 -0
  17. package/dist/server/node_modules/node-pty/lib/conpty_console_list_agent.js +16 -0
  18. package/dist/server/node_modules/node-pty/lib/conpty_console_list_agent.js.map +1 -0
  19. package/dist/server/node_modules/node-pty/lib/eventEmitter2.js +47 -0
  20. package/dist/server/node_modules/node-pty/lib/eventEmitter2.js.map +1 -0
  21. package/dist/server/node_modules/node-pty/lib/eventEmitter2.test.js +30 -0
  22. package/dist/server/node_modules/node-pty/lib/eventEmitter2.test.js.map +1 -0
  23. package/dist/server/node_modules/node-pty/lib/index.js +52 -0
  24. package/dist/server/node_modules/node-pty/lib/index.js.map +1 -0
  25. package/dist/server/node_modules/node-pty/lib/interfaces.js +7 -0
  26. package/dist/server/node_modules/node-pty/lib/interfaces.js.map +1 -0
  27. package/dist/server/node_modules/node-pty/lib/shared/conout.js +11 -0
  28. package/dist/server/node_modules/node-pty/lib/shared/conout.js.map +1 -0
  29. package/dist/server/node_modules/node-pty/lib/terminal.js +190 -0
  30. package/dist/server/node_modules/node-pty/lib/terminal.js.map +1 -0
  31. package/dist/server/node_modules/node-pty/lib/terminal.test.js +139 -0
  32. package/dist/server/node_modules/node-pty/lib/terminal.test.js.map +1 -0
  33. package/dist/server/node_modules/node-pty/lib/testUtils.test.js +28 -0
  34. package/dist/server/node_modules/node-pty/lib/testUtils.test.js.map +1 -0
  35. package/dist/server/node_modules/node-pty/lib/types.js +7 -0
  36. package/dist/server/node_modules/node-pty/lib/types.js.map +1 -0
  37. package/dist/server/node_modules/node-pty/lib/unixTerminal.js +346 -0
  38. package/dist/server/node_modules/node-pty/lib/unixTerminal.js.map +1 -0
  39. package/dist/server/node_modules/node-pty/lib/unixTerminal.test.js +351 -0
  40. package/dist/server/node_modules/node-pty/lib/unixTerminal.test.js.map +1 -0
  41. package/dist/server/node_modules/node-pty/lib/utils.js +39 -0
  42. package/dist/server/node_modules/node-pty/lib/utils.js.map +1 -0
  43. package/dist/server/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
  44. package/dist/server/node_modules/node-pty/lib/windowsConoutConnection.js.map +1 -0
  45. package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.js +320 -0
  46. package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.js.map +1 -0
  47. package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.test.js +90 -0
  48. package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.test.js.map +1 -0
  49. package/dist/server/node_modules/node-pty/lib/windowsTerminal.js +199 -0
  50. package/dist/server/node_modules/node-pty/lib/windowsTerminal.js.map +1 -0
  51. package/dist/server/node_modules/node-pty/lib/windowsTerminal.test.js +219 -0
  52. package/dist/server/node_modules/node-pty/lib/windowsTerminal.test.js.map +1 -0
  53. package/dist/server/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
  54. package/dist/server/node_modules/node-pty/lib/worker/conoutSocketWorker.js.map +1 -0
  55. package/dist/server/node_modules/node-pty/package.json +64 -0
  56. package/dist/server/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  57. package/dist/server/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  58. package/dist/server/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  59. package/dist/server/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  60. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  61. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  62. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  63. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
  64. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  65. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  66. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
  67. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
  68. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
  69. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
  70. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
  71. package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
  72. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  73. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  74. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  75. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
  76. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  77. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  78. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
  79. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
  80. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
  81. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
  82. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
  83. package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
  84. package/dist/server/node_modules/node-pty/typings/node-pty.d.ts +211 -0
  85. package/package.json +3 -2
  86. package/dist/server/BunPTY-BulfMn1P.cjs +0 -92
  87. package/dist/server/BunPTY-BulfMn1P.cjs.map +0 -1
  88. package/dist/server/BunPTY-Cueq2gzZ.mjs +0 -92
  89. package/dist/server/BunPTY-Cueq2gzZ.mjs.map +0 -1
  90. package/dist/server/NodePTY-AdcStdsu.mjs +0 -86
  91. package/dist/server/NodePTY-AdcStdsu.mjs.map +0 -1
  92. package/dist/server/NodePTY-DmqnQV86.cjs +0 -87
  93. package/dist/server/NodePTY-DmqnQV86.cjs.map +0 -1
  94. package/dist/server/NodeSqliteClient-BTK-dUey.mjs +0 -156
  95. package/dist/server/NodeSqliteClient-BTK-dUey.mjs.map +0 -1
  96. package/dist/server/NodeSqliteClient-ViK8pcdH.cjs +0 -174
  97. package/dist/server/NodeSqliteClient-ViK8pcdH.cjs.map +0 -1
  98. package/dist/server/index.cjs +0 -20457
  99. package/dist/server/index.cjs.map +0 -1
  100. package/dist/server/index.mjs +0 -20413
  101. package/dist/server/index.mjs.map +0 -1
package/bin/t1code.js CHANGED
@@ -1,8 +1,42 @@
1
- #!/usr/bin/env bun
1
+ #!/usr/bin/env node
2
2
 
3
- import("../dist/index.mjs").catch((error) => {
3
+ import { spawn } from "node:child_process";
4
+ import { fileURLToPath } from "node:url";
5
+
6
+ const entryPath = fileURLToPath(new URL("../dist/index.mjs", import.meta.url));
7
+
8
+ function printError(error) {
4
9
  process.stderr.write(
5
10
  `${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`,
6
11
  );
7
- process.exit(1);
8
- });
12
+ }
13
+
14
+ if (process.versions.bun === undefined) {
15
+ const child = spawn("bun", [entryPath, ...process.argv.slice(2)], {
16
+ stdio: "inherit",
17
+ env: process.env,
18
+ });
19
+
20
+ child.once("exit", (code, signal) => {
21
+ if (signal) {
22
+ process.kill(process.pid, signal);
23
+ return;
24
+ }
25
+ process.exit(code ?? 1);
26
+ });
27
+
28
+ child.once("error", (error) => {
29
+ if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") {
30
+ printError("t1code requires Bun on your PATH to launch the TUI runtime.");
31
+ process.exit(1);
32
+ return;
33
+ }
34
+ printError(error);
35
+ process.exit(1);
36
+ });
37
+ } else {
38
+ import("../dist/index.mjs").catch((error) => {
39
+ printError(error);
40
+ process.exit(1);
41
+ });
42
+ }
package/dist/index.mjs CHANGED
@@ -32430,7 +32430,7 @@ var WsTransport = class {
32430
32430
 
32431
32431
  //#endregion
32432
32432
  //#region package.json
32433
- var version = "0.0.5";
32433
+ var version = "0.0.7";
32434
32434
 
32435
32435
  //#endregion
32436
32436
  //#region src/composerAction.ts
@@ -32712,7 +32712,12 @@ const THIS_DIR = path.dirname(fileURLToPath(import.meta.url));
32712
32712
  const TUI_APP_DIR = path.resolve(THIS_DIR, "..");
32713
32713
  const REPO_ROOT = path.resolve(TUI_APP_DIR, "../..");
32714
32714
  const SERVER_APP_DIR = path.resolve(REPO_ROOT, "apps/server");
32715
- const BUNDLED_SERVER_ENTRY = path.resolve(THIS_DIR, "server", "index.mjs");
32715
+ const BUNDLED_SERVER_ENTRY = path.resolve(THIS_DIR, "server", "index.js");
32716
+ function resolveBundledServerCommand(env) {
32717
+ const configured = env.T3CODE_NODE_BIN?.trim();
32718
+ if (configured) return configured;
32719
+ return process.versions.bun !== void 0 ? "node" : process.execPath;
32720
+ }
32716
32721
  function readBooleanEnv$1(value) {
32717
32722
  if (!value) return void 0;
32718
32723
  const normalized = value.trim().toLowerCase();
@@ -32805,13 +32810,14 @@ async function waitForServerPort(input) {
32805
32810
  throw new Error(`Timed out waiting for T3 server on ${input.host}:${input.port}.`);
32806
32811
  }
32807
32812
  function resolveServerEntry(env = process.env) {
32813
+ const bundledServerCommand = resolveBundledServerCommand(env);
32808
32814
  if (fs$1.existsSync(BUNDLED_SERVER_ENTRY)) return {
32809
- command: process.execPath,
32815
+ command: bundledServerCommand,
32810
32816
  args: [BUNDLED_SERVER_ENTRY]
32811
32817
  };
32812
32818
  const builtEntry = path.join(SERVER_APP_DIR, "dist", "index.mjs");
32813
32819
  return env.NODE_ENV === "production" ? {
32814
- command: process.execPath,
32820
+ command: bundledServerCommand,
32815
32821
  args: [builtEntry]
32816
32822
  } : {
32817
32823
  command: "bun",
@@ -0,0 +1,114 @@
1
+ import {
2
+ PtyAdapter
3
+ } from "./index-9kq36ye2.js";
4
+ import"./index-z7xpvjdt.js";
5
+ import {
6
+ exports_Effect,
7
+ exports_Layer
8
+ } from "./index-jgecjkfd.js";
9
+ import"./index-wckvcay0.js";
10
+
11
+ // src/terminal/Layers/BunPTY.ts
12
+ class BunPtyProcess {
13
+ process;
14
+ dataListeners = new Set;
15
+ exitListeners = new Set;
16
+ decoder = new TextDecoder;
17
+ didExit = false;
18
+ constructor(process2) {
19
+ this.process = process2;
20
+ this.process.exited.then((exitCode) => {
21
+ this.emitExit({
22
+ exitCode: Number.isInteger(exitCode) ? exitCode : 0,
23
+ signal: typeof this.process.signalCode === "number" ? this.process.signalCode : null
24
+ });
25
+ }).catch(() => {
26
+ this.emitExit({ exitCode: 1, signal: null });
27
+ });
28
+ }
29
+ get pid() {
30
+ return this.process.pid;
31
+ }
32
+ write(data) {
33
+ if (!this.process.terminal) {
34
+ throw new Error("Bun PTY terminal handle is unavailable");
35
+ }
36
+ this.process.terminal.write(data);
37
+ }
38
+ resize(cols, rows) {
39
+ if (!this.process.terminal?.resize) {
40
+ throw new Error("Bun PTY resize is unavailable");
41
+ }
42
+ this.process.terminal.resize(cols, rows);
43
+ }
44
+ kill(signal) {
45
+ if (!signal) {
46
+ this.process.kill();
47
+ return;
48
+ }
49
+ this.process.kill(signal);
50
+ }
51
+ onData(callback) {
52
+ this.dataListeners.add(callback);
53
+ return () => {
54
+ this.dataListeners.delete(callback);
55
+ };
56
+ }
57
+ onExit(callback) {
58
+ this.exitListeners.add(callback);
59
+ return () => {
60
+ this.exitListeners.delete(callback);
61
+ };
62
+ }
63
+ emitData(data) {
64
+ if (this.didExit)
65
+ return;
66
+ const text = this.decoder.decode(data, { stream: true });
67
+ if (text.length === 0)
68
+ return;
69
+ for (const listener of this.dataListeners) {
70
+ listener(text);
71
+ }
72
+ }
73
+ emitExit(event) {
74
+ if (this.didExit)
75
+ return;
76
+ this.didExit = true;
77
+ const remainder = this.decoder.decode();
78
+ if (remainder.length > 0) {
79
+ for (const listener of this.dataListeners) {
80
+ listener(remainder);
81
+ }
82
+ }
83
+ for (const listener of this.exitListeners) {
84
+ listener(event);
85
+ }
86
+ }
87
+ }
88
+ var layer = exports_Layer.effect(PtyAdapter, exports_Effect.gen(function* () {
89
+ if (process.platform === "win32") {
90
+ return yield* exports_Effect.die("Bun PTY terminal support is unavailable on Windows. Please use Node.js (e.g. by running `npx t3`) instead.");
91
+ }
92
+ return {
93
+ spawn: (input) => exports_Effect.sync(() => {
94
+ let processHandle = null;
95
+ const command = [input.shell, ...input.args ?? []];
96
+ const subprocess = Bun.spawn(command, {
97
+ cwd: input.cwd,
98
+ env: input.env,
99
+ terminal: {
100
+ cols: input.cols,
101
+ rows: input.rows,
102
+ data: (_terminal, data) => {
103
+ processHandle?.emitData(data);
104
+ }
105
+ }
106
+ });
107
+ processHandle = new BunPtyProcess(subprocess);
108
+ return processHandle;
109
+ })
110
+ };
111
+ }));
112
+ export {
113
+ layer
114
+ };
@@ -0,0 +1,115 @@
1
+ import {
2
+ PtyAdapter
3
+ } from "./index-9kq36ye2.js";
4
+ import"./index-z7xpvjdt.js";
5
+ import {
6
+ exports_Effect,
7
+ exports_FileSystem,
8
+ exports_Layer,
9
+ exports_Path
10
+ } from "./index-jgecjkfd.js";
11
+ import {
12
+ __require
13
+ } from "./index-wckvcay0.js";
14
+
15
+ // src/terminal/Layers/NodePTY.ts
16
+ import { createRequire } from "node:module";
17
+ var didEnsureSpawnHelperExecutable = false;
18
+ var resolveNodePtySpawnHelperPath = exports_Effect.gen(function* () {
19
+ const requireForNodePty = createRequire(import.meta.url);
20
+ const path = yield* exports_Path.Path;
21
+ const fs = yield* exports_FileSystem.FileSystem;
22
+ const packageJsonPath = requireForNodePty.resolve("node-pty/package.json");
23
+ const packageDir = path.dirname(packageJsonPath);
24
+ const candidates = [
25
+ path.join(packageDir, "build", "Release", "spawn-helper"),
26
+ path.join(packageDir, "build", "Debug", "spawn-helper"),
27
+ path.join(packageDir, "prebuilds", `${process.platform}-${process.arch}`, "spawn-helper")
28
+ ];
29
+ for (const candidate of candidates) {
30
+ if (yield* fs.exists(candidate)) {
31
+ return candidate;
32
+ }
33
+ }
34
+ return null;
35
+ }).pipe(exports_Effect.orElseSucceed(() => null));
36
+ var ensureNodePtySpawnHelperExecutable = exports_Effect.fn(function* (explicitPath) {
37
+ const fs = yield* exports_FileSystem.FileSystem;
38
+ if (process.platform === "win32")
39
+ return;
40
+ if (!explicitPath && didEnsureSpawnHelperExecutable)
41
+ return;
42
+ const helperPath = explicitPath ?? (yield* resolveNodePtySpawnHelperPath);
43
+ if (!helperPath)
44
+ return;
45
+ if (!explicitPath) {
46
+ didEnsureSpawnHelperExecutable = true;
47
+ }
48
+ if (!(yield* fs.exists(helperPath))) {
49
+ return;
50
+ }
51
+ yield* fs.chmod(helperPath, 493).pipe(exports_Effect.orElseSucceed(() => {
52
+ return;
53
+ }));
54
+ });
55
+
56
+ class NodePtyProcess {
57
+ process;
58
+ constructor(process2) {
59
+ this.process = process2;
60
+ }
61
+ get pid() {
62
+ return this.process.pid;
63
+ }
64
+ write(data) {
65
+ this.process.write(data);
66
+ }
67
+ resize(cols, rows) {
68
+ this.process.resize(cols, rows);
69
+ }
70
+ kill(signal) {
71
+ this.process.kill(signal);
72
+ }
73
+ onData(callback) {
74
+ const disposable = this.process.onData(callback);
75
+ return () => {
76
+ disposable.dispose();
77
+ };
78
+ }
79
+ onExit(callback) {
80
+ const disposable = this.process.onExit((event) => {
81
+ callback({
82
+ exitCode: event.exitCode,
83
+ signal: event.signal ?? null
84
+ });
85
+ });
86
+ return () => {
87
+ disposable.dispose();
88
+ };
89
+ }
90
+ }
91
+ var layer = exports_Layer.effect(PtyAdapter, exports_Effect.gen(function* () {
92
+ const fs = yield* exports_FileSystem.FileSystem;
93
+ const path = yield* exports_Path.Path;
94
+ const nodePty = yield* exports_Effect.promise(() => import("node-pty"));
95
+ const ensureNodePtySpawnHelperExecutableCached = yield* exports_Effect.cached(ensureNodePtySpawnHelperExecutable().pipe(exports_Effect.provideService(exports_FileSystem.FileSystem, fs), exports_Effect.provideService(exports_Path.Path, path), exports_Effect.orElseSucceed(() => {
96
+ return;
97
+ })));
98
+ return {
99
+ spawn: exports_Effect.fn(function* (input) {
100
+ yield* ensureNodePtySpawnHelperExecutableCached;
101
+ const ptyProcess = nodePty.spawn(input.shell, input.args ?? [], {
102
+ cwd: input.cwd,
103
+ cols: input.cols,
104
+ rows: input.rows,
105
+ env: input.env,
106
+ name: globalThis.process.platform === "win32" ? "xterm-color" : "xterm-256color"
107
+ });
108
+ return new NodePtyProcess(ptyProcess);
109
+ })
110
+ };
111
+ }));
112
+ export {
113
+ layer,
114
+ ensureNodePtySpawnHelperExecutable
115
+ };
@@ -0,0 +1,180 @@
1
+ import {
2
+ SqlError
3
+ } from "./index-313s4ptc.js";
4
+ import {
5
+ SafeIntegers,
6
+ SqlClient,
7
+ defaultTransforms,
8
+ layer,
9
+ make as make4,
10
+ makeCompilerSqlite
11
+ } from "./index-8anfbrkb.js";
12
+ import {
13
+ get as get2,
14
+ make as make3
15
+ } from "./index-z7xpvjdt.js";
16
+ import {
17
+ Scope,
18
+ Service,
19
+ acquireUseRelease,
20
+ add,
21
+ addFinalizer1 as addFinalizer,
22
+ as1 as as,
23
+ die1 as die,
24
+ die2,
25
+ effectServices,
26
+ fail3 as fail,
27
+ flatMap1 as flatMap,
28
+ gen1 as gen,
29
+ get,
30
+ getCurrent,
31
+ getUnsafe,
32
+ identity,
33
+ make2 as make,
34
+ make8 as make2,
35
+ map6 as map,
36
+ minutes,
37
+ provide1 as provide,
38
+ scope1 as scope,
39
+ succeed4 as succeed,
40
+ sync1 as sync,
41
+ tap,
42
+ try_,
43
+ uninterruptibleMask1 as uninterruptibleMask,
44
+ unwrap2 as unwrap,
45
+ void_1 as void_,
46
+ withFiber1 as withFiber
47
+ } from "./index-jgecjkfd.js";
48
+ import"./index-wckvcay0.js";
49
+
50
+ // src/persistence/NodeSqliteClient.ts
51
+ import { DatabaseSync } from "node:sqlite";
52
+ var ATTR_DB_SYSTEM_NAME = "db.system.name";
53
+ var TypeId = "~local/sqlite-node/SqliteClient";
54
+ var SqliteClient = Service("t3/persistence/NodeSqliteClient");
55
+ var checkNodeSqliteCompat = () => {
56
+ const parts = process.versions.node.split(".").map(Number);
57
+ const major = parts[0] ?? 0;
58
+ const minor = parts[1] ?? 0;
59
+ const supported = major === 22 && minor >= 16 || major === 23 && minor >= 11 || major >= 24;
60
+ if (!supported) {
61
+ return die(`Node.js ${process.versions.node} is missing required node:sqlite APIs ` + `(StatementSync.columns). Upgrade to Node.js >=22.16, >=23.11, or >=24.`);
62
+ }
63
+ return void_;
64
+ };
65
+ var makeWithDatabase = (options, openDatabase) => gen(function* () {
66
+ yield* checkNodeSqliteCompat();
67
+ const compiler = makeCompilerSqlite(options.transformQueryNames);
68
+ const transformRows = options.transformResultNames ? defaultTransforms(options.transformResultNames).array : undefined;
69
+ const makeConnection = gen(function* () {
70
+ const scope2 = yield* scope;
71
+ const db = openDatabase();
72
+ yield* addFinalizer(scope2, sync(() => db.close()));
73
+ const statementReaderCache = new WeakMap;
74
+ const hasRows = (statement) => {
75
+ const cached = statementReaderCache.get(statement);
76
+ if (cached !== undefined) {
77
+ return cached;
78
+ }
79
+ const value = statement.columns().length > 0;
80
+ statementReaderCache.set(statement, value);
81
+ return value;
82
+ };
83
+ const prepareCache = yield* make3({
84
+ capacity: options.prepareCacheSize ?? 200,
85
+ timeToLive: options.prepareCacheTTL ?? minutes(10),
86
+ lookup: (sql) => try_({
87
+ try: () => db.prepare(sql),
88
+ catch: (cause) => new SqlError({ cause, message: "Failed to prepare statement" })
89
+ })
90
+ });
91
+ const runStatement = (statement, params, raw) => withFiber((fiber) => {
92
+ statement.setReadBigInts(Boolean(get(fiber.services, SafeIntegers)));
93
+ try {
94
+ if (hasRows(statement)) {
95
+ return succeed(statement.all(...params));
96
+ }
97
+ const result = statement.run(...params);
98
+ return succeed(raw ? result : []);
99
+ } catch (cause) {
100
+ return fail(new SqlError({ cause, message: "Failed to execute statement" }));
101
+ }
102
+ });
103
+ const run = (sql, params, raw = false) => flatMap(get2(prepareCache, sql), (s) => runStatement(s, params, raw));
104
+ const runValues = (sql, params) => acquireUseRelease(get2(prepareCache, sql), (statement) => try_({
105
+ try: () => {
106
+ if (hasRows(statement)) {
107
+ statement.setReturnArrays(true);
108
+ return statement.all(...params);
109
+ }
110
+ statement.run(...params);
111
+ return [];
112
+ },
113
+ catch: (cause) => new SqlError({ cause, message: "Failed to execute statement" })
114
+ }), (statement) => sync(() => {
115
+ if (hasRows(statement)) {
116
+ statement.setReturnArrays(false);
117
+ }
118
+ }));
119
+ return identity({
120
+ execute(sql, params, rowTransform) {
121
+ return rowTransform ? map(run(sql, params), rowTransform) : run(sql, params);
122
+ },
123
+ executeRaw(sql, params) {
124
+ return run(sql, params, true);
125
+ },
126
+ executeValues(sql, params) {
127
+ return runValues(sql, params);
128
+ },
129
+ executeUnprepared(sql, params, rowTransform) {
130
+ const effect = runStatement(db.prepare(sql), params ?? [], false);
131
+ return rowTransform ? map(effect, rowTransform) : effect;
132
+ },
133
+ executeStream(_sql, _params) {
134
+ return die2("executeStream not implemented");
135
+ }
136
+ });
137
+ });
138
+ const semaphore = yield* make2(1);
139
+ const connection = yield* makeConnection;
140
+ const acquirer = semaphore.withPermits(1)(succeed(connection));
141
+ const transactionAcquirer = uninterruptibleMask((restore) => {
142
+ const fiber = getCurrent();
143
+ const scope2 = getUnsafe(fiber.services, Scope);
144
+ return as(tap(restore(semaphore.take(1)), () => addFinalizer(scope2, semaphore.release(1))), connection);
145
+ });
146
+ return yield* make4({
147
+ acquirer,
148
+ compiler,
149
+ transactionAcquirer,
150
+ spanAttributes: [
151
+ ...options.spanAttributes ? Object.entries(options.spanAttributes) : [],
152
+ [ATTR_DB_SYSTEM_NAME, "sqlite"]
153
+ ],
154
+ transformRows
155
+ });
156
+ });
157
+ var make5 = (options) => makeWithDatabase(options, () => new DatabaseSync(options.filename, {
158
+ readOnly: options.readonly ?? false,
159
+ allowExtension: options.allowExtension ?? false
160
+ }));
161
+ var makeMemory = (config = {}) => makeWithDatabase({
162
+ ...config,
163
+ filename: ":memory:",
164
+ readonly: false
165
+ }, () => {
166
+ const database = new DatabaseSync(":memory:", {
167
+ allowExtension: config.allowExtension ?? false
168
+ });
169
+ return database;
170
+ });
171
+ var layerConfig = (config) => effectServices(unwrap(config).asEffect().pipe(flatMap(make5), map((client) => make(SqliteClient, client).pipe(add(SqlClient, client))))).pipe(provide(layer));
172
+ var layer2 = (config) => effectServices(map(make5(config), (client) => make(SqliteClient, client).pipe(add(SqlClient, client)))).pipe(provide(layer));
173
+ var layerMemory = (config = {}) => effectServices(map(makeMemory(config), (client) => make(SqliteClient, client).pipe(add(SqlClient, client)))).pipe(provide(layer));
174
+ export {
175
+ layerMemory,
176
+ layerConfig,
177
+ layer2 as layer,
178
+ TypeId,
179
+ SqliteClient
180
+ };
@@ -0,0 +1,147 @@
1
+ import {
2
+ SqlError
3
+ } from "./index-313s4ptc.js";
4
+ import {
5
+ SafeIntegers,
6
+ SqlClient,
7
+ defaultTransforms,
8
+ layer,
9
+ make as make3,
10
+ makeCompilerSqlite
11
+ } from "./index-8anfbrkb.js";
12
+ import {
13
+ Scope,
14
+ Service,
15
+ add,
16
+ addFinalizer1 as addFinalizer,
17
+ addFinalizer2,
18
+ as1 as as,
19
+ die2 as die,
20
+ effectServices,
21
+ fail3 as fail,
22
+ flatMap1 as flatMap,
23
+ gen1 as gen,
24
+ get,
25
+ getCurrent,
26
+ getUnsafe,
27
+ identity,
28
+ make2 as make,
29
+ make8 as make2,
30
+ map6 as map,
31
+ provide1 as provide,
32
+ succeed4 as succeed,
33
+ sync1 as sync,
34
+ tap,
35
+ try_,
36
+ uninterruptibleMask1 as uninterruptibleMask,
37
+ unwrap2 as unwrap,
38
+ withFiber1 as withFiber
39
+ } from "./index-jgecjkfd.js";
40
+ import"./index-wckvcay0.js";
41
+
42
+ // ../../node_modules/.bun/@effect+sql-sqlite-bun@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+sql-sqlite-bun@8881a9b+eecd35a1726d7096/node_modules/@effect/sql-sqlite-bun/dist/SqliteClient.js
43
+ import { Database } from "bun:sqlite";
44
+ var ATTR_DB_SYSTEM_NAME = "db.system.name";
45
+ var TypeId = "~@effect/sql-sqlite-bun/SqliteClient";
46
+ var SqliteClient = /* @__PURE__ */ Service("@effect/sql-sqlite-bun/Client");
47
+ var make4 = (options) => gen(function* () {
48
+ const compiler = makeCompilerSqlite(options.transformQueryNames);
49
+ const transformRows = options.transformResultNames ? defaultTransforms(options.transformResultNames).array : undefined;
50
+ const makeConnection = gen(function* () {
51
+ const db = new Database(options.filename, {
52
+ readonly: options.readonly,
53
+ readwrite: options.readwrite ?? true,
54
+ create: options.create ?? true
55
+ });
56
+ yield* addFinalizer2(() => sync(() => db.close()));
57
+ if (options.disableWAL !== true) {
58
+ db.run("PRAGMA journal_mode = WAL;");
59
+ }
60
+ const run = (sql, params = []) => withFiber((fiber) => {
61
+ const statement = db.query(sql);
62
+ const useSafeIntegers = get(fiber.services, SafeIntegers);
63
+ statement.safeIntegers(useSafeIntegers);
64
+ try {
65
+ return succeed(statement.all(...params) ?? []);
66
+ } catch (cause) {
67
+ return fail(new SqlError({
68
+ cause,
69
+ message: "Failed to execute statement"
70
+ }));
71
+ }
72
+ });
73
+ const runValues = (sql, params = []) => withFiber((fiber) => {
74
+ const statement = db.query(sql);
75
+ const useSafeIntegers = get(fiber.services, SafeIntegers);
76
+ statement.safeIntegers(useSafeIntegers);
77
+ try {
78
+ return succeed(statement.values(...params) ?? []);
79
+ } catch (cause) {
80
+ return fail(new SqlError({
81
+ cause,
82
+ message: "Failed to execute statement"
83
+ }));
84
+ }
85
+ });
86
+ return identity({
87
+ execute(sql, params, transformRows2) {
88
+ return transformRows2 ? map(run(sql, params), transformRows2) : run(sql, params);
89
+ },
90
+ executeRaw(sql, params) {
91
+ return run(sql, params);
92
+ },
93
+ executeValues(sql, params) {
94
+ return runValues(sql, params);
95
+ },
96
+ executeUnprepared(sql, params, transformRows2) {
97
+ return this.execute(sql, params, transformRows2);
98
+ },
99
+ executeStream(_sql, _params) {
100
+ return die("executeStream not implemented");
101
+ },
102
+ export: try_({
103
+ try: () => db.serialize(),
104
+ catch: (cause) => new SqlError({
105
+ cause,
106
+ message: "Failed to export database"
107
+ })
108
+ }),
109
+ loadExtension: (path) => try_({
110
+ try: () => db.loadExtension(path),
111
+ catch: (cause) => new SqlError({
112
+ cause,
113
+ message: "Failed to load extension"
114
+ })
115
+ })
116
+ });
117
+ });
118
+ const semaphore = yield* make2(1);
119
+ const connection = yield* makeConnection;
120
+ const acquirer = semaphore.withPermits(1)(succeed(connection));
121
+ const transactionAcquirer = uninterruptibleMask((restore) => {
122
+ const fiber = getCurrent();
123
+ const scope = getUnsafe(fiber.services, Scope);
124
+ return as(tap(restore(semaphore.take(1)), () => addFinalizer(scope, semaphore.release(1))), connection);
125
+ });
126
+ return Object.assign(yield* make3({
127
+ acquirer,
128
+ compiler,
129
+ transactionAcquirer,
130
+ spanAttributes: [...options.spanAttributes ? Object.entries(options.spanAttributes) : [], [ATTR_DB_SYSTEM_NAME, "sqlite"]],
131
+ transformRows
132
+ }), {
133
+ [TypeId]: TypeId,
134
+ config: options,
135
+ export: flatMap(acquirer, (_) => _.export),
136
+ loadExtension: (path) => flatMap(acquirer, (_) => _.loadExtension(path))
137
+ });
138
+ });
139
+ var layerConfig = (config) => effectServices(unwrap(config).asEffect().pipe(flatMap(make4), map((client) => make(SqliteClient, client).pipe(add(SqlClient, client))))).pipe(provide(layer));
140
+ var layer2 = (config) => effectServices(map(make4(config), (client) => make(SqliteClient, client).pipe(add(SqlClient, client)))).pipe(provide(layer));
141
+ export {
142
+ make4 as make,
143
+ layerConfig,
144
+ layer2 as layer,
145
+ TypeId,
146
+ SqliteClient
147
+ };
@@ -0,0 +1,18 @@
1
+ import {
2
+ Defect,
3
+ String,
4
+ TaggedErrorClass,
5
+ optional
6
+ } from "./index-jgecjkfd.js";
7
+
8
+ // ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@8881a9b/node_modules/effect/dist/unstable/sql/SqlError.js
9
+ var TypeId = "~effect/sql/SqlError";
10
+
11
+ class SqlError extends (/* @__PURE__ */ TaggedErrorClass("effect/sql/SqlError")("SqlError", {
12
+ cause: Defect,
13
+ message: /* @__PURE__ */ optional(String)
14
+ })) {
15
+ [TypeId] = TypeId;
16
+ }
17
+
18
+ export { SqlError };