* [AI] Add per-package tsconfigs and typescript-strict-plugin for typecheck Co-authored-by: Cursor <cursoragent@cursor.com> * Update TypeScript configuration across multiple packages to correct plugin path key from "path" to "paths" and add reference to process-worker typings in index.electron.ts. * Remove reference to process-worker typings in index.electron.ts and add new process-worker typings file for global Process augmentation. * Refactor TypeScript build configurations across multiple packages by removing tsconfig.dist.json files and updating build scripts to use default TypeScript compilation. Adjusted compiler options to target ES2021 and enable declaration generation. * Update TypeScript configuration in api package to refine include and exclude patterns for better file management. * Update build script in api package to ensure migration SQL files are copied to the correct directory by creating the destination folder if it doesn't exist. * Update TypeScript configurations in crdt and desktop-electron packages to refine include and exclude patterns for improved file management. * Update TypeScript dependencies across multiple packages to include typescript-strict-plugin for enhanced type checking and maintain consistency in package.json files. --------- Co-authored-by: Cursor <cursoragent@cursor.com>
@actual-app/crdt
This package contains the core CRDT logic that enables Actual's syncing. It is shared between the client and server. We may or may not follow semver when updating this package; any usage of it outside Actual is undocumented and at your own risk.
protobuf
We use protobuf to encode messages as binary data to send across the network.
Generating protobuf
The protobuf is generated by using the protoc compiler.
This can be installed by downloading one of the pre-built binaries and placing it in your $PATH. The version used to build the current protobuf is v3.20.1. You'll also need to download the latest version of protoc-gen-js. For convenience, you can put both of these binaries in ./bin.
Once installed, the protobuf can be generated by running ./bin/generate-proto.
However there is one very important thing to remember! The default output includes this near the top:
var global = (function() { return this || window || global || self || Function('return this')(); }).call(null);
This will not work with our CSP directives. You must manually modify this to this:
var global = globalThis;