@maria_rcks/t1code 0.0.6 → 0.0.8
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/index.mjs +29786 -1040
- package/dist/server/BunPTY-tfevpp75.js +114 -0
- package/dist/server/NodePTY-shw8pxrb.js +115 -0
- package/dist/server/NodeSqliteClient-1zz4vbn2.js +180 -0
- package/dist/server/SqliteClient-53018gfq.js +147 -0
- package/dist/server/index-313s4ptc.js +18 -0
- package/dist/server/index-8anfbrkb.js +844 -0
- package/dist/server/index-9kq36ye2.js +584 -0
- package/dist/server/index-jgecjkfd.js +34490 -0
- package/dist/server/index-wckvcay0.js +48 -0
- package/dist/server/index-wrajk4wc.js +523 -0
- package/dist/server/index-z7xpvjdt.js +247 -0
- package/dist/server/index.js +56202 -0
- package/dist/server/node_modules/node-pty/LICENSE +69 -0
- package/dist/server/node_modules/node-pty/README.md +165 -0
- package/dist/server/node_modules/node-pty/lib/conpty_console_list_agent.js +16 -0
- package/dist/server/node_modules/node-pty/lib/conpty_console_list_agent.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/eventEmitter2.js +47 -0
- package/dist/server/node_modules/node-pty/lib/eventEmitter2.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/eventEmitter2.test.js +30 -0
- package/dist/server/node_modules/node-pty/lib/eventEmitter2.test.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/index.js +52 -0
- package/dist/server/node_modules/node-pty/lib/index.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/interfaces.js +7 -0
- package/dist/server/node_modules/node-pty/lib/interfaces.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/shared/conout.js +11 -0
- package/dist/server/node_modules/node-pty/lib/shared/conout.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/terminal.js +190 -0
- package/dist/server/node_modules/node-pty/lib/terminal.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/terminal.test.js +139 -0
- package/dist/server/node_modules/node-pty/lib/terminal.test.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/testUtils.test.js +28 -0
- package/dist/server/node_modules/node-pty/lib/testUtils.test.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/types.js +7 -0
- package/dist/server/node_modules/node-pty/lib/types.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/unixTerminal.js +346 -0
- package/dist/server/node_modules/node-pty/lib/unixTerminal.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/unixTerminal.test.js +351 -0
- package/dist/server/node_modules/node-pty/lib/unixTerminal.test.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/utils.js +39 -0
- package/dist/server/node_modules/node-pty/lib/utils.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
- package/dist/server/node_modules/node-pty/lib/windowsConoutConnection.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.js +320 -0
- package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.test.js +90 -0
- package/dist/server/node_modules/node-pty/lib/windowsPtyAgent.test.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/windowsTerminal.js +199 -0
- package/dist/server/node_modules/node-pty/lib/windowsTerminal.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/windowsTerminal.test.js +219 -0
- package/dist/server/node_modules/node-pty/lib/windowsTerminal.test.js.map +1 -0
- package/dist/server/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
- package/dist/server/node_modules/node-pty/lib/worker/conoutSocketWorker.js.map +1 -0
- package/dist/server/node_modules/node-pty/package.json +64 -0
- package/dist/server/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
- package/dist/server/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
- package/dist/server/node_modules/node-pty/typings/node-pty.d.ts +211 -0
- package/package.json +1 -7
- package/dist/server/BunPTY-3FAOkA1C.cjs +0 -91
- package/dist/server/BunPTY-3FAOkA1C.cjs.map +0 -1
- package/dist/server/BunPTY-B9Pc7ndx.mjs +0 -91
- package/dist/server/BunPTY-B9Pc7ndx.mjs.map +0 -1
- package/dist/server/NodePTY-CZNVLBpq.mjs +0 -85
- package/dist/server/NodePTY-CZNVLBpq.mjs.map +0 -1
- package/dist/server/NodePTY-CbnaoLlj.cjs +0 -86
- package/dist/server/NodePTY-CbnaoLlj.cjs.map +0 -1
- package/dist/server/NodeSqliteClient-C5fYhtpO.cjs +0 -147
- package/dist/server/NodeSqliteClient-C5fYhtpO.cjs.map +0 -1
- package/dist/server/NodeSqliteClient-COEUidVC.mjs +0 -143
- package/dist/server/NodeSqliteClient-COEUidVC.mjs.map +0 -1
- package/dist/server/SqlError-7DUB2NkG.mjs +0 -43
- package/dist/server/SqlError-7DUB2NkG.mjs.map +0 -1
- package/dist/server/SqlError-CAzXmpza.cjs +0 -48
- package/dist/server/SqlError-CAzXmpza.cjs.map +0 -1
- package/dist/server/SqliteClient-BMlcF9O1.cjs +0 -133
- package/dist/server/SqliteClient-BMlcF9O1.cjs.map +0 -1
- package/dist/server/SqliteClient-MZci3yRi.mjs +0 -129
- package/dist/server/SqliteClient-MZci3yRi.mjs.map +0 -1
- package/dist/server/index.cjs +0 -102183
- package/dist/server/index.cjs.map +0 -1
- package/dist/server/index.mjs +0 -102127
- package/dist/server/index.mjs.map +0 -1
- package/dist/server/open-BGXDmMPQ.cjs +0 -501
- package/dist/server/open-BGXDmMPQ.cjs.map +0 -1
- package/dist/server/open-BvXvp1QV.mjs +0 -492
- package/dist/server/open-BvXvp1QV.mjs.map +0 -1
|
@@ -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 };
|