shioricode 0.5.2 → 0.5.3

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 (43) hide show
  1. package/README.md +22 -1
  2. package/dist/BunHttpServer-BvXfeDdm.cjs +375 -0
  3. package/dist/BunPTY-l5TwbZzE.cjs +91 -0
  4. package/dist/BunServices-07vLsX26.cjs +74 -0
  5. package/dist/NodeHttpServer-OQzpZjfj.cjs +4142 -0
  6. package/dist/NodePTY-BNeKL1sW.cjs +86 -0
  7. package/dist/NodeSqliteClient-K1HOOjni.cjs +147 -0
  8. package/dist/SqlError-UTW5yuSG.cjs +262 -0
  9. package/dist/SqliteClient-CVOnk2wf.cjs +125 -0
  10. package/dist/bin.cjs +703700 -0
  11. package/dist/bin.mjs +386 -142
  12. package/dist/client/apple-touch-icon.png +0 -0
  13. package/dist/client/assets/{ArtifactPanel-BPQ8FX7l.js → ArtifactPanel-ClA97FO8.js} +2 -2
  14. package/dist/client/assets/{ChatMarkdown-jcE8Pq97.js → ChatMarkdown-DkldD1_B.js} +2 -2
  15. package/dist/client/assets/{DiffPanel-CPmbtIC0.js → DiffPanel-BYSH-G7M.js} +2 -2
  16. package/dist/client/assets/{DiffPanelShell-CqS9jPrk.js → DiffPanelShell-Ce2wOE9L.js} +2 -2
  17. package/dist/client/assets/{DiffWorkerPoolProvider-CEnxoS9v.js → DiffWorkerPoolProvider-DjSdGkRQ.js} +2 -2
  18. package/dist/client/assets/{NoActiveThreadState-Bt_jFQ4-.js → NoActiveThreadState-CVDfDuF2.js} +2 -2
  19. package/dist/client/assets/{ProviderModelPicker-BRDu3BzU.js → ProviderModelPicker-BFlX8lZL.js} +2 -2
  20. package/dist/client/assets/{SettingsPanels-BX2dAbn4.js → SettingsPanels-_8_YaXgc.js} +2 -2
  21. package/dist/client/assets/{_chat-C_aCgqFw.js → _chat-CQ5UewiP.js} +2 -2
  22. package/dist/client/assets/{_chat._threadId-DLIOcnXQ.js → _chat._threadId-5846z-_l.js} +5 -5
  23. package/dist/client/assets/{_chat.index-B9u7xlCv.js → _chat.index-DI7egWLc.js} +2 -2
  24. package/dist/client/assets/{automations-CJVFqqLv.js → automations-D6SQKJ83.js} +2 -2
  25. package/dist/client/assets/{dialog-BwIZs3EF.js → dialog-CZ2IjObB.js} +2 -2
  26. package/dist/client/assets/{index-DKZPXV4a.js → index-B42nGfCf.js} +4 -4
  27. package/dist/client/assets/{pull-requests-CQHYo-fV.js → pull-requests-DGa0NhIZ.js} +2 -2
  28. package/dist/client/assets/{settings-i7-rb7s9.js → settings-BwPioqTL.js} +2 -2
  29. package/dist/client/assets/{settings.appearance-Dwkl1cOq.js → settings.appearance-DxQzPuf5.js} +2 -2
  30. package/dist/client/assets/{settings.archived-DZPSjNZJ.js → settings.archived-BSqIxOKY.js} +2 -2
  31. package/dist/client/assets/{settings.computer-use-CLy6GP7W.js → settings.computer-use-DuuUffvc.js} +2 -2
  32. package/dist/client/assets/{settings.general-CuNCor2d.js → settings.general-DjIbwGSI.js} +2 -2
  33. package/dist/client/assets/{settings.mcp-DwWQDGSB.js → settings.mcp-CHZOA1L-.js} +2 -2
  34. package/dist/client/assets/{settings.mobile-B73fICiz.js → settings.mobile-D3UiSzxp.js} +2 -2
  35. package/dist/client/assets/{settings.plugins-BjW05gj4.js → settings.plugins-qo7Fls2x.js} +2 -2
  36. package/dist/client/assets/{settings.remote-D_iWhzEN.js → settings.remote-CmdhJhKY.js} +2 -2
  37. package/dist/client/assets/{settings.skills-BCB4uvnE.js → settings.skills-UB5Wtkl5.js} +2 -2
  38. package/dist/client/assets/{settings.theme-builder-CS2XB4es.js → settings.theme-builder-CnwNYRga.js} +2 -2
  39. package/dist/client/favicon-16x16.png +0 -0
  40. package/dist/client/favicon-32x32.png +0 -0
  41. package/dist/client/favicon.ico +0 -0
  42. package/dist/client/index.html +1 -1
  43. package/package.json +38 -5
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env node
2
+
3
+ const require_bin = require('./bin.cjs');
4
+ let node_module = require("node:module");
5
+
6
+ //#region src/terminal/Layers/NodePTY.ts
7
+ let didEnsureSpawnHelperExecutable = false;
8
+ const resolveNodePtySpawnHelperPath = require_bin.gen(function* () {
9
+ const requireForNodePty = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
10
+ const path = yield* require_bin.Path;
11
+ const fs = yield* require_bin.FileSystem;
12
+ const packageJsonPath = requireForNodePty.resolve("node-pty/package.json");
13
+ const packageDir = path.dirname(packageJsonPath);
14
+ const candidates = [
15
+ path.join(packageDir, "build", "Release", "spawn-helper"),
16
+ path.join(packageDir, "build", "Debug", "spawn-helper"),
17
+ path.join(packageDir, "prebuilds", `${process.platform}-${process.arch}`, "spawn-helper")
18
+ ];
19
+ for (const candidate of candidates) if (yield* fs.exists(candidate)) return candidate;
20
+ return null;
21
+ }).pipe(require_bin.orElseSucceed(() => null));
22
+ const ensureNodePtySpawnHelperExecutable = require_bin.fn(function* (explicitPath) {
23
+ const fs = yield* require_bin.FileSystem;
24
+ if (process.platform === "win32") return;
25
+ if (!explicitPath && didEnsureSpawnHelperExecutable) return;
26
+ const helperPath = explicitPath ?? (yield* resolveNodePtySpawnHelperPath);
27
+ if (!helperPath) return;
28
+ if (!explicitPath) didEnsureSpawnHelperExecutable = true;
29
+ if (!(yield* fs.exists(helperPath))) return;
30
+ yield* fs.chmod(helperPath, 493).pipe(require_bin.orElseSucceed(() => void 0));
31
+ });
32
+ var NodePtyProcess = class {
33
+ constructor(process) {
34
+ this.process = process;
35
+ }
36
+ get pid() {
37
+ return this.process.pid;
38
+ }
39
+ write(data) {
40
+ this.process.write(data);
41
+ }
42
+ resize(cols, rows) {
43
+ this.process.resize(cols, rows);
44
+ }
45
+ kill(signal) {
46
+ this.process.kill(signal);
47
+ }
48
+ onData(callback) {
49
+ const disposable = this.process.onData(callback);
50
+ return () => {
51
+ disposable.dispose();
52
+ };
53
+ }
54
+ onExit(callback) {
55
+ const disposable = this.process.onExit((event) => {
56
+ callback({
57
+ exitCode: event.exitCode,
58
+ signal: event.signal ?? null
59
+ });
60
+ });
61
+ return () => {
62
+ disposable.dispose();
63
+ };
64
+ }
65
+ };
66
+ const layer = require_bin.effect(require_bin.PtyAdapter, require_bin.gen(function* () {
67
+ const fs = yield* require_bin.FileSystem;
68
+ const path = yield* require_bin.Path;
69
+ const nodePty = yield* require_bin.promise(() => import("node-pty"));
70
+ const ensureNodePtySpawnHelperExecutableCached = yield* require_bin.cached(ensureNodePtySpawnHelperExecutable().pipe(require_bin.provideService(require_bin.FileSystem, fs), require_bin.provideService(require_bin.Path, path), require_bin.orElseSucceed(() => void 0)));
71
+ return { spawn: require_bin.fn(function* (input) {
72
+ yield* ensureNodePtySpawnHelperExecutableCached;
73
+ return new NodePtyProcess(nodePty.spawn(input.shell, input.args ?? [], {
74
+ cwd: input.cwd,
75
+ cols: input.cols,
76
+ rows: input.rows,
77
+ env: input.env,
78
+ name: globalThis.process.platform === "win32" ? "xterm-color" : "xterm-256color"
79
+ }));
80
+ }) };
81
+ }));
82
+
83
+ //#endregion
84
+ exports.ensureNodePtySpawnHelperExecutable = ensureNodePtySpawnHelperExecutable;
85
+ exports.layer = layer;
86
+ //# sourceMappingURL=NodePTY-BNeKL1sW.cjs.map
@@ -0,0 +1,147 @@
1
+ #!/usr/bin/env node
2
+
3
+ const require_bin = require('./bin.cjs');
4
+ const require_SqlError = require('./SqlError-UTW5yuSG.cjs');
5
+ let node_sqlite = require("node:sqlite");
6
+
7
+ //#region src/persistence/NodeSqliteClient.ts
8
+ /**
9
+ * Port of `@effect/sql-sqlite-node` that uses the native `node:sqlite`
10
+ * bindings instead of `better-sqlite3`.
11
+ *
12
+ * @module SqliteClient
13
+ */
14
+ const ATTR_DB_SYSTEM_NAME = "db.system.name";
15
+ const TypeId = "~local/sqlite-node/SqliteClient";
16
+ /**
17
+ * SqliteClient - Effect service tag for the sqlite SQL client.
18
+ */
19
+ const SqliteClient = require_bin.Service("t3/persistence/NodeSqliteClient");
20
+ /**
21
+ * Verify that the current Node.js version includes the `node:sqlite` APIs
22
+ * used by `NodeSqliteClient` — specifically `StatementSync.columns()` (added
23
+ * in Node 22.16.0 / 23.11.0).
24
+ *
25
+ * @see https://github.com/nodejs/node/pull/57490
26
+ */
27
+ const checkNodeSqliteCompat = () => {
28
+ const parts = process.versions.node.split(".").map(Number);
29
+ const major = parts[0] ?? 0;
30
+ const minor = parts[1] ?? 0;
31
+ if (!(major === 22 && minor >= 16 || major === 23 && minor >= 11 || major >= 24)) return require_bin.die$1(`Node.js ${process.versions.node} is missing required node:sqlite APIs (StatementSync.columns). Upgrade to Node.js >=22.16, >=23.11, or >=24.`);
32
+ return require_bin.void_;
33
+ };
34
+ const makeWithDatabase = require_bin.fn("makeWithDatabase")(function* (options, openDatabase) {
35
+ yield* checkNodeSqliteCompat();
36
+ const compiler = require_bin.makeCompilerSqlite(options.transformQueryNames);
37
+ const transformRows = options.transformResultNames ? require_bin.defaultTransforms(options.transformResultNames).array : void 0;
38
+ const makeConnection = require_bin.gen(function* () {
39
+ const scope$1 = yield* require_bin.scope;
40
+ const db = openDatabase();
41
+ yield* require_bin.addFinalizer$1(scope$1, require_bin.sync(() => db.close()));
42
+ const statementReaderCache = /* @__PURE__ */ new WeakMap();
43
+ const hasRows = (statement) => {
44
+ const cached = statementReaderCache.get(statement);
45
+ if (cached !== void 0) return cached;
46
+ const value = statement.columns().length > 0;
47
+ statementReaderCache.set(statement, value);
48
+ return value;
49
+ };
50
+ const prepareCache = yield* require_bin.make$5({
51
+ capacity: options.prepareCacheSize ?? 200,
52
+ timeToLive: options.prepareCacheTTL ?? require_bin.minutes(10),
53
+ lookup: (sql) => require_bin.try_({
54
+ try: () => db.prepare(sql),
55
+ catch: (cause) => new require_SqlError.SqlError({ reason: require_SqlError.classifySqliteError(cause, {
56
+ message: "Failed to prepare statement",
57
+ operation: "prepare"
58
+ }) })
59
+ })
60
+ });
61
+ const runStatement = (statement, params, raw) => require_bin.withFiber((fiber) => {
62
+ statement.setReadBigInts(Boolean(require_bin.get$1(fiber.services, require_bin.SafeIntegers)));
63
+ try {
64
+ if (hasRows(statement)) return require_bin.succeed(statement.all(...params));
65
+ const result = statement.run(...params);
66
+ return require_bin.succeed(raw ? result : []);
67
+ } catch (cause) {
68
+ return require_bin.fail$1(new require_SqlError.SqlError({ reason: require_SqlError.classifySqliteError(cause, {
69
+ message: "Failed to execute statement",
70
+ operation: "execute"
71
+ }) }));
72
+ }
73
+ });
74
+ const run = (sql, params, raw = false) => require_bin.flatMap(require_bin.get(prepareCache, sql), (s) => runStatement(s, params, raw));
75
+ const runValues = (sql, params) => require_bin.acquireUseRelease(require_bin.get(prepareCache, sql), (statement) => require_bin.try_({
76
+ try: () => {
77
+ if (hasRows(statement)) {
78
+ statement.setReturnArrays(true);
79
+ return statement.all(...params);
80
+ }
81
+ statement.run(...params);
82
+ return [];
83
+ },
84
+ catch: (cause) => new require_SqlError.SqlError({ reason: require_SqlError.classifySqliteError(cause, {
85
+ message: "Failed to execute statement",
86
+ operation: "execute"
87
+ }) })
88
+ }), (statement) => require_bin.sync(() => {
89
+ if (hasRows(statement)) statement.setReturnArrays(false);
90
+ }));
91
+ return require_bin.identity({
92
+ execute(sql, params, rowTransform) {
93
+ return rowTransform ? require_bin.map$1(run(sql, params), rowTransform) : run(sql, params);
94
+ },
95
+ executeRaw(sql, params) {
96
+ return run(sql, params, true);
97
+ },
98
+ executeValues(sql, params) {
99
+ return runValues(sql, params);
100
+ },
101
+ executeUnprepared(sql, params, rowTransform) {
102
+ const effect = runStatement(db.prepare(sql), params ?? [], false);
103
+ return rowTransform ? require_bin.map$1(effect, rowTransform) : effect;
104
+ },
105
+ executeStream(_sql, _params) {
106
+ return require_bin.die("executeStream not implemented");
107
+ }
108
+ });
109
+ });
110
+ const semaphore = yield* require_bin.make$7(1);
111
+ const connection = yield* makeConnection;
112
+ const acquirer = semaphore.withPermits(1)(require_bin.succeed(connection));
113
+ const transactionAcquirer = require_bin.uninterruptibleMask((restore) => {
114
+ const fiber = require_bin.getCurrent();
115
+ const scope = require_bin.getUnsafe(fiber.services, require_bin.Scope);
116
+ return require_bin.as(require_bin.tap(restore(semaphore.take(1)), () => require_bin.addFinalizer$1(scope, semaphore.release(1))), connection);
117
+ });
118
+ return yield* require_bin.make$3({
119
+ acquirer,
120
+ compiler,
121
+ transactionAcquirer,
122
+ spanAttributes: [...options.spanAttributes ? Object.entries(options.spanAttributes) : [], [ATTR_DB_SYSTEM_NAME, "sqlite"]],
123
+ transformRows
124
+ });
125
+ });
126
+ const make = (options) => makeWithDatabase(options, () => new node_sqlite.DatabaseSync(options.filename, {
127
+ readOnly: options.readonly ?? false,
128
+ allowExtension: options.allowExtension ?? false
129
+ }));
130
+ const makeMemory = (config = {}) => makeWithDatabase({
131
+ ...config,
132
+ filename: ":memory:",
133
+ readonly: false
134
+ }, () => {
135
+ return new node_sqlite.DatabaseSync(":memory:", { allowExtension: config.allowExtension ?? false });
136
+ });
137
+ const layerConfig = (config) => require_bin.effectServices(require_bin.unwrap(config).asEffect().pipe(require_bin.flatMap(make), require_bin.map$1((client) => require_bin.make$8(SqliteClient, client).pipe(require_bin.add(require_bin.SqlClient, client))))).pipe(require_bin.provide(require_bin.layer$2));
138
+ const layer = (config) => require_bin.effectServices(require_bin.map$1(make(config), (client) => require_bin.make$8(SqliteClient, client).pipe(require_bin.add(require_bin.SqlClient, client)))).pipe(require_bin.provide(require_bin.layer$2));
139
+ const layerMemory = (config = {}) => require_bin.effectServices(require_bin.map$1(makeMemory(config), (client) => require_bin.make$8(SqliteClient, client).pipe(require_bin.add(require_bin.SqlClient, client)))).pipe(require_bin.provide(require_bin.layer$2));
140
+
141
+ //#endregion
142
+ exports.SqliteClient = SqliteClient;
143
+ exports.TypeId = TypeId;
144
+ exports.layer = layer;
145
+ exports.layerConfig = layerConfig;
146
+ exports.layerMemory = layerMemory;
147
+ //# sourceMappingURL=NodeSqliteClient-K1HOOjni.cjs.map
@@ -0,0 +1,262 @@
1
+ #!/usr/bin/env node
2
+
3
+ const require_bin = require('./bin.cjs');
4
+
5
+ //#region ../../node_modules/effect/dist/unstable/sql/SqlError.js
6
+ /**
7
+ * @since 4.0.0
8
+ */
9
+ const TypeId = "~effect/sql/SqlError";
10
+ const ReasonTypeId = "~effect/sql/SqlError/Reason";
11
+ const ReasonFields = {
12
+ cause: require_bin.Defect,
13
+ message: /* @__PURE__ */ require_bin.optional(require_bin.String),
14
+ operation: /* @__PURE__ */ require_bin.optional(require_bin.String)
15
+ };
16
+ /**
17
+ * @since 4.0.0
18
+ */
19
+ var ConnectionError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/ConnectionError")("ConnectionError", ReasonFields) {
20
+ /**
21
+ * @since 4.0.0
22
+ */
23
+ [ReasonTypeId] = ReasonTypeId;
24
+ /**
25
+ * @since 4.0.0
26
+ */
27
+ get isRetryable() {
28
+ return true;
29
+ }
30
+ };
31
+ /**
32
+ * @since 4.0.0
33
+ */
34
+ var AuthenticationError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/AuthenticationError")("AuthenticationError", ReasonFields) {
35
+ /**
36
+ * @since 4.0.0
37
+ */
38
+ [ReasonTypeId] = ReasonTypeId;
39
+ /**
40
+ * @since 4.0.0
41
+ */
42
+ get isRetryable() {
43
+ return false;
44
+ }
45
+ };
46
+ /**
47
+ * @since 4.0.0
48
+ */
49
+ var AuthorizationError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/AuthorizationError")("AuthorizationError", ReasonFields) {
50
+ /**
51
+ * @since 4.0.0
52
+ */
53
+ [ReasonTypeId] = ReasonTypeId;
54
+ /**
55
+ * @since 4.0.0
56
+ */
57
+ get isRetryable() {
58
+ return false;
59
+ }
60
+ };
61
+ /**
62
+ * @since 4.0.0
63
+ */
64
+ var SqlSyntaxError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/SqlSyntaxError")("SqlSyntaxError", ReasonFields) {
65
+ /**
66
+ * @since 4.0.0
67
+ */
68
+ [ReasonTypeId] = ReasonTypeId;
69
+ /**
70
+ * @since 4.0.0
71
+ */
72
+ get isRetryable() {
73
+ return false;
74
+ }
75
+ };
76
+ /**
77
+ * @since 4.0.0
78
+ */
79
+ var ConstraintError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/ConstraintError")("ConstraintError", ReasonFields) {
80
+ /**
81
+ * @since 4.0.0
82
+ */
83
+ [ReasonTypeId] = ReasonTypeId;
84
+ /**
85
+ * @since 4.0.0
86
+ */
87
+ get isRetryable() {
88
+ return false;
89
+ }
90
+ };
91
+ /**
92
+ * @since 4.0.0
93
+ */
94
+ var DeadlockError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/DeadlockError")("DeadlockError", ReasonFields) {
95
+ /**
96
+ * @since 4.0.0
97
+ */
98
+ [ReasonTypeId] = ReasonTypeId;
99
+ /**
100
+ * @since 4.0.0
101
+ */
102
+ get isRetryable() {
103
+ return true;
104
+ }
105
+ };
106
+ /**
107
+ * @since 4.0.0
108
+ */
109
+ var SerializationError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/SerializationError")("SerializationError", ReasonFields) {
110
+ /**
111
+ * @since 4.0.0
112
+ */
113
+ [ReasonTypeId] = ReasonTypeId;
114
+ /**
115
+ * @since 4.0.0
116
+ */
117
+ get isRetryable() {
118
+ return true;
119
+ }
120
+ };
121
+ /**
122
+ * @since 4.0.0
123
+ */
124
+ var LockTimeoutError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/LockTimeoutError")("LockTimeoutError", ReasonFields) {
125
+ /**
126
+ * @since 4.0.0
127
+ */
128
+ [ReasonTypeId] = ReasonTypeId;
129
+ /**
130
+ * @since 4.0.0
131
+ */
132
+ get isRetryable() {
133
+ return true;
134
+ }
135
+ };
136
+ /**
137
+ * @since 4.0.0
138
+ */
139
+ var StatementTimeoutError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/StatementTimeoutError")("StatementTimeoutError", ReasonFields) {
140
+ /**
141
+ * @since 4.0.0
142
+ */
143
+ [ReasonTypeId] = ReasonTypeId;
144
+ /**
145
+ * @since 4.0.0
146
+ */
147
+ get isRetryable() {
148
+ return true;
149
+ }
150
+ };
151
+ /**
152
+ * @since 4.0.0
153
+ */
154
+ var UnknownError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError/UnknownError")("UnknownError", ReasonFields) {
155
+ /**
156
+ * @since 4.0.0
157
+ */
158
+ [ReasonTypeId] = ReasonTypeId;
159
+ /**
160
+ * @since 4.0.0
161
+ */
162
+ get isRetryable() {
163
+ return false;
164
+ }
165
+ };
166
+ /**
167
+ * @since 4.0.0
168
+ */
169
+ const SqlErrorReason = /* @__PURE__ */ require_bin.Union([
170
+ ConnectionError,
171
+ AuthenticationError,
172
+ AuthorizationError,
173
+ SqlSyntaxError,
174
+ ConstraintError,
175
+ DeadlockError,
176
+ SerializationError,
177
+ LockTimeoutError,
178
+ StatementTimeoutError,
179
+ UnknownError
180
+ ]);
181
+ /**
182
+ * @since 4.0.0
183
+ */
184
+ var SqlError = class extends require_bin.TaggedErrorClass("effect/sql/SqlError")("SqlError", { reason: SqlErrorReason }) {
185
+ /**
186
+ * @since 4.0.0
187
+ */
188
+ [TypeId] = TypeId;
189
+ /**
190
+ * @since 4.0.0
191
+ */
192
+ cause = this.reason;
193
+ /**
194
+ * @since 4.0.0
195
+ */
196
+ get message() {
197
+ return this.reason.message || this.reason._tag;
198
+ }
199
+ /**
200
+ * @since 4.0.0
201
+ */
202
+ get isRetryable() {
203
+ return this.reason.isRetryable;
204
+ }
205
+ };
206
+ const sqliteCodeFromCause = (cause) => {
207
+ if (!require_bin.hasProperty(cause, "code")) return;
208
+ const code = cause.code;
209
+ return typeof code === "string" || typeof code === "number" ? code : void 0;
210
+ };
211
+ const sqliteNumericCodeFromCause = (cause) => {
212
+ const code = sqliteCodeFromCause(cause);
213
+ if (typeof code === "number") return code;
214
+ if (!require_bin.hasProperty(cause, "errno")) return;
215
+ const errno = cause.errno;
216
+ return typeof errno === "number" ? errno : void 0;
217
+ };
218
+ const matchesSqliteCode = (code, expected) => code === expected || code.startsWith(expected + "_");
219
+ /**
220
+ * @since 4.0.0
221
+ */
222
+ const classifySqliteError = (cause, { message, operation } = {}) => {
223
+ const props = {
224
+ cause,
225
+ message,
226
+ operation
227
+ };
228
+ const code = sqliteCodeFromCause(cause);
229
+ if (typeof code === "string") {
230
+ if (matchesSqliteCode(code, "SQLITE_AUTH")) return new AuthenticationError(props);
231
+ if (matchesSqliteCode(code, "SQLITE_PERM")) return new AuthorizationError(props);
232
+ if (matchesSqliteCode(code, "SQLITE_CONSTRAINT")) return new ConstraintError(props);
233
+ if (matchesSqliteCode(code, "SQLITE_BUSY") || matchesSqliteCode(code, "SQLITE_LOCKED")) return new LockTimeoutError(props);
234
+ if (matchesSqliteCode(code, "SQLITE_CANTOPEN")) return new ConnectionError(props);
235
+ }
236
+ const numericCode = sqliteNumericCodeFromCause(cause);
237
+ if (typeof numericCode === "number") switch (numericCode & 255) {
238
+ case 23: return new AuthenticationError(props);
239
+ case 3: return new AuthorizationError(props);
240
+ case 19: return new ConstraintError(props);
241
+ case 5:
242
+ case 6: return new LockTimeoutError(props);
243
+ case 14: return new ConnectionError(props);
244
+ default: return new UnknownError(props);
245
+ }
246
+ return new UnknownError(props);
247
+ };
248
+
249
+ //#endregion
250
+ Object.defineProperty(exports, 'SqlError', {
251
+ enumerable: true,
252
+ get: function () {
253
+ return SqlError;
254
+ }
255
+ });
256
+ Object.defineProperty(exports, 'classifySqliteError', {
257
+ enumerable: true,
258
+ get: function () {
259
+ return classifySqliteError;
260
+ }
261
+ });
262
+ //# sourceMappingURL=SqlError-UTW5yuSG.cjs.map
@@ -0,0 +1,125 @@
1
+ #!/usr/bin/env node
2
+
3
+ const require_bin = require('./bin.cjs');
4
+ const require_SqlError = require('./SqlError-UTW5yuSG.cjs');
5
+ let bun_sqlite = require("bun:sqlite");
6
+
7
+ //#region ../../node_modules/@effect/sql-sqlite-bun/dist/SqliteClient.js
8
+ /**
9
+ * @since 1.0.0
10
+ */
11
+ const ATTR_DB_SYSTEM_NAME = "db.system.name";
12
+ const classifyError = (cause, message, operation) => require_SqlError.classifySqliteError(cause, {
13
+ message,
14
+ operation
15
+ });
16
+ /**
17
+ * @category type ids
18
+ * @since 1.0.0
19
+ */
20
+ const TypeId = "~@effect/sql-sqlite-bun/SqliteClient";
21
+ /**
22
+ * @category tags
23
+ * @since 1.0.0
24
+ */
25
+ const SqliteClient = /* @__PURE__ */ require_bin.Service("@effect/sql-sqlite-bun/Client");
26
+ /**
27
+ * @category constructor
28
+ * @since 1.0.0
29
+ */
30
+ const make = (options) => require_bin.gen(function* () {
31
+ const compiler = require_bin.makeCompilerSqlite(options.transformQueryNames);
32
+ const transformRows = options.transformResultNames ? require_bin.defaultTransforms(options.transformResultNames).array : void 0;
33
+ const makeConnection = require_bin.gen(function* () {
34
+ const db = new bun_sqlite.Database(options.filename, {
35
+ readonly: options.readonly,
36
+ readwrite: options.readwrite ?? true,
37
+ create: options.create ?? true
38
+ });
39
+ yield* require_bin.addFinalizer(() => require_bin.sync(() => db.close()));
40
+ if (options.disableWAL !== true) db.run("PRAGMA journal_mode = WAL;");
41
+ const run = (sql, params = []) => require_bin.withFiber((fiber) => {
42
+ const statement = db.query(sql);
43
+ const useSafeIntegers = require_bin.get$1(fiber.services, require_bin.SafeIntegers);
44
+ statement.safeIntegers(useSafeIntegers);
45
+ try {
46
+ return require_bin.succeed(statement.all(...params) ?? []);
47
+ } catch (cause) {
48
+ return require_bin.fail$1(new require_SqlError.SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }));
49
+ }
50
+ });
51
+ const runValues = (sql, params = []) => require_bin.withFiber((fiber) => {
52
+ const statement = db.query(sql);
53
+ const useSafeIntegers = require_bin.get$1(fiber.services, require_bin.SafeIntegers);
54
+ statement.safeIntegers(useSafeIntegers);
55
+ try {
56
+ return require_bin.succeed(statement.values(...params) ?? []);
57
+ } catch (cause) {
58
+ return require_bin.fail$1(new require_SqlError.SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") }));
59
+ }
60
+ });
61
+ return require_bin.identity({
62
+ execute(sql, params, transformRows) {
63
+ return transformRows ? require_bin.map$1(run(sql, params), transformRows) : run(sql, params);
64
+ },
65
+ executeRaw(sql, params) {
66
+ return run(sql, params);
67
+ },
68
+ executeValues(sql, params) {
69
+ return runValues(sql, params);
70
+ },
71
+ executeUnprepared(sql, params, transformRows) {
72
+ return this.execute(sql, params, transformRows);
73
+ },
74
+ executeStream(_sql, _params) {
75
+ return require_bin.die("executeStream not implemented");
76
+ },
77
+ export: require_bin.try_({
78
+ try: () => db.serialize(),
79
+ catch: (cause) => new require_SqlError.SqlError({ reason: classifyError(cause, "Failed to export database", "export") })
80
+ }),
81
+ loadExtension: (path) => require_bin.try_({
82
+ try: () => db.loadExtension(path),
83
+ catch: (cause) => new require_SqlError.SqlError({ reason: classifyError(cause, "Failed to load extension", "loadExtension") })
84
+ })
85
+ });
86
+ });
87
+ const semaphore = yield* require_bin.make$7(1);
88
+ const connection = yield* makeConnection;
89
+ const acquirer = semaphore.withPermits(1)(require_bin.succeed(connection));
90
+ const transactionAcquirer = require_bin.uninterruptibleMask((restore) => {
91
+ const fiber = require_bin.getCurrent();
92
+ const scope = require_bin.getUnsafe(fiber.services, require_bin.Scope);
93
+ return require_bin.as(require_bin.tap(restore(semaphore.take(1)), () => require_bin.addFinalizer$1(scope, semaphore.release(1))), connection);
94
+ });
95
+ return Object.assign(yield* require_bin.make$3({
96
+ acquirer,
97
+ compiler,
98
+ transactionAcquirer,
99
+ spanAttributes: [...options.spanAttributes ? Object.entries(options.spanAttributes) : [], [ATTR_DB_SYSTEM_NAME, "sqlite"]],
100
+ transformRows
101
+ }), {
102
+ [TypeId]: TypeId,
103
+ config: options,
104
+ export: require_bin.flatMap(acquirer, (_) => _.export),
105
+ loadExtension: (path) => require_bin.flatMap(acquirer, (_) => _.loadExtension(path))
106
+ });
107
+ });
108
+ /**
109
+ * @category layers
110
+ * @since 1.0.0
111
+ */
112
+ const layerConfig = (config) => require_bin.effectServices(require_bin.unwrap(config).asEffect().pipe(require_bin.flatMap(make), require_bin.map$1((client) => require_bin.make$8(SqliteClient, client).pipe(require_bin.add(require_bin.SqlClient, client))))).pipe(require_bin.provide(require_bin.layer$2));
113
+ /**
114
+ * @category layers
115
+ * @since 1.0.0
116
+ */
117
+ const layer = (config) => require_bin.effectServices(require_bin.map$1(make(config), (client) => require_bin.make$8(SqliteClient, client).pipe(require_bin.add(require_bin.SqlClient, client)))).pipe(require_bin.provide(require_bin.layer$2));
118
+
119
+ //#endregion
120
+ exports.SqliteClient = SqliteClient;
121
+ exports.TypeId = TypeId;
122
+ exports.layer = layer;
123
+ exports.layerConfig = layerConfig;
124
+ exports.make = make;
125
+ //# sourceMappingURL=SqliteClient-CVOnk2wf.cjs.map