anchordb 0.2.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/CHANGELOG.md +61 -0
- package/LICENSE +21 -0
- package/README.md +160 -0
- package/dist/cjs/conflict/strategies.d.ts +110 -0
- package/dist/cjs/conflict/strategies.d.ts.map +1 -0
- package/dist/cjs/conflict/strategies.js +298 -0
- package/dist/cjs/conflict/strategies.js.map +1 -0
- package/dist/cjs/conflict/types.d.ts +38 -0
- package/dist/cjs/conflict/types.d.ts.map +1 -0
- package/dist/cjs/conflict/types.js +3 -0
- package/dist/cjs/conflict/types.js.map +1 -0
- package/dist/cjs/core/anchor-db.d.ts +154 -0
- package/dist/cjs/core/anchor-db.d.ts.map +1 -0
- package/dist/cjs/core/anchor-db.js +273 -0
- package/dist/cjs/core/anchor-db.js.map +1 -0
- package/dist/cjs/core/errors.d.ts +125 -0
- package/dist/cjs/core/errors.d.ts.map +1 -0
- package/dist/cjs/core/errors.js +174 -0
- package/dist/cjs/core/errors.js.map +1 -0
- package/dist/cjs/core/hex.d.ts +4 -0
- package/dist/cjs/core/hex.d.ts.map +1 -0
- package/dist/cjs/core/hex.js +41 -0
- package/dist/cjs/core/hex.js.map +1 -0
- package/dist/cjs/core/hlc.d.ts +96 -0
- package/dist/cjs/core/hlc.d.ts.map +1 -0
- package/dist/cjs/core/hlc.js +161 -0
- package/dist/cjs/core/hlc.js.map +1 -0
- package/dist/cjs/core/object-id.d.ts +38 -0
- package/dist/cjs/core/object-id.d.ts.map +1 -0
- package/dist/cjs/core/object-id.js +167 -0
- package/dist/cjs/core/object-id.js.map +1 -0
- package/dist/cjs/core/random.d.ts +6 -0
- package/dist/cjs/core/random.d.ts.map +1 -0
- package/dist/cjs/core/random.js +39 -0
- package/dist/cjs/core/random.js.map +1 -0
- package/dist/cjs/core/runtime.d.ts +96 -0
- package/dist/cjs/core/runtime.d.ts.map +1 -0
- package/dist/cjs/core/runtime.js +3 -0
- package/dist/cjs/core/runtime.js.map +1 -0
- package/dist/cjs/core/uuid.d.ts +16 -0
- package/dist/cjs/core/uuid.d.ts.map +1 -0
- package/dist/cjs/core/uuid.js +37 -0
- package/dist/cjs/core/uuid.js.map +1 -0
- package/dist/cjs/decorators/index.d.ts +48 -0
- package/dist/cjs/decorators/index.d.ts.map +1 -0
- package/dist/cjs/decorators/index.js +295 -0
- package/dist/cjs/decorators/index.js.map +1 -0
- package/dist/cjs/events/emitter.d.ts +16 -0
- package/dist/cjs/events/emitter.d.ts.map +1 -0
- package/dist/cjs/events/emitter.js +56 -0
- package/dist/cjs/events/emitter.js.map +1 -0
- package/dist/cjs/index/keys.d.ts +79 -0
- package/dist/cjs/index/keys.d.ts.map +1 -0
- package/dist/cjs/index/keys.js +208 -0
- package/dist/cjs/index/keys.js.map +1 -0
- package/dist/cjs/index.d.ts +81 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +193 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/inspector/agent.d.ts +75 -0
- package/dist/cjs/inspector/agent.d.ts.map +1 -0
- package/dist/cjs/inspector/agent.js +520 -0
- package/dist/cjs/inspector/agent.js.map +1 -0
- package/dist/cjs/inspector/auth.d.ts +49 -0
- package/dist/cjs/inspector/auth.d.ts.map +1 -0
- package/dist/cjs/inspector/auth.js +234 -0
- package/dist/cjs/inspector/auth.js.map +1 -0
- package/dist/cjs/inspector/bridge.d.ts +141 -0
- package/dist/cjs/inspector/bridge.d.ts.map +1 -0
- package/dist/cjs/inspector/bridge.js +190 -0
- package/dist/cjs/inspector/bridge.js.map +1 -0
- package/dist/cjs/inspector/client.d.ts +111 -0
- package/dist/cjs/inspector/client.d.ts.map +1 -0
- package/dist/cjs/inspector/client.js +218 -0
- package/dist/cjs/inspector/client.js.map +1 -0
- package/dist/cjs/inspector/protocol.d.ts +160 -0
- package/dist/cjs/inspector/protocol.d.ts.map +1 -0
- package/dist/cjs/inspector/protocol.js +53 -0
- package/dist/cjs/inspector/protocol.js.map +1 -0
- package/dist/cjs/inspector/transports/in-process.d.ts +7 -0
- package/dist/cjs/inspector/transports/in-process.d.ts.map +1 -0
- package/dist/cjs/inspector/transports/in-process.js +58 -0
- package/dist/cjs/inspector/transports/in-process.js.map +1 -0
- package/dist/cjs/inspector/transports/websocket.d.ts +39 -0
- package/dist/cjs/inspector/transports/websocket.d.ts.map +1 -0
- package/dist/cjs/inspector/transports/websocket.js +60 -0
- package/dist/cjs/inspector/transports/websocket.js.map +1 -0
- package/dist/cjs/interop/csv.d.ts +53 -0
- package/dist/cjs/interop/csv.d.ts.map +1 -0
- package/dist/cjs/interop/csv.js +230 -0
- package/dist/cjs/interop/csv.js.map +1 -0
- package/dist/cjs/interop/ejson.d.ts +41 -0
- package/dist/cjs/interop/ejson.d.ts.map +1 -0
- package/dist/cjs/interop/ejson.js +182 -0
- package/dist/cjs/interop/ejson.js.map +1 -0
- package/dist/cjs/interop/export-import.d.ts +98 -0
- package/dist/cjs/interop/export-import.d.ts.map +1 -0
- package/dist/cjs/interop/export-import.js +222 -0
- package/dist/cjs/interop/export-import.js.map +1 -0
- package/dist/cjs/model/document.d.ts +66 -0
- package/dist/cjs/model/document.d.ts.map +1 -0
- package/dist/cjs/model/document.js +302 -0
- package/dist/cjs/model/document.js.map +1 -0
- package/dist/cjs/model/model.d.ts +178 -0
- package/dist/cjs/model/model.d.ts.map +1 -0
- package/dist/cjs/model/model.js +823 -0
- package/dist/cjs/model/model.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/query/aggregation/expressions.d.ts +34 -0
- package/dist/cjs/query/aggregation/expressions.d.ts.map +1 -0
- package/dist/cjs/query/aggregation/expressions.js +552 -0
- package/dist/cjs/query/aggregation/expressions.js.map +1 -0
- package/dist/cjs/query/aggregation/pipeline.d.ts +79 -0
- package/dist/cjs/query/aggregation/pipeline.d.ts.map +1 -0
- package/dist/cjs/query/aggregation/pipeline.js +597 -0
- package/dist/cjs/query/aggregation/pipeline.js.map +1 -0
- package/dist/cjs/query/aggregation/source.d.ts +35 -0
- package/dist/cjs/query/aggregation/source.d.ts.map +1 -0
- package/dist/cjs/query/aggregation/source.js +81 -0
- package/dist/cjs/query/aggregation/source.js.map +1 -0
- package/dist/cjs/query/builder/query.d.ts +113 -0
- package/dist/cjs/query/builder/query.d.ts.map +1 -0
- package/dist/cjs/query/builder/query.js +215 -0
- package/dist/cjs/query/builder/query.js.map +1 -0
- package/dist/cjs/query/filter.d.ts +50 -0
- package/dist/cjs/query/filter.d.ts.map +1 -0
- package/dist/cjs/query/filter.js +275 -0
- package/dist/cjs/query/filter.js.map +1 -0
- package/dist/cjs/query/path.d.ts +41 -0
- package/dist/cjs/query/path.d.ts.map +1 -0
- package/dist/cjs/query/path.js +294 -0
- package/dist/cjs/query/path.js.map +1 -0
- package/dist/cjs/query/update.d.ts +30 -0
- package/dist/cjs/query/update.d.ts.map +1 -0
- package/dist/cjs/query/update.js +205 -0
- package/dist/cjs/query/update.js.map +1 -0
- package/dist/cjs/reactive/live-query.d.ts +41 -0
- package/dist/cjs/reactive/live-query.d.ts.map +1 -0
- package/dist/cjs/reactive/live-query.js +88 -0
- package/dist/cjs/reactive/live-query.js.map +1 -0
- package/dist/cjs/schema/cast.d.ts +38 -0
- package/dist/cjs/schema/cast.d.ts.map +1 -0
- package/dist/cjs/schema/cast.js +280 -0
- package/dist/cjs/schema/cast.js.map +1 -0
- package/dist/cjs/schema/index.d.ts +5 -0
- package/dist/cjs/schema/index.d.ts.map +1 -0
- package/dist/cjs/schema/index.js +27 -0
- package/dist/cjs/schema/index.js.map +1 -0
- package/dist/cjs/schema/schema.d.ts +58 -0
- package/dist/cjs/schema/schema.d.ts.map +1 -0
- package/dist/cjs/schema/schema.js +363 -0
- package/dist/cjs/schema/schema.js.map +1 -0
- package/dist/cjs/schema/types.d.ts +144 -0
- package/dist/cjs/schema/types.d.ts.map +1 -0
- package/dist/cjs/schema/types.js +20 -0
- package/dist/cjs/schema/types.js.map +1 -0
- package/dist/cjs/schema/validate.d.ts +15 -0
- package/dist/cjs/schema/validate.d.ts.map +1 -0
- package/dist/cjs/schema/validate.js +101 -0
- package/dist/cjs/schema/validate.js.map +1 -0
- package/dist/cjs/storage/adapters/capacitor-sqlite.d.ts +67 -0
- package/dist/cjs/storage/adapters/capacitor-sqlite.d.ts.map +1 -0
- package/dist/cjs/storage/adapters/capacitor-sqlite.js +69 -0
- package/dist/cjs/storage/adapters/capacitor-sqlite.js.map +1 -0
- package/dist/cjs/storage/adapters/expo-sqlite.d.ts +55 -0
- package/dist/cjs/storage/adapters/expo-sqlite.d.ts.map +1 -0
- package/dist/cjs/storage/adapters/expo-sqlite.js +53 -0
- package/dist/cjs/storage/adapters/expo-sqlite.js.map +1 -0
- package/dist/cjs/storage/adapters/indexeddb.d.ts +55 -0
- package/dist/cjs/storage/adapters/indexeddb.d.ts.map +1 -0
- package/dist/cjs/storage/adapters/indexeddb.js +393 -0
- package/dist/cjs/storage/adapters/indexeddb.js.map +1 -0
- package/dist/cjs/storage/adapters/memory.d.ts +44 -0
- package/dist/cjs/storage/adapters/memory.d.ts.map +1 -0
- package/dist/cjs/storage/adapters/memory.js +286 -0
- package/dist/cjs/storage/adapters/memory.js.map +1 -0
- package/dist/cjs/storage/adapters/node-sqlite.d.ts +59 -0
- package/dist/cjs/storage/adapters/node-sqlite.d.ts.map +1 -0
- package/dist/cjs/storage/adapters/node-sqlite.js +457 -0
- package/dist/cjs/storage/adapters/node-sqlite.js.map +1 -0
- package/dist/cjs/storage/adapters/sql-base.d.ts +84 -0
- package/dist/cjs/storage/adapters/sql-base.d.ts.map +1 -0
- package/dist/cjs/storage/adapters/sql-base.js +393 -0
- package/dist/cjs/storage/adapters/sql-base.js.map +1 -0
- package/dist/cjs/storage/types.d.ts +131 -0
- package/dist/cjs/storage/types.d.ts.map +1 -0
- package/dist/cjs/storage/types.js +3 -0
- package/dist/cjs/storage/types.js.map +1 -0
- package/dist/cjs/sync/adapters/rest.d.ts +31 -0
- package/dist/cjs/sync/adapters/rest.d.ts.map +1 -0
- package/dist/cjs/sync/adapters/rest.js +75 -0
- package/dist/cjs/sync/adapters/rest.js.map +1 -0
- package/dist/cjs/sync/attach.d.ts +30 -0
- package/dist/cjs/sync/attach.d.ts.map +1 -0
- package/dist/cjs/sync/attach.js +104 -0
- package/dist/cjs/sync/attach.js.map +1 -0
- package/dist/cjs/sync/engine.d.ts +96 -0
- package/dist/cjs/sync/engine.d.ts.map +1 -0
- package/dist/cjs/sync/engine.js +491 -0
- package/dist/cjs/sync/engine.js.map +1 -0
- package/dist/cjs/sync/protocol.d.ts +128 -0
- package/dist/cjs/sync/protocol.d.ts.map +1 -0
- package/dist/cjs/sync/protocol.js +38 -0
- package/dist/cjs/sync/protocol.js.map +1 -0
- package/dist/cjs/sync/queue.d.ts +77 -0
- package/dist/cjs/sync/queue.d.ts.map +1 -0
- package/dist/cjs/sync/queue.js +245 -0
- package/dist/cjs/sync/queue.js.map +1 -0
- package/dist/cjs/sync/server/memory-server.d.ts +65 -0
- package/dist/cjs/sync/server/memory-server.d.ts.map +1 -0
- package/dist/cjs/sync/server/memory-server.js +193 -0
- package/dist/cjs/sync/server/memory-server.js.map +1 -0
- package/dist/cjs/timestamps/index.d.ts +47 -0
- package/dist/cjs/timestamps/index.d.ts.map +1 -0
- package/dist/cjs/timestamps/index.js +88 -0
- package/dist/cjs/timestamps/index.js.map +1 -0
- package/dist/cjs/timestamps/timezone.d.ts +65 -0
- package/dist/cjs/timestamps/timezone.d.ts.map +1 -0
- package/dist/cjs/timestamps/timezone.js +208 -0
- package/dist/cjs/timestamps/timezone.js.map +1 -0
- package/dist/esm/conflict/strategies.d.ts +110 -0
- package/dist/esm/conflict/strategies.d.ts.map +1 -0
- package/dist/esm/conflict/strategies.js +289 -0
- package/dist/esm/conflict/strategies.js.map +1 -0
- package/dist/esm/conflict/types.d.ts +38 -0
- package/dist/esm/conflict/types.d.ts.map +1 -0
- package/dist/esm/conflict/types.js +2 -0
- package/dist/esm/conflict/types.js.map +1 -0
- package/dist/esm/core/anchor-db.d.ts +154 -0
- package/dist/esm/core/anchor-db.d.ts.map +1 -0
- package/dist/esm/core/anchor-db.js +269 -0
- package/dist/esm/core/anchor-db.js.map +1 -0
- package/dist/esm/core/errors.d.ts +125 -0
- package/dist/esm/core/errors.d.ts.map +1 -0
- package/dist/esm/core/errors.js +161 -0
- package/dist/esm/core/errors.js.map +1 -0
- package/dist/esm/core/hex.d.ts +4 -0
- package/dist/esm/core/hex.d.ts.map +1 -0
- package/dist/esm/core/hex.js +37 -0
- package/dist/esm/core/hex.js.map +1 -0
- package/dist/esm/core/hlc.d.ts +96 -0
- package/dist/esm/core/hlc.d.ts.map +1 -0
- package/dist/esm/core/hlc.js +153 -0
- package/dist/esm/core/hlc.js.map +1 -0
- package/dist/esm/core/object-id.d.ts +38 -0
- package/dist/esm/core/object-id.d.ts.map +1 -0
- package/dist/esm/core/object-id.js +163 -0
- package/dist/esm/core/object-id.js.map +1 -0
- package/dist/esm/core/random.d.ts +6 -0
- package/dist/esm/core/random.d.ts.map +1 -0
- package/dist/esm/core/random.js +34 -0
- package/dist/esm/core/random.js.map +1 -0
- package/dist/esm/core/runtime.d.ts +96 -0
- package/dist/esm/core/runtime.d.ts.map +1 -0
- package/dist/esm/core/runtime.js +2 -0
- package/dist/esm/core/runtime.js.map +1 -0
- package/dist/esm/core/uuid.d.ts +16 -0
- package/dist/esm/core/uuid.d.ts.map +1 -0
- package/dist/esm/core/uuid.js +33 -0
- package/dist/esm/core/uuid.js.map +1 -0
- package/dist/esm/decorators/index.d.ts +48 -0
- package/dist/esm/decorators/index.d.ts.map +1 -0
- package/dist/esm/decorators/index.js +286 -0
- package/dist/esm/decorators/index.js.map +1 -0
- package/dist/esm/events/emitter.d.ts +16 -0
- package/dist/esm/events/emitter.d.ts.map +1 -0
- package/dist/esm/events/emitter.js +52 -0
- package/dist/esm/events/emitter.js.map +1 -0
- package/dist/esm/index/keys.d.ts +79 -0
- package/dist/esm/index/keys.d.ts.map +1 -0
- package/dist/esm/index/keys.js +198 -0
- package/dist/esm/index/keys.js.map +1 -0
- package/dist/esm/index.d.ts +81 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +59 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/inspector/agent.d.ts +75 -0
- package/dist/esm/inspector/agent.d.ts.map +1 -0
- package/dist/esm/inspector/agent.js +482 -0
- package/dist/esm/inspector/agent.js.map +1 -0
- package/dist/esm/inspector/auth.d.ts +49 -0
- package/dist/esm/inspector/auth.d.ts.map +1 -0
- package/dist/esm/inspector/auth.js +228 -0
- package/dist/esm/inspector/auth.js.map +1 -0
- package/dist/esm/inspector/bridge.d.ts +141 -0
- package/dist/esm/inspector/bridge.d.ts.map +1 -0
- package/dist/esm/inspector/bridge.js +182 -0
- package/dist/esm/inspector/bridge.js.map +1 -0
- package/dist/esm/inspector/client.d.ts +111 -0
- package/dist/esm/inspector/client.d.ts.map +1 -0
- package/dist/esm/inspector/client.js +213 -0
- package/dist/esm/inspector/client.js.map +1 -0
- package/dist/esm/inspector/protocol.d.ts +160 -0
- package/dist/esm/inspector/protocol.d.ts.map +1 -0
- package/dist/esm/inspector/protocol.js +43 -0
- package/dist/esm/inspector/protocol.js.map +1 -0
- package/dist/esm/inspector/transports/in-process.d.ts +7 -0
- package/dist/esm/inspector/transports/in-process.d.ts.map +1 -0
- package/dist/esm/inspector/transports/in-process.js +55 -0
- package/dist/esm/inspector/transports/in-process.js.map +1 -0
- package/dist/esm/inspector/transports/websocket.d.ts +39 -0
- package/dist/esm/inspector/transports/websocket.d.ts.map +1 -0
- package/dist/esm/inspector/transports/websocket.js +56 -0
- package/dist/esm/inspector/transports/websocket.js.map +1 -0
- package/dist/esm/interop/csv.d.ts +53 -0
- package/dist/esm/interop/csv.d.ts.map +1 -0
- package/dist/esm/interop/csv.js +222 -0
- package/dist/esm/interop/csv.js.map +1 -0
- package/dist/esm/interop/ejson.d.ts +41 -0
- package/dist/esm/interop/ejson.d.ts.map +1 -0
- package/dist/esm/interop/ejson.js +176 -0
- package/dist/esm/interop/ejson.js.map +1 -0
- package/dist/esm/interop/export-import.d.ts +98 -0
- package/dist/esm/interop/export-import.d.ts.map +1 -0
- package/dist/esm/interop/export-import.js +210 -0
- package/dist/esm/interop/export-import.js.map +1 -0
- package/dist/esm/model/document.d.ts +66 -0
- package/dist/esm/model/document.d.ts.map +1 -0
- package/dist/esm/model/document.js +297 -0
- package/dist/esm/model/document.js.map +1 -0
- package/dist/esm/model/model.d.ts +178 -0
- package/dist/esm/model/model.d.ts.map +1 -0
- package/dist/esm/model/model.js +815 -0
- package/dist/esm/model/model.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/query/aggregation/expressions.d.ts +34 -0
- package/dist/esm/query/aggregation/expressions.d.ts.map +1 -0
- package/dist/esm/query/aggregation/expressions.js +545 -0
- package/dist/esm/query/aggregation/expressions.js.map +1 -0
- package/dist/esm/query/aggregation/pipeline.d.ts +79 -0
- package/dist/esm/query/aggregation/pipeline.d.ts.map +1 -0
- package/dist/esm/query/aggregation/pipeline.js +591 -0
- package/dist/esm/query/aggregation/pipeline.js.map +1 -0
- package/dist/esm/query/aggregation/source.d.ts +35 -0
- package/dist/esm/query/aggregation/source.d.ts.map +1 -0
- package/dist/esm/query/aggregation/source.js +77 -0
- package/dist/esm/query/aggregation/source.js.map +1 -0
- package/dist/esm/query/builder/query.d.ts +113 -0
- package/dist/esm/query/builder/query.d.ts.map +1 -0
- package/dist/esm/query/builder/query.js +209 -0
- package/dist/esm/query/builder/query.js.map +1 -0
- package/dist/esm/query/filter.d.ts +50 -0
- package/dist/esm/query/filter.d.ts.map +1 -0
- package/dist/esm/query/filter.js +267 -0
- package/dist/esm/query/filter.js.map +1 -0
- package/dist/esm/query/path.d.ts +41 -0
- package/dist/esm/query/path.d.ts.map +1 -0
- package/dist/esm/query/path.js +282 -0
- package/dist/esm/query/path.js.map +1 -0
- package/dist/esm/query/update.d.ts +30 -0
- package/dist/esm/query/update.d.ts.map +1 -0
- package/dist/esm/query/update.js +198 -0
- package/dist/esm/query/update.js.map +1 -0
- package/dist/esm/reactive/live-query.d.ts +41 -0
- package/dist/esm/reactive/live-query.d.ts.map +1 -0
- package/dist/esm/reactive/live-query.js +83 -0
- package/dist/esm/reactive/live-query.js.map +1 -0
- package/dist/esm/schema/cast.d.ts +38 -0
- package/dist/esm/schema/cast.d.ts.map +1 -0
- package/dist/esm/schema/cast.js +275 -0
- package/dist/esm/schema/cast.js.map +1 -0
- package/dist/esm/schema/index.d.ts +5 -0
- package/dist/esm/schema/index.d.ts.map +1 -0
- package/dist/esm/schema/index.js +5 -0
- package/dist/esm/schema/index.js.map +1 -0
- package/dist/esm/schema/schema.d.ts +58 -0
- package/dist/esm/schema/schema.d.ts.map +1 -0
- package/dist/esm/schema/schema.js +358 -0
- package/dist/esm/schema/schema.js.map +1 -0
- package/dist/esm/schema/types.d.ts +144 -0
- package/dist/esm/schema/types.d.ts.map +1 -0
- package/dist/esm/schema/types.js +17 -0
- package/dist/esm/schema/types.js.map +1 -0
- package/dist/esm/schema/validate.d.ts +15 -0
- package/dist/esm/schema/validate.d.ts.map +1 -0
- package/dist/esm/schema/validate.js +98 -0
- package/dist/esm/schema/validate.js.map +1 -0
- package/dist/esm/storage/adapters/capacitor-sqlite.d.ts +67 -0
- package/dist/esm/storage/adapters/capacitor-sqlite.d.ts.map +1 -0
- package/dist/esm/storage/adapters/capacitor-sqlite.js +65 -0
- package/dist/esm/storage/adapters/capacitor-sqlite.js.map +1 -0
- package/dist/esm/storage/adapters/expo-sqlite.d.ts +55 -0
- package/dist/esm/storage/adapters/expo-sqlite.d.ts.map +1 -0
- package/dist/esm/storage/adapters/expo-sqlite.js +49 -0
- package/dist/esm/storage/adapters/expo-sqlite.js.map +1 -0
- package/dist/esm/storage/adapters/indexeddb.d.ts +55 -0
- package/dist/esm/storage/adapters/indexeddb.d.ts.map +1 -0
- package/dist/esm/storage/adapters/indexeddb.js +389 -0
- package/dist/esm/storage/adapters/indexeddb.js.map +1 -0
- package/dist/esm/storage/adapters/memory.d.ts +44 -0
- package/dist/esm/storage/adapters/memory.d.ts.map +1 -0
- package/dist/esm/storage/adapters/memory.js +282 -0
- package/dist/esm/storage/adapters/memory.js.map +1 -0
- package/dist/esm/storage/adapters/node-sqlite.d.ts +59 -0
- package/dist/esm/storage/adapters/node-sqlite.d.ts.map +1 -0
- package/dist/esm/storage/adapters/node-sqlite.js +450 -0
- package/dist/esm/storage/adapters/node-sqlite.js.map +1 -0
- package/dist/esm/storage/adapters/sql-base.d.ts +84 -0
- package/dist/esm/storage/adapters/sql-base.d.ts.map +1 -0
- package/dist/esm/storage/adapters/sql-base.js +383 -0
- package/dist/esm/storage/adapters/sql-base.js.map +1 -0
- package/dist/esm/storage/types.d.ts +131 -0
- package/dist/esm/storage/types.d.ts.map +1 -0
- package/dist/esm/storage/types.js +2 -0
- package/dist/esm/storage/types.js.map +1 -0
- package/dist/esm/sync/adapters/rest.d.ts +31 -0
- package/dist/esm/sync/adapters/rest.d.ts.map +1 -0
- package/dist/esm/sync/adapters/rest.js +71 -0
- package/dist/esm/sync/adapters/rest.js.map +1 -0
- package/dist/esm/sync/attach.d.ts +30 -0
- package/dist/esm/sync/attach.d.ts.map +1 -0
- package/dist/esm/sync/attach.js +98 -0
- package/dist/esm/sync/attach.js.map +1 -0
- package/dist/esm/sync/engine.d.ts +96 -0
- package/dist/esm/sync/engine.d.ts.map +1 -0
- package/dist/esm/sync/engine.js +487 -0
- package/dist/esm/sync/engine.js.map +1 -0
- package/dist/esm/sync/protocol.d.ts +128 -0
- package/dist/esm/sync/protocol.d.ts.map +1 -0
- package/dist/esm/sync/protocol.js +33 -0
- package/dist/esm/sync/protocol.js.map +1 -0
- package/dist/esm/sync/queue.d.ts +77 -0
- package/dist/esm/sync/queue.d.ts.map +1 -0
- package/dist/esm/sync/queue.js +241 -0
- package/dist/esm/sync/queue.js.map +1 -0
- package/dist/esm/sync/server/memory-server.d.ts +65 -0
- package/dist/esm/sync/server/memory-server.d.ts.map +1 -0
- package/dist/esm/sync/server/memory-server.js +189 -0
- package/dist/esm/sync/server/memory-server.js.map +1 -0
- package/dist/esm/timestamps/index.d.ts +47 -0
- package/dist/esm/timestamps/index.d.ts.map +1 -0
- package/dist/esm/timestamps/index.js +70 -0
- package/dist/esm/timestamps/index.js.map +1 -0
- package/dist/esm/timestamps/timezone.d.ts +65 -0
- package/dist/esm/timestamps/timezone.d.ts.map +1 -0
- package/dist/esm/timestamps/timezone.js +196 -0
- package/dist/esm/timestamps/timezone.js.map +1 -0
- package/package.json +163 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { type AuthenticateResult, type BulkWriteSummary, type CollectionSummary, type ConflictRecord, type ConnectResult, type DocumentPage, type InspectorCapability, type InspectorError, type InspectorEventName, type InspectorMethod, type InspectorStats, type InspectorTransport } from "./protocol.js";
|
|
2
|
+
/**
|
|
3
|
+
* The client half of the protocol — what Anchor Lens talks through.
|
|
4
|
+
*
|
|
5
|
+
* Lives in `anchordb` rather than in Lens so both ends are compiled from one definition of the
|
|
6
|
+
* protocol. A Lens built against a mismatched copy would fail in ways neither side could explain.
|
|
7
|
+
*/
|
|
8
|
+
export declare class InspectorClientError extends Error {
|
|
9
|
+
readonly code: InspectorError["code"];
|
|
10
|
+
readonly details: Record<string, unknown> | undefined;
|
|
11
|
+
constructor(error: InspectorError);
|
|
12
|
+
}
|
|
13
|
+
export interface InspectorClientOptions {
|
|
14
|
+
transport: InspectorTransport;
|
|
15
|
+
/** How long to wait for a response before failing the call. */
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
clientName?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class InspectorClient {
|
|
20
|
+
private readonly transport;
|
|
21
|
+
private readonly timeoutMs;
|
|
22
|
+
private readonly clientName;
|
|
23
|
+
private readonly pending;
|
|
24
|
+
private readonly listeners;
|
|
25
|
+
private detach;
|
|
26
|
+
private sessionToken;
|
|
27
|
+
private capabilitiesValue;
|
|
28
|
+
private connectionValue;
|
|
29
|
+
constructor(options: InspectorClientOptions);
|
|
30
|
+
get connection(): ConnectResult | null;
|
|
31
|
+
get capabilities(): InspectorCapability[];
|
|
32
|
+
/** Lens greys out features the agent does not advertise rather than failing on use. */
|
|
33
|
+
can(capability: InspectorCapability): boolean;
|
|
34
|
+
call<T = unknown>(method: InspectorMethod, params?: Record<string, unknown>): Promise<T>;
|
|
35
|
+
connect(): Promise<ConnectResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Complete pairing.
|
|
38
|
+
*
|
|
39
|
+
* The pairing code is never transmitted — only an HMAC proof over the agent's challenge — so a
|
|
40
|
+
* captured frame cannot be replayed to pair a second client.
|
|
41
|
+
*/
|
|
42
|
+
authenticate(pairingCode: string, challenge: string): Promise<AuthenticateResult>;
|
|
43
|
+
on(event: InspectorEventName, listener: (payload: unknown) => void): () => void;
|
|
44
|
+
getDatabases(): Promise<{
|
|
45
|
+
name: string;
|
|
46
|
+
syncEnabled: boolean;
|
|
47
|
+
}[]>;
|
|
48
|
+
getCollections(): Promise<CollectionSummary[]>;
|
|
49
|
+
getStats(): Promise<InspectorStats>;
|
|
50
|
+
getIndexes(collection: string): Promise<unknown[]>;
|
|
51
|
+
getDocuments(params: {
|
|
52
|
+
collection: string;
|
|
53
|
+
filter?: Record<string, unknown>;
|
|
54
|
+
sort?: unknown;
|
|
55
|
+
skip?: number;
|
|
56
|
+
limit?: number;
|
|
57
|
+
}): Promise<DocumentPage>;
|
|
58
|
+
getDocument(collection: string, documentId: string): Promise<Record<string, unknown>>;
|
|
59
|
+
/** How many documents match — what a bulk dialog shows before you confirm it. */
|
|
60
|
+
countDocuments(collection: string, filter?: Record<string, unknown>): Promise<number>;
|
|
61
|
+
insertDocument(collection: string, document: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
62
|
+
updateDocument(collection: string, documentId: string, update: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
63
|
+
deleteDocument(collection: string, documentId: string): Promise<{
|
|
64
|
+
deletedCount: number;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Update every document matching `filter` (Compass's bulk "Update").
|
|
68
|
+
*
|
|
69
|
+
* `update` must use operators — `{ $set: { status: "active" } }`. Pass `all: true` only to
|
|
70
|
+
* confirm an intentionally empty filter, which means every document in the collection.
|
|
71
|
+
*
|
|
72
|
+
* Requires the `documents:bulk` capability; check `can("documents:bulk")` first, since an app
|
|
73
|
+
* running core < 0.2.0 does not implement it.
|
|
74
|
+
*/
|
|
75
|
+
updateMany(collection: string, filter: Record<string, unknown>, update: Record<string, unknown>, options?: {
|
|
76
|
+
all?: boolean;
|
|
77
|
+
}): Promise<BulkWriteSummary>;
|
|
78
|
+
/** Delete every document matching `filter` (Compass's bulk "Delete"). See {@link updateMany}. */
|
|
79
|
+
deleteMany(collection: string, filter: Record<string, unknown>, options?: {
|
|
80
|
+
all?: boolean;
|
|
81
|
+
}): Promise<BulkWriteSummary>;
|
|
82
|
+
aggregate(collection: string, pipeline: unknown[]): Promise<unknown[]>;
|
|
83
|
+
explain(collection: string, pipeline: unknown[]): Promise<unknown>;
|
|
84
|
+
getSyncStatus(): Promise<Record<string, unknown>>;
|
|
85
|
+
getMutations(): Promise<Record<string, unknown>[]>;
|
|
86
|
+
retryMutation(mutationId: string): Promise<{
|
|
87
|
+
retried: boolean;
|
|
88
|
+
}>;
|
|
89
|
+
triggerSync(): Promise<unknown>;
|
|
90
|
+
getConflicts(): Promise<ConflictRecord[]>;
|
|
91
|
+
resolveConflict(conflictId: string, document: Record<string, unknown>): Promise<unknown>;
|
|
92
|
+
exportCollection(collection: string, options?: Record<string, unknown>): Promise<{
|
|
93
|
+
data: string;
|
|
94
|
+
count: number;
|
|
95
|
+
format: string;
|
|
96
|
+
}>;
|
|
97
|
+
importCollection(collection: string, data: string, options?: Record<string, unknown>): Promise<{
|
|
98
|
+
collection: string;
|
|
99
|
+
inserted: number;
|
|
100
|
+
updated: number;
|
|
101
|
+
skipped: number;
|
|
102
|
+
}>;
|
|
103
|
+
subscribe(): Promise<{
|
|
104
|
+
subscribed: boolean;
|
|
105
|
+
}>;
|
|
106
|
+
unsubscribe(): Promise<{
|
|
107
|
+
subscribed: boolean;
|
|
108
|
+
}>;
|
|
109
|
+
close(): void;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/inspector/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InspectorClient = exports.InspectorClientError = void 0;
|
|
4
|
+
const uuid_ts_1 = require("../core/uuid.js");
|
|
5
|
+
const auth_ts_1 = require("./auth.js");
|
|
6
|
+
const protocol_ts_1 = require("./protocol.js");
|
|
7
|
+
/**
|
|
8
|
+
* The client half of the protocol — what Anchor Lens talks through.
|
|
9
|
+
*
|
|
10
|
+
* Lives in `anchordb` rather than in Lens so both ends are compiled from one definition of the
|
|
11
|
+
* protocol. A Lens built against a mismatched copy would fail in ways neither side could explain.
|
|
12
|
+
*/
|
|
13
|
+
class InspectorClientError extends Error {
|
|
14
|
+
constructor(error) {
|
|
15
|
+
super(error.message);
|
|
16
|
+
this.name = "InspectorClientError";
|
|
17
|
+
this.code = error.code;
|
|
18
|
+
this.details = error.details;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.InspectorClientError = InspectorClientError;
|
|
22
|
+
class InspectorClient {
|
|
23
|
+
constructor(options) {
|
|
24
|
+
this.pending = new Map();
|
|
25
|
+
this.listeners = new Map();
|
|
26
|
+
this.sessionToken = null;
|
|
27
|
+
this.capabilitiesValue = [];
|
|
28
|
+
this.connectionValue = null;
|
|
29
|
+
this.transport = options.transport;
|
|
30
|
+
this.timeoutMs = options.timeoutMs ?? 15_000;
|
|
31
|
+
this.clientName = options.clientName ?? "Anchor Lens";
|
|
32
|
+
this.detach = this.transport.onMessage((message) => {
|
|
33
|
+
if ((0, protocol_ts_1.isResponse)(message)) {
|
|
34
|
+
const entry = this.pending.get(message.id);
|
|
35
|
+
if (!entry)
|
|
36
|
+
return;
|
|
37
|
+
clearTimeout(entry.timer);
|
|
38
|
+
this.pending.delete(message.id);
|
|
39
|
+
if (message.error)
|
|
40
|
+
entry.reject(new InspectorClientError(message.error));
|
|
41
|
+
else
|
|
42
|
+
entry.resolve(message.result);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if ((0, protocol_ts_1.isEvent)(message)) {
|
|
46
|
+
for (const listener of this.listeners.get(message.event) ?? [])
|
|
47
|
+
listener(message.payload);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
get connection() {
|
|
52
|
+
return this.connectionValue;
|
|
53
|
+
}
|
|
54
|
+
get capabilities() {
|
|
55
|
+
return this.capabilitiesValue;
|
|
56
|
+
}
|
|
57
|
+
/** Lens greys out features the agent does not advertise rather than failing on use. */
|
|
58
|
+
can(capability) {
|
|
59
|
+
return this.capabilitiesValue.includes(capability);
|
|
60
|
+
}
|
|
61
|
+
async call(method, params = {}) {
|
|
62
|
+
const id = (0, uuid_ts_1.uuidv7)();
|
|
63
|
+
const withSession = this.sessionToken ? { ...params, sessionToken: this.sessionToken } : params;
|
|
64
|
+
return new Promise((resolve, reject) => {
|
|
65
|
+
const timer = setTimeout(() => {
|
|
66
|
+
this.pending.delete(id);
|
|
67
|
+
reject(new Error(`Inspector call "${method}" timed out after ${this.timeoutMs}ms`));
|
|
68
|
+
}, this.timeoutMs);
|
|
69
|
+
this.pending.set(id, { resolve: resolve, reject, timer });
|
|
70
|
+
void this.transport.send((0, protocol_ts_1.makeRequest)(id, method, withSession));
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
async connect() {
|
|
74
|
+
const result = await this.call("connect");
|
|
75
|
+
if (result.protocolVersion !== protocol_ts_1.INSPECTOR_PROTOCOL_VERSION) {
|
|
76
|
+
// Reported rather than thrown: an older agent is still usable for the methods it has, and
|
|
77
|
+
// refusing outright would make Lens useless against any app that had not upgraded.
|
|
78
|
+
// eslint-disable-next-line no-console
|
|
79
|
+
console.warn(`[anchor/lens] agent speaks protocol v${result.protocolVersion}, this client speaks ` +
|
|
80
|
+
`v${protocol_ts_1.INSPECTOR_PROTOCOL_VERSION}. Features outside the shared capability set are unavailable.`);
|
|
81
|
+
}
|
|
82
|
+
this.connectionValue = result;
|
|
83
|
+
this.capabilitiesValue = result.capabilities;
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Complete pairing.
|
|
88
|
+
*
|
|
89
|
+
* The pairing code is never transmitted — only an HMAC proof over the agent's challenge — so a
|
|
90
|
+
* captured frame cannot be replayed to pair a second client.
|
|
91
|
+
*/
|
|
92
|
+
async authenticate(pairingCode, challenge) {
|
|
93
|
+
const proof = auth_ts_1.InspectorAuth.proofFor(pairingCode, challenge);
|
|
94
|
+
const result = await this.call("authenticate", {
|
|
95
|
+
proof,
|
|
96
|
+
clientName: this.clientName,
|
|
97
|
+
});
|
|
98
|
+
this.sessionToken = result.sessionToken;
|
|
99
|
+
this.capabilitiesValue = result.capabilities;
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
on(event, listener) {
|
|
103
|
+
let set = this.listeners.get(event);
|
|
104
|
+
if (!set) {
|
|
105
|
+
set = new Set();
|
|
106
|
+
this.listeners.set(event, set);
|
|
107
|
+
}
|
|
108
|
+
set.add(listener);
|
|
109
|
+
return () => set.delete(listener);
|
|
110
|
+
}
|
|
111
|
+
// ---- typed convenience wrappers ------------------------------------------
|
|
112
|
+
getDatabases() {
|
|
113
|
+
return this.call("getDatabases");
|
|
114
|
+
}
|
|
115
|
+
getCollections() {
|
|
116
|
+
return this.call("getCollections");
|
|
117
|
+
}
|
|
118
|
+
getStats() {
|
|
119
|
+
return this.call("getStats");
|
|
120
|
+
}
|
|
121
|
+
getIndexes(collection) {
|
|
122
|
+
return this.call("getIndexes", { collection });
|
|
123
|
+
}
|
|
124
|
+
getDocuments(params) {
|
|
125
|
+
return this.call("getDocuments", params);
|
|
126
|
+
}
|
|
127
|
+
getDocument(collection, documentId) {
|
|
128
|
+
return this.call("getDocument", { collection, documentId });
|
|
129
|
+
}
|
|
130
|
+
/** How many documents match — what a bulk dialog shows before you confirm it. */
|
|
131
|
+
countDocuments(collection, filter = {}) {
|
|
132
|
+
return this.call("countDocuments", { collection, filter });
|
|
133
|
+
}
|
|
134
|
+
insertDocument(collection, document) {
|
|
135
|
+
return this.call("insertDocument", { collection, document });
|
|
136
|
+
}
|
|
137
|
+
updateDocument(collection, documentId, update) {
|
|
138
|
+
return this.call("updateDocument", { collection, documentId, update });
|
|
139
|
+
}
|
|
140
|
+
deleteDocument(collection, documentId) {
|
|
141
|
+
return this.call("deleteDocument", { collection, documentId });
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Update every document matching `filter` (Compass's bulk "Update").
|
|
145
|
+
*
|
|
146
|
+
* `update` must use operators — `{ $set: { status: "active" } }`. Pass `all: true` only to
|
|
147
|
+
* confirm an intentionally empty filter, which means every document in the collection.
|
|
148
|
+
*
|
|
149
|
+
* Requires the `documents:bulk` capability; check `can("documents:bulk")` first, since an app
|
|
150
|
+
* running core < 0.2.0 does not implement it.
|
|
151
|
+
*/
|
|
152
|
+
updateMany(collection, filter, update, options = {}) {
|
|
153
|
+
return this.call("updateMany", {
|
|
154
|
+
collection,
|
|
155
|
+
filter,
|
|
156
|
+
update,
|
|
157
|
+
all: options.all === true,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/** Delete every document matching `filter` (Compass's bulk "Delete"). See {@link updateMany}. */
|
|
161
|
+
deleteMany(collection, filter, options = {}) {
|
|
162
|
+
return this.call("deleteMany", {
|
|
163
|
+
collection,
|
|
164
|
+
filter,
|
|
165
|
+
all: options.all === true,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
aggregate(collection, pipeline) {
|
|
169
|
+
return this.call("aggregate", { collection, pipeline });
|
|
170
|
+
}
|
|
171
|
+
explain(collection, pipeline) {
|
|
172
|
+
return this.call("explain", { collection, pipeline });
|
|
173
|
+
}
|
|
174
|
+
getSyncStatus() {
|
|
175
|
+
return this.call("getSyncStatus");
|
|
176
|
+
}
|
|
177
|
+
getMutations() {
|
|
178
|
+
return this.call("getMutations");
|
|
179
|
+
}
|
|
180
|
+
retryMutation(mutationId) {
|
|
181
|
+
return this.call("retryMutation", { mutationId });
|
|
182
|
+
}
|
|
183
|
+
triggerSync() {
|
|
184
|
+
return this.call("triggerSync");
|
|
185
|
+
}
|
|
186
|
+
getConflicts() {
|
|
187
|
+
return this.call("getConflicts");
|
|
188
|
+
}
|
|
189
|
+
resolveConflict(conflictId, document) {
|
|
190
|
+
return this.call("resolveConflict", { conflictId, document });
|
|
191
|
+
}
|
|
192
|
+
exportCollection(collection, options = {}) {
|
|
193
|
+
return this.call("exportCollection", {
|
|
194
|
+
collection,
|
|
195
|
+
options,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
importCollection(collection, data, options = {}) {
|
|
199
|
+
return this.call("importCollection", { collection, data, options });
|
|
200
|
+
}
|
|
201
|
+
subscribe() {
|
|
202
|
+
return this.call("subscribeToChanges");
|
|
203
|
+
}
|
|
204
|
+
unsubscribe() {
|
|
205
|
+
return this.call("unsubscribeFromChanges");
|
|
206
|
+
}
|
|
207
|
+
close() {
|
|
208
|
+
for (const { timer, reject } of this.pending.values()) {
|
|
209
|
+
clearTimeout(timer);
|
|
210
|
+
reject(new Error("Inspector connection closed"));
|
|
211
|
+
}
|
|
212
|
+
this.pending.clear();
|
|
213
|
+
this.detach();
|
|
214
|
+
void this.transport.close();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
exports.InspectorClient = InspectorClient;
|
|
218
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/inspector/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Anchor Inspector Protocol, version 1.
|
|
3
|
+
*
|
|
4
|
+
* A small request/response + server-push protocol between an AnchorDB instance (the *agent*) and
|
|
5
|
+
* Anchor Lens (the *client*).
|
|
6
|
+
*
|
|
7
|
+
* Two design rules shape it:
|
|
8
|
+
*
|
|
9
|
+
* - **Versioned with capability negotiation.** `connect` returns the agent's protocol version and
|
|
10
|
+
* a capability list. A newer agent can add methods without breaking an older Lens, and an older
|
|
11
|
+
* agent tells a newer Lens what it cannot do instead of failing mysteriously mid-session.
|
|
12
|
+
* - **Everything goes through AnchorDB's public API.** There is no method here that reaches into
|
|
13
|
+
* storage directly. A Lens edit must be indistinguishable from an app edit — same validation,
|
|
14
|
+
* same timestamps, same mutation queue — or the tool would lie about the database it inspects.
|
|
15
|
+
*/
|
|
16
|
+
export declare const INSPECTOR_PROTOCOL_VERSION = 1;
|
|
17
|
+
export type InspectorMethod = "connect" | "authenticate" | "getDatabases" | "getCollections" | "getStats" | "getIndexes" | "getDocuments" | "getDocument" | "insertDocument" | "updateDocument" | "deleteDocument" | "countDocuments" | "updateMany" | "deleteMany" | "aggregate" | "explain" | "getSyncStatus" | "getMutations" | "retryMutation" | "triggerSync" | "getConflicts" | "resolveConflict" | "exportCollection" | "importCollection" | "subscribeToChanges" | "unsubscribeFromChanges";
|
|
18
|
+
/** Capabilities an agent may advertise. Lens greys out what is absent rather than erroring. */
|
|
19
|
+
export type InspectorCapability = "documents:read" | "documents:write"
|
|
20
|
+
/**
|
|
21
|
+
* Bulk writes (`updateMany` / `deleteMany`).
|
|
22
|
+
*
|
|
23
|
+
* Separate from `documents:write` on purpose. An agent running an older core does not advertise
|
|
24
|
+
* it, so a newer Lens hides the Update and Delete buttons instead of offering them and failing
|
|
25
|
+
* with `unsupported_method` — which is the whole point of negotiating capabilities rather than
|
|
26
|
+
* assuming a version.
|
|
27
|
+
*/
|
|
28
|
+
| "documents:bulk" | "indexes:read" | "indexes:write" | "sync:read" | "sync:write" | "conflicts:read" | "conflicts:write" | "aggregate" | "export" | "import" | "subscribe";
|
|
29
|
+
export interface InspectorRequest {
|
|
30
|
+
v: number;
|
|
31
|
+
id: string;
|
|
32
|
+
type: "req";
|
|
33
|
+
method: InspectorMethod;
|
|
34
|
+
params?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
export interface InspectorResponse {
|
|
37
|
+
v: number;
|
|
38
|
+
id: string;
|
|
39
|
+
type: "res";
|
|
40
|
+
result?: unknown;
|
|
41
|
+
error?: InspectorError;
|
|
42
|
+
}
|
|
43
|
+
export interface InspectorEvent {
|
|
44
|
+
v: number;
|
|
45
|
+
type: "evt";
|
|
46
|
+
event: InspectorEventName;
|
|
47
|
+
payload: unknown;
|
|
48
|
+
}
|
|
49
|
+
export type InspectorMessage = InspectorRequest | InspectorResponse | InspectorEvent;
|
|
50
|
+
export type InspectorEventName = "documentInserted" | "documentUpdated" | "documentDeleted" | "collectionChanged" | "syncStarted" | "syncCompleted" | "syncError" | "conflictDetected" | "queueChanged";
|
|
51
|
+
export interface InspectorError {
|
|
52
|
+
code: InspectorErrorCode;
|
|
53
|
+
message: string;
|
|
54
|
+
/** Present for validation failures so Lens can highlight the offending field. */
|
|
55
|
+
details?: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
export type InspectorErrorCode = "unauthenticated" | "unauthorized" | "bad_request" | "not_found" | "unsupported_method" | "protocol_version" | "validation_failed" | "duplicate_key" | "internal";
|
|
58
|
+
export interface ConnectResult {
|
|
59
|
+
protocolVersion: number;
|
|
60
|
+
capabilities: InspectorCapability[];
|
|
61
|
+
/** Shown in Lens's environment banner (§46) so a dev database is never mistaken for production. */
|
|
62
|
+
environment: {
|
|
63
|
+
databaseName: string;
|
|
64
|
+
platform: string;
|
|
65
|
+
anchorVersion: string;
|
|
66
|
+
nodeEnv: string;
|
|
67
|
+
syncEnabled: boolean;
|
|
68
|
+
readOnly: boolean;
|
|
69
|
+
};
|
|
70
|
+
/** True when the agent still requires `authenticate` before serving anything else. */
|
|
71
|
+
requiresAuth: boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface AuthenticateParams {
|
|
74
|
+
/** Short-lived pairing code shown as a QR / typed by the developer. */
|
|
75
|
+
pairingCode?: string;
|
|
76
|
+
/** HMAC of the server challenge, proving possession without sending the code as a bearer token. */
|
|
77
|
+
proof?: string;
|
|
78
|
+
clientName?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface AuthenticateResult {
|
|
81
|
+
sessionToken: string;
|
|
82
|
+
expiresAt: string;
|
|
83
|
+
capabilities: InspectorCapability[];
|
|
84
|
+
}
|
|
85
|
+
export interface DocumentPage {
|
|
86
|
+
collection: string;
|
|
87
|
+
documents: Array<Record<string, unknown>>;
|
|
88
|
+
total: number;
|
|
89
|
+
skip: number;
|
|
90
|
+
limit: number;
|
|
91
|
+
/** Never unbounded — §34 requires paging. */
|
|
92
|
+
hasMore: boolean;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The outcome of a bulk write, in the shape Mongo reports it.
|
|
96
|
+
*
|
|
97
|
+
* `matchedCount` and `modifiedCount` differ when an update sets a field to the value it already
|
|
98
|
+
* holds. Showing both is what stops "0 modified" reading as a failure when it is really a no-op.
|
|
99
|
+
*/
|
|
100
|
+
export interface BulkWriteSummary {
|
|
101
|
+
collection: string;
|
|
102
|
+
matchedCount: number;
|
|
103
|
+
modifiedCount: number;
|
|
104
|
+
deletedCount: number;
|
|
105
|
+
}
|
|
106
|
+
export interface CollectionSummary {
|
|
107
|
+
name: string;
|
|
108
|
+
modelName?: string;
|
|
109
|
+
count: number;
|
|
110
|
+
indexes: number;
|
|
111
|
+
hasSchema: boolean;
|
|
112
|
+
}
|
|
113
|
+
export interface InspectorStats {
|
|
114
|
+
database: string;
|
|
115
|
+
collections: number;
|
|
116
|
+
documents: number;
|
|
117
|
+
indexes: number;
|
|
118
|
+
tombstones: number;
|
|
119
|
+
sizeBytes?: number;
|
|
120
|
+
pendingMutations: number;
|
|
121
|
+
failedMutations: number;
|
|
122
|
+
syncEnabled: boolean;
|
|
123
|
+
lastSyncAt?: string;
|
|
124
|
+
}
|
|
125
|
+
export interface ConflictRecord {
|
|
126
|
+
id: string;
|
|
127
|
+
collection: string;
|
|
128
|
+
documentId: string;
|
|
129
|
+
strategy: string;
|
|
130
|
+
winner: "local" | "remote" | "merged";
|
|
131
|
+
base?: Record<string, unknown>;
|
|
132
|
+
local: Record<string, unknown>;
|
|
133
|
+
remote: Record<string, unknown>;
|
|
134
|
+
resolved: Record<string, unknown>;
|
|
135
|
+
/** Per-field breakdown for the Lens conflict table (§40). */
|
|
136
|
+
fields: Array<{
|
|
137
|
+
path: string;
|
|
138
|
+
local: unknown;
|
|
139
|
+
remote: unknown;
|
|
140
|
+
result: unknown;
|
|
141
|
+
source: string;
|
|
142
|
+
}>;
|
|
143
|
+
at: string;
|
|
144
|
+
}
|
|
145
|
+
/** Both ends of a transport speak this. Implementations differ; the protocol does not. */
|
|
146
|
+
export interface InspectorTransport {
|
|
147
|
+
readonly name: string;
|
|
148
|
+
send(message: InspectorMessage): void | Promise<void>;
|
|
149
|
+
onMessage(handler: (message: InspectorMessage) => void): () => void;
|
|
150
|
+
close(): void | Promise<void>;
|
|
151
|
+
readonly isOpen: boolean;
|
|
152
|
+
}
|
|
153
|
+
export declare function makeRequest(id: string, method: InspectorMethod, params?: Record<string, unknown>): InspectorRequest;
|
|
154
|
+
export declare function makeResponse(id: string, result: unknown): InspectorResponse;
|
|
155
|
+
export declare function makeError(id: string, code: InspectorErrorCode, message: string, details?: Record<string, unknown>): InspectorResponse;
|
|
156
|
+
export declare function makeEvent(event: InspectorEventName, payload: unknown): InspectorEvent;
|
|
157
|
+
export declare function isRequest(m: InspectorMessage): m is InspectorRequest;
|
|
158
|
+
export declare function isResponse(m: InspectorMessage): m is InspectorResponse;
|
|
159
|
+
export declare function isEvent(m: InspectorMessage): m is InspectorEvent;
|
|
160
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/inspector/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The Anchor Inspector Protocol, version 1.
|
|
4
|
+
*
|
|
5
|
+
* A small request/response + server-push protocol between an AnchorDB instance (the *agent*) and
|
|
6
|
+
* Anchor Lens (the *client*).
|
|
7
|
+
*
|
|
8
|
+
* Two design rules shape it:
|
|
9
|
+
*
|
|
10
|
+
* - **Versioned with capability negotiation.** `connect` returns the agent's protocol version and
|
|
11
|
+
* a capability list. A newer agent can add methods without breaking an older Lens, and an older
|
|
12
|
+
* agent tells a newer Lens what it cannot do instead of failing mysteriously mid-session.
|
|
13
|
+
* - **Everything goes through AnchorDB's public API.** There is no method here that reaches into
|
|
14
|
+
* storage directly. A Lens edit must be indistinguishable from an app edit — same validation,
|
|
15
|
+
* same timestamps, same mutation queue — or the tool would lie about the database it inspects.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.INSPECTOR_PROTOCOL_VERSION = void 0;
|
|
19
|
+
exports.makeRequest = makeRequest;
|
|
20
|
+
exports.makeResponse = makeResponse;
|
|
21
|
+
exports.makeError = makeError;
|
|
22
|
+
exports.makeEvent = makeEvent;
|
|
23
|
+
exports.isRequest = isRequest;
|
|
24
|
+
exports.isResponse = isResponse;
|
|
25
|
+
exports.isEvent = isEvent;
|
|
26
|
+
exports.INSPECTOR_PROTOCOL_VERSION = 1;
|
|
27
|
+
function makeRequest(id, method, params) {
|
|
28
|
+
return { v: exports.INSPECTOR_PROTOCOL_VERSION, id, type: "req", method, ...(params ? { params } : {}) };
|
|
29
|
+
}
|
|
30
|
+
function makeResponse(id, result) {
|
|
31
|
+
return { v: exports.INSPECTOR_PROTOCOL_VERSION, id, type: "res", result };
|
|
32
|
+
}
|
|
33
|
+
function makeError(id, code, message, details) {
|
|
34
|
+
return {
|
|
35
|
+
v: exports.INSPECTOR_PROTOCOL_VERSION,
|
|
36
|
+
id,
|
|
37
|
+
type: "res",
|
|
38
|
+
error: { code, message, ...(details ? { details } : {}) },
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function makeEvent(event, payload) {
|
|
42
|
+
return { v: exports.INSPECTOR_PROTOCOL_VERSION, type: "evt", event, payload };
|
|
43
|
+
}
|
|
44
|
+
function isRequest(m) {
|
|
45
|
+
return m.type === "req";
|
|
46
|
+
}
|
|
47
|
+
function isResponse(m) {
|
|
48
|
+
return m.type === "res";
|
|
49
|
+
}
|
|
50
|
+
function isEvent(m) {
|
|
51
|
+
return m.type === "evt";
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/inspector/protocol.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAwNH,kCAEC;AAED,oCAEC;AAED,8BAOC;AAED,8BAEC;AAED,8BAEC;AACD,gCAEC;AACD,0BAEC;AAnPY,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAsN5C,SAAgB,WAAW,CAAC,EAAU,EAAE,MAAuB,EAAE,MAAgC;IAC/F,OAAO,EAAE,CAAC,EAAE,kCAA0B,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACnG,CAAC;AAED,SAAgB,YAAY,CAAC,EAAU,EAAE,MAAe;IACtD,OAAO,EAAE,CAAC,EAAE,kCAA0B,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpE,CAAC;AAED,SAAgB,SAAS,CAAC,EAAU,EAAE,IAAwB,EAAE,OAAe,EAAE,OAAiC;IAChH,OAAO;QACL,CAAC,EAAE,kCAA0B;QAC7B,EAAE;QACF,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KAC1D,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,KAAyB,EAAE,OAAgB;IACnE,OAAO,EAAE,CAAC,EAAE,kCAA0B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACxE,CAAC;AAED,SAAgB,SAAS,CAAC,CAAmB;IAC3C,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;AAC1B,CAAC;AACD,SAAgB,UAAU,CAAC,CAAmB;IAC5C,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;AAC1B,CAAC;AACD,SAAgB,OAAO,CAAC,CAAmB;IACzC,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { InspectorTransport } from "../protocol.js";
|
|
2
|
+
/** Returns the two ends of one connection: give `agent` to the agent, `client` to Lens. */
|
|
3
|
+
export declare function createInProcessTransportPair(): {
|
|
4
|
+
agent: InspectorTransport;
|
|
5
|
+
client: InspectorTransport;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=in-process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process.d.ts","sourceRoot":"","sources":["../../../../src/inspector/transports/in-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAgD3E,2FAA2F;AAC3F,wBAAgB,4BAA4B,IAAI;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAMxG"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createInProcessTransportPair = createInProcessTransportPair;
|
|
4
|
+
/**
|
|
5
|
+
* A transport pair joined by direct function calls.
|
|
6
|
+
*
|
|
7
|
+
* This is what makes Lens work with **zero configuration and zero native modules** when it runs
|
|
8
|
+
* inside the app it is inspecting — the case that always works, in Expo Go included. It is also how
|
|
9
|
+
* the protocol is tested: identical message flow, no I/O.
|
|
10
|
+
*
|
|
11
|
+
* Messages are delivered on a microtask rather than synchronously, so the transport behaves like a
|
|
12
|
+
* real one (a handler cannot rely on send() having completed inline) and a bug that only appears
|
|
13
|
+
* with async delivery is caught here rather than on a device.
|
|
14
|
+
*/
|
|
15
|
+
class InProcessEnd {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.name = "in-process";
|
|
18
|
+
this.handlers = new Set();
|
|
19
|
+
this.peer = null;
|
|
20
|
+
this.open = true;
|
|
21
|
+
}
|
|
22
|
+
get isOpen() {
|
|
23
|
+
return this.open;
|
|
24
|
+
}
|
|
25
|
+
_link(peer) {
|
|
26
|
+
this.peer = peer;
|
|
27
|
+
}
|
|
28
|
+
send(message) {
|
|
29
|
+
if (!this.open)
|
|
30
|
+
return;
|
|
31
|
+
const peer = this.peer;
|
|
32
|
+
if (!peer)
|
|
33
|
+
return;
|
|
34
|
+
queueMicrotask(() => {
|
|
35
|
+
if (!peer.open)
|
|
36
|
+
return;
|
|
37
|
+
for (const handler of [...peer.handlers])
|
|
38
|
+
handler(message);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
onMessage(handler) {
|
|
42
|
+
this.handlers.add(handler);
|
|
43
|
+
return () => this.handlers.delete(handler);
|
|
44
|
+
}
|
|
45
|
+
close() {
|
|
46
|
+
this.open = false;
|
|
47
|
+
this.handlers.clear();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** Returns the two ends of one connection: give `agent` to the agent, `client` to Lens. */
|
|
51
|
+
function createInProcessTransportPair() {
|
|
52
|
+
const a = new InProcessEnd();
|
|
53
|
+
const b = new InProcessEnd();
|
|
54
|
+
a._link(b);
|
|
55
|
+
b._link(a);
|
|
56
|
+
return { agent: a, client: b };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=in-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-process.js","sourceRoot":"","sources":["../../../../src/inspector/transports/in-process.ts"],"names":[],"mappings":";;AAiDA,oEAMC;AArDD;;;;;;;;;;GAUG;AACH,MAAM,YAAY;IAAlB;QACW,SAAI,GAAG,YAAY,CAAC;QACrB,aAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;QACpD,SAAI,GAAwB,IAAI,CAAC;QACjC,SAAI,GAAG,IAAI,CAAC;IA6BtB,CAAC;IA3BC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAkB;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,OAAyB;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,cAAc,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO;YACvB,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAA4C;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAED,2FAA2F;AAC3F,SAAgB,4BAA4B;IAC1C,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACX,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC"}
|