Merge branch 'initial-setup' into 'development'

Initial setup

See merge request GeneralProtocols/xo/coordinator-server!1
This commit is contained in:
Kuldeep
2026-07-23 12:10:25 +00:00
13 changed files with 11375 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
{
"version": "0.1",
"import": ["@generalprotocols/cspell-dictionary/cspell.json"],
"words": []
}
+10
View File
@@ -0,0 +1,10 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 4
max_line_length = 150
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
+17
View File
@@ -0,0 +1,17 @@
.vscode/
dist/
dist/**
node_modules/
yarn.lock
yarn-error.log
.DS_Store
public/
docs/
coverage/
*.js
*.js.map
*.d.ts
*.d.ts.map
*.tsbuildinfo
+3
View File
@@ -0,0 +1,3 @@
# Use the default NPM publishing template for the `@xo-cash/*` packages.
include:
- component: $CI_SERVER_FQDN/GeneralProtocols/xo/pipelines/npm@v1.1.0
+23
View File
@@ -0,0 +1,23 @@
// Prettier configuration aligned with @xo-cash/eslint-config
export default {
// Matches @stylistic/max-len': [ 'warn', 150, ...]
printWidth: 150,
// Matches @stylistic/no-tabs': [ 'error' ]
useTabs: false,
// Matches @stylistic/indent': [ 'error', 4, ...]
tabWidth: 4,
// Matches @stylistic/array-bracket-spacing': [ 'error', 'always', ...]
bracketSpacing: true,
// Matches @stylistic/quotes: ['error', 'single', { avoidEscape: true }], from @chalp/eslint-airbnb/base/stylistic.js
singleQuote: true,
// Matches @stylistic/semi: ['error', 'always'], from @chalp/eslint-airbnb/base/stylistic.js
semi: true,
// Matches @stylistic/arrow-parens: ['error', 'always'], from @chalp/eslint-airbnb/base/stylistic.js
arrowParens: 'always',
};
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 GeneralProtocols / XO
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+33
View File
@@ -0,0 +1,33 @@
# @xo-cash/coordinator-server
Coordinator Server
> ⚠️ This project is in **early development phase**. Use it only if you understand what you are doing and accept the risks. **Do not use funds you are not willing to lose.** Minor version bumps may introduce **breaking changes**
## Installation
```bash
npm install @xo-cash/coordinator-server
```
## Scripts
| Command | Description |
| ---------------------------------- | -------------------------------------------- |
| `npm run build` | Compile TypeScript to `dist/` |
| `npm run test` | Run tests with coverage |
| `npm run style` | Lint with ESLint (read-only) |
| `npm run syntax` | Type-check without emitting (`tsc --noEmit`) |
| `npm run format` | Auto-fix formatting and linting |
| `npm run docs` | Generate TypeDoc API docs to `public/` |
| `npm run spellcheck` | Spell-check source and test files |
| `npm audit --audit-level=moderate` | Performs npm audit |
## Links
- [Repository](https://gitlab.com/GeneralProtocols/xo/coordinator-server)
- [Issues](https://gitlab.com/GeneralProtocols/xo/coordinator-server/-/work_items)
## License
[MIT](LICENSE)
+8
View File
@@ -0,0 +1,8 @@
import baseConfig from '@xo-cash/eslint-config';
export default [
{
ignores: [ 'docs/**' ],
},
...baseConfig,
];
+11152
View File
File diff suppressed because it is too large Load Diff
+70
View File
@@ -0,0 +1,70 @@
{
"name": "@xo-cash/coordinator-server",
"version": "0.0.1",
"description": "XO Cash Coordinator Server",
"type": "module",
"types": "./dist/index.d.mts",
"source": "./source/index.ts",
"module": "./dist/index.mjs",
"exports": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
},
"publishConfig": {
"access": "public"
},
"sideEffects": false,
"scripts": {
"analyze": "tsdown --clean --no-fixed-extension --sourcemap source/index.ts && esbuild-analyzer dist/",
"build": "tsdown --clean --sourcemap source/index.ts",
"docs": "typedoc --hideGenerator --categorizeByGroup",
"format": "prettier --write . && eslint --fix",
"spellcheck": "cspell 'source/**' 'test/**' 'playground/**'",
"style": "eslint",
"syntax": "tsc --noEmit",
"test": "vitest --dir test/ --test-timeout=15000 --passWithNoTests --run --coverage"
},
"files": [
"dist"
],
"repository": {
"type": "git",
"url": "git+https://gitlab.com/GeneralProtocols/xo/coordinator-server.git"
},
"author": "GeneralProtocols",
"license": "MIT",
"bugs": {
"url": "https://gitlab.com/GeneralProtocols/xo/coordinator-server/issues"
},
"homepage": "https://gitlab.com/GeneralProtocols/xo/coordinator-server#readme",
"keywords": [
"bitcoin cash",
"xo cash"
],
"dependencies": {
"@bitauth/libauth": "^3.1.0-next.8"
},
"overrides": {
"echarts": "6.1.0"
},
"devDependencies": {
"@chalp/eslint-airbnb": "^1.3.0",
"@generalprotocols/cspell-dictionary": "^1.0.1",
"@stylistic/eslint-plugin": "^5.7.0",
"@types/node": "^25.5.0",
"@typescript-eslint/eslint-plugin": "^8.53.1",
"@typescript-eslint/parser": "^8.53.1",
"@vitest/coverage-v8": "^4.0.17",
"@viz-kit/esbuild-analyzer": "^1.0.0",
"@xo-cash/eslint-config": "1.0.2",
"cspell": "^9.6.0",
"eslint": "^9.39.2",
"prettier": "^3.6.2",
"tsdown": "^0.20.0-beta.4",
"typedoc": "^0.28.16",
"typedoc-plugin-coverage": "^4.0.2",
"typescript": "^5.3.2",
"typescript-eslint": "^8.53.1",
"vitest": "^4.0.17"
}
}
View File
+15
View File
@@ -0,0 +1,15 @@
{
"compilerOptions": {
"module": "es2022",
"target": "es2022",
"skipLibCheck": true,
"strict": true,
"moduleResolution": "bundler",
"resolveJsonModule": true,
"allowImportingTsExtensions": true,
"noEmit": true,
"declaration": true,
"declarationMap": true
},
"exclude": ["node_modules/**/*", "dist/**/*"]
}
+18
View File
@@ -0,0 +1,18 @@
{
"entryPoints": ["source/index.ts"],
"out": "public/",
"plugin": ["typedoc-plugin-coverage"],
"maxTypeConversionDepth": 2,
"excludeExternals": true,
"visibilityFilters": {
"protected": false,
"private": false,
"inherited": false,
"external": false
},
"groupOrder": ["Classes", "Interfaces", "Events", "*"],
"navigation": {
"includeCategories": false,
"includeGroups": true
}
}