Skip to content

v9.0.0-alpha.25

Pre-release
Pre-release
Compare
Choose a tag to compare

What's Changed

  • feat: mdns & dht discovery by @sethvincent in #11
  • chore: create module directory for discovery by @achou11 in #29
  • chore: add additional jsdoc annotations for discovery module by @achou11 in #30
  • feat: data hypercores, schemas, validation, indexing by @sethvincent in #16
  • chore: add types for @hyperswarm/secret-stream by @achou11 in #34
  • chore: add types for random-access-memory by @achou11 in #35
  • chore: add more tests for discovery by @achou11 in #39
  • chore: add types for hyperswarm testnet by @achou11 in #36
  • chore: fix types for some modules by @achou11 in #40
  • chore: add types for hyperswarm by @achou11 in #41
  • chore: add type annotation for relay address by @achou11 in #42
  • chore: clean up types implementation for dht-rpc by @achou11 in #43
  • chore: remove randombytes ts module declaration by @achou11 in #47
  • chore: add types for random-access-file by @achou11 in #46
  • chore: add types for b4a by @achou11 in #44
  • chore: use tiny-typed-emitter for module types that extend EventEmitter by @achou11 in #45
  • docs: initial set up for api, reference, usage, development, and community docs by @sethvincent in #37
  • authstore by @sethvincent in #38
  • feat: core-manager by @sethvincent in #72
  • feat: invites by @gmaclennan in #70
  • feat: blobstore by @gmaclennan in #62
  • fix: persist cores by @gmaclennan in #85
  • feat: add projectConfig & encryptionKeys to invite by @gmaclennan in #88
  • feat: support block encryption by @gmaclennan in #87
  • add initial benchmarks by @sethvincent in #108
  • Replication state by @sethvincent in #60
  • update deps, small test cleanup by @sethvincent in #110
  • Deterministically de-dupe mdns connections by @tomasciccola in #112
  • fix: Add file descriptor pool to storage by @gmaclennan in #123
  • chore: use @digidem/types by @achou11 in #125
  • fix: hyperdrive update & fix BlobStore tests by @gmaclennan in #126
  • feat: serve blobs over http by @gmaclennan in #117
  • chore: upgrade Hyperdrive to 11.5.3, fix blob-store tests, fix hyperdrive blob namespace by @sethvincent in #151
  • feat: MapeoProject class with updated DataStore, DataType & IndexWriter by @gmaclennan in #149
  • chore: remove todo comments by @sethvincent in #159
  • chore: code cleanup and re-org by @gmaclennan in #154
  • fix: Fix types and typescript config for publishing by @gmaclennan in #162
  • chore: add npm script to generate mapeo client sqlite tables by @achou11 in #170
  • feat: add schema definition for project keys table by @achou11 in #169
  • fix: properly generate column names in projectKeys table by @achou11 in #173
  • feat: Add config store and preset & field types by @gmaclennan in #174
  • chore: replace Datastore IndexWriter opt with batch opt by @achou11 in #180
  • chore: consolidate encryption key columns in projectKeys table by @achou11 in #181
  • chore: fix linting and type checking by @gmaclennan in #183
  • chore: explicitly set "mode" opt for encryptionKeys column creation by @achou11 in #186
  • feat: Add internal dataType.createWithDocId() by @gmaclennan in #192
  • chore: move protobuf messages into src/generated [1/3] by @gmaclennan in #201
  • feat: update protobuf for RPC [2/3] by @gmaclennan in #202
  • feat: Add encode/decode for project keys [3/3] by @gmaclennan in #203
  • add project settings functionality to MapeoProject by @achou11 in #187
  • implement wrapper client containing createProject and getProject methods by @achou11 in #199
  • feat: expose blobStore.writerDriveId by @gmaclennan in #219
  • implement listProjects method for MapeoManager class by @achou11 in #208
  • implement addProject method for MapeoManager class by @achou11 in #215
  • fix: adjust storage options for MapeoManager and MapeoProject by @achou11 in #235
  • feat: handle coreOwnership records in IndexWriter [1/3] by @gmaclennan in #214
  • feat: CoreOwnership class w getOwner & getCoreKey [2/3] by @gmaclennan in #229
  • feat: coreOwnership integration [3/3] by @gmaclennan in #230
  • feat: add capabilities by @gmaclennan in #231
  • chore: update manager e2e tests by @achou11 in #237
  • feat: $blobs.getUrl and $blobs.create methods by @sethvincent in #184
  • initial implementation of invite method for MemberApi by @achou11 in #232
  • return content hash from blobApi.create by @sethvincent in #242
  • update MapeoManager to return and handle project public IDs by @achou11 in #247
  • blobStore.createReadStream should not wait by @sethvincent in #243
  • expose member namespace in MapeoProject by @achou11 in #253
  • feat: Add set & get deviceInfo & datatype by @gmaclennan in #250
  • fix: invite.encryptionKeys should be required by @gmaclennan in #260
  • feat: send core "haves" bitfield on first connect by @gmaclennan in #254
  • feat: share all core keys via extension messages by @gmaclennan in #264
  • chore: Update @digidem/types and remove patch by @gmaclennan in #269
  • feat: add getById method to member api by @achou11 in #262
  • feat: add getMany method to member api by @achou11 in #263
  • chore: replace queries opt in MemberAPI with dataType by @achou11 in #266
  • chore: condense setup code in MemberAPI tests by @achou11 in #267
  • feat: Implement MdnsDiscovery by @tomasciccola in #177
  • feat: add ipc wrappers by @achou11 in #261
  • feat: addCreatedBy by @tomasciccola in #274
  • initial invite api by @sethvincent in #217
  • chore: remove usage of opaque ids types related to project ids by @achou11 in #280
  • fix: fix usage of drizzle when core is used as a dep by @achou11 in #283
  • feat: disable namespace replication by @gmaclennan in #285
  • feat: add invite namespace to MapeoManager by @achou11 in #281
  • feat: update main exports by @achou11 in #284
  • feat: Add RPC sendDeviceInfo() + device-info event by @gmaclennan in #270
  • feat: expose capabilities in MapeoProject and its member api by @achou11 in #286
  • feat: CoreReplicationState by @gmaclennan in #288
  • chore: update @mapeo/schema to 3.0.0-next.10 by @achou11 in #290
  • chore: rename to CoreSyncState and update API by @gmaclennan in #308
  • chore: emit peer-have messages, don't persist them by @gmaclennan in #310
  • Feat: Icon data type by @tomasciccola in #304
  • chore: Add CI release workflow by @gmaclennan in #300
  • fix: fix DataType.getByDocId implementation to match type definition by @achou11 in #317
  • chore: remove ipc wrapper implementation by @achou11 in #306
  • feat: add namespace to peer pre-have messages by @gmaclennan in #314
  • feat: define sync capability per namespace by @gmaclennan in #319
  • chore: commit hooks for lint & package-lock chk by @gmaclennan in #320
  • chore: check npm lockfile version does not change by @gmaclennan in #321
  • fix: fix mdns discovery (finally) by @gmaclennan in #323
  • chore: update github action steps by @gmaclennan in #322
  • chore: gitignore .eslintcache by @gmaclennan in #327
  • feat: add capabilities.getAll() by @gmaclennan in #326
  • chore: run CI on PRs against any branch by @gmaclennan in #330
  • feat: Add NamespaceSyncState by @gmaclennan in #313
  • Feat: add DataStore.writeRaw method by @tomasciccola in #334
  • fix: write own device info when creating and adding projects by @achou11 in #297
  • chore: update @mapeo/crypto to latest by @achou11 in #336
  • chore: update better-sqlite3 to 8.7.0 by @achou11 in #337
  • feat: NamespaceSyncState improvements by @gmaclennan in #339
  • fix: fix 'write EPIPE' error & failing discovery test by @gmaclennan in #328
  • fix: pin pre-releases to exact version by @gmaclennan in #344
  • chore: update type-fest and move to normal deps by @achou11 in #345
  • chore: rename MdnsDiscovery to LocalDiscovery by @gmaclennan in #352
  • feat: peer sync controller [1/2] by @gmaclennan in #347
  • fix: Fix sending RPC messages after connection by @gmaclennan in #354
  • feat: Add SyncController [2/2] by @gmaclennan in #348
  • chore: update @mapeo/schema and @mapeo/sqlite-indexer by @achou11 in #357
  • feat: MapeoRPC -> LocalPeers by @gmaclennan in #356
  • Feat: IconApi by @tomasciccola in #335
  • feat: integrate LocalDiscovery & LocalPeers by @gmaclennan in #358
  • feat: listLocalPeers() & local-peers event by @gmaclennan in #360
  • feat: add $sync API methods by @gmaclennan in #361
  • fix: fix core storage initialization in MapeoManager by @achou11 in #367
  • Feat: Icon HTTP Server by @tomasciccola in #315
  • implement media server in MapeoManager by @achou11 in #365
  • chore: Add debug logging by @gmaclennan in #373
  • integrate icon plugin into MediaServer by @achou11 in #369
  • fix: fix writing to blob store when also calculating content hash by @achou11 in #370
  • fix: handle duplicate connections to LocalPeers by @gmaclennan in #378
  • chore: remove authstore by @achou11 in #377
  • chore: remove unused/unneeded deps by @achou11 in #376
  • chore: fix release workflow configuration by @achou11 in #379
  • chore: extract and test construction of icon url by @achou11 in #366
  • chore: pin more hyper deps by @achou11 in #381
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.2 by @optic-release-automation in #382
  • feat: dbMigrationPathOpt - add db migration path to MapeoProject and MapeoManager by @tomasciccola in #384
  • chore: fix Brittle type definitions by @achou11 in #383
  • feat: integrate sync and project invites by @gmaclennan in #362
  • feat: remove project.ready() by @gmaclennan in #392
  • fix: fix file storage race condition by @gmaclennan in #388
  • fix: wait for index idle before returning data by @gmaclennan in #389
  • feat: dataType.on('updated-docs') when docs update by @gmaclennan in #396
  • rename MapeoManager.start() and MapeoManager.stop() methods by @achou11 in #399
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.3 by @optic-release-automation in #404
  • feat: add project.close() by @tomasciccola in #375
  • chore: fix param type for Capabilities.assignRole() by @achou11 in #394
  • add docs for using the media server and relevant APIs by @achou11 in #403
  • feat: reduce & simplify sync state by @gmaclennan in #411
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.4 by @optic-release-automation in #412
  • feat: throw an Error when creating with an existing docId by @gmaclennan in #414
  • Feat: add fields to invites by @tomasciccola in #393
  • grab existing doc when calling dataType.delete, test it by @tomasciccola in #420
  • fix!: delete() by docId not versionId(s) by @gmaclennan in #424
  • feat: add method for deleting core data from storage by @achou11 in #419
  • chore: add tsconfig for tests/ directory by @achou11 in #425
  • chore: don't run Prettier on generated files by @EvanHahn in #426
  • feat: add assignRole() method to MemberApi by @achou11 in #423
  • fix: update cores sqlite table when deleting data using CoreManager by @achou11 in #429
  • feat: add project.leave() by @achou11 in #410
  • fix: remove stale project reference in manager when leaving a project by @achou11 in #430
  • chore: add types for nanobench by @EvanHahn in #441
  • chore: prefer net.isIPv4 over custom function by @EvanHahn in #443
  • chore: prefer .find(fn) over .filter(fn)[0] by @EvanHahn in #444
  • chore!: refactor MapeoManager to accept Fastify server instance by @achou11 in #440
  • feat: return deviceId from getDeviceInfo() by @gmaclennan in #454
  • chore: don't delete own data when leaving a project by @EvanHahn in #458
  • chore: use looser type for Brittle's teardown function by @EvanHahn in #464
  • chore: prefer upstream types for bogon by @EvanHahn in #463
  • chore: use upstream types for sub-encoder by @EvanHahn in #465
  • test: assert on result, not promise itself by @EvanHahn in #468
  • feat!: exclude deleted from getMany(), option to include by @gmaclennan in #460
  • feat!: rename "Capability" to "Role", attach ID by @EvanHahn in #462
  • Feat: mapeoProject.importConfig by @tomasciccola in #405
  • feat: share deviceType with local peers by @gmaclennan in #461
  • chore: update bonjour-service to v1.2.1 by @EvanHahn in #475
  • Fix: sort icons to group variants by @tomasciccola in #476
  • chore: add exhaustiveness error utility by @EvanHahn in #478
  • chore: remove useless test by @EvanHahn in #485
  • chore: remove any type in local peers test by @EvanHahn in #487
  • chore: fix flaky local peer device info test by @EvanHahn in #488
  • feat: load default config when creating a project by @tomasciccola in #471
  • chore: use stricter function type for callback by @EvanHahn in #490
  • chore: enable noImplicitThis TypeScript option by @EvanHahn in #493
  • chore: enable strictPropertyInitialization TypeScript option by @EvanHahn in #492
  • chore: update @mapeo/schema to get new features by @EvanHahn in #477
  • chore: type-check tests where trivial by @EvanHahn in #479
  • chore: correct property name by @EvanHahn in #499
  • chore: use consistent resolution value in sync method by @EvanHahn in #501
  • chore: remove unnecessary await from test utility by @EvanHahn in #500
  • chore: enable useUnknownInCatchVariables TypeScript option by @EvanHahn in #494
  • chore: invite API's membership check can be synchronous by @EvanHahn in #480
  • chore: restore bitCount32 test by @EvanHahn in #489
  • chore: update ESLint to v8.57.0 by @EvanHahn in #503
  • chore: update rimraf to v5.0.5 by @EvanHahn in #504
  • chore: update types for yauzl-promise by @EvanHahn in #486
  • chore!: drop Node 16 support by @EvanHahn in #506
  • chore: update config import error by @EvanHahn in #505
  • chore: update Undici to latest version by @EvanHahn in #509
  • feat: send device info changes to connected peers by @EvanHahn in #508
  • chore: use Map, not Record, for listing all roles by @EvanHahn in #512
  • feat: add device type to project members by @EvanHahn in #495
  • feat: support serving static maps by @achou11 in #435
  • feat: add functionality to serve offline fallback map by @achou11 in #450
  • feat: implement online style fetching for stable style resolving by @achou11 in #459
  • feat: add method to MapeoManager for getting stable map style json url by @achou11 in #457
  • chore: update magic-bytes.js to latest version by @EvanHahn in #516
  • refactor!: use more steps for invites by @EvanHahn in #484
  • chore: improve ExpectionAssertion type in Brittle TypeScript definitions by @achou11 in #517
  • fix: emit sync state on sync.{start,stop} by @gmaclennan in #518
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.5 by @optic-release-automation in #519
  • chore: simplify member invite code by @EvanHahn in #520
  • chore: replace onceSatisfied with p-event by @EvanHahn in #522
  • chore: enable strictFunctionTypes TypeScript option by @EvanHahn in #491
  • chore: update Brittle to latest version by @EvanHahn in #527
  • chore: use the same noop everywhere by @EvanHahn in #511
  • fix: sync state prior to full sync should be correct by @gmaclennan in #523
  • fix: cache namespace sync state by @gmaclennan in #526
  • fix: throw if rejecting an invite that's already being accepted by @EvanHahn in #528
  • feat: add "received at" timestamp to invites by @EvanHahn in #529
  • chore: test jsonSchemaToDrizzleColumns by @EvanHahn in #530
  • chore: save schema integers in INTEGER SQLite columns by @EvanHahn in #531
  • chore: remove redundant test helper by @EvanHahn in #537
  • chore: add Brittle's t.snapshot() to type definitions by @EvanHahn in #535
  • chore: don't run tests on missing vendor/ directory by @EvanHahn in #539
  • feat: create projects with non-default config by @EvanHahn in #534
  • chore: shorten getExpectedConfig by @EvanHahn in #536
  • feat!: invite cancelations by @EvanHahn in #525
  • feat!: frontend should handle peer discovery by @EvanHahn in #550
  • chore: fix flaky "project leave" tests by @EvanHahn in #553
  • chore: run Prettier on CHANGELOG by @EvanHahn in #555
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.6 by @optic-release-automation in #558
  • chore: lint-staged improvements by @EvanHahn in #556
  • chore: remove out-of-date peer discovery module readme by @EvanHahn in #549
  • chore: don't auto-format built files or fixtures by @EvanHahn in #554
  • chore: remove unused replication state test helper by @EvanHahn in #561
  • chore: remove unused types by @EvanHahn in #562
  • chore: run Prettier in tests by @EvanHahn in #557
  • chore: update undici to latest version by @EvanHahn in #565
  • chore: update Drizzle by @EvanHahn in #538
  • chore: Update @mapeo/schema, fix breaking changes related to Icon by @tomasciccola in #548
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.7 by @optic-release-automation in #573
  • chore: use size helper in config import tests by @EvanHahn in #568
  • chore: update TypeScript by @EvanHahn in #569
  • docs: remove Typedoc by @EvanHahn in #574
  • chore: update Fastify dependencies to latest versions by @EvanHahn in #570
  • Feat: default config as dependency by @tomasciccola in #543
  • feat: return project public ID when accepting invite by @EvanHahn in #577
  • chore: add logging for invitees by @EvanHahn in #560
  • chore: test re-loading manager with the same data by @EvanHahn in #581
  • Revert duplicate license file by @achou11 in #591
  • feat: Translation Api by @tomasciccola in #515
  • fix: force-closing local discovery TCP server could always time out by @EvanHahn in #498
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.8 by @optic-release-automation in #592
  • chore: fix type errors in NamespaceSyncState tests by @EvanHahn in #593
  • chore: test receiving invalid invites by @EvanHahn in #566
  • fix: update pre-haves as they change by @EvanHahn in #594
  • test: remove spurious uses of t.end() by @EvanHahn in #595
  • chore: fix const type error in sync test by @EvanHahn in #596
  • chore: don't use bigint literals by @EvanHahn in #597
  • chore: fix various type errors in core sync state tests by @EvanHahn in #598
  • chore: fix type errors in Fastify plugin blob tests by @EvanHahn in #599
  • chore: remove unused address method from LocalDiscovery by @EvanHahn in #600
  • chore: fix various type errors in LocalDiscovery tests by @EvanHahn in #601
  • chore: fix several type errors in core manager tests by @EvanHahn in #603
  • chore: disallow == and != by @EvanHahn in #605
  • chore: simplify SyncApi "is syncing" logic by @EvanHahn in #610
  • chore: use ExhaustivenessError in PeerSyncController by @EvanHahn in #612
  • test: use Node's test runner for significant speedup by @EvanHahn in #617
  • chore: fix type errors in blob store combineStates tests by @EvanHahn in #616
  • chore: fix type errors in blob store tests by @EvanHahn in #615
  • chore: fix type errors in blob store live download tests by @EvanHahn in #614
  • chore: replace ts-ignore with types for logging functions by @EvanHahn in #609
  • chore: require default case in switch statements by @EvanHahn in #607
  • chore: prefer strict Node assert by @EvanHahn in #618
  • feat: Add lang option to DataType read operations by @gmaclennan in #473
  • chore: add types to fix datastore test type errors by @EvanHahn in #621
  • chore: add assertion to fix type error in DataType tests by @EvanHahn in #622
  • chore: add type cast to fix type error in core ownership test by @EvanHahn in #623
  • chore: catch failures to send pre-have messages by @EvanHahn in #625
  • fix: remove replication error when core is closed by @EvanHahn in #620
  • chore: throttle pre-have updates to avoid network flooding by @EvanHahn in #626
  • chore: clean up test createManager utility by @EvanHahn in #630
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.9 by @optic-release-automation in #632
  • chore: update @types/node to latest v18 version by @EvanHahn in #634
  • chore: update dot-prop dependency to 9.0.0 by @EvanHahn in #633
  • chore: ignore docs folder for linting and prettier by @tomasciccola in #653
  • chore: fix lockfile to include platform-specific binaries by @achou11 in #654
  • chore: make prettier ignore coverage/ and proto/build/ directories by @achou11 in #656
  • test: move LocalDiscovery tests to node:test by @EvanHahn in #642
  • test: move Fastify plugin tests to node:test and node:assert by @EvanHahn in #635
  • test: move bitfield-rle tests to node:test by @EvanHahn in #636
  • test: move blob store tests to node:test by @EvanHahn in #638
  • test: move DataStore tests to node:test by @EvanHahn in #641
  • test: move DataType tests to node:test by @EvanHahn in #640
  • test: move blob API tests to node:test by @EvanHahn in #637
  • test: move core ownership tests to node:test by @EvanHahn in #639
  • test: move RemoteBitfield tests to node:test by @EvanHahn in #646
  • test: move test/lib/ to node:test by @EvanHahn in #645
  • test: move invite API tests to node:test by @EvanHahn in #644
  • test: move utils tests to node:test by @EvanHahn in #649
  • test: move CoreSyncState tests to node:test by @EvanHahn in #648
  • test: move schema tests to node:test by @EvanHahn in #647
  • test: move schema type tests to test-types/ by @EvanHahn in #657
  • test: move FastifyController tests to node:test by @EvanHahn in #643
  • test: move basic manager tests to node:test by @EvanHahn in #662
  • test: move Fastify server tests to node:test by @EvanHahn in #661
  • test: move project settings tests to node:test by @EvanHahn in #660
  • chore: add Node 20 to CI by @achou11 in #652
  • test: remove t.plan() calls by @EvanHahn in #658
  • feat: delete lots of data from indexers when leaving project by @EvanHahn in #469
  • chore: remove unused "device type" property from MapeoManager by @EvanHahn in #665
  • test: move config import tests to node:test by @EvanHahn in #663
  • chore: fix type errors in bitfield-rle tests by @EvanHahn in #624
  • add typedoc, test doc generation by @tomasciccola in #588
  • chore: fix types for Corestore.prototype.replicate by @EvanHahn in #667
  • chore: don't try to publish docs for PRs by @EvanHahn in #668
  • chore: test serving audio by @tomasciccola in #666
  • chore: enable type checking for all tests by @EvanHahn in #669
  • chore: remove unnecessary // @ts-check directives by @EvanHahn in #670
  • test: move translation API tests to node:test by @EvanHahn in #659
  • chore: update mime to latest version by @EvanHahn in #678
  • ci: only run release workflow when manually invoked, not on PR close by @EvanHahn in #679
  • feat: add "on backgrounded" function by @EvanHahn in #611
  • Chore/update mapeo/schema and mapeo/mock-data by @tomasciccola in #655
  • chore: increment log count by @EvanHahn in #687
  • test: move icon API tests to node:test by @EvanHahn in #676
  • chore: don't error when calling #sendHaves without a peer by @EvanHahn in #691
  • chore: type-check core manager test helpers by @EvanHahn in #688
  • test: move LocalPeers tests to node:test by @EvanHahn in #675
  • test: move namespace sync state tests to node:test by @EvanHahn in #674
  • chore: prefer const over let when possible by @EvanHahn in #606
  • test: speed up "create and sync data" test by @EvanHahn in #689
  • test: move core manager tests to node:test by @EvanHahn in #677
  • chore: remove unused getPermissions option from DataType by @EvanHahn in #608
  • feat: add auto-stop option to $sync.start() by @EvanHahn in #690
  • fix: at startup, clean up left projects that failed to delete by @EvanHahn in #672
  • test: replace Brittle with node:test by @EvanHahn in #673
  • test: leaving a project should delete data from disk by @EvanHahn in #693
  • chore: uninstall @hyperswarm/testnet, remove associated types by @EvanHahn in #664
  • chore: use npm ci for deployment, not npm install by @EvanHahn in #694
  • feat: config import translations by @tomasciccola in #602
  • chore!: rename connectPeer to connectLocalPeer by @EvanHahn in #695
  • test: remove unused snapshot, left over from Brittle by @EvanHahn in #696
  • chore: invites should use special invite ID, not project public key by @EvanHahn in #571
  • test: disconnect managers in teardown, not inline by @EvanHahn in #698
  • test: make blob store test helper synchronous by @EvanHahn in #699
  • docs: disable doc build when releasing by @EvanHahn in #708
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.10 by @optic-release-automation in #709
  • ci: run release workflow on PR close to fix releases by @EvanHahn in #710
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.11 by @optic-release-automation in #711
  • chore: require curly brackets for multiline blocks by @EvanHahn in #702
  • feat: expose creator, coordinator, and member role IDs by @EvanHahn in #704
  • feat: add e2e tests for config-import. by @tomasciccola in #700
  • feat: add MapeoProject.prototype.$createdByToDeviceId by @EvanHahn in #697
  • feat: detect closed connections with TCP keepalive by @EvanHahn in #712
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.12 by @optic-release-automation in #714
  • chore: replace var with let and const by @EvanHahn in #613
  • chore: import quickbit-universal normally by @EvanHahn in #713
  • chore: remove unused member from MapeoProject by @EvanHahn in #703
  • feat: you can now leave a project if you're the only member by @EvanHahn in #720
  • fix: auto-download blob namespace by @EvanHahn in #722
  • fix: properly emit sync state right after starting/stopping by @EvanHahn in #725
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.13 by @optic-release-automation in #726
  • chore: remove unused cache from CoreSyncState by @EvanHahn in #728
  • test: speed up sync test in FAST_TESTS mode by @EvanHahn in #729
  • fix: stale caches for sync state when peer is added by @EvanHahn in #732
  • feat: support additional metadata for blobs by @EvanHahn in #723
  • chore: fix type error in sync test by @EvanHahn in #733
  • chore: change empty for with iterpal.arrayFrom by @tomasciccola in #734
  • docs: remove useless @returns from several functions by @EvanHahn in #736
  • feat: add unspecified to rpc.proto enums by @tomasciccola in #731
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.14 by @optic-release-automation in #740
  • chore: Integrate @mapeo/schema update by @tomasciccola in #741
  • chore: use unzipped config fixtures by @tomasciccola in #739
  • feat: import config metadata and import to projectSettings by @tomasciccola in #721
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.15 by @optic-release-automation in #748
  • feat: add API to change sync auto-stop timeout by @EvanHahn in #747
  • chore: ignore test fixture ZIPs by @EvanHahn in #750
  • chore: use Object.hasOwn() by @EvanHahn in #749
  • feat: MemberInfo - expose when a project member joined the project by @tomasciccola in #745
  • chore: improve types for Hypercore peers by @EvanHahn in #735
  • feat!: expose device-specific sync state by @EvanHahn in #757
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.16 by @optic-release-automation in #758
  • chore: update TypeScript to 5.5 by @EvanHahn in #759
  • chore: only write auth writer core once in CoreOwnership by @EvanHahn in #755
  • chore: use standard Namespace type by @EvanHahn in #766
  • chore: use @import instead of @typedef {import(...)} by @EvanHahn in #760
  • chore: allow null in several Protomux method options by @EvanHahn in #763
  • chore: move PRESYNC_NAMESPACES into central constants file by @EvanHahn in #767
  • test: use mock data in more places by @EvanHahn in #771
  • chore: uninstall unused light-my-request dependency by @EvanHahn in #774
  • fix: update streamx and move it to production dependencies by @EvanHahn in #776
  • chore: remove unused patch-package dependency by @EvanHahn in #778
  • chore: remove unused hyperswarm dependency by @EvanHahn in #775
  • chore: update random-access-{file,memory} dependencies by @EvanHahn in #780
  • feat: emit updates from CoreOwnership and Roles, add CoreOwnership#get by @EvanHahn in #781
  • feat!: update @mapeo/schema to latest version by @EvanHahn in #715
  • feat: create projects as initial project by @EvanHahn in #772
  • chore: rename PeerCoreState to PeerNamespaceState by @EvanHahn in #784
  • fix: sync should only happen when both sides are enabled by @EvanHahn in #764
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.17 by @optic-release-automation in #787
  • test: fix "too many files" config import test on some file systems by @EvanHahn in #788
  • feat: only send/receive core keys with permission by @EvanHahn in #783
  • chore: reinstall yauzl-promise to fix subdependency error by @EvanHahn in #789
  • test: rename CoreManager test helper function name and args by @EvanHahn in #795
  • chore: remove unused member from SyncApi by @EvanHahn in #794
  • chore: rename peer namespace state status options by @EvanHahn in #793
  • fix: only mark sync state enabled when entire group is enabled by @EvanHahn in #785
  • fix: respect all data namespaces for sync auto-stop by @EvanHahn in #769
  • fix: check for icon file referenced by preset.icon by @tomasciccola in #782
  • chore: update hypercore-crypto to 3.4.2 by @EvanHahn in #777
  • chore: remove unused random-bytes-readable-stream dependency by @EvanHahn in #779
  • feat: delete old config docs only after successful new config import by @tomasciccola in #765
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.18 by @optic-release-automation in #796
  • chore: update default-config to alpha 8 by @tomasciccola in #797
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.19 by @optic-release-automation in #798
  • test: fix config import assertion message typo by @EvanHahn in #799
  • feat!: update @mapeo/schema to latest version by @EvanHahn in #800
  • fix: update schema for recent @mapeo/schema updates by @EvanHahn in #801
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.20 by @optic-release-automation in #802
  • chore: update mapeo/schema by @tomasciccola in #803
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.21 by @optic-release-automation in #804
  • fix: remove selfHostedServer from deviceInfo.deviceType rpc by @tomasciccola in #807
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.22 by @optic-release-automation in #808
  • feat!: update @mapeo/schema to latest version by @EvanHahn in #809
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.23 by @optic-release-automation in #810
  • chore: use upstream types for compact-encoding by @EvanHahn in #813
  • test: changing your mind about an invite by @EvanHahn in #811
  • chore: remove unused LocalDiscovery members by @EvanHahn in #814
  • chore: use more exact type in socket error handler by @EvanHahn in #818
  • chore: use separate helper file for NoiseSecretStreams by @EvanHahn in #816
  • chore: fix typo in log message by @EvanHahn in #817
  • chore: semver on release flow by @tomasciccola in #823
  • chore: update authors before release of 1.0.0 by @EvanHahn in #826
  • chore: add explicit return types for LocalDiscovery methods by @EvanHahn in #819
  • chore!: update to latest schema version by @EvanHahn in #829
  • build: re-enable prerelease tags by @EvanHahn in #830
  • [OPTIC-RELEASE-AUTOMATION] release/v9.0.0-alpha.24 by @optic-release-automation in #831
  • chore: update mapeo-schema & mapeo-mock-data by @gmaclennan in #833

New Contributors

Full Changelog: https://github.com/digidem/comapeo-core/commits/v9.0.0-alpha.25