mirror of
https://github.com/actualbudget/actual.git
synced 2026-04-30 10:14:53 -05:00
* Add ESM loader support and update sync-server modules * Update TypeScript configuration and fix bank file import filter in sync-server * Remove deprecated loader and register files, update TypeScript configuration to use ES2021, and add a new script for automatically adding import extensions to JavaScript files. * Update test script in package.json to include a custom loader and clean up import extensions script by removing unused 'stat' import. * feat: Add warning for unresolved imports Co-authored-by: matiss <matiss@mja.lv> * [autofix.ci] apply automated fixes * Remove unused 'import/extensions' rule from ESLint configuration * Refactor import statements in sync-server - Updated import path for migrations to remove file extension. - Added ESLint directive to ignore import extension rule for reset-password script. --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
117 lines
2.5 KiB
JavaScript
117 lines
2.5 KiB
JavaScript
import { v4 as uuidv4 } from 'uuid';
|
|
|
|
import { getAccountDb } from '../src/account-db';
|
|
|
|
export const up = async function () {
|
|
const accountDb = getAccountDb();
|
|
|
|
accountDb.transaction(() => {
|
|
accountDb.exec(
|
|
`
|
|
CREATE TABLE users
|
|
(id TEXT PRIMARY KEY,
|
|
user_name TEXT,
|
|
display_name TEXT,
|
|
role TEXT,
|
|
enabled INTEGER NOT NULL DEFAULT 1,
|
|
owner INTEGER NOT NULL DEFAULT 0);
|
|
|
|
CREATE TABLE user_access
|
|
(user_id TEXT,
|
|
file_id TEXT,
|
|
PRIMARY KEY (user_id, file_id),
|
|
FOREIGN KEY (user_id) REFERENCES users(id),
|
|
FOREIGN KEY (file_id) REFERENCES files(id)
|
|
);
|
|
|
|
ALTER TABLE files
|
|
ADD COLUMN owner TEXT;
|
|
|
|
ALTER TABLE sessions
|
|
ADD COLUMN expires_at INTEGER;
|
|
|
|
ALTER TABLE sessions
|
|
ADD COLUMN user_id TEXT;
|
|
|
|
ALTER TABLE sessions
|
|
ADD COLUMN auth_method TEXT;
|
|
`,
|
|
);
|
|
|
|
const userId = uuidv4();
|
|
accountDb.mutate(
|
|
'INSERT INTO users (id, user_name, display_name, enabled, owner, role) VALUES (?, ?, ?, 1, 1, ?)',
|
|
[userId, '', '', 'ADMIN'],
|
|
);
|
|
|
|
accountDb.mutate(
|
|
'UPDATE sessions SET user_id = ?, expires_at = ?, auth_method = ? WHERE auth_method IS NULL',
|
|
[userId, -1, 'password'],
|
|
);
|
|
});
|
|
};
|
|
|
|
export const down = async function () {
|
|
await getAccountDb().exec(
|
|
`
|
|
BEGIN TRANSACTION;
|
|
|
|
DROP TABLE IF EXISTS user_access;
|
|
|
|
CREATE TABLE sessions_backup (
|
|
token TEXT PRIMARY KEY
|
|
);
|
|
|
|
INSERT INTO sessions_backup (token)
|
|
SELECT token FROM sessions;
|
|
|
|
DROP TABLE sessions;
|
|
|
|
ALTER TABLE sessions_backup RENAME TO sessions;
|
|
|
|
CREATE TABLE files_backup (
|
|
id TEXT PRIMARY KEY,
|
|
group_id TEXT,
|
|
sync_version SMALLINT,
|
|
encrypt_meta TEXT,
|
|
encrypt_keyid TEXT,
|
|
encrypt_salt TEXT,
|
|
encrypt_test TEXT,
|
|
deleted BOOLEAN DEFAULT FALSE,
|
|
name TEXT
|
|
);
|
|
|
|
INSERT INTO files_backup (
|
|
id,
|
|
group_id,
|
|
sync_version,
|
|
encrypt_meta,
|
|
encrypt_keyid,
|
|
encrypt_salt,
|
|
encrypt_test,
|
|
deleted,
|
|
name
|
|
)
|
|
SELECT
|
|
id,
|
|
group_id,
|
|
sync_version,
|
|
encrypt_meta,
|
|
encrypt_keyid,
|
|
encrypt_salt,
|
|
encrypt_test,
|
|
deleted,
|
|
name
|
|
FROM files;
|
|
|
|
DROP TABLE files;
|
|
|
|
ALTER TABLE files_backup RENAME TO files;
|
|
|
|
DROP TABLE IF EXISTS users;
|
|
|
|
COMMIT;
|
|
`,
|
|
);
|
|
};
|