mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 12:28:42 +00:00
## **Type**
enhancement
___
## **Description**
- Introduced a custom DMG packaging solution `@affine/appdmg-patch` for Electron applications.
- Implemented a new TypeScript class `MakerDmg` to handle the custom packaging logic, including support for custom backgrounds, icons, and app positioning within the DMG.
- Updated Electron Forge configuration to use the new `@affine/appdmg-patch` package instead of `@electron-forge/maker-dmg`.
- Adjusted package dependencies in `packages/frontend/electron/package.json`, adding `@affine/appdmg-patch` and removing `@electron-forge/maker-dmg`.
___
## **Changes walkthrough**
<table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement
</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>index.ts</strong><dd><code>Implement Custom DMG Packaging Logic</code> </dd></summary>
<hr>
tools/appdmg-patch/index.ts
<li>Introduced a new class <code>MakerDmg</code> extending <code>MakerBase</code> with support for <br>custom DMG packaging.<br> <li> Implemented custom DMG packaging logic including background, icon, and <br>app positioning.<br> <li> Added support for custom <code>contents</code> configuration to define the DMG <br>layout.<br>
</details>
</td>
<td><a href="https:/toeverything/AFFiNE/pull/5922/files#diff-96a537c04a2a740dca542688b3e6a65c67e6cf339b146bf0a9c49008ad58ea77">+80/-0</a> </td>
</tr>
</table></td></tr><tr><td><strong>Configuration changes
</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>forge.config.mjs</strong><dd><code>Update Electron Forge Configuration for Custom DMG Packaging</code></dd></summary>
<hr>
packages/frontend/electron/forge.config.mjs
<li>Replaced <code>@electron-forge/maker-dmg</code> with <code>@affine/appdmg-patch</code> in the <br>makers configuration.<br> <li> Adjusted DMG icon size and background configuration.<br>
</details>
</td>
<td><a href="https:/toeverything/AFFiNE/pull/5922/files#diff-bd3343a702deabb8f5f6f77e34fbc215615538875f59b68d82612c0f5ed532a3">+2/-3</a> </td>
</tr>
<tr>
<td>
<details>
<summary><strong>package.json</strong><dd><code>Introduce Package Configuration for Custom DMG Packaging</code> </dd></summary>
<hr>
tools/appdmg-patch/package.json
<li>Created a new package <code>@affine/appdmg-patch</code> with necessary dependencies <br>for custom DMG packaging.<br>
</details>
</td>
<td><a href="https:/toeverything/AFFiNE/pull/5922/files#diff-395b189951512e67d55b0abc55a167f014f239f608ec5b180f9c7d48e1ea9e8b">+16/-0</a> </td>
</tr>
</table></td></tr><tr><td><strong>Dependencies
</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>package.json</strong><dd><code>Update Package Dependencies for Electron Frontend</code> </dd></summary>
<hr>
packages/frontend/electron/package.json
<li>Added <code>@affine/appdmg-patch</code> to <code>devDependencies</code>.<br> <li> Removed <code>@electron-forge/maker-dmg</code> from <code>devDependencies</code>.<br>
</details>
</td>
<td><a href="https:/toeverything/AFFiNE/pull/5922/files#diff-37323e9da5e4b1606abb6eb8e5ff1516ae5fce925bceaafeeade61bd80c0b62d">+1/-1</a> </td>
</tr>
</table></td></tr></tr></tbody></table>
___
> ✨ **PR-Agent usage**:
>Comment `/help` on the PR to get a list of all available PR-Agent tools and their descriptions
178 lines
7.8 KiB
JSON
178 lines
7.8 KiB
JSON
{
|
|
"name": "@affine/monorepo",
|
|
"version": "0.12.0",
|
|
"private": true,
|
|
"author": "toeverything",
|
|
"license": "MIT",
|
|
"workspaces": [
|
|
".",
|
|
"packages/*/*",
|
|
"tools/*",
|
|
"docs/reference",
|
|
"tools/@types/*",
|
|
"tests/*",
|
|
"tests/affine-legacy/*"
|
|
],
|
|
"engines": {
|
|
"node": "<21.0.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "dev-core",
|
|
"dev:electron": "yarn workspace @affine/electron dev",
|
|
"build": "yarn nx build @affine/core",
|
|
"build:electron": "yarn nx build @affine/electron",
|
|
"build:storage": "yarn nx run-many -t build -p @affine/storage",
|
|
"build:storybook": "yarn nx build @affine/storybook",
|
|
"start:web-static": "yarn workspace @affine/core static-server",
|
|
"start:storybook": "yarn exec serve tests/storybook/storybook-static -l 6006",
|
|
"serve:test-static": "yarn exec serve tests/fixtures --cors -p 8081",
|
|
"lint:eslint": "eslint . --ext .js,mjs,.ts,.tsx --cache",
|
|
"lint:eslint:fix": "yarn lint:eslint --fix",
|
|
"lint:prettier": "prettier --ignore-unknown --cache --check .",
|
|
"lint:prettier:fix": "prettier --ignore-unknown --cache --write .",
|
|
"lint:ox": "oxlint --import-plugin --deny-warnings -D correctness -D nursery -D prefer-array-some -D no-useless-promise-resolve-reject -D perf -A no-undef -A consistent-type-exports -A default -A named -A ban-ts-comment -A export",
|
|
"lint": "yarn lint:eslint && yarn lint:prettier",
|
|
"lint:fix": "yarn lint:eslint:fix && yarn lint:prettier:fix",
|
|
"test": "vitest --run",
|
|
"test:ui": "vitest --ui",
|
|
"test:coverage": "vitest run --coverage",
|
|
"typecheck": "tsc -b tsconfig.json",
|
|
"postinstall": "node ./scripts/check-version.mjs && yarn i18n-codegen gen && yarn husky install",
|
|
"prepare": "husky"
|
|
},
|
|
"lint-staged": {
|
|
"*": "prettier --write --ignore-unknown --cache",
|
|
"*.{ts,tsx,mjs,js,jsx}": [
|
|
"prettier --ignore-unknown --write",
|
|
"eslint --cache --fix"
|
|
],
|
|
"*.toml": [
|
|
"taplo format"
|
|
],
|
|
"*.rs": [
|
|
"cargo fmt --"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@affine-test/kit": "workspace:*",
|
|
"@affine/cli": "workspace:*",
|
|
"@commitlint/cli": "^19.0.0",
|
|
"@commitlint/config-conventional": "^18.6.2",
|
|
"@faker-js/faker": "^8.4.1",
|
|
"@istanbuljs/schema": "^0.1.3",
|
|
"@magic-works/i18n-codegen": "^0.5.0",
|
|
"@nx/vite": "18.0.4",
|
|
"@playwright/test": "^1.41.2",
|
|
"@taplo/cli": "^0.7.0",
|
|
"@testing-library/react": "^14.2.1",
|
|
"@toeverything/infra": "workspace:*",
|
|
"@types/affine__env": "workspace:*",
|
|
"@types/eslint": "^8.56.3",
|
|
"@types/node": "^20.11.20",
|
|
"@typescript-eslint/eslint-plugin": "^7.0.2",
|
|
"@typescript-eslint/parser": "^7.0.2",
|
|
"@vanilla-extract/vite-plugin": "^4.0.4",
|
|
"@vanilla-extract/webpack-plugin": "^2.3.6",
|
|
"@vitejs/plugin-react-swc": "^3.6.0",
|
|
"@vitest/coverage-istanbul": "1.3.1",
|
|
"@vitest/ui": "1.3.1",
|
|
"electron": "^29.0.1",
|
|
"eslint": "^8.56.0",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"eslint-plugin-i": "^2.29.1",
|
|
"eslint-plugin-react": "^7.33.2",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"eslint-plugin-simple-import-sort": "^12.0.0",
|
|
"eslint-plugin-sonarjs": "^0.24.0",
|
|
"eslint-plugin-unicorn": "^51.0.1",
|
|
"eslint-plugin-unused-imports": "^3.1.0",
|
|
"eslint-plugin-vue": "^9.22.0",
|
|
"fake-indexeddb": "5.0.2",
|
|
"happy-dom": "^13.4.1",
|
|
"husky": "^9.0.11",
|
|
"lint-staged": "^15.2.2",
|
|
"msw": "^2.2.1",
|
|
"nanoid": "^5.0.6",
|
|
"nx": "^18.0.4",
|
|
"nyc": "^15.1.0",
|
|
"oxlint": "0.0.22",
|
|
"prettier": "^3.2.5",
|
|
"semver": "^7.6.0",
|
|
"serve": "^14.2.1",
|
|
"string-width": "^7.1.0",
|
|
"ts-node": "^10.9.2",
|
|
"typescript": "^5.3.3",
|
|
"vite": "^5.1.4",
|
|
"vite-plugin-istanbul": "^5.0.0",
|
|
"vite-plugin-static-copy": "^1.0.1",
|
|
"vite-tsconfig-paths": "^4.3.1",
|
|
"vitest": "1.3.1",
|
|
"vitest-fetch-mock": "^0.2.2",
|
|
"vitest-mock-extended": "^1.3.1"
|
|
},
|
|
"packageManager": "yarn@4.1.0",
|
|
"resolutions": {
|
|
"vite": "^5.0.6",
|
|
"array-buffer-byte-length": "npm:@nolyfill/array-buffer-byte-length@latest",
|
|
"array-includes": "npm:@nolyfill/array-includes@latest",
|
|
"array.prototype.flat": "npm:@nolyfill/array.prototype.flat@latest",
|
|
"array.prototype.flatmap": "npm:@nolyfill/array.prototype.flatmap@latest",
|
|
"array.prototype.tosorted": "npm:@nolyfill/array.prototype.tosorted@latest",
|
|
"arraybuffer.prototype.slice": "npm:@nolyfill/arraybuffer.prototype.slice@latest",
|
|
"asynciterator.prototype": "npm:@nolyfill/asynciterator.prototype@latest",
|
|
"available-typed-arrays": "npm:@nolyfill/available-typed-arrays@latest",
|
|
"deep-equal": "npm:@nolyfill/deep-equal@latest",
|
|
"define-properties": "npm:@nolyfill/define-properties@latest",
|
|
"es-iterator-helpers": "npm:@nolyfill/es-iterator-helpers@latest",
|
|
"es-set-tostringtag": "npm:@nolyfill/es-set-tostringtag@latest",
|
|
"function-bind": "npm:@nolyfill/function-bind@latest",
|
|
"function.prototype.name": "npm:@nolyfill/function.prototype.name@latest",
|
|
"get-symbol-description": "npm:@nolyfill/get-symbol-description@latest",
|
|
"globalthis": "npm:@nolyfill/globalthis@latest",
|
|
"gopd": "npm:@nolyfill/gopd@latest",
|
|
"has": "npm:@nolyfill/has@latest",
|
|
"has-property-descriptors": "npm:@nolyfill/has-property-descriptors@latest",
|
|
"has-proto": "npm:@nolyfill/has-proto@latest",
|
|
"has-symbols": "npm:@nolyfill/has-symbols@latest",
|
|
"has-tostringtag": "npm:@nolyfill/has-tostringtag@latest",
|
|
"is-arguments": "npm:@nolyfill/is-arguments@latest",
|
|
"is-array-buffer": "npm:@nolyfill/is-array-buffer@latest",
|
|
"is-date-object": "npm:@nolyfill/is-date-object@latest",
|
|
"is-generator-function": "npm:@nolyfill/is-generator-function@latest",
|
|
"is-regex": "npm:@nolyfill/is-regex@latest",
|
|
"is-shared-array-buffer": "npm:@nolyfill/is-shared-array-buffer@latest",
|
|
"is-string": "npm:@nolyfill/is-string@latest",
|
|
"is-symbol": "npm:@nolyfill/is-symbol@latest",
|
|
"is-weakref": "npm:@nolyfill/is-weakref@latest",
|
|
"iterator.prototype": "npm:@nolyfill/iterator.prototype@latest",
|
|
"object-is": "npm:@nolyfill/object-is@latest",
|
|
"object-keys": "npm:@nolyfill/object-keys@latest",
|
|
"object.assign": "npm:@nolyfill/object.assign@latest",
|
|
"object.entries": "npm:@nolyfill/object.entries@latest",
|
|
"object.fromentries": "npm:@nolyfill/object.fromentries@latest",
|
|
"object.hasown": "npm:@nolyfill/object.hasown@latest",
|
|
"object.values": "npm:@nolyfill/object.values@latest",
|
|
"reflect.getprototypeof": "npm:@nolyfill/reflect.getprototypeof@latest",
|
|
"regexp.prototype.flags": "npm:@nolyfill/regexp.prototype.flags@latest",
|
|
"safe-array-concat": "npm:@nolyfill/safe-array-concat@latest",
|
|
"safe-regex-test": "npm:@nolyfill/safe-regex-test@latest",
|
|
"side-channel": "npm:@nolyfill/side-channel@latest",
|
|
"string.prototype.matchall": "npm:@nolyfill/string.prototype.matchall@latest",
|
|
"string.prototype.trim": "npm:@nolyfill/string.prototype.trim@latest",
|
|
"string.prototype.trimend": "npm:@nolyfill/string.prototype.trimend@latest",
|
|
"string.prototype.trimstart": "npm:@nolyfill/string.prototype.trimstart@latest",
|
|
"typed-array-buffer": "npm:@nolyfill/typed-array-buffer@latest",
|
|
"typed-array-byte-length": "npm:@nolyfill/typed-array-byte-length@latest",
|
|
"typed-array-byte-offset": "npm:@nolyfill/typed-array-byte-offset@latest",
|
|
"typed-array-length": "npm:@nolyfill/typed-array-length@latest",
|
|
"unbox-primitive": "npm:@nolyfill/unbox-primitive@latest",
|
|
"which-boxed-primitive": "npm:@nolyfill/which-boxed-primitive@latest",
|
|
"which-typed-array": "npm:@nolyfill/which-typed-array@latest",
|
|
"next-auth@^4.24.5": "patch:next-auth@npm%3A4.24.5#~/.yarn/patches/next-auth-npm-4.24.5-8428e11927.patch",
|
|
"@reforged/maker-appimage/@electron-forge/maker-base": "7.3.0",
|
|
"macos-alias": "npm:@napi-rs/macos-alias@latest",
|
|
"fs-xattr": "npm:@napi-rs/xattr@latest",
|
|
"@radix-ui/react-dialog": "npm:@radix-ui/react-dialog@latest"
|
|
}
|
|
}
|