Skip to content

Commit

Permalink
merged with development branch
Browse files Browse the repository at this point in the history
  • Loading branch information
danielc-n committed Oct 23, 2024
2 parents 7e3b656 + 663811b commit fd466b3
Show file tree
Hide file tree
Showing 955 changed files with 56,855 additions and 32,976 deletions.
16 changes: 12 additions & 4 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,14 @@
"airbnb",
"next"
],
"ignorePatterns": [
"**/*.ts",
"**/*.tsx"
],
"rules": {
"react-hooks/exhaustive-deps": "off",
"jsx-a11y/no-static-element-interactions": "off",
"no-tabs": 0,
"@next/next/no-html-link-for-pages": "off",
"@next/next/no-img-element": "off",
"react/react-in-jsx-scope": "off",
Expand Down Expand Up @@ -95,7 +102,10 @@
"all"
],
"template-curly-spacing": "off",
"indent": "off"
"indent": [
"error",
2
]
},
"env": {
"browser": true,
Expand Down Expand Up @@ -146,9 +156,7 @@
"node": {
"extensions": [
".js",
".jsx",
".ts",
".tsx"
".jsx"
]
}
}
Expand Down
50 changes: 20 additions & 30 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# This workflow will do a clean install of node dependencies, build the source code, and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI
Expand All @@ -12,6 +12,7 @@ jobs:
runs-on: ubuntu-latest
env:
CI: false
NODE_OPTIONS: --max-old-space-size=4096
strategy:
matrix:
node-version: [18.20.3]
Expand All @@ -31,35 +32,26 @@ jobs:
- name: yarn install
run: yarn install

- name: set max memory allocation
run: export NODE_OPTIONS=-max_old_space_size=4096

# - name: Read version and commit sha
# run: |
# echo "::set-env name=HASH::$(echo $GITHUB_SHA | cut -c1-7)"
# echo "::set-env name=APP_VERSION::$(node -p -e "require('./package.json').version")"

# - name: Set artifact name
# run: echo "::set-env name=ARTIFACT_NAME::$(echo "Autographa-linux-x64-$APP_VERSION.deb")"

- name: package
id: package
run: |
yarn dist
- name: Cleanup artifacts
run: |
npx rimraf "dist/!(*.deb|*.AppImage|*.dmg)"
npx rimraf "dist/!(*.deb|*.AppImage|*.dmg|*.exe)"
- name: Upload artifacts
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: Scribe
path: dist
name: Scribe-${{ github.run_id }}-${{ github.sha }}
path: dist
overwrite: true

build-windows:
runs-on: ubuntu-latest
env:
CI: false
NODE_OPTIONS: --max-old-space-size=4096
strategy:
matrix:
node-version: [18.20.3]
Expand All @@ -77,9 +69,6 @@ jobs:
- name: set @bitregistry translation-help
run: yarn config set '@bit:registry' https://node.bit.dev

- name: set max memory allocation
run: export NODE_OPTIONS=-max_old_space_size=4096

- name: install dependencies
run: yarn install

Expand All @@ -97,15 +86,17 @@ jobs:
mkdir -p artifacts
mv dist/*.exe artifacts
- name: Upload artifacts
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: Scribe
path: artifacts

overwrite: true
# Commented the below code for getting the binaries build for windows and Ubuntu
build-mac:
runs-on: macos-latest
env:
CI: false
NODE_OPTIONS: --max-old-space-size=4096
strategy:
matrix:
node-version: [18.20.3]
Expand All @@ -119,6 +110,8 @@ jobs:
- run: |
node --version
yarn --version
- name: Increase file descriptor limit
run: sudo sysctl -w kern.maxfiles=10485760 && sudo sysctl -w kern.maxfilesperproc=1048576
- name: set @bitregistry translation-help
run: yarn config set '@bit:registry' https://node.bit.dev

Expand All @@ -137,11 +130,7 @@ jobs:
echo 'export CPPFLAGS="-I/opt/homebrew/opt/jpeg/include"' >> $HOME/.zprofile
echo 'export PKG_CONFIG_PATH="/opt/homebrew/opt/jpeg/lib/pkgconfig"' >> $HOME/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
/opt/homebrew/opt/python@3.12/bin/pip3 install setuptools
/opt/homebrew/opt/python@3.12/bin/pip3 install distutils
- name: set max memory allocation
run: export NODE_OPTIONS=-max_old_space_size=4096
brew install python-setuptools
- name: yarn install
run: yarn install
Expand All @@ -156,9 +145,10 @@ jobs:
- name: Cleanup artifacts
run: |
npx rimraf "dist/!(*.deb|*.AppImage|*.dmg)"
npx rimraf "dist/!(*.deb|*.AppImage|*.dmg|*.exe)"
- name: Upload artifacts
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: Scribe
path: dist
name: Scribe-Mac-${{ github.run_id }}-${{ github.sha }}
path: dist
overwrite: true
8 changes: 6 additions & 2 deletions .gitignore
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
/.pnp
.pnp.js
bower_components
/.expo

# next-on-netlify build output
out_functions/
out_publish/
/out
/release

# ignore db files
Autogrpha-DB/
Expand All @@ -21,6 +23,8 @@ Autogrpha-DB/
/app/**/*.map
/.next
.next
.yalc
yalc.lock

# testing
/coverage
Expand All @@ -34,7 +38,7 @@ Autogrpha-DB/
/build
/dist
.next/

.todo
# misc
.DS_Store
*.pem
Expand Down Expand Up @@ -73,4 +77,4 @@ coverage
.npm

# Optional REPL history
.node_repl_history
.node_repl_history
Empty file modified .yarnrc
100644 → 100755
Empty file.
Empty file modified __mocks__/electron.js
100644 → 100755
Empty file.
Empty file modified __mocks__/fileMock.js
100644 → 100755
Empty file.
Empty file modified __mocks__/styleMock.js
100644 → 100755
Empty file.
Empty file modified app/favicon.ico
100644 → 100755
Empty file.
Empty file modified app/head.js
100644 → 100755
Empty file.
Empty file modified app/home/layout.jsx
100644 → 100755
Empty file.
Empty file modified app/home/page.jsx
100644 → 100755
Empty file.
Empty file modified app/layout.js
100644 → 100755
Empty file.
Empty file modified app/loading.js
100644 → 100755
Empty file.
Empty file modified app/login/page.jsx
100644 → 100755
Empty file.
Empty file modified app/newproject/page.js
100644 → 100755
Empty file.
Empty file modified app/page.js
100644 → 100755
Empty file.
Empty file modified app/profile/page.js
100644 → 100755
Empty file.
Empty file modified app/projects/page.jsx
100644 → 100755
Empty file.
Empty file modified app/providers.js
100644 → 100755
Empty file.
Empty file modified app/resource/page.jsx
100644 → 100755
Empty file.
Empty file modified app/signup/page.jsx
100644 → 100755
Empty file.
Empty file modified app/sync/page.js
100644 → 100755
Empty file.
Empty file modified babel.config.js
100644 → 100755
Empty file.
Empty file modified docs/Architecture/Architecture.md
100644 → 100755
Empty file.
Empty file modified docs/Architecture/Autographacodestructure.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/Architecture/BirdEyeView.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/Architecture/CodeStructure.html
100644 → 100755
Empty file.
Empty file modified docs/Architecture/MajorComponents.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified docs/Architecture/codeStructure.txt
100644 → 100755
Empty file.
Empty file modified docs/Autographa-Diagram0.txt
100644 → 100755
Empty file.
2 changes: 1 addition & 1 deletion docs/AutographaRefactDraft1.md
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ are moved from navbar to translation folder

Sync
Paratext
Sign-in form splited from settings component to sync
Sign-in form splited from settings component to sync
helpers functionalities eg: paratextAdapter moved from helper folder to sync
Ahref component helps to handle external links

Expand Down
Empty file modified docs/AutographaTestDoc.md
100644 → 100755
Empty file.
Empty file modified docs/Autographa_refactorplans.md
100644 → 100755
Empty file.
Empty file modified docs/AutographaflowDiagramDraft.html
100644 → 100755
Empty file.
Empty file modified docs/Development/Offline-Merge.md
100644 → 100755
Empty file.
Empty file modified docs/Flows/sectionPlaceholder flow.pdf
100644 → 100755
Empty file.
Empty file modified e2e-tests/base.test.ts
100644 → 100755
Empty file.
Empty file modified e2e-tests/common.js
100644 → 100755
Empty file.
Empty file modified e2e-tests/myFixtures.ts
100644 → 100755
Empty file.
Empty file modified intro.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
93 changes: 87 additions & 6 deletions main/index.js
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,19 +1,84 @@
// Native
require('@electron/remote/main').initialize();
const { join } = require('path');
const path = require('path');
const fs = require('fs');
const { format } = require('url');
const { install } = require('@puppeteer/browsers');
const config = require("dotenv");
config.config();

// Packages
const { BrowserWindow, app, ipcMain } = require('electron');
const isDev = require('electron-is-dev');
// const isDev = require('electron-is-dev');
const prepareNext = require('electron-next');
const { autoUpdater } = require('electron-updater');

let mainWindow;
let browserPath;
function isDev() {
return process.argv[2] == '--dev';
}

async function setPermissions(chromePath) {
try {
fs.chmodSync(chromePath, '755');
} catch (err) {
console.error(`Failed to set permissions for ${chromePath}: `, err);
}
}

function getChromeCacheDir() {
const dataDir = app.getPath('appData');

const chromeDataDir = path.join(dataDir, 'chrome-cache');
const chromeDataDirFilePath = path.join(chromeDataDir, 'executablePath');

// Create the folder if it doesn't exist
try {
fs.accessSync(chromeDataDir);
} catch (err) {
// If the directory doesn't exist, create it
fs.mkdirSync(chromeDataDir, { recursive: true });
fs.appendFileSync(chromeDataDirFilePath, '', 'utf8');
console.log(`Created persistent Chrome data directory at: ${chromeDataDir}`);
}

return chromeDataDir;
}

async function verifyAndInstallChrome(version) {
// Get the persistent directory
const cacheDir = getChromeCacheDir();
const cacheDirFilePath = path.join(cacheDir, 'executablePath');

// Check if the browser is already installed

// fs.accessSync(cacheDirFilePath);
const data = fs.readFileSync(cacheDirFilePath, 'utf8');
if(data.trim() !== '') {
console.log(`Chrome version ${version} is already installed at '${data}'`);
browserPath = data;
return browserPath;
}
console.log(`Chrome version ${version} is not installed. Installing now...`);
await install({
cacheDir,
browser: 'chrome',
buildId: version,
}).then((res) => {
if (fs.existsSync(res.executablePath)) {
browserPath = res.executablePath;
fs.appendFileSync(cacheDirFilePath, res.executablePath, 'utf8');
console.log(`Chrome version ${version} has been installed to ${browserPath}.`);
}
setPermissions(browserPath);
}).catch((err) => {
throw new Error(`Failed to install Chrome version ${version} : ${err}`);
});
}

// Prepare the renderer once the app is ready
function createWindow() {
async function createWindow() {
mainWindow = new BrowserWindow({
width: 900,
height: 600,
Expand All @@ -23,22 +88,37 @@ function createWindow() {
webSecurity: false,
enableRemoteModule: true,
contextIsolation: false,
preload: join(__dirname, 'preload.js'),
preload: path.join(__dirname, 'preload.js'),
},
});
require('@electron/remote/main').enable(mainWindow.webContents);
const url = isDev
const url = isDev()
? 'http://localhost:8000'
: format({
pathname: join(__dirname, '../renderer/out/index.html'),
pathname: path.join(__dirname, '../renderer/out/index.html'),
protocol: 'file:',
slashes: true,
});

// useful line of code to debug puppet with the console in the app
// app.commandLine.appendSwitch('remote-debugging-port', '8000');

verifyAndInstallChrome('121.0.6167.85')
.catch(err => {
console.error(`Failed to verify or install Chrome: ${err.message}`);
});

mainWindow.loadURL(url);
autoUpdater.checkForUpdatesAndNotify();
}

ipcMain.handle('get-browser-path', async (event) => {
await verifyAndInstallChrome('121.0.6167.85').catch(err => {
console.error(`Failed to verify or install Chrome: ${err.message}`);
});
return browserPath;
});

// prevent multiple app window opening
const gotTheLock = app.requestSingleInstanceLock();
if (!gotTheLock) {
Expand Down Expand Up @@ -68,6 +148,7 @@ app.on('window-all-closed', () => {

app.on('activate', async () => {
if (mainWindow === null) {
await pie.initialize(app);
createWindow();
}
});
Expand Down
8 changes: 5 additions & 3 deletions main/preload.js
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
const { ipcRenderer } = require('electron');
const log = require('electron-log');
const fontList = require('font-list');
const { PdfGen } = require('jxl-pdf');
const puppeteer = require('puppeteer-core');

const _fonts = [];
const fetchFonts = async () => {
Expand All @@ -16,10 +18,10 @@ const fetchFonts = async () => {
};
fetchFonts();

// Since we disabled nodeIntegration we can reintroduce
// needed node functionality here
process.once('loaded', () => {
global.ipcRenderer = ipcRenderer;
global.puppeteer = puppeteer;
global.log = log;
global.PdfGenStatic = PdfGen;
global.fonts = _fonts;
});
});
Empty file modified netlify.toml
100644 → 100755
Empty file.
3 changes: 3 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
// const nodeExternals = require('webpack-node-externals');
const path = require('path');
const colors = require('tailwindcss/colors');
const TerserPlugin = require("terser-webpack-plugin");

const nextConfig = {
webpack: (config, { isServer }) => {
// Fixes npm packages that depend on `fs` module
if (!isServer) {
config.resolve.fallback.fs = false;
config.resolve.alias.canvas = false;
}

config.module.rules.push({
test: /\.md$/,
use: 'raw-loader',
Expand Down
Loading

0 comments on commit fd466b3

Please sign in to comment.