From 1680eda9ba236806c4838456cec393dbc665ff24 Mon Sep 17 00:00:00 2001 From: Roger Qiu Date: Sun, 15 Mar 2026 11:01:46 +0000 Subject: [PATCH 1/2] chore: updated to use matrixai-standards --- .agents/skills/js-npm-matrixai-errors | 1 + .agents/skills/js-npm-matrixai-lint | 1 + .agents/skills/js-npm-matrixai-logger | 1 + .agents/skills/nix-flake-local-dev | 1 + .env.example | 0 .envrc | 1 + .gitignore | 24 ++- .gitmodules | 4 + .matrixai/matrixai-standards | 1 + .matrixai/repo-profile.yml | 1 + AGENTS.md | 64 ++++++ README.md | 14 +- flake.lock | 83 ++++---- flake.nix | 115 +++++++---- jest.config.mjs | 8 +- package-lock.json | 203 ++++++++++++++----- package.json | 2 +- scripts/choco-install.ps1 | 271 +++++++++++++++++++++++--- tsconfig.json | 4 +- 19 files changed, 634 insertions(+), 165 deletions(-) create mode 120000 .agents/skills/js-npm-matrixai-errors create mode 120000 .agents/skills/js-npm-matrixai-lint create mode 120000 .agents/skills/js-npm-matrixai-logger create mode 120000 .agents/skills/nix-flake-local-dev delete mode 100644 .env.example create mode 100644 .envrc create mode 100644 .gitmodules create mode 160000 .matrixai/matrixai-standards create mode 100644 .matrixai/repo-profile.yml create mode 100644 AGENTS.md diff --git a/.agents/skills/js-npm-matrixai-errors b/.agents/skills/js-npm-matrixai-errors new file mode 120000 index 0000000..11b1428 --- /dev/null +++ b/.agents/skills/js-npm-matrixai-errors @@ -0,0 +1 @@ +../../.matrixai/matrixai-standards/skills/js-npm-matrixai-errors \ No newline at end of file diff --git a/.agents/skills/js-npm-matrixai-lint b/.agents/skills/js-npm-matrixai-lint new file mode 120000 index 0000000..0cda008 --- /dev/null +++ b/.agents/skills/js-npm-matrixai-lint @@ -0,0 +1 @@ +../../.matrixai/matrixai-standards/skills/js-npm-matrixai-lint \ No newline at end of file diff --git a/.agents/skills/js-npm-matrixai-logger b/.agents/skills/js-npm-matrixai-logger new file mode 120000 index 0000000..d1c72cc --- /dev/null +++ b/.agents/skills/js-npm-matrixai-logger @@ -0,0 +1 @@ +../../.matrixai/matrixai-standards/skills/js-npm-matrixai-logger \ No newline at end of file diff --git a/.agents/skills/nix-flake-local-dev b/.agents/skills/nix-flake-local-dev new file mode 120000 index 0000000..504ca9f --- /dev/null +++ b/.agents/skills/nix-flake-local-dev @@ -0,0 +1 @@ +../../.matrixai/matrixai-standards/skills/nix-flake-local-dev \ No newline at end of file diff --git a/.env.example b/.env.example deleted file mode 100644 index e69de29..0000000 diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index 84856b0..991c5c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,10 @@ +/.aider* +/.direnv /tmp /dist -.env* -!.env.example +/.env* +!/.env.example +!/.envrc # nix /result* /builds @@ -9,6 +12,15 @@ /build # prebuildify /prebuilds +# docusaurus +/public +.docusaurus +.cache-loader +# wrangler +.wrangler +.dev.vars +# git worktrees +/.worktrees # Logs logs @@ -80,10 +92,6 @@ web_modules/ # Yarn Integrity file .yarn-integrity -# dotenv environment variables file -.env -.env.test - # parcel-bundler cache (https://parceljs.org/) .cache .parcel-cache @@ -119,6 +127,7 @@ dist # Stores VSCode versions used for testing VSCode extensions .vscode-test +.vscode # yarn v2 .yarn/cache @@ -126,3 +135,6 @@ dist .yarn/build-state.yml .yarn/install-state.gz .pnp.* + +.DS_Store +.idea diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..262f379 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule ".matrixai/matrixai-standards"] + path = .matrixai/matrixai-standards + url = git@github.com:MatrixAI/matrixai-standards.git + branch = master diff --git a/.matrixai/matrixai-standards b/.matrixai/matrixai-standards new file mode 160000 index 0000000..684090d --- /dev/null +++ b/.matrixai/matrixai-standards @@ -0,0 +1 @@ +Subproject commit 684090d34f2a29de1d66a580fc80aacb9d6f88e3 diff --git a/.matrixai/repo-profile.yml b/.matrixai/repo-profile.yml new file mode 100644 index 0000000..cce0a47 --- /dev/null +++ b/.matrixai/repo-profile.yml @@ -0,0 +1 @@ +profile: library-js diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..7d52b62 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,64 @@ +# AGENTS + +- Read the repo profile selector at + [`.matrixai/repo-profile.yml`](.matrixai/repo-profile.yml). +- Standards are expected at `./.matrixai/matrixai-standards/` from private + submodule sync; if access is unavailable, standards and skill updates cannot + be refreshed. +- Enforce the universal hotset + [`.matrixai/matrixai-standards/standards/HOTSET.md`](.matrixai/matrixai-standards/standards/HOTSET.md). +- When editing Markdown/prose artifacts, enforce + [`.matrixai/matrixai-standards/standards/prose-markdown.md`](.matrixai/matrixai-standards/standards/prose-markdown.md). +- Enforce the profile doc under + [`.matrixai/matrixai-standards/standards/profiles/`](.matrixai/matrixai-standards/standards/profiles) + matching `profile:` in `.matrixai/repo-profile.yml` (e.g., `library-js`, + `application-js`, `worker-js-cloudflare`, `docusaurus-js-cloudflare`). +- Profile index (for discovery): + [`.matrixai/matrixai-standards/standards/profiles/README.md`](.matrixai/matrixai-standards/standards/profiles/README.md) +- Tooling contract reference: + [`.matrixai/matrixai-standards/standards/coding/tooling/tooling-contract.md`](.matrixai/matrixai-standards/standards/coding/tooling/tooling-contract.md) + (commands, artifacts, expectations per profile). +- Materialize skills from canonical `./.matrixai/matrixai-standards/skills/**` + using collection defaults from + `./.matrixai/matrixai-standards/skills-collections/**` into + `./.agents/skills/**` for runtime discovery, and rematerialize after standards + submodule updates. +- When using `nix run` with a flake ref, quote the full flake ref argument (for + example, `'./.matrixai/matrixai-standards#skills-materializer'`). +- Profile-driven materialization is the default fast path: run + `nix run './.matrixai/matrixai-standards#skills-materializer' -- --standards-root ./.matrixai/matrixai-standards` + and it resolves profile+ecosystem collection defaults into + `./.agents/skills/**`. +- Explicit selectors remain optional additive overrides: use `--collection ...` + and/or `--root-skill ...` only when narrowing or extending selection behavior. +- Content under `./.matrixai/matrixai-standards/standards/**` and + `./.matrixai/matrixai-standards/skills/**` MUST NOT reference raw + `exhibits/...` intake paths; use stable standards paths (for example + `./.matrixai/matrixai-standards/standards/exhibits/...`) or source-repo + identifiers instead. +- Prefer ASCII punctuation/symbols when an equivalent exists (see + [`.matrixai/matrixai-standards/standards/HOTSET.md`](.matrixai/matrixai-standards/standards/HOTSET.md) + [MXS-GEN-006]). +- Ensure edits comply with [`.editorconfig`](.editorconfig) (LF line endings, + 2-space indent, final newline, trim trailing whitespace). +- Line-reference policy (applies to all agent-generated repository content: + Markdown, docs, templates, and code comments): + - Never emit `path:line` (e.g. `foo.ts:1`, `README.md:126`) into repository + files. + - Do NOT put `:number` inside Markdown link destinations: `[x](path:123)` is + banned. + - If a line reference is needed, use either: + - `[x](path#heading-anchor)` (if possible), or + - `[x](path) (line 123)` (preferred, portable), or + - `[x](path#L123)` only when explicitly targeting a renderer that supports + `#L` anchors. + - If you would have emitted `:1`, drop it entirely: use `path` with no line + info. +- Apply repo-local golden commands and overrides here (use `npm run lintfix` + during active development; use `npm run lint` for non-mutating CI checks): + - build: npm run build + - test: npm test + - lintfix: npm run lintfix + - lint: npm run lint + - docs: npm run docs + - bench: (not defined in this repo) diff --git a/README.md b/README.md index 730dacd..dea104b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # js-async-init -Asynchronous initialization and deinitialization decorators for JavaScript/TypeScript applications. +Asynchronous initialization and deinitialization decorators for +JavaScript/TypeScript applications. -Because decorators are experimental, you must enable: `"experimentalDecorators": true` in your `tsconfig.json` to use this library. +Because decorators are experimental, you must enable: +`"experimentalDecorators": true` in your `tsconfig.json` to use this library. TypeScript does not allow decorator properties that are protected or private. @@ -88,9 +90,13 @@ async function main() { main(); ``` -The `start`, `stop`, and `destroy` calls are all concurrent-controlled with `RWLockWriter`. They are idempotent and they are mutually exclusive between each other and any blocking `ready` decorated methods. Decorated methods can block `start`, `stop`, and `destroy`, but share a read lock between each other. +The `start`, `stop`, and `destroy` calls are all concurrent-controlled with +`RWLockWriter`. They are idempotent and they are mutually exclusive between each +other and any blocking `ready` decorated methods. Decorated methods can block +`start`, `stop`, and `destroy`, but share a read lock between each other. -Refer to https://gist.github.com/CMCDragonkai/1dbf5069d9efc11585c27cc774271584 for further the motivation of this library. +Refer to https://gist.github.com/CMCDragonkai/1dbf5069d9efc11585c27cc774271584 +for further the motivation of this library. ## Installation diff --git a/flake.lock b/flake.lock index 5c7bdc9..d1eee2d 100644 --- a/flake.lock +++ b/flake.lock @@ -1,76 +1,85 @@ { "nodes": { - "flake-utils": { + "flake-parts": { "inputs": { - "systems": "systems" + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "lastModified": 1772408722, + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1736139540, - "narHash": "sha256-39Iclrd+9tPLmvuFVyoG63WnHZJ9kCOC6eRytRYLAWw=", + "lastModified": 1771008912, + "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8ab83a21276434aaf44969b8dd0bc0e65b97a240", + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", "type": "github" }, "original": { "owner": "NixOS", "repo": "nixpkgs", - "rev": "8ab83a21276434aaf44969b8dd0bc0e65b97a240", + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", "type": "github" } }, - "nixpkgs-matrix": { - "inputs": { - "nixpkgs": "nixpkgs" - }, + "nixpkgs-lib": { "locked": { - "lastModified": 1736140072, - "narHash": "sha256-MgtcAA+xPldS0WlV16TjJ0qgFzGvKuGM9p+nPUxpUoA=", - "owner": "MatrixAI", - "repo": "nixpkgs-matrix", - "rev": "029084026bc4a35bce81bac898aa695f41993e18", + "lastModified": 1772328832, + "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742", "type": "github" }, "original": { - "id": "nixpkgs-matrix", - "type": "indirect" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, - "root": { + "nixpkgs-matrixai": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs-matrix": "nixpkgs-matrix" - } - }, - "systems": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs" + }, "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "lastModified": 1773507072, + "narHash": "sha256-3aslU9ZqcLT8HdVgusKcehVi+hu/stf9mRetUzW0w1Q=", + "owner": "MatrixAI", + "repo": "nixpkgs-matrixai", + "rev": "4d26908e8dbbe1511ab32a81464b54bf8712668e", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", + "owner": "MatrixAI", + "repo": "nixpkgs-matrixai", "type": "github" } + }, + "root": { + "inputs": { + "flake-parts": [ + "nixpkgs-matrixai", + "flake-parts" + ], + "nixpkgs": [ + "nixpkgs-matrixai", + "nixpkgs" + ], + "nixpkgs-matrixai": "nixpkgs-matrixai" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index d9a6df4..aed1dec 100644 --- a/flake.nix +++ b/flake.nix @@ -1,43 +1,86 @@ { inputs = { - nixpkgs-matrix = { - type = "indirect"; - id = "nixpkgs-matrix"; - }; - flake-utils.url = "github:numtide/flake-utils"; + nixpkgs-matrixai.url = "github:MatrixAI/nixpkgs-matrixai"; + flake-parts.follows = "nixpkgs-matrixai/flake-parts"; + nixpkgs.follows = "nixpkgs-matrixai/nixpkgs"; }; - outputs = { nixpkgs-matrix, flake-utils, ... }: - flake-utils.lib.eachDefaultSystem (system: - let - pkgs = nixpkgs-matrix.legacyPackages.${system}; - shell = { ci ? false }: - with pkgs; - pkgs.mkShell { - nativeBuildInputs = [ nodejs_20 shellcheck gitAndTools.gh ]; - PKG_IGNORE_TAG = 1; - shellHook = '' - echo "Entering $(npm pkg get name)" - set -v - ${lib.optionalString ci '' - set -o errexit - set -o nounset - set -o pipefail - shopt -s inherit_errexit - ''} - mkdir --parents "$(pwd)/tmp" - - export PATH="$(pwd)/dist/bin:$(npm root)/.bin:$PATH" - - npm install --ignore-scripts - - set +v - ''; + outputs = + inputs@{ + flake-parts, + nixpkgs-matrixai, + ... + }: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + + shellFor = + pkgs: + { + ci ? false, + }: + with pkgs; + mkShell { + nativeBuildInputs = [ + nodejs_20 + shellcheck + gh + ]; + shellHook = '' + echo "Entering $(npm pkg get name)" + set -v + ${lib.optionalString ci '' + set -o errexit + set -o nounset + set -o pipefail + shopt -s inherit_errexit + ''} + mkdir --parents "$PWD/tmp" + + # Built executables and NPM executables + export PATH="$PWD/dist/bin:$PWD/node_modules/.bin:$PATH" + + flock -x tmp/npm-install.lock \ + npm install --ignore-scripts --no-audit --fund=false --prefer-offline + + set +v + ''; + }; + in + flake-parts.lib.mkFlake { inherit inputs; } { + # Declared systems are support claims. Keep this set conservative and + # expand only when evaluation/build evidence exists. + systems = systems; + + perSystem = + { system, ... }: + let + pkgs = nixpkgs-matrixai.legacyPackages.${system}; + defaultShell = shellFor pkgs { ci = false; }; + ciShell = shellFor pkgs { ci = true; }; + in + { + devShells = { + default = defaultShell; + ci = ciShell; + }; + + checks = { + unit-dev-shell-default = defaultShell; + unit-dev-shell-ci = ciShell; }; - in { - devShells = { - default = shell { ci = false; }; - ci = shell { ci = true; }; }; - }); + + # If this repo vendors matrixai-standards at + # `./.matrixai/matrixai-standards/`, materialize runtime skills with: + # nix run './.matrixai/matrixai-standards#skills-materializer' -- \ + # --standards-root ./.matrixai/matrixai-standards \ + # --root-skill js-npm-matrixai-logger \ + # --output ./.agents/skills + }; } diff --git a/jest.config.mjs b/jest.config.mjs index b3e3b3f..23cd035 100644 --- a/jest.config.mjs +++ b/jest.config.mjs @@ -1,5 +1,6 @@ import path from 'node:path'; import url from 'node:url'; +import os from 'node:os'; import tsconfigJSON from './tsconfig.json' assert { type: "json" }; const projectPath = path.dirname(url.fileURLToPath(import.meta.url)); @@ -11,6 +12,8 @@ const globals = { projectDir: projectPath, // Absolute directory to the test root testDir: path.join(projectPath, 'tests'), + // Absolute directory to os temporary directory + tmpDir: os.tmpdir(), // Default asynchronous test timeout defaultTimeout: 20000, // Timeouts rely on setTimeout which takes 32 bit numbers @@ -38,7 +41,8 @@ const config = { parser: { syntax: "typescript", tsx: true, - decorators: tsconfigJSON.compilerOptions.experimentalDecorators, + decorators: + tsconfigJSON.compilerOptions.experimentalDecorators ?? false, dynamicImport: true, }, target: tsconfigJSON.compilerOptions.target.toLowerCase(), @@ -58,6 +62,8 @@ const config = { reportTestSuiteErrors: 'true', }], ], + // This is flipped to true when using `--coverage` flag + coverageProvider: 'v8', collectCoverageFrom: ['src/**/*.{ts,tsx,js,jsx}', '!src/**/*.d.ts'], coverageReporters: ['text', 'cobertura'], globals, diff --git a/package-lock.json b/package-lock.json index 417b0d2..74f1302 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@matrixai/events": "^4.0.0" }, "devDependencies": { - "@matrixai/lint": "^0.2.6", + "@matrixai/lint": "^0.4.10", "@swc/core": "1.3.82", "@swc/jest": "^0.2.29", "@types/jest": "^29.5.2", @@ -2109,30 +2109,33 @@ "integrity": "sha512-Z4cggoWDKEIi/YjOwbtonSaRCptM91T4JbQbLHP/kOxG/wHcjijavWQfEfWm6yszxm8WKhufm0alV+UhedyCqA==" }, "node_modules/@matrixai/lint": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@matrixai/lint/-/lint-0.2.6.tgz", - "integrity": "sha512-Cbx6SCTAqSt7lTKkaXL7wB+KbkiXYpQ0LdV5fPcnzEfG0sCuG8dbJcwzgHT5Qn7ubG71BBLUVFjHY1EGADzT8g==", + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/@matrixai/lint/-/lint-0.4.10.tgz", + "integrity": "sha512-WU98weQ7pg8tWEIXirygLeQy5L3yDC9p1u6hUCeNGm3FVU/XHTibmKNdEWcy7KXsJEMgYvXVK518a5//ATCslw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/compat": "^1.2.5", "@eslint/js": "^9.16.0", + "@matrixai/logger": "^4.0.3", "@typescript-eslint/eslint-plugin": "^8.27.0", "@typescript-eslint/parser": "^8.27.0", "@typescript-eslint/utils": "^8.26.1", "commander": "^13.1.0", "eslint": "^9.0.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.31.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.37.4", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-tailwindcss": "^3.18.0", + "globals": "^16.2.0", + "minimatch": "^10.0.1", "prettier": "^3.0.0" }, "bin": { - "matrixai-lint": "dist/bin/lint.js" + "matrixai-lint": "dist/bin/matrixai-lint.js" } }, "node_modules/@matrixai/lint/node_modules/@typescript-eslint/eslint-plugin": { @@ -2273,6 +2276,39 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@matrixai/lint/node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@matrixai/lint/node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@matrixai/lint/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@matrixai/lint/node_modules/@typescript-eslint/visitor-keys": { "version": "8.31.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", @@ -2291,14 +2327,27 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@matrixai/lint/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/@matrixai/lint/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/@matrixai/lint/node_modules/commander": { @@ -2324,22 +2373,42 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@matrixai/lint/node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@matrixai/lint/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@matrixai/logger": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-4.0.3.tgz", + "integrity": "sha512-cu7e82iwN32H+K8HxsrvrWEYSEj7+RP/iVFhJ4RuacC8/BSOLFOYxry3EchVjrx4FP5G7QP1HnKYXAGpZN/46w==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/@matrixai/resources": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-2.0.0.tgz", @@ -3109,18 +3178,20 @@ } }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4024,9 +4095,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", "dev": true, "license": "MIT", "dependencies": { @@ -4034,18 +4105,18 @@ "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -4057,21 +4128,24 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", + "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", + "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", + "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -4080,7 +4154,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -4334,6 +4408,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -4345,14 +4420,15 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -4378,30 +4454,30 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { @@ -4416,6 +4492,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -4425,6 +4502,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -5650,6 +5728,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -8649,6 +8740,20 @@ "node": ">=8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", diff --git a/package.json b/package.json index e0a86ce..545ba29 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@matrixai/events": "^4.0.0" }, "devDependencies": { - "@matrixai/lint": "^0.2.6", + "@matrixai/lint": "^0.4.10", "@swc/core": "1.3.82", "@swc/jest": "^0.2.29", "@types/jest": "^29.5.2", diff --git a/scripts/choco-install.ps1 b/scripts/choco-install.ps1 index 68a7cbe..d860c22 100755 --- a/scripts/choco-install.ps1 +++ b/scripts/choco-install.ps1 @@ -1,30 +1,243 @@ -function Save-ChocoPackage { - param ( - $PackageName - ) - Rename-Item -Path "$env:ChocolateyInstall\lib\$PackageName\$PackageName.nupkg" -NewName "$PackageName.nupkg.zip" -ErrorAction:SilentlyContinue - Expand-Archive -LiteralPath "$env:ChocolateyInstall\lib\$PackageName\$PackageName.nupkg.zip" -DestinationPath "$env:ChocolateyInstall\lib\$PackageName" -Force - Remove-Item "$env:ChocolateyInstall\lib\$PackageName\_rels" -Recurse - Remove-Item "$env:ChocolateyInstall\lib\$PackageName\package" -Recurse - Remove-Item "$env:ChocolateyInstall\lib\$PackageName\[Content_Types].xml" - New-Item -Path "${PSScriptRoot}\..\tmp\chocolatey\$PackageName" -ItemType "directory" -ErrorAction:SilentlyContinue - choco pack "$env:ChocolateyInstall\lib\$PackageName\$PackageName.nuspec" --outdir "${PSScriptRoot}\..\tmp\chocolatey\$PackageName" -} - -# Check for existence of required environment variables -if ( $null -eq $env:ChocolateyInstall ) { - [Console]::Error.WriteLine('Missing $env:ChocolateyInstall environment variable') - exit 1 -} - -# Add the cached packages with source priority 1 (Chocolatey community is 0) -New-Item -Path "${PSScriptRoot}\..\tmp\chocolatey" -ItemType "directory" -ErrorAction:SilentlyContinue -choco source add --name="cache" --source="${PSScriptRoot}\..\tmp\chocolatey" --priority=1 - -# Install nodejs v20.5.1 (will use cache if exists) -$nodejs = "nodejs" -choco install "$nodejs" --version="20.5.1" --require-checksums -y -# Internalise nodejs to cache if doesn't exist -if ( -not (Test-Path -Path "${PSScriptRoot}\..\tmp\chocolatey\$nodejs\$nodejs.20.5.1.nupkg" -PathType Leaf) ) { - Save-ChocoPackage -PackageName $nodejs +Set-StrictMode -Version Latest +$ErrorActionPreference = 'Stop' + +# Make native command failures behave like errors in PS7+ (prevents "choco failed but we continued" style issues) +if (Get-Variable -Name PSNativeCommandUseErrorActionPreference -Scope Global -ErrorAction SilentlyContinue) { + $global:PSNativeCommandUseErrorActionPreference = $true +} + +# --------------------------- +# Config +# --------------------------- +$NodeMajor = 20 +$Arch = "x64" + +# Allow selecting an existing Node only if explicitly permitted; default is to prefer toolcache/portable/download +$AllowExistingNode = $false + +# Cache under repo tmp (so your CI cache can persist it) +$CacheRoot = Join-Path $PSScriptRoot "..\tmp" +$NodeCache = Join-Path $CacheRoot "node-cache" +New-Item -Path $NodeCache -ItemType Directory -Force | Out-Null + +# Optional: semicolon-separated list of choco packages to install, e.g. "git;7zip;cmake" +$ChocoPackages = @() +if ($env:CHOCO_PACKAGES) { + $ChocoPackages = $env:CHOCO_PACKAGES.Split(';') | ForEach-Object { $_.Trim() } | Where-Object { $_ } +} + +# --------------------------- +# Helpers +# --------------------------- +function Parse-Version([string] $v) { + if (-not $v) { return $null } + $vv = $v.Trim().TrimStart('v') + try { return [version]$vv } catch { return $null } +} + +function Get-CommandPath([string] $name) { + try { return (Get-Command $name -ErrorAction Stop).Source } catch { return $null } +} + +function Find-ToolcacheNodeBin([int] $major, [string] $arch) { + $toolcache = $env:RUNNER_TOOL_CACHE + if (-not $toolcache -or -not (Test-Path -LiteralPath $toolcache)) { + $toolcache = "C:\hostedtoolcache\windows" + } + + $nodeRoot = Join-Path $toolcache "node" + if (-not (Test-Path -LiteralPath $nodeRoot)) { return $null } + + $best = Get-ChildItem -LiteralPath $nodeRoot -Directory -ErrorAction SilentlyContinue | + Where-Object { $_.Name -like "$major.*" } | + ForEach-Object { + $ver = Parse-Version $_.Name + if ($ver) { [pscustomobject]@{ Ver = $ver; Dir = $_.FullName } } + } | + Sort-Object Ver -Descending | + Select-Object -First 1 + + if (-not $best) { return $null } + + $bin = Join-Path $best.Dir $arch + if ((Test-Path -LiteralPath (Join-Path $bin "node.exe")) -and (Test-Path -LiteralPath (Join-Path $bin "npm.cmd"))) { + return $bin + } + return $null +} + +function Get-LatestNodeMajorVersion([int] $Major) { + $ProgressPreference = 'SilentlyContinue' + $index = Invoke-RestMethod -Uri "https://nodejs.org/dist/index.json" -MaximumRedirection 5 + + $best = $index | + Where-Object { $_.version -match "^v$Major\." } | + ForEach-Object { + $ver = Parse-Version $_.version + if ($ver) { [pscustomobject]@{ Ver = $ver; S = $_.version } } + } | + Sort-Object Ver -Descending | + Select-Object -First 1 + + if (-not $best) { throw "No Node v$Major.* found in dist index." } + return $best.Ver.ToString() +} + +function Ensure-PortableNode([string] $version, [string] $arch, [string] $cacheDir) { + $zipName = "node-v$version-win-$arch.zip" + $zipPath = Join-Path $cacheDir $zipName + $dirPath = Join-Path $cacheDir "node-v$version-win-$arch" + $exePath = Join-Path $dirPath "node.exe" + $npmPath = Join-Path $dirPath "npm.cmd" + + if ((Test-Path -LiteralPath $exePath) -and (Test-Path -LiteralPath $npmPath)) { return $dirPath } + + $base = "https://nodejs.org/dist/v$version" + $zipUrl = "$base/$zipName" + $shaUrl = "$base/SHASUMS256.txt" + $shaPath = Join-Path $cacheDir "SHASUMS256-v$version.txt" + + if (-not (Test-Path -LiteralPath $zipPath -PathType Leaf)) { + Invoke-WebRequest -Uri $zipUrl -OutFile $zipPath -MaximumRedirection 5 + } + if (-not (Test-Path -LiteralPath $shaPath -PathType Leaf)) { + Invoke-WebRequest -Uri $shaUrl -OutFile $shaPath -MaximumRedirection 5 + } + + $line = (Select-String -LiteralPath $shaPath -Pattern ([regex]::Escape($zipName)) | Select-Object -First 1).Line + if (-not $line) { throw "No hash entry for $zipName in SHASUMS256.txt" } + $expected = ($line -split '\s+')[0].Trim().ToLowerInvariant() + $actual = (Get-FileHash -LiteralPath $zipPath -Algorithm SHA256).Hash.ToLowerInvariant() + if ($actual -ne $expected) { + Remove-Item -LiteralPath $zipPath -Force -ErrorAction SilentlyContinue + throw "SHA256 mismatch for $zipName" + } + + Expand-Archive -LiteralPath $zipPath -DestinationPath $cacheDir -Force + + if (-not ((Test-Path -LiteralPath $exePath) -and (Test-Path -LiteralPath $npmPath))) { + throw "Portable Node extraction missing node/npm: $dirPath" + } + return $dirPath } + +function Find-BestCachedPortableNodeBin([int] $major, [string] $arch, [string] $cacheDir) { + $best = Get-ChildItem -LiteralPath $cacheDir -Directory -ErrorAction SilentlyContinue | + Where-Object { $_.Name -like "node-v$major.*-win-$arch" } | + ForEach-Object { + if ($_.Name -match "^node-v(\d+\.\d+\.\d+)-win-$arch$") { + $ver = Parse-Version $Matches[1] + $exe = Join-Path $_.FullName "node.exe" + $npm = Join-Path $_.FullName "npm.cmd" + if ($ver -and (Test-Path -LiteralPath $exe) -and (Test-Path -LiteralPath $npm)) { + [pscustomobject]@{ Ver = $ver; Dir = $_.FullName } + } + } + } | + Sort-Object Ver -Descending | + Select-Object -First 1 + + if ($best) { return $best.Dir } + return $null +} + +function Add-ToGitHubPath([string] $dir) { + if ($env:GITHUB_PATH) { + $dir | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + } + $env:Path = "$dir;$env:Path" +} + +# --------------------------- +# 1) Optional choco installs +# --------------------------- +if ($ChocoPackages.Count -gt 0) { + if (-not $env:ChocolateyInstall) { throw "CHOCO_PACKAGES set but Chocolatey not available." } + + Write-Host "Installing choco packages: $($ChocoPackages -join ', ')" + foreach ($p in $ChocoPackages) { + & choco install $p -y --no-progress + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + } + + # Pull registry env var changes from those installs into this session + if ($env:ChocolateyInstall) { + $profile = Join-Path $env:ChocolateyInstall "helpers\chocolateyProfile.psm1" + if (Test-Path -LiteralPath $profile) { + Import-Module $profile -Force -ErrorAction SilentlyContinue | Out-Null + } + } + $cmd = Get-Command Update-SessionEnvironment -ErrorAction SilentlyContinue + if ($cmd) { Update-SessionEnvironment } +} + +# --------------------------- +# 2) Select Node (paired node/npm) +# --------------------------- +$selected = $null + +# If explicitly allowed, reuse existing node only if it matches major and has npm colocated +if ($AllowExistingNode) { + try { + $nodeExe = (Get-Command node -ErrorAction Stop).Source + $existingBin = Split-Path -Parent $nodeExe + $v = Parse-Version ((& node -v).Trim()) + if ($v -and $v.Major -eq $NodeMajor -and (Test-Path -LiteralPath (Join-Path $existingBin "npm.cmd"))) { + $selected = $existingBin + Write-Host "Using existing Node v$($v.ToString()) from $selected" + } + } catch {} +} + +# Prefer toolcache +if (-not $selected) { + $bin = Find-ToolcacheNodeBin -major $NodeMajor -arch $Arch + if ($bin) { + $selected = $bin + Write-Host "Selecting Node from toolcache: $selected" + } +} + +# Cached portable +if (-not $selected) { + $cached = Find-BestCachedPortableNodeBin -major $NodeMajor -arch $Arch -cacheDir $NodeCache + if ($cached) { + $selected = $cached + Write-Host "Selecting Node from cached portable zip: $selected" + } +} + +# Optional download +if (-not $selected) { + if ($env:ALLOW_NODE_DOWNLOAD -eq "0") { + throw "No Node $NodeMajor.x found in toolcache/cache and ALLOW_NODE_DOWNLOAD=0" + } + $latest = Get-LatestNodeMajorVersion -Major $NodeMajor + $selected = Ensure-PortableNode -version $latest -arch $Arch -cacheDir $NodeCache + Write-Host "Selecting Node from downloaded portable zip: $selected" +} + +# Apply selection to PATH and GITHUB_PATH (next steps) and current step +Add-ToGitHubPath $selected + +# Final verification: ensure npm is colocated and running under Node major +$nodeCmd = Get-Command node -ErrorAction Stop +$npmCmd = Get-Command npm -ErrorAction Stop +$nodeDir = Split-Path -Parent $nodeCmd.Source +$npmDir = Split-Path -Parent $npmCmd.Source +Write-Host "node path: $($nodeCmd.Source)" +Write-Host "npm path: $($npmCmd.Source)" +if ($nodeDir -ne $npmDir) { throw "node and npm are not colocated: $nodeDir vs $npmDir" } + +$nodeV = (& node -v).Trim() +$npmV = (& npm -v).Trim() +$npmInfo = npm version --json | ConvertFrom-Json +$npmRuntimeNodeV = $npmInfo.node +$npmRuntimeParsed = Parse-Version $npmRuntimeNodeV +Write-Host "Using Node: $nodeV" +Write-Host "npm version: $npmV" +Write-Host "npm runtime node: $npmRuntimeNodeV" + +$nv = Parse-Version $nodeV +if (-not $nv -or $nv.Major -ne $NodeMajor) { throw "node is not v$NodeMajor (got $nodeV)" } +if (-not $npmRuntimeParsed -or $npmRuntimeParsed.Major -ne $NodeMajor) { throw "npm is not running under Node $NodeMajor (got $npmRuntimeNodeV)" } diff --git a/tsconfig.json b/tsconfig.json index b98b529..2424946 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "jsx": "react-jsx", "outDir": "./dist", "tsBuildInfoFile": "./dist/tsbuildinfo", "incremental": true, @@ -15,7 +16,7 @@ "resolveJsonModule": true, "isolatedModules": true, "moduleResolution": "NodeNext", - "module": "ESNext", + "module": "NodeNext", "target": "ES2022", "baseUrl": "./src", "paths": { @@ -26,7 +27,6 @@ }, "include": [ "./src/**/*", - "./src/**/*.json", "./tests/**/*", "./scripts/**/*", "./benches/**/*" From 0b034b843868cd466a7062b2efead90343d493b7 Mon Sep 17 00:00:00 2001 From: Roger Qiu Date: Sun, 15 Mar 2026 11:04:06 +0000 Subject: [PATCH 2/2] docs: updated --- docs/assets/search.js | 2 +- .../createDestroyStartStop.ready.html | 2 +- docs/index.html | 20 +++-- docs/modules/types.html | 4 +- docs/types/types.AnyFn.html | 73 +++++++++++++++++++ docs/types/types.Class.html | 3 +- docs/types/types.PromiseDeconstructed.html | 3 +- docs/types/types.Status.html | 3 +- 8 files changed, 96 insertions(+), 14 deletions(-) create mode 100644 docs/types/types.AnyFn.html diff --git a/docs/assets/search.js b/docs/assets/search.js index 0ba4682..1d96f4e 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"rows\":[{\"kind\":4,\"name\":\"types\",\"url\":\"modules/types.html\",\"classes\":\"\"},{\"kind\":4194304,\"name\":\"PromiseDeconstructed\",\"url\":\"types/types.PromiseDeconstructed.html\",\"classes\":\"\",\"parent\":\"types\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/types.PromiseDeconstructed.html#__type\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed\"},{\"kind\":1024,\"name\":\"p\",\"url\":\"types/types.PromiseDeconstructed.html#__type.p\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type\"},{\"kind\":1024,\"name\":\"resolveP\",\"url\":\"types/types.PromiseDeconstructed.html#__type.resolveP\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/types.PromiseDeconstructed.html#__type.resolveP.__type-3\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type.resolveP\"},{\"kind\":1024,\"name\":\"rejectP\",\"url\":\"types/types.PromiseDeconstructed.html#__type.rejectP\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/types.PromiseDeconstructed.html#__type.rejectP.__type-1\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type.rejectP\"},{\"kind\":4194304,\"name\":\"Status\",\"url\":\"types/types.Status.html\",\"classes\":\"\",\"parent\":\"types\"},{\"kind\":4194304,\"name\":\"Class\",\"url\":\"types/types.Class.html\",\"classes\":\"\",\"parent\":\"types\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"types/types.Class.html#__type\",\"classes\":\"\",\"parent\":\"types.Class\"},{\"kind\":4,\"name\":\"createDestroyStartStop\",\"url\":\"modules/createDestroyStartStop.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"CreateDestroyStartStop\",\"url\":\"functions/createDestroyStartStop.CreateDestroyStartStop-1.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroyStartStop.CreateDestroyStartStop-1.html#CreateDestroyStartStop.__type\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":256,\"name\":\"CreateDestroyStartStop\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":2048,\"name\":\"start\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#start\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":2048,\"name\":\"stop\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#stop\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#destroy\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[running]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_running_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[destroyed]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_destroyed_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[status]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_status_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[statusP]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_statusP_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":1024,\"name\":\"[initLock]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_initLock_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":64,\"name\":\"ready\",\"url\":\"functions/createDestroyStartStop.ready.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroyStartStop.ready.html#ready.__type\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.ready.ready\"},{\"kind\":32,\"name\":\"running\",\"url\":\"variables/createDestroyStartStop.running.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"destroyed\",\"url\":\"variables/createDestroyStartStop.destroyed.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"status\",\"url\":\"variables/createDestroyStartStop.status.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"statusP\",\"url\":\"variables/createDestroyStartStop.statusP.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"initLock\",\"url\":\"variables/createDestroyStartStop.initLock.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":4,\"name\":\"createDestroy\",\"url\":\"modules/createDestroy.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"CreateDestroy\",\"url\":\"functions/createDestroy.CreateDestroy-1.html\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroy.CreateDestroy-1.html#CreateDestroy.__type\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy.CreateDestroy\"},{\"kind\":256,\"name\":\"CreateDestroy\",\"url\":\"interfaces/createDestroy.CreateDestroy.html\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#destroy\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":262144,\"name\":\"[destroyed]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_destroyed_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":262144,\"name\":\"[status]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_status_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":262144,\"name\":\"[statusP]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_statusP_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":1024,\"name\":\"[initLock]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_initLock_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":64,\"name\":\"ready\",\"url\":\"functions/createDestroy.ready.html\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroy.ready.html#ready.__type\",\"classes\":\"\",\"parent\":\"createDestroy.ready.ready\"},{\"kind\":8388608,\"name\":\"destroyed\",\"url\":\"modules/createDestroy.html#destroyed\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":8388608,\"name\":\"status\",\"url\":\"modules/createDestroy.html#status\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":8388608,\"name\":\"statusP\",\"url\":\"modules/createDestroy.html#statusP\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":8388608,\"name\":\"initLock\",\"url\":\"modules/createDestroy.html#initLock\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":4,\"name\":\"startStop\",\"url\":\"modules/startStop.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"StartStop\",\"url\":\"functions/startStop.StartStop-1.html\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/startStop.StartStop-1.html#StartStop.__type\",\"classes\":\"\",\"parent\":\"startStop.StartStop.StartStop\"},{\"kind\":256,\"name\":\"StartStop\",\"url\":\"interfaces/startStop.StartStop.html\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/startStop.StartStop.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"startStop.StartStop\"},{\"kind\":2048,\"name\":\"start\",\"url\":\"interfaces/startStop.StartStop.html#start\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":2048,\"name\":\"stop\",\"url\":\"interfaces/startStop.StartStop.html#stop\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":262144,\"name\":\"[running]\",\"url\":\"interfaces/startStop.StartStop.html#_running_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":262144,\"name\":\"[status]\",\"url\":\"interfaces/startStop.StartStop.html#_status_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":262144,\"name\":\"[statusP]\",\"url\":\"interfaces/startStop.StartStop.html#_statusP_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":1024,\"name\":\"[initLock]\",\"url\":\"interfaces/startStop.StartStop.html#_initLock_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":64,\"name\":\"ready\",\"url\":\"functions/startStop.ready.html\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/startStop.ready.html#ready.__type\",\"classes\":\"\",\"parent\":\"startStop.ready.ready\"},{\"kind\":8388608,\"name\":\"running\",\"url\":\"modules/startStop.html#running\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":8388608,\"name\":\"status\",\"url\":\"modules/startStop.html#status\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":8388608,\"name\":\"statusP\",\"url\":\"modules/startStop.html#statusP\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":8388608,\"name\":\"initLock\",\"url\":\"modules/startStop.html#initLock\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":4,\"name\":\"events\",\"url\":\"modules/events.html\",\"classes\":\"\"},{\"kind\":128,\"name\":\"EventAsyncInit\",\"url\":\"classes/events.EventAsyncInit.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStart\",\"url\":\"classes/events.EventAsyncInitStart.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStarted\",\"url\":\"classes/events.EventAsyncInitStarted.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStop\",\"url\":\"classes/events.EventAsyncInitStop.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStopped\",\"url\":\"classes/events.EventAsyncInitStopped.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitDestroy\",\"url\":\"classes/events.EventAsyncInitDestroy.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitDestroyed\",\"url\":\"classes/events.EventAsyncInitDestroyed.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":4,\"name\":\"errors\",\"url\":\"modules/errors.html\",\"classes\":\"\"},{\"kind\":128,\"name\":\"ErrorAsyncInit\",\"url\":\"classes/errors.ErrorAsyncInit.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInit.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInit\"},{\"kind\":128,\"name\":\"ErrorAsyncInitRunning\",\"url\":\"classes/errors.ErrorAsyncInitRunning.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInitRunning.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInitRunning\"},{\"kind\":128,\"name\":\"ErrorAsyncInitNotRunning\",\"url\":\"classes/errors.ErrorAsyncInitNotRunning.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInitNotRunning.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInitNotRunning\"},{\"kind\":128,\"name\":\"ErrorAsyncInitDestroyed\",\"url\":\"classes/errors.ErrorAsyncInitDestroyed.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInitDestroyed.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInitDestroyed\"},{\"kind\":8388608,\"name\":\"running\",\"url\":\"modules.html#running\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"destroyed\",\"url\":\"modules.html#destroyed\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"status\",\"url\":\"modules.html#status\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"statusP\",\"url\":\"modules.html#statusP\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"initLock\",\"url\":\"modules.html#initLock\",\"classes\":\"\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,40.604]],[\"comment/0\",[]],[\"name/1\",[1,40.604]],[\"comment/1\",[]],[\"name/2\",[2,21.145]],[\"comment/2\",[]],[\"name/3\",[3,40.604]],[\"comment/3\",[]],[\"name/4\",[4,40.604]],[\"comment/4\",[]],[\"name/5\",[2,21.145]],[\"comment/5\",[]],[\"name/6\",[5,40.604]],[\"comment/6\",[]],[\"name/7\",[2,21.145]],[\"comment/7\",[]],[\"name/8\",[6,23.258]],[\"comment/8\",[]],[\"name/9\",[7,40.604]],[\"comment/9\",[]],[\"name/10\",[2,21.145]],[\"comment/10\",[]],[\"name/11\",[8,32.131]],[\"comment/11\",[]],[\"name/12\",[8,32.131]],[\"comment/12\",[]],[\"name/13\",[2,21.145]],[\"comment/13\",[]],[\"name/14\",[8,32.131]],[\"comment/14\",[]],[\"name/15\",[9,32.131]],[\"comment/15\",[]],[\"name/16\",[10,35.496]],[\"comment/16\",[]],[\"name/17\",[11,35.496]],[\"comment/17\",[]],[\"name/18\",[12,35.496]],[\"comment/18\",[]],[\"name/19\",[13,27.612]],[\"comment/19\",[]],[\"name/20\",[14,27.612]],[\"comment/20\",[]],[\"name/21\",[6,23.258]],[\"comment/21\",[]],[\"name/22\",[15,24.51]],[\"comment/22\",[]],[\"name/23\",[16,24.51]],[\"comment/23\",[]],[\"name/24\",[17,32.131]],[\"comment/24\",[]],[\"name/25\",[2,21.145]],[\"comment/25\",[]],[\"name/26\",[13,27.612]],[\"comment/26\",[]],[\"name/27\",[14,27.612]],[\"comment/27\",[]],[\"name/28\",[6,23.258]],[\"comment/28\",[]],[\"name/29\",[15,24.51]],[\"comment/29\",[]],[\"name/30\",[16,24.51]],[\"comment/30\",[]],[\"name/31\",[18,32.131]],[\"comment/31\",[]],[\"name/32\",[18,32.131]],[\"comment/32\",[]],[\"name/33\",[2,21.145]],[\"comment/33\",[]],[\"name/34\",[18,32.131]],[\"comment/34\",[]],[\"name/35\",[9,32.131]],[\"comment/35\",[]],[\"name/36\",[12,35.496]],[\"comment/36\",[]],[\"name/37\",[14,27.612]],[\"comment/37\",[]],[\"name/38\",[6,23.258]],[\"comment/38\",[]],[\"name/39\",[15,24.51]],[\"comment/39\",[]],[\"name/40\",[16,24.51]],[\"comment/40\",[]],[\"name/41\",[17,32.131]],[\"comment/41\",[]],[\"name/42\",[2,21.145]],[\"comment/42\",[]],[\"name/43\",[14,27.612]],[\"comment/43\",[]],[\"name/44\",[6,23.258]],[\"comment/44\",[]],[\"name/45\",[15,24.51]],[\"comment/45\",[]],[\"name/46\",[16,24.51]],[\"comment/46\",[]],[\"name/47\",[19,32.131]],[\"comment/47\",[]],[\"name/48\",[19,32.131]],[\"comment/48\",[]],[\"name/49\",[2,21.145]],[\"comment/49\",[]],[\"name/50\",[19,32.131]],[\"comment/50\",[]],[\"name/51\",[9,32.131]],[\"comment/51\",[]],[\"name/52\",[10,35.496]],[\"comment/52\",[]],[\"name/53\",[11,35.496]],[\"comment/53\",[]],[\"name/54\",[13,27.612]],[\"comment/54\",[]],[\"name/55\",[6,23.258]],[\"comment/55\",[]],[\"name/56\",[15,24.51]],[\"comment/56\",[]],[\"name/57\",[16,24.51]],[\"comment/57\",[]],[\"name/58\",[17,32.131]],[\"comment/58\",[]],[\"name/59\",[2,21.145]],[\"comment/59\",[]],[\"name/60\",[13,27.612]],[\"comment/60\",[]],[\"name/61\",[6,23.258]],[\"comment/61\",[]],[\"name/62\",[15,24.51]],[\"comment/62\",[]],[\"name/63\",[16,24.51]],[\"comment/63\",[]],[\"name/64\",[20,40.604]],[\"comment/64\",[]],[\"name/65\",[21,40.604]],[\"comment/65\",[]],[\"name/66\",[22,40.604]],[\"comment/66\",[]],[\"name/67\",[23,40.604]],[\"comment/67\",[]],[\"name/68\",[24,40.604]],[\"comment/68\",[]],[\"name/69\",[25,40.604]],[\"comment/69\",[]],[\"name/70\",[26,40.604]],[\"comment/70\",[]],[\"name/71\",[27,40.604]],[\"comment/71\",[]],[\"name/72\",[28,40.604]],[\"comment/72\",[]],[\"name/73\",[29,40.604]],[\"comment/73\",[]],[\"name/74\",[30,29.618]],[\"comment/74\",[]],[\"name/75\",[31,40.604]],[\"comment/75\",[]],[\"name/76\",[30,29.618]],[\"comment/76\",[]],[\"name/77\",[32,40.604]],[\"comment/77\",[]],[\"name/78\",[30,29.618]],[\"comment/78\",[]],[\"name/79\",[33,40.604]],[\"comment/79\",[]],[\"name/80\",[30,29.618]],[\"comment/80\",[]],[\"name/81\",[13,27.612]],[\"comment/81\",[]],[\"name/82\",[14,27.612]],[\"comment/82\",[]],[\"name/83\",[6,23.258]],[\"comment/83\",[]],[\"name/84\",[15,24.51]],[\"comment/84\",[]],[\"name/85\",[16,24.51]],[\"comment/85\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":2,\"name\":{\"2\":{},\"5\":{},\"7\":{},\"10\":{},\"13\":{},\"25\":{},\"33\":{},\"42\":{},\"49\":{},\"59\":{}},\"comment\":{}}],[\"class\",{\"_index\":7,\"name\":{\"9\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":9,\"name\":{\"15\":{},\"35\":{},\"51\":{}},\"comment\":{}}],[\"createdestroy\",{\"_index\":18,\"name\":{\"31\":{},\"32\":{},\"34\":{}},\"comment\":{}}],[\"createdestroystartstop\",{\"_index\":8,\"name\":{\"11\":{},\"12\":{},\"14\":{}},\"comment\":{}}],[\"description\",{\"_index\":30,\"name\":{\"74\":{},\"76\":{},\"78\":{},\"80\":{}},\"comment\":{}}],[\"destroy\",{\"_index\":12,\"name\":{\"18\":{},\"36\":{}},\"comment\":{}}],[\"destroyed\",{\"_index\":14,\"name\":{\"20\":{},\"27\":{},\"37\":{},\"43\":{},\"82\":{}},\"comment\":{}}],[\"errorasyncinit\",{\"_index\":29,\"name\":{\"73\":{}},\"comment\":{}}],[\"errorasyncinitdestroyed\",{\"_index\":33,\"name\":{\"79\":{}},\"comment\":{}}],[\"errorasyncinitnotrunning\",{\"_index\":32,\"name\":{\"77\":{}},\"comment\":{}}],[\"errorasyncinitrunning\",{\"_index\":31,\"name\":{\"75\":{}},\"comment\":{}}],[\"errors\",{\"_index\":28,\"name\":{\"72\":{}},\"comment\":{}}],[\"eventasyncinit\",{\"_index\":21,\"name\":{\"65\":{}},\"comment\":{}}],[\"eventasyncinitdestroy\",{\"_index\":26,\"name\":{\"70\":{}},\"comment\":{}}],[\"eventasyncinitdestroyed\",{\"_index\":27,\"name\":{\"71\":{}},\"comment\":{}}],[\"eventasyncinitstart\",{\"_index\":22,\"name\":{\"66\":{}},\"comment\":{}}],[\"eventasyncinitstarted\",{\"_index\":23,\"name\":{\"67\":{}},\"comment\":{}}],[\"eventasyncinitstop\",{\"_index\":24,\"name\":{\"68\":{}},\"comment\":{}}],[\"eventasyncinitstopped\",{\"_index\":25,\"name\":{\"69\":{}},\"comment\":{}}],[\"events\",{\"_index\":20,\"name\":{\"64\":{}},\"comment\":{}}],[\"initlock\",{\"_index\":16,\"name\":{\"23\":{},\"30\":{},\"40\":{},\"46\":{},\"57\":{},\"63\":{},\"85\":{}},\"comment\":{}}],[\"p\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"promisedeconstructed\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"ready\",{\"_index\":17,\"name\":{\"24\":{},\"41\":{},\"58\":{}},\"comment\":{}}],[\"rejectp\",{\"_index\":5,\"name\":{\"6\":{}},\"comment\":{}}],[\"resolvep\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"running\",{\"_index\":13,\"name\":{\"19\":{},\"26\":{},\"54\":{},\"60\":{},\"81\":{}},\"comment\":{}}],[\"start\",{\"_index\":10,\"name\":{\"16\":{},\"52\":{}},\"comment\":{}}],[\"startstop\",{\"_index\":19,\"name\":{\"47\":{},\"48\":{},\"50\":{}},\"comment\":{}}],[\"status\",{\"_index\":6,\"name\":{\"8\":{},\"21\":{},\"28\":{},\"38\":{},\"44\":{},\"55\":{},\"61\":{},\"83\":{}},\"comment\":{}}],[\"statusp\",{\"_index\":15,\"name\":{\"22\":{},\"29\":{},\"39\":{},\"45\":{},\"56\":{},\"62\":{},\"84\":{}},\"comment\":{}}],[\"stop\",{\"_index\":11,\"name\":{\"17\":{},\"53\":{}},\"comment\":{}}],[\"types\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse("{\"rows\":[{\"kind\":4,\"name\":\"types\",\"url\":\"modules/types.html\",\"classes\":\"\"},{\"kind\":4194304,\"name\":\"PromiseDeconstructed\",\"url\":\"types/types.PromiseDeconstructed.html\",\"classes\":\"\",\"parent\":\"types\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/types.PromiseDeconstructed.html#__type\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed\"},{\"kind\":1024,\"name\":\"p\",\"url\":\"types/types.PromiseDeconstructed.html#__type.p\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type\"},{\"kind\":1024,\"name\":\"resolveP\",\"url\":\"types/types.PromiseDeconstructed.html#__type.resolveP\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/types.PromiseDeconstructed.html#__type.resolveP.__type-3\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type.resolveP\"},{\"kind\":1024,\"name\":\"rejectP\",\"url\":\"types/types.PromiseDeconstructed.html#__type.rejectP\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/types.PromiseDeconstructed.html#__type.rejectP.__type-1\",\"classes\":\"\",\"parent\":\"types.PromiseDeconstructed.__type.rejectP\"},{\"kind\":4194304,\"name\":\"Status\",\"url\":\"types/types.Status.html\",\"classes\":\"\",\"parent\":\"types\"},{\"kind\":4194304,\"name\":\"Class\",\"url\":\"types/types.Class.html\",\"classes\":\"\",\"parent\":\"types\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"types/types.Class.html#__type\",\"classes\":\"\",\"parent\":\"types.Class\"},{\"kind\":4194304,\"name\":\"AnyFn\",\"url\":\"types/types.AnyFn.html\",\"classes\":\"\",\"parent\":\"types\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/types.AnyFn.html#__type\",\"classes\":\"\",\"parent\":\"types.AnyFn\"},{\"kind\":4,\"name\":\"createDestroyStartStop\",\"url\":\"modules/createDestroyStartStop.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"CreateDestroyStartStop\",\"url\":\"functions/createDestroyStartStop.CreateDestroyStartStop-1.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroyStartStop.CreateDestroyStartStop-1.html#CreateDestroyStartStop.__type\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":256,\"name\":\"CreateDestroyStartStop\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":2048,\"name\":\"start\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#start\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":2048,\"name\":\"stop\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#stop\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#destroy\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[running]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_running_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[destroyed]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_destroyed_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[status]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_status_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":262144,\"name\":\"[statusP]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_statusP_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":1024,\"name\":\"[initLock]\",\"url\":\"interfaces/createDestroyStartStop.CreateDestroyStartStop.html#_initLock_\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.CreateDestroyStartStop\"},{\"kind\":64,\"name\":\"ready\",\"url\":\"functions/createDestroyStartStop.ready.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroyStartStop.ready.html#ready.__type\",\"classes\":\"\",\"parent\":\"createDestroyStartStop.ready.ready\"},{\"kind\":32,\"name\":\"running\",\"url\":\"variables/createDestroyStartStop.running.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"destroyed\",\"url\":\"variables/createDestroyStartStop.destroyed.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"status\",\"url\":\"variables/createDestroyStartStop.status.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"statusP\",\"url\":\"variables/createDestroyStartStop.statusP.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":32,\"name\":\"initLock\",\"url\":\"variables/createDestroyStartStop.initLock.html\",\"classes\":\"\",\"parent\":\"createDestroyStartStop\"},{\"kind\":4,\"name\":\"createDestroy\",\"url\":\"modules/createDestroy.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"CreateDestroy\",\"url\":\"functions/createDestroy.CreateDestroy-1.html\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroy.CreateDestroy-1.html#CreateDestroy.__type\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy.CreateDestroy\"},{\"kind\":256,\"name\":\"CreateDestroy\",\"url\":\"interfaces/createDestroy.CreateDestroy.html\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#destroy\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":262144,\"name\":\"[destroyed]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_destroyed_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":262144,\"name\":\"[status]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_status_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":262144,\"name\":\"[statusP]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_statusP_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":1024,\"name\":\"[initLock]\",\"url\":\"interfaces/createDestroy.CreateDestroy.html#_initLock_\",\"classes\":\"\",\"parent\":\"createDestroy.CreateDestroy\"},{\"kind\":64,\"name\":\"ready\",\"url\":\"functions/createDestroy.ready.html\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/createDestroy.ready.html#ready.__type\",\"classes\":\"\",\"parent\":\"createDestroy.ready.ready\"},{\"kind\":8388608,\"name\":\"destroyed\",\"url\":\"modules/createDestroy.html#destroyed\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":8388608,\"name\":\"status\",\"url\":\"modules/createDestroy.html#status\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":8388608,\"name\":\"statusP\",\"url\":\"modules/createDestroy.html#statusP\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":8388608,\"name\":\"initLock\",\"url\":\"modules/createDestroy.html#initLock\",\"classes\":\"\",\"parent\":\"createDestroy\"},{\"kind\":4,\"name\":\"startStop\",\"url\":\"modules/startStop.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"StartStop\",\"url\":\"functions/startStop.StartStop-1.html\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/startStop.StartStop-1.html#StartStop.__type\",\"classes\":\"\",\"parent\":\"startStop.StartStop.StartStop\"},{\"kind\":256,\"name\":\"StartStop\",\"url\":\"interfaces/startStop.StartStop.html\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/startStop.StartStop.html#constructor\",\"classes\":\"tsd-is-inherited\",\"parent\":\"startStop.StartStop\"},{\"kind\":2048,\"name\":\"start\",\"url\":\"interfaces/startStop.StartStop.html#start\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":2048,\"name\":\"stop\",\"url\":\"interfaces/startStop.StartStop.html#stop\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":262144,\"name\":\"[running]\",\"url\":\"interfaces/startStop.StartStop.html#_running_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":262144,\"name\":\"[status]\",\"url\":\"interfaces/startStop.StartStop.html#_status_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":262144,\"name\":\"[statusP]\",\"url\":\"interfaces/startStop.StartStop.html#_statusP_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":1024,\"name\":\"[initLock]\",\"url\":\"interfaces/startStop.StartStop.html#_initLock_\",\"classes\":\"\",\"parent\":\"startStop.StartStop\"},{\"kind\":64,\"name\":\"ready\",\"url\":\"functions/startStop.ready.html\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/startStop.ready.html#ready.__type\",\"classes\":\"\",\"parent\":\"startStop.ready.ready\"},{\"kind\":8388608,\"name\":\"running\",\"url\":\"modules/startStop.html#running\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":8388608,\"name\":\"status\",\"url\":\"modules/startStop.html#status\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":8388608,\"name\":\"statusP\",\"url\":\"modules/startStop.html#statusP\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":8388608,\"name\":\"initLock\",\"url\":\"modules/startStop.html#initLock\",\"classes\":\"\",\"parent\":\"startStop\"},{\"kind\":4,\"name\":\"events\",\"url\":\"modules/events.html\",\"classes\":\"\"},{\"kind\":128,\"name\":\"EventAsyncInit\",\"url\":\"classes/events.EventAsyncInit.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStart\",\"url\":\"classes/events.EventAsyncInitStart.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStarted\",\"url\":\"classes/events.EventAsyncInitStarted.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStop\",\"url\":\"classes/events.EventAsyncInitStop.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitStopped\",\"url\":\"classes/events.EventAsyncInitStopped.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitDestroy\",\"url\":\"classes/events.EventAsyncInitDestroy.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":128,\"name\":\"EventAsyncInitDestroyed\",\"url\":\"classes/events.EventAsyncInitDestroyed.html\",\"classes\":\"\",\"parent\":\"events\"},{\"kind\":4,\"name\":\"errors\",\"url\":\"modules/errors.html\",\"classes\":\"\"},{\"kind\":128,\"name\":\"ErrorAsyncInit\",\"url\":\"classes/errors.ErrorAsyncInit.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInit.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInit\"},{\"kind\":128,\"name\":\"ErrorAsyncInitRunning\",\"url\":\"classes/errors.ErrorAsyncInitRunning.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInitRunning.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInitRunning\"},{\"kind\":128,\"name\":\"ErrorAsyncInitNotRunning\",\"url\":\"classes/errors.ErrorAsyncInitNotRunning.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInitNotRunning.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInitNotRunning\"},{\"kind\":128,\"name\":\"ErrorAsyncInitDestroyed\",\"url\":\"classes/errors.ErrorAsyncInitDestroyed.html\",\"classes\":\"\",\"parent\":\"errors\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/errors.ErrorAsyncInitDestroyed.html#description\",\"classes\":\"\",\"parent\":\"errors.ErrorAsyncInitDestroyed\"},{\"kind\":8388608,\"name\":\"running\",\"url\":\"modules.html#running\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"destroyed\",\"url\":\"modules.html#destroyed\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"status\",\"url\":\"modules.html#status\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"statusP\",\"url\":\"modules.html#statusP\",\"classes\":\"\"},{\"kind\":8388608,\"name\":\"initLock\",\"url\":\"modules.html#initLock\",\"classes\":\"\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,40.832]],[\"comment/0\",[]],[\"name/1\",[1,40.832]],[\"comment/1\",[]],[\"name/2\",[2,20.463]],[\"comment/2\",[]],[\"name/3\",[3,40.832]],[\"comment/3\",[]],[\"name/4\",[4,40.832]],[\"comment/4\",[]],[\"name/5\",[2,20.463]],[\"comment/5\",[]],[\"name/6\",[5,40.832]],[\"comment/6\",[]],[\"name/7\",[2,20.463]],[\"comment/7\",[]],[\"name/8\",[6,23.486]],[\"comment/8\",[]],[\"name/9\",[7,40.832]],[\"comment/9\",[]],[\"name/10\",[2,20.463]],[\"comment/10\",[]],[\"name/11\",[8,40.832]],[\"comment/11\",[]],[\"name/12\",[2,20.463]],[\"comment/12\",[]],[\"name/13\",[9,32.359]],[\"comment/13\",[]],[\"name/14\",[9,32.359]],[\"comment/14\",[]],[\"name/15\",[2,20.463]],[\"comment/15\",[]],[\"name/16\",[9,32.359]],[\"comment/16\",[]],[\"name/17\",[10,32.359]],[\"comment/17\",[]],[\"name/18\",[11,35.723]],[\"comment/18\",[]],[\"name/19\",[12,35.723]],[\"comment/19\",[]],[\"name/20\",[13,35.723]],[\"comment/20\",[]],[\"name/21\",[14,27.839]],[\"comment/21\",[]],[\"name/22\",[15,27.839]],[\"comment/22\",[]],[\"name/23\",[6,23.486]],[\"comment/23\",[]],[\"name/24\",[16,24.737]],[\"comment/24\",[]],[\"name/25\",[17,24.737]],[\"comment/25\",[]],[\"name/26\",[18,32.359]],[\"comment/26\",[]],[\"name/27\",[2,20.463]],[\"comment/27\",[]],[\"name/28\",[14,27.839]],[\"comment/28\",[]],[\"name/29\",[15,27.839]],[\"comment/29\",[]],[\"name/30\",[6,23.486]],[\"comment/30\",[]],[\"name/31\",[16,24.737]],[\"comment/31\",[]],[\"name/32\",[17,24.737]],[\"comment/32\",[]],[\"name/33\",[19,32.359]],[\"comment/33\",[]],[\"name/34\",[19,32.359]],[\"comment/34\",[]],[\"name/35\",[2,20.463]],[\"comment/35\",[]],[\"name/36\",[19,32.359]],[\"comment/36\",[]],[\"name/37\",[10,32.359]],[\"comment/37\",[]],[\"name/38\",[13,35.723]],[\"comment/38\",[]],[\"name/39\",[15,27.839]],[\"comment/39\",[]],[\"name/40\",[6,23.486]],[\"comment/40\",[]],[\"name/41\",[16,24.737]],[\"comment/41\",[]],[\"name/42\",[17,24.737]],[\"comment/42\",[]],[\"name/43\",[18,32.359]],[\"comment/43\",[]],[\"name/44\",[2,20.463]],[\"comment/44\",[]],[\"name/45\",[15,27.839]],[\"comment/45\",[]],[\"name/46\",[6,23.486]],[\"comment/46\",[]],[\"name/47\",[16,24.737]],[\"comment/47\",[]],[\"name/48\",[17,24.737]],[\"comment/48\",[]],[\"name/49\",[20,32.359]],[\"comment/49\",[]],[\"name/50\",[20,32.359]],[\"comment/50\",[]],[\"name/51\",[2,20.463]],[\"comment/51\",[]],[\"name/52\",[20,32.359]],[\"comment/52\",[]],[\"name/53\",[10,32.359]],[\"comment/53\",[]],[\"name/54\",[11,35.723]],[\"comment/54\",[]],[\"name/55\",[12,35.723]],[\"comment/55\",[]],[\"name/56\",[14,27.839]],[\"comment/56\",[]],[\"name/57\",[6,23.486]],[\"comment/57\",[]],[\"name/58\",[16,24.737]],[\"comment/58\",[]],[\"name/59\",[17,24.737]],[\"comment/59\",[]],[\"name/60\",[18,32.359]],[\"comment/60\",[]],[\"name/61\",[2,20.463]],[\"comment/61\",[]],[\"name/62\",[14,27.839]],[\"comment/62\",[]],[\"name/63\",[6,23.486]],[\"comment/63\",[]],[\"name/64\",[16,24.737]],[\"comment/64\",[]],[\"name/65\",[17,24.737]],[\"comment/65\",[]],[\"name/66\",[21,40.832]],[\"comment/66\",[]],[\"name/67\",[22,40.832]],[\"comment/67\",[]],[\"name/68\",[23,40.832]],[\"comment/68\",[]],[\"name/69\",[24,40.832]],[\"comment/69\",[]],[\"name/70\",[25,40.832]],[\"comment/70\",[]],[\"name/71\",[26,40.832]],[\"comment/71\",[]],[\"name/72\",[27,40.832]],[\"comment/72\",[]],[\"name/73\",[28,40.832]],[\"comment/73\",[]],[\"name/74\",[29,40.832]],[\"comment/74\",[]],[\"name/75\",[30,40.832]],[\"comment/75\",[]],[\"name/76\",[31,29.846]],[\"comment/76\",[]],[\"name/77\",[32,40.832]],[\"comment/77\",[]],[\"name/78\",[31,29.846]],[\"comment/78\",[]],[\"name/79\",[33,40.832]],[\"comment/79\",[]],[\"name/80\",[31,29.846]],[\"comment/80\",[]],[\"name/81\",[34,40.832]],[\"comment/81\",[]],[\"name/82\",[31,29.846]],[\"comment/82\",[]],[\"name/83\",[14,27.839]],[\"comment/83\",[]],[\"name/84\",[15,27.839]],[\"comment/84\",[]],[\"name/85\",[6,23.486]],[\"comment/85\",[]],[\"name/86\",[16,24.737]],[\"comment/86\",[]],[\"name/87\",[17,24.737]],[\"comment/87\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":2,\"name\":{\"2\":{},\"5\":{},\"7\":{},\"10\":{},\"12\":{},\"15\":{},\"27\":{},\"35\":{},\"44\":{},\"51\":{},\"61\":{}},\"comment\":{}}],[\"anyfn\",{\"_index\":8,\"name\":{\"11\":{}},\"comment\":{}}],[\"class\",{\"_index\":7,\"name\":{\"9\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":10,\"name\":{\"17\":{},\"37\":{},\"53\":{}},\"comment\":{}}],[\"createdestroy\",{\"_index\":19,\"name\":{\"33\":{},\"34\":{},\"36\":{}},\"comment\":{}}],[\"createdestroystartstop\",{\"_index\":9,\"name\":{\"13\":{},\"14\":{},\"16\":{}},\"comment\":{}}],[\"description\",{\"_index\":31,\"name\":{\"76\":{},\"78\":{},\"80\":{},\"82\":{}},\"comment\":{}}],[\"destroy\",{\"_index\":13,\"name\":{\"20\":{},\"38\":{}},\"comment\":{}}],[\"destroyed\",{\"_index\":15,\"name\":{\"22\":{},\"29\":{},\"39\":{},\"45\":{},\"84\":{}},\"comment\":{}}],[\"errorasyncinit\",{\"_index\":30,\"name\":{\"75\":{}},\"comment\":{}}],[\"errorasyncinitdestroyed\",{\"_index\":34,\"name\":{\"81\":{}},\"comment\":{}}],[\"errorasyncinitnotrunning\",{\"_index\":33,\"name\":{\"79\":{}},\"comment\":{}}],[\"errorasyncinitrunning\",{\"_index\":32,\"name\":{\"77\":{}},\"comment\":{}}],[\"errors\",{\"_index\":29,\"name\":{\"74\":{}},\"comment\":{}}],[\"eventasyncinit\",{\"_index\":22,\"name\":{\"67\":{}},\"comment\":{}}],[\"eventasyncinitdestroy\",{\"_index\":27,\"name\":{\"72\":{}},\"comment\":{}}],[\"eventasyncinitdestroyed\",{\"_index\":28,\"name\":{\"73\":{}},\"comment\":{}}],[\"eventasyncinitstart\",{\"_index\":23,\"name\":{\"68\":{}},\"comment\":{}}],[\"eventasyncinitstarted\",{\"_index\":24,\"name\":{\"69\":{}},\"comment\":{}}],[\"eventasyncinitstop\",{\"_index\":25,\"name\":{\"70\":{}},\"comment\":{}}],[\"eventasyncinitstopped\",{\"_index\":26,\"name\":{\"71\":{}},\"comment\":{}}],[\"events\",{\"_index\":21,\"name\":{\"66\":{}},\"comment\":{}}],[\"initlock\",{\"_index\":17,\"name\":{\"25\":{},\"32\":{},\"42\":{},\"48\":{},\"59\":{},\"65\":{},\"87\":{}},\"comment\":{}}],[\"p\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"promisedeconstructed\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"ready\",{\"_index\":18,\"name\":{\"26\":{},\"43\":{},\"60\":{}},\"comment\":{}}],[\"rejectp\",{\"_index\":5,\"name\":{\"6\":{}},\"comment\":{}}],[\"resolvep\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"running\",{\"_index\":14,\"name\":{\"21\":{},\"28\":{},\"56\":{},\"62\":{},\"83\":{}},\"comment\":{}}],[\"start\",{\"_index\":11,\"name\":{\"18\":{},\"54\":{}},\"comment\":{}}],[\"startstop\",{\"_index\":20,\"name\":{\"49\":{},\"50\":{},\"52\":{}},\"comment\":{}}],[\"status\",{\"_index\":6,\"name\":{\"8\":{},\"23\":{},\"30\":{},\"40\":{},\"46\":{},\"57\":{},\"63\":{},\"85\":{}},\"comment\":{}}],[\"statusp\",{\"_index\":16,\"name\":{\"24\":{},\"31\":{},\"41\":{},\"47\":{},\"58\":{},\"64\":{},\"86\":{}},\"comment\":{}}],[\"stop\",{\"_index\":12,\"name\":{\"19\":{},\"55\":{}},\"comment\":{}}],[\"types\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/functions/createDestroyStartStop.ready.html b/docs/functions/createDestroyStartStop.ready.html index 35dbc47..2e887e1 100644 --- a/docs/functions/createDestroyStartStop.ready.html +++ b/docs/functions/createDestroyStartStop.ready.html @@ -46,7 +46,7 @@
key: descriptor: PropertyDescriptor

Returns PropertyDescriptor

+
  • Defined in src/CreateDestroyStartStop.ts:227
  • +
    +
    +
    + +

    Type alias AnyFn

    +
    AnyFn: ((...args) => unknown)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (...args): unknown
      • +
      • +
        +

        Parameters

        +
          +
        • +
          Rest ...args: unknown[]
        +

        Returns unknown

    +
    + +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/types.Class.html b/docs/types/types.Class.html index ba026f6..c5549cc 100644 --- a/docs/types/types.Class.html +++ b/docs/types/types.Class.html @@ -69,7 +69,8 @@

    Theme

    diff --git a/docs/types/types.Status.html b/docs/types/types.Status.html index 1b2423f..b745516 100644 --- a/docs/types/types.Status.html +++ b/docs/types/types.Status.html @@ -51,7 +51,8 @@

    Theme