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,198 @@
|
|
|
1
|
+
import { getPath, hasPath, compareValues } from "../query/path.js";
|
|
2
|
+
import { ObjectId } from "../core/object-id.js";
|
|
3
|
+
/**
|
|
4
|
+
* Index key extraction — shared by every storage adapter so unique semantics cannot drift between
|
|
5
|
+
* SQLite, IndexedDB and memory.
|
|
6
|
+
*
|
|
7
|
+
* ## The MongoDB / SQL divergence this module exists to close
|
|
8
|
+
*
|
|
9
|
+
* SQL treats NULL as *not equal to itself*, so a `UNIQUE` index happily accepts any number of rows
|
|
10
|
+
* whose indexed column is NULL. I verified this on node:sqlite: inserting two documents that both
|
|
11
|
+
* omitted the indexed field succeeded.
|
|
12
|
+
*
|
|
13
|
+
* MongoDB does the opposite. A missing field is indexed **as null**, and null equals null, so the
|
|
14
|
+
* second such document is rejected with E11000.
|
|
15
|
+
*
|
|
16
|
+
* Left alone this diverges silently: the app accepts data on device, sync pushes it, and the real
|
|
17
|
+
* database rejects it much later with no obvious cause. So missing values are mapped to an explicit
|
|
18
|
+
* sentinel that collides with itself, reproducing Mongo's behaviour. `sparse` and partial indexes
|
|
19
|
+
* are then the documented way to opt back out — exactly as in Mongo.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Sentinel for "no value", covering BOTH a missing field and an explicit null.
|
|
23
|
+
*
|
|
24
|
+
* They share one encoding on purpose: MongoDB indexes a missing field *as null*, so `{}` and
|
|
25
|
+
* `{ email: null }` produce the same index entry and collide under a unique index. Separate
|
|
26
|
+
* sentinels would let one of each coexist on device and then be rejected by the real database on
|
|
27
|
+
* first sync — a divergence that only surfaces long after the data was written.
|
|
28
|
+
*
|
|
29
|
+
* `sparse` still distinguishes them: it skips documents *missing* the field while still indexing
|
|
30
|
+
* an explicit null. That check lives in extractIndexKeys, not here.
|
|
31
|
+
*/
|
|
32
|
+
export const NULL_SENTINEL = " __anchor_null__";
|
|
33
|
+
/**
|
|
34
|
+
* Separator between components of a compound index key.
|
|
35
|
+
*
|
|
36
|
+
* Named rather than written inline as a raw control character: an invisible literal is impossible
|
|
37
|
+
* to review and trivially diverges between the writer and the reader of a key. Without a separator
|
|
38
|
+
* at all, ["ab","c"] and ["a","bc"] would encode identically and collide under a unique index.
|
|
39
|
+
*/
|
|
40
|
+
export const KEY_SEPARATOR = String.fromCharCode(1);
|
|
41
|
+
/**
|
|
42
|
+
* Encode a single value into a component of an index key.
|
|
43
|
+
*
|
|
44
|
+
* Type is included in the encoding so that `1` (number) and `"1"` (string) do not collide — Mongo
|
|
45
|
+
* treats them as different index entries because they are different BSON types.
|
|
46
|
+
*/
|
|
47
|
+
export function encodeComponent(value) {
|
|
48
|
+
if (value === undefined || value === null)
|
|
49
|
+
return NULL_SENTINEL;
|
|
50
|
+
if (typeof value === "string")
|
|
51
|
+
return `s:${value}`;
|
|
52
|
+
if (typeof value === "number")
|
|
53
|
+
return `n:${value}`;
|
|
54
|
+
if (typeof value === "boolean")
|
|
55
|
+
return `b:${value}`;
|
|
56
|
+
if (value instanceof Date)
|
|
57
|
+
return `d:${value.getTime()}`;
|
|
58
|
+
if (value instanceof ObjectId)
|
|
59
|
+
return `o:${value.toHexString()}`;
|
|
60
|
+
if (value instanceof Uint8Array)
|
|
61
|
+
return `x:${Array.from(value).join(",")}`;
|
|
62
|
+
if (Array.isArray(value))
|
|
63
|
+
return `a:${JSON.stringify(value)}`;
|
|
64
|
+
return `j:${JSON.stringify(value)}`;
|
|
65
|
+
}
|
|
66
|
+
function isMissing(doc, path) {
|
|
67
|
+
return !hasPath(doc, path) || getPath(doc, path) === undefined;
|
|
68
|
+
}
|
|
69
|
+
/** Does the document qualify for a partial index? */
|
|
70
|
+
export function matchesPartialFilter(doc, filter) {
|
|
71
|
+
if (!filter)
|
|
72
|
+
return true;
|
|
73
|
+
for (const [path, condition] of Object.entries(filter)) {
|
|
74
|
+
const value = getPath(doc, path);
|
|
75
|
+
if (condition !== null && typeof condition === "object" && !Array.isArray(condition) && !(condition instanceof Date)) {
|
|
76
|
+
for (const [op, operand] of Object.entries(condition)) {
|
|
77
|
+
switch (op) {
|
|
78
|
+
case "$eq":
|
|
79
|
+
if (compareValues(value, operand) !== 0)
|
|
80
|
+
return false;
|
|
81
|
+
break;
|
|
82
|
+
case "$ne":
|
|
83
|
+
if (compareValues(value, operand) === 0)
|
|
84
|
+
return false;
|
|
85
|
+
break;
|
|
86
|
+
case "$gt":
|
|
87
|
+
if (!(compareValues(value, operand) > 0))
|
|
88
|
+
return false;
|
|
89
|
+
break;
|
|
90
|
+
case "$gte":
|
|
91
|
+
if (!(compareValues(value, operand) >= 0))
|
|
92
|
+
return false;
|
|
93
|
+
break;
|
|
94
|
+
case "$lt":
|
|
95
|
+
if (!(compareValues(value, operand) < 0))
|
|
96
|
+
return false;
|
|
97
|
+
break;
|
|
98
|
+
case "$lte":
|
|
99
|
+
if (!(compareValues(value, operand) <= 0))
|
|
100
|
+
return false;
|
|
101
|
+
break;
|
|
102
|
+
case "$exists":
|
|
103
|
+
if (hasPath(doc, path) !== Boolean(operand))
|
|
104
|
+
return false;
|
|
105
|
+
break;
|
|
106
|
+
case "$in":
|
|
107
|
+
if (!operand.some((o) => compareValues(value, o) === 0))
|
|
108
|
+
return false;
|
|
109
|
+
break;
|
|
110
|
+
default:
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (compareValues(value, condition) !== 0) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Extract every index key a document contributes.
|
|
123
|
+
*
|
|
124
|
+
* Returns more than one key only for multikey indexes, where an array field contributes one entry
|
|
125
|
+
* per element — which is what makes a unique multikey index mean "no two documents share any
|
|
126
|
+
* element".
|
|
127
|
+
*
|
|
128
|
+
* Returns an empty array when the document should not be indexed at all (sparse with the field
|
|
129
|
+
* absent, or a partial filter that does not match), which is precisely how those options let
|
|
130
|
+
* multiple documents escape a unique constraint.
|
|
131
|
+
*/
|
|
132
|
+
export function extractIndexKeys(doc, spec) {
|
|
133
|
+
if (!matchesPartialFilter(doc, spec.partialFilterExpression))
|
|
134
|
+
return [];
|
|
135
|
+
const paths = spec.key.map(([path]) => path);
|
|
136
|
+
// Sparse skips documents missing *every* indexed field, matching Mongo's compound-sparse rule.
|
|
137
|
+
if (spec.sparse && paths.every((p) => isMissing(doc, p)))
|
|
138
|
+
return [];
|
|
139
|
+
// Cartesian product across paths, expanding arrays into separate entries (multikey).
|
|
140
|
+
let combos = [[]];
|
|
141
|
+
for (const path of paths) {
|
|
142
|
+
const raw = getPath(doc, path);
|
|
143
|
+
const values = Array.isArray(raw) ? (raw.length === 0 ? [undefined] : raw) : [raw];
|
|
144
|
+
const next = [];
|
|
145
|
+
for (const combo of combos) {
|
|
146
|
+
for (const value of values) {
|
|
147
|
+
next.push([...combo, { path, value }]);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
combos = next;
|
|
151
|
+
}
|
|
152
|
+
// De-duplicate: a document with ["a","a"] must contribute one entry, not two, or it would
|
|
153
|
+
// collide with itself and be rejected by its own unique index.
|
|
154
|
+
const seen = new Set();
|
|
155
|
+
const out = [];
|
|
156
|
+
for (const combo of combos) {
|
|
157
|
+
const encoded = combo.map((c) => encodeComponent(c.value)).join(KEY_SEPARATOR);
|
|
158
|
+
if (seen.has(encoded))
|
|
159
|
+
continue;
|
|
160
|
+
seen.add(encoded);
|
|
161
|
+
const values = {};
|
|
162
|
+
for (const c of combo)
|
|
163
|
+
values[c.path] = c.value === undefined ? null : c.value;
|
|
164
|
+
out.push({ encoded, values });
|
|
165
|
+
}
|
|
166
|
+
return out;
|
|
167
|
+
}
|
|
168
|
+
/** True when any indexed path currently holds an array, so the adapter can pick its strategy. */
|
|
169
|
+
export function isMultikeyFor(doc, spec) {
|
|
170
|
+
return spec.key.some(([path]) => Array.isArray(getPath(doc, path)));
|
|
171
|
+
}
|
|
172
|
+
export function indexKeyPattern(spec) {
|
|
173
|
+
const out = {};
|
|
174
|
+
for (const [path, dir] of spec.key)
|
|
175
|
+
out[path] = dir;
|
|
176
|
+
return out;
|
|
177
|
+
}
|
|
178
|
+
/** Mongo's default index name: field_direction joined by underscores, e.g. `email_1`. */
|
|
179
|
+
export function defaultIndexName(key) {
|
|
180
|
+
return key.map(([path, dir]) => `${path}_${dir}`).join("_");
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Encode a lookup key for an index whose every field has an equality constraint.
|
|
184
|
+
*
|
|
185
|
+
* Returns null when the constraints do not cover the full key. A partial key cannot be turned into
|
|
186
|
+
* an exact lookup against the entries table, and guessing with a prefix match could silently drop
|
|
187
|
+
* rows — so we decline and let the caller fall back to a scan.
|
|
188
|
+
*/
|
|
189
|
+
export function encodeLookupKey(spec, equalities) {
|
|
190
|
+
const parts = [];
|
|
191
|
+
for (const [path] of spec.key) {
|
|
192
|
+
if (!equalities.has(path))
|
|
193
|
+
return null;
|
|
194
|
+
parts.push(encodeComponent(equalities.get(path)));
|
|
195
|
+
}
|
|
196
|
+
return parts.join(KEY_SEPARATOR);
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/index/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* anchordb — MongoDB + Mongoose, for mobile apps.
|
|
3
|
+
*
|
|
4
|
+
* Local-first by default. Sync is opt-in: construct without a `sync` block and you get a purely
|
|
5
|
+
* local database with no queue, no network code and no sync metadata.
|
|
6
|
+
*/
|
|
7
|
+
export { AnchorDB, LocalDB } from "./core/anchor-db.js";
|
|
8
|
+
export type { AnchorDBConfig, InspectorConfig, SyncConfig, SyncStatus, } from "./core/anchor-db.js";
|
|
9
|
+
export { Schema } from "./schema/schema.js";
|
|
10
|
+
export { SchemaTypes } from "./schema/types.js";
|
|
11
|
+
export type { SchemaOptions, SchemaTypeOptions, ValidatorFn, ValidatorSpec, } from "./schema/types.js";
|
|
12
|
+
export { castDocument, castValue } from "./schema/cast.js";
|
|
13
|
+
export { validateDocument } from "./schema/validate.js";
|
|
14
|
+
export { Model } from "./model/model.js";
|
|
15
|
+
export type { DeleteResult, UpdateOptions, UpdateResult } from "./model/model.js";
|
|
16
|
+
export { Query } from "./query/builder/query.js";
|
|
17
|
+
export type { ExplainResult, PopulateSpec } from "./query/builder/query.js";
|
|
18
|
+
export { ObjectId } from "./core/object-id.js";
|
|
19
|
+
export { uuidv7, generateClientId } from "./core/uuid.js";
|
|
20
|
+
export { HybridLogicalClock, compareHlc, compareHlcStamps, decodeHlc, encodeHlc } from "./core/hlc.js";
|
|
21
|
+
export type { Hlc } from "./core/hlc.js";
|
|
22
|
+
export { AnchorError, AnchorConfigError, BulkWriteError, CastError, DocumentNotFoundError, DUPLICATE_KEY_CODE, MongoServerError, StrictModeError, ValidationError, ValidatorError, duplicateKeyError, } from "./core/errors.js";
|
|
23
|
+
export { TimeService } from "./timestamps/index.js";
|
|
24
|
+
export { assertValidTimeZone, detectDeviceTimeZone, formatInTimeZone, isValidTimeZone, parseZonedTimeToUtc, toUtcIso, zonedTimeToUtc, } from "./timestamps/timezone.js";
|
|
25
|
+
export { TypedEmitter } from "./events/emitter.js";
|
|
26
|
+
export type { AnchorEvents, AnchorRuntime } from "./core/runtime.js";
|
|
27
|
+
export { MemoryAdapter } from "./storage/adapters/memory.js";
|
|
28
|
+
export type { AdapterStats, DatabaseAdapter, IndexSpec, StoragePlan, StorageResult, StoredDoc, StoredMeta, StoredRow, WriteOp, } from "./storage/types.js";
|
|
29
|
+
export { matchesFilter, extractConstraints, registerQueryOperator, listQueryOperators, } from "./query/filter.js";
|
|
30
|
+
export type { Filter } from "./query/filter.js";
|
|
31
|
+
export { applyUpdate, registerUpdateOperator, listUpdateOperators, updatedPaths, } from "./query/update.js";
|
|
32
|
+
export type { UpdateSpec } from "./query/update.js";
|
|
33
|
+
export { compareValues, deepClone, flattenPaths, getPath, hasPath, setPath, unsetPath, valuesEqual, } from "./query/path.js";
|
|
34
|
+
export { extractIndexKeys, defaultIndexName, NULL_SENTINEL } from "./index/keys.js";
|
|
35
|
+
export type { ConflictContext, ConflictResolutionConfig, ConflictResolver, ConflictStrategyName, FieldPolicy, Resolution, } from "./conflict/types.js";
|
|
36
|
+
export { attachSync } from "./sync/attach.js";
|
|
37
|
+
export type { AttachSyncOptions, AttachedSync } from "./sync/attach.js";
|
|
38
|
+
export { MutationQueue, QUEUE_COLLECTION } from "./sync/queue.js";
|
|
39
|
+
export { SyncEngine, SHADOW_COLLECTION } from "./sync/engine.js";
|
|
40
|
+
export type { SyncEngineOptions, SyncRunResult, SyncStatusValue } from "./sync/engine.js";
|
|
41
|
+
export { RestSyncAdapter } from "./sync/adapters/rest.js";
|
|
42
|
+
export type { RestSyncAdapterOptions } from "./sync/adapters/rest.js";
|
|
43
|
+
export { MemorySyncServer } from "./sync/server/memory-server.js";
|
|
44
|
+
export type { ServerDocument, MemorySyncServerOptions } from "./sync/server/memory-server.js";
|
|
45
|
+
export { PROTOCOL_VERSION, SyncAuthError, SyncTransportError, } from "./sync/protocol.js";
|
|
46
|
+
export type { ChangeResult, ChangeStatus, Mutation, MutationOperation, PullRequest, PullResponse, PushRequest, PushResponse, QueuedMutation, RemoteChange, SyncAdapter, } from "./sync/protocol.js";
|
|
47
|
+
export { ClientWinsStrategy, ConflictStrategyRegistry, CustomStrategy, FieldLevelStrategy, LastWriteWinsStrategy, ServerWinsStrategy, } from "./conflict/strategies.js";
|
|
48
|
+
export type { ConflictStrategyHandler } from "./conflict/strategies.js";
|
|
49
|
+
export { toEJSON, fromEJSON, stringifyEJSON, parseEJSON } from "./interop/ejson.js";
|
|
50
|
+
export type { EJsonMode, EJsonOptions } from "./interop/ejson.js";
|
|
51
|
+
export { detectImportFormat, exportCollection, exportDatabase, importCollection, importDatabase, mongoimportCommand, } from "./interop/export-import.js";
|
|
52
|
+
export { csvHeaders, fromCsv, inferCsvValue, looksLikeCsv, parseCsvRows, toCsv } from "./interop/csv.js";
|
|
53
|
+
export type { CollectionExport, DatabaseExport, ExportFormat, ExportOptions, ImportOptions, ImportResult, } from "./interop/export-import.js";
|
|
54
|
+
export { runPipeline, validatePipeline, planPushdown } from "./query/aggregation/pipeline.js";
|
|
55
|
+
export type { AggregateExplain, AggregateOptions, AggregationSource, PipelineStage, Pushdown, } from "./query/aggregation/pipeline.js";
|
|
56
|
+
export { evaluate as evaluateExpression, registerExpressionOperator, listExpressionOperators, isPortableOperator, MISSING, } from "./query/aggregation/expressions.js";
|
|
57
|
+
export { StorageAggregationSource } from "./query/aggregation/source.js";
|
|
58
|
+
export type { BulkWriteOperation } from "./model/model.js";
|
|
59
|
+
export { AnchorDocument, createModelConstructor } from "./model/document.js";
|
|
60
|
+
export type { ModelConstructor, ToObjectOptions } from "./model/document.js";
|
|
61
|
+
export { castFilter } from "./schema/cast.js";
|
|
62
|
+
export { InspectorAgent, InspectorRequestError } from "./inspector/agent.js";
|
|
63
|
+
export type { InspectorAgentOptions } from "./inspector/agent.js";
|
|
64
|
+
export { InspectorClient, InspectorClientError } from "./inspector/client.js";
|
|
65
|
+
export type { InspectorClientOptions } from "./inspector/client.js";
|
|
66
|
+
export { InspectorAuth, hmacSha256, timingSafeEqual } from "./inspector/auth.js";
|
|
67
|
+
export type { InspectorAuthOptions, PairingInfo, Session } from "./inspector/auth.js";
|
|
68
|
+
export { createInProcessTransportPair } from "./inspector/transports/in-process.js";
|
|
69
|
+
export { WebSocketTransport } from "./inspector/transports/websocket.js";
|
|
70
|
+
export type { WebSocketLike, WebSocketTransportOptions } from "./inspector/transports/websocket.js";
|
|
71
|
+
export { INSPECTOR_PROTOCOL_VERSION, makeRequest, makeResponse, makeError, makeEvent, isRequest, isResponse, isEvent, } from "./inspector/protocol.js";
|
|
72
|
+
export { BRIDGE_PROTOCOL_VERSION, BridgeError, MongoBridgeClient, bridgeUrl, bridgeUrlFromRelay, redactMongoUri, } from "./inspector/bridge.js";
|
|
73
|
+
export type { BridgeConnectResult, BridgeErrorCode, BridgeOp, BridgeReadResult, BridgeRequest, BridgeResponse, BridgeWriteMode, BridgeWriteResult, MongoBridgeClientOptions, MongoCollectionInfo, } from "./inspector/bridge.js";
|
|
74
|
+
export type { BulkWriteSummary, CollectionSummary, ConflictRecord, ConnectResult, DocumentPage, InspectorCapability, InspectorError, InspectorErrorCode, InspectorEvent, InspectorEventName, InspectorMessage, InspectorMethod, InspectorRequest, InspectorResponse, InspectorStats, InspectorTransport, } from "./inspector/protocol.js";
|
|
75
|
+
export { observe, observeQuery, observeSyncStatus } from "./reactive/live-query.js";
|
|
76
|
+
export type { LiveObserver, LiveQueryOptions, LiveSubscription } from "./reactive/live-query.js";
|
|
77
|
+
export { SqlAdapterBase } from "./storage/adapters/sql-base.js";
|
|
78
|
+
export type { SqlDriver } from "./storage/adapters/sql-base.js";
|
|
79
|
+
export { IndexedDbAdapter } from "./storage/adapters/indexeddb.js";
|
|
80
|
+
export type { IndexedDbAdapterOptions } from "./storage/adapters/indexeddb.js";
|
|
81
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* anchordb — MongoDB + Mongoose, for mobile apps.
|
|
3
|
+
*
|
|
4
|
+
* Local-first by default. Sync is opt-in: construct without a `sync` block and you get a purely
|
|
5
|
+
* local database with no queue, no network code and no sync metadata.
|
|
6
|
+
*/
|
|
7
|
+
export { AnchorDB, LocalDB } from "./core/anchor-db.js";
|
|
8
|
+
export { Schema } from "./schema/schema.js";
|
|
9
|
+
export { SchemaTypes } from "./schema/types.js";
|
|
10
|
+
export { castDocument, castValue } from "./schema/cast.js";
|
|
11
|
+
export { validateDocument } from "./schema/validate.js";
|
|
12
|
+
export { Model } from "./model/model.js";
|
|
13
|
+
export { Query } from "./query/builder/query.js";
|
|
14
|
+
export { ObjectId } from "./core/object-id.js";
|
|
15
|
+
export { uuidv7, generateClientId } from "./core/uuid.js";
|
|
16
|
+
export { HybridLogicalClock, compareHlc, compareHlcStamps, decodeHlc, encodeHlc } from "./core/hlc.js";
|
|
17
|
+
export { AnchorError, AnchorConfigError, BulkWriteError, CastError, DocumentNotFoundError, DUPLICATE_KEY_CODE, MongoServerError, StrictModeError, ValidationError, ValidatorError, duplicateKeyError, } from "./core/errors.js";
|
|
18
|
+
export { TimeService } from "./timestamps/index.js";
|
|
19
|
+
export { assertValidTimeZone, detectDeviceTimeZone, formatInTimeZone, isValidTimeZone, parseZonedTimeToUtc, toUtcIso, zonedTimeToUtc, } from "./timestamps/timezone.js";
|
|
20
|
+
export { TypedEmitter } from "./events/emitter.js";
|
|
21
|
+
export { MemoryAdapter } from "./storage/adapters/memory.js";
|
|
22
|
+
export { matchesFilter, extractConstraints, registerQueryOperator, listQueryOperators, } from "./query/filter.js";
|
|
23
|
+
export { applyUpdate, registerUpdateOperator, listUpdateOperators, updatedPaths, } from "./query/update.js";
|
|
24
|
+
export { compareValues, deepClone, flattenPaths, getPath, hasPath, setPath, unsetPath, valuesEqual, } from "./query/path.js";
|
|
25
|
+
export { extractIndexKeys, defaultIndexName, NULL_SENTINEL } from "./index/keys.js";
|
|
26
|
+
// ---- sync (optional; tree-shaken away when unused) --------------------------
|
|
27
|
+
export { attachSync } from "./sync/attach.js";
|
|
28
|
+
export { MutationQueue, QUEUE_COLLECTION } from "./sync/queue.js";
|
|
29
|
+
export { SyncEngine, SHADOW_COLLECTION } from "./sync/engine.js";
|
|
30
|
+
export { RestSyncAdapter } from "./sync/adapters/rest.js";
|
|
31
|
+
export { MemorySyncServer } from "./sync/server/memory-server.js";
|
|
32
|
+
export { PROTOCOL_VERSION, SyncAuthError, SyncTransportError, } from "./sync/protocol.js";
|
|
33
|
+
// ---- conflict strategies ----------------------------------------------------
|
|
34
|
+
export { ClientWinsStrategy, ConflictStrategyRegistry, CustomStrategy, FieldLevelStrategy, LastWriteWinsStrategy, ServerWinsStrategy, } from "./conflict/strategies.js";
|
|
35
|
+
// ---- interop: MongoDB Extended JSON, export/import ---------------------------
|
|
36
|
+
export { toEJSON, fromEJSON, stringifyEJSON, parseEJSON } from "./interop/ejson.js";
|
|
37
|
+
export { detectImportFormat, exportCollection, exportDatabase, importCollection, importDatabase, mongoimportCommand, } from "./interop/export-import.js";
|
|
38
|
+
export { csvHeaders, fromCsv, inferCsvValue, looksLikeCsv, parseCsvRows, toCsv } from "./interop/csv.js";
|
|
39
|
+
// ---- aggregation -------------------------------------------------------------
|
|
40
|
+
export { runPipeline, validatePipeline, planPushdown } from "./query/aggregation/pipeline.js";
|
|
41
|
+
export { evaluate as evaluateExpression, registerExpressionOperator, listExpressionOperators, isPortableOperator, MISSING, } from "./query/aggregation/expressions.js";
|
|
42
|
+
export { StorageAggregationSource } from "./query/aggregation/source.js";
|
|
43
|
+
// ---- documents ---------------------------------------------------------------
|
|
44
|
+
export { AnchorDocument, createModelConstructor } from "./model/document.js";
|
|
45
|
+
export { castFilter } from "./schema/cast.js";
|
|
46
|
+
// ---- inspector (optional; disabled by default) -------------------------------
|
|
47
|
+
export { InspectorAgent, InspectorRequestError } from "./inspector/agent.js";
|
|
48
|
+
export { InspectorClient, InspectorClientError } from "./inspector/client.js";
|
|
49
|
+
export { InspectorAuth, hmacSha256, timingSafeEqual } from "./inspector/auth.js";
|
|
50
|
+
export { createInProcessTransportPair } from "./inspector/transports/in-process.js";
|
|
51
|
+
export { WebSocketTransport } from "./inspector/transports/websocket.js";
|
|
52
|
+
export { INSPECTOR_PROTOCOL_VERSION, makeRequest, makeResponse, makeError, makeEvent, isRequest, isResponse, isEvent, } from "./inspector/protocol.js";
|
|
53
|
+
export { BRIDGE_PROTOCOL_VERSION, BridgeError, MongoBridgeClient, bridgeUrl, bridgeUrlFromRelay, redactMongoUri, } from "./inspector/bridge.js";
|
|
54
|
+
// ---- reactive primitives (shared by the React and Angular bindings) -----------
|
|
55
|
+
export { observe, observeQuery, observeSyncStatus } from "./reactive/live-query.js";
|
|
56
|
+
// ---- storage adapters (subpath imports keep platform code out of other bundles) -----
|
|
57
|
+
export { SqlAdapterBase } from "./storage/adapters/sql-base.js";
|
|
58
|
+
export { IndexedDbAdapter } from "./storage/adapters/indexeddb.js";
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { AnchorDB } from "../core/anchor-db.js";
|
|
2
|
+
import { InspectorAuth, type InspectorAuthOptions, type PairingInfo } from "./auth.js";
|
|
3
|
+
import { type InspectorCapability, type InspectorTransport } from "./protocol.js";
|
|
4
|
+
export interface InspectorAgentOptions {
|
|
5
|
+
auth?: InspectorAuthOptions;
|
|
6
|
+
/** Refuse every mutating method. Useful when inspecting something you must not disturb. */
|
|
7
|
+
readOnly?: boolean;
|
|
8
|
+
platform?: string;
|
|
9
|
+
anchorVersion?: string;
|
|
10
|
+
/** Conflicts to retain for the Lens conflict viewer. */
|
|
11
|
+
conflictHistory?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class InspectorAgent {
|
|
14
|
+
readonly auth: InspectorAuth;
|
|
15
|
+
private readonly db;
|
|
16
|
+
private readonly opts;
|
|
17
|
+
private readonly transports;
|
|
18
|
+
private readonly authenticated;
|
|
19
|
+
private readonly subscribed;
|
|
20
|
+
private readonly conflicts;
|
|
21
|
+
private detach;
|
|
22
|
+
private lastSyncAt;
|
|
23
|
+
constructor(db: AnchorDB, options?: InspectorAgentOptions);
|
|
24
|
+
/** Begin a pairing window; the result is what a QR code encodes. */
|
|
25
|
+
startPairing(): PairingInfo;
|
|
26
|
+
capabilities(): InspectorCapability[];
|
|
27
|
+
/** Attach a transport. Multiple may be attached at once (§45). */
|
|
28
|
+
attach(transport: InspectorTransport): () => void;
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
private handle;
|
|
31
|
+
private toErrorResponse;
|
|
32
|
+
private dispatch;
|
|
33
|
+
private connect;
|
|
34
|
+
private authenticate;
|
|
35
|
+
/** The challenge a client signs. Exposed so a transport can hand it over during pairing. */
|
|
36
|
+
challenge(): string | null;
|
|
37
|
+
private model;
|
|
38
|
+
private getCollections;
|
|
39
|
+
private getStats;
|
|
40
|
+
private getIndexes;
|
|
41
|
+
/** Paged, always. The cap is enforced here, not trusted from the client (§34). */
|
|
42
|
+
private getDocuments;
|
|
43
|
+
private getDocument;
|
|
44
|
+
private insertDocument;
|
|
45
|
+
private updateDocument;
|
|
46
|
+
private deleteDocument;
|
|
47
|
+
/**
|
|
48
|
+
* Bulk update (Compass's "Update" on the collection toolbar).
|
|
49
|
+
*
|
|
50
|
+
* Routed through `Model.updateMany`, so every matching document gets the same validation,
|
|
51
|
+
* timestamps, change events and queued mutations as an app write — and the whole thing is one
|
|
52
|
+
* pass over an index rather than N round trips from the inspector.
|
|
53
|
+
*/
|
|
54
|
+
private updateMany;
|
|
55
|
+
/** Bulk delete (Compass's "Delete"). Same reasoning as {@link updateMany}. */
|
|
56
|
+
private deleteMany;
|
|
57
|
+
private getSyncStatus;
|
|
58
|
+
private readQueue;
|
|
59
|
+
private getMutations;
|
|
60
|
+
private retryMutation;
|
|
61
|
+
/**
|
|
62
|
+
* Manual conflict resolution from Lens.
|
|
63
|
+
*
|
|
64
|
+
* Deliberately routed through `updateDocument` rather than written straight to storage: the
|
|
65
|
+
* developer's decision becomes an ordinary mutation that syncs like any other (§41). Bypassing
|
|
66
|
+
* the queue would let Lens create state the server never learns about.
|
|
67
|
+
*/
|
|
68
|
+
private resolveConflict;
|
|
69
|
+
private wireEvents;
|
|
70
|
+
}
|
|
71
|
+
export declare class InspectorRequestError extends Error {
|
|
72
|
+
readonly code: "unauthenticated" | "unauthorized" | "bad_request" | "not_found" | "unsupported_method";
|
|
73
|
+
constructor(code: InspectorRequestError["code"], message: string);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/inspector/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMrD,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAWL,KAAK,mBAAmB,EAIxB,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAsBvB,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAAqB;gBAE3B,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,qBAA0B;IAO7D,oEAAoE;IACpE,YAAY,IAAI,WAAW;IAI3B,YAAY,IAAI,mBAAmB,EAAE;IAgBrC,kEAAkE;IAClE,MAAM,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAY3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAUd,MAAM;IAuBpB,OAAO,CAAC,eAAe;YAeT,QAAQ;IA4FtB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,YAAY;IAmBpB,4FAA4F;IAC5F,SAAS,IAAI,MAAM,GAAG,IAAI;IAM1B,OAAO,CAAC,KAAK;YAYC,cAAc;YAgBd,QAAQ;YAkBR,UAAU;IAIxB,kFAAkF;YACpE,YAAY;YAgBZ,WAAW;YAMX,cAAc;YAKd,cAAc;YAYd,cAAc;IAI5B;;;;;;OAMG;YACW,UAAU;IA2BxB,8EAA8E;YAChE,UAAU;YAaV,aAAa;YAgBb,SAAS;YAMT,YAAY;YAMZ,aAAa;IAW3B;;;;;;OAMG;YACW,eAAe;IAU7B,OAAO,CAAC,UAAU;CAmCnB;AA+BD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,oBAAoB,CAAC;gBAC3F,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;CAKjE"}
|