@aiquants/duckdb-helper 1.6.4 → 1.6.6

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.
@@ -117,7 +117,7 @@ export default defineConfig({
117
117
 
118
118
  | スクリプト | コマンド | 説明 |
119
119
  | --- | --- | --- |
120
- | `build` | `tsup` | ビルド実行 |
120
+ | `build` | `tsup && node scripts/copy-assets.js` | ビルド実行および DuckDB-Wasm のアセットを dist/assets にコピー |
121
121
  | `build:watch` | `tsup --watch` | ファイル変更時に自動リビルド |
122
122
  | `dev` | `tsup --watch` | 開発用(build:watch と同一) |
123
123
  | `watch` | `tsup --watch` | ウォッチモード |
@@ -168,14 +168,19 @@ npm に公開されるファイル。`src/` はパッケージに含まれない
168
168
 
169
169
  ## 5. ビルド成果物の構成
170
170
 
171
- ```
171
+ ```text
172
172
  dist/
173
173
  ├── index.js # CommonJS バンドル(require() 用)
174
174
  ├── index.mjs # ESM バンドル(import 用)
175
175
  ├── index.d.ts # TypeScript 型定義
176
176
  ├── index.d.mts # ESM 用 TypeScript 型定義
177
177
  ├── index.js.map # CommonJS ソースマップ
178
- └── index.mjs.map # ESM ソースマップ
178
+ ├── index.mjs.map # ESM ソースマップ
179
+ └── assets/ # 同梱される DuckDB-Wasm アセット
180
+ ├── duckdb-mvp.wasm
181
+ ├── duckdb-browser-mvp.worker.js
182
+ ├── duckdb-eh.wasm
183
+ └── duckdb-browser-eh.worker.js
179
184
  ```
180
185
 
181
186
  ## 6. 新人向けポイント
@@ -186,3 +191,4 @@ dist/
186
191
  4. **`external` に指定されたパッケージはバンドルに含まれない**。利用側でインストールが必要。
187
192
  5. **ビルドは tsup(esbuild ベース)が行い、tsc は型チェック専用**。この分業により高速ビルドと厳密な型チェックを両立。
188
193
  6. **`src/` は npm パッケージに含まれない**。利用者が見るのは `dist/` のビルド済みコードのみ。
194
+ 7. **WASM/Worker アセットのローカル自動配信**: パッケージ同梱された DuckDB-Wasm アセットは、フロントエンドアプリ側の起動・ビルドプロセス(Vite プラグイン)により `public/assets/duckdb/` に自動コピーされ、ローカル配信( `/assets/duckdb/...` )として利用される。これによりネットワーク競合やデッドロックが防止される。
@@ -1,8 +1,8 @@
1
1
  # テスト仕様書
2
2
 
3
- > 対象: `@aiquants/duckdb-helper` v1.6.0
3
+ > 対象: `@aiquants/duckdb-helper`
4
4
  > テストソース: `tests/**`
5
- > 作成: 2026-07-05
5
+ > 更新: 2026-07-22(v1.6.3 の splink_udfs インストールタイムアウトテスト追加に伴う更新)
6
6
 
7
7
  ## 1. 目的とスコープ
8
8
 
@@ -62,6 +62,7 @@ DuckDB-WASM は実際の Worker と WASM ダウンロードを伴うため、単
62
62
  | 高速パス | 初期化済みなら Worker を作り直さない | |
63
63
  | 同時呼び出しの重複排除 | 2 回同時呼び出しでも Worker は 1 つ | |
64
64
  | splink 失敗時の続行 | 拡張ロード失敗でも `ready`、一時コネクションは close | |
65
+ | splink ハング時のタイムアウト | 10秒経過でタイムアウトして `ready`、一時コネクションは close | |
65
66
  | **instantiate 失敗 → 再試行可能** | `error` に遷移し `isReady() === false`、Worker terminate + Blob URL revoke、その後 `initialize()` で復旧 | 初期化復旧不能(High) |
66
67
  | 非 Error の reject | 文字列 reject でも `error` に遷移 | |
67
68
  | Worker 生成前の失敗 | `selectBundle` reject で Worker/URL 未生成のまま `error` | |
@@ -165,7 +166,7 @@ DuckDB-WASM は実際の Worker と WASM ダウンロードを伴うため、単
165
166
 
166
167
  ## 6. カバレッジ結果
167
168
 
168
- `pnpm run test:coverage` の結果(v1.6.0 時点、88 テスト):
169
+ `pnpm run test:coverage` の結果(6 ファイル / 89 テスト):
169
170
 
170
171
  | File | % Stmts | % Branch | % Funcs | % Lines |
171
172
  | --- | --- | --- | --- | --- |
@@ -182,3 +183,4 @@ DuckDB-WASM は実際の Worker と WASM ダウンロードを伴うため、単
182
183
 
183
184
  - 本テストは**単体テスト**であり、実 DuckDB-WASM / 実 Worker を用いた結合は対象外(実 SQL の意味的正しさ、例えば `BEGIN/COMMIT` のトランザクション意味論は DuckDB 側の責務)。
184
185
  - `types/duckdb.ts` は型のみでランタイムコードを持たないためカバレッジ対象から除外。
186
+ - **アセットコピーとローカル解決の検証**: パッケージ同梱用スクリプト( `copy-assets.js` )の動作や Vite プラグイン( `copyDuckDBAssetsPlugin` )によるコピー処理は、単体テストのモック環境ではなく、パッケージのビルド検証ステップ( `pnpm run build` )およびアプリ側のビルド検証において、 `dist/assets` や `public/assets/duckdb` への実アセット配置状況をファイルチェックすることで検証する。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiquants/duckdb-helper",
3
- "version": "1.6.4",
3
+ "version": "1.6.6",
4
4
  "description": "DuckDB helper utilities with React hooks, worker initialization, and typed query helpers",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -69,7 +69,7 @@
69
69
  "access": "public"
70
70
  },
71
71
  "scripts": {
72
- "build": "tsup",
72
+ "build": "tsup && node scripts/copy-assets.js",
73
73
  "build:watch": "tsup --watch",
74
74
  "dev": "tsup --watch",
75
75
  "watch": "tsup --watch",