mirror of
https://github.com/actualbudget/actual.git
synced 2026-10-11 22:49:59 +00:00
[AI] Publish loot-core (@actual-app/core) nightly first in workflow (#7200)
* [AI] Publish loot-core (@actual-app/core) nightly first in workflow * [autofix.ci] apply automated fixes * Refactor imports and update configuration - Updated .oxfmtrc.json to change "parent" to ["parent", "subpath"]. - Removed unnecessary blank lines in various TypeScript files to improve code readability. - Adjusted import order in reports and rules files for consistency. * Add workflow steps to pack and publish the core package nightly * Remove nightly tag from npm publish command in workflow for core package * Update post-build script comment to reflect correct workspace command for loot-core declarations --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
autofix-ci[bot]
parent
e069312ac3
commit
6c150cf28a
@@ -20,11 +20,13 @@ jobs:
|
||||
- name: Update package versions
|
||||
run: |
|
||||
# Get new nightly versions
|
||||
NEW_CORE_VERSION=$(node ./packages/ci-actions/bin/get-next-package-version.js --package-json ./packages/loot-core/package.json --type nightly)
|
||||
NEW_WEB_VERSION=$(node ./packages/ci-actions/bin/get-next-package-version.js --package-json ./packages/desktop-client/package.json --type nightly)
|
||||
NEW_SYNC_VERSION=$(node ./packages/ci-actions/bin/get-next-package-version.js --package-json ./packages/sync-server/package.json --type nightly)
|
||||
NEW_API_VERSION=$(node ./packages/ci-actions/bin/get-next-package-version.js --package-json ./packages/api/package.json --type nightly)
|
||||
|
||||
# Set package versions
|
||||
npm version $NEW_CORE_VERSION --no-git-tag-version --workspace=@actual-app/core --no-workspaces-update
|
||||
npm version $NEW_WEB_VERSION --no-git-tag-version --workspace=@actual-app/web --no-workspaces-update
|
||||
npm version $NEW_SYNC_VERSION --no-git-tag-version --workspace=@actual-app/sync-server --no-workspaces-update
|
||||
npm version $NEW_API_VERSION --no-git-tag-version --workspace=@actual-app/api --no-workspaces-update
|
||||
@@ -33,6 +35,10 @@ jobs:
|
||||
run: |
|
||||
yarn install
|
||||
|
||||
- name: Pack the core package
|
||||
run: |
|
||||
yarn workspace @actual-app/core pack --filename @actual-app/core.tgz
|
||||
|
||||
- name: Build Server & Web
|
||||
run: yarn build:server
|
||||
|
||||
@@ -53,6 +59,7 @@ jobs:
|
||||
with:
|
||||
name: npm-packages
|
||||
path: |
|
||||
packages/loot-core/@actual-app/core.tgz
|
||||
packages/desktop-client/@actual-app/web.tgz
|
||||
packages/sync-server/@actual-app/sync-server.tgz
|
||||
packages/api/@actual-app/api.tgz
|
||||
@@ -76,6 +83,12 @@ jobs:
|
||||
node-version: 22
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
- name: Publish Core
|
||||
run: |
|
||||
npm publish loot-core/@actual-app/core.tgz --access public --tag nightly
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Publish Web
|
||||
run: |
|
||||
npm publish desktop-client/@actual-app/web.tgz --access public --tag nightly
|
||||
|
||||
@@ -16,6 +16,10 @@ jobs:
|
||||
- name: Set up environment
|
||||
uses: ./.github/actions/setup
|
||||
|
||||
- name: Pack the core package
|
||||
run: |
|
||||
yarn workspace @actual-app/core pack --filename @actual-app/core.tgz
|
||||
|
||||
- name: Build Web
|
||||
run: yarn build:server
|
||||
|
||||
@@ -36,6 +40,7 @@ jobs:
|
||||
with:
|
||||
name: npm-packages
|
||||
path: |
|
||||
packages/loot-core/@actual-app/core.tgz
|
||||
packages/desktop-client/@actual-app/web.tgz
|
||||
packages/sync-server/@actual-app/sync-server.tgz
|
||||
packages/api/@actual-app/api.tgz
|
||||
@@ -59,6 +64,12 @@ jobs:
|
||||
node-version: 22
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
- name: Publish Core
|
||||
run: |
|
||||
npm publish loot-core/@actual-app/core.tgz --access public
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Publish Web
|
||||
run: |
|
||||
npm publish desktop-client/@actual-app/web.tgz --access public
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@
|
||||
"builtin",
|
||||
"external",
|
||||
"loot-core",
|
||||
"parent",
|
||||
["parent", "subpath"],
|
||||
"sibling",
|
||||
"index",
|
||||
"desktop-client"
|
||||
@@ -22,7 +22,7 @@
|
||||
},
|
||||
{
|
||||
"groupName": "loot-core",
|
||||
"elementNamePattern": ["loot-core/**"]
|
||||
"elementNamePattern": ["loot-core/**", "@actual-app/core/**"]
|
||||
},
|
||||
{
|
||||
"groupName": "desktop-client",
|
||||
|
||||
@@ -84,7 +84,7 @@ The core application logic that runs on any platform.
|
||||
|
||||
```bash
|
||||
# Run all loot-core tests
|
||||
yarn workspace loot-core run test
|
||||
yarn workspace @actual-app/core run test
|
||||
|
||||
# Or run tests across all packages using lage
|
||||
yarn test
|
||||
@@ -219,7 +219,7 @@ yarn test
|
||||
yarn test:debug
|
||||
|
||||
# Run tests for a specific package
|
||||
yarn workspace loot-core run test
|
||||
yarn workspace @actual-app/core run test
|
||||
```
|
||||
|
||||
**E2E Tests (Playwright)**
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ packages/desktop-client/bin/remove-untranslated-languages
|
||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||
|
||||
yarn workspace plugins-service build
|
||||
yarn workspace loot-core build:browser
|
||||
yarn workspace @actual-app/core build:browser
|
||||
yarn workspace @actual-app/web build:browser
|
||||
|
||||
echo "packages/desktop-client/build"
|
||||
|
||||
@@ -51,16 +51,16 @@ fi
|
||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||
|
||||
yarn workspace plugins-service build
|
||||
yarn workspace loot-core build:node
|
||||
yarn workspace @actual-app/core build:node
|
||||
yarn workspace @actual-app/web build --mode=desktop # electron specific build
|
||||
|
||||
# required for running the sync-server server
|
||||
yarn workspace loot-core build:browser
|
||||
yarn workspace @actual-app/core build:browser
|
||||
yarn workspace @actual-app/web build:browser
|
||||
yarn workspace @actual-app/sync-server build
|
||||
|
||||
# Emit loot-core declarations so desktop-electron (which includes typings/window.ts) can build
|
||||
yarn workspace loot-core exec tsgo -p tsconfig.json
|
||||
# Emit @actual-app/core declarations so desktop-electron (which includes typings/window.ts) can build
|
||||
yarn workspace @actual-app/core exec tsgo -p tsconfig.json
|
||||
|
||||
yarn workspace desktop-electron update-client
|
||||
|
||||
|
||||
+4
-4
@@ -25,16 +25,16 @@
|
||||
"start:desktop": "yarn desktop-dependencies && npm-run-all --parallel 'start:desktop-*'",
|
||||
"start:docs": "yarn workspace docs start",
|
||||
"desktop-dependencies": "npm-run-all --parallel rebuild-electron build:browser-backend build:plugins-service",
|
||||
"start:desktop-node": "yarn workspace loot-core watch:node",
|
||||
"start:desktop-node": "yarn workspace @actual-app/core watch:node",
|
||||
"start:desktop-client": "yarn workspace @actual-app/web watch",
|
||||
"start:desktop-server-client": "yarn workspace @actual-app/web build:browser",
|
||||
"start:desktop-electron": "yarn workspace desktop-electron watch",
|
||||
"start:browser": "yarn workspace plugins-service build-dev && npm-run-all --parallel 'start:browser-*'",
|
||||
"start:service-plugins": "yarn workspace plugins-service watch",
|
||||
"start:browser-backend": "yarn workspace loot-core watch:browser",
|
||||
"start:browser-backend": "yarn workspace @actual-app/core watch:browser",
|
||||
"start:browser-frontend": "yarn workspace @actual-app/web start:browser",
|
||||
"start:storybook": "yarn workspace @actual-app/components start:storybook",
|
||||
"build:browser-backend": "yarn workspace loot-core build:browser",
|
||||
"build:browser-backend": "yarn workspace @actual-app/core build:browser",
|
||||
"build:server": "yarn build:browser && yarn workspace @actual-app/sync-server build",
|
||||
"build:browser": "./bin/package-browser",
|
||||
"build:desktop": "./bin/package-electron",
|
||||
@@ -53,7 +53,7 @@
|
||||
"vrt": "yarn workspace @actual-app/web run vrt",
|
||||
"vrt:docker": "./bin/run-vrt",
|
||||
"rebuild-electron": "./node_modules/.bin/electron-rebuild -m ./packages/loot-core",
|
||||
"rebuild-node": "yarn workspace loot-core rebuild",
|
||||
"rebuild-node": "yarn workspace @actual-app/core rebuild",
|
||||
"lint": "oxfmt --check . && oxlint --type-aware --quiet",
|
||||
"lint:fix": "oxfmt . && oxlint --fix --type-aware --quiet",
|
||||
"install:server": "yarn workspaces focus @actual-app/sync-server --production",
|
||||
|
||||
@@ -3,8 +3,8 @@ import type {
|
||||
RequestInit as FetchInit,
|
||||
} from 'node-fetch';
|
||||
|
||||
import { init as initLootCore } from 'loot-core/server/main';
|
||||
import type { InitConfig, lib } from 'loot-core/server/main';
|
||||
import { init as initLootCore } from '@actual-app/core/server/main';
|
||||
import type { InitConfig, lib } from '@actual-app/core/server/main';
|
||||
|
||||
import { validateNodeVersion } from './validateNodeVersion';
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import * as path from 'path';
|
||||
|
||||
import { vi } from 'vitest';
|
||||
|
||||
import type { RuleEntity } from 'loot-core/types/models';
|
||||
import type { RuleEntity } from '@actual-app/core/types/models';
|
||||
|
||||
import * as api from './index';
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@ import type {
|
||||
APIPayeeEntity,
|
||||
APIScheduleEntity,
|
||||
APITagEntity,
|
||||
} from 'loot-core/server/api-models';
|
||||
import { lib } from 'loot-core/server/main';
|
||||
import type { Query } from 'loot-core/shared/query';
|
||||
import type { ImportTransactionsOpts } from 'loot-core/types/api-handlers';
|
||||
import type { Handlers } from 'loot-core/types/handlers';
|
||||
} from '@actual-app/core/server/api-models';
|
||||
import { lib } from '@actual-app/core/server/main';
|
||||
import type { Query } from '@actual-app/core/shared/query';
|
||||
import type { ImportTransactionsOpts } from '@actual-app/core/types/api-handlers';
|
||||
import type { Handlers } from '@actual-app/core/types/handlers';
|
||||
import type {
|
||||
ImportTransactionEntity,
|
||||
RuleEntity,
|
||||
TransactionEntity,
|
||||
} from 'loot-core/types/models';
|
||||
} from '@actual-app/core/types/models';
|
||||
|
||||
export { q } from './app/query';
|
||||
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
"main": "dist/index.js",
|
||||
"types": "@types/index.d.ts",
|
||||
"scripts": {
|
||||
"build": "yarn workspace loot-core exec tsgo && vite build && node scripts/inline-loot-core-types.mjs",
|
||||
"build": "yarn workspace @actual-app/core exec tsgo && vite build && node scripts/inline-loot-core-types.mjs",
|
||||
"test": "vitest --run",
|
||||
"typecheck": "tsgo -b && tsc-strict"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actual-app/crdt": "workspace:^",
|
||||
"@actual-app/core": "workspace:*",
|
||||
"@actual-app/crdt": "workspace:*",
|
||||
"better-sqlite3": "^12.6.2",
|
||||
"compare-versions": "^6.1.1",
|
||||
"loot-core": "workspace:^",
|
||||
"node-fetch": "^3.3.2",
|
||||
"uuid": "^13.0.0"
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Post-build script: copies loot-core declaration tree into @types/loot-core
|
||||
* and rewrites index.d.ts to reference it so the published package is self-contained.
|
||||
* Run after vite build; requires loot-core declarations (yarn workspace loot-core exec tsgo).
|
||||
* Run after vite build; requires loot-core declarations (yarn workspace @actual-app/core exec tsgo).
|
||||
*/
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
@@ -23,7 +23,7 @@ function main() {
|
||||
}
|
||||
if (!fs.existsSync(lootCoreDeclSrc)) {
|
||||
console.error(
|
||||
'Missing loot-core declarations; run: yarn workspace loot-core exec tsgo',
|
||||
'Missing loot-core declarations; run: yarn workspace @actual-app/core exec tsgo',
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { lib } from 'loot-core/server/main';
|
||||
import { lib } from '@actual-app/core/server/main';
|
||||
|
||||
export const amountToInteger = lib.amountToInteger;
|
||||
export const integerToAmount = lib.integerToAmount;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@actual-app/components": "workspace:*",
|
||||
"@actual-app/core": "workspace:*",
|
||||
"@codemirror/autocomplete": "^6.20.0",
|
||||
"@codemirror/lang-javascript": "^6.2.4",
|
||||
"@codemirror/language": "^6.12.1",
|
||||
@@ -62,7 +63,6 @@
|
||||
"i18next-resources-to-backend": "^1.2.1",
|
||||
"jsdom": "^27.4.0",
|
||||
"lodash": "^4.17.23",
|
||||
"loot-core": "workspace:*",
|
||||
"mdast-util-newline-to-break": "^2.0.0",
|
||||
"memoize-one": "^6.0.0",
|
||||
"pikaday": "1.8.2",
|
||||
|
||||
@@ -1 +1 @@
|
||||
import 'loot-core/typings/window';
|
||||
import '@actual-app/core/typings/window';
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
"rootDir": "src",
|
||||
"tsBuildInfoFile": "build/ts/.tsbuildinfo",
|
||||
"paths": {
|
||||
// TODO: remove and replace with imports from "@actual-app/core"
|
||||
"loot-core/*": ["../loot-core/src/*"],
|
||||
// TODO: move to subpath imports
|
||||
"@desktop-client/*": ["./src/*"]
|
||||
},
|
||||
|
||||
@@ -154,6 +154,8 @@ export default defineConfig(async ({ mode }) => {
|
||||
extensions: resolveExtensions,
|
||||
alias: {
|
||||
'@desktop-client': path.join(__dirname, 'src'),
|
||||
// TODO: remove this once all loot-core imports are replaced with @actual-app/core
|
||||
'loot-core': path.join(__dirname, '../loot-core/src'),
|
||||
},
|
||||
...(!env.IS_GENERIC_BROWSER && {
|
||||
conditions: ['electron', 'module', 'browser', 'default'],
|
||||
|
||||
@@ -25,7 +25,7 @@ import type {
|
||||
import { copy, exists, mkdir, remove } from 'fs-extra';
|
||||
import promiseRetry from 'promise-retry';
|
||||
|
||||
import type { GlobalPrefsJson } from 'loot-core/types/prefs';
|
||||
import type { GlobalPrefsJson } from '@actual-app/core/types/prefs';
|
||||
|
||||
import { getMenu } from './menu';
|
||||
import {
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"promise-retry": "^2.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@actual-app/core": "workspace:*",
|
||||
"@electron/notarize": "3.1.1",
|
||||
"@electron/rebuild": "4.0.2",
|
||||
"@playwright/test": "1.58.2",
|
||||
@@ -31,7 +32,6 @@
|
||||
"cross-env": "^10.1.0",
|
||||
"electron": "39.2.7",
|
||||
"electron-builder": "26.4.0",
|
||||
"loot-core": "workspace:*",
|
||||
"typescript-strict-plugin": "^2.4.4"
|
||||
},
|
||||
"build": {
|
||||
|
||||
@@ -118,8 +118,8 @@ yarn workspace <workspace-name> run <command>
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
# Run tests for loot-core
|
||||
yarn workspace loot-core run test
|
||||
# Run tests for @actual-app/core
|
||||
yarn workspace @actual-app/core run test
|
||||
|
||||
# Start the docs development server
|
||||
yarn workspace docs start
|
||||
|
||||
@@ -33,8 +33,8 @@ The `yarn test` command uses Lage to run tests in parallel across all workspaces
|
||||
### Running Tests for a Specific Package
|
||||
|
||||
```bash
|
||||
# Run tests for loot-core
|
||||
yarn workspace loot-core run test
|
||||
# Run tests for @actual-app/core
|
||||
yarn workspace @actual-app/core run test
|
||||
|
||||
# Run tests for the API package
|
||||
yarn workspace @actual-app/api run test
|
||||
|
||||
@@ -86,7 +86,7 @@ This guide helps you resolve common issues when developing for Actual.
|
||||
|
||||
1. On Windows: Ensure you selected "Automatically install the necessary tools" during Node.js installation
|
||||
2. Run `yarn rebuild-electron` for Electron builds
|
||||
3. Run `yarn workspace loot-core rebuild` for Node.js builds
|
||||
3. Run `yarn workspace @actual-app/core rebuild` for Node.js builds
|
||||
4. Ensure you have the necessary build tools installed (Python, Visual Studio Build Tools on Windows)
|
||||
|
||||
## Development Server Issues
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
"name": "loot-core",
|
||||
"version": "0.0.2",
|
||||
"name": "@actual-app/core",
|
||||
"version": "26.3.0",
|
||||
"description": "",
|
||||
"license": "ISC",
|
||||
"author": "",
|
||||
"main": "index.js",
|
||||
"typesVersions": {
|
||||
"*": {
|
||||
"types/*": [
|
||||
@@ -12,6 +10,14 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"imports": {
|
||||
"#*": [
|
||||
"./src/*.ts",
|
||||
"./src/*.tsx",
|
||||
"./src/*/index.ts",
|
||||
"./src/*/index.tsx"
|
||||
]
|
||||
},
|
||||
"exports": {
|
||||
"./client/accounts/*": "./src/client/accounts/*.ts",
|
||||
"./client/app/*": "./src/client/app/*.ts",
|
||||
@@ -94,7 +100,7 @@
|
||||
"uuid": "^13.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@actual-app/crdt": "workspace:^",
|
||||
"@actual-app/crdt": "workspace:*",
|
||||
"@swc/core": "^1.15.11",
|
||||
"@types/adm-zip": "^0.5.7",
|
||||
"@types/better-sqlite3": "^7.6.13",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
// @ts-strict-ignore
|
||||
|
||||
import { getCurrency } from 'loot-core/shared/currencies';
|
||||
|
||||
import { getCurrency } from '#shared/currencies';
|
||||
import * as asyncStorage from '../../platform/server/asyncStorage';
|
||||
import { getLocale } from '../../shared/locale';
|
||||
import * as monthUtils from '../../shared/months';
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { getCurrency } from 'loot-core/shared/currencies';
|
||||
import type { Currency } from 'loot-core/shared/currencies';
|
||||
import { q } from 'loot-core/shared/query';
|
||||
|
||||
import { getCurrency } from '#shared/currencies';
|
||||
import type { Currency } from '#shared/currencies';
|
||||
import { q } from '#shared/query';
|
||||
import * as monthUtils from '../../shared/months';
|
||||
import { amountToInteger, integerToAmount } from '../../shared/util';
|
||||
import type { CategoryEntity } from '../../types/models';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { Currency } from 'loot-core/shared/currencies';
|
||||
|
||||
import type { Currency } from '#shared/currencies';
|
||||
import type { CategoryEntity } from '../../types/models';
|
||||
import * as db from '../db';
|
||||
import { Rule } from '../rules';
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
// @ts-strict-ignore
|
||||
|
||||
import type { Currency } from 'loot-core/shared/currencies';
|
||||
import { amountToInteger } from 'loot-core/shared/util';
|
||||
|
||||
import type { Currency } from '#shared/currencies';
|
||||
import { amountToInteger } from '#shared/util';
|
||||
import * as monthUtils from '../../shared/months';
|
||||
import {
|
||||
extractScheduleConds,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { DEFAULT_MAX_DISTANCE_METERS } from 'loot-core/shared/constants';
|
||||
|
||||
import { DEFAULT_MAX_DISTANCE_METERS } from '#shared/constants';
|
||||
import type { Diff } from '../../shared/util';
|
||||
import type {
|
||||
NearbyPayeeEntity,
|
||||
@@ -245,7 +244,7 @@ async function getNearbyPayees({
|
||||
// Get the closest location for each payee within maxDistance using window functions
|
||||
const query = `
|
||||
WITH payee_distances AS (
|
||||
SELECT
|
||||
SELECT
|
||||
pl.id as location_id,
|
||||
pl.payee_id,
|
||||
pl.latitude,
|
||||
@@ -260,8 +259,8 @@ async function getNearbyPayees({
|
||||
-- Haversine formula to calculate distance
|
||||
((6371 * acos(
|
||||
MIN(1, MAX(-1,
|
||||
cos(radians(?)) * cos(radians(pl.latitude)) *
|
||||
cos(radians(pl.longitude) - radians(?)) +
|
||||
cos(radians(?)) * cos(radians(pl.latitude)) *
|
||||
cos(radians(pl.longitude) - radians(?)) +
|
||||
sin(radians(?)) * sin(radians(pl.latitude))
|
||||
))
|
||||
))) * 1000 as distance,
|
||||
@@ -269,8 +268,8 @@ async function getNearbyPayees({
|
||||
ROW_NUMBER() OVER (PARTITION BY pl.payee_id ORDER BY (
|
||||
(6371 * acos(
|
||||
MIN(1, MAX(-1,
|
||||
cos(radians(?)) * cos(radians(pl.latitude)) *
|
||||
cos(radians(pl.longitude) - radians(?)) +
|
||||
cos(radians(?)) * cos(radians(pl.latitude)) *
|
||||
cos(radians(pl.longitude) - radians(?)) +
|
||||
sin(radians(?)) * sin(radians(pl.latitude))
|
||||
))
|
||||
)) * 1000
|
||||
@@ -282,13 +281,13 @@ async function getNearbyPayees({
|
||||
-- Filter by distance using Haversine formula
|
||||
AND (6371 * acos(
|
||||
MIN(1, MAX(-1,
|
||||
cos(radians(?)) * cos(radians(pl.latitude)) *
|
||||
cos(radians(pl.longitude) - radians(?)) +
|
||||
cos(radians(?)) * cos(radians(pl.latitude)) *
|
||||
cos(radians(pl.longitude) - radians(?)) +
|
||||
sin(radians(?)) * sin(radians(pl.latitude))
|
||||
))
|
||||
)) * 1000 <= ?
|
||||
)
|
||||
SELECT
|
||||
SELECT
|
||||
location_id,
|
||||
payee_id,
|
||||
latitude,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import { q } from 'loot-core/shared/query';
|
||||
|
||||
import { q } from '#shared/query';
|
||||
import type { CustomReportData, CustomReportEntity } from '../../types/models';
|
||||
import { createApp } from '../app';
|
||||
import { aqlQuery } from '../aql';
|
||||
|
||||
@@ -4,8 +4,7 @@ import * as Handlebars from 'handlebars';
|
||||
import { HyperFormula } from 'hyperformula';
|
||||
import enUS from 'hyperformula/i18n/languages/enUS';
|
||||
|
||||
import { amountToInteger } from 'loot-core/shared/util';
|
||||
|
||||
import { amountToInteger } from '#shared/util';
|
||||
import { logger } from '../../platform/server/log';
|
||||
import { currentDay, format, parseDate } from '../../shared/months';
|
||||
import { FIELD_TYPES } from '../../shared/rules';
|
||||
|
||||
@@ -4,12 +4,7 @@ import * as d from 'date-fns';
|
||||
import type { Locale } from 'date-fns';
|
||||
import { t } from 'i18next';
|
||||
|
||||
import type {
|
||||
PayeeEntity,
|
||||
RecurConfig,
|
||||
ScheduleEntity,
|
||||
} from 'loot-core/types/models';
|
||||
|
||||
import type { PayeeEntity, RecurConfig, ScheduleEntity } from '#types/models';
|
||||
import { Condition } from '../server/rules';
|
||||
|
||||
import * as monthUtils from './months';
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
category: Maintenance
|
||||
authors: [MatissJanis]
|
||||
---
|
||||
|
||||
Publish loot-core package and rename it to "@actual-app/core"
|
||||
@@ -23,11 +23,11 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@actual-app/api@workspace:packages/api"
|
||||
dependencies:
|
||||
"@actual-app/crdt": "workspace:^"
|
||||
"@actual-app/core": "workspace:*"
|
||||
"@actual-app/crdt": "workspace:*"
|
||||
"@typescript/native-preview": "npm:^7.0.0-dev.20260309.1"
|
||||
better-sqlite3: "npm:^12.6.2"
|
||||
compare-versions: "npm:^6.1.1"
|
||||
loot-core: "workspace:^"
|
||||
node-fetch: "npm:^3.3.2"
|
||||
rollup-plugin-visualizer: "npm:^6.0.5"
|
||||
typescript-strict-plugin: "npm:^2.4.4"
|
||||
@@ -75,6 +75,64 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@actual-app/core@workspace:*, @actual-app/core@workspace:packages/loot-core":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@actual-app/core@workspace:packages/loot-core"
|
||||
dependencies:
|
||||
"@actual-app/crdt": "workspace:*"
|
||||
"@jlongster/sql.js": "npm:^1.6.7"
|
||||
"@reduxjs/toolkit": "npm:^2.11.2"
|
||||
"@rschedule/core": "npm:^1.5.0"
|
||||
"@rschedule/json-tools": "npm:^1.5.0"
|
||||
"@rschedule/standard-date-adapter": "npm:^1.5.0"
|
||||
"@swc/core": "npm:^1.15.11"
|
||||
"@types/adm-zip": "npm:^0.5.7"
|
||||
"@types/better-sqlite3": "npm:^7.6.13"
|
||||
"@types/emscripten": "npm:^1.41.5"
|
||||
"@types/jlongster__sql.js": "npm:@types/sql.js@latest"
|
||||
"@types/node": "npm:^22.19.10"
|
||||
"@types/pegjs": "npm:^0.10.6"
|
||||
"@typescript/native-preview": "npm:^7.0.0-dev.20260309.1"
|
||||
absurd-sql: "npm:0.0.54"
|
||||
adm-zip: "patch:adm-zip@npm%3A0.5.16#~/.yarn/patches/adm-zip-npm-0.5.16-4556fea098.patch"
|
||||
assert: "npm:^2.1.0"
|
||||
better-sqlite3: "npm:^12.6.2"
|
||||
browserify-zlib: "npm:^0.2.0"
|
||||
buffer: "npm:^6.0.3"
|
||||
cross-env: "npm:^10.1.0"
|
||||
csv-parse: "npm:^6.1.0"
|
||||
csv-stringify: "npm:^6.6.0"
|
||||
date-fns: "npm:^4.1.0"
|
||||
fake-indexeddb: "npm:^6.2.5"
|
||||
fast-check: "npm:4.5.3"
|
||||
handlebars: "npm:^4.7.8"
|
||||
i18next: "npm:^25.8.4"
|
||||
jest-diff: "npm:^30.2.0"
|
||||
jsverify: "npm:^0.8.4"
|
||||
lru-cache: "npm:^11.2.5"
|
||||
md5: "npm:^2.3.0"
|
||||
memoize-one: "npm:^6.0.0"
|
||||
mitt: "npm:^3.0.1"
|
||||
mockdate: "npm:^3.0.5"
|
||||
npm-run-all: "npm:^4.1.5"
|
||||
path-browserify: "npm:^1.0.1"
|
||||
peggy: "npm:5.0.6"
|
||||
promise-retry: "npm:^2.0.1"
|
||||
rollup-plugin-visualizer: "npm:^6.0.5"
|
||||
slash: "npm:5.1.0"
|
||||
stream-browserify: "npm:^3.0.0"
|
||||
ts-node: "npm:^10.9.2"
|
||||
typescript-strict-plugin: "npm:^2.4.4"
|
||||
ua-parser-js: "npm:^2.0.9"
|
||||
uuid: "npm:^13.0.0"
|
||||
vite: "npm:^7.3.1"
|
||||
vite-plugin-node-polyfills: "npm:^0.25.0"
|
||||
vite-plugin-peggy-loader: "npm:^2.0.1"
|
||||
vitest: "npm:^4.0.18"
|
||||
yargs: "npm:^18.0.0"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@actual-app/crdt@npm:2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "@actual-app/crdt@npm:2.1.0"
|
||||
@@ -86,7 +144,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actual-app/crdt@workspace:^, @actual-app/crdt@workspace:packages/crdt":
|
||||
"@actual-app/crdt@workspace:*, @actual-app/crdt@workspace:packages/crdt":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@actual-app/crdt@workspace:packages/crdt"
|
||||
dependencies:
|
||||
@@ -151,6 +209,7 @@ __metadata:
|
||||
resolution: "@actual-app/web@workspace:packages/desktop-client"
|
||||
dependencies:
|
||||
"@actual-app/components": "workspace:*"
|
||||
"@actual-app/core": "workspace:*"
|
||||
"@codemirror/autocomplete": "npm:^6.20.0"
|
||||
"@codemirror/lang-javascript": "npm:^6.2.4"
|
||||
"@codemirror/language": "npm:^6.12.1"
|
||||
@@ -193,7 +252,6 @@ __metadata:
|
||||
i18next-resources-to-backend: "npm:^1.2.1"
|
||||
jsdom: "npm:^27.4.0"
|
||||
lodash: "npm:^4.17.23"
|
||||
loot-core: "workspace:*"
|
||||
mdast-util-newline-to-break: "npm:^2.0.0"
|
||||
memoize-one: "npm:^6.0.0"
|
||||
pikaday: "npm:1.8.2"
|
||||
@@ -15101,6 +15159,7 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "desktop-electron@workspace:packages/desktop-electron"
|
||||
dependencies:
|
||||
"@actual-app/core": "workspace:*"
|
||||
"@actual-app/sync-server": "workspace:*"
|
||||
"@electron/notarize": "npm:3.1.1"
|
||||
"@electron/rebuild": "npm:4.0.2"
|
||||
@@ -15114,7 +15173,6 @@ __metadata:
|
||||
electron: "npm:39.2.7"
|
||||
electron-builder: "npm:26.4.0"
|
||||
fs-extra: "npm:^11.3.3"
|
||||
loot-core: "workspace:*"
|
||||
promise-retry: "npm:^2.0.1"
|
||||
typescript-strict-plugin: "npm:^2.4.4"
|
||||
languageName: unknown
|
||||
@@ -20566,64 +20624,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"loot-core@workspace:*, loot-core@workspace:^, loot-core@workspace:packages/loot-core":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "loot-core@workspace:packages/loot-core"
|
||||
dependencies:
|
||||
"@actual-app/crdt": "workspace:^"
|
||||
"@jlongster/sql.js": "npm:^1.6.7"
|
||||
"@reduxjs/toolkit": "npm:^2.11.2"
|
||||
"@rschedule/core": "npm:^1.5.0"
|
||||
"@rschedule/json-tools": "npm:^1.5.0"
|
||||
"@rschedule/standard-date-adapter": "npm:^1.5.0"
|
||||
"@swc/core": "npm:^1.15.11"
|
||||
"@types/adm-zip": "npm:^0.5.7"
|
||||
"@types/better-sqlite3": "npm:^7.6.13"
|
||||
"@types/emscripten": "npm:^1.41.5"
|
||||
"@types/jlongster__sql.js": "npm:@types/sql.js@latest"
|
||||
"@types/node": "npm:^22.19.10"
|
||||
"@types/pegjs": "npm:^0.10.6"
|
||||
"@typescript/native-preview": "npm:^7.0.0-dev.20260309.1"
|
||||
absurd-sql: "npm:0.0.54"
|
||||
adm-zip: "patch:adm-zip@npm%3A0.5.16#~/.yarn/patches/adm-zip-npm-0.5.16-4556fea098.patch"
|
||||
assert: "npm:^2.1.0"
|
||||
better-sqlite3: "npm:^12.6.2"
|
||||
browserify-zlib: "npm:^0.2.0"
|
||||
buffer: "npm:^6.0.3"
|
||||
cross-env: "npm:^10.1.0"
|
||||
csv-parse: "npm:^6.1.0"
|
||||
csv-stringify: "npm:^6.6.0"
|
||||
date-fns: "npm:^4.1.0"
|
||||
fake-indexeddb: "npm:^6.2.5"
|
||||
fast-check: "npm:4.5.3"
|
||||
handlebars: "npm:^4.7.8"
|
||||
i18next: "npm:^25.8.4"
|
||||
jest-diff: "npm:^30.2.0"
|
||||
jsverify: "npm:^0.8.4"
|
||||
lru-cache: "npm:^11.2.5"
|
||||
md5: "npm:^2.3.0"
|
||||
memoize-one: "npm:^6.0.0"
|
||||
mitt: "npm:^3.0.1"
|
||||
mockdate: "npm:^3.0.5"
|
||||
npm-run-all: "npm:^4.1.5"
|
||||
path-browserify: "npm:^1.0.1"
|
||||
peggy: "npm:5.0.6"
|
||||
promise-retry: "npm:^2.0.1"
|
||||
rollup-plugin-visualizer: "npm:^6.0.5"
|
||||
slash: "npm:5.1.0"
|
||||
stream-browserify: "npm:^3.0.0"
|
||||
ts-node: "npm:^10.9.2"
|
||||
typescript-strict-plugin: "npm:^2.4.4"
|
||||
ua-parser-js: "npm:^2.0.9"
|
||||
uuid: "npm:^13.0.0"
|
||||
vite: "npm:^7.3.1"
|
||||
vite-plugin-node-polyfills: "npm:^0.25.0"
|
||||
vite-plugin-peggy-loader: "npm:^2.0.1"
|
||||
vitest: "npm:^4.0.18"
|
||||
yargs: "npm:^18.0.0"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"loupe@npm:^3.1.0, loupe@npm:^3.1.4, loupe@npm:^3.2.1":
|
||||
version: 3.2.1
|
||||
resolution: "loupe@npm:3.2.1"
|
||||
|
||||
Reference in New Issue
Block a user