w-orm-lmdb 1.0.14 → 1.0.16

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * req-mingo v1.0.14
2
+ * req-mingo v1.0.16
3
3
  * (c) 2018-2021 yuda-lyu(semisphere)
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * w-orm-lmdb v1.0.14
2
+ * w-orm-lmdb v1.0.16
3
3
  * (c) 2018-2021 yuda-lyu(semisphere)
4
4
  * Released under the MIT License.
5
5
  */
@@ -1592,7 +1592,7 @@
1592
1592
  <br class="clear">
1593
1593
 
1594
1594
  <footer>
1595
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Sun Aug 16 2026 23:16:22 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1595
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Sun Aug 16 2026 23:35:59 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1596
1596
  </footer>
1597
1597
 
1598
1598
  <script>prettyPrint();</script>
@@ -872,7 +872,7 @@ export default WOrmLmdb
872
872
  <br class="clear">
873
873
 
874
874
  <footer>
875
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Sun Aug 16 2026 23:16:22 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
875
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Sun Aug 16 2026 23:35:59 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
876
876
  </footer>
877
877
 
878
878
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -71,7 +71,7 @@
71
71
  <br class="clear">
72
72
 
73
73
  <footer>
74
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Sun Aug 16 2026 23:16:22 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
74
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Sun Aug 16 2026 23:35:59 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
75
75
  </footer>
76
76
 
77
77
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "w-orm-lmdb",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "main": "dist/w-orm-lmdb.umd.js",
5
5
  "dependencies": {
6
6
  "lmdb": "^3.5.6",
@@ -8,8 +8,6 @@
8
8
 
9
9
  專屬函數若與六函數之概念對應(插入/單筆直讀/刪除/條件刪除),則**參數形狀亦須比照**,不只回傳結構:收「帶主鍵之數據物件或陣列」者回等長陣列,收單一主鍵者回單一物件。僅對齊回傳值而參數各行其是,會讓同一概念出現兩種呼叫方式,與本規格「呼叫端不須為個別套件寫特例」之目的相違。若某概念在該後端無法滿足本規格之要求(如無法原子取代內容而不能提供 `save`),則不提供該函數,並於 README 說明原因與替代作法;不得提供一個語義較弱而同名的版本。
10
10
 
11
- 只有當無法支援併發時才於各套件之README.md宣告。
12
-
13
11
  ---
14
12
 
15
13
  ## 通則
@@ -96,7 +94,7 @@
96
94
 
97
95
  ### T8 併發保證之宣告義務
98
96
 
99
- 各套件須於 README 明確宣告其原子性保證的**適用範圍**,至少區分:
97
+ 當確認無法支援併發時,各套件須於 README 明確宣告其原子性保證的**適用範圍**,至少區分:
100
98
 
101
99
  - **單一行程內併發**:同一行程內多個並行呼叫。
102
100
  - **跨行程併發**:多個行程操作同一資料庫。
@@ -271,29 +269,21 @@ T8 已完成:README 已宣告單一行程內保證成立、跨行程因 `lmdb-
271
269
 
272
270
  ### w-orm-mongodb
273
271
 
274
- 規格有更新,套件待確認與更新
275
-
276
- <!--
277
- 主鍵欄位為 `id`,為無業務語義之識別碼,適用 T6 之補值規定。
278
-
279
- 待處理:
280
-
281
- | 項目 | 現況 | 規格 |
282
- |---|---|---|
283
- | 單筆直讀函數名稱 | `selectById` | 依 T1 改名為 `selectByPk` |
284
- | GridFS 單筆直讀函數名稱 | `selectByIdGfs` | 比照改名為 `selectByPkGfs` |
272
+ 主鍵欄位為 `id`,為無業務語義之識別碼,適用 T6 之補值規定。主鍵欄位目前**固定為 `id`,尚未支援由呼叫端指定**,已於類別註解、`selectByPk` 註解與 README 載明。
285
273
 
286
- 除上述命名外,已符合 T2–T9 與六函數全部規格。
274
+ 已符合 T1–T9 與六函數全部規格,無待處理項目。
287
275
 
288
276
  `save` 之「內容相同」判定即本規格之基準來源:由 MongoDB 於伺服器端將 `$set` 之待寫入物件合併進現值後與現值比對,未寫入即回 `modifiedCount` 為 `0`,比對與寫入於同一原子操作內完成,故不須預讀。
289
277
 
290
278
  T7 之原子性以主鍵之唯一索引達成,索引一律建立且無關閉選項;README 已載明既有資料表尚存重複主鍵時之清除步驟。
291
279
 
292
- T8 已完成:README 已宣告單一行程內與跨行程併發皆成立,並附實測依據(含 2 個獨立行程對相同 20 個主鍵併發 `insert`、`nInserted` 總和為 20,以及 2 個行程對同一主鍵各寫入 20 個不同欄位、40 欄位全數保留)。
280
+ T8 無須宣告:單一行程內併發與跨行程併發皆成立,故依 §11 未於 README 宣告。原子性全由 MongoDB 伺服器端提供,本套件每次操作各自建立連線且不保有行程內狀態,故兩種範圍於後端為同一情形。已測試依據含 2 個獨立行程對相同 20 個主鍵併發 `insert`、`nInserted` 總和為 20 且資料表僅 20 筆,以及 2 個行程對同一主鍵各寫入 20 個不同欄位、40 欄位全數保留。
281
+
282
+ 本套件另有 GridFS 專屬函數 `selectByPkGfs`、`insertGfs`、`delGfs`、`delAllGfs`,依 §7 不在本規格範圍內,惟參數形狀與回傳結構皆已比照對應之六函數:數據物件為 `{ id, u8a }`,`insertGfs(data)` 收物件或陣列並回 `{ n, nInserted, ok }`、具「已存在則跳過」語義(以 `<cl>.files` 之 `filename` 唯一索引達成),`selectByPkGfs(pk)` 查無回 `null`,`delGfs(data)` 收物件或陣列並回等長陣列,`delAllGfs(find)` 回 `{ n, nDeleted, ok }`。
293
283
 
294
- 本套件另有 GridFS 專屬函數(現名 `selectByIdGfs`、`insertGfs`、`delGfs`、`delAllGfs`),依 §7 不在本規格範圍內,惟參數形狀與回傳結構皆已比照對應之六函數:數據物件為 `{ id, u8a }`,`insertGfs(data)` 收物件或陣列並回 `{ n, nInserted, ok }`、具「已存在則跳過」語義(以 `<cl>.files` `filename` 唯一索引達成),單筆直讀查無回 `null`,`delGfs(data)` 收物件或陣列並回等長陣列,`delAllGfs(find)` 回 `{ n, nDeleted, ok }`。
284
+ GridFS 之寫入係先寫 chunks 再寫 files 文件,故違反唯一索引時 chunks 已先行寫入,`insertGfs` 於攔得重複鍵錯誤後以該次之 `files_id` 清除所遺留之孤兒 chunks,並以測試斷言重複插入與併發插入後 files chunks 之增量皆為預期值。
295
285
 
296
- `save` 無 GridFS 對應函數:GridFS 無法於單一原子操作內取代既有內容,提供 `saveGfs` 將違反 T7,故不提供,更新以 `delGfs` 後再 `insertGfs` 完成。 -->
286
+ `save` 無 GridFS 對應函數:GridFS 無法於單一原子操作內取代既有內容,提供 `saveGfs` 將違反 T7,故不提供,更新以 `delGfs` 後再 `insertGfs` 完成。
297
287
 
298
288
  ### w-orm-postgresql
299
289