@dxos/feed-store 0.6.12 → 0.6.13-main.548ca8d
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/lib/browser/{chunk-QEVMM5RF.mjs → chunk-QYBKGLQJ.mjs} +2 -3
- package/dist/lib/browser/chunk-QYBKGLQJ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/node/{chunk-CEOKPJ6P.cjs → chunk-PXGR6322.cjs} +5 -6
- package/dist/lib/node/chunk-PXGR6322.cjs.map +7 -0
- package/dist/lib/node/index.cjs +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +3 -3
- package/dist/lib/node-esm/chunk-QELQFW6D.mjs +495 -0
- package/dist/lib/node-esm/chunk-QELQFW6D.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +567 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/testing/index.mjs +154 -0
- package/dist/lib/node-esm/testing/index.mjs.map +7 -0
- package/dist/types/src/feed-queue.browser.test.d.ts +2 -0
- package/dist/types/src/feed-queue.browser.test.d.ts.map +1 -0
- package/dist/types/src/feed-store.node.test.d.ts +2 -0
- package/dist/types/src/feed-store.node.test.d.ts.map +1 -0
- package/package.json +21 -19
- package/src/feed-factory.test.ts +1 -1
- package/src/feed-iterator.test.ts +2 -3
- package/src/feed-queue.browser.test.ts +54 -0
- package/src/feed-queue.test.ts +50 -92
- package/src/feed-set-iterator.test.ts +3 -4
- package/src/feed-store.node.test.ts +56 -0
- package/src/feed-store.test.ts +2 -51
- package/src/feed-wrapper.test.ts +3 -7
- package/src/feed-wrapper.ts +1 -1
- package/dist/lib/browser/chunk-QEVMM5RF.mjs.map +0 -7
- package/dist/lib/node/chunk-CEOKPJ6P.cjs.map +0 -7
|
@@ -118,8 +118,7 @@ var FeedWrapper = class {
|
|
|
118
118
|
write: async (data, { afterWrite } = {}) => {
|
|
119
119
|
log("write", {
|
|
120
120
|
feed: this._key,
|
|
121
|
-
seq: this._hypercore.length
|
|
122
|
-
data
|
|
121
|
+
seq: this._hypercore.length
|
|
123
122
|
}, {
|
|
124
123
|
F: __dxlog_file,
|
|
125
124
|
L: 97,
|
|
@@ -501,4 +500,4 @@ export {
|
|
|
501
500
|
FeedFactory,
|
|
502
501
|
FeedStore
|
|
503
502
|
};
|
|
504
|
-
//# sourceMappingURL=chunk-
|
|
503
|
+
//# sourceMappingURL=chunk-QYBKGLQJ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/feed-wrapper.ts", "../../../src/feed-factory.ts", "../../../src/feed-store.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Proof } from 'hypercore';\nimport { inspect } from 'node:util';\nimport { Readable, Transform } from 'streamx';\n\nimport { Trigger } from '@dxos/async';\nimport { inspectObject, StackTrace } from '@dxos/debug';\nimport type { Hypercore, HypercoreProperties, ReadStreamOptions } from '@dxos/hypercore';\nimport { invariant } from '@dxos/invariant';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Directory } from '@dxos/random-access-storage';\nimport { arrayToBuffer, createBinder, rangeFromTo } from '@dxos/util';\n\nimport { type FeedWriter, type WriteReceipt } from './feed-writer';\n\n/**\n * Async feed wrapper.\n */\nexport class FeedWrapper<T extends {}> {\n private readonly _pendingWrites = new Set<StackTrace>();\n private readonly _binder = createBinder(this._hypercore);\n\n // Pending while writes are happening. Resolves when there are no pending writes.\n private readonly _writeLock = new Trigger();\n\n private _closed = false;\n\n constructor(\n private _hypercore: Hypercore<T>,\n private _key: PublicKey, // TODO(burdon): Required since currently patching the key inside factory.\n private _storageDirectory: Directory,\n ) {\n invariant(this._hypercore);\n invariant(this._key);\n this._writeLock.wake();\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n toJSON() {\n return {\n feedKey: this._key,\n length: this.properties.length,\n opened: this.properties.opened,\n closed: this.properties.closed,\n };\n }\n\n get key(): PublicKey {\n return this._key;\n }\n\n get core(): Hypercore<T> {\n return this._hypercore;\n }\n\n // TODO(burdon): Create proxy.\n get properties(): HypercoreProperties {\n return this._hypercore;\n }\n\n createReadableStream(opts?: ReadStreamOptions): Readable {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const transform = new Transform({\n transform(data: any, cb: (err?: Error | null, data?: any) => void) {\n // Delay until write is complete.\n void self._writeLock.wait().then(() => {\n this.push(data);\n cb();\n });\n },\n });\n const readStream =\n opts?.batch !== undefined && opts?.batch > 1\n ? new BatchedReadStream(this._hypercore, opts)\n : this._hypercore.createReadStream(opts);\n\n readStream.pipe(transform, (err: any) => {\n // Ignore errors.\n // We might get \"Writable stream closed prematurely\" error.\n // Its okay since the pipeline is closed and does not expect more messages.\n });\n\n return transform;\n }\n\n createFeedWriter(): FeedWriter<T> {\n return {\n write: async (data: T, { afterWrite } = {}) => {\n log('write', { feed: this._key, seq: this._hypercore.length });\n invariant(!this._closed, 'Feed closed');\n const stackTrace = new StackTrace();\n\n try {\n // Pending writes pause the read stream.\n this._pendingWrites.add(stackTrace);\n if (this._pendingWrites.size === 1) {\n this._writeLock.reset();\n }\n\n const receipt = await this.appendWithReceipt(data);\n\n // TODO(dmaretskyi): Removing this will make user-intiated writes faster but might result in a data-loss.\n await this.flushToDisk();\n\n await afterWrite?.(receipt);\n\n return receipt;\n } finally {\n // Unblock the read stream after the write (and callback) is complete.\n this._pendingWrites.delete(stackTrace);\n if (this._pendingWrites.size === 0) {\n this._writeLock.wake();\n }\n }\n },\n };\n }\n\n async appendWithReceipt(data: T): Promise<WriteReceipt> {\n const seq = await this.append(data);\n invariant(seq < this.length, 'Invalid seq after write');\n log('write complete', { feed: this._key, seq });\n const receipt: WriteReceipt = {\n feedKey: this.key,\n seq,\n };\n return receipt;\n }\n\n /**\n * Flush pending changes to disk.\n * Calling this is not required unless you want to explicitly wait for data to be written.\n */\n async flushToDisk() {\n await this._storageDirectory.flush();\n }\n\n get opened() {\n return this._hypercore.opened;\n }\n\n get closed() {\n return this._hypercore.closed;\n }\n\n get readable() {\n return this._hypercore.readable;\n }\n\n get length() {\n return this._hypercore.length;\n }\n\n get byteLength() {\n return this._hypercore.byteLength;\n }\n\n on = this._binder.fn(this._hypercore.on);\n off = this._binder.fn(this._hypercore.off);\n\n open = this._binder.async(this._hypercore.open);\n private _close = this._binder.async(this._hypercore.close);\n close = async () => {\n if (this._pendingWrites.size) {\n log.warn('Closing feed with pending writes', {\n feed: this._key,\n count: this._pendingWrites.size,\n pendingWrites: Array.from(this._pendingWrites.values()).map((stack) => stack.getStack()),\n });\n }\n this._closed = true;\n await this.flushToDisk();\n await this._close();\n };\n\n has = this._binder.fn(this._hypercore.has) as (start: number, end?: number) => boolean;\n get = this._binder.async(this._hypercore.get);\n append = this._binder.async(this._hypercore.append);\n\n /**\n * Will not resolve if `end` parameter is not specified and the feed is not closed.\n */\n download = this._binder.fn(this._hypercore.download);\n undownload = this._binder.fn(this._hypercore.undownload);\n setDownloading = this._binder.fn(this._hypercore.setDownloading);\n replicate: Hypercore<T>['replicate'] = this._binder.fn(this._hypercore.replicate);\n clear = this._binder.async(this._hypercore.clear) as (start: number, end?: number) => Promise<void>;\n\n proof = this._binder.async(this._hypercore.proof) as (index: number) => Promise<Proof>;\n put = this._binder.async(this._hypercore.put) as (index: number, data: T, proof: Proof) => Promise<void>;\n putBuffer = this._binder.async((this._hypercore as any)._putBuffer) as (\n index: number,\n data: Buffer,\n proof: Proof,\n from: null,\n ) => Promise<void>;\n\n /**\n * Clear and check for integrity.\n */\n async safeClear(from: number, to: number) {\n invariant(from >= 0 && from < to && to <= this.length, 'Invalid range');\n\n const CHECK_MESSAGES = 20;\n const checkBegin = to;\n const checkEnd = Math.min(checkBegin + CHECK_MESSAGES, this.length);\n\n const messagesBefore = await Promise.all(\n rangeFromTo(checkBegin, checkEnd).map((idx) =>\n this.get(idx, {\n valueEncoding: { decode: (x: Uint8Array) => x },\n }),\n ),\n );\n\n await this.clear(from, to);\n\n const messagesAfter = await Promise.all(\n rangeFromTo(checkBegin, checkEnd).map((idx) =>\n this.get(idx, {\n valueEncoding: { decode: (x: Uint8Array) => x },\n }),\n ),\n );\n\n for (let i = 0; i < messagesBefore.length; i++) {\n const before = arrayToBuffer(messagesBefore[i]);\n const after = arrayToBuffer(messagesAfter[i]);\n if (!before.equals(after)) {\n throw new Error('Feed corruption on clear. There has likely been a data loss.');\n }\n }\n }\n}\n\nclass BatchedReadStream extends Readable {\n private readonly _feed: Hypercore<any>;\n private readonly _batch: number;\n private _cursor: number;\n private _reading = false;\n\n constructor(feed: Hypercore<any>, opts: ReadStreamOptions = {}) {\n super({ objectMode: true });\n invariant(opts.live === true, 'Only live mode supported');\n invariant(opts.batch !== undefined && opts.batch > 1);\n this._feed = feed;\n this._batch = opts.batch;\n this._cursor = opts.start ?? 0;\n }\n\n override _open(cb: (err: Error | null) => void): void {\n this._feed.ready(cb);\n }\n\n override _read(cb: (err: Error | null) => void): void {\n if (this._reading) {\n return;\n }\n\n if (this._feed.bitfield!.total(this._cursor, this._cursor + this._batch) === this._batch) {\n this._batchedRead(cb);\n } else {\n this._nonBatchedRead(cb);\n }\n }\n\n private _nonBatchedRead(cb: (err: Error | null) => void) {\n this._feed.get(this._cursor, { wait: true }, (err, data) => {\n if (err) {\n cb(err);\n } else {\n this._cursor++;\n this._reading = false;\n this.push(data);\n cb(null);\n }\n });\n }\n\n private _batchedRead(cb: (err: Error | null) => void) {\n this._feed.getBatch(this._cursor, this._cursor + this._batch, { wait: true }, (err, data) => {\n if (err) {\n cb(err);\n } else {\n this._cursor += data.length;\n this._reading = false;\n for (const item of data) {\n this.push(item);\n }\n cb(null);\n }\n });\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport defaultsDeep from 'lodash.defaultsdeep';\n\nimport { type Signer, subtleCrypto } from '@dxos/crypto';\nimport { failUndefined } from '@dxos/debug';\nimport type { HypercoreOptions } from '@dxos/hypercore';\nimport { createCrypto, hypercore } from '@dxos/hypercore';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Directory } from '@dxos/random-access-storage';\n\nimport { FeedWrapper } from './feed-wrapper';\n\nexport type FeedFactoryOptions = {\n root: Directory;\n signer?: Signer;\n hypercore?: HypercoreOptions;\n};\n\nexport type FeedOptions = HypercoreOptions & {\n writable?: boolean;\n /**\n * Optional hook called before data is written after being verified.\n * Called for writes done by this peer as well as for data replicated from other peers.\n * NOTE: The callback must be invoked to complete the write operation.\n * @param peer Always null in hypercore@9.12.0.\n */\n onwrite?: (index: number, data: any, peer: null, cb: (err: Error | null) => void) => void;\n};\n\n/**\n * Hypercore factory.\n */\nexport class FeedFactory<T extends {}> {\n private readonly _root: Directory;\n private readonly _signer?: Signer;\n private readonly _hypercoreOptions?: HypercoreOptions;\n\n constructor({ root, signer, hypercore }: FeedFactoryOptions) {\n log('FeedFactory', { options: hypercore });\n this._root = root ?? failUndefined();\n this._signer = signer;\n this._hypercoreOptions = hypercore;\n }\n\n get storageRoot() {\n return this._root;\n }\n\n async createFeed(publicKey: PublicKey, options?: FeedOptions): Promise<FeedWrapper<T>> {\n if (options?.writable && !this._signer) {\n throw new Error('Signer required to create writable feeds.');\n }\n if (options?.secretKey) {\n log.warn('Secret key ignored due to signer.');\n }\n\n // Required due to hypercore's 32-byte key limit.\n const key = await subtleCrypto.digest('SHA-256', Buffer.from(publicKey.toHex()));\n\n const opts = defaultsDeep(\n {\n // sparse: false,\n // stats: false,\n },\n this._hypercoreOptions,\n {\n secretKey: this._signer && options?.writable ? Buffer.from('secret') : undefined,\n crypto: this._signer ? createCrypto(this._signer, publicKey) : undefined,\n onwrite: options?.onwrite,\n noiseKeyPair: {}, // We're not using noise.\n },\n options,\n );\n\n const storageDir = this._root.createDirectory(publicKey.toHex());\n const makeStorage = (filename: string) => {\n const { type, native } = storageDir.getOrCreateFile(filename);\n log('created', {\n path: `${type}:${this._root.path}/${publicKey.truncate()}/${filename}`,\n });\n\n return native;\n };\n\n const core = hypercore(makeStorage, Buffer.from(key), opts);\n return new FeedWrapper(core, publicKey, storageDir);\n }\n}\n", "//\n// Copyright 2019 DXOS.org\n//\n\nimport { Event, Mutex } from '@dxos/async';\nimport { failUndefined } from '@dxos/debug';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { ComplexMap, defaultMap } from '@dxos/util';\n\nimport { type FeedFactory, type FeedOptions } from './feed-factory';\nimport { type FeedWrapper } from './feed-wrapper';\n\nexport interface FeedStoreOptions<T extends {}> {\n factory: FeedFactory<T>;\n}\n\n/**\n * Persistent hypercore store.\n */\nexport class FeedStore<T extends {}> {\n private readonly _feeds: ComplexMap<PublicKey, FeedWrapper<T>> = new ComplexMap(PublicKey.hash);\n private readonly _mutexes = new ComplexMap<PublicKey, Mutex>(PublicKey.hash);\n private readonly _factory: FeedFactory<T>;\n\n private _closed = false;\n\n readonly feedOpened = new Event<FeedWrapper<T>>();\n\n constructor({ factory }: FeedStoreOptions<T>) {\n this._factory = factory ?? failUndefined();\n }\n\n get size() {\n return this._feeds.size;\n }\n\n get feeds() {\n return Array.from(this._feeds.values());\n }\n\n /**\n * Get the open feed if it exists.\n */\n getFeed(publicKey: PublicKey): FeedWrapper<T> | undefined {\n return this._feeds.get(publicKey);\n }\n\n /**\n * Gets or opens a feed.\n * The feed is readonly unless a secret key is provided.\n */\n async openFeed(feedKey: PublicKey, { writable, sparse }: FeedOptions = {}): Promise<FeedWrapper<T>> {\n log('opening feed', { feedKey });\n invariant(feedKey);\n invariant(!this._closed, 'Feed store is closed');\n\n const mutex = defaultMap(this._mutexes, feedKey, () => new Mutex());\n\n return mutex.executeSynchronized(async () => {\n let feed = this.getFeed(feedKey);\n if (feed) {\n // TODO(burdon): Need to check that there's another instance being used (create test and break this).\n // TODO(burdon): Remove from store if feed is closed externally? (remove wrapped open/close methods?)\n if (writable && !feed.properties.writable) {\n throw new Error(`Read-only feed is already open: ${feedKey.truncate()}`);\n } else if ((sparse ?? false) !== feed.properties.sparse) {\n throw new Error(\n `Feed already open with different sparse setting: ${feedKey.truncate()} [${sparse} !== ${\n feed.properties.sparse\n }]`,\n );\n } else {\n await feed.open();\n return feed;\n }\n }\n\n feed = await this._factory.createFeed(feedKey, { writable, sparse });\n this._feeds.set(feed.key, feed);\n\n await feed.open();\n this.feedOpened.emit(feed);\n log('opened', { feedKey });\n return feed;\n });\n }\n\n /**\n * Close all feeds.\n */\n async close() {\n log('closing...');\n this._closed = true;\n await Promise.all(\n Array.from(this._feeds.values()).map(async (feed) => {\n await feed.close();\n invariant(feed.closed);\n // TODO(burdon): SpaceProxy still being initialized.\n // SpaceProxy.initialize => Database.createItem => ... => FeedWrapper.append\n // Uncaught Error: Closed [random-access-storage/index.js:181:38]\n // await sleep(100);\n }),\n );\n\n this._feeds.clear();\n log('closed');\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["inspect", "Readable", "Transform", "Trigger", "inspectObject", "StackTrace", "invariant", "log", "arrayToBuffer", "createBinder", "rangeFromTo", "FeedWrapper", "constructor", "_hypercore", "_key", "_storageDirectory", "_pendingWrites", "Set", "_binder", "_writeLock", "_closed", "on", "fn", "off", "open", "async", "_close", "close", "size", "warn", "feed", "count", "pendingWrites", "Array", "from", "values", "map", "stack", "getStack", "flushToDisk", "has", "get", "append", "download", "undownload", "setDownloading", "replicate", "clear", "proof", "put", "putBuffer", "_putBuffer", "wake", "custom", "toJSON", "feedKey", "length", "properties", "opened", "closed", "key", "core", "createReadableStream", "opts", "self", "transform", "data", "cb", "wait", "then", "push", "readStream", "batch", "undefined", "BatchedReadStream", "createReadStream", "pipe", "err", "createFeedWriter", "write", "afterWrite", "seq", "stackTrace", "add", "reset", "receipt", "appendWithReceipt", "delete", "flush", "readable", "byteLength", "safeClear", "to", "CHECK_MESSAGES", "checkBegin", "checkEnd", "Math", "min", "messagesBefore", "Promise", "all", "idx", "valueEncoding", "decode", "x", "messagesAfter", "i", "before", "after", "equals", "Error", "objectMode", "_reading", "live", "_feed", "_batch", "_cursor", "start", "_open", "ready", "_read", "bitfield", "total", "_batchedRead", "_nonBatchedRead", "getBatch", "item", "defaultsDeep", "subtleCrypto", "failUndefined", "createCrypto", "hypercore", "log", "FeedFactory", "constructor", "root", "signer", "hypercore", "log", "options", "_root", "failUndefined", "_signer", "_hypercoreOptions", "storageRoot", "createFeed", "publicKey", "writable", "Error", "secretKey", "warn", "key", "subtleCrypto", "digest", "Buffer", "from", "toHex", "opts", "defaultsDeep", "undefined", "crypto", "createCrypto", "onwrite", "noiseKeyPair", "storageDir", "createDirectory", "makeStorage", "filename", "type", "native", "getOrCreateFile", "path", "truncate", "core", "FeedWrapper", "Event", "Mutex", "failUndefined", "invariant", "PublicKey", "log", "ComplexMap", "defaultMap", "FeedStore", "constructor", "factory", "_feeds", "hash", "_mutexes", "_closed", "feedOpened", "_factory", "size", "feeds", "Array", "from", "values", "getFeed", "publicKey", "get", "openFeed", "feedKey", "writable", "sparse", "mutex", "executeSynchronized", "feed", "properties", "Error", "truncate", "open", "createFeed", "set", "key", "emit", "close", "Promise", "all", "map", "closed", "clear"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"inject-globals:@inject-globals":{"bytes":384,"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-wrapper.ts":{"bytes":34421,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-factory.ts":{"bytes":9251,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-queue.ts":{"bytes":19868,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-iterator.ts":{"bytes":10231,"imports":[{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytes":19960,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-store.ts":{"bytes":12315,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-writer.ts":{"bytes":2686,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/types.ts":{"bytes":614,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/index.ts":{"bytes":1196,"imports":[{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"./feed-factory"},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-set-iterator.ts","kind":"import-statement","original":"./feed-set-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"./feed-store"},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"},{"path":"packages/common/feed-store/src/feed-writer.ts","kind":"import-statement","original":"./feed-writer"},{"path":"packages/common/feed-store/src/types.ts","kind":"import-statement","original":"./types"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/mocks.ts":{"bytes":3541,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-generator.ts":{"bytes":5631,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-builder.ts":{"bytes":9730,"imports":[{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"},{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"../feed-factory"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"../feed-store"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/index.ts":{"bytes":705,"imports":[{"path":"packages/common/feed-store/src/testing/mocks.ts","kind":"import-statement","original":"./mocks"},{"path":"packages/common/feed-store/src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/common/feed-store/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24009},"packages/common/feed-store/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/browser/chunk-QEVMM5RF.mjs","kind":"import-statement"},{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AbstractFeedIterator","FeedFactory","FeedIterator","FeedQueue","FeedSetIterator","FeedStore","FeedWrapper","createFeedWriter","defaultFeedSetIteratorOptions","defaultReadStreamOptions","writeMessages"],"entryPoint":"packages/common/feed-store/src/index.ts","inputs":{"packages/common/feed-store/src/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/feed-iterator.ts":{"bytesInOutput":2802},"packages/common/feed-store/src/feed-queue.ts":{"bytesInOutput":4935},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytesInOutput":4893},"packages/common/feed-store/src/feed-writer.ts":{"bytesInOutput":273}},"bytes":13536},"packages/common/feed-store/dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9599},"packages/common/feed-store/dist/lib/browser/testing/index.mjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/browser/chunk-QEVMM5RF.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["MockFeedWriter","TestBuilder","TestGenerator","TestItemBuilder","defaultCodec","defaultTestBlockGenerator","defaultTestGenerator","defaultValueEncoding"],"entryPoint":"packages/common/feed-store/src/testing/index.ts","inputs":{"packages/common/feed-store/src/testing/mocks.ts":{"bytesInOutput":784},"packages/common/feed-store/src/testing/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/testing/test-builder.ts":{"bytesInOutput":1800},"packages/common/feed-store/src/testing/test-generator.ts":{"bytesInOutput":961}},"bytes":4095},"packages/common/feed-store/dist/lib/browser/chunk-QEVMM5RF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":26081},"packages/common/feed-store/dist/lib/browser/chunk-QEVMM5RF.mjs":{"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["Buffer","FeedFactory","FeedStore","FeedWrapper"],"inputs":{"inject-globals:@inject-globals":{"bytesInOutput":79},"packages/common/feed-store/src/feed-wrapper.ts":{"bytesInOutput":8231},"packages/common/feed-store/src/feed-factory.ts":{"bytesInOutput":2015},"packages/common/feed-store/src/feed-store.ts":{"bytesInOutput":3129}},"bytes":13782}}}
|
|
1
|
+
{"inputs":{"inject-globals:@inject-globals":{"bytes":324,"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-wrapper.ts":{"bytes":34379,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-factory.ts":{"bytes":9251,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-queue.ts":{"bytes":19868,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-iterator.ts":{"bytes":10231,"imports":[{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytes":19960,"imports":[{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-store.ts":{"bytes":12315,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-writer.ts":{"bytes":2686,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/types.ts":{"bytes":614,"imports":[{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/index.ts":{"bytes":1196,"imports":[{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"./feed-factory"},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-set-iterator.ts","kind":"import-statement","original":"./feed-set-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"./feed-store"},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"},{"path":"packages/common/feed-store/src/feed-writer.ts","kind":"import-statement","original":"./feed-writer"},{"path":"packages/common/feed-store/src/types.ts","kind":"import-statement","original":"./types"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/mocks.ts":{"bytes":3541,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-generator.ts":{"bytes":5631,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-builder.ts":{"bytes":9730,"imports":[{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"},{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"../feed-factory"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"../feed-store"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/index.ts":{"bytes":705,"imports":[{"path":"packages/common/feed-store/src/testing/mocks.ts","kind":"import-statement","original":"./mocks"},{"path":"packages/common/feed-store/src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"},{"path":"@inject-globals","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/common/feed-store/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24009},"packages/common/feed-store/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/browser/chunk-QYBKGLQJ.mjs","kind":"import-statement"},{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AbstractFeedIterator","FeedFactory","FeedIterator","FeedQueue","FeedSetIterator","FeedStore","FeedWrapper","createFeedWriter","defaultFeedSetIteratorOptions","defaultReadStreamOptions","writeMessages"],"entryPoint":"packages/common/feed-store/src/index.ts","inputs":{"packages/common/feed-store/src/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/feed-iterator.ts":{"bytesInOutput":2802},"packages/common/feed-store/src/feed-queue.ts":{"bytesInOutput":4935},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytesInOutput":4893},"packages/common/feed-store/src/feed-writer.ts":{"bytesInOutput":273}},"bytes":13536},"packages/common/feed-store/dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9599},"packages/common/feed-store/dist/lib/browser/testing/index.mjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/browser/chunk-QYBKGLQJ.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["MockFeedWriter","TestBuilder","TestGenerator","TestItemBuilder","defaultCodec","defaultTestBlockGenerator","defaultTestGenerator","defaultValueEncoding"],"entryPoint":"packages/common/feed-store/src/testing/index.ts","inputs":{"packages/common/feed-store/src/testing/mocks.ts":{"bytesInOutput":784},"packages/common/feed-store/src/testing/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/testing/test-builder.ts":{"bytesInOutput":1800},"packages/common/feed-store/src/testing/test-generator.ts":{"bytesInOutput":961}},"bytes":4095},"packages/common/feed-store/dist/lib/browser/chunk-QYBKGLQJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":26069},"packages/common/feed-store/dist/lib/browser/chunk-QYBKGLQJ.mjs":{"imports":[{"path":"@dxos/node-std/inject-globals","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["Buffer","FeedFactory","FeedStore","FeedWrapper"],"inputs":{"inject-globals:@inject-globals":{"bytesInOutput":79},"packages/common/feed-store/src/feed-wrapper.ts":{"bytesInOutput":8215},"packages/common/feed-store/src/feed-factory.ts":{"bytesInOutput":2015},"packages/common/feed-store/src/feed-store.ts":{"bytesInOutput":3129}},"bytes":13766}}}
|
|
@@ -26,13 +26,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_PXGR6322_exports = {};
|
|
30
|
+
__export(chunk_PXGR6322_exports, {
|
|
31
31
|
FeedFactory: () => FeedFactory,
|
|
32
32
|
FeedStore: () => FeedStore,
|
|
33
33
|
FeedWrapper: () => FeedWrapper
|
|
34
34
|
});
|
|
35
|
-
module.exports = __toCommonJS(
|
|
35
|
+
module.exports = __toCommonJS(chunk_PXGR6322_exports);
|
|
36
36
|
var import_node_util = require("node:util");
|
|
37
37
|
var import_streamx = require("streamx");
|
|
38
38
|
var import_async = require("@dxos/async");
|
|
@@ -154,8 +154,7 @@ var FeedWrapper = class {
|
|
|
154
154
|
write: async (data, { afterWrite } = {}) => {
|
|
155
155
|
(0, import_log.log)("write", {
|
|
156
156
|
feed: this._key,
|
|
157
|
-
seq: this._hypercore.length
|
|
158
|
-
data
|
|
157
|
+
seq: this._hypercore.length
|
|
159
158
|
}, {
|
|
160
159
|
F: __dxlog_file,
|
|
161
160
|
L: 97,
|
|
@@ -521,4 +520,4 @@ var FeedStore = class {
|
|
|
521
520
|
FeedStore,
|
|
522
521
|
FeedWrapper
|
|
523
522
|
});
|
|
524
|
-
//# sourceMappingURL=chunk-
|
|
523
|
+
//# sourceMappingURL=chunk-PXGR6322.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/feed-wrapper.ts", "../../../src/feed-factory.ts", "../../../src/feed-store.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Proof } from 'hypercore';\nimport { inspect } from 'node:util';\nimport { Readable, Transform } from 'streamx';\n\nimport { Trigger } from '@dxos/async';\nimport { inspectObject, StackTrace } from '@dxos/debug';\nimport type { Hypercore, HypercoreProperties, ReadStreamOptions } from '@dxos/hypercore';\nimport { invariant } from '@dxos/invariant';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Directory } from '@dxos/random-access-storage';\nimport { arrayToBuffer, createBinder, rangeFromTo } from '@dxos/util';\n\nimport { type FeedWriter, type WriteReceipt } from './feed-writer';\n\n/**\n * Async feed wrapper.\n */\nexport class FeedWrapper<T extends {}> {\n private readonly _pendingWrites = new Set<StackTrace>();\n private readonly _binder = createBinder(this._hypercore);\n\n // Pending while writes are happening. Resolves when there are no pending writes.\n private readonly _writeLock = new Trigger();\n\n private _closed = false;\n\n constructor(\n private _hypercore: Hypercore<T>,\n private _key: PublicKey, // TODO(burdon): Required since currently patching the key inside factory.\n private _storageDirectory: Directory,\n ) {\n invariant(this._hypercore);\n invariant(this._key);\n this._writeLock.wake();\n }\n\n [inspect.custom]() {\n return inspectObject(this);\n }\n\n toJSON() {\n return {\n feedKey: this._key,\n length: this.properties.length,\n opened: this.properties.opened,\n closed: this.properties.closed,\n };\n }\n\n get key(): PublicKey {\n return this._key;\n }\n\n get core(): Hypercore<T> {\n return this._hypercore;\n }\n\n // TODO(burdon): Create proxy.\n get properties(): HypercoreProperties {\n return this._hypercore;\n }\n\n createReadableStream(opts?: ReadStreamOptions): Readable {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const transform = new Transform({\n transform(data: any, cb: (err?: Error | null, data?: any) => void) {\n // Delay until write is complete.\n void self._writeLock.wait().then(() => {\n this.push(data);\n cb();\n });\n },\n });\n const readStream =\n opts?.batch !== undefined && opts?.batch > 1\n ? new BatchedReadStream(this._hypercore, opts)\n : this._hypercore.createReadStream(opts);\n\n readStream.pipe(transform, (err: any) => {\n // Ignore errors.\n // We might get \"Writable stream closed prematurely\" error.\n // Its okay since the pipeline is closed and does not expect more messages.\n });\n\n return transform;\n }\n\n createFeedWriter(): FeedWriter<T> {\n return {\n write: async (data: T, { afterWrite } = {}) => {\n log('write', { feed: this._key, seq: this._hypercore.length });\n invariant(!this._closed, 'Feed closed');\n const stackTrace = new StackTrace();\n\n try {\n // Pending writes pause the read stream.\n this._pendingWrites.add(stackTrace);\n if (this._pendingWrites.size === 1) {\n this._writeLock.reset();\n }\n\n const receipt = await this.appendWithReceipt(data);\n\n // TODO(dmaretskyi): Removing this will make user-intiated writes faster but might result in a data-loss.\n await this.flushToDisk();\n\n await afterWrite?.(receipt);\n\n return receipt;\n } finally {\n // Unblock the read stream after the write (and callback) is complete.\n this._pendingWrites.delete(stackTrace);\n if (this._pendingWrites.size === 0) {\n this._writeLock.wake();\n }\n }\n },\n };\n }\n\n async appendWithReceipt(data: T): Promise<WriteReceipt> {\n const seq = await this.append(data);\n invariant(seq < this.length, 'Invalid seq after write');\n log('write complete', { feed: this._key, seq });\n const receipt: WriteReceipt = {\n feedKey: this.key,\n seq,\n };\n return receipt;\n }\n\n /**\n * Flush pending changes to disk.\n * Calling this is not required unless you want to explicitly wait for data to be written.\n */\n async flushToDisk() {\n await this._storageDirectory.flush();\n }\n\n get opened() {\n return this._hypercore.opened;\n }\n\n get closed() {\n return this._hypercore.closed;\n }\n\n get readable() {\n return this._hypercore.readable;\n }\n\n get length() {\n return this._hypercore.length;\n }\n\n get byteLength() {\n return this._hypercore.byteLength;\n }\n\n on = this._binder.fn(this._hypercore.on);\n off = this._binder.fn(this._hypercore.off);\n\n open = this._binder.async(this._hypercore.open);\n private _close = this._binder.async(this._hypercore.close);\n close = async () => {\n if (this._pendingWrites.size) {\n log.warn('Closing feed with pending writes', {\n feed: this._key,\n count: this._pendingWrites.size,\n pendingWrites: Array.from(this._pendingWrites.values()).map((stack) => stack.getStack()),\n });\n }\n this._closed = true;\n await this.flushToDisk();\n await this._close();\n };\n\n has = this._binder.fn(this._hypercore.has) as (start: number, end?: number) => boolean;\n get = this._binder.async(this._hypercore.get);\n append = this._binder.async(this._hypercore.append);\n\n /**\n * Will not resolve if `end` parameter is not specified and the feed is not closed.\n */\n download = this._binder.fn(this._hypercore.download);\n undownload = this._binder.fn(this._hypercore.undownload);\n setDownloading = this._binder.fn(this._hypercore.setDownloading);\n replicate: Hypercore<T>['replicate'] = this._binder.fn(this._hypercore.replicate);\n clear = this._binder.async(this._hypercore.clear) as (start: number, end?: number) => Promise<void>;\n\n proof = this._binder.async(this._hypercore.proof) as (index: number) => Promise<Proof>;\n put = this._binder.async(this._hypercore.put) as (index: number, data: T, proof: Proof) => Promise<void>;\n putBuffer = this._binder.async((this._hypercore as any)._putBuffer) as (\n index: number,\n data: Buffer,\n proof: Proof,\n from: null,\n ) => Promise<void>;\n\n /**\n * Clear and check for integrity.\n */\n async safeClear(from: number, to: number) {\n invariant(from >= 0 && from < to && to <= this.length, 'Invalid range');\n\n const CHECK_MESSAGES = 20;\n const checkBegin = to;\n const checkEnd = Math.min(checkBegin + CHECK_MESSAGES, this.length);\n\n const messagesBefore = await Promise.all(\n rangeFromTo(checkBegin, checkEnd).map((idx) =>\n this.get(idx, {\n valueEncoding: { decode: (x: Uint8Array) => x },\n }),\n ),\n );\n\n await this.clear(from, to);\n\n const messagesAfter = await Promise.all(\n rangeFromTo(checkBegin, checkEnd).map((idx) =>\n this.get(idx, {\n valueEncoding: { decode: (x: Uint8Array) => x },\n }),\n ),\n );\n\n for (let i = 0; i < messagesBefore.length; i++) {\n const before = arrayToBuffer(messagesBefore[i]);\n const after = arrayToBuffer(messagesAfter[i]);\n if (!before.equals(after)) {\n throw new Error('Feed corruption on clear. There has likely been a data loss.');\n }\n }\n }\n}\n\nclass BatchedReadStream extends Readable {\n private readonly _feed: Hypercore<any>;\n private readonly _batch: number;\n private _cursor: number;\n private _reading = false;\n\n constructor(feed: Hypercore<any>, opts: ReadStreamOptions = {}) {\n super({ objectMode: true });\n invariant(opts.live === true, 'Only live mode supported');\n invariant(opts.batch !== undefined && opts.batch > 1);\n this._feed = feed;\n this._batch = opts.batch;\n this._cursor = opts.start ?? 0;\n }\n\n override _open(cb: (err: Error | null) => void): void {\n this._feed.ready(cb);\n }\n\n override _read(cb: (err: Error | null) => void): void {\n if (this._reading) {\n return;\n }\n\n if (this._feed.bitfield!.total(this._cursor, this._cursor + this._batch) === this._batch) {\n this._batchedRead(cb);\n } else {\n this._nonBatchedRead(cb);\n }\n }\n\n private _nonBatchedRead(cb: (err: Error | null) => void) {\n this._feed.get(this._cursor, { wait: true }, (err, data) => {\n if (err) {\n cb(err);\n } else {\n this._cursor++;\n this._reading = false;\n this.push(data);\n cb(null);\n }\n });\n }\n\n private _batchedRead(cb: (err: Error | null) => void) {\n this._feed.getBatch(this._cursor, this._cursor + this._batch, { wait: true }, (err, data) => {\n if (err) {\n cb(err);\n } else {\n this._cursor += data.length;\n this._reading = false;\n for (const item of data) {\n this.push(item);\n }\n cb(null);\n }\n });\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport defaultsDeep from 'lodash.defaultsdeep';\n\nimport { type Signer, subtleCrypto } from '@dxos/crypto';\nimport { failUndefined } from '@dxos/debug';\nimport type { HypercoreOptions } from '@dxos/hypercore';\nimport { createCrypto, hypercore } from '@dxos/hypercore';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Directory } from '@dxos/random-access-storage';\n\nimport { FeedWrapper } from './feed-wrapper';\n\nexport type FeedFactoryOptions = {\n root: Directory;\n signer?: Signer;\n hypercore?: HypercoreOptions;\n};\n\nexport type FeedOptions = HypercoreOptions & {\n writable?: boolean;\n /**\n * Optional hook called before data is written after being verified.\n * Called for writes done by this peer as well as for data replicated from other peers.\n * NOTE: The callback must be invoked to complete the write operation.\n * @param peer Always null in hypercore@9.12.0.\n */\n onwrite?: (index: number, data: any, peer: null, cb: (err: Error | null) => void) => void;\n};\n\n/**\n * Hypercore factory.\n */\nexport class FeedFactory<T extends {}> {\n private readonly _root: Directory;\n private readonly _signer?: Signer;\n private readonly _hypercoreOptions?: HypercoreOptions;\n\n constructor({ root, signer, hypercore }: FeedFactoryOptions) {\n log('FeedFactory', { options: hypercore });\n this._root = root ?? failUndefined();\n this._signer = signer;\n this._hypercoreOptions = hypercore;\n }\n\n get storageRoot() {\n return this._root;\n }\n\n async createFeed(publicKey: PublicKey, options?: FeedOptions): Promise<FeedWrapper<T>> {\n if (options?.writable && !this._signer) {\n throw new Error('Signer required to create writable feeds.');\n }\n if (options?.secretKey) {\n log.warn('Secret key ignored due to signer.');\n }\n\n // Required due to hypercore's 32-byte key limit.\n const key = await subtleCrypto.digest('SHA-256', Buffer.from(publicKey.toHex()));\n\n const opts = defaultsDeep(\n {\n // sparse: false,\n // stats: false,\n },\n this._hypercoreOptions,\n {\n secretKey: this._signer && options?.writable ? Buffer.from('secret') : undefined,\n crypto: this._signer ? createCrypto(this._signer, publicKey) : undefined,\n onwrite: options?.onwrite,\n noiseKeyPair: {}, // We're not using noise.\n },\n options,\n );\n\n const storageDir = this._root.createDirectory(publicKey.toHex());\n const makeStorage = (filename: string) => {\n const { type, native } = storageDir.getOrCreateFile(filename);\n log('created', {\n path: `${type}:${this._root.path}/${publicKey.truncate()}/${filename}`,\n });\n\n return native;\n };\n\n const core = hypercore(makeStorage, Buffer.from(key), opts);\n return new FeedWrapper(core, publicKey, storageDir);\n }\n}\n", "//\n// Copyright 2019 DXOS.org\n//\n\nimport { Event, Mutex } from '@dxos/async';\nimport { failUndefined } from '@dxos/debug';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { ComplexMap, defaultMap } from '@dxos/util';\n\nimport { type FeedFactory, type FeedOptions } from './feed-factory';\nimport { type FeedWrapper } from './feed-wrapper';\n\nexport interface FeedStoreOptions<T extends {}> {\n factory: FeedFactory<T>;\n}\n\n/**\n * Persistent hypercore store.\n */\nexport class FeedStore<T extends {}> {\n private readonly _feeds: ComplexMap<PublicKey, FeedWrapper<T>> = new ComplexMap(PublicKey.hash);\n private readonly _mutexes = new ComplexMap<PublicKey, Mutex>(PublicKey.hash);\n private readonly _factory: FeedFactory<T>;\n\n private _closed = false;\n\n readonly feedOpened = new Event<FeedWrapper<T>>();\n\n constructor({ factory }: FeedStoreOptions<T>) {\n this._factory = factory ?? failUndefined();\n }\n\n get size() {\n return this._feeds.size;\n }\n\n get feeds() {\n return Array.from(this._feeds.values());\n }\n\n /**\n * Get the open feed if it exists.\n */\n getFeed(publicKey: PublicKey): FeedWrapper<T> | undefined {\n return this._feeds.get(publicKey);\n }\n\n /**\n * Gets or opens a feed.\n * The feed is readonly unless a secret key is provided.\n */\n async openFeed(feedKey: PublicKey, { writable, sparse }: FeedOptions = {}): Promise<FeedWrapper<T>> {\n log('opening feed', { feedKey });\n invariant(feedKey);\n invariant(!this._closed, 'Feed store is closed');\n\n const mutex = defaultMap(this._mutexes, feedKey, () => new Mutex());\n\n return mutex.executeSynchronized(async () => {\n let feed = this.getFeed(feedKey);\n if (feed) {\n // TODO(burdon): Need to check that there's another instance being used (create test and break this).\n // TODO(burdon): Remove from store if feed is closed externally? (remove wrapped open/close methods?)\n if (writable && !feed.properties.writable) {\n throw new Error(`Read-only feed is already open: ${feedKey.truncate()}`);\n } else if ((sparse ?? false) !== feed.properties.sparse) {\n throw new Error(\n `Feed already open with different sparse setting: ${feedKey.truncate()} [${sparse} !== ${\n feed.properties.sparse\n }]`,\n );\n } else {\n await feed.open();\n return feed;\n }\n }\n\n feed = await this._factory.createFeed(feedKey, { writable, sparse });\n this._feeds.set(feed.key, feed);\n\n await feed.open();\n this.feedOpened.emit(feed);\n log('opened', { feedKey });\n return feed;\n });\n }\n\n /**\n * Close all feeds.\n */\n async close() {\n log('closing...');\n this._closed = true;\n await Promise.all(\n Array.from(this._feeds.values()).map(async (feed) => {\n await feed.close();\n invariant(feed.closed);\n // TODO(burdon): SpaceProxy still being initialized.\n // SpaceProxy.initialize => Database.createItem => ... => FeedWrapper.append\n // Uncaught Error: Closed [random-access-storage/index.js:181:38]\n // await sleep(100);\n }),\n );\n\n this._feeds.clear();\n log('closed');\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_debug", "import_log", "import_async", "import_invariant", "import_util", "FeedWrapper", "constructor", "_hypercore", "_key", "_storageDirectory", "_pendingWrites", "Set", "_binder", "createBinder", "_writeLock", "Trigger", "_closed", "on", "fn", "off", "open", "async", "_close", "close", "size", "log", "warn", "feed", "count", "pendingWrites", "Array", "from", "values", "map", "stack", "getStack", "flushToDisk", "has", "get", "append", "download", "undownload", "setDownloading", "replicate", "clear", "proof", "put", "putBuffer", "_putBuffer", "invariant", "wake", "inspect", "custom", "inspectObject", "toJSON", "feedKey", "length", "properties", "opened", "closed", "key", "core", "createReadableStream", "opts", "self", "transform", "Transform", "data", "cb", "wait", "then", "push", "readStream", "batch", "undefined", "BatchedReadStream", "createReadStream", "pipe", "err", "createFeedWriter", "write", "afterWrite", "seq", "stackTrace", "StackTrace", "add", "reset", "receipt", "appendWithReceipt", "delete", "flush", "readable", "byteLength", "safeClear", "to", "CHECK_MESSAGES", "checkBegin", "checkEnd", "Math", "min", "messagesBefore", "Promise", "all", "rangeFromTo", "idx", "valueEncoding", "decode", "x", "messagesAfter", "i", "before", "arrayToBuffer", "after", "equals", "Error", "Readable", "objectMode", "_reading", "live", "_feed", "_batch", "_cursor", "start", "_open", "ready", "_read", "bitfield", "total", "_batchedRead", "_nonBatchedRead", "getBatch", "item", "FeedFactory", "root", "signer", "hypercore", "options", "_root", "failUndefined", "_signer", "_hypercoreOptions", "storageRoot", "createFeed", "publicKey", "writable", "secretKey", "subtleCrypto", "digest", "Buffer", "toHex", "defaultsDeep", "crypto", "createCrypto", "onwrite", "noiseKeyPair", "storageDir", "createDirectory", "makeStorage", "filename", "type", "native", "getOrCreateFile", "path", "truncate", "FeedStore", "factory", "_feeds", "ComplexMap", "PublicKey", "hash", "_mutexes", "feedOpened", "Event", "_factory", "feeds", "getFeed", "openFeed", "sparse", "mutex", "defaultMap", "Mutex", "executeSynchronized", "set", "emit"]
|
|
7
|
+
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -29,19 +29,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
31
|
AbstractFeedIterator: () => AbstractFeedIterator,
|
|
32
|
-
FeedFactory: () =>
|
|
32
|
+
FeedFactory: () => import_chunk_PXGR6322.FeedFactory,
|
|
33
33
|
FeedIterator: () => FeedIterator,
|
|
34
34
|
FeedQueue: () => FeedQueue,
|
|
35
35
|
FeedSetIterator: () => FeedSetIterator,
|
|
36
|
-
FeedStore: () =>
|
|
37
|
-
FeedWrapper: () =>
|
|
36
|
+
FeedStore: () => import_chunk_PXGR6322.FeedStore,
|
|
37
|
+
FeedWrapper: () => import_chunk_PXGR6322.FeedWrapper,
|
|
38
38
|
createFeedWriter: () => createFeedWriter,
|
|
39
39
|
defaultFeedSetIteratorOptions: () => defaultFeedSetIteratorOptions,
|
|
40
40
|
defaultReadStreamOptions: () => defaultReadStreamOptions,
|
|
41
41
|
writeMessages: () => writeMessages
|
|
42
42
|
});
|
|
43
43
|
module.exports = __toCommonJS(node_exports);
|
|
44
|
-
var
|
|
44
|
+
var import_chunk_PXGR6322 = require("./chunk-PXGR6322.cjs");
|
|
45
45
|
var import_race_as_promised = __toESM(require("race-as-promised"));
|
|
46
46
|
var import_async = require("@dxos/async");
|
|
47
47
|
var import_invariant = require("@dxos/invariant");
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/common/feed-store/src/feed-wrapper.ts":{"bytes":34421,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-factory.ts":{"bytes":9251,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"}],"format":"esm"},"packages/common/feed-store/src/feed-queue.ts":{"bytes":19868,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-iterator.ts":{"bytes":10231,"imports":[{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"}],"format":"esm"},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytes":19960,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"}],"format":"esm"},"packages/common/feed-store/src/feed-store.ts":{"bytes":12315,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-writer.ts":{"bytes":2686,"imports":[],"format":"esm"},"packages/common/feed-store/src/types.ts":{"bytes":614,"imports":[],"format":"esm"},"packages/common/feed-store/src/index.ts":{"bytes":1196,"imports":[{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"./feed-factory"},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-set-iterator.ts","kind":"import-statement","original":"./feed-set-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"./feed-store"},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"},{"path":"packages/common/feed-store/src/feed-writer.ts","kind":"import-statement","original":"./feed-writer"},{"path":"packages/common/feed-store/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/common/feed-store/src/testing/mocks.ts":{"bytes":3541,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-generator.ts":{"bytes":5631,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-builder.ts":{"bytes":9730,"imports":[{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"},{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"../feed-factory"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"../feed-store"}],"format":"esm"},"packages/common/feed-store/src/testing/index.ts":{"bytes":705,"imports":[{"path":"packages/common/feed-store/src/testing/mocks.ts","kind":"import-statement","original":"./mocks"},{"path":"packages/common/feed-store/src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"}],"format":"esm"}},"outputs":{"packages/common/feed-store/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24008},"packages/common/feed-store/dist/lib/node/index.cjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/node/chunk-CEOKPJ6P.cjs","kind":"import-statement"},{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AbstractFeedIterator","FeedFactory","FeedIterator","FeedQueue","FeedSetIterator","FeedStore","FeedWrapper","createFeedWriter","defaultFeedSetIteratorOptions","defaultReadStreamOptions","writeMessages"],"entryPoint":"packages/common/feed-store/src/index.ts","inputs":{"packages/common/feed-store/src/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/feed-iterator.ts":{"bytesInOutput":2802},"packages/common/feed-store/src/feed-queue.ts":{"bytesInOutput":4925},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytesInOutput":4883},"packages/common/feed-store/src/feed-writer.ts":{"bytesInOutput":273}},"bytes":13483},"packages/common/feed-store/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9597},"packages/common/feed-store/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/node/chunk-CEOKPJ6P.cjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["MockFeedWriter","TestBuilder","TestGenerator","TestItemBuilder","defaultCodec","defaultTestBlockGenerator","defaultTestGenerator","defaultValueEncoding"],"entryPoint":"packages/common/feed-store/src/testing/index.ts","inputs":{"packages/common/feed-store/src/testing/mocks.ts":{"bytesInOutput":784},"packages/common/feed-store/src/testing/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/testing/test-builder.ts":{"bytesInOutput":1800},"packages/common/feed-store/src/testing/test-generator.ts":{"bytesInOutput":961}},"bytes":4052},"packages/common/feed-store/dist/lib/node/chunk-CEOKPJ6P.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":26072},"packages/common/feed-store/dist/lib/node/chunk-CEOKPJ6P.cjs":{"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["FeedFactory","FeedStore","FeedWrapper"],"inputs":{"packages/common/feed-store/src/feed-wrapper.ts":{"bytesInOutput":8221},"packages/common/feed-store/src/feed-factory.ts":{"bytesInOutput":2015},"packages/common/feed-store/src/feed-store.ts":{"bytesInOutput":3129}},"bytes":13614}}}
|
|
1
|
+
{"inputs":{"packages/common/feed-store/src/feed-wrapper.ts":{"bytes":34379,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-factory.ts":{"bytes":9251,"imports":[{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"}],"format":"esm"},"packages/common/feed-store/src/feed-queue.ts":{"bytes":19868,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-iterator.ts":{"bytes":10231,"imports":[{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"}],"format":"esm"},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytes":19960,"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"}],"format":"esm"},"packages/common/feed-store/src/feed-store.ts":{"bytes":12315,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/feed-writer.ts":{"bytes":2686,"imports":[],"format":"esm"},"packages/common/feed-store/src/types.ts":{"bytes":614,"imports":[],"format":"esm"},"packages/common/feed-store/src/index.ts":{"bytes":1196,"imports":[{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"./feed-factory"},{"path":"packages/common/feed-store/src/feed-iterator.ts","kind":"import-statement","original":"./feed-iterator"},{"path":"packages/common/feed-store/src/feed-set-iterator.ts","kind":"import-statement","original":"./feed-set-iterator"},{"path":"packages/common/feed-store/src/feed-queue.ts","kind":"import-statement","original":"./feed-queue"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"./feed-store"},{"path":"packages/common/feed-store/src/feed-wrapper.ts","kind":"import-statement","original":"./feed-wrapper"},{"path":"packages/common/feed-store/src/feed-writer.ts","kind":"import-statement","original":"./feed-writer"},{"path":"packages/common/feed-store/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/common/feed-store/src/testing/mocks.ts":{"bytes":3541,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-generator.ts":{"bytes":5631,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"format":"esm"},"packages/common/feed-store/src/testing/test-builder.ts":{"bytes":9730,"imports":[{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"},{"path":"packages/common/feed-store/src/feed-factory.ts","kind":"import-statement","original":"../feed-factory"},{"path":"packages/common/feed-store/src/feed-store.ts","kind":"import-statement","original":"../feed-store"}],"format":"esm"},"packages/common/feed-store/src/testing/index.ts":{"bytes":705,"imports":[{"path":"packages/common/feed-store/src/testing/mocks.ts","kind":"import-statement","original":"./mocks"},{"path":"packages/common/feed-store/src/testing/test-builder.ts","kind":"import-statement","original":"./test-builder"},{"path":"packages/common/feed-store/src/testing/test-generator.ts","kind":"import-statement","original":"./test-generator"}],"format":"esm"}},"outputs":{"packages/common/feed-store/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24008},"packages/common/feed-store/dist/lib/node/index.cjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/node/chunk-PXGR6322.cjs","kind":"import-statement"},{"path":"race-as-promised","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["AbstractFeedIterator","FeedFactory","FeedIterator","FeedQueue","FeedSetIterator","FeedStore","FeedWrapper","createFeedWriter","defaultFeedSetIteratorOptions","defaultReadStreamOptions","writeMessages"],"entryPoint":"packages/common/feed-store/src/index.ts","inputs":{"packages/common/feed-store/src/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/feed-iterator.ts":{"bytesInOutput":2802},"packages/common/feed-store/src/feed-queue.ts":{"bytesInOutput":4925},"packages/common/feed-store/src/feed-set-iterator.ts":{"bytesInOutput":4883},"packages/common/feed-store/src/feed-writer.ts":{"bytesInOutput":273}},"bytes":13483},"packages/common/feed-store/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9597},"packages/common/feed-store/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/common/feed-store/dist/lib/node/chunk-PXGR6322.cjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/keyring","kind":"import-statement","external":true},{"path":"@dxos/random-access-storage","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["MockFeedWriter","TestBuilder","TestGenerator","TestItemBuilder","defaultCodec","defaultTestBlockGenerator","defaultTestGenerator","defaultValueEncoding"],"entryPoint":"packages/common/feed-store/src/testing/index.ts","inputs":{"packages/common/feed-store/src/testing/mocks.ts":{"bytesInOutput":784},"packages/common/feed-store/src/testing/index.ts":{"bytesInOutput":0},"packages/common/feed-store/src/testing/test-builder.ts":{"bytesInOutput":1800},"packages/common/feed-store/src/testing/test-generator.ts":{"bytesInOutput":961}},"bytes":4052},"packages/common/feed-store/dist/lib/node/chunk-PXGR6322.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":26060},"packages/common/feed-store/dist/lib/node/chunk-PXGR6322.cjs":{"imports":[{"path":"node:util","kind":"import-statement","external":true},{"path":"streamx","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"lodash.defaultsdeep","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/hypercore","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["FeedFactory","FeedStore","FeedWrapper"],"inputs":{"packages/common/feed-store/src/feed-wrapper.ts":{"bytesInOutput":8205},"packages/common/feed-store/src/feed-factory.ts":{"bytesInOutput":2015},"packages/common/feed-store/src/feed-store.ts":{"bytesInOutput":3129}},"bytes":13598}}}
|
|
@@ -28,7 +28,7 @@ __export(testing_exports, {
|
|
|
28
28
|
defaultValueEncoding: () => defaultValueEncoding
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(testing_exports);
|
|
31
|
-
var
|
|
31
|
+
var import_chunk_PXGR6322 = require("../chunk-PXGR6322.cjs");
|
|
32
32
|
var import_async = require("@dxos/async");
|
|
33
33
|
var import_context = require("@dxos/context");
|
|
34
34
|
var import_keys = require("@dxos/keys");
|
|
@@ -131,7 +131,7 @@ var TestBuilder = class _TestBuilder {
|
|
|
131
131
|
return this;
|
|
132
132
|
}
|
|
133
133
|
createFeedFactory() {
|
|
134
|
-
return new
|
|
134
|
+
return new import_chunk_PXGR6322.FeedFactory({
|
|
135
135
|
root: this.root,
|
|
136
136
|
signer: this.keyring,
|
|
137
137
|
hypercore: {
|
|
@@ -140,7 +140,7 @@ var TestBuilder = class _TestBuilder {
|
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
142
|
createFeedStore() {
|
|
143
|
-
return new
|
|
143
|
+
return new import_chunk_PXGR6322.FeedStore({
|
|
144
144
|
factory: this.createFeedFactory()
|
|
145
145
|
});
|
|
146
146
|
}
|