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
+4
View File
@@ -0,0 +1,4 @@
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.ItParallelBatch = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var ItParallelBatch=(()=>{var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var g=(l,t)=>{for(var n in t)a(l,n,{get:t[n],enumerable:!0})},s=(l,t,n,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of f(t))!u.call(l,r)&&r!==n&&a(l,r,{get:()=>t[r],enumerable:!(e=i(t,r))||e.enumerable});return l};var w=l=>s(a({},"__esModule",{value:!0}),l);var b={};g(b,{default:()=>c});function y(l){return l[Symbol.asyncIterator]!=null}function d(l,t=1){return t=Number(t),y(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 e of l)for(n.push(e);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 e of l)for(n.push(e);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 h=d;async function*c(l,t=1){for await(let n of h(l,t)){let e=n.map(async r=>r().then(o=>({ok:!0,value:o}),o=>({ok:!1,err:o})));for(let r=0;r<e.length;r++){let o=await e[r];if(o.ok)yield o.value;else throw o.err}}}return w(b);})();
return ItParallelBatch}));
//# sourceMappingURL=index.min.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../src/index.ts", "../../it-batch/src/index.ts"],
"sourcesContent": ["/**\n * @packageDocumentation\n *\n * Takes an async iterator that emits promise-returning functions, invokes them in parallel and emits the results in the same order as the input.\n *\n * The final batch may be smaller than the batch size.\n *\n * @example\n *\n * ```javascript\n * import parallelBatch from 'it-parallel-batch'\n * import all from 'it-all'\n * import delay from 'delay'\n *\n * // This can also be an iterator, async iterator, generator, etc\n * const input = [\n * async () => {\n * await delay(500)\n *\n * return 1\n * },\n * async () => {\n * await delay(200)\n *\n * return 2\n * },\n * async () => {\n * await delay(100)\n *\n * return 3\n * }\n * ]\n *\n * const batchSize = 2\n *\n * const result = await all(parallelBatch(input, batchSize))\n *\n * console.info(result) // [1, 2, 3]\n * ```\n */\n\nimport batch from 'it-batch'\n\ninterface Success<T> {\n ok: true\n value: T\n}\n\ninterface Failure {\n ok: false\n err: Error\n}\n\n/**\n * Takes an (async) iterator that emits promise-returning functions,\n * invokes them in parallel and emits the results as they become available but\n * in the same order as the input\n */\nexport default async function * parallelBatch <T> (source: AsyncIterable<() => Promise<T>> | Iterable<() => Promise<T>>, size: number = 1): AsyncGenerator<T, void, undefined> {\n for await (const tasks of batch(source, size)) {\n const things: Array<Promise<Success<T> | Failure>> = tasks.map(\n async (p: () => Promise<T>) => {\n return p().then(value => ({ ok: true, value }), err => ({ ok: false, err }))\n })\n\n for (let i = 0; i < things.length; i++) {\n const result = await things[i]\n\n if (result.ok) {\n yield result.value\n } else {\n throw result.err\n }\n }\n }\n}\n", "/**\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": ";mcAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,ICqCA,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,IAAAE,EAAeJ,EDnDf,eAAOK,EAA4CC,EAAsEC,EAAe,EAAC,CACvI,cAAiBC,KAASC,EAAMH,EAAQC,CAAI,EAAG,CAC7C,IAAMG,EAA+CF,EAAM,IACzD,MAAOG,GACEA,EAAC,EAAG,KAAKC,IAAU,CAAE,GAAI,GAAM,MAAAA,CAAK,GAAKC,IAAQ,CAAE,GAAI,GAAO,IAAAA,CAAG,EAAG,CAC5E,EAEH,QAASC,EAAI,EAAGA,EAAIJ,EAAO,OAAQI,IAAK,CACtC,IAAMC,EAAS,MAAML,EAAOI,CAAC,EAE7B,GAAIC,EAAO,GACT,MAAMA,EAAO,UAEb,OAAMA,EAAO,GAEjB,CACF,CACF",
"names": ["index_exports", "__export", "parallelBatch", "isAsyncIterable", "thing", "batch", "source", "size", "things", "src_default", "parallelBatch", "source", "size", "tasks", "src_default", "things", "p", "value", "err", "i", "result"]
}
+47
View File
@@ -0,0 +1,47 @@
/**
* @packageDocumentation
*
* Takes an async iterator that emits promise-returning functions, invokes them in parallel and emits the results in the same order as the input.
*
* The final batch may be smaller than the batch size.
*
* @example
*
* ```javascript
* import parallelBatch from 'it-parallel-batch'
* import all from 'it-all'
* import delay from 'delay'
*
* // This can also be an iterator, async iterator, generator, etc
* const input = [
* async () => {
* await delay(500)
*
* return 1
* },
* async () => {
* await delay(200)
*
* return 2
* },
* async () => {
* await delay(100)
*
* return 3
* }
* ]
*
* const batchSize = 2
*
* const result = await all(parallelBatch(input, batchSize))
*
* console.info(result) // [1, 2, 3]
* ```
*/
/**
* Takes an (async) iterator that emits promise-returning functions,
* invokes them in parallel and emits the results as they become available but
* in the same order as the input
*/
export default function parallelBatch<T>(source: AsyncIterable<() => Promise<T>> | Iterable<() => Promise<T>>, size?: number): AsyncGenerator<T, void, undefined>;
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAcH;;;;GAIG;AACH,wBAAgC,aAAa,CAAE,CAAC,EAAG,MAAM,EAAE,aAAa,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,MAAU,GAAG,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAiB7K"}
+63
View File
@@ -0,0 +1,63 @@
/**
* @packageDocumentation
*
* Takes an async iterator that emits promise-returning functions, invokes them in parallel and emits the results in the same order as the input.
*
* The final batch may be smaller than the batch size.
*
* @example
*
* ```javascript
* import parallelBatch from 'it-parallel-batch'
* import all from 'it-all'
* import delay from 'delay'
*
* // This can also be an iterator, async iterator, generator, etc
* const input = [
* async () => {
* await delay(500)
*
* return 1
* },
* async () => {
* await delay(200)
*
* return 2
* },
* async () => {
* await delay(100)
*
* return 3
* }
* ]
*
* const batchSize = 2
*
* const result = await all(parallelBatch(input, batchSize))
*
* console.info(result) // [1, 2, 3]
* ```
*/
import batch from 'it-batch';
/**
* Takes an (async) iterator that emits promise-returning functions,
* invokes them in parallel and emits the results as they become available but
* in the same order as the input
*/
export default async function* parallelBatch(source, size = 1) {
for await (const tasks of batch(source, size)) {
const things = tasks.map(async (p) => {
return p().then(value => ({ ok: true, value }), err => ({ ok: false, err }));
});
for (let i = 0; i < things.length; i++) {
const result = await things[i];
if (result.ok) {
yield result.value;
}
else {
throw result.err;
}
}
}
}
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,MAAM,UAAU,CAAA;AAY5B;;;;GAIG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,SAAU,CAAC,CAAC,aAAa,CAAM,MAAoE,EAAE,OAAe,CAAC;IACvI,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAyC,KAAK,CAAC,GAAG,CAC5D,KAAK,EAAE,CAAmB,EAAE,EAAE;YAC5B,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAC9E,CAAC,CAAC,CAAA;QAEJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAA;YAE9B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,MAAM,CAAC,KAAK,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,GAAG,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}