document-drive 5.0.0-staging.9 → 5.0.1-staging.2
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/dist/index.d.ts +17 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -20
- package/dist/index.js.map +1 -1
- package/dist/prisma/schema.prisma +1 -1
- package/dist/src/cache/index.d.ts +5 -0
- package/dist/src/cache/index.d.ts.map +1 -0
- package/dist/src/cache/index.js +5 -0
- package/dist/src/cache/index.js.map +1 -0
- package/dist/src/cache/lru.d.ts +2 -13
- package/dist/src/cache/lru.d.ts.map +1 -1
- package/dist/src/cache/lru.js +1 -2
- package/dist/src/cache/lru.js.map +1 -1
- package/dist/src/cache/memory.d.ts +3 -14
- package/dist/src/cache/memory.d.ts.map +1 -1
- package/dist/src/cache/memory.js +2 -3
- package/dist/src/cache/memory.js.map +1 -1
- package/dist/src/cache/redis.d.ts +3 -5
- package/dist/src/cache/redis.d.ts.map +1 -1
- package/dist/src/cache/redis.js +2 -4
- package/dist/src/cache/redis.js.map +1 -1
- package/dist/src/cache/types.d.ts +23 -2
- package/dist/src/cache/types.d.ts.map +1 -1
- package/dist/src/cache/util.d.ts +1 -1
- package/dist/src/cache/util.d.ts.map +1 -1
- package/dist/src/cache/util.js +11 -9
- package/dist/src/cache/util.js.map +1 -1
- package/dist/src/drive-document-model/constants.d.ts +2 -1
- package/dist/src/drive-document-model/constants.d.ts.map +1 -1
- package/dist/src/drive-document-model/constants.js +2 -2
- package/dist/src/drive-document-model/constants.js.map +1 -1
- package/dist/src/drive-document-model/gen/document-model.d.ts +2 -2
- package/dist/src/drive-document-model/gen/document-model.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/document-model.js +1 -1
- package/dist/src/drive-document-model/gen/document-model.js.map +1 -1
- package/dist/src/drive-document-model/gen/drive/actions.d.ts +12 -2
- package/dist/src/drive-document-model/gen/drive/actions.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/drive/creators.d.ts +2 -2
- package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/drive/creators.js +10 -10
- package/dist/src/drive-document-model/gen/drive/creators.js.map +1 -1
- package/dist/src/drive-document-model/gen/drive/index.d.ts +2 -0
- package/dist/src/drive-document-model/gen/drive/index.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/index.js +2 -0
- package/dist/src/drive-document-model/gen/drive/index.js.map +1 -0
- package/dist/src/drive-document-model/gen/drive/types.d.ts +2 -0
- package/dist/src/drive-document-model/gen/drive/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/drive/types.js +2 -0
- package/dist/src/drive-document-model/gen/drive/types.js.map +1 -0
- package/dist/src/drive-document-model/gen/index.d.ts +7 -6
- package/dist/src/drive-document-model/gen/index.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/index.js +7 -5
- package/dist/src/drive-document-model/gen/index.js.map +1 -1
- package/dist/src/drive-document-model/gen/node/actions.d.ts +11 -2
- package/dist/src/drive-document-model/gen/node/actions.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/node/creators.d.ts +1 -2
- package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/node/creators.js +9 -9
- package/dist/src/drive-document-model/gen/node/creators.js.map +1 -1
- package/dist/src/drive-document-model/gen/node/index.d.ts +2 -0
- package/dist/src/drive-document-model/gen/node/index.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/index.js +2 -0
- package/dist/src/drive-document-model/gen/node/index.js.map +1 -0
- package/dist/src/drive-document-model/gen/node/types.d.ts +2 -0
- package/dist/src/drive-document-model/gen/node/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/gen/node/types.js +2 -0
- package/dist/src/drive-document-model/gen/node/types.js.map +1 -0
- package/dist/src/drive-document-model/gen/ph-factories.d.ts +5 -20
- package/dist/src/drive-document-model/gen/ph-factories.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/ph-factories.js +1 -13
- package/dist/src/drive-document-model/gen/ph-factories.js.map +1 -1
- package/dist/src/drive-document-model/gen/reducer.d.ts +3 -3
- package/dist/src/drive-document-model/gen/reducer.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/reducer.js +34 -36
- package/dist/src/drive-document-model/gen/reducer.js.map +1 -1
- package/dist/src/drive-document-model/gen/schema/index.d.ts +2 -2
- package/dist/src/drive-document-model/gen/schema/index.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/schema/index.js +2 -2
- package/dist/src/drive-document-model/gen/schema/index.js.map +1 -1
- package/dist/src/drive-document-model/gen/schema/types.d.ts +8 -3
- package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/schema/zod.d.ts +28 -28
- package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/schema/zod.js.map +1 -1
- package/dist/src/drive-document-model/gen/types.d.ts +5 -6
- package/dist/src/drive-document-model/gen/types.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/types.js +3 -1
- package/dist/src/drive-document-model/gen/types.js.map +1 -1
- package/dist/src/drive-document-model/gen/utils.d.ts +7 -9
- package/dist/src/drive-document-model/gen/utils.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/utils.js +21 -34
- package/dist/src/drive-document-model/gen/utils.js.map +1 -1
- package/dist/src/drive-document-model/index.d.ts +4 -1
- package/dist/src/drive-document-model/index.d.ts.map +1 -1
- package/dist/src/drive-document-model/index.js +4 -1
- package/dist/src/drive-document-model/index.js.map +1 -1
- package/dist/src/drive-document-model/module.d.ts +2 -27
- package/dist/src/drive-document-model/module.d.ts.map +1 -1
- package/dist/src/drive-document-model/module.js +17 -16
- package/dist/src/drive-document-model/module.js.map +1 -1
- package/dist/src/drive-document-model/src/index.d.ts +3 -0
- package/dist/src/drive-document-model/src/index.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/index.js +3 -0
- package/dist/src/drive-document-model/src/index.js.map +1 -0
- package/dist/src/drive-document-model/src/reducers/drive.d.ts +2 -2
- package/dist/src/drive-document-model/src/reducers/drive.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/reducers/drive.js +1 -1
- package/dist/src/drive-document-model/src/reducers/drive.js.map +1 -1
- package/dist/src/drive-document-model/src/reducers/index.d.ts +3 -0
- package/dist/src/drive-document-model/src/reducers/index.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/reducers/index.js +3 -0
- package/dist/src/drive-document-model/src/reducers/index.js.map +1 -0
- package/dist/src/drive-document-model/src/reducers/node.d.ts +2 -2
- package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/reducers/node.js +3 -4
- package/dist/src/drive-document-model/src/reducers/node.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/actions.test.js +20 -22
- package/dist/src/drive-document-model/src/tests/actions.test.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/base.test.js +12 -52
- package/dist/src/drive-document-model/src/tests/base.test.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/document-model.test.js +3 -3
- package/dist/src/drive-document-model/src/tests/document-model.test.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/drive.test.js +5 -8
- package/dist/src/drive-document-model/src/tests/drive.test.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/generate-mock.d.ts +2 -1
- package/dist/src/drive-document-model/src/tests/generate-mock.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/tests/node.test.js +32 -35
- package/dist/src/drive-document-model/src/tests/node.test.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/test-factories.d.ts +1 -6
- package/dist/src/drive-document-model/src/tests/test-factories.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/tests/test-factories.js +4 -11
- package/dist/src/drive-document-model/src/tests/test-factories.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/utils.test.js +1 -1
- package/dist/src/drive-document-model/src/tests/utils.test.js.map +1 -1
- package/dist/src/drive-document-model/src/types.d.ts +8 -0
- package/dist/src/drive-document-model/src/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/src/types.js +2 -0
- package/dist/src/drive-document-model/src/types.js.map +1 -0
- package/dist/src/drive-document-model/src/utils.d.ts +1 -7
- package/dist/src/drive-document-model/src/utils.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/utils.js.map +1 -1
- package/dist/src/drive-document-model/types.d.ts +10 -0
- package/dist/src/drive-document-model/types.d.ts.map +1 -0
- package/dist/src/drive-document-model/types.js +3 -0
- package/dist/src/drive-document-model/types.js.map +1 -0
- package/dist/src/processors/index.d.ts +4 -0
- package/dist/src/processors/index.d.ts.map +1 -0
- package/dist/src/processors/index.js +4 -0
- package/dist/src/processors/index.js.map +1 -0
- package/dist/src/processors/processor-manager.d.ts +1 -2
- package/dist/src/processors/processor-manager.d.ts.map +1 -1
- package/dist/src/processors/processor-manager.js +3 -5
- package/dist/src/processors/processor-manager.js.map +1 -1
- package/dist/src/processors/relational.d.ts +3 -15
- package/dist/src/processors/relational.d.ts.map +1 -1
- package/dist/src/processors/relational.js +4 -7
- package/dist/src/processors/relational.js.map +1 -1
- package/dist/src/processors/types.d.ts +16 -7
- package/dist/src/processors/types.d.ts.map +1 -1
- package/dist/src/processors/utils.d.ts +1 -2
- package/dist/src/processors/utils.d.ts.map +1 -1
- package/dist/src/processors/utils.js +0 -2
- package/dist/src/processors/utils.js.map +1 -1
- package/dist/src/queue/base.d.ts +1 -1
- package/dist/src/queue/base.d.ts.map +1 -1
- package/dist/src/queue/event.d.ts +3 -4
- package/dist/src/queue/event.d.ts.map +1 -1
- package/dist/src/queue/event.js +2 -5
- package/dist/src/queue/event.js.map +1 -1
- package/dist/src/queue/index.d.ts +5 -0
- package/dist/src/queue/index.d.ts.map +1 -0
- package/dist/src/queue/index.js +5 -0
- package/dist/src/queue/index.js.map +1 -0
- package/dist/src/queue/redis.js +1 -1
- package/dist/src/queue/redis.js.map +1 -1
- package/dist/src/queue/types.d.ts +1 -4
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js +1 -9
- package/dist/src/queue/types.js.map +1 -1
- package/dist/src/queue/utils.d.ts +5 -0
- package/dist/src/queue/utils.d.ts.map +1 -0
- package/dist/src/queue/utils.js +10 -0
- package/dist/src/queue/utils.js.map +1 -0
- package/dist/src/read-mode/index.d.ts +4 -0
- package/dist/src/read-mode/index.d.ts.map +1 -0
- package/dist/src/read-mode/index.js +4 -0
- package/dist/src/read-mode/index.js.map +1 -0
- package/dist/src/read-mode/server.d.ts +1 -2
- package/dist/src/read-mode/server.d.ts.map +1 -1
- package/dist/src/read-mode/server.js +1 -3
- package/dist/src/read-mode/server.js.map +1 -1
- package/dist/src/read-mode/service.d.ts +2 -3
- package/dist/src/read-mode/service.d.ts.map +1 -1
- package/dist/src/read-mode/service.js +1 -5
- package/dist/src/read-mode/service.js.map +1 -1
- package/dist/src/read-mode/types.d.ts +2 -6
- package/dist/src/read-mode/types.d.ts.map +1 -1
- package/dist/src/server/base-server.d.ts +17 -26
- package/dist/src/server/base-server.d.ts.map +1 -1
- package/dist/src/server/base-server.js +304 -36
- package/dist/src/server/base-server.js.map +1 -1
- package/dist/src/server/builder.d.ts +2 -5
- package/dist/src/server/builder.d.ts.map +1 -1
- package/dist/src/server/builder.js +8 -10
- package/dist/src/server/builder.js.map +1 -1
- package/dist/src/server/constants.d.ts +3 -0
- package/dist/src/server/constants.d.ts.map +1 -1
- package/dist/src/server/constants.js +3 -0
- package/dist/src/server/constants.js.map +1 -1
- package/dist/src/server/error.d.ts +1 -1
- package/dist/src/server/error.d.ts.map +1 -1
- package/dist/src/server/event-emitter.d.ts +2 -2
- package/dist/src/server/event-emitter.d.ts.map +1 -1
- package/dist/src/server/event-emitter.js.map +1 -1
- package/dist/src/server/index.d.ts +10 -0
- package/dist/src/server/index.d.ts.map +1 -0
- package/dist/src/server/index.js +10 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/server/listener/index.d.ts +2 -0
- package/dist/src/server/listener/index.d.ts.map +1 -1
- package/dist/src/server/listener/index.js +2 -0
- package/dist/src/server/listener/index.js.map +1 -1
- package/dist/src/server/listener/listener-manager.d.ts +4 -5
- package/dist/src/server/listener/listener-manager.d.ts.map +1 -1
- package/dist/src/server/listener/listener-manager.js +2 -5
- package/dist/src/server/listener/listener-manager.js.map +1 -1
- package/dist/src/server/listener/transmitter/factory.d.ts +3 -4
- package/dist/src/server/listener/transmitter/factory.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/factory.js +2 -3
- package/dist/src/server/listener/transmitter/factory.js.map +1 -1
- package/dist/src/server/listener/transmitter/index.d.ts +5 -0
- package/dist/src/server/listener/transmitter/index.d.ts.map +1 -0
- package/dist/src/server/listener/transmitter/index.js +5 -0
- package/dist/src/server/listener/transmitter/index.js.map +1 -0
- package/dist/src/server/listener/transmitter/internal.d.ts +3 -22
- package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/internal.js +11 -16
- package/dist/src/server/listener/transmitter/internal.js.map +1 -1
- package/dist/src/server/listener/transmitter/pull-responder.d.ts +4 -22
- package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/pull-responder.js +3 -7
- package/dist/src/server/listener/transmitter/pull-responder.js.map +1 -1
- package/dist/src/server/listener/transmitter/switchboard-push.d.ts +1 -2
- package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/switchboard-push.js +1 -3
- package/dist/src/server/listener/transmitter/switchboard-push.js.map +1 -1
- package/dist/src/server/listener/transmitter/types.d.ts +32 -2
- package/dist/src/server/listener/transmitter/types.d.ts.map +1 -1
- package/dist/src/server/listener/types.d.ts +2 -0
- package/dist/src/server/listener/types.d.ts.map +1 -0
- package/dist/src/server/listener/types.js +2 -0
- package/dist/src/server/listener/types.js.map +1 -0
- package/dist/src/server/sync-manager.d.ts +4 -7
- package/dist/src/server/sync-manager.d.ts.map +1 -1
- package/dist/src/server/sync-manager.js +4 -7
- package/dist/src/server/sync-manager.js.map +1 -1
- package/dist/src/server/sync-unit-map.d.ts +4 -25
- package/dist/src/server/sync-unit-map.d.ts.map +1 -1
- package/dist/src/server/sync-unit-map.js +0 -1
- package/dist/src/server/sync-unit-map.js.map +1 -1
- package/dist/src/server/types.d.ts +46 -32
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/server/types.js +10 -12
- package/dist/src/server/types.js.map +1 -1
- package/dist/src/server/utils.d.ts +1 -2
- package/dist/src/server/utils.d.ts.map +1 -1
- package/dist/src/server/utils.js +7 -5
- package/dist/src/server/utils.js.map +1 -1
- package/dist/src/storage/browser.d.ts +2 -2
- package/dist/src/storage/browser.d.ts.map +1 -1
- package/dist/src/storage/browser.js +5 -7
- package/dist/src/storage/browser.js.map +1 -1
- package/dist/src/storage/filesystem.d.ts +3 -3
- package/dist/src/storage/filesystem.d.ts.map +1 -1
- package/dist/src/storage/filesystem.js +27 -8
- package/dist/src/storage/filesystem.js.map +1 -1
- package/dist/src/storage/index.d.ts +4 -0
- package/dist/src/storage/index.d.ts.map +1 -0
- package/dist/src/storage/index.js +4 -0
- package/dist/src/storage/index.js.map +1 -0
- package/dist/src/storage/ipfs.d.ts +2 -3
- package/dist/src/storage/ipfs.d.ts.map +1 -1
- package/dist/src/storage/ipfs.js +5 -3
- package/dist/src/storage/ipfs.js.map +1 -1
- package/dist/src/storage/memory.d.ts +3 -3
- package/dist/src/storage/memory.d.ts.map +1 -1
- package/dist/src/storage/memory.js +30 -13
- package/dist/src/storage/memory.js.map +1 -1
- package/dist/src/storage/prisma/client/edge.js +11 -7
- package/dist/src/storage/prisma/client/index.js +17 -9
- package/dist/src/storage/prisma/client/libquery_engine-darwin-arm64.dylib.node +0 -0
- package/dist/src/storage/prisma/client/package.json +1 -1
- package/dist/src/storage/prisma/client/schema.prisma +1 -1
- package/dist/src/storage/prisma/factory.d.ts +3 -2
- package/dist/src/storage/prisma/factory.d.ts.map +1 -1
- package/dist/src/storage/prisma/factory.js +6 -2
- package/dist/src/storage/prisma/factory.js.map +1 -1
- package/dist/src/storage/prisma/prisma.d.ts +4 -5
- package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
- package/dist/src/storage/prisma/prisma.js +27 -20
- package/dist/src/storage/prisma/prisma.js.map +1 -1
- package/dist/src/storage/types.d.ts +1 -2
- package/dist/src/storage/types.d.ts.map +1 -1
- package/dist/src/storage/utils.d.ts +1 -1
- package/dist/src/storage/utils.d.ts.map +1 -1
- package/dist/src/utils/default-drives-manager.d.ts +1 -12
- package/dist/src/utils/default-drives-manager.d.ts.map +1 -1
- package/dist/src/utils/default-drives-manager.js +1 -2
- package/dist/src/utils/default-drives-manager.js.map +1 -1
- package/dist/src/utils/gql-transformations.d.ts +13 -5
- package/dist/src/utils/gql-transformations.d.ts.map +1 -1
- package/dist/src/utils/gql-transformations.js +10 -3
- package/dist/src/utils/gql-transformations.js.map +1 -1
- package/dist/src/utils/graphql.d.ts +4 -30
- package/dist/src/utils/graphql.d.ts.map +1 -1
- package/dist/src/utils/graphql.js +3 -4
- package/dist/src/utils/graphql.js.map +1 -1
- package/dist/src/utils/index.d.ts +8 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +8 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/logger.d.ts +2 -8
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.js +6 -7
- package/dist/src/utils/logger.js.map +1 -1
- package/dist/src/utils/migrations.d.ts +1 -1
- package/dist/src/utils/migrations.d.ts.map +1 -1
- package/dist/src/utils/migrations.js +7 -2
- package/dist/src/utils/migrations.js.map +1 -1
- package/dist/src/utils/misc.d.ts +2 -6
- package/dist/src/utils/misc.d.ts.map +1 -1
- package/dist/src/utils/misc.js +3 -6
- package/dist/src/utils/misc.js.map +1 -1
- package/dist/src/utils/run-asap.d.ts +7 -11
- package/dist/src/utils/run-asap.d.ts.map +1 -1
- package/dist/src/utils/run-asap.js +110 -122
- package/dist/src/utils/run-asap.js.map +1 -1
- package/dist/src/utils/types.d.ts +50 -0
- package/dist/src/utils/types.d.ts.map +1 -0
- package/dist/src/utils/types.js +2 -0
- package/dist/src/utils/types.js.map +1 -0
- package/dist/test/benchmarks/getDrive.json +10 -0
- package/dist/test/benchmarks/processOperations.bench.d.ts +2 -0
- package/dist/test/benchmarks/processOperations.bench.d.ts.map +1 -0
- package/dist/test/benchmarks/processOperations.bench.js +148 -0
- package/dist/test/benchmarks/processOperations.bench.js.map +1 -0
- package/dist/test/benchmarks/queue.bench.d.ts +2 -0
- package/dist/test/benchmarks/queue.bench.d.ts.map +1 -0
- package/dist/test/benchmarks/queue.bench.js +51 -0
- package/dist/test/benchmarks/queue.bench.js.map +1 -0
- package/dist/test/benchmarks/strands.small.json +37085 -0
- package/dist/test/cache.test.d.ts +2 -0
- package/dist/test/cache.test.d.ts.map +1 -0
- package/dist/test/cache.test.js +275 -0
- package/dist/test/cache.test.js.map +1 -0
- package/dist/test/default-remote-drives.test.d.ts +2 -0
- package/dist/test/default-remote-drives.test.d.ts.map +1 -0
- package/dist/test/default-remote-drives.test.js +445 -0
- package/dist/test/default-remote-drives.test.js.map +1 -0
- package/dist/test/drive-operations.test.d.ts +2 -0
- package/dist/test/drive-operations.test.d.ts.map +1 -0
- package/dist/test/drive-operations.test.js +134 -0
- package/dist/test/drive-operations.test.js.map +1 -0
- package/dist/test/dual-action-create.test.d.ts +2 -0
- package/dist/test/dual-action-create.test.d.ts.map +1 -0
- package/dist/test/dual-action-create.test.js +187 -0
- package/dist/test/dual-action-create.test.js.map +1 -0
- package/dist/test/dual-action-migration.test.d.ts +2 -0
- package/dist/test/dual-action-migration.test.d.ts.map +1 -0
- package/dist/test/dual-action-migration.test.js +344 -0
- package/dist/test/dual-action-migration.test.js.map +1 -0
- package/dist/test/graphql.test.d.ts +2 -0
- package/dist/test/graphql.test.d.ts.map +1 -0
- package/dist/test/graphql.test.js +9 -0
- package/dist/test/graphql.test.js.map +1 -0
- package/dist/test/index.d.ts +2 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +2 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test/internal-listener.test.d.ts +2 -0
- package/dist/test/internal-listener.test.d.ts.map +1 -0
- package/dist/test/internal-listener.test.js +243 -0
- package/dist/test/internal-listener.test.js.map +1 -0
- package/dist/test/queue.test.d.ts +2 -0
- package/dist/test/queue.test.d.ts.map +1 -0
- package/dist/test/queue.test.js +324 -0
- package/dist/test/queue.test.js.map +1 -0
- package/dist/test/reactor.test.d.ts +2 -0
- package/dist/test/reactor.test.d.ts.map +1 -0
- package/dist/test/reactor.test.js +32 -0
- package/dist/test/reactor.test.js.map +1 -0
- package/dist/test/read-mode.test.d.ts +2 -0
- package/dist/test/read-mode.test.d.ts.map +1 -0
- package/dist/test/read-mode.test.js +569 -0
- package/dist/test/read-mode.test.js.map +1 -0
- package/dist/test/server/driveOperationsConflictResolution.test.d.ts +2 -0
- package/dist/test/server/driveOperationsConflictResolution.test.d.ts.map +1 -0
- package/dist/test/server/driveOperationsConflictResolution.test.js +486 -0
- package/dist/test/server/driveOperationsConflictResolution.test.js.map +1 -0
- package/dist/test/server/mergeOperations.test.d.ts +2 -0
- package/dist/test/server/mergeOperations.test.d.ts.map +1 -0
- package/dist/test/server/mergeOperations.test.js +115 -0
- package/dist/test/server/mergeOperations.test.js.map +1 -0
- package/dist/test/server/processOperations.test.d.ts +2 -0
- package/dist/test/server/processOperations.test.d.ts.map +1 -0
- package/dist/test/server/processOperations.test.js +392 -0
- package/dist/test/server/processOperations.test.js.map +1 -0
- package/dist/test/server.test.d.ts +2 -0
- package/dist/test/server.test.d.ts.map +1 -0
- package/dist/test/server.test.js +957 -0
- package/dist/test/server.test.js.map +1 -0
- package/dist/test/signature-migration.test.d.ts +2 -0
- package/dist/test/signature-migration.test.d.ts.map +1 -0
- package/dist/test/signature-migration.test.js +241 -0
- package/dist/test/signature-migration.test.js.map +1 -0
- package/dist/test/storage.test.d.ts +2 -0
- package/dist/test/storage.test.d.ts.map +1 -0
- package/dist/test/storage.test.js +522 -0
- package/dist/test/storage.test.js.map +1 -0
- package/dist/test/switchboard-push-listener.test.d.ts +2 -0
- package/dist/test/switchboard-push-listener.test.d.ts.map +1 -0
- package/dist/test/switchboard-push-listener.test.js +133 -0
- package/dist/test/switchboard-push-listener.test.js.map +1 -0
- package/dist/test/sync-manager.test.d.ts +2 -0
- package/dist/test/sync-manager.test.d.ts.map +1 -0
- package/dist/test/sync-manager.test.js +349 -0
- package/dist/test/sync-manager.test.js.map +1 -0
- package/dist/test/utils.d.ts +62 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/test/utils.js +158 -0
- package/dist/test/utils.js.map +1 -0
- package/dist/test/utils.test.d.ts +2 -0
- package/dist/test/utils.test.d.ts.map +1 -0
- package/dist/test/utils.test.js +86 -0
- package/dist/test/utils.test.js.map +1 -0
- package/dist/test/vitest-setup.d.ts +2 -0
- package/dist/test/vitest-setup.d.ts.map +1 -0
- package/dist/test/vitest-setup.js +5 -0
- package/dist/test/vitest-setup.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +28 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +38 -26
- package/prisma/schema.prisma +93 -0
- package/src/storage/prisma/client/default.d.ts +1 -0
- package/src/storage/prisma/client/default.js +1 -0
- package/src/storage/prisma/client/edge.d.ts +1 -0
- package/src/storage/prisma/client/edge.js +263 -0
- package/src/storage/prisma/client/index-browser.js +246 -0
- package/src/storage/prisma/client/index.d.ts +10318 -0
- package/src/storage/prisma/client/index.js +292 -0
- package/src/storage/prisma/client/libquery_engine-darwin-arm64.dylib.node +0 -0
- package/src/storage/prisma/client/libquery_engine-debian-openssl-3.0.x.so.node +0 -0
- package/src/storage/prisma/client/libquery_engine-linux-musl.so.node +0 -0
- package/src/storage/prisma/client/package.json +84 -0
- package/src/storage/prisma/client/runtime/edge-esm.js +31 -0
- package/src/storage/prisma/client/runtime/edge.js +31 -0
- package/src/storage/prisma/client/runtime/index-browser.d.ts +365 -0
- package/src/storage/prisma/client/runtime/index-browser.js +13 -0
- package/src/storage/prisma/client/runtime/library.d.ts +3273 -0
- package/src/storage/prisma/client/runtime/library.js +143 -0
- package/src/storage/prisma/client/runtime/react-native.js +80 -0
- package/src/storage/prisma/client/runtime/wasm.js +32 -0
- package/src/storage/prisma/client/schema.prisma +93 -0
- package/src/storage/prisma/client/wasm.d.ts +1 -0
- package/src/storage/prisma/client/wasm.js +246 -0
- package/dist/src/drive-document-model/gen/actions.d.ts +0 -6
- package/dist/src/drive-document-model/gen/actions.d.ts.map +0 -1
- package/dist/src/drive-document-model/gen/actions.js +0 -3
- package/dist/src/drive-document-model/gen/actions.js.map +0 -1
- package/dist/src/drive-document-model/gen/drive/object.d.ts +0 -14
- package/dist/src/drive-document-model/gen/drive/object.d.ts.map +0 -1
- package/dist/src/drive-document-model/gen/drive/object.js +0 -29
- package/dist/src/drive-document-model/gen/drive/object.js.map +0 -1
- package/dist/src/drive-document-model/gen/drive/operations.d.ts +0 -14
- package/dist/src/drive-document-model/gen/drive/operations.d.ts.map +0 -1
- package/dist/src/drive-document-model/gen/drive/operations.js +0 -2
- package/dist/src/drive-document-model/gen/drive/operations.js.map +0 -1
- package/dist/src/drive-document-model/gen/node/object.d.ts +0 -13
- package/dist/src/drive-document-model/gen/node/object.d.ts.map +0 -1
- package/dist/src/drive-document-model/gen/node/object.js +0 -26
- package/dist/src/drive-document-model/gen/node/object.js.map +0 -1
- package/dist/src/drive-document-model/gen/node/operations.d.ts +0 -13
- package/dist/src/drive-document-model/gen/node/operations.d.ts.map +0 -1
- package/dist/src/drive-document-model/gen/node/operations.js +0 -2
- package/dist/src/drive-document-model/gen/node/operations.js.map +0 -1
- package/dist/src/drive-document-model/gen/object.d.ts +0 -17
- package/dist/src/drive-document-model/gen/object.d.ts.map +0 -1
- package/dist/src/drive-document-model/gen/object.js +0 -28
- package/dist/src/drive-document-model/gen/object.js.map +0 -1
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
import { BrowserStorage, driveCreateDocument, InMemoryCache, MemoryStorage, } from "document-drive";
|
|
2
|
+
import { FilesystemStorage } from "document-drive/storage/filesystem";
|
|
3
|
+
import { PrismaStorage } from "document-drive/storage/prisma";
|
|
4
|
+
import { PrismaClient } from "document-drive/storage/prisma/client";
|
|
5
|
+
import { documentModelCreateDocument } from "document-model";
|
|
6
|
+
import { generateId } from "document-model/core";
|
|
7
|
+
import { existsSync, rmSync } from "fs";
|
|
8
|
+
import path from "path";
|
|
9
|
+
import { describe, it } from "vitest";
|
|
10
|
+
const storageImplementations = [
|
|
11
|
+
["Memory Storage", () => Promise.resolve(new MemoryStorage())],
|
|
12
|
+
[
|
|
13
|
+
"File System Storage",
|
|
14
|
+
() => {
|
|
15
|
+
const basePath = path.join(__dirname, "test-storage");
|
|
16
|
+
// delete the base path
|
|
17
|
+
if (existsSync(basePath)) {
|
|
18
|
+
rmSync(basePath, { recursive: true, force: true });
|
|
19
|
+
}
|
|
20
|
+
return Promise.resolve(new FilesystemStorage(basePath));
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
"Browser Storage",
|
|
25
|
+
async () => {
|
|
26
|
+
const storage = new BrowserStorage();
|
|
27
|
+
await storage.clear();
|
|
28
|
+
return storage;
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
[
|
|
32
|
+
"PrismaStorage",
|
|
33
|
+
async () => {
|
|
34
|
+
const prisma = new PrismaClient();
|
|
35
|
+
await prisma.$executeRawUnsafe('DELETE FROM "Attachment";');
|
|
36
|
+
await prisma.$executeRawUnsafe('DELETE FROM "Operation";');
|
|
37
|
+
await prisma.$executeRawUnsafe('DELETE FROM "Document";');
|
|
38
|
+
await prisma.$executeRawUnsafe('DELETE FROM "DriveDocument";');
|
|
39
|
+
await prisma.$executeRawUnsafe('DELETE FROM "Drive";');
|
|
40
|
+
return new PrismaStorage(prisma, new InMemoryCache());
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
/*[
|
|
44
|
+
"IPFSStorage",
|
|
45
|
+
async () => {
|
|
46
|
+
const helia = await createHelia();
|
|
47
|
+
return new IPFSStorage(helia);
|
|
48
|
+
},
|
|
49
|
+
],*/
|
|
50
|
+
];
|
|
51
|
+
describe.each(storageImplementations)("%s", async (_, buildStorage) => {
|
|
52
|
+
it("should correctly check for non-existent document", async ({ expect }) => {
|
|
53
|
+
const storage = await buildStorage();
|
|
54
|
+
const id = generateId();
|
|
55
|
+
const result = await storage.exists(id);
|
|
56
|
+
expect(result).toBe(false);
|
|
57
|
+
});
|
|
58
|
+
it("should allow creating a document", async ({ expect }) => {
|
|
59
|
+
const storage = await buildStorage();
|
|
60
|
+
const document = documentModelCreateDocument();
|
|
61
|
+
const id = document.header.id;
|
|
62
|
+
await storage.create(document);
|
|
63
|
+
const result = await storage.exists(id);
|
|
64
|
+
expect(result).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
it("should disallow creating a document with an invalid id", async ({ expect, }) => {
|
|
67
|
+
const storage = await buildStorage();
|
|
68
|
+
const document = documentModelCreateDocument();
|
|
69
|
+
document.header.id = "test!\\";
|
|
70
|
+
await expect(async () => await storage.create(document)).rejects.toThrow();
|
|
71
|
+
});
|
|
72
|
+
it("should not change the state of a document to match id", async ({ expect, }) => {
|
|
73
|
+
const storage = await buildStorage();
|
|
74
|
+
const document = documentModelCreateDocument();
|
|
75
|
+
const id = document.header.id;
|
|
76
|
+
document.initialState.global.id = "FOOOP";
|
|
77
|
+
await storage.create(document);
|
|
78
|
+
const result = await storage.get(id);
|
|
79
|
+
expect(result.initialState.global.id).toBe("FOOOP");
|
|
80
|
+
});
|
|
81
|
+
it("should throw a DocumentAlreadyExistsError when creating a document if the document already exists", async ({ expect, }) => {
|
|
82
|
+
const storage = await buildStorage();
|
|
83
|
+
const document = documentModelCreateDocument();
|
|
84
|
+
const id = document.header.id;
|
|
85
|
+
await storage.create(document);
|
|
86
|
+
try {
|
|
87
|
+
await storage.create(document);
|
|
88
|
+
throw new Error("Document should not be created");
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
expect(e.documentId).toBe(id);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
it("should throw a DocumentAlreadyExistsError when creating a drive with a slug that already exists", async ({ expect, }) => {
|
|
95
|
+
const storage = await buildStorage();
|
|
96
|
+
const a = driveCreateDocument();
|
|
97
|
+
a.header.slug = "test";
|
|
98
|
+
const idA = a.header.id;
|
|
99
|
+
await storage.create(a);
|
|
100
|
+
// different id, but same slug
|
|
101
|
+
const b = driveCreateDocument();
|
|
102
|
+
b.header.slug = "test";
|
|
103
|
+
const idB = b.header.id;
|
|
104
|
+
try {
|
|
105
|
+
await storage.create(b);
|
|
106
|
+
throw new Error("Document should not be created");
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
expect(e.documentId).toBe(idB);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
it("should allow getting a document", async ({ expect }) => {
|
|
113
|
+
const storage = await buildStorage();
|
|
114
|
+
const document = documentModelCreateDocument();
|
|
115
|
+
const id = document.header.id;
|
|
116
|
+
await storage.create(document);
|
|
117
|
+
const result = await storage.get(id);
|
|
118
|
+
// Storage implementations are free to return documents with or without populated state + meta.
|
|
119
|
+
// Prisma storage always returns an undefined state, but other storage
|
|
120
|
+
// implementations return the state. The storage layers have always been
|
|
121
|
+
// tested through the drive server, and the drive server (base-server.ts)
|
|
122
|
+
// replays the operations to get the state, if it doesn't exist.
|
|
123
|
+
//
|
|
124
|
+
// Also: we give storage implementations authority to set the created timestamp (like a postgres timestamp).
|
|
125
|
+
// So we compare every field except for a few...
|
|
126
|
+
const { state, header: { createdAtUtcIso, meta, ...headerRest }, ...rest } = document;
|
|
127
|
+
const { state: _state, header: { createdAtUtcIso: _createdAtUtcIso, meta: _meta, ...headerRestResult }, ...restResult } = result;
|
|
128
|
+
expect(restResult).toEqual(rest);
|
|
129
|
+
expect(headerRestResult).toEqual(headerRest);
|
|
130
|
+
});
|
|
131
|
+
it("should throw a DocumentNotFoundError if the document is not found", async ({ expect, }) => {
|
|
132
|
+
const storage = await buildStorage();
|
|
133
|
+
const id = generateId();
|
|
134
|
+
try {
|
|
135
|
+
await storage.get(id);
|
|
136
|
+
throw new Error("Document should not be found");
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
expect(e.documentId).toBe(id);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
it("should throw a DocumentNotFoundError if the document is not found by slug", async ({ expect, }) => {
|
|
143
|
+
const storage = await buildStorage();
|
|
144
|
+
const slug = generateId();
|
|
145
|
+
try {
|
|
146
|
+
await storage.getBySlug(slug);
|
|
147
|
+
throw new Error("Document should not be found");
|
|
148
|
+
}
|
|
149
|
+
catch (e) {
|
|
150
|
+
expect(e.documentId).toBe(slug);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
it("should allow deleting a document", async ({ expect }) => {
|
|
154
|
+
const storage = await buildStorage();
|
|
155
|
+
const document = documentModelCreateDocument();
|
|
156
|
+
const id = document.header.id;
|
|
157
|
+
await storage.create(document);
|
|
158
|
+
const result = await storage.delete(id);
|
|
159
|
+
expect(result).toBe(true);
|
|
160
|
+
const result2 = await storage.exists(id);
|
|
161
|
+
expect(result2).toBe(false);
|
|
162
|
+
const result3 = await storage.delete(id);
|
|
163
|
+
expect(result3).toBe(false);
|
|
164
|
+
});
|
|
165
|
+
it("should delete documents from all drives when deleted", async ({ expect, }) => {
|
|
166
|
+
const storage = await buildStorage();
|
|
167
|
+
const document = documentModelCreateDocument();
|
|
168
|
+
const documentId = document.header.id;
|
|
169
|
+
await storage.create(document);
|
|
170
|
+
const driveA = driveCreateDocument();
|
|
171
|
+
const driveAId = driveA.header.id;
|
|
172
|
+
await storage.create(driveA);
|
|
173
|
+
await storage.addChild(driveAId, documentId);
|
|
174
|
+
const driveB = driveCreateDocument();
|
|
175
|
+
const driveBId = driveB.header.id;
|
|
176
|
+
await storage.create(driveB);
|
|
177
|
+
await storage.addChild(driveBId, documentId);
|
|
178
|
+
const result = await storage.delete(documentId);
|
|
179
|
+
expect(result).toBe(true);
|
|
180
|
+
const childrenA = await storage.getChildren(driveAId);
|
|
181
|
+
expect(childrenA).toEqual([]);
|
|
182
|
+
const childrenB = await storage.getChildren(driveBId);
|
|
183
|
+
expect(childrenB).toEqual([]);
|
|
184
|
+
});
|
|
185
|
+
it("should allow getting all parents of a document", async ({ expect }) => {
|
|
186
|
+
const storage = await buildStorage();
|
|
187
|
+
const document = documentModelCreateDocument();
|
|
188
|
+
const childId = document.header.id;
|
|
189
|
+
await storage.create(document);
|
|
190
|
+
let parents = await storage.getParents(childId);
|
|
191
|
+
expect(parents).toEqual([]);
|
|
192
|
+
const driveA = driveCreateDocument();
|
|
193
|
+
const driveAId = driveA.header.id;
|
|
194
|
+
await storage.create(driveA);
|
|
195
|
+
const driveB = driveCreateDocument();
|
|
196
|
+
const driveBId = driveB.header.id;
|
|
197
|
+
await storage.create(driveB);
|
|
198
|
+
await storage.addChild(driveAId, childId);
|
|
199
|
+
await storage.addChild(driveBId, childId);
|
|
200
|
+
parents = await storage.getParents(childId);
|
|
201
|
+
// order doesn't matter
|
|
202
|
+
expect(parents).toEqual(expect.arrayContaining([driveAId, driveBId]));
|
|
203
|
+
});
|
|
204
|
+
it("should update the parents of a document when a parent is deleted", async ({ expect, }) => {
|
|
205
|
+
const storage = await buildStorage();
|
|
206
|
+
const document = documentModelCreateDocument();
|
|
207
|
+
const childId = document.header.id;
|
|
208
|
+
await storage.create(document);
|
|
209
|
+
const driveA = driveCreateDocument();
|
|
210
|
+
const driveAId = driveA.header.id;
|
|
211
|
+
await storage.create(driveA);
|
|
212
|
+
const driveB = driveCreateDocument();
|
|
213
|
+
const driveBId = driveB.header.id;
|
|
214
|
+
await storage.create(driveB);
|
|
215
|
+
await storage.addChild(driveAId, childId);
|
|
216
|
+
await storage.addChild(driveBId, childId);
|
|
217
|
+
await storage.delete(driveAId);
|
|
218
|
+
const parents = await storage.getParents(childId);
|
|
219
|
+
expect(parents).toEqual([driveBId]);
|
|
220
|
+
});
|
|
221
|
+
// TODO: Should child documents be deleted when the parent is deleted?
|
|
222
|
+
it.skip("should, when deleting a document, also delete all child documents that were only a child of that document", async ({ expect, }) => {
|
|
223
|
+
const storage = await buildStorage();
|
|
224
|
+
const child = documentModelCreateDocument();
|
|
225
|
+
const childId = child.header.id;
|
|
226
|
+
await storage.create(child);
|
|
227
|
+
const drive = driveCreateDocument();
|
|
228
|
+
const driveId = drive.header.id;
|
|
229
|
+
await storage.create(drive);
|
|
230
|
+
await storage.addChild(driveId, childId);
|
|
231
|
+
await storage.delete(driveId);
|
|
232
|
+
const result = await storage.exists(childId);
|
|
233
|
+
expect(result).toBe(false);
|
|
234
|
+
});
|
|
235
|
+
it("should allow creating and retrieving a document with a slug", async ({ expect, }) => {
|
|
236
|
+
const storage = await buildStorage();
|
|
237
|
+
const slug = `test-slug-${generateId()}`;
|
|
238
|
+
const document = driveCreateDocument();
|
|
239
|
+
const id = document.header.id;
|
|
240
|
+
document.header.slug = slug;
|
|
241
|
+
await storage.create(document);
|
|
242
|
+
const result = await storage.getBySlug(slug);
|
|
243
|
+
expect(result.header.slug).toBe(slug);
|
|
244
|
+
});
|
|
245
|
+
it("the id should be used as the slug if no slug is provided", async ({ expect, }) => {
|
|
246
|
+
const storage = await buildStorage();
|
|
247
|
+
const document = driveCreateDocument();
|
|
248
|
+
const id = document.header.id;
|
|
249
|
+
document.header.slug = "";
|
|
250
|
+
await storage.create(document);
|
|
251
|
+
const result = await storage.getBySlug(id);
|
|
252
|
+
expect(result).toBeTruthy();
|
|
253
|
+
});
|
|
254
|
+
it("should reject invalid slugs", async ({ expect }) => {
|
|
255
|
+
const storage = await buildStorage();
|
|
256
|
+
const invalidSlugs = [
|
|
257
|
+
"test/slug",
|
|
258
|
+
"test\\slug",
|
|
259
|
+
"test.slug",
|
|
260
|
+
"test slug",
|
|
261
|
+
"test!slug",
|
|
262
|
+
"test@slug",
|
|
263
|
+
"test#slug",
|
|
264
|
+
"test$slug",
|
|
265
|
+
"test%slug",
|
|
266
|
+
"test^slug",
|
|
267
|
+
"test&slug",
|
|
268
|
+
"test*slug",
|
|
269
|
+
"test(slug",
|
|
270
|
+
"test)slug",
|
|
271
|
+
"test+slug",
|
|
272
|
+
"test=slug",
|
|
273
|
+
"test{slug",
|
|
274
|
+
"test}slug",
|
|
275
|
+
"test[slug",
|
|
276
|
+
"test]slug",
|
|
277
|
+
"test:slug",
|
|
278
|
+
"test;slug",
|
|
279
|
+
"test'slug",
|
|
280
|
+
'test"slug',
|
|
281
|
+
"test<slug",
|
|
282
|
+
"test>slug",
|
|
283
|
+
"test,slug",
|
|
284
|
+
"test?slug",
|
|
285
|
+
"test|slug",
|
|
286
|
+
"test~slug",
|
|
287
|
+
"test`slug",
|
|
288
|
+
];
|
|
289
|
+
for (const invalidSlug of invalidSlugs) {
|
|
290
|
+
const document = driveCreateDocument();
|
|
291
|
+
document.header.slug = invalidSlug;
|
|
292
|
+
await expect(async () => await storage.create(document)).rejects.toThrow();
|
|
293
|
+
}
|
|
294
|
+
const validSlugs = [
|
|
295
|
+
"test-slug",
|
|
296
|
+
"test_slug",
|
|
297
|
+
"test123",
|
|
298
|
+
"123test",
|
|
299
|
+
"testSlug",
|
|
300
|
+
"test-slug-123",
|
|
301
|
+
"test_slug_123",
|
|
302
|
+
"test-slug_123",
|
|
303
|
+
];
|
|
304
|
+
for (const validSlug of validSlugs) {
|
|
305
|
+
const validDocument = driveCreateDocument();
|
|
306
|
+
validDocument.header.slug = validSlug;
|
|
307
|
+
await storage.create(validDocument);
|
|
308
|
+
const result = await storage.getBySlug(validSlug);
|
|
309
|
+
expect(result).toBeTruthy();
|
|
310
|
+
await storage.delete(validSlug);
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
it("should allow removing a document and then adding a new document with the same id and slug", async ({ expect, }) => {
|
|
314
|
+
const storage = await buildStorage();
|
|
315
|
+
const document = documentModelCreateDocument();
|
|
316
|
+
const slug = (document.header.slug = "test-slug");
|
|
317
|
+
const id = document.header.id;
|
|
318
|
+
await storage.create(document);
|
|
319
|
+
await storage.delete(id);
|
|
320
|
+
const newDocument = documentModelCreateDocument();
|
|
321
|
+
newDocument.header.slug = slug;
|
|
322
|
+
newDocument.header.id = id;
|
|
323
|
+
await storage.create(newDocument);
|
|
324
|
+
const result = await storage.getBySlug(slug);
|
|
325
|
+
expect(result).toBeTruthy();
|
|
326
|
+
});
|
|
327
|
+
it("should return documents with matching document model type", async ({ expect, }) => {
|
|
328
|
+
const storage = await buildStorage();
|
|
329
|
+
// create docs of different types
|
|
330
|
+
const document1 = documentModelCreateDocument();
|
|
331
|
+
const document2 = driveCreateDocument();
|
|
332
|
+
const document3 = documentModelCreateDocument();
|
|
333
|
+
const id1 = document1.header.id;
|
|
334
|
+
const id2 = document2.header.id;
|
|
335
|
+
const id3 = document3.header.id;
|
|
336
|
+
await storage.create(document1);
|
|
337
|
+
await storage.create(document2);
|
|
338
|
+
await storage.create(document3);
|
|
339
|
+
const result = await storage.findByType("powerhouse/document-drive");
|
|
340
|
+
expect(result.documents.length).toBe(1);
|
|
341
|
+
expect(result.documents[0]).toBe(id2);
|
|
342
|
+
const result2 = await storage.findByType("powerhouse/document-model");
|
|
343
|
+
expect(result2.documents.length).toBe(2);
|
|
344
|
+
expect(result2.documents).toContain(id1);
|
|
345
|
+
expect(result2.documents).toContain(id3);
|
|
346
|
+
});
|
|
347
|
+
it("should allow paginating documents by type", async ({ expect }) => {
|
|
348
|
+
const storage = await buildStorage();
|
|
349
|
+
// create 10 documents of the same type with generated IDs
|
|
350
|
+
const documentIds = [];
|
|
351
|
+
for (let i = 0; i < 10; i++) {
|
|
352
|
+
const document = documentModelCreateDocument();
|
|
353
|
+
const id = document.header.id;
|
|
354
|
+
documentIds.push(id);
|
|
355
|
+
await storage.create(document);
|
|
356
|
+
}
|
|
357
|
+
// pull by 2s
|
|
358
|
+
let nextCursor = undefined;
|
|
359
|
+
let documentsPulled = 0;
|
|
360
|
+
// Keep pulling until we get all documents
|
|
361
|
+
while (documentsPulled < 10) {
|
|
362
|
+
const result = await storage.findByType("powerhouse/document-model", 2, nextCursor);
|
|
363
|
+
expect(result.documents.length).toBeGreaterThan(0);
|
|
364
|
+
expect(result.documents.length).toBeLessThanOrEqual(2);
|
|
365
|
+
// Verify that the documents we got are in our created list
|
|
366
|
+
for (const id of result.documents) {
|
|
367
|
+
expect(documentIds.includes(id)).toBe(true);
|
|
368
|
+
}
|
|
369
|
+
documentsPulled += result.documents.length;
|
|
370
|
+
nextCursor = result.nextCursor;
|
|
371
|
+
// Break if no more cursor
|
|
372
|
+
if (!nextCursor)
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
expect(documentsPulled).toBe(10);
|
|
376
|
+
});
|
|
377
|
+
it("should allow associating a document with another document", async ({ expect, }) => {
|
|
378
|
+
const storage = await buildStorage();
|
|
379
|
+
// for now, we only allow documents to be associated with drives
|
|
380
|
+
const drive = driveCreateDocument();
|
|
381
|
+
const driveId = drive.header.id;
|
|
382
|
+
await storage.create(drive);
|
|
383
|
+
const document = documentModelCreateDocument();
|
|
384
|
+
const documentId = document.header.id;
|
|
385
|
+
await storage.create(document);
|
|
386
|
+
await storage.addChild(driveId, documentId);
|
|
387
|
+
const children = await storage.getChildren(driveId);
|
|
388
|
+
expect(children).toEqual([documentId]);
|
|
389
|
+
});
|
|
390
|
+
it("should not allow self associations", async ({ expect }) => {
|
|
391
|
+
const storage = await buildStorage();
|
|
392
|
+
const document = documentModelCreateDocument();
|
|
393
|
+
const documentId = document.header.id;
|
|
394
|
+
await storage.create(document);
|
|
395
|
+
await expect(storage.addChild(documentId, documentId)).rejects.toThrow();
|
|
396
|
+
});
|
|
397
|
+
it("should not allow circular associations", async ({ expect }) => {
|
|
398
|
+
const storage = await buildStorage();
|
|
399
|
+
const drive = driveCreateDocument();
|
|
400
|
+
const driveId = drive.header.id;
|
|
401
|
+
await storage.create(drive);
|
|
402
|
+
const document = documentModelCreateDocument();
|
|
403
|
+
const documentId = document.header.id;
|
|
404
|
+
await storage.create(document);
|
|
405
|
+
await storage.addChild(driveId, documentId);
|
|
406
|
+
await expect(storage.addChild(documentId, driveId)).rejects.toThrow();
|
|
407
|
+
});
|
|
408
|
+
it("should allow removing a child from a drive", async ({ expect }) => {
|
|
409
|
+
const storage = await buildStorage();
|
|
410
|
+
const drive = driveCreateDocument();
|
|
411
|
+
const driveId = drive.header.id;
|
|
412
|
+
await storage.create(drive);
|
|
413
|
+
const document = documentModelCreateDocument();
|
|
414
|
+
const documentId = document.header.id;
|
|
415
|
+
await storage.create(document);
|
|
416
|
+
await storage.addChild(driveId, documentId);
|
|
417
|
+
const result = await storage.removeChild(driveId, documentId);
|
|
418
|
+
expect(result).toBe(true);
|
|
419
|
+
const children = await storage.getChildren(driveId);
|
|
420
|
+
expect(children).toEqual([]);
|
|
421
|
+
});
|
|
422
|
+
it("should not allow removing a child from a non-existent drive", async ({ expect, }) => {
|
|
423
|
+
const storage = await buildStorage();
|
|
424
|
+
const document = documentModelCreateDocument();
|
|
425
|
+
const documentId = document.header.id;
|
|
426
|
+
await storage.create(document);
|
|
427
|
+
const driveId = generateId();
|
|
428
|
+
const result = await storage.removeChild(driveId, documentId);
|
|
429
|
+
expect(result).toBe(false);
|
|
430
|
+
});
|
|
431
|
+
it("should not allow removing a non-existent child from a drive", async ({ expect, }) => {
|
|
432
|
+
const storage = await buildStorage();
|
|
433
|
+
const documentId = generateId();
|
|
434
|
+
const drive = driveCreateDocument();
|
|
435
|
+
const driveId = drive.header.id;
|
|
436
|
+
await storage.create(drive);
|
|
437
|
+
const result = await storage.removeChild(driveId, documentId);
|
|
438
|
+
expect(result).toBe(false);
|
|
439
|
+
});
|
|
440
|
+
it("should not allow removing a non-existent child from a non-existent drive", async ({ expect, }) => {
|
|
441
|
+
const storage = await buildStorage();
|
|
442
|
+
const driveId = generateId();
|
|
443
|
+
const documentId = generateId();
|
|
444
|
+
const result = await storage.removeChild(driveId, documentId);
|
|
445
|
+
expect(result).toBe(false);
|
|
446
|
+
});
|
|
447
|
+
it("parent/child relationship should be removed when the child is deleted", async ({ expect, }) => {
|
|
448
|
+
const storage = await buildStorage();
|
|
449
|
+
const drive = driveCreateDocument();
|
|
450
|
+
const driveId = drive.header.id;
|
|
451
|
+
await storage.create(drive);
|
|
452
|
+
const document = documentModelCreateDocument();
|
|
453
|
+
const documentId = document.header.id;
|
|
454
|
+
await storage.create(document);
|
|
455
|
+
await storage.addChild(driveId, documentId);
|
|
456
|
+
await storage.delete(documentId);
|
|
457
|
+
const children = await storage.getChildren(driveId);
|
|
458
|
+
expect(children).toEqual([]);
|
|
459
|
+
});
|
|
460
|
+
it("parent/child relationship should be removed when the parent is deleted", async ({ expect, }) => {
|
|
461
|
+
const storage = await buildStorage();
|
|
462
|
+
const drive = driveCreateDocument();
|
|
463
|
+
const driveId = drive.header.id;
|
|
464
|
+
await storage.create(drive);
|
|
465
|
+
const document = documentModelCreateDocument();
|
|
466
|
+
const documentId = document.header.id;
|
|
467
|
+
await storage.create(document);
|
|
468
|
+
await storage.addChild(driveId, documentId);
|
|
469
|
+
await storage.delete(driveId);
|
|
470
|
+
const children = await storage.getChildren(driveId);
|
|
471
|
+
expect(children).toEqual([]);
|
|
472
|
+
});
|
|
473
|
+
it("should be able to upgrade a document stored as a PHDocument v1", async ({ expect, }) => {
|
|
474
|
+
// TODO
|
|
475
|
+
});
|
|
476
|
+
it("should allow resolving slugs from ids", async ({ expect }) => {
|
|
477
|
+
const storage = await buildStorage();
|
|
478
|
+
const drive = driveCreateDocument();
|
|
479
|
+
drive.header.slug = "test-drive";
|
|
480
|
+
const driveId = drive.header.id;
|
|
481
|
+
await storage.create(drive);
|
|
482
|
+
const result = await storage.resolveSlugs([driveId]);
|
|
483
|
+
expect(result).toEqual([drive.header.slug]);
|
|
484
|
+
});
|
|
485
|
+
it("should throw an error if any of the ids are not found", async ({ expect, }) => {
|
|
486
|
+
const storage = await buildStorage();
|
|
487
|
+
await expect(async () => await storage.resolveSlugs(["not-found"])).rejects.toThrow();
|
|
488
|
+
});
|
|
489
|
+
it("should return the id if any of the slugs are not found", async ({ expect, }) => {
|
|
490
|
+
const storage = await buildStorage();
|
|
491
|
+
const drive = driveCreateDocument();
|
|
492
|
+
drive.header.slug = "";
|
|
493
|
+
const driveId = drive.header.id;
|
|
494
|
+
await storage.create(drive);
|
|
495
|
+
const result = await storage.resolveSlugs([drive.header.slug]);
|
|
496
|
+
expect(result).toEqual([driveId]);
|
|
497
|
+
});
|
|
498
|
+
it("should throw an error if aborted", async ({ expect }) => {
|
|
499
|
+
const storage = await buildStorage();
|
|
500
|
+
const drive = driveCreateDocument();
|
|
501
|
+
drive.header.slug = "test-drive";
|
|
502
|
+
const driveId = drive.header.id;
|
|
503
|
+
await storage.create(drive);
|
|
504
|
+
const controller = new AbortController();
|
|
505
|
+
controller.abort();
|
|
506
|
+
await expect(async () => await storage.resolveSlugs([driveId], controller.signal)).rejects.toThrow();
|
|
507
|
+
});
|
|
508
|
+
it("should allow resolving ids from slugs", async ({ expect }) => {
|
|
509
|
+
const storage = await buildStorage();
|
|
510
|
+
const drive = driveCreateDocument();
|
|
511
|
+
drive.header.slug = "test-drive";
|
|
512
|
+
const driveId = drive.header.id;
|
|
513
|
+
await storage.create(drive);
|
|
514
|
+
const result = await storage.resolveIds([drive.header.slug]);
|
|
515
|
+
expect(result).toEqual([driveId]);
|
|
516
|
+
});
|
|
517
|
+
it("should throw an error if any of the ids are not found", async ({ expect, }) => {
|
|
518
|
+
const storage = await buildStorage();
|
|
519
|
+
await expect(async () => await storage.resolveIds(["not-found"])).rejects.toThrow();
|
|
520
|
+
});
|
|
521
|
+
});
|
|
522
|
+
//# sourceMappingURL=storage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../test/storage.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switchboard-push-listener.test.d.ts","sourceRoot":"","sources":["../../test/switchboard-push-listener.test.ts"],"names":[],"mappings":""}
|