Skip to content

Commit 361b1f2

Browse files
committed
Add new files and update existing files
2 parents 468ba16 + 5f6c47f commit 361b1f2

File tree

91 files changed

+4980
-6199
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+4980
-6199
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"editor.tabSize": 2
2+
"editor.tabSize": 2,
3+
"svg.preview.background": "editor"
34
}

README.md

Lines changed: 139 additions & 129 deletions
Large diffs are not rendered by default.

__mocks__/styleMock.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module.exports = {}
2+

electron-builder miniguide.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
This is for future OverVue iteration groups to help in building out the application for github release
2+
3+
# Building Electron App with Electron-Builder
4+
5+
This guide provides instructions on how to use `electron-builder` to package and build your Electron app for different platforms.
6+
7+
## Prerequisites
8+
9+
- Node.js and npm installed on your system.
10+
- Project dependencies installed. Run `npm install` in the project root.
11+
12+
## Files notes
13+
14+
-the electron-builder.yml file holds the instructions for the electron-builder to config when building out the targets for mac,windows, and linux OSs
15+
-the 'main' path (in package.json) should be kept as "main": "./dist/electron/UnPackaged/electron-main.js", as this is the output main js after TypeScript compiles the code
16+
17+
## Building the App
18+
19+
**Build the Electron app**: Run the build script specified in your `package.json` file. The build script should look something like this: `"build": "quasar build -m electron"`. Run the build script with the command `npm run build`.
20+
21+
## Packaging the App for Different Platforms
22+
23+
After building the Electron app, then you can use `electron-builder` to package the app for different platforms:
24+
25+
- **Windows**: Run the command `npm run build:win` to package the app for Windows. This will create a `.exe` file in the `dist` directory.
26+
27+
- **macOS**: Run the command `npm run build:mac` to package the app for macOS. This will create a `.dmg` file in the `dist` directory.
28+
29+
- **Linux**: Run the command `npm run build:linux` to package the app for Linux. This will create an `AppImage` file in the `dist` directory.
30+
31+
## Releasing the App
32+
33+
After packaging the app, you can upload the packaged files to the releases section of your GitHub repository. Users can then download these files to install your Electron app on their respective platforms.

electron-builder.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
appId: com.electron.OverVue
2+
productName: OverVue 11.0
3+
directories:
4+
app: "./dist/electron/UnPackaged"
5+
mac:
6+
target: zip
7+
icon: "src-electron/icons/tileIconMac.icns"
8+
win:
9+
target: portable
10+
icon: "src-electron/icons/tileIconWin.ico"
11+
linux:
12+
target: AppImage
13+
icon: "src-electron/icons/tileIconLinux.png"

jest.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ module.exports = {
5353
'^pages/(.*)$': '<rootDir>/src/pages/$1',
5454
'^assets/(.*)$': '<rootDir>/src/assets/$1',
5555
'^boot/(.*)$': '<rootDir>/src/boot/$1',
56-
'.*css$': '@quasar/quasar-app-extension-testing-unit-jest/stub.css',
56+
'\\.(css)$': '<rootDir>/__mocks__/styleMock.js',
57+
'^@/(.*)$': '<rootDir>/src/$1',
5758
},
5859
preset: 'ts-jest',
5960
transform: {

package-lock.json

Lines changed: 1308 additions & 1219 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"name": "overvue",
3-
"version": "10.0.0",
3+
"version": "11.0.0",
44
"main": "dist/electron/UnPackaged/electron-main.js",
55
"description": "Vue Prototype DevTool",
66
"productName": "OverVue",
77
"cordovaId": "org.cordova.quasar.app",
8-
"author": "Team OverVue, Team Vuetiful, Team Vuelociraptors, TeamVueTopia, OverVue10.0",
8+
"author": "Team DejaVue",
99
"private": true,
1010
"bugs": {
1111
"url": "https://github.com/TeamOverVue/OverVue/issues"
@@ -23,7 +23,11 @@
2323
"test:unit:watch": "jest --watch",
2424
"test:unit:watchAll": "jest --watchAll",
2525
"serve:test:coverage": "quasar serve test/jest/coverage/lcov-report/ --port 8788",
26-
"concurrently:dev:jest": "concurrently \"quasar dev\" \"jest --watch\""
26+
"concurrently:dev:jest": "concurrently \"quasar dev\" \"jest --watch\"",
27+
"build:all": "npm run build && npm run build:win && npm run build:mac && npm run build:linux",
28+
"build:win": "electron-builder --win",
29+
"build:mac": "electron-builder --mac --universal",
30+
"build:linux": "electron-builder --linux"
2731
},
2832
"dependencies": {
2933
"@babel/preset-env": "^7.22.14",
@@ -42,12 +46,14 @@
4246
"core-js": "^3.21.1",
4347
"dotenv": "^16.0.0",
4448
"element-plus": "^2.2.16",
49+
"file-loader": "^6.2.0",
4550
"fs-extra": "^11.2.0",
4651
"http": "^0.0.1-security",
4752
"https": "^1.0.0",
4853
"jest": "^29.6.4",
4954
"jest-cli": "^29.6.4",
5055
"jest-environment-jsdom": "^29.6.4",
56+
"jest-serializer-vue": "^3.1.0",
5157
"localforage": "^1.10.0",
5258
"lodash.clonedeep": "^4.5.0",
5359
"lodash.isequal": "^4.5.0",
@@ -72,8 +78,7 @@
7278
"vue3-tree": "^0.11.0",
7379
"vued3tree": "^5.1.0",
7480
"vuedraggable": "^4.1.0",
75-
"vuetensils": "^0.13.2",
76-
"vuex": "^4.0.2"
81+
"vuetensils": "^0.13.2"
7782
},
7883
"devDependencies": {
7984
"@babel/eslint-parser": "^7.17.0",
@@ -99,6 +104,9 @@
99104
},
100105
"browser": {
101106
"crypto": false
107+
},
108+
"browser": {
109+
"crypto": false
102110
},
103111
"browserslist": [
104112
"last 10 Chrome versions",
@@ -111,9 +119,9 @@
111119
"last 10 iOS versions",
112120
"last 5 Opera versions"
113121
],
114-
"engines": {
115-
"node": ">= 16.13.0",
116-
"npm": ">= 8.1.0",
117-
"yarn": ">= 1.22.10"
118-
}
122+
"engines": {
123+
"node": ">= 16.13.0",
124+
"npm": ">= 8.1.0",
125+
"yarn": ">= 1.22.10"
126+
}
119127
}

package.json_notes.md

Lines changed: 72 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,76 @@
1-
## Disclaimer: These notes were created at the beginning of iteration to understand the codebase and may be inaccurate or outdated. 8/14/2023 OverVue 10.0
1+
## Disclaimer: These notes were created at the beginning of iteration to understand the codebase and may be inaccurate or outdated. 3/28/2024 OverVue 11.0
22

33
```json
44

55
"dependencies": {
6-
"@quasar/cli": "^1.3.2", // Quasar CLI tool that allows dev, build, etc. (uses webpack/vite under the hood)
7-
"@quasar/extras": "^1.12.5", // Material fonts, icons, designs, etc.
8-
"@ssthouse/vue3-tree-chart": "^0.2.3", // Current library (https://github.com/ssthouse/tree-chart) used to display the tree in Tree view, working to bring this to main view and make it interactive
9-
"@types/node": "^18.8.0", // Used to load all type definitions for TypeScript in node app
10-
"@typescript-eslint/eslint-plugin": "^5.36.2", // ESLint plugin that provides linting rules for TypeScript codebases
11-
"@typescript-eslint/parser": "^5.36.2", // ESLint parser that leverages TypeScript ESTree to allow ESLint to lint TypeScript source code
12-
"bootstrap": "^5.2.0", // Bootstrap, provides powerful components, designs, layouts, snippets, etc.
13-
"bootstrap-vue": "^2.22.0", // Bootstrap, but for Vue
14-
"core-js": "^3.21.1", // The standard library for JavaScript
15-
"dotenv": "^16.0.0", // Allows access of environment variables in .env file through process.env
16-
"electron-deeplink": "^1.0.10", // Sets the default handler for a given protocol (deep link) in Electron apps (need to understand how Electron works for this)
17-
"element-plus": "^2.2.16", // Vue 3 component library
18-
"fs-extra": "^10.0.0", // Replaces 'fs' with extra fs methods, fs methods now return promises if callback isn't passed
19-
"http": "^0.0.1-security", // Docs seem to point towards this being unnecessary and potentially dangerous, http is built in to Node
20-
"https": "^1.0.0", // Not a lot of information on this either, not sure if necessary, might be built in
21-
"jest-cli": "^27.5.1", // CLI tool for running jest commands
22-
"localforage": "^1.10.0", // Improves offline web app experience by providing localStorage-esque async storage
23-
"lodash.clonedeep": "^4.5.0", // cloneDeep method (https://www.geeksforgeeks.org/lodash-_-clonedeep-method)
24-
"lodash.isequal": "^4.5.0", // isEqual method (https://www.geeksforgeeks.org/lodash-_-isequal-method/), performs deep comparison
25-
"lodash.throttle": "^4.1.1", // throttle method (https://www.geeksforgeeks.org/lodash-_-throttle-method/) to create a throttle-able function
26-
"mousetrap": "^1.6.5", // for handling keyboard shortcuts (keypress event handling)
27-
"net": "^1.0.2", // Globalizes the "net" module functions for convenience...? (https://github.com/sleeplessinc/net) it's like 3 lines of code and 1 line of testing.. not sure what it's used for
28-
"node-gyp": "^8.4.1", // CLI tool for compiling native add-on modules (none of the build commands seem to be used in package.json scripts)
29-
"pinia": "^2.0.23", // Store library for Vue, allowing for sharing of state
30-
"prismjs": "^1.27.0", // Syntax highlighting library (highlights code?)
31-
"quasar": "^2.5.5", // Vue framework package that helps deploy cross-platform (SPA, SSR, PWA, Electron, etc.) with one codebase
32-
"quasar-dotenv": "^1.0.5", // Wraps dotenv for Quasar runtime to access process.env
33-
"typescript": "^4.8.3", // Language that adds optional static typing to JavaScript, compiles to JavaScript
34-
"vue": "^3.2.31", // JavaScript framework
35-
"vue-accessible-color-picker": "^4.0.3", // Color picker component
36-
"vue-draggable-resizable": "^2.3.0", // Vue2 Component for draggable and resizable elements
37-
"vue-loader": "^17.0.0", // Webpack loader for Vue Single-File Components
38-
"vue-multiselect": "^3.0.0-alpha.2", // Multiselect component
39-
"vue-prism-editor": "^2.0.0-alpha.2", // Simple code editor (used in CodeSnippet.vue)
40-
"vue-router": "4.0.13", // Routing library
41-
"vue-sfc-parser": "^0.1.2", // Vue.js single file component parser for static analysis (seems like it was used for a feature that was being implemented, but not finished) (used in extractor.js)
42-
"vue3-draggable-resizable": "^1.6.4", // Draggable and resizable component for Vue 3 (being imported in Canvas.vue, but not used. May have been transitioning to this component but not implemented)
43-
"vue3-tree": "^0.11.0", // Tree viewer? Doesn't seem to be used, not much documentation
44-
"vued3tree": "^5.1.0", // Different tree viewer based on D3 layout, also doesn't seem to be used
45-
"vuedraggable": "^4.1.0", // 3rd Draggable element library, doesn't seem to be used
46-
"vuex": "^4.0.2" // Old store/state management library, seems to be mostly just in comments or unused, but is in some tests and ExportMenu, ExportMenuOptions, CodeSnippet, so not sure if safe to remove
47-
},
48-
"devDependencies": {
49-
"@babel/eslint-parser": "^7.17.0", // Linting for all valid babel code
50-
"@pinia/testing": "^0.0.14", // Testing module for pinia
51-
"@quasar/app-webpack": "^3.3.3", // Not a lot of documentation on this
52-
"@quasar/quasar-app-extension-testing-unit-jest": "^3.0.0-alpha.7", // Quasar and Jest integration for both JS and TS
53-
"@vue/devtools": "^6.0.12", // Vue Dev Tools
54-
"@vue/test-utils": "^2.0.0-rc.18", // Component testing utils for Vue 3
55-
"@vue/tsconfig": "^0.1.3", // tsconfig (typescript configurations) for Vue
56-
"@vue/vue3-jest": "^27.0.0-alpha.4", // Jest transformer for Vue Single File Components
57-
"electron": "^17.4.10", // Electron framework - allows creation of desktop applications
58-
"electron-builder": "^23.0.2",
59-
"electron-is-dev": "^2.0.0",
60-
"electron-packager": "^15.4.0",
61-
"eslint": "^8.23.0", // ESLint configs
62-
"eslint-config-prettier": "^8.3.0",
63-
"eslint-plugin-jest": "^26.1.1",
64-
"eslint-plugin-vue": "^8.4.1",
65-
"eslint-webpack-plugin": "^3.1.1"
66-
},
6+
"@babel/preset-env": "^7.22.14", // A Babel preset that allows you to use the latest JavaScript features
7+
"@he-tree/vue": "^2.4.2", // A Vue.js component for tree structure
8+
"@overvue/vue3-tree-chart": "^0.7.6", // A Vue 3 component for creating tree charts
9+
"@quasar/app-webpack": "^3.12.4", // Quasar's Webpack configuration for building apps
10+
"@quasar/cli": "^2.4.0", // Quasar's command line interface
11+
"@quasar/extras": "^1.16.9", // Extra resources for Quasar apps (fonts, icons)
12+
"@ssthouse/vue3-tree-chart": "^0.2.3", // Another Vue 3 component for creating tree charts
13+
"@types/node": "^20.11.25", // TypeScript definitions for Node.js
14+
"@typescript-eslint/eslint-plugin": "^7.1.1", // ESLint plugin for TypeScript
15+
"@typescript-eslint/parser": "^7.1.1", // The parser that allows ESLint to lint TypeScript code
16+
"babel-jest": "^29.6.4", // A Jest plugin to use Babel for transformation
17+
"bootstrap": "^5.2.0", // The Bootstrap framework
18+
"bootstrap-vue": "^2.22.0", // Bootstrap for Vue.js
19+
"core-js": "^3.21.1", // Modular standard library for JavaScript, includes polyfills
20+
"dotenv": "^16.0.0", // Loads environment variables from a .env file
21+
"element-plus": "^2.2.16", // A Vue 3.0 based component library
22+
"file-loader": "^6.2.0", // A loader for webpack which can load file as a url
23+
"fs-extra": "^11.2.0", // Extra methods for the fs (File System) module
24+
"http": "^0.0.1-security", // HTTP networking module
25+
"https": "^1.0.0", // HTTPS networking module
26+
"jest": "^29.6.4", // JavaScript testing framework
27+
"jest-cli": "^29.6.4", // The command line interface for Jest
28+
"jest-environment-jsdom": "^29.6.4", // Jest environment for JSDOM
29+
"jest-serializer-vue": "^3.1.0", // Vue snapshot serializer for Jest
30+
"localforage": "^1.10.0", // Offline storage, improved APIs for localStorage, IndexedDB and WebSQL
31+
"lodash.clonedeep": "^4.5.0", // Lodash function for deep cloning objects
32+
"lodash.isequal": "^4.5.0", // Lodash function for deep comparison of objects
33+
"lodash.throttle": "^4.1.1", // Lodash function for throttling function calls
34+
"mousetrap": "^1.6.5", // Keyboard shortcut library
35+
"net": "^1.0.2", // Networking module
36+
"node-gyp": "^10.0.1", // Node.js native addon build tool
37+
"pinia": "^2.0.23", // State management for Vue using the composition API
38+
"prismjs": "^1.27.0", // Lightweight, extensible syntax highlighter
39+
"quasar": "^2.14.6", // High performance Material Design component suite with builders for SPA, SSR, PWA, Mobile (Cordova & Capacitor), Desktop (Electron) and Browser extensions
40+
"quasar-dotenv": "^1.0.5", // Quasar App Extension for dotenv
41+
"ts-jest": "^29.1.1", // TypeScript preprocessor with source map support for Jest
42+
"typescript": "^5.4.2", // TypeScript language
43+
"vue": "^3.2.31", // Vue.js framework
44+
"vue-accessible-color-picker": "^5.0.1", // An accessible color picker component for Vue
45+
"vue-draggable-resizable": "^2.3.0", // A Vue component for draggable and resizable elements
46+
"vue-loader": "^17.0.0", // Webpack loader for Vue.js components
47+
"vue-multiselect": "^3.0.0-beta.3", // A custom select/multiselect component for Vue
48+
"vue-prism-editor": "^2.0.0-alpha.2", // A Vue component for an editable code snippet with syntax highlighting
49+
"vue-router": "^4.3.0", // The official router for Vue.js
50+
"vue3-draggable-resizable": "^1.6.4", // A Vue 3 component for draggable and resizable elements
51+
"vue3-tree": "^0.11.0", // A Vue 3 component for tree structure
52+
"vued3tree": "^5.1.0", // A Vue component for tree structure using D3
53+
"vuedraggable": "^4.1.0", // Vue directive for draggable elements
54+
"vuetensils": "^0.13.2" // A lightweight Vue component library for creating accessible, responsive, and reusable components
55+
},
56+
"devDependencies": {
57+
"@babel/eslint-parser": "^7.17.0", // Babel parser for ESLint
58+
"@babel/preset-typescript": "^7.22.11", // Babel preset for TypeScript
59+
"@electron/packager": "^18.1.3", // Customizes and packages your Electron app
60+
"@pinia/testing": "^0.1.3", // Testing utilities for Pinia
61+
"@quasar/quasar-app-extension-testing-unit-jest": "^3.0.0-beta.7", // Quasar app extension for unit testing with Jest
62+
"@vue/cli-plugin-babel": "^5.0.8", // Babel plugin for Vue CLI
63+
"@vue/devtools": "^7.0.16", // Browser devtools extension for debugging Vue.js applications
64+
"@vue/test-utils": "^2.0.0-rc.18", // Utilities for testing Vue components
65+
"@vue/tsconfig": "^0.5.1", // Shared TypeScript config for Vue projects
66+
"@vue/vue3-jest": "^29.2.5", // Jest integration for Vue 3
67+
"electron": "^29.1.1", // Framework for creating native applications with web technologies
68+
"electron-is-dev": "^3.0.1", // Check if Electron is running in development
69+
"eslint": "^8.23.0", // JavaScript and JSX linter
70+
"eslint-config-prettier": "^9.1.0", // Config to disable ESLint rules that conflict with Prettier
71+
"eslint-plugin-jest": "^27.9.0", // ESLint rules for Jest
72+
"eslint-plugin-vue": "^9.22.0", // ESLint plugin for Vue.js
73+
"eslint-webpack-plugin": "^4.0.1", // ESLint plugin for webpack
74+
"install": "^0.13.0", // A package to help with installing Node.js modules
75+
"npm": "^10.5.0" // Node Package Manager
76+
}

0 commit comments

Comments
 (0)