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

85
apps/did-wallet/node_modules/it-batch/README.md generated vendored Normal file
View File

@@ -0,0 +1,85 @@
# it-batch
[![codecov](https://img.shields.io/codecov/c/github/achingbrain/it.svg?style=flat-square)](https://codecov.io/gh/achingbrain/it)
[![CI](https://img.shields.io/github/actions/workflow/status/achingbrain/it/js-test-and-release.yml?branch=main\&style=flat-square)](https://github.com/achingbrain/it/actions/workflows/js-test-and-release.yml?query=branch%3Amain)
> Takes an async iterator that emits things and emits them as fixed size batches
# About
<!--
!IMPORTANT!
Everything in this README between "# About" and "# Install" is automatically
generated and will be overwritten the next time the doc generator is run.
To make changes to this section, please update the @packageDocumentation section
of src/index.js or src/index.ts
To experiment with formatting, please run "npm run docs" from the root of this
repo and examine the changes made.
-->
The final batch may be smaller than the max.
## Example
```javascript
import batch from 'it-batch'
import all from 'it-all'
// This can also be an iterator, generator, etc
const values = [0, 1, 2, 3, 4]
const batchSize = 2
const result = all(batch(values, batchSize))
console.info(result) // [0, 1], [2, 3], [4]
```
Async sources must be awaited:
```javascript
import batch from 'it-batch'
import all from 'it-all'
const values = async function * () {
yield * [0, 1, 2, 3, 4]
}
const batchSize = 2
const result = await all(batch(values(), batchSize))
console.info(result) // [0, 1], [2, 3], [4]
```
# Install
```console
$ npm i it-batch
```
## Browser `<script>` tag
Loading this module through a script tag will make its exports available as `ItBatch` in the global namespace.
```html
<script src="https://unpkg.com/it-batch/dist/index.min.js"></script>
```
# API Docs
- <https://achingbrain.github.io/it/modules/it_batch.html>
# License
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](https://github.com/achingbrain/it/blob/main/packages/it-batch/LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT ([LICENSE-MIT](https://github.com/achingbrain/it/blob/main/packages/it-batch/LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
# Contribution
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.

View File

@@ -0,0 +1,4 @@
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.ItBatch = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var ItBatch=(()=>{var e=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var a=(l,t)=>{for(var n in t)e(l,n,{get:t[n],enumerable:!0})},f=(l,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let h of o(t))!i.call(l,h)&&h!==n&&e(l,h,{get:()=>t[h],enumerable:!(r=c(t,h))||r.enumerable});return l};var u=l=>f(e({},"__esModule",{value:!0}),l);var d={};a(d,{default:()=>y});function g(l){return l[Symbol.asyncIterator]!=null}function w(l,t=1){return t=Number(t),g(l)?async function*(){let n=[];if(t<1&&(t=1),t!==Math.round(t))throw new Error("Batch size must be an integer");for await(let r of l)for(n.push(r);n.length>=t;)yield n.slice(0,t),n=n.slice(t);for(;n.length>0;)yield n.slice(0,t),n=n.slice(t)}():function*(){let n=[];if(t<1&&(t=1),t!==Math.round(t))throw new Error("Batch size must be an integer");for(let r of l)for(n.push(r);n.length>=t;)yield n.slice(0,t),n=n.slice(t);for(;n.length>0;)yield n.slice(0,t),n=n.slice(t)}()}var y=w;return u(d);})();
return ItBatch}));
//# sourceMappingURL=index.min.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/index.ts"],
"sourcesContent": ["/**\n * @packageDocumentation\n *\n * The final batch may be smaller than the max.\n *\n * @example\n *\n * ```javascript\n * import batch from 'it-batch'\n * import all from 'it-all'\n *\n * // This can also be an iterator, generator, etc\n * const values = [0, 1, 2, 3, 4]\n * const batchSize = 2\n *\n * const result = all(batch(values, batchSize))\n *\n * console.info(result) // [0, 1], [2, 3], [4]\n * ```\n *\n * Async sources must be awaited:\n *\n * ```javascript\n * import batch from 'it-batch'\n * import all from 'it-all'\n *\n * const values = async function * () {\n * yield * [0, 1, 2, 3, 4]\n * }\n *\n * const batchSize = 2\n * const result = await all(batch(values(), batchSize))\n *\n * console.info(result) // [0, 1], [2, 3], [4]\n * ```\n */\n\nfunction isAsyncIterable <T> (thing: any): thing is AsyncIterable<T> {\n return thing[Symbol.asyncIterator] != null\n}\n\n/**\n * Takes an (async) iterable that emits things and returns an async iterable that\n * emits those things in fixed-sized batches\n */\nfunction batch <T> (source: Iterable<T>, size?: number): Generator<T[], void, undefined>\nfunction batch <T> (source: Iterable<T> | AsyncIterable<T>, size?: number): AsyncGenerator<T[], void, undefined>\nfunction batch <T> (source: Iterable<T> | AsyncIterable<T>, size: number = 1): Generator<T[], void, undefined> | AsyncGenerator<T[], void, undefined> {\n size = Number(size)\n\n if (isAsyncIterable(source)) {\n return (async function * () {\n let things: T[] = []\n\n if (size < 1) {\n size = 1\n }\n\n if (size !== Math.round(size)) {\n throw new Error('Batch size must be an integer')\n }\n\n for await (const thing of source) {\n things.push(thing)\n\n while (things.length >= size) {\n yield things.slice(0, size)\n\n things = things.slice(size)\n }\n }\n\n while (things.length > 0) {\n yield things.slice(0, size)\n\n things = things.slice(size)\n }\n }())\n }\n\n return (function * () {\n let things: T[] = []\n\n if (size < 1) {\n size = 1\n }\n\n if (size !== Math.round(size)) {\n throw new Error('Batch size must be an integer')\n }\n\n for (const thing of source) {\n things.push(thing)\n\n while (things.length >= size) {\n yield things.slice(0, size)\n\n things = things.slice(size)\n }\n }\n\n while (things.length > 0) {\n yield things.slice(0, size)\n\n things = things.slice(size)\n }\n }())\n}\n\nexport default batch\n"],
"mappings": ";2bAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAqCA,SAASC,EAAqBC,EAAU,CACtC,OAAOA,EAAM,OAAO,aAAa,GAAK,IACxC,CAQA,SAASC,EAAWC,EAAwCC,EAAe,EAAC,CAG1E,OAFAA,EAAO,OAAOA,CAAI,EAEdJ,EAAgBG,CAAM,EAChB,iBAAgB,CACtB,IAAIE,EAAc,CAAA,EAMlB,GAJID,EAAO,IACTA,EAAO,GAGLA,IAAS,KAAK,MAAMA,CAAI,EAC1B,MAAM,IAAI,MAAM,+BAA+B,EAGjD,cAAiBH,KAASE,EAGxB,IAFAE,EAAO,KAAKJ,CAAK,EAEVI,EAAO,QAAUD,GACtB,MAAMC,EAAO,MAAM,EAAGD,CAAI,EAE1BC,EAASA,EAAO,MAAMD,CAAI,EAI9B,KAAOC,EAAO,OAAS,GACrB,MAAMA,EAAO,MAAM,EAAGD,CAAI,EAE1BC,EAASA,EAAO,MAAMD,CAAI,CAE9B,EAAC,EAGK,WAAU,CAChB,IAAIC,EAAc,CAAA,EAMlB,GAJID,EAAO,IACTA,EAAO,GAGLA,IAAS,KAAK,MAAMA,CAAI,EAC1B,MAAM,IAAI,MAAM,+BAA+B,EAGjD,QAAWH,KAASE,EAGlB,IAFAE,EAAO,KAAKJ,CAAK,EAEVI,EAAO,QAAUD,GACtB,MAAMC,EAAO,MAAM,EAAGD,CAAI,EAE1BC,EAASA,EAAO,MAAMD,CAAI,EAI9B,KAAOC,EAAO,OAAS,GACrB,MAAMA,EAAO,MAAM,EAAGD,CAAI,EAE1BC,EAASA,EAAO,MAAMD,CAAI,CAE9B,EAAC,CACH,CAEA,IAAAL,EAAeG",
"names": ["index_exports", "__export", "index_default", "isAsyncIterable", "thing", "batch", "source", "size", "things"]
}

View File

@@ -0,0 +1,44 @@
/**
* @packageDocumentation
*
* The final batch may be smaller than the max.
*
* @example
*
* ```javascript
* import batch from 'it-batch'
* import all from 'it-all'
*
* // This can also be an iterator, generator, etc
* const values = [0, 1, 2, 3, 4]
* const batchSize = 2
*
* const result = all(batch(values, batchSize))
*
* console.info(result) // [0, 1], [2, 3], [4]
* ```
*
* Async sources must be awaited:
*
* ```javascript
* import batch from 'it-batch'
* import all from 'it-all'
*
* const values = async function * () {
* yield * [0, 1, 2, 3, 4]
* }
*
* const batchSize = 2
* const result = await all(batch(values(), batchSize))
*
* console.info(result) // [0, 1], [2, 3], [4]
* ```
*/
/**
* Takes an (async) iterable that emits things and returns an async iterable that
* emits those things in fixed-sized batches
*/
declare function batch<T>(source: Iterable<T>, size?: number): Generator<T[], void, undefined>;
declare function batch<T>(source: Iterable<T> | AsyncIterable<T>, size?: number): AsyncGenerator<T[], void, undefined>;
export default batch;
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH;;;GAGG;AACH,iBAAS,KAAK,CAAE,CAAC,EAAG,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;AACxF,iBAAS,KAAK,CAAE,CAAC,EAAG,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;AA+DhH,eAAe,KAAK,CAAA"}

View File

@@ -0,0 +1,86 @@
/**
* @packageDocumentation
*
* The final batch may be smaller than the max.
*
* @example
*
* ```javascript
* import batch from 'it-batch'
* import all from 'it-all'
*
* // This can also be an iterator, generator, etc
* const values = [0, 1, 2, 3, 4]
* const batchSize = 2
*
* const result = all(batch(values, batchSize))
*
* console.info(result) // [0, 1], [2, 3], [4]
* ```
*
* Async sources must be awaited:
*
* ```javascript
* import batch from 'it-batch'
* import all from 'it-all'
*
* const values = async function * () {
* yield * [0, 1, 2, 3, 4]
* }
*
* const batchSize = 2
* const result = await all(batch(values(), batchSize))
*
* console.info(result) // [0, 1], [2, 3], [4]
* ```
*/
function isAsyncIterable(thing) {
return thing[Symbol.asyncIterator] != null;
}
function batch(source, size = 1) {
size = Number(size);
if (isAsyncIterable(source)) {
return (async function* () {
let things = [];
if (size < 1) {
size = 1;
}
if (size !== Math.round(size)) {
throw new Error('Batch size must be an integer');
}
for await (const thing of source) {
things.push(thing);
while (things.length >= size) {
yield things.slice(0, size);
things = things.slice(size);
}
}
while (things.length > 0) {
yield things.slice(0, size);
things = things.slice(size);
}
}());
}
return (function* () {
let things = [];
if (size < 1) {
size = 1;
}
if (size !== Math.round(size)) {
throw new Error('Batch size must be an integer');
}
for (const thing of source) {
things.push(thing);
while (things.length >= size) {
yield things.slice(0, size);
things = things.slice(size);
}
}
while (things.length > 0) {
yield things.slice(0, size);
things = things.slice(size);
}
}());
}
export default batch;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,SAAS,eAAe,CAAM,KAAU;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,CAAA;AAC5C,CAAC;AAQD,SAAS,KAAK,CAAM,MAAsC,EAAE,OAAe,CAAC;IAC1E,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAEnB,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,SAAU,CAAC;YACtB,IAAI,MAAM,GAAQ,EAAE,CAAA;YAEpB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,IAAI,GAAG,CAAC,CAAA;YACV,CAAC;YAED,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;YAClD,CAAC;YAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAElB,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;oBAC7B,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;oBAE3B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBAE3B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC,EAAE,CAAC,CAAA;IACN,CAAC;IAED,OAAO,CAAC,QAAS,CAAC;QAChB,IAAI,MAAM,GAAQ,EAAE,CAAA;QAEpB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,CAAA;QACV,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAElB,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC7B,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBAE3B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAE3B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,CAAA;AACN,CAAC;AAED,eAAe,KAAK,CAAA"}

143
apps/did-wallet/node_modules/it-batch/package.json generated vendored Normal file
View File

@@ -0,0 +1,143 @@
{
"name": "it-batch",
"version": "3.0.9",
"description": "Takes an async iterator that emits things and emits them as fixed size batches",
"author": "Alex Potsides <alex@achingbrain.net>",
"license": "Apache-2.0 OR MIT",
"homepage": "https://github.com/achingbrain/it/tree/main/packages/it-batch#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/achingbrain/it.git"
},
"bugs": {
"url": "https://github.com/achingbrain/it/issues"
},
"publishConfig": {
"access": "public",
"provenance": true
},
"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"
}
},
"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",
{
"assets": [
"CHANGELOG.md",
"package.json"
]
}
]
]
},
"scripts": {
"build": "aegir build",
"lint": "aegir lint",
"dep-check": "aegir dep-check",
"clean": "aegir clean",
"test": "aegir test",
"test:node": "aegir test -t node --cov",
"test:chrome": "aegir test -t browser --cov",
"test:chrome-webworker": "aegir test -t webworker",
"test:firefox": "aegir test -t browser -- --browser firefox",
"test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
"release": "aegir release"
},
"devDependencies": {
"aegir": "^47.0.16",
"it-all": "^3.0.0"
}
}

110
apps/did-wallet/node_modules/it-batch/src/index.ts generated vendored Normal file
View File

@@ -0,0 +1,110 @@
/**
* @packageDocumentation
*
* The final batch may be smaller than the max.
*
* @example
*
* ```javascript
* import batch from 'it-batch'
* import all from 'it-all'
*
* // This can also be an iterator, generator, etc
* const values = [0, 1, 2, 3, 4]
* const batchSize = 2
*
* const result = all(batch(values, batchSize))
*
* console.info(result) // [0, 1], [2, 3], [4]
* ```
*
* Async sources must be awaited:
*
* ```javascript
* import batch from 'it-batch'
* import all from 'it-all'
*
* const values = async function * () {
* yield * [0, 1, 2, 3, 4]
* }
*
* const batchSize = 2
* const result = await all(batch(values(), batchSize))
*
* console.info(result) // [0, 1], [2, 3], [4]
* ```
*/
function isAsyncIterable <T> (thing: any): thing is AsyncIterable<T> {
return thing[Symbol.asyncIterator] != null
}
/**
* Takes an (async) iterable that emits things and returns an async iterable that
* emits those things in fixed-sized batches
*/
function batch <T> (source: Iterable<T>, size?: number): Generator<T[], void, undefined>
function batch <T> (source: Iterable<T> | AsyncIterable<T>, size?: number): AsyncGenerator<T[], void, undefined>
function batch <T> (source: Iterable<T> | AsyncIterable<T>, size: number = 1): Generator<T[], void, undefined> | AsyncGenerator<T[], void, undefined> {
size = Number(size)
if (isAsyncIterable(source)) {
return (async function * () {
let things: T[] = []
if (size < 1) {
size = 1
}
if (size !== Math.round(size)) {
throw new Error('Batch size must be an integer')
}
for await (const thing of source) {
things.push(thing)
while (things.length >= size) {
yield things.slice(0, size)
things = things.slice(size)
}
}
while (things.length > 0) {
yield things.slice(0, size)
things = things.slice(size)
}
}())
}
return (function * () {
let things: T[] = []
if (size < 1) {
size = 1
}
if (size !== Math.round(size)) {
throw new Error('Batch size must be an integer')
}
for (const thing of source) {
things.push(thing)
while (things.length >= size) {
yield things.slice(0, size)
things = things.slice(size)
}
}
while (things.length > 0) {
yield things.slice(0, size)
things = things.slice(size)
}
}())
}
export default batch