@owlmeans/web-db 0.1.18-rc.11 → 0.1.18-rc.13
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 +1 -1
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/web-db/SKILL.md +26 -8
- package/build/service.d.ts.map +1 -1
- package/build/service.js +1 -1
- package/build/service.js.map +1 -1
- package/package.json +4 -4
- package/src/service.ts +2 -2
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ Registers the DB service in the context.
|
|
|
52
52
|
### `WebDbService`
|
|
53
53
|
|
|
54
54
|
Extends `ClientDbService` with `initialize(alias?)` returning a `ClientDb`:
|
|
55
|
-
- `get<T>(id): Promise<T>`
|
|
55
|
+
- `get<T>(id): Promise<T | undefined>` — a miss is `undefined`, not an error
|
|
56
56
|
- `set<T>(id, value): Promise<void>`
|
|
57
57
|
- `has(id): Promise<boolean>`
|
|
58
58
|
- `del(id): Promise<boolean>`
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/web-db",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-09-
|
|
4
|
+
"version": "0.1.18-rc.13",
|
|
5
|
+
"generatedAt": "2026-09-01T17:39:40.763Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -8,24 +8,42 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/web-db
|
|
9
9
|
|
|
10
10
|
**Layer:** Web (React)
|
|
11
|
-
**Install:** `"@owlmeans/web-db": "^0.1.18-rc.
|
|
11
|
+
**Install:** `"@owlmeans/web-db": "^0.1.18-rc.13"` in `dependencies`
|
|
12
12
|
|
|
13
13
|
## Key Exports
|
|
14
14
|
|
|
15
15
|
| Export | Description |
|
|
16
16
|
|--------|-------------|
|
|
17
|
-
| `
|
|
18
|
-
|
|
|
19
|
-
|
|
|
17
|
+
| `appendWebDbService(context, alias?)` | Register the service on a client context and return the context |
|
|
18
|
+
| `makeWebDbService(alias?)` | The bare service, when you register it yourself |
|
|
19
|
+
| `WebDbService` | The `ClientDbService` contract from [[client-resource]] — `initialize(alias?)`, `erase()` |
|
|
20
|
+
| `DEFAULT_ALIAS` | `client-db`, the same alias `@owlmeans/client-resource` looks for |
|
|
20
21
|
|
|
21
22
|
## Usage
|
|
22
23
|
|
|
23
24
|
```typescript
|
|
24
|
-
import {
|
|
25
|
-
|
|
25
|
+
import { appendWebDbService } from '@owlmeans/web-db'
|
|
26
|
+
import { appendClientResource } from '@owlmeans/client-resource'
|
|
27
|
+
|
|
28
|
+
appendWebDbService(context)
|
|
29
|
+
appendClientResource<Config, Context, Project>(context, 'projects')
|
|
26
30
|
```
|
|
27
31
|
|
|
32
|
+
This package supplies the **storage**, not the query surface: it hands
|
|
33
|
+
`@owlmeans/client-resource` a `ClientDb` over `idb-keyval`, and that resource is what answers
|
|
34
|
+
`get`/`load`/`list`/`count`/`create`/`update`/`save`/`delete`/`take`/`purge`, criteria and `{ sort }`
|
|
35
|
+
included. Reads are unpaged — the whole store is walked to answer a criteria — and `size: 0` says
|
|
36
|
+
so explicitly.
|
|
37
|
+
|
|
38
|
+
`initialize(alias)` returns one `ClientDb` per alias, memoised, and prefixes every key with that
|
|
39
|
+
alias, so two resources on one browser never collide. `erase()` clears the **whole** IndexedDB
|
|
40
|
+
store, every alias at once — a per-resource wipe is `ClientResource.erase()`.
|
|
41
|
+
|
|
28
42
|
## Depends On
|
|
29
43
|
|
|
30
|
-
- `@owlmeans/client-resource`, `@owlmeans/client-context`
|
|
31
|
-
-
|
|
44
|
+
- `@owlmeans/client-resource`, `@owlmeans/client-context`, `@owlmeans/context`
|
|
45
|
+
- `idb-keyval` (runtime) — IndexedDB behind it
|
|
46
|
+
|
|
47
|
+
## Related
|
|
48
|
+
|
|
49
|
+
- [[client-resource]] — the resource this service backs
|
package/build/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE3E,KAAK,MAAM,GAAG,YAAY,CAAA;AAC1B,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;CAAI;AAEzE,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE3E,KAAK,MAAM,GAAG,YAAY,CAAA;AAC1B,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;CAAI;AAEzE,eAAO,MAAM,gBAAgB,GAAI,QAAO,MAAsB,KAAG,YA8ChE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACpF,SAAS,CAAC,EAAE,QAAO,MAAsB,KACxC,CAMF,CAAA"}
|
package/build/service.js
CHANGED
package/build/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,aAAa,EAAgB,EAAE;IAC9E,MAAM,MAAM,GAA6B,EAAE,CAAA;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAe,KAAK,EAAE;QACjD,UAAU,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACxB,KAAK,GAAG,KAAK,IAAI,aAAa,CAAA;YAE9B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAA;YAE7C,MAAM,EAAE,GAAa;gBACnB,GAAG,EAAE,KAAK,EAAK,EAAU,EAAE,EAAE;oBAC3B,OAAO,MAAM,GAAG,CAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC/B,CAAC;gBAED,GAAG,EAAE,KAAK,EAAK,EAAU,EAAE,KAAQ,EAAE,EAAE;oBACrC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC5B,CAAC;gBAED,GAAG,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;oBACd,OAAO,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;gBACpC,CAAC;gBAED,GAAG,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;oBACd,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBAC5B,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;oBACrB,CAAC;oBAED,OAAO,GAAG,CAAA;gBACZ,CAAC;aACF,CAAA;YAED,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC3B,CAAC;QAED,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,KAAK,EAAE,CAAA;QACf,CAAC;KACF,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAU,EAAE,QAAgB,aAAa,EACtC,EAAE;IACL,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAEvC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAEhC,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/web-db",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@owlmeans/client-context": "^0.1.18-rc.
|
|
25
|
-
"@owlmeans/client-resource": "^0.1.18-rc.
|
|
26
|
-
"@owlmeans/context": "^0.1.18-rc.
|
|
24
|
+
"@owlmeans/client-context": "^0.1.18-rc.12",
|
|
25
|
+
"@owlmeans/client-resource": "^0.1.18-rc.12",
|
|
26
|
+
"@owlmeans/context": "^0.1.18-rc.7",
|
|
27
27
|
"idb-keyval": "^6.2.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
package/src/service.ts
CHANGED
|
@@ -22,7 +22,7 @@ export const makeWebDbService = (alias: string = DEFAULT_ALIAS): WebDbService =>
|
|
|
22
22
|
|
|
23
23
|
const db: ClientDb = {
|
|
24
24
|
get: async <T>(id: string) => {
|
|
25
|
-
return await get(_key(id))
|
|
25
|
+
return await get<T>(_key(id))
|
|
26
26
|
},
|
|
27
27
|
|
|
28
28
|
set: async <T>(id: string, value: T) => {
|
|
@@ -47,7 +47,7 @@ export const makeWebDbService = (alias: string = DEFAULT_ALIAS): WebDbService =>
|
|
|
47
47
|
},
|
|
48
48
|
|
|
49
49
|
erase: async () => {
|
|
50
|
-
clear()
|
|
50
|
+
await clear()
|
|
51
51
|
}
|
|
52
52
|
}, service => async () => {
|
|
53
53
|
service.initialized = true
|