Add comprehensive installation and setup documentation

- Add GETTING_STARTED.md with quick start guide and development modes
- Add INSTALL.sh automated installation script
- Add INSTALLATION_CHECKLIST.md, INSTALLATION_SUCCESS.md, and INSTALLATION_SUMMARY.md
- Add QUICK_REFERENCE.md for common commands
- Add SETUP_GUIDE.md with detailed setup instructions
- Update README.md with improved project overview
- Add did-wallet app dependencies and node_modules
This commit is contained in:
Dorian
2026-01-27 17:18:21 +00:00
parent a81f655133
commit 0d073fa89e
22658 changed files with 4494151 additions and 6 deletions

View File

@@ -0,0 +1,4 @@
This project is dual licensed under MIT and Apache-2.0.
MIT: https://www.opensource.org/licenses/mit
Apache-2.0: https://www.apache.org/licenses/license-2.0

View File

@@ -0,0 +1,53 @@
# interface-blockstore <!-- omit in toc -->
[![ipfs.tech](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](https://ipfs.tech)
[![Discuss](https://img.shields.io/discourse/https/discuss.ipfs.tech/posts.svg?style=flat-square)](https://discuss.ipfs.tech)
[![codecov](https://img.shields.io/codecov/c/github/ipfs/js-stores.svg?style=flat-square)](https://codecov.io/gh/ipfs/js-stores)
[![CI](https://img.shields.io/github/actions/workflow/status/ipfs/js-stores/js-test-and-release.yml?branch=main\&style=flat-square)](https://github.com/ipfs/js-stores/actions/workflows/js-test-and-release.yml?query=branch%3Amain)
> An interface for storing and retrieving blocks
## Table of contents <!-- omit in toc -->
- [Install](#install)
- [Implementations](#implementations)
- [API Docs](#api-docs)
- [License](#license)
- [Contribute](#contribute)
## Install
```console
$ npm i interface-blockstore
```
## Implementations
- File System: [`blockstore-fs`](https://github.com/ipfs/js-stores/tree/main/packages/blockstore-fs)
- IndexedDB: [`blockstore-idb`](https://github.com/ipfs/js-stores/blob/main/packages/blockstore-idb)
- level: [`blockstore-level`](https://github.com/ipfs/js-stores/tree/main/packages/blockstore-level) (supports any levelup compatible backend)
- Memory: [`blockstore-core/memory`](https://github.com/ipfs/js-stores/blob/main/packages/blockstore-core/src/memory.ts)
- S3: [`blockstore-s3`](https://github.com/ipfs/js-stores/tree/main/packages/blockstore-s3)
## API Docs
- <https://ipfs.github.io/js-stores/modules/interface_blockstore.html>
## License
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
## Contribute
Contributions welcome! Please check out [the issues](https://github.com/ipfs/js-stores/issues).
Also see our [contributing document](https://github.com/ipfs/community/blob/master/CONTRIBUTING_JS.md) for more information on how we work, and about contributing in general.
Please be aware that all interactions related to this repo are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)

View File

@@ -0,0 +1,3 @@
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.InterfaceBlockstore = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var InterfaceBlockstore=(()=>{var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(o,e,x,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of b(e))!c.call(o,p)&&p!==x&&t(o,p,{get:()=>e[p],enumerable:!(r=a(e,p))||r.enumerable});return o};var f=o=>d(t({},"__esModule",{value:!0}),o);var g={};return f(g);})();
return InterfaceBlockstore}));

View File

@@ -0,0 +1,21 @@
import type { AbortOptions, AwaitIterable, Store } from 'interface-store';
import type { CID } from 'multiformats/cid';
export interface Pair {
cid: CID;
block: Uint8Array;
}
export interface Blockstore<HasOptionsExtension = {}, PutOptionsExtension = {}, PutManyOptionsExtension = {}, GetOptionsExtension = {}, GetManyOptionsExtension = {}, GetAllOptionsExtension = {}, DeleteOptionsExtension = {}, DeleteManyOptionsExtension = {}> extends Store<CID, Uint8Array, Pair, HasOptionsExtension, PutOptionsExtension, PutManyOptionsExtension, GetOptionsExtension, GetManyOptionsExtension, DeleteOptionsExtension, DeleteManyOptionsExtension> {
/**
* Retrieve all cid/block pairs from the blockstore as an unordered iterable
*
* @example
* ```js
* for await (const { multihash, block } of store.getAll()) {
* console.log('got:', multihash, block)
* // => got MultihashDigest('Qmfoo') Uint8Array[...]
* }
* ```
*/
getAll: (options?: AbortOptions & GetAllOptionsExtension) => AwaitIterable<Pair>;
}
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,KAAK,EACN,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,UAAU,CAAE,mBAAmB,GAAG,EAAE,EACrD,mBAAmB,GAAG,EAAE,EAAE,uBAAuB,GAAG,EAAE,EACtD,mBAAmB,GAAG,EAAE,EAAE,uBAAuB,GAAG,EAAE,EAAE,sBAAsB,GAAG,EAAE,EACnF,sBAAsB,GAAG,EAAE,EAAE,0BAA0B,GAAG,EAAE,CAAE,SAAQ,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EACpH,mBAAmB,EAAE,uBAAuB,EAC5C,mBAAmB,EAAE,uBAAuB,EAC5C,sBAAsB,EAAE,0BAA0B,CAAC;IACnD;;;;;;;;;;OAUG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,sBAAsB,KAAK,aAAa,CAAC,IAAI,CAAC,CAAA;CACjF"}

View File

@@ -0,0 +1,7 @@
/* eslint-disable @typescript-eslint/ban-types */
// this ignore is so we can use {} as the default value for the options
// extensions below - it normally means "any non-nullish value" but here
// we are using it as an intersection type - see the aside at the bottom:
// https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
export {};
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,4FAA4F"}

View File

@@ -0,0 +1,4 @@
{
"Blockstore": "https://ipfs.github.io/js-stores/interfaces/blockstore_core._internal_.Blockstore.html",
"Pair": "https://ipfs.github.io/js-stores/interfaces/blockstore_core._internal_.Pair.html"
}

View File

@@ -0,0 +1,139 @@
{
"name": "interface-blockstore",
"version": "5.2.3",
"description": "An interface for storing and retrieving blocks",
"license": "Apache-2.0 OR MIT",
"homepage": "https://github.com/ipfs/js-stores/tree/master/packages/interface-blockstore#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/ipfs/js-stores.git"
},
"bugs": {
"url": "https://github.com/ipfs/js-stores/issues"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=7.0.0"
},
"type": "module",
"types": "./dist/src/index.d.ts",
"files": [
"src",
"dist",
"!dist/test",
"!**/*.tsbuildinfo"
],
"exports": {
".": {
"types": "./dist/src/index.d.ts",
"import": "./dist/src/index.js"
}
},
"eslintConfig": {
"extends": "ipfs",
"parserOptions": {
"sourceType": "module"
}
},
"release": {
"branches": [
"main"
],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"releaseRules": [
{
"breaking": true,
"release": "major"
},
{
"revert": true,
"release": "patch"
},
{
"type": "feat",
"release": "minor"
},
{
"type": "fix",
"release": "patch"
},
{
"type": "docs",
"release": "patch"
},
{
"type": "test",
"release": "patch"
},
{
"type": "deps",
"release": "patch"
},
{
"scope": "no-release",
"release": false
}
]
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"presetConfig": {
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "chore",
"section": "Trivial Changes"
},
{
"type": "docs",
"section": "Documentation"
},
{
"type": "deps",
"section": "Dependencies"
},
{
"type": "test",
"section": "Tests"
}
]
}
}
],
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/github",
"@semantic-release/git"
]
},
"scripts": {
"build": "aegir build",
"lint": "aegir lint",
"clean": "aegir clean",
"release": "aegir release"
},
"dependencies": {
"interface-store": "^5.0.0",
"multiformats": "^11.0.2"
},
"devDependencies": {
"aegir": "^39.0.9"
},
"typedoc": {
"entryPoint": "./src/index.ts"
}
}

View File

@@ -0,0 +1,38 @@
/* eslint-disable @typescript-eslint/ban-types */
// this ignore is so we can use {} as the default value for the options
// extensions below - it normally means "any non-nullish value" but here
// we are using it as an intersection type - see the aside at the bottom:
// https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
import type {
AbortOptions,
AwaitIterable,
Store
} from 'interface-store'
import type { CID } from 'multiformats/cid'
export interface Pair {
cid: CID
block: Uint8Array
}
export interface Blockstore <HasOptionsExtension = {},
PutOptionsExtension = {}, PutManyOptionsExtension = {},
GetOptionsExtension = {}, GetManyOptionsExtension = {}, GetAllOptionsExtension = {},
DeleteOptionsExtension = {}, DeleteManyOptionsExtension = {}> extends Store<CID, Uint8Array, Pair, HasOptionsExtension,
PutOptionsExtension, PutManyOptionsExtension,
GetOptionsExtension, GetManyOptionsExtension,
DeleteOptionsExtension, DeleteManyOptionsExtension> {
/**
* Retrieve all cid/block pairs from the blockstore as an unordered iterable
*
* @example
* ```js
* for await (const { multihash, block } of store.getAll()) {
* console.log('got:', multihash, block)
* // => got MultihashDigest('Qmfoo') Uint8Array[...]
* }
* ```
*/
getAll: (options?: AbortOptions & GetAllOptionsExtension) => AwaitIterable<Pair>
}