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,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseEJSON = exports.stringifyEJSON = exports.fromEJSON = exports.toEJSON = void 0;
|
|
4
|
+
exports.exportCollection = exportCollection;
|
|
5
|
+
exports.exportDatabase = exportDatabase;
|
|
6
|
+
exports.importCollection = importCollection;
|
|
7
|
+
exports.importDatabase = importDatabase;
|
|
8
|
+
exports.detectImportFormat = detectImportFormat;
|
|
9
|
+
exports.mongoimportCommand = mongoimportCommand;
|
|
10
|
+
const errors_ts_1 = require("../core/errors.js");
|
|
11
|
+
const object_id_ts_1 = require("../core/object-id.js");
|
|
12
|
+
const model_ts_1 = require("../model/model.js");
|
|
13
|
+
const ejson_ts_1 = require("./ejson.js");
|
|
14
|
+
Object.defineProperty(exports, "parseEJSON", { enumerable: true, get: function () { return ejson_ts_1.parseEJSON; } });
|
|
15
|
+
Object.defineProperty(exports, "stringifyEJSON", { enumerable: true, get: function () { return ejson_ts_1.stringifyEJSON; } });
|
|
16
|
+
Object.defineProperty(exports, "toEJSON", { enumerable: true, get: function () { return ejson_ts_1.toEJSON; } });
|
|
17
|
+
Object.defineProperty(exports, "fromEJSON", { enumerable: true, get: function () { return ejson_ts_1.fromEJSON; } });
|
|
18
|
+
const csv_ts_1 = require("./csv.js");
|
|
19
|
+
/** Export one collection in a `mongoimport`-ready form. */
|
|
20
|
+
async function exportCollection(db, collection, options = {}) {
|
|
21
|
+
await db.open();
|
|
22
|
+
const format = options.format ?? "ndjson";
|
|
23
|
+
const mode = options.mode ?? "canonical";
|
|
24
|
+
// Storage keeps ObjectIds and Dates as strings. Hydrating through the schema restores their real
|
|
25
|
+
// types so the encoder emits $oid and $date — without this, mongoimport would store plain Strings
|
|
26
|
+
// and every join or date range query against the imported data would quietly fail.
|
|
27
|
+
const model = db.modelForCollection(collection);
|
|
28
|
+
const docs = [];
|
|
29
|
+
const filter = options.filter;
|
|
30
|
+
if (filter && Object.keys(filter).length > 0) {
|
|
31
|
+
if (options.includeDeleted || options.includeSyncMetadata) {
|
|
32
|
+
throw new errors_ts_1.AnchorError("exportCollection: filter cannot be combined with includeDeleted or includeSyncMetadata. " +
|
|
33
|
+
"A filtered export runs as a query, which by definition sees neither tombstones nor sync metadata.");
|
|
34
|
+
}
|
|
35
|
+
// The same path Model.find() takes — casting, index selection and matching all happen once, in
|
|
36
|
+
// the query engine, instead of being reimplemented here and drifting from it.
|
|
37
|
+
const source = model ?? db.collection(collection);
|
|
38
|
+
const rows = await source.find(filter).lean().exec();
|
|
39
|
+
docs.push(...rows);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
for await (const row of db.adapter.scan(collection, { includeDeleted: options.includeDeleted ?? false })) {
|
|
43
|
+
docs.push(toExportable(row, options, model?.schema));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const data = format === "csv"
|
|
47
|
+
? (0, csv_ts_1.toCsv)(docs)
|
|
48
|
+
: format === "ndjson"
|
|
49
|
+
? docs.map((d) => (0, ejson_ts_1.stringifyEJSON)(d, { mode })).join("\n")
|
|
50
|
+
: (0, ejson_ts_1.stringifyEJSON)(docs, { mode, ...(options.pretty ? { pretty: true } : {}) });
|
|
51
|
+
return { collection, count: docs.length, format, data };
|
|
52
|
+
}
|
|
53
|
+
async function exportDatabase(db, options = {}) {
|
|
54
|
+
await db.open();
|
|
55
|
+
const collections = (await db.adapter.listCollections()).filter((c) => !c.startsWith("__anchor"));
|
|
56
|
+
const out = [];
|
|
57
|
+
for (const collection of collections) {
|
|
58
|
+
out.push(await exportCollection(db, collection, options));
|
|
59
|
+
}
|
|
60
|
+
return { database: db.name, exportedAt: db.time.now(), collections: out };
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Import documents produced by `mongoexport`, `exportCollection`, or any Extended JSON source.
|
|
64
|
+
*
|
|
65
|
+
* Accepts NDJSON or a JSON array, auto-detected, because those are the two things real tooling
|
|
66
|
+
* emits and making the caller declare which one is friction with no benefit.
|
|
67
|
+
*/
|
|
68
|
+
async function importCollection(db, collection, input, options = {}) {
|
|
69
|
+
await db.open();
|
|
70
|
+
const mode = options.mode ?? "insert";
|
|
71
|
+
const schema = db.modelForCollection(collection)?.schema;
|
|
72
|
+
const docs = typeof input === "string" ? parseDocuments(input, options.format, schema) : input.map(ejson_ts_1.fromEJSON);
|
|
73
|
+
const model = db.collection(collection);
|
|
74
|
+
await db.adapter.ensureCollection(collection);
|
|
75
|
+
if (mode === "replace") {
|
|
76
|
+
const existing = [];
|
|
77
|
+
for await (const row of db.adapter.scan(collection, { includeDeleted: true }))
|
|
78
|
+
existing.push(row.doc._id);
|
|
79
|
+
if (existing.length > 0) {
|
|
80
|
+
await db.adapter.write(existing.map((id) => ({ type: "hardDelete", collection, _id: id })));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const result = { collection, inserted: 0, updated: 0, skipped: 0 };
|
|
84
|
+
for (const raw of docs) {
|
|
85
|
+
if (raw === null || typeof raw !== "object") {
|
|
86
|
+
throw new errors_ts_1.AnchorError(`Import expected documents but found ${typeof raw}`);
|
|
87
|
+
}
|
|
88
|
+
const doc = raw;
|
|
89
|
+
const id = doc._id === undefined || doc._id === null ? undefined : String(doc._id);
|
|
90
|
+
const existing = id ? await db.adapter.get(collection, id, true) : null;
|
|
91
|
+
if (existing && mode === "insert") {
|
|
92
|
+
result.skipped++;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (options.sync) {
|
|
96
|
+
// Route through the model so the write behaves exactly like a user edit: validation,
|
|
97
|
+
// timestamps, change events and a queued mutation.
|
|
98
|
+
if (existing) {
|
|
99
|
+
await model.replaceOne({ _id: id }, doc);
|
|
100
|
+
result.updated++;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
await model.insertOne(doc);
|
|
104
|
+
result.inserted++;
|
|
105
|
+
}
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
// Bulk restore path: write straight to storage, clean and unqueued.
|
|
109
|
+
const now = db.time.now();
|
|
110
|
+
const row = {
|
|
111
|
+
doc: { ...stripSync(doc), _id: id ?? String(doc._id) },
|
|
112
|
+
meta: {
|
|
113
|
+
version: readSyncVersion(doc),
|
|
114
|
+
hlc: "",
|
|
115
|
+
dirty: false,
|
|
116
|
+
deleted: false,
|
|
117
|
+
createdAt: String(doc.createdAt ?? now),
|
|
118
|
+
updatedAt: String(doc.updatedAt ?? now),
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
await db.adapter.write([
|
|
122
|
+
{ type: existing ? "update" : "insert", collection, _id: row.doc._id, row },
|
|
123
|
+
]);
|
|
124
|
+
if (existing)
|
|
125
|
+
result.updated++;
|
|
126
|
+
else
|
|
127
|
+
result.inserted++;
|
|
128
|
+
}
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
async function importDatabase(db, data, options = {}) {
|
|
132
|
+
const out = [];
|
|
133
|
+
for (const c of data.collections) {
|
|
134
|
+
out.push(await importCollection(db, c.collection, c.data, { ...options, format: c.format }));
|
|
135
|
+
}
|
|
136
|
+
return out;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Work out what a file actually is, so an import does not need the user to declare it.
|
|
140
|
+
*
|
|
141
|
+
* Compass does the same on its import dialog: you pick a file and it tells you what it found. Being
|
|
142
|
+
* wrong here is an unhelpful parse error several steps later, so the checks are ordered from the
|
|
143
|
+
* least ambiguous (a leading bracket) to the most (a comma-bearing header row).
|
|
144
|
+
*/
|
|
145
|
+
function detectImportFormat(text) {
|
|
146
|
+
const trimmed = text.trimStart();
|
|
147
|
+
if (trimmed.startsWith("["))
|
|
148
|
+
return "array";
|
|
149
|
+
if (trimmed.startsWith("{"))
|
|
150
|
+
return "ndjson";
|
|
151
|
+
return (0, csv_ts_1.looksLikeCsv)(trimmed) ? "csv" : "ndjson";
|
|
152
|
+
}
|
|
153
|
+
/** The exact command that ingests an export produced by `exportCollection`. */
|
|
154
|
+
function mongoimportCommand(opts) {
|
|
155
|
+
const parts = [
|
|
156
|
+
"mongoimport",
|
|
157
|
+
opts.uri ? `--uri="${opts.uri}"` : "",
|
|
158
|
+
`--db=${opts.database}`,
|
|
159
|
+
`--collection=${opts.collection}`,
|
|
160
|
+
`--file=${opts.file}`,
|
|
161
|
+
opts.format === "array" ? "--jsonArray" : "",
|
|
162
|
+
// --headerline tells mongoimport the first row names the fields, which is how toCsv writes it.
|
|
163
|
+
opts.format === "csv" ? "--type=csv --headerline" : "",
|
|
164
|
+
];
|
|
165
|
+
return parts.filter(Boolean).join(" ");
|
|
166
|
+
}
|
|
167
|
+
function parseDocuments(input, format, schema) {
|
|
168
|
+
const trimmed = input.trim();
|
|
169
|
+
if (trimmed === "")
|
|
170
|
+
return [];
|
|
171
|
+
const detected = format ?? detectImportFormat(trimmed);
|
|
172
|
+
// CSV carries no types, so the collection schema does the work of restoring them. See csv.ts for
|
|
173
|
+
// what CSV can and cannot round-trip.
|
|
174
|
+
if (detected === "csv")
|
|
175
|
+
return (0, csv_ts_1.fromCsv)(trimmed, schema);
|
|
176
|
+
// Auto-detect rather than require the caller to declare it: mongoexport emits NDJSON, our own
|
|
177
|
+
// array format is bracketed, and getting it wrong is an unhelpful failure.
|
|
178
|
+
const looksLikeArray = detected === "array";
|
|
179
|
+
if (looksLikeArray) {
|
|
180
|
+
const parsed = (0, ejson_ts_1.parseEJSON)(trimmed);
|
|
181
|
+
if (!Array.isArray(parsed))
|
|
182
|
+
throw new errors_ts_1.AnchorError("Expected a JSON array of documents");
|
|
183
|
+
return parsed;
|
|
184
|
+
}
|
|
185
|
+
return trimmed
|
|
186
|
+
.split("\n")
|
|
187
|
+
.map((line) => line.trim())
|
|
188
|
+
.filter(Boolean)
|
|
189
|
+
.map((line, i) => {
|
|
190
|
+
try {
|
|
191
|
+
return (0, ejson_ts_1.parseEJSON)(line);
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
throw new errors_ts_1.AnchorError(`Malformed NDJSON on line ${i + 1}: ${err.message}`);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
function toExportable(row, options, schema) {
|
|
199
|
+
const hydrated = schema ? (0, model_ts_1.hydrateDoc)(row, schema) : { ...row.doc };
|
|
200
|
+
const doc = { ...hydrated };
|
|
201
|
+
// _id is always an ObjectId when it looks like one, whether or not a schema was registered.
|
|
202
|
+
if (typeof doc._id === "string" && object_id_ts_1.ObjectId.isValid(doc._id))
|
|
203
|
+
doc._id = new object_id_ts_1.ObjectId(doc._id);
|
|
204
|
+
if (options.includeSyncMetadata) {
|
|
205
|
+
doc._sync = {
|
|
206
|
+
version: row.meta.version,
|
|
207
|
+
updatedAt: row.meta.updatedAt,
|
|
208
|
+
deleted: row.meta.deleted,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
return doc;
|
|
212
|
+
}
|
|
213
|
+
function stripSync(doc) {
|
|
214
|
+
const { _sync, ...rest } = doc;
|
|
215
|
+
void _sync;
|
|
216
|
+
return rest;
|
|
217
|
+
}
|
|
218
|
+
function readSyncVersion(doc) {
|
|
219
|
+
const sync = doc._sync;
|
|
220
|
+
return typeof sync?.version === "number" ? sync.version : 0;
|
|
221
|
+
}
|
|
222
|
+
//# 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"}
|