5 Commits
Author SHA1 Message Date
Harvmaster 46f84e7f98 Remove better-sqlite3 2026-09-07 12:55:23 +00:00
Harvmaster 235447e706 update readme 2026-09-07 22:02:13 +10:00
Harvmaster 7ff2da6025 Update readme 2026-09-07 11:56:59 +00:00
Harvmaster 9213022e79 Update dep 2026-09-07 11:45:54 +00:00
Harvmaster 883b3cd389 Small changes 2026-09-07 11:40:10 +00:00
5 changed files with 38 additions and 140 deletions
+29 -35
View File
@@ -16,10 +16,9 @@
"@xo-cash/crypto": "^0.0.2", "@xo-cash/crypto": "^0.0.2",
"@xo-cash/engine": "^0.0.2-cli.20260907103534754", "@xo-cash/engine": "^0.0.2-cli.20260907103534754",
"@xo-cash/state": "^0.0.3", "@xo-cash/state": "^0.0.3",
"@xo-cash/templates": "^0.0.3", "@xo-cash/templates": "^0.0.4",
"@xo-cash/types": "^0.0.5", "@xo-cash/types": "^0.0.5",
"@xo-cash/utils": "^0.0.6-cli.20260907041319224", "@xo-cash/utils": "^0.0.6-cli.20260907041319224",
"better-sqlite3": "^12.6.2",
"clipboardy": "^5.1.0", "clipboardy": "^5.1.0",
"ink": "^6.6.0", "ink": "^6.6.0",
"prettier": "^3.8.1", "prettier": "^3.8.1",
@@ -34,7 +33,6 @@
"xo-tui": "dist/index.js" "xo-tui": "dist/index.js"
}, },
"devDependencies": { "devDependencies": {
"@types/better-sqlite3": "^7.6.13",
"@types/node": "^25.0.10", "@types/node": "^25.0.10",
"@types/qrcode": "^1.5.6", "@types/qrcode": "^1.5.6",
"@types/react": "^19.2.14", "@types/react": "^19.2.14",
@@ -632,16 +630,6 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/@types/better-sqlite3": {
"version": "7.6.13",
"resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.13.tgz",
"integrity": "sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/chai": { "node_modules/@types/chai": {
"version": "5.2.3", "version": "5.2.3",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
@@ -1166,9 +1154,9 @@
} }
}, },
"node_modules/@xo-cash/engine": { "node_modules/@xo-cash/engine": {
"version": "0.0.2-cli.20260907103534754", "version": "0.0.2-test.20260907033538062",
"resolved": "https://verdaccio.harvmaster.com/@xo-cash/engine/-/engine-0.0.2-cli.20260907103534754.tgz", "resolved": "https://verdaccio.harvmaster.com/@xo-cash/engine/-/engine-0.0.2-test.20260907033538062.tgz",
"integrity": "sha512-HcR5uECJ1SRLZaCfzCsSGTUMmeU4v7dMVgiLhxdbBLUFEUYKEax5bX1BuKrfaqp7+FlN772skK/rAt6TzuKFfQ==", "integrity": "sha512-DbvwuPuHVdcyZQ004hsvry6plR4GozLI9wHesctqwthQqQaF7H6XS2yCbx8559emr8Rzgtzsio2AK5gR5xSMdw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bitauth/libauth": "^3.1.0-next.8", "@bitauth/libauth": "^3.1.0-next.8",
@@ -1181,7 +1169,7 @@
"@xo-cash/state": "0.0.3", "@xo-cash/state": "0.0.3",
"@xo-cash/templates": "0.0.3", "@xo-cash/templates": "0.0.3",
"@xo-cash/types": "0.0.5", "@xo-cash/types": "0.0.5",
"@xo-cash/utils": "^0.0.6-cli.20260907035204932", "@xo-cash/utils": "0.0.4",
"eventemitter3": "^5.0.1" "eventemitter3": "^5.0.1"
} }
}, },
@@ -1197,6 +1185,24 @@
"@xo-cash/utils": "0.0.4" "@xo-cash/utils": "0.0.4"
} }
}, },
"node_modules/@xo-cash/engine/node_modules/@xo-cash/templates": {
"version": "0.0.3",
"resolved": "https://verdaccio.harvmaster.com/@xo-cash/templates/-/templates-0.0.3.tgz",
"integrity": "sha512-c+qEwkMzXFS2BSsNW37nGxiR536H3JNGd8wNbNaLAcItLf9EKxpsNDzN0/XG2C961zpA6cXCgmqgvvS038RTtw==",
"license": "MIT",
"dependencies": {
"@xo-cash/types": "0.0.4"
}
},
"node_modules/@xo-cash/engine/node_modules/@xo-cash/templates/node_modules/@xo-cash/types": {
"version": "0.0.4",
"resolved": "https://verdaccio.harvmaster.com/@xo-cash/types/-/types-0.0.4.tgz",
"integrity": "sha512-XBB/jNC1orDcMUi5Q0g+fnPXdKdb+n7OyqmJ8pxFrfM0y9OAdLjfddMih/JWfOWQtBkvY0CtdaZapgBSrvLeSw==",
"license": "MIT",
"dependencies": {
"@bitauth/libauth": "^3.1.0-next.8"
}
},
"node_modules/@xo-cash/engine/node_modules/@xo-cash/utils": { "node_modules/@xo-cash/engine/node_modules/@xo-cash/utils": {
"version": "0.0.4", "version": "0.0.4",
"resolved": "https://verdaccio.harvmaster.com/@xo-cash/utils/-/utils-0.0.4.tgz", "resolved": "https://verdaccio.harvmaster.com/@xo-cash/utils/-/utils-0.0.4.tgz",
@@ -1273,22 +1279,10 @@
} }
}, },
"node_modules/@xo-cash/templates": { "node_modules/@xo-cash/templates": {
"version": "0.0.3",
"resolved": "https://verdaccio.harvmaster.com/@xo-cash/templates/-/templates-0.0.3.tgz",
"integrity": "sha512-c+qEwkMzXFS2BSsNW37nGxiR536H3JNGd8wNbNaLAcItLf9EKxpsNDzN0/XG2C961zpA6cXCgmqgvvS038RTtw==",
"license": "MIT",
"dependencies": {
"@xo-cash/types": "0.0.4"
}
},
"node_modules/@xo-cash/templates/node_modules/@xo-cash/types": {
"version": "0.0.4", "version": "0.0.4",
"resolved": "https://verdaccio.harvmaster.com/@xo-cash/types/-/types-0.0.4.tgz", "resolved": "https://verdaccio.harvmaster.com/@xo-cash/templates/-/templates-0.0.4.tgz",
"integrity": "sha512-XBB/jNC1orDcMUi5Q0g+fnPXdKdb+n7OyqmJ8pxFrfM0y9OAdLjfddMih/JWfOWQtBkvY0CtdaZapgBSrvLeSw==", "integrity": "sha512-+JXG4UK5cEswwp+McuEnSO7Vw2/t61+2eS56UMHp8ikkix/bRA4W41vU6kMi+A+5HzOd1fHNd855LpwMvYZWYQ==",
"license": "MIT", "license": "MIT"
"dependencies": {
"@bitauth/libauth": "^3.1.0-next.8"
}
}, },
"node_modules/@xo-cash/types": { "node_modules/@xo-cash/types": {
"version": "0.0.5", "version": "0.0.5",
@@ -1300,9 +1294,9 @@
} }
}, },
"node_modules/@xo-cash/utils": { "node_modules/@xo-cash/utils": {
"version": "0.0.6-clio.20260907035202101", "version": "0.0.6-cli.20260907041319224",
"resolved": "https://verdaccio.harvmaster.com/@xo-cash/utils/-/utils-0.0.6-clio.20260907035202101.tgz", "resolved": "https://verdaccio.harvmaster.com/@xo-cash/utils/-/utils-0.0.6-cli.20260907041319224.tgz",
"integrity": "sha512-DBou0RivCxg4PvyC6eWpFWXsxh2gTSD7BPeYIToqkdjweVzszvsWIUJ8tb27MxL56fW6CbGhDXyElciXEqbQmg==", "integrity": "sha512-wqayttoDo+ALE3UFAS/gPgncMxndjC3EW4E/IFLct9jnC1kAbs6ZAfbZvje3XSHxwLjizD2PjtSBP2Io3i/pzQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bitauth/libauth": "^3.1.0-next.8", "@bitauth/libauth": "^3.1.0-next.8",
+1 -3
View File
@@ -42,10 +42,9 @@
"@xo-cash/crypto": "^0.0.2", "@xo-cash/crypto": "^0.0.2",
"@xo-cash/engine": "^0.0.2-cli.20260907103534754", "@xo-cash/engine": "^0.0.2-cli.20260907103534754",
"@xo-cash/state": "^0.0.3", "@xo-cash/state": "^0.0.3",
"@xo-cash/templates": "^0.0.3", "@xo-cash/templates": "^0.0.4",
"@xo-cash/types": "^0.0.5", "@xo-cash/types": "^0.0.5",
"@xo-cash/utils": "^0.0.6-cli.20260907041319224", "@xo-cash/utils": "^0.0.6-cli.20260907041319224",
"better-sqlite3": "^12.6.2",
"clipboardy": "^5.1.0", "clipboardy": "^5.1.0",
"ink": "^6.6.0", "ink": "^6.6.0",
"prettier": "^3.8.1", "prettier": "^3.8.1",
@@ -55,7 +54,6 @@
"zod": "^4.3.6" "zod": "^4.3.6"
}, },
"devDependencies": { "devDependencies": {
"@types/better-sqlite3": "^7.6.13",
"@types/node": "^25.0.10", "@types/node": "^25.0.10",
"@types/qrcode": "^1.5.6", "@types/qrcode": "^1.5.6",
"@types/react": "^19.2.14", "@types/react": "^19.2.14",
+4 -98
View File
@@ -2,114 +2,18 @@
## Installation ## Installation
### Full Installation
```bash ```bash
# Create a new directory since we are going to be pulling in engine too
mkdir xo-terminal && cd xo-terminal
# ----- Start State Setup -----
# Clone the State Repo
git clone https://gitlab.com/Harvmaster/state.git
# Move into the state directory
cd state
git checkout cli-test
# Install the dependencies
npm ci
# Build the state
npm run build
# ----- End State Setup -----
# Move back to the top level directory
cd ..
# ----- Start Primitive Setup -----
git clone git@gitlab.com:GeneralProtocols/xo/primitives.git
cd primitives
git checkout update/syncup-ui-requirements
npm ci
npm run build
# ----- End Primitive Setup -----
# Move back to the top level directory
cd ..
# ----- Start Utils Setup -----
git clone git@gitlab.com:Harvmaster/xo-cash-utils.git utils
cd utils
git checkout sse-and-backoff
npm ci
npm run build
# ----- End Utils Setup
# Move back to the top level directory
cd ..
# ----- Start Template Setup ----
# Clone the Template repo
git clone https://gitlab.com/Harvmaster/templates.git
# Move into themplates directory
cd templates
# Install deps
npm ci
#build the templates
npm run build
# ----- End Templates Setup ----
# Move back to the top level directory
cd ..
# ----- Start Engine Setup -----
# Clone the Engine Repo (Note, this uses harvey's fork of the engine repo to access the cli-test branch)
git clone https://gitlab.com/Harvmaster/engine.git
# Move into teh engine directory
cd engine
# Checkout the cli-test branch
git checkout cli-test-update
# Install the dependencies
npm ci
# Build the engine
npm run build
# ----- End Engine Setup -----
# Move back to the top level directory
cd ..
# ----- Start CLI Setup -----
# Clone the CLI Repo # Clone the CLI Repo
git clone https://git.harvmaster.com/Harvmaster/xo-cli.git git clone https://git.harvmaster.com/Harvmaster/xo-cli.git
# Move into the cli directory # Move into the cli directory
cd xo-cli cd xo-cli
git checkout kiok-update
# Install the dependencies # Install the dependencies
npm ci npm ci
# Build the cli # Run the CLI
npm run build npm run dev
# ----- End CLI Setup -----
``` ```
### Run TUI in dev mode ### Run TUI in dev mode
@@ -118,6 +22,8 @@ npm run build
npm run dev npm run dev
``` ```
# Not fully tested past this point
### Install globally ### Install globally
```bash ```bash
+3 -3
View File
@@ -1,4 +1,4 @@
import Database from "better-sqlite3"; import { DatabaseSync } from 'node:sqlite'
import { deserializeInvitation, serializeInvitation } from "@xo-cash/engine"; import { deserializeInvitation, serializeInvitation } from "@xo-cash/engine";
import type { XOInvitation } from "@xo-cash/types"; import type { XOInvitation } from "@xo-cash/types";
@@ -22,7 +22,7 @@ export abstract class BaseStorage {
export class Storage extends BaseStorage { export class Storage extends BaseStorage {
static async create(dbPath: string): Promise<Storage> { static async create(dbPath: string): Promise<Storage> {
// Create the database // Create the database
const database = new Database(dbPath); const database = new DatabaseSync(dbPath);
// Create the storage table if it doesn't exist // Create the storage table if it doesn't exist
database database
@@ -35,7 +35,7 @@ export class Storage extends BaseStorage {
} }
constructor( constructor(
private readonly database: Database.Database, private readonly database: DatabaseSync,
private readonly basePath: string, private readonly basePath: string,
) { ) {
super(); super();
@@ -33,7 +33,7 @@ import {
import type { ResolvedInvitationVariable } from '../../../utils/resolve-invitation-data.js' import type { ResolvedInvitationVariable } from '../../../utils/resolve-invitation-data.js'
import { InvitationImportFlow } from './invitation-import/InvitationImportFlow.js'; import { InvitationImportFlow } from './invitation-import/InvitationImportFlow.js';
import { compileCashAssemblyString } from '@xo-cash/engine'; import { compileCashAssemblyString } from '@xo-cash/utils';
/** /**
* Map state color name to theme color. * Map state color name to theme color.