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,98 @@
|
|
|
1
|
+
import type { AnchorDB } from "../core/anchor-db.js";
|
|
2
|
+
import type { Model } from "../model/model.js";
|
|
3
|
+
import { parseEJSON, stringifyEJSON, toEJSON, fromEJSON, type EJsonMode } from "./ejson.js";
|
|
4
|
+
import type { Filter } from "../query/filter.js";
|
|
5
|
+
/**
|
|
6
|
+
* Two-way interchange with a real MongoDB (§47).
|
|
7
|
+
*
|
|
8
|
+
* The target is not "some JSON" but specifically what `mongoimport` consumes and `mongoexport`
|
|
9
|
+
* produces, so moving data between a device and a real database needs no conversion step in either
|
|
10
|
+
* direction.
|
|
11
|
+
*
|
|
12
|
+
* `mongoexport` writes **NDJSON** by default (one document per line, no wrapping array), which is
|
|
13
|
+
* also what `mongoimport` reads by default. `array` format is offered for readability and matches
|
|
14
|
+
* `mongoimport --jsonArray`.
|
|
15
|
+
*/
|
|
16
|
+
export type ExportFormat = "ndjson" | "array" | "csv";
|
|
17
|
+
export interface ExportOptions {
|
|
18
|
+
format?: ExportFormat;
|
|
19
|
+
mode?: EJsonMode;
|
|
20
|
+
pretty?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Export only the documents matching this filter — Compass calls this "Export query results".
|
|
23
|
+
*
|
|
24
|
+
* Runs as a real query rather than a second filter implementation, so the filter is cast through
|
|
25
|
+
* the schema (a hex `_id` becomes an ObjectId) and the planner can use an index. Cannot be
|
|
26
|
+
* combined with `includeDeleted` or `includeSyncMetadata`, which describe storage state that a
|
|
27
|
+
* query does not see.
|
|
28
|
+
*/
|
|
29
|
+
filter?: Filter;
|
|
30
|
+
/** Include tombstoned documents. Off by default — they are a sync detail, not user data. */
|
|
31
|
+
includeDeleted?: boolean;
|
|
32
|
+
/** Include the `_sync` block. Off by default: a fresh import should not inherit our versions. */
|
|
33
|
+
includeSyncMetadata?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface CollectionExport {
|
|
36
|
+
collection: string;
|
|
37
|
+
count: number;
|
|
38
|
+
format: ExportFormat;
|
|
39
|
+
/** The file body, ready to write to disk and hand to mongoimport. */
|
|
40
|
+
data: string;
|
|
41
|
+
}
|
|
42
|
+
export interface DatabaseExport {
|
|
43
|
+
database: string;
|
|
44
|
+
exportedAt: string;
|
|
45
|
+
collections: CollectionExport[];
|
|
46
|
+
}
|
|
47
|
+
/** Export one collection in a `mongoimport`-ready form. */
|
|
48
|
+
export declare function exportCollection(db: AnchorDB, collection: string, options?: ExportOptions): Promise<CollectionExport>;
|
|
49
|
+
export declare function exportDatabase(db: AnchorDB, options?: ExportOptions): Promise<DatabaseExport>;
|
|
50
|
+
export interface ImportOptions {
|
|
51
|
+
/**
|
|
52
|
+
* `insert` skips documents whose `_id` already exists, `upsert` overwrites them, and `replace`
|
|
53
|
+
* clears the collection first. Named to match the semantics developers already expect.
|
|
54
|
+
*/
|
|
55
|
+
mode?: "insert" | "upsert" | "replace";
|
|
56
|
+
/**
|
|
57
|
+
* Whether imported documents should be queued for sync.
|
|
58
|
+
*
|
|
59
|
+
* **Defaults to false**, deliberately. A bulk restore of 100k documents must not manufacture
|
|
60
|
+
* 100k mutations — that would flood the queue and re-upload data the server may already have.
|
|
61
|
+
* Set true when the import represents genuine user edits that the backend has not seen.
|
|
62
|
+
*/
|
|
63
|
+
sync?: boolean;
|
|
64
|
+
format?: ExportFormat;
|
|
65
|
+
}
|
|
66
|
+
export interface ImportResult {
|
|
67
|
+
collection: string;
|
|
68
|
+
inserted: number;
|
|
69
|
+
updated: number;
|
|
70
|
+
skipped: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Import documents produced by `mongoexport`, `exportCollection`, or any Extended JSON source.
|
|
74
|
+
*
|
|
75
|
+
* Accepts NDJSON or a JSON array, auto-detected, because those are the two things real tooling
|
|
76
|
+
* emits and making the caller declare which one is friction with no benefit.
|
|
77
|
+
*/
|
|
78
|
+
export declare function importCollection(db: AnchorDB, collection: string, input: string | unknown[], options?: ImportOptions): Promise<ImportResult>;
|
|
79
|
+
export declare function importDatabase(db: AnchorDB, data: DatabaseExport, options?: ImportOptions): Promise<ImportResult[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Work out what a file actually is, so an import does not need the user to declare it.
|
|
82
|
+
*
|
|
83
|
+
* Compass does the same on its import dialog: you pick a file and it tells you what it found. Being
|
|
84
|
+
* wrong here is an unhelpful parse error several steps later, so the checks are ordered from the
|
|
85
|
+
* least ambiguous (a leading bracket) to the most (a comma-bearing header row).
|
|
86
|
+
*/
|
|
87
|
+
export declare function detectImportFormat(text: string): ExportFormat;
|
|
88
|
+
/** The exact command that ingests an export produced by `exportCollection`. */
|
|
89
|
+
export declare function mongoimportCommand(opts: {
|
|
90
|
+
file: string;
|
|
91
|
+
database: string;
|
|
92
|
+
collection: string;
|
|
93
|
+
format?: ExportFormat;
|
|
94
|
+
uri?: string;
|
|
95
|
+
}): string;
|
|
96
|
+
export { toEJSON, fromEJSON, stringifyEJSON, parseEJSON };
|
|
97
|
+
export type { Model };
|
|
98
|
+
//# sourceMappingURL=export-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-import.d.ts","sourceRoot":"","sources":["../../../src/interop/export-import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAED,2DAA2D;AAC3D,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAsC3B;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAQvG;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,EACzB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAqEvB;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CAMzB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAK7D;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAYT;AAiED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAC1D,YAAY,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { AnchorError } from "../core/errors.js";
|
|
2
|
+
import { ObjectId } from "../core/object-id.js";
|
|
3
|
+
import { hydrateDoc } from "../model/model.js";
|
|
4
|
+
import { parseEJSON, stringifyEJSON, toEJSON, fromEJSON } from "./ejson.js";
|
|
5
|
+
import { fromCsv, looksLikeCsv, toCsv } from "./csv.js";
|
|
6
|
+
/** Export one collection in a `mongoimport`-ready form. */
|
|
7
|
+
export async function exportCollection(db, collection, options = {}) {
|
|
8
|
+
await db.open();
|
|
9
|
+
const format = options.format ?? "ndjson";
|
|
10
|
+
const mode = options.mode ?? "canonical";
|
|
11
|
+
// Storage keeps ObjectIds and Dates as strings. Hydrating through the schema restores their real
|
|
12
|
+
// types so the encoder emits $oid and $date — without this, mongoimport would store plain Strings
|
|
13
|
+
// and every join or date range query against the imported data would quietly fail.
|
|
14
|
+
const model = db.modelForCollection(collection);
|
|
15
|
+
const docs = [];
|
|
16
|
+
const filter = options.filter;
|
|
17
|
+
if (filter && Object.keys(filter).length > 0) {
|
|
18
|
+
if (options.includeDeleted || options.includeSyncMetadata) {
|
|
19
|
+
throw new AnchorError("exportCollection: filter cannot be combined with includeDeleted or includeSyncMetadata. " +
|
|
20
|
+
"A filtered export runs as a query, which by definition sees neither tombstones nor sync metadata.");
|
|
21
|
+
}
|
|
22
|
+
// The same path Model.find() takes — casting, index selection and matching all happen once, in
|
|
23
|
+
// the query engine, instead of being reimplemented here and drifting from it.
|
|
24
|
+
const source = model ?? db.collection(collection);
|
|
25
|
+
const rows = await source.find(filter).lean().exec();
|
|
26
|
+
docs.push(...rows);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
for await (const row of db.adapter.scan(collection, { includeDeleted: options.includeDeleted ?? false })) {
|
|
30
|
+
docs.push(toExportable(row, options, model?.schema));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const data = format === "csv"
|
|
34
|
+
? toCsv(docs)
|
|
35
|
+
: format === "ndjson"
|
|
36
|
+
? docs.map((d) => stringifyEJSON(d, { mode })).join("\n")
|
|
37
|
+
: stringifyEJSON(docs, { mode, ...(options.pretty ? { pretty: true } : {}) });
|
|
38
|
+
return { collection, count: docs.length, format, data };
|
|
39
|
+
}
|
|
40
|
+
export async function exportDatabase(db, options = {}) {
|
|
41
|
+
await db.open();
|
|
42
|
+
const collections = (await db.adapter.listCollections()).filter((c) => !c.startsWith("__anchor"));
|
|
43
|
+
const out = [];
|
|
44
|
+
for (const collection of collections) {
|
|
45
|
+
out.push(await exportCollection(db, collection, options));
|
|
46
|
+
}
|
|
47
|
+
return { database: db.name, exportedAt: db.time.now(), collections: out };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Import documents produced by `mongoexport`, `exportCollection`, or any Extended JSON source.
|
|
51
|
+
*
|
|
52
|
+
* Accepts NDJSON or a JSON array, auto-detected, because those are the two things real tooling
|
|
53
|
+
* emits and making the caller declare which one is friction with no benefit.
|
|
54
|
+
*/
|
|
55
|
+
export async function importCollection(db, collection, input, options = {}) {
|
|
56
|
+
await db.open();
|
|
57
|
+
const mode = options.mode ?? "insert";
|
|
58
|
+
const schema = db.modelForCollection(collection)?.schema;
|
|
59
|
+
const docs = typeof input === "string" ? parseDocuments(input, options.format, schema) : input.map(fromEJSON);
|
|
60
|
+
const model = db.collection(collection);
|
|
61
|
+
await db.adapter.ensureCollection(collection);
|
|
62
|
+
if (mode === "replace") {
|
|
63
|
+
const existing = [];
|
|
64
|
+
for await (const row of db.adapter.scan(collection, { includeDeleted: true }))
|
|
65
|
+
existing.push(row.doc._id);
|
|
66
|
+
if (existing.length > 0) {
|
|
67
|
+
await db.adapter.write(existing.map((id) => ({ type: "hardDelete", collection, _id: id })));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const result = { collection, inserted: 0, updated: 0, skipped: 0 };
|
|
71
|
+
for (const raw of docs) {
|
|
72
|
+
if (raw === null || typeof raw !== "object") {
|
|
73
|
+
throw new AnchorError(`Import expected documents but found ${typeof raw}`);
|
|
74
|
+
}
|
|
75
|
+
const doc = raw;
|
|
76
|
+
const id = doc._id === undefined || doc._id === null ? undefined : String(doc._id);
|
|
77
|
+
const existing = id ? await db.adapter.get(collection, id, true) : null;
|
|
78
|
+
if (existing && mode === "insert") {
|
|
79
|
+
result.skipped++;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (options.sync) {
|
|
83
|
+
// Route through the model so the write behaves exactly like a user edit: validation,
|
|
84
|
+
// timestamps, change events and a queued mutation.
|
|
85
|
+
if (existing) {
|
|
86
|
+
await model.replaceOne({ _id: id }, doc);
|
|
87
|
+
result.updated++;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
await model.insertOne(doc);
|
|
91
|
+
result.inserted++;
|
|
92
|
+
}
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
// Bulk restore path: write straight to storage, clean and unqueued.
|
|
96
|
+
const now = db.time.now();
|
|
97
|
+
const row = {
|
|
98
|
+
doc: { ...stripSync(doc), _id: id ?? String(doc._id) },
|
|
99
|
+
meta: {
|
|
100
|
+
version: readSyncVersion(doc),
|
|
101
|
+
hlc: "",
|
|
102
|
+
dirty: false,
|
|
103
|
+
deleted: false,
|
|
104
|
+
createdAt: String(doc.createdAt ?? now),
|
|
105
|
+
updatedAt: String(doc.updatedAt ?? now),
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
await db.adapter.write([
|
|
109
|
+
{ type: existing ? "update" : "insert", collection, _id: row.doc._id, row },
|
|
110
|
+
]);
|
|
111
|
+
if (existing)
|
|
112
|
+
result.updated++;
|
|
113
|
+
else
|
|
114
|
+
result.inserted++;
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
export async function importDatabase(db, data, options = {}) {
|
|
119
|
+
const out = [];
|
|
120
|
+
for (const c of data.collections) {
|
|
121
|
+
out.push(await importCollection(db, c.collection, c.data, { ...options, format: c.format }));
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Work out what a file actually is, so an import does not need the user to declare it.
|
|
127
|
+
*
|
|
128
|
+
* Compass does the same on its import dialog: you pick a file and it tells you what it found. Being
|
|
129
|
+
* wrong here is an unhelpful parse error several steps later, so the checks are ordered from the
|
|
130
|
+
* least ambiguous (a leading bracket) to the most (a comma-bearing header row).
|
|
131
|
+
*/
|
|
132
|
+
export function detectImportFormat(text) {
|
|
133
|
+
const trimmed = text.trimStart();
|
|
134
|
+
if (trimmed.startsWith("["))
|
|
135
|
+
return "array";
|
|
136
|
+
if (trimmed.startsWith("{"))
|
|
137
|
+
return "ndjson";
|
|
138
|
+
return looksLikeCsv(trimmed) ? "csv" : "ndjson";
|
|
139
|
+
}
|
|
140
|
+
/** The exact command that ingests an export produced by `exportCollection`. */
|
|
141
|
+
export function mongoimportCommand(opts) {
|
|
142
|
+
const parts = [
|
|
143
|
+
"mongoimport",
|
|
144
|
+
opts.uri ? `--uri="${opts.uri}"` : "",
|
|
145
|
+
`--db=${opts.database}`,
|
|
146
|
+
`--collection=${opts.collection}`,
|
|
147
|
+
`--file=${opts.file}`,
|
|
148
|
+
opts.format === "array" ? "--jsonArray" : "",
|
|
149
|
+
// --headerline tells mongoimport the first row names the fields, which is how toCsv writes it.
|
|
150
|
+
opts.format === "csv" ? "--type=csv --headerline" : "",
|
|
151
|
+
];
|
|
152
|
+
return parts.filter(Boolean).join(" ");
|
|
153
|
+
}
|
|
154
|
+
function parseDocuments(input, format, schema) {
|
|
155
|
+
const trimmed = input.trim();
|
|
156
|
+
if (trimmed === "")
|
|
157
|
+
return [];
|
|
158
|
+
const detected = format ?? detectImportFormat(trimmed);
|
|
159
|
+
// CSV carries no types, so the collection schema does the work of restoring them. See csv.ts for
|
|
160
|
+
// what CSV can and cannot round-trip.
|
|
161
|
+
if (detected === "csv")
|
|
162
|
+
return fromCsv(trimmed, schema);
|
|
163
|
+
// Auto-detect rather than require the caller to declare it: mongoexport emits NDJSON, our own
|
|
164
|
+
// array format is bracketed, and getting it wrong is an unhelpful failure.
|
|
165
|
+
const looksLikeArray = detected === "array";
|
|
166
|
+
if (looksLikeArray) {
|
|
167
|
+
const parsed = parseEJSON(trimmed);
|
|
168
|
+
if (!Array.isArray(parsed))
|
|
169
|
+
throw new AnchorError("Expected a JSON array of documents");
|
|
170
|
+
return parsed;
|
|
171
|
+
}
|
|
172
|
+
return trimmed
|
|
173
|
+
.split("\n")
|
|
174
|
+
.map((line) => line.trim())
|
|
175
|
+
.filter(Boolean)
|
|
176
|
+
.map((line, i) => {
|
|
177
|
+
try {
|
|
178
|
+
return parseEJSON(line);
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
throw new AnchorError(`Malformed NDJSON on line ${i + 1}: ${err.message}`);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
function toExportable(row, options, schema) {
|
|
186
|
+
const hydrated = schema ? hydrateDoc(row, schema) : { ...row.doc };
|
|
187
|
+
const doc = { ...hydrated };
|
|
188
|
+
// _id is always an ObjectId when it looks like one, whether or not a schema was registered.
|
|
189
|
+
if (typeof doc._id === "string" && ObjectId.isValid(doc._id))
|
|
190
|
+
doc._id = new ObjectId(doc._id);
|
|
191
|
+
if (options.includeSyncMetadata) {
|
|
192
|
+
doc._sync = {
|
|
193
|
+
version: row.meta.version,
|
|
194
|
+
updatedAt: row.meta.updatedAt,
|
|
195
|
+
deleted: row.meta.deleted,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
return doc;
|
|
199
|
+
}
|
|
200
|
+
function stripSync(doc) {
|
|
201
|
+
const { _sync, ...rest } = doc;
|
|
202
|
+
void _sync;
|
|
203
|
+
return rest;
|
|
204
|
+
}
|
|
205
|
+
function readSyncVersion(doc) {
|
|
206
|
+
const sync = doc._sync;
|
|
207
|
+
return typeof sync?.version === "number" ? sync.version : 0;
|
|
208
|
+
}
|
|
209
|
+
export { toEJSON, fromEJSON, stringifyEJSON, parseEJSON };
|
|
210
|
+
//# sourceMappingURL=export-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-import.js","sourceRoot":"","sources":["../../../src/interop/export-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Schema } from "../schema/schema.js";
|
|
2
|
+
import type { Model } from "./model.js";
|
|
3
|
+
export interface ToObjectOptions {
|
|
4
|
+
virtuals?: boolean;
|
|
5
|
+
versionKey?: boolean;
|
|
6
|
+
/** Strip `_id`. Mongoose calls this `_id: false` on the schema; here it is per-call. */
|
|
7
|
+
omitId?: boolean;
|
|
8
|
+
transform?: (doc: AnchorDocument, ret: Record<string, unknown>) => Record<string, unknown> | void;
|
|
9
|
+
}
|
|
10
|
+
export declare class AnchorDocument {
|
|
11
|
+
constructor(model: Model, data?: Record<string, unknown>, isNew?: boolean);
|
|
12
|
+
/** The model this document belongs to. */
|
|
13
|
+
get $model(): Model;
|
|
14
|
+
get schema(): Schema;
|
|
15
|
+
/** True until the document has been persisted. */
|
|
16
|
+
get isNew(): boolean;
|
|
17
|
+
/** Mongoose's `doc.id` — the string form of `_id`. */
|
|
18
|
+
get id(): string | undefined;
|
|
19
|
+
/** Paths whose value differs from the loaded snapshot, plus any forced by `markModified`. */
|
|
20
|
+
modifiedPaths(): string[];
|
|
21
|
+
isModified(path?: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Force a path to be treated as changed.
|
|
24
|
+
*
|
|
25
|
+
* Needed for `Mixed` values mutated in place in ways a diff cannot attribute, and provided for
|
|
26
|
+
* exact Mongoose compatibility.
|
|
27
|
+
*/
|
|
28
|
+
markModified(path: string): this;
|
|
29
|
+
/** Plain object, with virtuals and transforms applied per the schema's `toObject` options. */
|
|
30
|
+
toObject(options?: ToObjectOptions): Record<string, unknown>;
|
|
31
|
+
/** What `JSON.stringify(doc)` uses. Defaults to including virtuals, as Mongoose's toJSON does. */
|
|
32
|
+
toJSON(options?: ToObjectOptions): Record<string, unknown>;
|
|
33
|
+
validate(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Insert when new, otherwise write only the paths that actually changed.
|
|
36
|
+
*
|
|
37
|
+
* Sending a `$set` of the modified paths rather than the whole document matters for sync: a
|
|
38
|
+
* whole-document write would look like an edit to every field and would conflict with any
|
|
39
|
+
* concurrent change, even to an untouched field.
|
|
40
|
+
*/
|
|
41
|
+
save(): Promise<this>;
|
|
42
|
+
deleteOne(): Promise<{
|
|
43
|
+
acknowledged: boolean;
|
|
44
|
+
deletedCount: number;
|
|
45
|
+
}>;
|
|
46
|
+
/** Populate a ref on this single document. */
|
|
47
|
+
populate(path: string | {
|
|
48
|
+
path: string;
|
|
49
|
+
select?: string;
|
|
50
|
+
}): Promise<this>;
|
|
51
|
+
/** Discard local changes and reload from storage. */
|
|
52
|
+
reload(): Promise<this>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Build the callable model — `new User({...})` alongside `User.find()`.
|
|
56
|
+
*
|
|
57
|
+
* Mongoose's `model()` returns something that is both a constructor and a namespace of statics.
|
|
58
|
+
* Reproducing that shape is what lets a Mongoose codebase move over untouched.
|
|
59
|
+
*/
|
|
60
|
+
export interface ModelConstructor<T extends Record<string, unknown> = Record<string, unknown>> extends Omit<Model<T>, never> {
|
|
61
|
+
new (data?: Partial<T>): AnchorDocument & T;
|
|
62
|
+
/** Wrap an existing plain object as a document, without marking it new. */
|
|
63
|
+
hydrate(data: Record<string, unknown>): AnchorDocument & T;
|
|
64
|
+
}
|
|
65
|
+
export declare function createModelConstructor<T extends Record<string, unknown>>(model: Model<T>): ModelConstructor<T>;
|
|
66
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/model/document.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA6BxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wFAAwF;IACxF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACnG;AAED,qBAAa,cAAc;gBACb,KAAK,EAAE,KAAK,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,KAAK,UAAO;IAsB1E,0CAA0C;IAC1C,IAAI,MAAM,IAAI,KAAK,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,kDAAkD;IAClD,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,sDAAsD;IACtD,IAAI,EAAE,IAAI,MAAM,GAAG,SAAS,CAG3B;IAED,6FAA6F;IAC7F,aAAa,IAAI,MAAM,EAAE;IAoBzB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAOlC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAyBhE,kGAAkG;IAClG,MAAM,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKxD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDrB,SAAS,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAK3E,8CAA8C;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/E,qDAAqD;IAC/C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAc9B;AAcD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC3F,SAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAC7B,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;IAC5C,2EAA2E;IAC3E,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;CAC5D;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAkE9G"}
|