@weapp-sqlite/sqljs 0.2.1 → 0.3.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.
- package/README.md +9 -5
- package/dist/assets/sql-wasm-browser.wasm +0 -0
- package/dist/assets/sql-wasm-lite.wasm +0 -0
- package/dist/assets/sql-wasm.wasm +0 -0
- package/dist/full-browser.cjs +15 -0
- package/dist/full-browser.d.cts +5 -0
- package/dist/full-browser.d.mts +5 -0
- package/dist/full-browser.mjs +8 -0
- package/dist/full.cjs +7 -4
- package/dist/full.mjs +5 -2
- package/dist/lite.cjs +8 -2370
- package/dist/lite.mjs +6 -2391
- package/dist/manifest.json +77 -5
- package/dist/node.cjs +1 -7
- package/dist/node.mjs +1 -5
- package/dist/{rolldown-runtime-y5ARvAq5.cjs → rolldown-runtime-VH7oDXx4.cjs} +0 -7
- package/dist/vendor/LICENSE.sql.js +44 -0
- package/dist/vendor/package.json +3 -0
- package/dist/vendor/sql-wasm-browser.js +184 -0
- package/dist/vendor/sql-wasm-lite.js +187 -0
- package/dist/vendor/sql-wasm.js +187 -0
- package/package.json +14 -5
package/README.md
CHANGED
|
@@ -7,18 +7,22 @@ import initSqlJs from '@weapp-sqlite/sqljs/full'
|
|
|
7
7
|
// 或 import initSqlJs from '@weapp-sqlite/sqljs/lite'
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
- `full`
|
|
10
|
+
- `full` 基于官方 `sql.js@1.14.2` 固定源码构建,保持 FTS3、normalize 与贡献扩展函数,是本包的默认完整能力基线。
|
|
11
11
|
- `lite` 基于同一 sql.js 版本重新编译,固定 SQLite 3.49.1 与 Emscripten 5.0.0,保留普通表、索引、事务、触发器、CTE、JSON1、ALTER、参数绑定、BLOB 和数据库导入导出;明确移除 FTS3、SQLite normalized SQL(`getNormalizedSQL()`)和 sql.js 贡献的数学/字符串/聚合函数(例如 `reverse()`)。
|
|
12
12
|
|
|
13
13
|
`full` 与 `lite` 生成的数据库文件使用相同的 SQLite 文件格式,可以互相导入导出;如果数据库包含 FTS3 虚表,`lite` 不能执行该虚表相关 SQL。`lite` 主要用于降低 WASM 包体积,不应默认视为查询性能更高的版本。普通 `LIKE`/`GLOB`、事务和迁移不受这些裁剪影响。
|
|
14
14
|
|
|
15
|
+
两种变体共享持久化补丁:`exportSnapshot()` 使用 SQLite 的 `sqlite3_serialize` 复制主数据库,不关闭连接,保留 PRAGMA、临时表、准备语句、自定义函数与更新 hook;`execWithMetadata(sql, parameters)` 返回 `{ results, readOnly }`,按实际执行的每条 SQLite 语句判断是否可能直接修改数据库。原有 `exec()` 返回值与 `export()` 行为保持 sql.js 语义,adapter 使用新的快照接口,避免原 `export()` 关闭并重开连接导致会话状态丢失。
|
|
16
|
+
|
|
17
|
+
`readOnly` 表示语句没有直接修改数据库文件的可能,不保证自定义 SQL 函数没有外部副作用。多条 SQL 按顺序执行,后续语句可以引用前面新建的表;需要整组原子性时使用 core 的 `transaction()`。
|
|
18
|
+
|
|
15
19
|
- `@weapp-sqlite/sqljs/node` 仅供构建期解析 full/lite 的 WASM 文件名与绝对路径。
|
|
16
20
|
|
|
17
|
-
lite
|
|
21
|
+
full/lite 的来源、版本、源码补丁哈希、产物哈希与许可证会复制到发布包。两者固定 SQLite 3.49.1、Emscripten 5.0.0 与 sql.js commit `9c4e167ec37129192d166ab9223faa9a4bd07c58`。普通消费者构建不依赖 Docker 或 Emscripten。
|
|
18
22
|
|
|
19
23
|
```bash
|
|
20
|
-
pnpm --filter @weapp-sqlite/sqljs verify:
|
|
21
|
-
pnpm --filter @weapp-sqlite/sqljs rebuild:
|
|
24
|
+
pnpm --filter @weapp-sqlite/sqljs verify:engines
|
|
25
|
+
pnpm --filter @weapp-sqlite/sqljs rebuild:engines
|
|
22
26
|
```
|
|
23
27
|
|
|
24
|
-
`rebuild:
|
|
28
|
+
`rebuild:engines` 使用固定的 `emscripten/emsdk:5.0.0` Docker 镜像重新生成 full、full browser 与 lite 资源,然后刷新哈希并检查 lite 体积预算。`rebuild:lite` 和 `verify:lite` 保留为兼容入口,现在分别重建或校验整组引擎。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
|
|
6
|
+
let src_vendor_sql_wasm_browser_js = require("./vendor/sql-wasm-browser.js");
|
|
7
|
+
src_vendor_sql_wasm_browser_js = require_rolldown_runtime.__toESM(src_vendor_sql_wasm_browser_js, 1);
|
|
8
|
+
//#region src/full-browser.ts
|
|
9
|
+
const initSqlJsFull = (options) => (0, src_vendor_sql_wasm_browser_js.default)({
|
|
10
|
+
...options,
|
|
11
|
+
locateFile: options?.locateFile ?? ((file, prefix = "") => `${prefix}../assets/${file}`)
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.default = initSqlJsFull;
|
|
15
|
+
exports.initSqlJsFull = initSqlJsFull;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import initializeSqlJs from "./vendor/sql-wasm-browser.js";
|
|
2
|
+
//#region src/full-browser.ts
|
|
3
|
+
const initSqlJsFull = (options) => initializeSqlJs({
|
|
4
|
+
...options,
|
|
5
|
+
locateFile: options?.locateFile ?? ((file, prefix = "") => `${prefix}../assets/${file}`)
|
|
6
|
+
});
|
|
7
|
+
//#endregion
|
|
8
|
+
export { initSqlJsFull as default, initSqlJsFull };
|
package/dist/full.cjs
CHANGED
|
@@ -2,11 +2,14 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_rolldown_runtime = require("./rolldown-runtime-
|
|
6
|
-
let
|
|
7
|
-
|
|
5
|
+
const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
|
|
6
|
+
let src_vendor_sql_wasm_js = require("./vendor/sql-wasm.js");
|
|
7
|
+
src_vendor_sql_wasm_js = require_rolldown_runtime.__toESM(src_vendor_sql_wasm_js, 1);
|
|
8
8
|
//#region src/full.ts
|
|
9
|
-
const initSqlJsFull =
|
|
9
|
+
const initSqlJsFull = (options) => (0, src_vendor_sql_wasm_js.default)({
|
|
10
|
+
...options,
|
|
11
|
+
locateFile: options?.locateFile ?? ((file, prefix = "") => `${prefix}../assets/${file}`)
|
|
12
|
+
});
|
|
10
13
|
//#endregion
|
|
11
14
|
exports.default = initSqlJsFull;
|
|
12
15
|
exports.initSqlJsFull = initSqlJsFull;
|
package/dist/full.mjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import initializeSqlJs from "sql.js";
|
|
1
|
+
import initializeSqlJs from "./vendor/sql-wasm.js";
|
|
2
2
|
//#region src/full.ts
|
|
3
|
-
const initSqlJsFull = initializeSqlJs
|
|
3
|
+
const initSqlJsFull = (options) => initializeSqlJs({
|
|
4
|
+
...options,
|
|
5
|
+
locateFile: options?.locateFile ?? ((file, prefix = "") => `${prefix}../assets/${file}`)
|
|
6
|
+
});
|
|
4
7
|
//#endregion
|
|
5
8
|
export { initSqlJsFull as default, initSqlJsFull };
|