hikoutei 0.4.3 → 0.4.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.
- package/README.ja.md +155 -103
- package/README.ko.md +151 -107
- package/README.md +112 -80
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts +2 -2
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js +2 -2
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js.map +1 -1
- package/dist/api/Hikoutei.d.ts +56 -10
- package/dist/api/Hikoutei.d.ts.map +1 -1
- package/dist/api/Hikoutei.js +84 -13
- package/dist/api/Hikoutei.js.map +1 -1
- package/dist/api/entity.d.ts +17 -1
- package/dist/api/entity.d.ts.map +1 -1
- package/dist/api/entity.js +34 -2
- package/dist/api/entity.js.map +1 -1
- package/dist/api/errors.d.ts +24 -0
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +24 -0
- package/dist/api/errors.js.map +1 -1
- package/dist/application/orm/api/contracts.d.ts +1 -1
- package/dist/application/orm/api/contracts.d.ts.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.js +2 -0
- package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -1
- package/dist/application/sync/inbound/autoSystemConflictResolution.d.ts.map +1 -1
- package/dist/application/sync/inbound/autoSystemConflictResolution.js +3 -0
- package/dist/application/sync/inbound/autoSystemConflictResolution.js.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.js +85 -3
- package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
- package/dist/application/sync/service/syncAutoStart.d.ts +127 -0
- package/dist/application/sync/service/syncAutoStart.d.ts.map +1 -0
- package/dist/application/sync/service/syncAutoStart.js +280 -0
- package/dist/application/sync/service/syncAutoStart.js.map +1 -0
- package/dist/application/sync/sheets/conflictProjectionRegistration.d.ts.map +1 -1
- package/dist/application/sync/sheets/conflictProjectionRegistration.js +1 -0
- package/dist/application/sync/sheets/conflictProjectionRegistration.js.map +1 -1
- package/dist/infrastructure/storage/index.d.ts +2 -2
- package/dist/infrastructure/storage/index.d.ts.map +1 -1
- package/dist/infrastructure/storage/index.js +1 -1
- package/dist/infrastructure/storage/index.js.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceContext.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceContext.js +1 -0
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceContext.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,11 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
# Hikoutei
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Keep your app fast with SQLite. Keep your workflow visible in Google Sheets.**
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
A typed repository and safe write layer for Google Sheets-backed MVPs: your
|
|
10
|
+
application reads and writes local SQLite through typed entities, and committed
|
|
11
|
+
changes are asynchronously projected to Google Sheets for human review and
|
|
12
|
+
lightweight collaboration.
|
|
13
|
+
|
|
14
|
+
<a href="https://www.npmjs.com/package/hikoutei">npm</a> ·
|
|
15
|
+
<a href="docs/quick-start.md">Quick start</a> ·
|
|
16
|
+
<a href="https://github.com/ManddarinShop/Hikoutei/issues">Issues</a>
|
|
12
17
|
|
|
13
18
|
[](https://www.npmjs.com/package/hikoutei)
|
|
14
19
|
[](LICENSE)
|
|
@@ -16,44 +21,23 @@
|
|
|
16
21
|
|
|
17
22
|
</div>
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
human-friendly part of an MVP or internal workflow. Your application works
|
|
21
|
-
with typed entities and local SQLite; changes can be delivered to Google
|
|
22
|
-
Sheets asynchronously through a service-account Google Sheets provider.
|
|
23
|
-
|
|
24
|
-
Hikoutei is intentionally focused. It is not a general-purpose database
|
|
25
|
-
replacement, a Prisma/JPA clone, or a general Google Sheets API wrapper.
|
|
24
|
+
## What is Hikoutei?
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
Hikoutei gives TypeScript applications a typed entity API backed by local
|
|
27
|
+
SQLite, then asynchronously synchronizes committed changes to Google Sheets.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- Local SQLite reads for application workflows that should not wait on a remote
|
|
33
|
-
spreadsheet request.
|
|
34
|
-
- Asynchronous Google Sheets views for human review and lightweight
|
|
35
|
-
collaboration.
|
|
36
|
-
- Protection against common spreadsheet problems such as unexpected schema
|
|
37
|
-
changes and accidentally overwriting newer changes.
|
|
38
|
-
|
|
39
|
-
## Installation
|
|
40
|
-
|
|
41
|
-
The project and npm package are both called `hikoutei`.
|
|
42
|
-
|
|
43
|
-
```sh
|
|
44
|
-
npm install hikoutei @mikro-orm/core @mikro-orm/sql
|
|
45
|
-
```
|
|
29
|
+
Your application does not wait on Google Sheets for normal reads and writes.
|
|
30
|
+
Sheets remains available for inspection, operations, and lightweight human
|
|
31
|
+
collaboration.
|
|
46
32
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
33
|
+
> Hikoutei is not a raw Sheets API wrapper, not a replacement for PostgreSQL,
|
|
34
|
+
> and it does not treat Google Sheets as the authoritative application
|
|
35
|
+
> database. SQLite is the source of truth; Sheets is the human-facing view.
|
|
50
36
|
|
|
51
37
|
## Quick start
|
|
52
38
|
|
|
53
39
|
Define a scalar entity and use the local SQLite authority through a
|
|
54
|
-
request-local manager.
|
|
55
|
-
polling belong to the internal service bootstrap rather than the application
|
|
56
|
-
API.
|
|
40
|
+
request-local manager.
|
|
57
41
|
|
|
58
42
|
```ts
|
|
59
43
|
import { createTypedSheets, defineTypedSheetsEntity } from "hikoutei";
|
|
@@ -81,11 +65,20 @@ user.name = "Ada Lovelace";
|
|
|
81
65
|
await em.flush();
|
|
82
66
|
```
|
|
83
67
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
68
|
+
**What happens to the Sheet?** The write commits to local SQLite immediately —
|
|
69
|
+
the application request never waits on Google. When the sync service is
|
|
70
|
+
enabled, Hikoutei later projects the entity to the registered Google Sheet in
|
|
71
|
+
the background. Human edits made in the sheet are observed, validated, and
|
|
72
|
+
either accepted back into SQLite or recorded as conflicts, never silently
|
|
73
|
+
overwritten.
|
|
74
|
+
|
|
75
|
+
## Why Hikoutei?
|
|
76
|
+
|
|
77
|
+
- Define typed entities instead of manually converting Sheet rows.
|
|
78
|
+
- Read and write through local SQLite without waiting for Google Sheets.
|
|
79
|
+
- Synchronize committed changes to Sheets in the background.
|
|
80
|
+
- Detect unexpected column changes and duplicate headers.
|
|
81
|
+
- Avoid overwriting newer Sheet edits during conflicting updates.
|
|
89
82
|
|
|
90
83
|
## When to use Hikoutei
|
|
91
84
|
|
|
@@ -108,56 +101,88 @@ Use a conventional database and direct Google APIs when you need:
|
|
|
108
101
|
- Immediate read-after-write consistency in Google Sheets.
|
|
109
102
|
- Google Sheets to be the primary database for the application.
|
|
110
103
|
|
|
104
|
+
## Is Hikoutei the right abstraction for you?
|
|
105
|
+
|
|
106
|
+
Hikoutei does not replace `google-spreadsheet` or `@googleapis/sheets` — it
|
|
107
|
+
sits one level above them. If you only need raw spreadsheet access, use the API
|
|
108
|
+
client directly.
|
|
109
|
+
|
|
110
|
+
| Capability | Hikoutei | google-spreadsheet | @googleapis/sheets |
|
|
111
|
+
| --- | :-: | :-: | :-: |
|
|
112
|
+
| Typed entity model | ✅ | ❌ | ❌ |
|
|
113
|
+
| Fast local application reads | ✅ | ❌ | ❌ |
|
|
114
|
+
| Async projection to Sheets | ✅ | ❌ | ❌ |
|
|
115
|
+
| Durable write retry and deduplication | ✅ | ❌ | ❌ |
|
|
116
|
+
| Conflict-aware Sheet updates | ✅ | ❌ | ❌ |
|
|
117
|
+
| Direct row and cell manipulation | Limited | ✅ | ✅ |
|
|
118
|
+
| Full Google Sheets API access | Provider only | Partial | ✅ |
|
|
119
|
+
|
|
111
120
|
## Google Sheets setup
|
|
112
121
|
|
|
113
122
|
Google Sheets synchronization is a service-side concern. Applications do not
|
|
114
|
-
import a provider client, pass Sheet routes to `createTypedSheets()`,
|
|
115
|
-
|
|
123
|
+
import a provider client, pass Sheet routes to `createTypedSheets()`, or choose
|
|
124
|
+
an operation for each write. The sync runtime uses one Google Sheets API
|
|
125
|
+
provider (the internal `googleSheetsApi` bootstrap option) with a service
|
|
126
|
+
account — no Apps Script deployment.
|
|
127
|
+
|
|
128
|
+
### Env-driven sync auto-start
|
|
129
|
+
|
|
130
|
+
Set the spreadsheet URL in the environment and `createTypedSheets()` starts
|
|
131
|
+
the Sheets sync internally — `flush()` then flows to Google Sheets through
|
|
132
|
+
the outbox worker with no per-call setup:
|
|
133
|
+
|
|
134
|
+
```sh
|
|
135
|
+
HIKOUTEI_SYNC_SPREADSHEET_URL=https://docs.google.com/spreadsheets/d/<ID>/edit
|
|
136
|
+
GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service-account.json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
const hikoutei = await createTypedSheets({ dbName: "./hikoutei.sqlite", entities: [User] });
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Without `HIKOUTEI_SYNC_SPREADSHEET_URL`, `createTypedSheets()` stays
|
|
144
|
+
local-only (SQLite). Startup failures are diagnosed with clear messages:
|
|
145
|
+
invalid URL, missing/invalid credentials file, or a service account not
|
|
146
|
+
shared on the spreadsheet (the error tells you which email to share).
|
|
116
147
|
|
|
117
148
|
### Service-account provider (googleSheetsApi)
|
|
118
149
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
`
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
is not enough. Enable the Google Sheets API for the Cloud project.
|
|
130
|
-
2. Keep the service-account key file path in
|
|
131
|
-
`GOOGLE_APPLICATION_CREDENTIALS` on the server, and the spreadsheet ID in
|
|
132
|
-
an untracked secret store. Never put the key in browser code or Git.
|
|
133
|
-
3. Start the internal sync bootstrap with `googleSheetsApi` configured. It
|
|
150
|
+
1. **Create a service account.** Enable the Google Sheets API in a Cloud
|
|
151
|
+
project, create a service account with the
|
|
152
|
+
`https://www.googleapis.com/auth/spreadsheets` scope, and share the target
|
|
153
|
+
spreadsheet with its email as an **Editor**. The provider creates tabs,
|
|
154
|
+
writes effect rows and receipt records, and manages row anchors, so Viewer
|
|
155
|
+
access is not enough.
|
|
156
|
+
2. **Keep the key server-side.** Put the service-account key path in
|
|
157
|
+
`GOOGLE_APPLICATION_CREDENTIALS` on the server and the spreadsheet ID in an
|
|
158
|
+
untracked secret store. Never put the key in browser code or Git.
|
|
159
|
+
3. **Start the internal sync bootstrap** with `googleSheetsApi` configured. It
|
|
134
160
|
creates and verifies headers on the registered tabs, then starts outbox
|
|
135
161
|
delivery and User_Input polling.
|
|
136
162
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
The tracked live scenario runs through this provider. The 10,000-row append
|
|
148
|
-
and update/delete live evidence recorded in
|
|
149
|
-
[docs/sync-bulk-write-benchmark.md](docs/sync-bulk-write-benchmark.md) uses
|
|
150
|
-
the same REST path; the raw-transport experiments under `scripts/bench/`
|
|
151
|
-
measure the unguarded API path (no receipts, no compare-and-set), so treat
|
|
152
|
-
any throughput number as unverified until it is measured through the full
|
|
153
|
-
worker. Live Google calls are opt-in; fake providers and SQLite fixtures are
|
|
154
|
-
the normal verification path.
|
|
155
|
-
|
|
156
|
-
The previous Apps Script gateway and the `appsScript`/`googleApiWorker`
|
|
157
|
-
options were removed; the service-account provider above is the only sync
|
|
158
|
-
path. The detailed setup and troubleshooting steps are in the
|
|
163
|
+
Hikoutei uses a durable local outbox, idempotent delivery, and conflict-aware
|
|
164
|
+
updates so temporary API failures do not lose committed application writes. The
|
|
165
|
+
provider never logs credentials, spreadsheet IDs, URLs, or payloads, and it
|
|
166
|
+
spaces request starts to stay inside Google's quota windows. See the
|
|
167
|
+
[internal consistency model](docs/internal-consistency-model.md) for the
|
|
168
|
+
detailed state machine and recovery rules.
|
|
169
|
+
|
|
170
|
+
Live Google calls are opt-in; fake providers and SQLite fixtures are the normal
|
|
171
|
+
verification path. The detailed setup and troubleshooting steps are in the
|
|
159
172
|
[Quick start](docs/quick-start.md).
|
|
160
173
|
|
|
174
|
+
## Installation
|
|
175
|
+
|
|
176
|
+
The project and npm package are both called `hikoutei`. The built-in SQLite
|
|
177
|
+
provider currently requires MikroORM:
|
|
178
|
+
|
|
179
|
+
```sh
|
|
180
|
+
npm install hikoutei @mikro-orm/core @mikro-orm/sql
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
MikroORM is an implementation detail and does not appear in Hikoutei's public
|
|
184
|
+
entity API.
|
|
185
|
+
|
|
161
186
|
## Documentation
|
|
162
187
|
|
|
163
188
|
- [Quick start](docs/quick-start.md) — installation, ORM lifecycle, and service-side sync setup.
|
|
@@ -165,6 +190,8 @@ path. The detailed setup and troubleshooting steps are in the
|
|
|
165
190
|
fit together.
|
|
166
191
|
- [Write and synchronization flow](docs/write-and-synchronization-flow.md) —
|
|
167
192
|
asynchronous delivery and recovery behavior.
|
|
193
|
+
- [Internal consistency model](docs/internal-consistency-model.md) — durable
|
|
194
|
+
outbox, idempotent delivery, and conflict-aware updates.
|
|
168
195
|
- [Development](docs/development.md) — local development and test commands.
|
|
169
196
|
- [Benchmark notes](docs/sync-bulk-write-benchmark.md) — dated measurements
|
|
170
197
|
and their limitations.
|
|
@@ -177,12 +204,17 @@ path. The detailed setup and troubleshooting steps are in the
|
|
|
177
204
|
- Schema changes, manual edits, and conflicting updates still need an
|
|
178
205
|
operational policy from the application.
|
|
179
206
|
|
|
207
|
+
## Project status
|
|
208
|
+
|
|
209
|
+
Hikoutei is in active development. The entity API is usable, while Sheet edit
|
|
210
|
+
ingestion and conflict presentation are still evolving. Review release notes
|
|
211
|
+
before upgrading minor versions.
|
|
212
|
+
|
|
180
213
|
## Roadmap
|
|
181
214
|
|
|
182
215
|
- Complete ingestion of intentional user edits from Google Sheets.
|
|
183
216
|
- Improve update/delete conflict handling and presentation.
|
|
184
217
|
- Add setup tooling for registry and direct provider deployment.
|
|
185
|
-
- Stabilize the public package release.
|
|
186
218
|
|
|
187
219
|
See the [open issues](https://github.com/ManddarinShop/Hikoutei/issues)
|
|
188
220
|
for current work.
|
package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* MikroORM bridge for applying accepted Sheet observations to mapped entities.
|
|
3
3
|
*
|
|
4
4
|
* It deliberately uses MikroORM's native write methods rather than the public
|
|
5
|
-
* Unit of Work
|
|
5
|
+
* Unit of Work. The observation has already created its canonical and
|
|
6
6
|
* outbox records, and replaying `onFlush` here would incorrectly schedule a
|
|
7
7
|
* second outbound Sheets projection.
|
|
8
8
|
*/
|
|
@@ -21,7 +21,7 @@ export interface PersistMappedObservedRowOptions {
|
|
|
21
21
|
* Persists a normalized observation and the matching MikroORM entity mutation
|
|
22
22
|
* in one SQLite transaction.
|
|
23
23
|
*
|
|
24
|
-
* Only a `persisted`
|
|
24
|
+
* Only a `persisted` observation with a present canonical commit can
|
|
25
25
|
* change the entity table. Duplicate, quarantined, stale, fenced-out, and
|
|
26
26
|
* conflict-only observations leave application entities untouched.
|
|
27
27
|
*/
|
package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* MikroORM bridge for applying accepted Sheet observations to mapped entities.
|
|
3
3
|
*
|
|
4
4
|
* It deliberately uses MikroORM's native write methods rather than the public
|
|
5
|
-
* Unit of Work
|
|
5
|
+
* Unit of Work. The observation has already created its canonical and
|
|
6
6
|
* outbox records, and replaying `onFlush` here would incorrectly schedule a
|
|
7
7
|
* second outbound Sheets projection.
|
|
8
8
|
*/
|
|
@@ -17,7 +17,7 @@ import { autoResolveMappedConflictsWithSql, } from "../../../../../application/s
|
|
|
17
17
|
* Persists a normalized observation and the matching MikroORM entity mutation
|
|
18
18
|
* in one SQLite transaction.
|
|
19
19
|
*
|
|
20
|
-
* Only a `persisted`
|
|
20
|
+
* Only a `persisted` observation with a present canonical commit can
|
|
21
21
|
* change the entity table. Duplicate, quarantined, stale, fenced-out, and
|
|
22
22
|
* conflict-only observations leave application entities untouched.
|
|
23
23
|
*/
|
package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js
CHANGED
|
@@ -224,6 +224,7 @@ async function retryDeferredConflicts(options, mappings, observedInputs = []) {
|
|
|
224
224
|
}
|
|
225
225
|
async function claimMappedInboundWriterLease(storage, writer) {
|
|
226
226
|
const now = writer.now();
|
|
227
|
+
// Mapped-role claim; mirror this site in expireRuntimeWriterLeases (SyncServiceBootstrap).
|
|
227
228
|
const claim = await claimWriterLeaseWithAdapter(storage, {
|
|
228
229
|
role: writer.role,
|
|
229
230
|
writerId: writer.writerId,
|
package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MikroOrmUserInputPolling.js","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MikroOrmUserInputPolling.js","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.ts"],"names":[],"mappings":"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"}
|
package/dist/api/Hikoutei.d.ts
CHANGED
|
@@ -2,19 +2,30 @@
|
|
|
2
2
|
* Public SQLite-authoritative Hikoutei runtime and the `createTypedSheets()` factory.
|
|
3
3
|
*
|
|
4
4
|
* This module intentionally knows nothing about Sheet routes or provider
|
|
5
|
-
* provisioning.
|
|
6
|
-
*
|
|
7
|
-
* application-
|
|
5
|
+
* provisioning. When `HIKOUTEI_SYNC_SPREADSHEET_URL` is set, the factory
|
|
6
|
+
* delegates to the internal sync auto-start bridge, which builds a mapped
|
|
7
|
+
* runtime and provisions the bound spreadsheet separately; the application-
|
|
8
|
+
* facing contract stays unchanged either way.
|
|
8
9
|
*/
|
|
9
10
|
import type { ScalarEntityPersistenceProvider } from "../adapter/persistence/contracts/scalar.js";
|
|
10
11
|
import type { EntityManager } from "./EntityManager.js";
|
|
11
12
|
import { HikouteiEntity, type ResolvedHikouteiEntityDescriptor } from "./entity.js";
|
|
12
13
|
/** Options for opening the local Hikoutei runtime. */
|
|
13
14
|
export interface CreateTypedSheetsOptions {
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
/**
|
|
16
|
+
* SQLite database path, URI, or `:memory:`.
|
|
17
|
+
*
|
|
18
|
+
* Defaults to the `HIKOUTEI_DB_PATH` environment variable when it is set to
|
|
19
|
+
* a non-empty value, otherwise `./hikoutei.sqlite`.
|
|
20
|
+
*/
|
|
21
|
+
readonly dbName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Entity tokens produced by `defineTypedSheetsEntity()`.
|
|
24
|
+
*
|
|
25
|
+
* Defaults to the entities registered by `defineTypedSheetsEntity()` at the
|
|
26
|
+
* time of the call, in registration order.
|
|
27
|
+
*/
|
|
28
|
+
readonly entities?: readonly HikouteiEntity[];
|
|
18
29
|
}
|
|
19
30
|
/**
|
|
20
31
|
* Root object for the local entity runtime.
|
|
@@ -32,11 +43,46 @@ export interface Hikoutei {
|
|
|
32
43
|
* without adding worker methods to the public `Hikoutei` contract.
|
|
33
44
|
*/
|
|
34
45
|
export declare function createInternalHikoutei(provider: ScalarEntityPersistenceProvider, descriptors: ReadonlyMap<string, ResolvedHikouteiEntityDescriptor>, beforeClose?: () => Promise<void>): Hikoutei;
|
|
46
|
+
/**
|
|
47
|
+
* Resolves the default SQLite path for a factory call that omits `dbName`.
|
|
48
|
+
*
|
|
49
|
+
* Prefers the `HIKOUTEI_DB_PATH` environment variable when it is set to a
|
|
50
|
+
* non-empty string, otherwise falls back to `./hikoutei.sqlite`. The `env`
|
|
51
|
+
* parameter defaults to `process.env` and exists so tests can exercise the
|
|
52
|
+
* precedence without mutating the process environment.
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveDefaultDbPath(env?: Readonly<Record<string, string | undefined>>): string;
|
|
55
|
+
/**
|
|
56
|
+
* Validates the public factory options before any runtime is constructed.
|
|
57
|
+
*
|
|
58
|
+
* Fields are optional; each one is validated only when it is provided. The
|
|
59
|
+
* registry/env defaults are applied afterwards by `createTypedSheets()`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function validateTypedSheetsOptions(options: CreateTypedSheetsOptions): void;
|
|
62
|
+
/**
|
|
63
|
+
* Opens the plain local-only SQLite runtime with no sync service.
|
|
64
|
+
*
|
|
65
|
+
* Internal construction hook shared by `createTypedSheets()` (env absent) and
|
|
66
|
+
* the sync auto-start bridge (env present but disabled). It deliberately loads
|
|
67
|
+
* the current provider lazily so importing the root package alone never
|
|
68
|
+
* requires MikroORM or the Google SDK module graph. Omitting `dbName` or
|
|
69
|
+
* `entities` here applies the same defaults as `createTypedSheets()`.
|
|
70
|
+
*/
|
|
71
|
+
export declare function createLocalTypedSheetsRuntime(options: CreateTypedSheetsOptions): Promise<Hikoutei>;
|
|
35
72
|
/**
|
|
36
73
|
* Opens the local SQLite runtime for the declared scalar entities.
|
|
37
74
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
75
|
+
* When `dbName` is omitted the `HIKOUTEI_DB_PATH` environment variable or
|
|
76
|
+
* `./hikoutei.sqlite` is used; when `entities` is omitted the tokens registered
|
|
77
|
+
* by `defineTypedSheetsEntity()` are used, in registration order.
|
|
78
|
+
*
|
|
79
|
+
* When `HIKOUTEI_SYNC_SPREADSHEET_URL` is set, the internal sync auto-start
|
|
80
|
+
* bridge provisions the spreadsheet, validates the service-account
|
|
81
|
+
* credentials file, and starts the outbound worker and User_Input polling
|
|
82
|
+
* before returning. Startup failures are classified into stable
|
|
83
|
+
* `HikouteiError` codes and fail closed. Without that env var this call never
|
|
84
|
+
* contacts Google Sheets, creates projection tables, or starts a worker, and
|
|
85
|
+
* the local-only behavior is byte-identical to previous releases.
|
|
40
86
|
*/
|
|
41
|
-
export declare function createTypedSheets(options
|
|
87
|
+
export declare function createTypedSheets(options?: CreateTypedSheetsOptions): Promise<Hikoutei>;
|
|
42
88
|
//# sourceMappingURL=Hikoutei.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hikoutei.d.ts","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Hikoutei.d.ts","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAGL,cAAc,EACd,KAAK,gCAAgC,EACtC,MAAM,aAAa,CAAC;AAQrB,sDAAsD;AACtD,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA2CD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,+BAA+B,EACzC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,gCAAgC,CAAC,EAClE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAChC,QAAQ,CAEV;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,GAC9D,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAmBlF;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,QAAQ,CAAC,CAmBnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,QAAQ,CAAC,CA8BnB"}
|
package/dist/api/Hikoutei.js
CHANGED
|
@@ -2,13 +2,18 @@
|
|
|
2
2
|
* Public SQLite-authoritative Hikoutei runtime and the `createTypedSheets()` factory.
|
|
3
3
|
*
|
|
4
4
|
* This module intentionally knows nothing about Sheet routes or provider
|
|
5
|
-
* provisioning.
|
|
6
|
-
*
|
|
7
|
-
* application-
|
|
5
|
+
* provisioning. When `HIKOUTEI_SYNC_SPREADSHEET_URL` is set, the factory
|
|
6
|
+
* delegates to the internal sync auto-start bridge, which builds a mapped
|
|
7
|
+
* runtime and provisions the bound spreadsheet separately; the application-
|
|
8
|
+
* facing contract stays unchanged either way.
|
|
8
9
|
*/
|
|
9
10
|
import { createEntityManager } from "./internalEntityManager.js";
|
|
10
11
|
import { HIKOUTEI_ERROR_CODES, HikouteiError } from "./errors.js";
|
|
11
|
-
import { getEntityDescriptor, HikouteiEntity, } from "./entity.js";
|
|
12
|
+
import { getEntityDescriptor, getRegisteredEntityTokens, HikouteiEntity, } from "./entity.js";
|
|
13
|
+
/** Environment variable that supplies the default SQLite path. */
|
|
14
|
+
const HIKOUTEI_DB_PATH_ENV = "HIKOUTEI_DB_PATH";
|
|
15
|
+
/** SQLite path used when neither `dbName` nor the env var is set. */
|
|
16
|
+
const DEFAULT_DB_PATH = "./hikoutei.sqlite";
|
|
12
17
|
class HikouteiImpl {
|
|
13
18
|
provider;
|
|
14
19
|
beforeClose;
|
|
@@ -53,22 +58,50 @@ export function createInternalHikoutei(provider, descriptors, beforeClose) {
|
|
|
53
58
|
return new HikouteiImpl(provider, descriptors, beforeClose);
|
|
54
59
|
}
|
|
55
60
|
/**
|
|
56
|
-
*
|
|
61
|
+
* Resolves the default SQLite path for a factory call that omits `dbName`.
|
|
62
|
+
*
|
|
63
|
+
* Prefers the `HIKOUTEI_DB_PATH` environment variable when it is set to a
|
|
64
|
+
* non-empty string, otherwise falls back to `./hikoutei.sqlite`. The `env`
|
|
65
|
+
* parameter defaults to `process.env` and exists so tests can exercise the
|
|
66
|
+
* precedence without mutating the process environment.
|
|
67
|
+
*/
|
|
68
|
+
export function resolveDefaultDbPath(env = process.env) {
|
|
69
|
+
const fromEnv = env[HIKOUTEI_DB_PATH_ENV];
|
|
70
|
+
if (typeof fromEnv === "string" && fromEnv.trim() !== "") {
|
|
71
|
+
return fromEnv.trim();
|
|
72
|
+
}
|
|
73
|
+
return DEFAULT_DB_PATH;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Validates the public factory options before any runtime is constructed.
|
|
57
77
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
78
|
+
* Fields are optional; each one is validated only when it is provided. The
|
|
79
|
+
* registry/env defaults are applied afterwards by `createTypedSheets()`.
|
|
60
80
|
*/
|
|
61
|
-
export
|
|
81
|
+
export function validateTypedSheetsOptions(options) {
|
|
62
82
|
if (options === null || typeof options !== "object") {
|
|
63
83
|
throw new HikouteiError(HIKOUTEI_ERROR_CODES.INVALID_ENTITY_DESCRIPTOR, "createTypedSheets() options must be an object.");
|
|
64
84
|
}
|
|
65
|
-
if (typeof options.dbName !== "string" || options.dbName.trim() === "") {
|
|
85
|
+
if (options.dbName !== undefined && (typeof options.dbName !== "string" || options.dbName.trim() === "")) {
|
|
66
86
|
throw new HikouteiError(HIKOUTEI_ERROR_CODES.INVALID_ENTITY_DESCRIPTOR, "createTypedSheets() dbName must be a non-empty string.");
|
|
67
87
|
}
|
|
68
|
-
if (!Array.isArray(options.entities)) {
|
|
88
|
+
if (options.entities !== undefined && !Array.isArray(options.entities)) {
|
|
69
89
|
throw new HikouteiError(HIKOUTEI_ERROR_CODES.INVALID_ENTITY_DESCRIPTOR, "createTypedSheets() entities must be an array.");
|
|
70
90
|
}
|
|
71
|
-
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Opens the plain local-only SQLite runtime with no sync service.
|
|
94
|
+
*
|
|
95
|
+
* Internal construction hook shared by `createTypedSheets()` (env absent) and
|
|
96
|
+
* the sync auto-start bridge (env present but disabled). It deliberately loads
|
|
97
|
+
* the current provider lazily so importing the root package alone never
|
|
98
|
+
* requires MikroORM or the Google SDK module graph. Omitting `dbName` or
|
|
99
|
+
* `entities` here applies the same defaults as `createTypedSheets()`.
|
|
100
|
+
*/
|
|
101
|
+
export async function createLocalTypedSheetsRuntime(options) {
|
|
102
|
+
const dbName = options.dbName ?? resolveDefaultDbPath();
|
|
103
|
+
const entities = options.entities ?? getRegisteredEntityTokens();
|
|
104
|
+
const descriptors = resolveRuntimeDescriptors(entities);
|
|
72
105
|
// Load the current provider only when a runtime is opened. Importing the
|
|
73
106
|
// root package alone must not require MikroORM or expose its module graph.
|
|
74
107
|
const [engineModule, providerModule, runtimeModule] = await Promise.all([
|
|
@@ -76,15 +109,53 @@ export async function createTypedSheets(options) {
|
|
|
76
109
|
import("../adapter/persistence/providers/mikro-orm/api/MikroOrmScalarPersistenceProvider.js"),
|
|
77
110
|
import("../adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.js"),
|
|
78
111
|
]);
|
|
79
|
-
const generated = runtimeModule.createMikroOrmScalarEntityRuntime(
|
|
112
|
+
const generated = runtimeModule.createMikroOrmScalarEntityRuntime(entities);
|
|
80
113
|
const orm = await engineModule.initializeTypedSheetsOrm({
|
|
81
|
-
dbName
|
|
114
|
+
dbName,
|
|
82
115
|
entities: generated.entities,
|
|
83
116
|
flushCoordinator: { onFlush: async () => undefined },
|
|
84
117
|
});
|
|
85
118
|
const provider = new providerModule.MikroOrmScalarPersistenceProvider(orm, generated.bindings);
|
|
86
119
|
return createInternalHikoutei(provider, descriptors);
|
|
87
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Opens the local SQLite runtime for the declared scalar entities.
|
|
123
|
+
*
|
|
124
|
+
* When `dbName` is omitted the `HIKOUTEI_DB_PATH` environment variable or
|
|
125
|
+
* `./hikoutei.sqlite` is used; when `entities` is omitted the tokens registered
|
|
126
|
+
* by `defineTypedSheetsEntity()` are used, in registration order.
|
|
127
|
+
*
|
|
128
|
+
* When `HIKOUTEI_SYNC_SPREADSHEET_URL` is set, the internal sync auto-start
|
|
129
|
+
* bridge provisions the spreadsheet, validates the service-account
|
|
130
|
+
* credentials file, and starts the outbound worker and User_Input polling
|
|
131
|
+
* before returning. Startup failures are classified into stable
|
|
132
|
+
* `HikouteiError` codes and fail closed. Without that env var this call never
|
|
133
|
+
* contacts Google Sheets, creates projection tables, or starts a worker, and
|
|
134
|
+
* the local-only behavior is byte-identical to previous releases.
|
|
135
|
+
*/
|
|
136
|
+
export async function createTypedSheets(options = {}) {
|
|
137
|
+
validateTypedSheetsOptions(options);
|
|
138
|
+
const dbName = options.dbName ?? resolveDefaultDbPath();
|
|
139
|
+
const entities = options.entities ?? getRegisteredEntityTokens();
|
|
140
|
+
if (options.entities === undefined && entities.length === 0) {
|
|
141
|
+
throw new HikouteiError(HIKOUTEI_ERROR_CODES.INVALID_ENTITY_DESCRIPTOR, "createTypedSheets() requires at least one entity; pass `entities` or call defineTypedSheetsEntity() before opening the runtime.");
|
|
142
|
+
}
|
|
143
|
+
const spreadsheetUrl = process.env.HIKOUTEI_SYNC_SPREADSHEET_URL;
|
|
144
|
+
if (spreadsheetUrl === undefined || spreadsheetUrl.trim() === "") {
|
|
145
|
+
// Env absent: the exact local-only path. The sync module graph (MikroORM
|
|
146
|
+
// and the Google SDK) is never imported here.
|
|
147
|
+
return createLocalTypedSheetsRuntime({ dbName, entities });
|
|
148
|
+
}
|
|
149
|
+
// Env present: delegate to the internal sync auto-start bridge. The dynamic
|
|
150
|
+
// import keeps the module graph out of the env-absent path.
|
|
151
|
+
const { createTypedSheetsWithSync } = await import("../application/sync/service/syncAutoStart.js");
|
|
152
|
+
const result = await createTypedSheetsWithSync({
|
|
153
|
+
dbName,
|
|
154
|
+
entities: [...entities],
|
|
155
|
+
env: process.env,
|
|
156
|
+
});
|
|
157
|
+
return result.hikoutei;
|
|
158
|
+
}
|
|
88
159
|
/** Validates name/table uniqueness and indexes descriptors by entity name. */
|
|
89
160
|
function resolveRuntimeDescriptors(entities) {
|
|
90
161
|
const descriptors = new Map();
|
package/dist/api/Hikoutei.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hikoutei.js","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Hikoutei.js","sourceRoot":"","sources":["../../src/api/Hikoutei.ts"],"names":[],"mappings":"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"}
|