Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
cb78970
Upgrade libphonenumber-js to 1.12.4 (#23790)
matthappens Feb 17, 2026
ee998c4
Retheme Ops app with origin/Nage design system (#23775)
bsiaotickchong Feb 17, 2026
53f9710
CI update lock file for PR
Feb 17, 2026
6354e9e
Confine account numbers and sort codes for gbp, myr, sgd and thb to b…
matthappens Feb 19, 2026
67f0ab3
[ops] Convert all ops tables to DataManagerTable (#23871)
bsiaotickchong Feb 20, 2026
be5ed4e
Add Tazapay currencies to cent-based currency formatting (#23949)
matthappens Feb 20, 2026
8913ab5
fix: use unique keys for Dropdown list items (#24202)
coreymartin Feb 27, 2026
312ac69
Update currency formatting for African currencies (#24427)
matthappens Mar 4, 2026
dcd36c3
[core] Improve Logger: add levels, timestamps, options API, and tests…
coreymartin Mar 5, 2026
ce84ce8
Default to Node 20.x, matrix test 18+22, migrate to mise (#498)
coreymartin Mar 5, 2026
15a4acc
[js] Make @lightsparkdev/tsconfig publishable (#24477)
coreymartin Mar 5, 2026
ef70e6e
Consolidate Node/Yarn CI setup, default to Node 20, migrate to mise (…
coreymartin Mar 5, 2026
ccfbcda
CI update lock file for PR
Mar 5, 2026
4415f3c
Add changesets for core and ui, fix create-release-pr workflow
coreymartin Mar 5, 2026
faa2e40
Update from public js-sdk main branch (#23597)
lightspark-ci-js-sdk[bot] Mar 6, 2026
d9d58b6
CI update lock file for PR
Mar 6, 2026
c34f2bb
Use Lightspark Copybara app for JS SDK → webdev sync
coreymartin Mar 6, 2026
f2b7443
Fix JSON imports for Node 22 compat (re-apply createRequire fix)
coreymartin Mar 6, 2026
3b2638a
[js] Migrate JS monorepo to ESLint 9 flat config (#24487)
coreymartin Mar 6, 2026
7d2857f
CI update lock file for PR
Mar 6, 2026
348a61d
[js] Make @lightsparkdev/eslint-config publishable (#24538)
coreymartin Mar 6, 2026
de57a00
CI update lock file for PR
Mar 6, 2026
bc4251c
Fix JSON imports for Node 22 compat (re-apply after Copybara revert)
coreymartin Mar 6, 2026
20a2f5f
Add publishConfig for public npm access to tsconfig and eslint-config
coreymartin Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/improve-logger-and-currencies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@lightsparkdev/core": minor
---

Add new Logger API with configurable levels, timestamps, and options. New logging levels (Debug, Warn, Error) supplement existing Trace and Info levels. The `setOptions()` method enables batch configuration of logging behavior. Update currency formatting to support additional African currencies (MWK, ZMW) and Tazapay-supported currencies (IDR, VND, THB, MYR, CAD, DKK, AED, HKD, SGD).
5 changes: 5 additions & 0 deletions .changeset/ui-fixes-and-enhancements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@lightsparkdev/ui": patch
---

Fix unique key generation for Dropdown list items to prevent React rendering issues. Fix DataManagerTable pagination state and empty filter rendering. Add `digitsOnly` field validator for numeric-only input fields. Improve font loading to support sub-path deployments via dynamic BASE_URL resolution. Update Nage and Hardcore theme definitions.
2 changes: 1 addition & 1 deletion .github/workflows/create-release-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
env:
SKIP_YARN_COREPACK_CHECK: true
with:
node-version-file: ".nvmrc"
node-version: "20.x"

- name: yarn install with cache
uses: ./.github/actions/yarn-nm-install
Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/test-release-sync.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
env:
SKIP_YARN_COREPACK_CHECK: true
with:
node-version-file: ".nvmrc"
node-version: "20.x"

- name: "Install dependencies with yarn cache"
uses: ./.github/actions/yarn-nm-install
Expand Down Expand Up @@ -69,7 +69,7 @@ jobs:
runs-on: "ubuntu-22.04"
strategy:
matrix:
node-version: ["18.x", "20.x"]
node-version: ["18.x", "22.x"]
steps:
- name: "Checkout"
uses: "actions/checkout@v3"
Expand Down Expand Up @@ -121,7 +121,7 @@ jobs:
runs-on: "ubuntu-22.04"
strategy:
matrix:
node-version: ["18.x", "20.x"]
node-version: ["18.x", "22.x"]
steps:
- name: "Checkout"
uses: "actions/checkout@v3"
Expand Down Expand Up @@ -277,8 +277,10 @@ jobs:
id: generate_token
uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
app-id: ${{ secrets.LIGHTSPARK_COPYBARA_APP_ID }}
private-key: ${{ secrets.LIGHTSPARK_COPYBARA_PRIVATE_KEY }}
owner: lightsparkdev
repositories: webdev

- name: "Run Copybara"
env:
Expand Down
2 changes: 1 addition & 1 deletion .mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
MISE_NODE_COREPACK = true

[tools]
node = "latest"
node = "20"

[tasks.deps]
description = "Install all JS dependencies"
Expand Down
1 change: 0 additions & 1 deletion .nvmrc

This file was deleted.

11 changes: 11 additions & 0 deletions apps/examples/nodejs-scripts/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import base from "@lightsparkdev/eslint-config/base";

export default [
...base,
{
files: ["**/*.cjs"],
rules: {
"@typescript-eslint/no-require-imports": "off",
},
},
];
5 changes: 3 additions & 2 deletions apps/examples/nodejs-scripts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,16 @@
"license": "ISC",
"devDependencies": {
"@lightsparkdev/eslint-config": "*",
"@lightsparkdev/tsconfig": "0.0.1",
"@types/jest": "^29.5.3",
"@types/node": "^20.2.5",
"eslint": "^8.3.0",
"eslint": "^9.0.0",
"eslint-watch": "^8.0.0",
"jest": "^29.6.2",
"prettier": "3.0.3",
"prettier-plugin-organize-imports": "^3.2.4",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.1",
"ts-node": "^10.9.2",
"tsc-absolute": "^1.0.1",
"typescript": "^5.6.2"
},
Expand Down
6 changes: 3 additions & 3 deletions apps/examples/nodejs-scripts/src/lightspark-sdk/example.ts
Original file line number Diff line number Diff line change
Expand Up @@ -266,9 +266,9 @@ const address = await client.createNodeWalletAddress(nodeId);
console.log(`Got a bitcoin address for ${nodeName}: ${address}`);
console.log("");

// const withdrawal = await client.requestWithdrawal(node2Id, 1000000, address, WithdrawalMode.WALLET_THEN_CHANNELS);
// console.log(`Money was withdrawn with ID = ${withdrawal.id}`);
// console.log("");
// const withdrawal = await client.requestWithdrawal(node2Id, 1000000, address,
// WithdrawalMode.WALLET_THEN_CHANNELS); console.log(`Money was withdrawn with ID =
// ${withdrawal.id}`); console.log("");

// Fetch the channels for Node 1
const node = await client.executeRawQuery(getLightsparkNodeQuery(nodeId));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,9 @@ const address = await client.createNodeWalletAddress(node1Id);
console.log(`Got a bitcoin address for ${node1Name}: ${address}`);
console.log("");

// const withdrawal = await client.requestWithdrawal(node2Id, 1000000, address, WithdrawalMode.WALLET_THEN_CHANNELS);
// console.log(`Money was withdrawn with ID = ${withdrawal.id}`);
// console.log("");
// const withdrawal = await client.requestWithdrawal(node2Id, 1000000, address,
// WithdrawalMode.WALLET_THEN_CHANNELS); console.log(`Money was withdrawn with ID =
// ${withdrawal.id}`); console.log("");

// Fetch the channels for Node 1
const node1 = await client.executeRawQuery(getLightsparkNodeQuery(node1Id));
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/nodejs-scripts/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../../packages/tsconfig/ts-node-app.json",
"extends": "@lightsparkdev/tsconfig/ts-node-app.json",
"compilerOptions": {
"noEmit": true
},
Expand Down
5 changes: 5 additions & 0 deletions apps/examples/oauth-app/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import reactApp from '@lightsparkdev/eslint-config/react-app';

export default [
...reactApp,
];
4 changes: 2 additions & 2 deletions apps/examples/oauth-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@
},
"devDependencies": {
"@lightsparkdev/eslint-config": "*",
"@lightsparkdev/tsconfig": "*",
"@lightsparkdev/tsconfig": "0.0.1",
"@types/jest": "^29.5.3",
"@types/node": "^20.2.5",
"@types/react": "^18.2.12",
"@types/react-dom": "^18.0.0",
"@vitejs/plugin-react": "^4.0.1",
"eslint": "^8.3.0",
"eslint": "^9.0.0",
"eslint-watch": "^8.0.0",
"prettier": "3.0.3",
"prettier-plugin-organize-imports": "^3.2.4",
Expand Down
5 changes: 5 additions & 0 deletions apps/examples/remote-signing-server/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import base from '@lightsparkdev/eslint-config/base';

export default [
...base,
];
6 changes: 3 additions & 3 deletions apps/examples/remote-signing-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@
"express": "^4.18.2"
},
"devDependencies": {
"@lightsparkdev/tsconfig": "*",
"@lightsparkdev/tsconfig": "0.0.1",
"@types/jest": "^29.5.3",
"@types/node": "^20.2.5",
"@types/supertest": "^2.0.14",
"eslint": "^8.3.0",
"eslint": "^9.0.0",
"eslint-watch": "^8.0.0",
"jest": "^29.6.2",
"nodemon": "^2.0.22",
"prettier": "3.0.3",
"prettier-plugin-organize-imports": "^3.2.4",
"supertest": "^6.3.3",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.1",
"ts-node": "^10.9.2",
"tsc-absolute": "^1.0.1",
"typescript": "^5.6.2"
},
Expand Down
7 changes: 6 additions & 1 deletion apps/examples/remote-signing-server/server.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
import { jest } from "@jest/globals";
import { LightsparkClient } from "@lightsparkdev/lightspark-sdk";
import supertest from "supertest";
import settings from "../settings.json" assert { type: "json" };
import { createRequire } from "node:module";
import { app } from "./src/index.js";

const require = createRequire(import.meta.url);
const settings = require("../settings.json") as {
remoteSigningServer: { port: number };
};

describe("Test server routes", () => {
let server: ReturnType<typeof app.listen>;
let request = supertest(app);
Expand Down
4 changes: 2 additions & 2 deletions apps/examples/remote-signing-server/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ app.post("/lightspark-webhook", (req, res) => {

try {
credentials = getCredentialsFromEnvOrThrow();
} catch (e) {
} catch {
res.status(500).send("Unable to get credentials from env");
return;
}
Expand All @@ -88,7 +88,7 @@ app.post("/lightspark-webhook", (req, res) => {
}

res.send("OK");
} catch (e) {
} catch {
res.status(500).send("Internal server error");
}
})().catch((e) => {
Expand Down
7 changes: 6 additions & 1 deletion apps/examples/remote-signing-server/src/startServer.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import settings from "../../settings.json" assert { type: "json" };
import { createRequire } from "node:module";
import { app } from "./index.js";

const require = createRequire(import.meta.url);
const settings = require("../../settings.json") as {
remoteSigningServer: { port: number };
};

app.listen(settings.remoteSigningServer.port, () => {
console.log(
`Server started on http://localhost:${settings.remoteSigningServer.port}`,
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/remote-signing-server/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../../packages/tsconfig/ts-node-app.json",
"extends": "@lightsparkdev/tsconfig/ts-node-app.json",
"compilerOptions": {
"noEmit": true
}
Expand Down
21 changes: 21 additions & 0 deletions apps/examples/ui-test-app/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import reactLib from '@lightsparkdev/eslint-config/react-lib';

export default [
// Keep generated folder ignored
{ ignores: ['src/generated/'] },
...reactLib,
{
files: ['**/src/**/*.ts?(x)'],
ignores: ['**/tests/**/*.ts?(x)'],
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
},
},
];
4 changes: 2 additions & 2 deletions apps/examples/ui-test-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@
"@emotion/babel-plugin": "^11.11.0",
"@emotion/jest": "^11.13.0",
"@lightsparkdev/eslint-config": "*",
"@lightsparkdev/tsconfig": "*",
"@lightsparkdev/tsconfig": "0.0.1",
"@lightsparkdev/vite": "*",
"@testing-library/jest-dom": "^6.1.2",
"@types/jest": "^29.5.3",
"@vitejs/plugin-react": "^4.0.1",
"babel-jest": "^29.6.4",
"eslint": "^8.3.0",
"eslint": "^9.0.0",
"eslint-watch": "^8.0.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.6.2",
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/ui-test-app/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../../packages/tsconfig/react-app.json",
"extends": "@lightsparkdev/tsconfig/react-app.json",
"compilerOptions": {
"baseUrl": "src",
"types": ["node", "vite/client"]
Expand Down
5 changes: 5 additions & 0 deletions apps/examples/uma-vasp-cli/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import base from '@lightsparkdev/eslint-config/base';

export default [
...base,
];
4 changes: 2 additions & 2 deletions apps/examples/uma-vasp-cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@
"@lightsparkdev/tsconfig": "0.0.1",
"@types/chalk": "^2.2.0",
"@types/node": "^20.2.5",
"eslint": "^8.3.0",
"eslint": "^9.0.0",
"eslint-watch": "^8.0.0",
"nodemon": "^2.0.22",
"prettier": "3.0.3",
"prettier-plugin-organize-imports": "^3.2.4",
"ts-node": "^10.9.1",
"ts-node": "^10.9.2",
"tsc-absolute": "^1.0.1",
"typescript": "^5.6.2"
},
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/uma-vasp-cli/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ const sendPayment = async (options: OptionValues) => {
validate: (value) => {
try {
return !Number.isNaN(parseFloat(value));
} catch (e) {
} catch {
return false;
}
},
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/uma-vasp-cli/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../../packages/tsconfig/ts-node-app.json",
"extends": "@lightsparkdev/tsconfig/ts-node-app.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/uma-vasp/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ RUN corepack prepare --activate
# Install the dependencies
RUN yarn workspace @lightsparkdev/uma-vasp install

COPY turbo.json LICENSE .nvmrc ./
COPY turbo.json LICENSE ./
COPY apps/examples/uma-vasp ./apps/examples/uma-vasp/
COPY packages/lightspark-sdk ./packages/lightspark-sdk/
COPY packages/core ./packages/core/
Expand Down
4 changes: 2 additions & 2 deletions apps/examples/uma-vasp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"zod": "^3.22.4"
},
"devDependencies": {
"@lightsparkdev/tsconfig": "*",
"@lightsparkdev/tsconfig": "0.0.1",
"@types/body-parser": "^1.19.5",
"@types/express": "^4.17.21",
"@types/supertest": "^2.0.14",
Expand All @@ -35,7 +35,7 @@
"prettier-plugin-organize-imports": "^3.2.4",
"supertest": "^6.3.3",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.1",
"ts-node": "^10.9.2",
"typescript": "^5.6.2"
},
"engines": {
Expand Down
7 changes: 6 additions & 1 deletion apps/examples/uma-vasp/server.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import supertest from "supertest";
import settings from "../settings.json" assert { type: "json" };
import { createRequire } from "node:module";

const require = createRequire(import.meta.url);
const settings = require("../settings.json") as {
umaVasp: { port: number };
};
import { createUmaServer } from "./src/server.js";
import UmaConfig from "./src/UmaConfig.js";
import { AccountTokenAuthProvider, LightsparkClient } from "@lightsparkdev/lightspark-sdk";
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/uma-vasp/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../../packages/tsconfig/ts-node-app.json",
"extends": "@lightsparkdev/tsconfig/ts-node-app.json",
"compilerOptions": {
"types": ["node"],
"outDir": "dist"
Expand Down
5 changes: 5 additions & 0 deletions packages/core/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import base from '@lightsparkdev/eslint-config/base';

export default [
...base,
];
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
"@types/lodash-es": "^4.17.6",
"@types/ws": "^8.5.4",
"auto-bind": "^5.0.1",
"eslint": "^8.3.0",
"eslint": "^9.0.0",
"eslint-watch": "^8.0.0",
"jest": "^29.6.2",
"lodash-es": "^4.17.21",
Expand Down
Loading