diff --git a/.github/workflows/build_and_test_debug_client.yml b/.github/workflows/build_and_test_debug_client.yml index 0574cf4f26..29c881c68a 100644 --- a/.github/workflows/build_and_test_debug_client.yml +++ b/.github/workflows/build_and_test_debug_client.yml @@ -18,7 +18,7 @@ jobs: web_test: name: Web Test runs-on: ubuntu-20.04 - timeout-minutes: 10 + timeout-minutes: 20 steps: - name: Checkout uses: actions/checkout@v2.3.4 @@ -37,20 +37,20 @@ jobs: run: npm run action lint - name: Build Web App - run: npm run action www/build + run: npm run action client/src/www/build - name: Test Web App - run: npm run action www/test + run: npm run action client/src/www/test - uses: codecov/codecov-action@v3 with: - files: ./output/coverage/www/coverage-final.json + files: ./client/src/output/coverage/www/coverage-final.json flags: unittests, www linux_debug_build: name: Linux Debug Build runs-on: ubuntu-20.04 - timeout-minutes: 10 + timeout-minutes: 20 needs: web_test steps: - name: Checkout @@ -72,12 +72,12 @@ jobs: go-version-file: '${{ github.workspace }}/go.mod' - name: Build Linux Client - run: npm run action electron/build linux + run: npm run action client/src/electron/build linux windows_debug_build: name: Windows Debug Build runs-on: windows-2019 - timeout-minutes: 10 + timeout-minutes: 20 needs: web_test steps: - name: Support longpaths @@ -102,7 +102,7 @@ jobs: go-version-file: '${{ github.workspace }}/go.mod' - name: Build Windows Client - run: npm run action electron/build windows + run: npm run action client/src/electron/build windows macos_debug_build: name: MacOS Debug Build @@ -132,18 +132,18 @@ jobs: go-version-file: '${{ github.workspace }}/go.mod' - name: Build Tun2Socks (required for Test OutlineAppleLib) - run: npm run action tun2socks/build macos + run: npm run action client/src/tun2socks/build macos - name: Test OutlineAppleLib - run: npm run action cordova/test macos + run: npm run action client/src/cordova/test macos - name: Build MacOS Client - run: npm run action cordova/build macos + run: npm run action client/src/cordova/build macos - uses: codecov/codecov-action@v3 with: xcode: true - xcode_archive_path: ./output/coverage/apple/macos/TestResult.xcresult + xcode_archive_path: ./client/src/output/coverage/apple/macos/TestResult.xcresult flags: unittests, apple, macos ios_debug_build: @@ -174,18 +174,18 @@ jobs: go-version-file: '${{ github.workspace }}/go.mod' - name: Build Tun2Socks (required for Test OutlineAppleLib) - run: npm run action tun2socks/build ios + run: npm run action client/src/tun2socks/build ios - name: Test OutlineAppleLib - run: npm run action cordova/test ios + run: npm run action client/src/cordova/test ios - name: Build iOS Client - run: npm run action cordova/build ios + run: npm run action client/src/cordova/build ios - uses: codecov/codecov-action@v3 with: xcode: true - xcode_archive_path: ./output/coverage/apple/ios/TestResult.xcresult + xcode_archive_path: ./client/src/output/coverage/apple/ios/TestResult.xcresult flags: unittests, apple, ios maccatalyst_debug_build: @@ -216,24 +216,24 @@ jobs: go-version-file: '${{ github.workspace }}/go.mod' - name: Build Tun2Socks (required for Test OutlineAppleLib) - run: npm run action tun2socks/build maccatalyst + run: npm run action client/src/tun2socks/build maccatalyst - name: Test OutlineAppleLib - run: npm run action cordova/test maccatalyst + run: npm run action client/src/cordova/test maccatalyst - name: Build Mac Catalyst Client - run: npm run action cordova/build maccatalyst + run: npm run action client/src/cordova/build maccatalyst - uses: codecov/codecov-action@v3 with: xcode: true - xcode_archive_path: ./output/coverage/apple/maccatalyst/TestResult.xcresult + xcode_archive_path: ./client/src/output/coverage/apple/maccatalyst/TestResult.xcresult flags: unittests, apple, maccatalyst android_debug_build: name: Android Debug Build runs-on: ubuntu-20.04 - timeout-minutes: 10 + timeout-minutes: 20 needs: web_test steps: - name: Checkout @@ -260,7 +260,7 @@ jobs: java-version: 11 - name: Setup Android - run: bash ./tools/build/setup_linux_android.sh + run: bash ./client/tools/build/setup_linux_android.sh - name: Build Android Client - run: npm run action cordova/build android -- --verbose + run: npm run action client/src/cordova/build android -- --verbose diff --git a/.gitignore b/.gitignore index ca0be6c62a..6856c1d84a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +node_modules .idea .vs/ .vscode @@ -5,27 +6,7 @@ *.env *.pdb *.sw? -/node_modules /server_manager/node_modules -/server_manager/do_install_script.ts -/server_manager/gcp_install_script.ts -/build +/server_manager/install_scripts/do_install_script.ts +/server_manager/install_scripts/gcp_install_script.ts /output -/platforms -/plugins -/third_party/Potatso/Pods -/www -coverage -info.txt -keystore.p12 -obj/ -Outline.apk -Outline.apks -packages/ -toc.pb -tools/OutlineService/OutlineService/bin/* -tools/smartdnsblock/bin/* -!tools/OutlineService/OutlineService/bin/*.exe -!tools/smartdnsblock/bin/*.exe -universal.apk -xcuserdata/ diff --git a/Makefile b/Makefile index e7da6e6b70..17a7512923 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,17 @@ -BUILDDIR=$(CURDIR)/output/build -GOBIN=$(CURDIR)/output/bin +BUILDDIR=$(CURDIR)/client/output/build +GOBIN=$(CURDIR)/client/output/bin GOMOBILE=$(GOBIN)/gomobile # Add GOBIN to $PATH so `gomobile` can find `gobind`. GOBIND=env PATH="$(GOBIN):$(PATH)" "$(GOMOBILE)" bind IMPORT_HOST=github.com -IMPORT_PATH=$(IMPORT_HOST)/Jigsaw-Code/outline-client +IMPORT_PATH=$(IMPORT_HOST)/Jigsaw-Code/outline-apps .PHONY: android apple linux windows browser all: android apple linux windows -ROOT_PKG=src/tun2socks +ROOT_PKG=client/src/tun2socks # Don't strip Android debug symbols so we can upload them to crash reporting tools. ANDROID_BUILD_CMD=$(GOBIND) -a -ldflags '-w' -target=android -androidapi 19 -tags android -work diff --git a/README.md b/README.md index 7e427791db..55e9ff19d0 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,13 @@ The Outline Client is a cross-platform proxy client for Windows, macOS, iOS, And > [!NOTE] > Test coverage currently only tracks the Apple Libraries and core web view code. -The client's user interface is implemented in [Polymer](https://www.polymer-project.org/) 2.0. Platform support is provided by [Cordova](https://cordova.apache.org/) and [Electron](https://electronjs.org/), with additional native components in this repository. +We have two core apps: [Ouline Manager](./server_manager) and [Ouline Client](./client). To join our Outline Community, [sign up for the IFF Mattermost](https://wiki.digitalrights.community/index.php?title=IFF_Mattermost). #### Requirements for all builds -All builds require [Node](https://nodejs.org/) 18 (lts/hydrogen), and [Go](https://golang.org/) 1.20 installed in addition to other per-platform requirements. +### Outline Client > 💡 NOTE: if you have `nvm` installed, run `nvm use` to switch to the correct node version! diff --git a/.browserslistrc b/client/.browserslistrc similarity index 100% rename from .browserslistrc rename to client/.browserslistrc diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000000..061ad13c3c --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,19 @@ +/node_modules +/build +/output +/platforms +/plugins +/third_party/Potatso/Pods +/www +coverage +info.txt +keystore.p12 +obj/ +Outline.apk +Outline.apks +packages/ +toc.pb +tools/smartdnsblock/bin/* +!tools/smartdnsblock/bin/*.exe +universal.apk +xcuserdata/ diff --git a/LICENSE b/client/LICENSE similarity index 100% rename from LICENSE rename to client/LICENSE diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000000..3787ff9d6b --- /dev/null +++ b/client/README.md @@ -0,0 +1,87 @@ +# Outline Client + +![Build and Test](https://github.com/Jigsaw-Code/outline-apps/actions/workflows/build_and_test_debug_client.yml/badge.svg?branch=master) + +> **Test coverage currently only tracks the Apple Libraries and core web view code:** +> +> [![codecov](https://codecov.io/gh/Jigsaw-Code/outline-apps/branch/master/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-apps) + +The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS. The Outline Client is designed for use with the [Outline Server](https://github.com/Jigsaw-Code/outline-server) software, but it is fully compatible with any [Shadowsocks](https://shadowsocks.org/) server. + +The client's user interface is implemented in [Polymer](https://www.polymer-project.org/) 2.0. Platform support is provided by [Cordova](https://cordova.apache.org/) and [Electron](https://electronjs.org/), with additional native components in this repository. + +To join our Outline Community, [sign up for the IFF Mattermost](https://internetfreedomfestival.org/wiki/index.php/IFF_Mattermost). + +## Requirements for all builds + +All builds require [Node](https://nodejs.org/) 18 (lts/hydrogen), and [Go](https://golang.org/) 1.20 installed in addition to other per-platform requirements. + +> 💡 NOTE: if you have `nvm` installed, run `nvm use` to switch to the correct node version! + +After cloning this repo, install all node dependencies: + +```sh +npm install +``` + +## Building the shared web app + +Outline clients share the same web app across all platforms. This code is located in the src/www directory. If you are making changes to the shared web app and do not need to test platform-specific functionality, you can test in a desktop browser by running: + +```sh +npm run action client/src/www/start +``` + +The latter command will open a browser instance running the app. Browser platform development will use fake servers to test successful and unsuccessful connections. + +The app logic is located in [src/www/app](src/www/app). UI components are located in [src/www/ui_components](src/www/ui_components). If you want to work specifically on an individual UI element, try the storybook!: + +```sh +npm run action client/src/www/storybook +``` + +> 💡 NOTE: every script in this repository can be run with `npm run action` - +> for a CLI-like experience, add something like +> +> ```sh +> alias outline="npm run action" +> ``` +> +> _(you can call it whatever you like)_ +> +> to your shell, then try `outline www/start`! + +## Passing configuration flags to actions + +Certain actions take configuration flags - but since we're running them through `npm`, you'll have to use the `--` seperator to funnel them through to the underlying process. For example, to set up a MacOS project in release mode, you'd run: + +```sh +SENTRY_DSN= npm run action client/src/cordova/setup macos -- --buildMode=release --versionName= +``` + +## Life of a Packet + +[How does the Outline Client work?](docs/life_of_a_packet.md) + +## Accepting a server invite + +[Looking for instructions on how to accept a server invite?](docs/invitation_instructions.md) + +## Platform-specific development + +Each platform is handled differently: + +1. [Developing for Apple **(MacOS and iOS)**](src/cordova/apple) +2. [Developing for **Android**](src/cordova/android) +3. [Developing for Electron **(Windows and Linux)**](src/electron) + +## Error reporting + +To enable error reporting through [Sentry](https://sentry.io/) for local builds, run: + +```bash +export SENTRY_DSN=[Sentry development API key] +[platform-specific build command] +``` + +Release builds on CI are configured with a production Sentry API key. diff --git a/config.xml b/client/config.xml similarity index 100% rename from config.xml rename to client/config.xml diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000000..557e46cdc0 --- /dev/null +++ b/client/package.json @@ -0,0 +1,147 @@ +{ + "name": "outline-client", + "version": "0.0.0", + "comments": { + "version": "The 'version' in this file is just a placeholder for 'npx generate-license-file', please do not change it.", + "codrova-osx": "Version-controlled platform config files at src/cordova/apple/xcode/osx/Outline/config.xml, src/cordova/apple/xcode/osx/osx.json, and src/cordova/apple/xcode/osx/www/cordova_plugins.js as a workaround for https://github.com/apache/cordova-osx/issues/106. Delete these files when the issue is fixed." + }, + "dependencies": { + "@material/mwc-button": "^0.25.3", + "@material/mwc-circular-progress": "^0.27.0", + "@material/mwc-formfield": "^0.25.3", + "@material/mwc-icon-button": "^0.25.3", + "@material/mwc-menu": "^0.25.3", + "@material/mwc-radio": "^0.25.3", + "@material/mwc-select": "^0.25.3", + "@material/mwc-textarea": "^0.25.3", + "@material/mwc-textfield": "^0.25.3", + "@polymer/app-layout": "^3.1.0", + "@polymer/app-localize-behavior": "^3.0.1", + "@polymer/app-route": "^3.0.2", + "@polymer/decorators": "^3.0.0", + "@polymer/font-roboto": "^3.0.2", + "@polymer/iron-icons": "^3.0.1", + "@polymer/iron-iconset-svg": "^3.0.1", + "@polymer/iron-pages": "^3.0.1", + "@polymer/paper-behaviors": "^3.0.1", + "@polymer/paper-button": "^3.0.1", + "@polymer/paper-card": "^3.0.1", + "@polymer/paper-dialog": "^3.0.1", + "@polymer/paper-dropdown-menu": "^3.1.0", + "@polymer/paper-icon-button": "^3.0.2", + "@polymer/paper-input": "^3.2.1", + "@polymer/paper-item": "^3.0.1", + "@polymer/paper-listbox": "^3.0.1", + "@polymer/paper-menu-button": "^3.0.1", + "@polymer/paper-ripple": "^3.0.2", + "@polymer/paper-styles": "^3.0.1", + "@polymer/paper-toast": "^3.0.1", + "@sentry/browser": "^7.31.1", + "@sentry/electron": "^4.2.0", + "@webcomponents/webcomponentsjs": "^2.4.4", + "auto-launch": "^5.0.5", + "browserslist": "^4.20.3", + "cordova-plugin-splashscreen": "^6.0.0", + "cordova-plugin-statusbar": "^2.2.3", + "electron-updater": "^5.0.5", + "lit": "^2.2.2", + "ShadowsocksConfig": "github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.1", + "socks": "^1.1.10", + "sudo-prompt": "^9.2.1", + "uuidv4": "^4.0.0", + "web-animations-js": "^2.3.2" + }, + "devDependencies": { + "@babel/core": "^7.12.10", + "@babel/polyfill": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@commitlint/config-conventional": "^16.2.4", + "@jsdevtools/coverage-istanbul-loader": "^3.0.5", + "@open-wc/testing": "^3.2.0", + "@open-wc/testing-karma": "^4.0.9", + "@rollup/plugin-image": "^2.1.1", + "@types/auto-launch": "^5.0.0", + "@types/cordova": "^0.0.34", + "@types/jasmine": "^4.3.6", + "@types/node": "^14.14.7", + "@types/polymer": "^1.2.9", + "@types/uuidv4": "^2.0.0", + "@typescript-eslint/eslint-plugin": "^5.32.0", + "@typescript-eslint/parser": "^5.32.0", + "@web/dev-server": "^0.1.35", + "@web/dev-server-esbuild": "^0.3.3", + "@web/dev-server-storybook": "^0.5.4", + "babel-loader": "^8.2.2", + "chalk": "^5.0.1", + "copy-dir": "^1.3.0", + "copy-webpack-plugin": "^5.1.1", + "cordova-android": "^11.0.0", + "cordova-browser": "~6.0.0", + "cordova-ios": "github:apache/cordova-ios#1a5cd45e2243b239b5045a0ade9d2da1d779b72a", + "cordova-lib": "^11.0.0", + "cordova-osx": "github:apache/cordova-osx", + "cordova-plugin-clipboard": "github:Jigsaw-Code/outline-cordova-plugin-clipboard#v2.0.0", + "cordova-plugin-outline": "file:src/cordova/plugin", + "cordova-webintent": "github:cordova-misc/cordova-webintent#v2.0.0", + "css-loader": "^5.0.1", + "deepmerge": "^4.3.1", + "electron": "19.1.9", + "electron-builder": "^23.6.0", + "electron-icon-maker": "^0.0.5", + "eslint": "^8.15.0", + "eslint-import-resolver-typescript": "^3.4.0", + "eslint-plugin-compat": "^4.0.2", + "eslint-plugin-import": "^2.26.0", + "esm": "^3.2.25", + "file-loader": "^6.2.0", + "html-webpack-plugin": "^5.1.0", + "husky": "^1.3.1", + "i18n-strings-files": "^2.0.0", + "intl-messageformat": "^9.12.0", + "istanbul": "^0.4.5", + "karma": "^6.4.2", + "karma-chrome-launcher": "^3.1.0", + "karma-coverage-istanbul-reporter": "^3.0.3", + "karma-jasmine": "^4.0.1", + "karma-webpack": "^5.0.0", + "minimist": "^1.2.6", + "node-fetch": "^3.3.0", + "node-gyp": "^10.0.1", + "postcss": "^7.0.39", + "postcss-rtl": "^1.7.3", + "prettier": "^2.8.0", + "pretty-quick": "^2.0.1", + "puppeteer": "^13.1.2", + "replace-in-file": "^6.3.5", + "rimraf": "^2.7.1", + "rmfr": "^2.0.0", + "style-loader": "^2.0.0", + "ts-loader": "^9.3.1", + "typescript": "^4.7.4", + "url": "^0.11.0", + "webpack": "^5.16.0", + "webpack-cli": "^4.4.0", + "webpack-dev-server": "^4.5.0", + "webpack-merge": "^5.8.0", + "webpack-shell-plugin-next": "^2.1.1", + "xmlbuilder2": "^3.1.1" + }, + "optionalDependencies": { + "ios-deploy": "^1.11.4" + }, + "cordova": { + "plugins": { + "cordova-plugin-outline": {}, + "cordova-plugin-splashscreen": {}, + "cordova-plugin-statusbar": {}, + "cordova-plugin-clipboard": {}, + "cordova-webintent": {} + }, + "platforms": [ + "browser", + "android", + "ios", + "osx" + ] + } +} diff --git a/resources/electron/icon.png b/client/resources/electron/icon.png similarity index 100% rename from resources/electron/icon.png rename to client/resources/electron/icon.png diff --git a/resources/icons/android/icon_hdpi.png b/client/resources/icons/android/icon_hdpi.png similarity index 100% rename from resources/icons/android/icon_hdpi.png rename to client/resources/icons/android/icon_hdpi.png diff --git a/resources/icons/android/icon_mdpi.png b/client/resources/icons/android/icon_mdpi.png similarity index 100% rename from resources/icons/android/icon_mdpi.png rename to client/resources/icons/android/icon_mdpi.png diff --git a/resources/icons/android/icon_xhdpi.png b/client/resources/icons/android/icon_xhdpi.png similarity index 100% rename from resources/icons/android/icon_xhdpi.png rename to client/resources/icons/android/icon_xhdpi.png diff --git a/resources/icons/android/icon_xxhdpi.png b/client/resources/icons/android/icon_xxhdpi.png similarity index 100% rename from resources/icons/android/icon_xxhdpi.png rename to client/resources/icons/android/icon_xxhdpi.png diff --git a/resources/icons/android/icon_xxxhdpi.png b/client/resources/icons/android/icon_xxxhdpi.png similarity index 100% rename from resources/icons/android/icon_xxxhdpi.png rename to client/resources/icons/android/icon_xxxhdpi.png diff --git a/resources/icons/ios/Icon-1024.png b/client/resources/icons/ios/Icon-1024.png similarity index 100% rename from resources/icons/ios/Icon-1024.png rename to client/resources/icons/ios/Icon-1024.png diff --git a/resources/icons/ios/Icon-128.png b/client/resources/icons/ios/Icon-128.png similarity index 100% rename from resources/icons/ios/Icon-128.png rename to client/resources/icons/ios/Icon-128.png diff --git a/resources/icons/ios/Icon-128@2x.png b/client/resources/icons/ios/Icon-128@2x.png similarity index 100% rename from resources/icons/ios/Icon-128@2x.png rename to client/resources/icons/ios/Icon-128@2x.png diff --git a/resources/icons/ios/Icon-16.png b/client/resources/icons/ios/Icon-16.png similarity index 100% rename from resources/icons/ios/Icon-16.png rename to client/resources/icons/ios/Icon-16.png diff --git a/resources/icons/ios/Icon-16@2x.png b/client/resources/icons/ios/Icon-16@2x.png similarity index 100% rename from resources/icons/ios/Icon-16@2x.png rename to client/resources/icons/ios/Icon-16@2x.png diff --git a/resources/icons/ios/Icon-20.png b/client/resources/icons/ios/Icon-20.png similarity index 100% rename from resources/icons/ios/Icon-20.png rename to client/resources/icons/ios/Icon-20.png diff --git a/resources/icons/ios/Icon-20@2x.png b/client/resources/icons/ios/Icon-20@2x.png similarity index 100% rename from resources/icons/ios/Icon-20@2x.png rename to client/resources/icons/ios/Icon-20@2x.png diff --git a/resources/icons/ios/Icon-20@3x.png b/client/resources/icons/ios/Icon-20@3x.png similarity index 100% rename from resources/icons/ios/Icon-20@3x.png rename to client/resources/icons/ios/Icon-20@3x.png diff --git a/resources/icons/ios/Icon-24.png b/client/resources/icons/ios/Icon-24.png similarity index 100% rename from resources/icons/ios/Icon-24.png rename to client/resources/icons/ios/Icon-24.png diff --git a/resources/icons/ios/Icon-24@2x.png b/client/resources/icons/ios/Icon-24@2x.png similarity index 100% rename from resources/icons/ios/Icon-24@2x.png rename to client/resources/icons/ios/Icon-24@2x.png diff --git a/resources/icons/ios/Icon-29.png b/client/resources/icons/ios/Icon-29.png similarity index 100% rename from resources/icons/ios/Icon-29.png rename to client/resources/icons/ios/Icon-29.png diff --git a/resources/icons/ios/Icon-29@2x.png b/client/resources/icons/ios/Icon-29@2x.png similarity index 100% rename from resources/icons/ios/Icon-29@2x.png rename to client/resources/icons/ios/Icon-29@2x.png diff --git a/resources/icons/ios/Icon-29@3x.png b/client/resources/icons/ios/Icon-29@3x.png similarity index 100% rename from resources/icons/ios/Icon-29@3x.png rename to client/resources/icons/ios/Icon-29@3x.png diff --git a/resources/icons/ios/Icon-32@2x.png b/client/resources/icons/ios/Icon-32@2x.png similarity index 100% rename from resources/icons/ios/Icon-32@2x.png rename to client/resources/icons/ios/Icon-32@2x.png diff --git a/resources/icons/ios/Icon-40@2x.png b/client/resources/icons/ios/Icon-40@2x.png similarity index 100% rename from resources/icons/ios/Icon-40@2x.png rename to client/resources/icons/ios/Icon-40@2x.png diff --git a/resources/icons/ios/Icon-40@3x.png b/client/resources/icons/ios/Icon-40@3x.png similarity index 100% rename from resources/icons/ios/Icon-40@3x.png rename to client/resources/icons/ios/Icon-40@3x.png diff --git a/resources/icons/ios/Icon-50.png b/client/resources/icons/ios/Icon-50.png similarity index 100% rename from resources/icons/ios/Icon-50.png rename to client/resources/icons/ios/Icon-50.png diff --git a/resources/icons/ios/Icon-50@2x.png b/client/resources/icons/ios/Icon-50@2x.png similarity index 100% rename from resources/icons/ios/Icon-50@2x.png rename to client/resources/icons/ios/Icon-50@2x.png diff --git a/resources/icons/ios/Icon-512.png b/client/resources/icons/ios/Icon-512.png similarity index 100% rename from resources/icons/ios/Icon-512.png rename to client/resources/icons/ios/Icon-512.png diff --git a/resources/icons/ios/Icon-57.png b/client/resources/icons/ios/Icon-57.png similarity index 100% rename from resources/icons/ios/Icon-57.png rename to client/resources/icons/ios/Icon-57.png diff --git a/resources/icons/ios/Icon-57@2x.png b/client/resources/icons/ios/Icon-57@2x.png similarity index 100% rename from resources/icons/ios/Icon-57@2x.png rename to client/resources/icons/ios/Icon-57@2x.png diff --git a/resources/icons/ios/Icon-60@2x.png b/client/resources/icons/ios/Icon-60@2x.png similarity index 100% rename from resources/icons/ios/Icon-60@2x.png rename to client/resources/icons/ios/Icon-60@2x.png diff --git a/resources/icons/ios/Icon-60@3x.png b/client/resources/icons/ios/Icon-60@3x.png similarity index 100% rename from resources/icons/ios/Icon-60@3x.png rename to client/resources/icons/ios/Icon-60@3x.png diff --git a/resources/icons/ios/Icon-72.png b/client/resources/icons/ios/Icon-72.png similarity index 100% rename from resources/icons/ios/Icon-72.png rename to client/resources/icons/ios/Icon-72.png diff --git a/resources/icons/ios/Icon-72@2x.png b/client/resources/icons/ios/Icon-72@2x.png similarity index 100% rename from resources/icons/ios/Icon-72@2x.png rename to client/resources/icons/ios/Icon-72@2x.png diff --git a/resources/icons/ios/Icon-76.png b/client/resources/icons/ios/Icon-76.png similarity index 100% rename from resources/icons/ios/Icon-76.png rename to client/resources/icons/ios/Icon-76.png diff --git a/resources/icons/ios/Icon-76@2x.png b/client/resources/icons/ios/Icon-76@2x.png similarity index 100% rename from resources/icons/ios/Icon-76@2x.png rename to client/resources/icons/ios/Icon-76@2x.png diff --git a/resources/icons/ios/Icon-83.5@2x.png b/client/resources/icons/ios/Icon-83.5@2x.png similarity index 100% rename from resources/icons/ios/Icon-83.5@2x.png rename to client/resources/icons/ios/Icon-83.5@2x.png diff --git a/resources/icons/ios/icon-256.png b/client/resources/icons/ios/icon-256.png similarity index 100% rename from resources/icons/ios/icon-256.png rename to client/resources/icons/ios/icon-256.png diff --git a/resources/icons/ios/icon-256@2x.png b/client/resources/icons/ios/icon-256@2x.png similarity index 100% rename from resources/icons/ios/icon-256@2x.png rename to client/resources/icons/ios/icon-256@2x.png diff --git a/resources/icons/ios/icon-32.png b/client/resources/icons/ios/icon-32.png similarity index 100% rename from resources/icons/ios/icon-32.png rename to client/resources/icons/ios/icon-32.png diff --git a/resources/icons/ios/icon-512@2x.png b/client/resources/icons/ios/icon-512@2x.png similarity index 100% rename from resources/icons/ios/icon-512@2x.png rename to client/resources/icons/ios/icon-512@2x.png diff --git a/resources/icons/osx/icon-1024.png b/client/resources/icons/osx/icon-1024.png similarity index 100% rename from resources/icons/osx/icon-1024.png rename to client/resources/icons/osx/icon-1024.png diff --git a/resources/icons/osx/icon-128.png b/client/resources/icons/osx/icon-128.png similarity index 100% rename from resources/icons/osx/icon-128.png rename to client/resources/icons/osx/icon-128.png diff --git a/resources/icons/osx/icon-16.png b/client/resources/icons/osx/icon-16.png similarity index 100% rename from resources/icons/osx/icon-16.png rename to client/resources/icons/osx/icon-16.png diff --git a/resources/icons/osx/icon-256.png b/client/resources/icons/osx/icon-256.png similarity index 100% rename from resources/icons/osx/icon-256.png rename to client/resources/icons/osx/icon-256.png diff --git a/resources/icons/osx/icon-32.png b/client/resources/icons/osx/icon-32.png similarity index 100% rename from resources/icons/osx/icon-32.png rename to client/resources/icons/osx/icon-32.png diff --git a/resources/icons/osx/icon-512.png b/client/resources/icons/osx/icon-512.png similarity index 100% rename from resources/icons/osx/icon-512.png rename to client/resources/icons/osx/icon-512.png diff --git a/resources/icons/osx/icon-64.png b/client/resources/icons/osx/icon-64.png similarity index 100% rename from resources/icons/osx/icon-64.png rename to client/resources/icons/osx/icon-64.png diff --git a/resources/original_messages.json b/client/resources/original_messages.json similarity index 100% rename from resources/original_messages.json rename to client/resources/original_messages.json diff --git a/resources/splashscreen/android/splashscreen_hdpi.png b/client/resources/splashscreen/android/splashscreen_hdpi.png similarity index 100% rename from resources/splashscreen/android/splashscreen_hdpi.png rename to client/resources/splashscreen/android/splashscreen_hdpi.png diff --git a/resources/splashscreen/android/splashscreen_xhdpi.png b/client/resources/splashscreen/android/splashscreen_xhdpi.png similarity index 100% rename from resources/splashscreen/android/splashscreen_xhdpi.png rename to client/resources/splashscreen/android/splashscreen_xhdpi.png diff --git a/resources/splashscreen/android/splashscreen_xxhdpi.png b/client/resources/splashscreen/android/splashscreen_xxhdpi.png similarity index 100% rename from resources/splashscreen/android/splashscreen_xxhdpi.png rename to client/resources/splashscreen/android/splashscreen_xxhdpi.png diff --git a/resources/splashscreen/android/splashscreen_xxxhdpi.png b/client/resources/splashscreen/android/splashscreen_xxxhdpi.png similarity index 100% rename from resources/splashscreen/android/splashscreen_xxxhdpi.png rename to client/resources/splashscreen/android/splashscreen_xxxhdpi.png diff --git a/resources/splashscreen/ios/splashscreen@2x~universal~anyany.png b/client/resources/splashscreen/ios/splashscreen@2x~universal~anyany.png similarity index 100% rename from resources/splashscreen/ios/splashscreen@2x~universal~anyany.png rename to client/resources/splashscreen/ios/splashscreen@2x~universal~anyany.png diff --git a/resources/tray/connected.png b/client/resources/tray/connected.png similarity index 100% rename from resources/tray/connected.png rename to client/resources/tray/connected.png diff --git a/resources/tray/disconnected.png b/client/resources/tray/disconnected.png similarity index 100% rename from resources/tray/disconnected.png rename to client/resources/tray/disconnected.png diff --git a/src/build/download_file.mjs b/client/src/build/download_file.mjs similarity index 100% rename from src/build/download_file.mjs rename to client/src/build/download_file.mjs diff --git a/src/build/get_build_parameters.mjs b/client/src/build/get_build_parameters.mjs similarity index 100% rename from src/build/get_build_parameters.mjs rename to client/src/build/get_build_parameters.mjs diff --git a/src/build/get_file_checksum.mjs b/client/src/build/get_file_checksum.mjs similarity index 100% rename from src/build/get_file_checksum.mjs rename to client/src/build/get_file_checksum.mjs diff --git a/src/build/get_root_dir.mjs b/client/src/build/get_root_dir.mjs similarity index 88% rename from src/build/get_root_dir.mjs rename to client/src/build/get_root_dir.mjs index 646edc8ba2..f0e0e10bce 100644 --- a/src/build/get_root_dir.mjs +++ b/client/src/build/get_root_dir.mjs @@ -16,8 +16,7 @@ import path from 'path'; import url from 'url'; // WARNING: if you move this file, you MUST update this file path -const ROOT_DIR = path.resolve( - path.dirname(url.fileURLToPath(import.meta.url)), '..', '..'); +const ROOT_DIR = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), '..', '..'); export function getRootDir() { return ROOT_DIR; diff --git a/src/build/get_webpack_build_mode.mjs b/client/src/build/get_webpack_build_mode.mjs similarity index 100% rename from src/build/get_webpack_build_mode.mjs rename to client/src/build/get_webpack_build_mode.mjs diff --git a/src/build/run_action.mjs b/client/src/build/run_action.mjs similarity index 91% rename from src/build/run_action.mjs rename to client/src/build/run_action.mjs index 8189833c28..c84da3b121 100644 --- a/src/build/run_action.mjs +++ b/client/src/build/run_action.mjs @@ -27,11 +27,11 @@ import {spawnStream} from './spawn_stream.mjs'; const resolveActionPath = async actionPath => { if (!actionPath) return ''; - if (actionPath in JSON.parse(await readFile(path.join(getRootDir(), 'package.json'))).scripts) { + if (actionPath in JSON.parse(await readFile(path.resolve(getRootDir(), '../package.json'))).scripts) { return actionPath; } - const roots = [getRootDir(), path.join(getRootDir(), 'src')]; + const roots = [getRootDir(), path.resolve(getRootDir(), '..')]; const extensions = ['sh', 'mjs']; for (const root of roots) { @@ -111,7 +111,12 @@ export async function runAction(actionPath, ...parameters) { } async function main() { - process.env.ROOT_DIR ??= getRootDir(); + // TODO(daniellacosse): Hoist the build directory to the root of the project. + if (process.argv[2].startsWith('server_manager')) { + process.env.ROOT_DIR ??= path.resolve(getRootDir(), '..'); + } else { + process.env.ROOT_DIR ??= getRootDir(); + } process.env.OUTPUT_DIR ??= path.join(process.env.ROOT_DIR, 'output'); process.env.BUILD_DIR ??= path.join(process.env.OUTPUT_DIR, 'build'); process.env.COVERAGE_DIR ??= path.join(process.env.OUTPUT_DIR, 'coverage'); diff --git a/src/build/run_webpack.mjs b/client/src/build/run_webpack.mjs similarity index 100% rename from src/build/run_webpack.mjs rename to client/src/build/run_webpack.mjs diff --git a/src/build/spawn_stream.mjs b/client/src/build/spawn_stream.mjs similarity index 100% rename from src/build/spawn_stream.mjs rename to client/src/build/spawn_stream.mjs diff --git a/src/cordova/android/OutlineAndroidLib/.gitignore b/client/src/cordova/android/OutlineAndroidLib/.gitignore similarity index 100% rename from src/cordova/android/OutlineAndroidLib/.gitignore rename to client/src/cordova/android/OutlineAndroidLib/.gitignore diff --git a/src/cordova/android/OutlineAndroidLib/build.gradle b/client/src/cordova/android/OutlineAndroidLib/build.gradle similarity index 100% rename from src/cordova/android/OutlineAndroidLib/build.gradle rename to client/src/cordova/android/OutlineAndroidLib/build.gradle diff --git a/src/cordova/android/OutlineAndroidLib/gradle.properties b/client/src/cordova/android/OutlineAndroidLib/gradle.properties similarity index 100% rename from src/cordova/android/OutlineAndroidLib/gradle.properties rename to client/src/cordova/android/OutlineAndroidLib/gradle.properties diff --git a/src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.jar b/client/src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.jar rename to client/src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.jar diff --git a/src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.properties b/client/src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.properties rename to client/src/cordova/android/OutlineAndroidLib/gradle/wrapper/gradle-wrapper.properties diff --git a/src/cordova/android/OutlineAndroidLib/gradlew b/client/src/cordova/android/OutlineAndroidLib/gradlew similarity index 100% rename from src/cordova/android/OutlineAndroidLib/gradlew rename to client/src/cordova/android/OutlineAndroidLib/gradlew diff --git a/src/cordova/android/OutlineAndroidLib/gradlew.bat b/client/src/cordova/android/OutlineAndroidLib/gradlew.bat similarity index 100% rename from src/cordova/android/OutlineAndroidLib/gradlew.bat rename to client/src/cordova/android/OutlineAndroidLib/gradlew.bat diff --git a/src/cordova/android/OutlineAndroidLib/outline/.gitignore b/client/src/cordova/android/OutlineAndroidLib/outline/.gitignore similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/.gitignore rename to client/src/cordova/android/OutlineAndroidLib/outline/.gitignore diff --git a/src/cordova/android/OutlineAndroidLib/outline/build.gradle b/client/src/cordova/android/OutlineAndroidLib/outline/build.gradle similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/build.gradle rename to client/src/cordova/android/OutlineAndroidLib/outline/build.gradle diff --git a/src/cordova/android/OutlineAndroidLib/outline/consumer-rules.pro b/client/src/cordova/android/OutlineAndroidLib/outline/consumer-rules.pro similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/consumer-rules.pro rename to client/src/cordova/android/OutlineAndroidLib/outline/consumer-rules.pro diff --git a/src/cordova/android/OutlineAndroidLib/outline/proguard-rules.pro b/client/src/cordova/android/OutlineAndroidLib/outline/proguard-rules.pro similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/proguard-rules.pro rename to client/src/cordova/android/OutlineAndroidLib/outline/proguard-rules.pro diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/androidTest/java/org/outline/vpn/VpnTunnelStoreTest.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/androidTest/java/org/outline/vpn/VpnTunnelStoreTest.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/androidTest/java/org/outline/vpn/VpnTunnelStoreTest.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/androidTest/java/org/outline/vpn/VpnTunnelStoreTest.java diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/AndroidManifest.xml b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/AndroidManifest.xml similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/AndroidManifest.xml rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/AndroidManifest.xml diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/IVpnTunnelService.aidl b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/IVpnTunnelService.aidl similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/IVpnTunnelService.aidl rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/IVpnTunnelService.aidl diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/TunnelConfig.aidl b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/TunnelConfig.aidl similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/TunnelConfig.aidl rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/TunnelConfig.aidl diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/shadowsocks/ShadowsocksConfig.aidl b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/shadowsocks/ShadowsocksConfig.aidl similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/shadowsocks/ShadowsocksConfig.aidl rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/aidl/org/outline/shadowsocks/ShadowsocksConfig.aidl diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/OutlineLogger.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/OutlineLogger.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/OutlineLogger.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/OutlineLogger.java diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/SentryErrorReporter.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/SentryErrorReporter.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/SentryErrorReporter.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/log/SentryErrorReporter.java diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnServiceStarter.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnServiceStarter.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnServiceStarter.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnServiceStarter.java diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnel.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnel.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnel.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnel.java diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelService.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelService.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelService.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelService.java diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelStore.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelStore.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelStore.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/main/java/org/outline/vpn/VpnTunnelStore.java diff --git a/src/cordova/android/OutlineAndroidLib/outline/src/test/java/org/outline/vpn/VpnTunnelTest.java b/client/src/cordova/android/OutlineAndroidLib/outline/src/test/java/org/outline/vpn/VpnTunnelTest.java similarity index 100% rename from src/cordova/android/OutlineAndroidLib/outline/src/test/java/org/outline/vpn/VpnTunnelTest.java rename to client/src/cordova/android/OutlineAndroidLib/outline/src/test/java/org/outline/vpn/VpnTunnelTest.java diff --git a/src/cordova/android/OutlineAndroidLib/settings.gradle b/client/src/cordova/android/OutlineAndroidLib/settings.gradle similarity index 100% rename from src/cordova/android/OutlineAndroidLib/settings.gradle rename to client/src/cordova/android/OutlineAndroidLib/settings.gradle diff --git a/src/cordova/android/README.md b/client/src/cordova/android/README.md similarity index 100% rename from src/cordova/android/README.md rename to client/src/cordova/android/README.md diff --git a/src/cordova/android/import_messages.mjs b/client/src/cordova/android/import_messages.mjs similarity index 94% rename from src/cordova/android/import_messages.mjs rename to client/src/cordova/android/import_messages.mjs index 14faab98f4..5315dc04a4 100644 --- a/src/cordova/android/import_messages.mjs +++ b/client/src/cordova/android/import_messages.mjs @@ -22,12 +22,7 @@ const XML_STRING_ID_PROPERTY = '@name'; const XML_TEXT_CONTENT = '#'; function escapeXmlCharacters(str) { - return str - .replace(/"/g, '\\"') - .replace(/'/g, "\\'") - .replace(//g, '\\>;') - .replace(/&/g, '\\&'); + return str.replace(/"/g, '\\"').replace(/'/g, "\\'").replace(//g, '\\>;').replace(/&/g, '\\&').replace(/\//g, "\\\\"); } function getNativeLocale(locale) { diff --git a/src/cordova/apple/OutlineAppleLib/.gitignore b/client/src/cordova/apple/OutlineAppleLib/.gitignore similarity index 100% rename from src/cordova/apple/OutlineAppleLib/.gitignore rename to client/src/cordova/apple/OutlineAppleLib/.gitignore diff --git a/src/cordova/apple/OutlineAppleLib/Package.swift b/client/src/cordova/apple/OutlineAppleLib/Package.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Package.swift rename to client/src/cordova/apple/OutlineAppleLib/Package.swift diff --git a/src/cordova/apple/OutlineAppleLib/README.md b/client/src/cordova/apple/OutlineAppleLib/README.md similarity index 100% rename from src/cordova/apple/OutlineAppleLib/README.md rename to client/src/cordova/apple/OutlineAppleLib/README.md diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/CatalystApp.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/CatalystApp.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/CatalystApp.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/CatalystApp.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/NSObject+Outline.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/NSObject+Outline.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/NSObject+Outline.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineCatalystApp/NSObject+Outline.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineLauncher/AppDelegate.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineLauncher/AppDelegate.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineLauncher/AppDelegate.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineLauncher/AppDelegate.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineNotification/NSNotification+Outline.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineNotification/NSNotification+Outline.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineNotification/NSNotification+Outline.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineNotification/NSNotification+Outline.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineSentryLogger/OutlineSentryLogger.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineSentryLogger/OutlineSentryLogger.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineSentryLogger/OutlineSentryLogger.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineSentryLogger/OutlineSentryLogger.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnel.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnel.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnel.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnel.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnelStore.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnelStore.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnelStore.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineTunnelStore.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineVpn.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineVpn.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineVpn.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/OutlineVpn.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/Subnet.swift b/client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/Subnet.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/Subnet.swift rename to client/src/cordova/apple/OutlineAppleLib/Sources/OutlineTunnel/Subnet.swift diff --git a/src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/PacketTunnelProvider.m b/client/src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/PacketTunnelProvider.m similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/PacketTunnelProvider.m rename to client/src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/PacketTunnelProvider.m diff --git a/src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/include/PacketTunnelProvider.h b/client/src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/include/PacketTunnelProvider.h similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/include/PacketTunnelProvider.h rename to client/src/cordova/apple/OutlineAppleLib/Sources/PacketTunnelProvider/include/PacketTunnelProvider.h diff --git a/src/cordova/apple/OutlineAppleLib/Tests/OutlineTunnelTest/OutlineTunnelTest.swift b/client/src/cordova/apple/OutlineAppleLib/Tests/OutlineTunnelTest/OutlineTunnelTest.swift similarity index 100% rename from src/cordova/apple/OutlineAppleLib/Tests/OutlineTunnelTest/OutlineTunnelTest.swift rename to client/src/cordova/apple/OutlineAppleLib/Tests/OutlineTunnelTest/OutlineTunnelTest.swift diff --git a/src/cordova/apple/README.md b/client/src/cordova/apple/README.md similarity index 98% rename from src/cordova/apple/README.md rename to client/src/cordova/apple/README.md index dee5592a7a..75b65d56b8 100644 --- a/src/cordova/apple/README.md +++ b/client/src/cordova/apple/README.md @@ -94,7 +94,7 @@ log stream --info --predicate 'senderImagePath contains "Outline.app"' In the Console app, select the **Action > Include Info Messages** manu, and set the filter to "Library Path" "contains" "Outline.app": -image +image > 💡 Tip: You can **save searches** in the MacOS Console app. @@ -126,7 +126,7 @@ For more info, see [Debug, Profile, and Test Your App Extension](https://develop Sometimes the app will refuse to connect, with a `VpnStartFailure` error: -image +image If that happens, there are some things you can try. diff --git a/src/cordova/apple/import_messages.mjs b/client/src/cordova/apple/import_messages.mjs similarity index 100% rename from src/cordova/apple/import_messages.mjs rename to client/src/cordova/apple/import_messages.mjs diff --git a/src/cordova/apple/ios.xcworkspace/contents.xcworkspacedata b/client/src/cordova/apple/ios.xcworkspace/contents.xcworkspacedata similarity index 100% rename from src/cordova/apple/ios.xcworkspace/contents.xcworkspacedata rename to client/src/cordova/apple/ios.xcworkspace/contents.xcworkspacedata diff --git a/src/cordova/apple/ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/client/src/cordova/apple/ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from src/cordova/apple/ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to client/src/cordova/apple/ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/src/cordova/apple/ios.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/client/src/cordova/apple/ios.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from src/cordova/apple/ios.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to client/src/cordova/apple/ios.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/src/cordova/apple/ios.xcworkspace/xcshareddata/swiftpm/Package.resolved b/client/src/cordova/apple/ios.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from src/cordova/apple/ios.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to client/src/cordova/apple/ios.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/src/cordova/apple/macos.xcworkspace/contents.xcworkspacedata b/client/src/cordova/apple/macos.xcworkspace/contents.xcworkspacedata similarity index 100% rename from src/cordova/apple/macos.xcworkspace/contents.xcworkspacedata rename to client/src/cordova/apple/macos.xcworkspace/contents.xcworkspacedata diff --git a/src/cordova/apple/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/client/src/cordova/apple/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from src/cordova/apple/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to client/src/cordova/apple/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/src/cordova/apple/macos.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/client/src/cordova/apple/macos.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from src/cordova/apple/macos.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to client/src/cordova/apple/macos.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/src/cordova/apple/macos.xcworkspace/xcshareddata/swiftpm/Package.resolved b/client/src/cordova/apple/macos.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from src/cordova/apple/macos.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to client/src/cordova/apple/macos.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/src/cordova/apple/scripts/xconfig.sh b/client/src/cordova/apple/scripts/xconfig.sh similarity index 100% rename from src/cordova/apple/scripts/xconfig.sh rename to client/src/cordova/apple/scripts/xconfig.sh diff --git a/src/cordova/apple/xcode/ios/Outline.xcodeproj/project.pbxproj b/client/src/cordova/apple/xcode/ios/Outline.xcodeproj/project.pbxproj similarity index 100% rename from src/cordova/apple/xcode/ios/Outline.xcodeproj/project.pbxproj rename to client/src/cordova/apple/xcode/ios/Outline.xcodeproj/project.pbxproj diff --git a/src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme b/client/src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme similarity index 100% rename from src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme rename to client/src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme diff --git a/src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme b/client/src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme similarity index 100% rename from src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme rename to client/src/cordova/apple/xcode/ios/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/Contents.json b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/Contents.json rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-1024.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-1024.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-1024.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128@2x.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128@2x.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128@2x.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-128@2x.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16@2x.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16@2x.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16@2x.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-16@2x.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256@2x.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256@2x.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256@2x.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-256@2x.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32@2x.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32@2x.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32@2x.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-32@2x.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512.png diff --git a/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512@2x.png b/client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512@2x.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512@2x.png rename to client/src/cordova/apple/xcode/ios/Outline/Assets.xcassets/AppIcon.appiconset/icon-512@2x.png diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.h b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.h similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.h rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.h diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.m b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.m similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.m rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppDelegate+Outline.m diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitController.swift b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitController.swift similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitController.swift rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitController.swift diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitIntegration.h b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitIntegration.h similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitIntegration.h rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/AppKitIntegration.h diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/Contents.json b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/Contents.json similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/Contents.json rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/Contents.json diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/Contents.json b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/Contents.json similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/Contents.json rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/Contents.json diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/outline-black-off-2x.png b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/outline-black-off-2x.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/outline-black-off-2x.png rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image.imageset/outline-black-off-2x.png diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/Contents.json b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/Contents.json similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/Contents.json rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/Contents.json diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/outline-black-on-2x.png b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/outline-black-on-2x.png similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/outline-black-on-2x.png rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Assets.xcassets/status_bar_button_image_connected.imageset/outline-black-on-2x.png diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/af.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/af.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/af.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/af.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/am.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/am.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/am.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/am.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ar.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ar.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ar.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ar.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/az.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/az.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/az.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/az.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bg.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bg.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bg.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bg.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bn.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bn.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bn.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bn.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bs.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bs.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bs.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/bs.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ca.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ca.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ca.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ca.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/cs.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/cs.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/cs.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/cs.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/da.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/da.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/da.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/da.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/de.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/de.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/de.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/de.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/el.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/el.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/el.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/el.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en-GB.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en-GB.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en-GB.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en-GB.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/en.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es-419.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es-419.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es-419.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es-419.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/es.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/et.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/et.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/et.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/et.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fa.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fa.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fa.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fa.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fi.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fi.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fi.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fi.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fil.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fil.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fil.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fil.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fr.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fr.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fr.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/fr.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/he.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/he.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/he.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/he.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hi.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hi.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hi.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hi.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hr.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hr.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hr.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hr.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hu.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hu.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hu.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hu.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hy.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hy.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hy.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/hy.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/id.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/id.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/id.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/id.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/is.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/is.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/is.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/is.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/it.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/it.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/it.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/it.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ja.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ja.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ja.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ja.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ka.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ka.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ka.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ka.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/kk.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/kk.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/kk.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/kk.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/km.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/km.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/km.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/km.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ko.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ko.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ko.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ko.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lo.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lo.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lo.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lo.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lt.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lt.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lt.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lt.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lv.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lv.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lv.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/lv.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mk.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mk.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mk.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mk.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mn.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mn.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mn.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mn.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mr.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mr.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mr.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/mr.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ms.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ms.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ms.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ms.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/my.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/my.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/my.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/my.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ne.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ne.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ne.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ne.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/nl.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/nl.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/nl.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/nl.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/no.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/no.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/no.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/no.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pl.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pl.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pl.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pl.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-BR.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-BR.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-BR.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-BR.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-PT.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-PT.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-PT.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/pt-PT.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ro.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ro.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ro.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ro.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ru.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ru.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ru.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ru.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/si.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/si.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/si.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/si.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sk.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sk.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sk.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sk.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sl.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sl.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sl.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sl.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sq.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sq.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sq.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sq.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr-Latn.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr-Latn.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr-Latn.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr-Latn.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sr.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sv.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sv.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sv.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sv.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sw.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sw.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sw.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/sw.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ta.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ta.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ta.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ta.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/th.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/th.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/th.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/th.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/tr.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/tr.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/tr.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/tr.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/uk.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/uk.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/uk.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/uk.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ur.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ur.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ur.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/ur.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/vi.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/vi.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/vi.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/vi.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hans.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hans.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hans.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hans.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hant.lproj/Localizable.strings b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hant.lproj/Localizable.strings similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hant.lproj/Localizable.strings rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/Resources/Strings/zh-Hant.lproj/Localizable.strings diff --git a/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/StatusItemController.swift b/client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/StatusItemController.swift similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/StatusItemController.swift rename to client/src/cordova/apple/xcode/ios/Outline/Classes/AppKitBridge/StatusItemController.swift diff --git a/src/cordova/apple/xcode/ios/Outline/Outline-Info.plist b/client/src/cordova/apple/xcode/ios/Outline/Outline-Info.plist similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Outline-Info.plist rename to client/src/cordova/apple/xcode/ios/Outline/Outline-Info.plist diff --git a/src/cordova/apple/xcode/ios/Outline/Outline.entitlements b/client/src/cordova/apple/xcode/ios/Outline/Outline.entitlements similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/Outline.entitlements rename to client/src/cordova/apple/xcode/ios/Outline/Outline.entitlements diff --git a/src/cordova/apple/xcode/ios/Outline/VpnExtension-Info.plist b/client/src/cordova/apple/xcode/ios/Outline/VpnExtension-Info.plist similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/VpnExtension-Info.plist rename to client/src/cordova/apple/xcode/ios/Outline/VpnExtension-Info.plist diff --git a/src/cordova/apple/xcode/ios/Outline/VpnExtension.entitlements b/client/src/cordova/apple/xcode/ios/Outline/VpnExtension.entitlements similarity index 100% rename from src/cordova/apple/xcode/ios/Outline/VpnExtension.entitlements rename to client/src/cordova/apple/xcode/ios/Outline/VpnExtension.entitlements diff --git a/src/cordova/apple/xcode/ios/OutlineLauncher/OutlineLauncher.entitlements b/client/src/cordova/apple/xcode/ios/OutlineLauncher/OutlineLauncher.entitlements similarity index 100% rename from src/cordova/apple/xcode/ios/OutlineLauncher/OutlineLauncher.entitlements rename to client/src/cordova/apple/xcode/ios/OutlineLauncher/OutlineLauncher.entitlements diff --git a/src/cordova/apple/xcode/macos/Outline.xcodeproj/project.pbxproj b/client/src/cordova/apple/xcode/macos/Outline.xcodeproj/project.pbxproj similarity index 100% rename from src/cordova/apple/xcode/macos/Outline.xcodeproj/project.pbxproj rename to client/src/cordova/apple/xcode/macos/Outline.xcodeproj/project.pbxproj diff --git a/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme b/client/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme similarity index 100% rename from src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme rename to client/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/Outline.xcscheme diff --git a/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/OutlineLauncher.xcscheme b/client/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/OutlineLauncher.xcscheme similarity index 100% rename from src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/OutlineLauncher.xcscheme rename to client/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/OutlineLauncher.xcscheme diff --git a/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme b/client/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme similarity index 100% rename from src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme rename to client/src/cordova/apple/xcode/macos/Outline.xcodeproj/xcshareddata/xcschemes/VpnExtension.xcscheme diff --git a/src/cordova/apple/xcode/macos/Outline/Classes/AppDelegate.m b/client/src/cordova/apple/xcode/macos/Outline/Classes/AppDelegate.m similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Classes/AppDelegate.m rename to client/src/cordova/apple/xcode/macos/Outline/Classes/AppDelegate.m diff --git a/src/cordova/apple/xcode/macos/Outline/Classes/CDVMacOsUrlHandler.swift b/client/src/cordova/apple/xcode/macos/Outline/Classes/CDVMacOsUrlHandler.swift similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Classes/CDVMacOsUrlHandler.swift rename to client/src/cordova/apple/xcode/macos/Outline/Classes/CDVMacOsUrlHandler.swift diff --git a/src/cordova/apple/xcode/macos/Outline/Classes/EventMonitor.swift b/client/src/cordova/apple/xcode/macos/Outline/Classes/EventMonitor.swift similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Classes/EventMonitor.swift rename to client/src/cordova/apple/xcode/macos/Outline/Classes/EventMonitor.swift diff --git a/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/Contents.json b/client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/Contents.json similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/Contents.json rename to client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/Contents.json diff --git a/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/outline-black-off-2x.png b/client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/outline-black-off-2x.png similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/outline-black-off-2x.png rename to client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImage.imageset/outline-black-off-2x.png diff --git a/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/Contents.json b/client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/Contents.json similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/Contents.json rename to client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/Contents.json diff --git a/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/outline-black-on-2x.png b/client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/outline-black-on-2x.png similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/outline-black-on-2x.png rename to client/src/cordova/apple/xcode/macos/Outline/Images.xcassets/StatusBarButtonImageConnected.imageset/outline-black-on-2x.png diff --git a/src/cordova/apple/xcode/macos/Outline/MainViewController.xib b/client/src/cordova/apple/xcode/macos/Outline/MainViewController.xib similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/MainViewController.xib rename to client/src/cordova/apple/xcode/macos/Outline/MainViewController.xib diff --git a/src/cordova/apple/xcode/macos/Outline/Outline-Info.plist b/client/src/cordova/apple/xcode/macos/Outline/Outline-Info.plist similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Outline-Info.plist rename to client/src/cordova/apple/xcode/macos/Outline/Outline-Info.plist diff --git a/src/cordova/apple/xcode/macos/Outline/Outline.entitlements b/client/src/cordova/apple/xcode/macos/Outline/Outline.entitlements similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/Outline.entitlements rename to client/src/cordova/apple/xcode/macos/Outline/Outline.entitlements diff --git a/src/cordova/apple/xcode/macos/Outline/VpnExtension-Info.plist b/client/src/cordova/apple/xcode/macos/Outline/VpnExtension-Info.plist similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/VpnExtension-Info.plist rename to client/src/cordova/apple/xcode/macos/Outline/VpnExtension-Info.plist diff --git a/src/cordova/apple/xcode/macos/Outline/VpnExtension.entitlements b/client/src/cordova/apple/xcode/macos/Outline/VpnExtension.entitlements similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/VpnExtension.entitlements rename to client/src/cordova/apple/xcode/macos/Outline/VpnExtension.entitlements diff --git a/src/cordova/apple/xcode/macos/Outline/config.xml b/client/src/cordova/apple/xcode/macos/Outline/config.xml similarity index 100% rename from src/cordova/apple/xcode/macos/Outline/config.xml rename to client/src/cordova/apple/xcode/macos/Outline/config.xml diff --git a/src/cordova/apple/xcode/macos/OutlineLauncher/AppDelegate.swift b/client/src/cordova/apple/xcode/macos/OutlineLauncher/AppDelegate.swift similarity index 100% rename from src/cordova/apple/xcode/macos/OutlineLauncher/AppDelegate.swift rename to client/src/cordova/apple/xcode/macos/OutlineLauncher/AppDelegate.swift diff --git a/src/cordova/apple/xcode/macos/OutlineLauncher/Base.lproj/Main.storyboard b/client/src/cordova/apple/xcode/macos/OutlineLauncher/Base.lproj/Main.storyboard similarity index 100% rename from src/cordova/apple/xcode/macos/OutlineLauncher/Base.lproj/Main.storyboard rename to client/src/cordova/apple/xcode/macos/OutlineLauncher/Base.lproj/Main.storyboard diff --git a/src/cordova/apple/xcode/macos/OutlineLauncher/Info.plist b/client/src/cordova/apple/xcode/macos/OutlineLauncher/Info.plist similarity index 100% rename from src/cordova/apple/xcode/macos/OutlineLauncher/Info.plist rename to client/src/cordova/apple/xcode/macos/OutlineLauncher/Info.plist diff --git a/src/cordova/apple/xcode/macos/OutlineLauncher/OutlineLauncher.entitlements b/client/src/cordova/apple/xcode/macos/OutlineLauncher/OutlineLauncher.entitlements similarity index 100% rename from src/cordova/apple/xcode/macos/OutlineLauncher/OutlineLauncher.entitlements rename to client/src/cordova/apple/xcode/macos/OutlineLauncher/OutlineLauncher.entitlements diff --git a/src/cordova/apple/xcode/macos/osx.json b/client/src/cordova/apple/xcode/macos/osx.json similarity index 100% rename from src/cordova/apple/xcode/macos/osx.json rename to client/src/cordova/apple/xcode/macos/osx.json diff --git a/src/cordova/apple/xcode/macos/www/cordova_plugins.js b/client/src/cordova/apple/xcode/macos/www/cordova_plugins.js similarity index 100% rename from src/cordova/apple/xcode/macos/www/cordova_plugins.js rename to client/src/cordova/apple/xcode/macos/www/cordova_plugins.js diff --git a/src/cordova/build.action.mjs b/client/src/cordova/build.action.mjs similarity index 95% rename from src/cordova/build.action.mjs rename to client/src/cordova/build.action.mjs index bab23166ba..d4b12e345d 100644 --- a/src/cordova/build.action.mjs +++ b/client/src/cordova/build.action.mjs @@ -33,14 +33,17 @@ import {downloadHttpsFile} from '../build/download_file.mjs'; export async function main(...parameters) { const {platform, buildMode, verbose} = getBuildParameters(parameters); - await runAction('www/build', ...parameters); - await runAction('tun2socks/build', ...parameters); - await runAction('cordova/setup', ...parameters); + await runAction('client/src/www/build', ...parameters); + await runAction('client/src/tun2socks/build', ...parameters); + await runAction('client/src/cordova/setup', ...parameters); if (verbose) { cordova.on('verbose', message => console.debug(`[cordova:verbose] ${message}`)); } + // this is so cordova doesn't complain about not being in a cordova project + process.env.PWD = getRootDir(); + switch (platform + buildMode) { case 'android' + 'debug': return androidDebug(verbose); diff --git a/src/cordova/import_messages.action.mjs b/client/src/cordova/import_messages.action.mjs similarity index 100% rename from src/cordova/import_messages.action.mjs rename to client/src/cordova/import_messages.action.mjs diff --git a/src/cordova/plugin/README.md b/client/src/cordova/plugin/README.md similarity index 83% rename from src/cordova/plugin/README.md rename to client/src/cordova/plugin/README.md index 0936fc13a6..a79b6eb340 100644 --- a/src/cordova/plugin/README.md +++ b/client/src/cordova/plugin/README.md @@ -22,6 +22,6 @@ Native platforms consume [outline-go-tun2socks](https://github.com/Jigsaw-Code/o We use [Swift Packages](https://developer.apple.com/documentation/xcode/swift-packages) for third party dependencies: sentry-cocoa and CocoaLumberjack. -To upgrade the Swift Package dependencies, update the `version` field for the corresponding package under the `XCRemoteSwiftPackageReference` section in the Outline.pbxproj file for [macOS](https://github.com/Jigsaw-Code/outline-client/blob/master/src/cordova/apple/xcode/macos/Outline.xcodeproj/project.pbxproj) or [iOS](https://github.com/Jigsaw-Code/outline-client/blob/master/src/cordova/apple/xcode/ios/Outline.xcodeproj/project.pbxproj). +To upgrade the Swift Package dependencies, update the `version` field for the corresponding package under the `XCRemoteSwiftPackageReference` section in the Outline.pbxproj file for [macOS](https://github.com/Jigsaw-Code/outline-apps/blob/master/src/cordova/apple/xcode/macos/Outline.xcodeproj/project.pbxproj) or [iOS](https://github.com/Jigsaw-Code/outline-apps/blob/master/src/cordova/apple/xcode/ios/Outline.xcodeproj/project.pbxproj). Alternatively, open the xcworkspace file for the curresponding OS, and update the packages via the XCode UI. diff --git a/src/cordova/plugin/android/java/build-extras.gradle b/client/src/cordova/plugin/android/java/build-extras.gradle similarity index 100% rename from src/cordova/plugin/android/java/build-extras.gradle rename to client/src/cordova/plugin/android/java/build-extras.gradle diff --git a/src/cordova/plugin/android/java/org/outline/OutlinePlugin.java b/client/src/cordova/plugin/android/java/org/outline/OutlinePlugin.java similarity index 100% rename from src/cordova/plugin/android/java/org/outline/OutlinePlugin.java rename to client/src/cordova/plugin/android/java/org/outline/OutlinePlugin.java diff --git a/src/cordova/plugin/android/resources/bypass_subnets.xml b/client/src/cordova/plugin/android/resources/bypass_subnets.xml similarity index 100% rename from src/cordova/plugin/android/resources/bypass_subnets.xml rename to client/src/cordova/plugin/android/resources/bypass_subnets.xml diff --git a/src/cordova/plugin/android/resources/small_icon.png b/client/src/cordova/plugin/android/resources/small_icon.png similarity index 100% rename from src/cordova/plugin/android/resources/small_icon.png rename to client/src/cordova/plugin/android/resources/small_icon.png diff --git a/src/cordova/plugin/android/resources/strings/values-af/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-af/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-af/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-af/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-am/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-am/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-am/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-am/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ar/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ar/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ar/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ar/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-az/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-az/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-az/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-az/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-b+sr+Latn/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-b+sr+Latn/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-b+sr+Latn/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-b+sr+Latn/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-bg/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-bg/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-bg/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-bg/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-bn/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-bn/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-bn/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-bn/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-bs/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-bs/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-bs/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-bs/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ca/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ca/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ca/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ca/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-cs/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-cs/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-cs/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-cs/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-da/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-da/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-da/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-da/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-de/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-de/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-de/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-de/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-el/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-el/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-el/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-el/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-en-rGB/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-en-rGB/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-en-rGB/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-en-rGB/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-en/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-en/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-en/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-en/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-es/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-es/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-es/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-es/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-et/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-et/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-et/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-et/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-fa/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-fa/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-fa/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-fa/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-fi/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-fi/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-fi/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-fi/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-fil/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-fil/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-fil/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-fil/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-fr/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-fr/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-fr/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-fr/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-he/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-he/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-he/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-he/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-hi/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-hi/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-hi/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-hi/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-hr/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-hr/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-hr/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-hr/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-hu/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-hu/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-hu/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-hu/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-hy/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-hy/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-hy/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-hy/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-id/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-id/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-id/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-id/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-is/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-is/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-is/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-is/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-it/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-it/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-it/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-it/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ja/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ja/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ja/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ja/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ka/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ka/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ka/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ka/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-kk/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-kk/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-kk/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-kk/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-km/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-km/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-km/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-km/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ko/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ko/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ko/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ko/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-lo/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-lo/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-lo/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-lo/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-lt/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-lt/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-lt/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-lt/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-lv/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-lv/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-lv/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-lv/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-mk/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-mk/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-mk/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-mk/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-mn/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-mn/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-mn/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-mn/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-mr/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-mr/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-mr/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-mr/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ms/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ms/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ms/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ms/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-my/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-my/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-my/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-my/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ne/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ne/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ne/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ne/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-nl/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-nl/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-nl/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-nl/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-no/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-no/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-no/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-no/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-pl/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-pl/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-pl/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-pl/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-pt-rBR/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-pt-rBR/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-pt-rBR/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-pt-rBR/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-pt-rPT/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-pt-rPT/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-pt-rPT/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-pt-rPT/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ro/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ro/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ro/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ro/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ru/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ru/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ru/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ru/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-si/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-si/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-si/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-si/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-sk/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-sk/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-sk/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-sk/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-sl/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-sl/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-sl/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-sl/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-sq/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-sq/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-sq/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-sq/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-sr/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-sr/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-sr/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-sr/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-sv/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-sv/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-sv/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-sv/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-sw/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-sw/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-sw/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-sw/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ta/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ta/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ta/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ta/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-th/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-th/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-th/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-th/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-tr/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-tr/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-tr/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-tr/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-uk/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-uk/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-uk/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-uk/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-ur/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-ur/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-ur/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-ur/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-vi/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-vi/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-vi/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-vi/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-zh-rCN/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-zh-rCN/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-zh-rCN/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-zh-rCN/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values-zh-rTW/strings.xml b/client/src/cordova/plugin/android/resources/strings/values-zh-rTW/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values-zh-rTW/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values-zh-rTW/strings.xml diff --git a/src/cordova/plugin/android/resources/strings/values/strings.xml b/client/src/cordova/plugin/android/resources/strings/values/strings.xml similarity index 100% rename from src/cordova/plugin/android/resources/strings/values/strings.xml rename to client/src/cordova/plugin/android/resources/strings/values/strings.xml diff --git a/src/cordova/plugin/android/scripts/copy_third_party.js b/client/src/cordova/plugin/android/scripts/copy_third_party.js similarity index 100% rename from src/cordova/plugin/android/scripts/copy_third_party.js rename to client/src/cordova/plugin/android/scripts/copy_third_party.js diff --git a/src/cordova/plugin/apple/src/OutlinePlugin.swift b/client/src/cordova/plugin/apple/src/OutlinePlugin.swift similarity index 100% rename from src/cordova/plugin/apple/src/OutlinePlugin.swift rename to client/src/cordova/plugin/apple/src/OutlinePlugin.swift diff --git a/src/cordova/plugin/apple/src/macos/Outline-Bridging-Header.h b/client/src/cordova/plugin/apple/src/macos/Outline-Bridging-Header.h similarity index 100% rename from src/cordova/plugin/apple/src/macos/Outline-Bridging-Header.h rename to client/src/cordova/plugin/apple/src/macos/Outline-Bridging-Header.h diff --git a/src/cordova/plugin/package.json b/client/src/cordova/plugin/package.json similarity index 100% rename from src/cordova/plugin/package.json rename to client/src/cordova/plugin/package.json diff --git a/src/cordova/plugin/plugin.xml b/client/src/cordova/plugin/plugin.xml similarity index 100% rename from src/cordova/plugin/plugin.xml rename to client/src/cordova/plugin/plugin.xml diff --git a/src/cordova/setup.action.mjs b/client/src/cordova/setup.action.mjs similarity index 96% rename from src/cordova/setup.action.mjs rename to client/src/cordova/setup.action.mjs index b12713fbe2..bd062e32ef 100644 --- a/src/cordova/setup.action.mjs +++ b/client/src/cordova/setup.action.mjs @@ -39,8 +39,8 @@ const WORKING_CORDOVA_OSX_COMMIT = '07e62a53aa6a8a828fd988bc9e884c38c3495a67'; export async function main(...parameters) { const {platform, buildMode, verbose, buildNumber, versionName} = getBuildParameters(parameters); - await runAction('www/build', ...parameters); - await runAction('tun2socks/build', ...parameters); + await runAction('client/src/www/build', ...parameters); + await runAction('client/src/tun2socks/build', ...parameters); await rmfr(path.resolve(getRootDir(), 'platforms')); await rmfr(path.resolve(getRootDir(), 'plugins')); @@ -49,6 +49,9 @@ export async function main(...parameters) { cordova.on('verbose', message => console.debug(`[cordova:verbose] ${message}`)); } + // this is so cordova doesn't complain about not being in a cordova project + process.env.PWD = getRootDir(); + switch (platform + buildMode) { case 'android' + 'debug': return androidDebug(verbose); diff --git a/src/cordova/test.action.mjs b/client/src/cordova/test.action.mjs similarity index 100% rename from src/cordova/test.action.mjs rename to client/src/cordova/test.action.mjs diff --git a/src/electron/README.md b/client/src/electron/README.md similarity index 85% rename from src/electron/README.md rename to client/src/electron/README.md index 331658da54..abf8afc564 100644 --- a/src/electron/README.md +++ b/client/src/electron/README.md @@ -11,11 +11,10 @@ brew install podman podman machine init sudo ln -s $(which podman) /usr/local/bin/docker sudo /opt/homebrew/Cellar/podman//bin/podman-mac-helper install +podman machine set --rootful podman-machine-default podman machine start ``` -> You may run into the error: `/var/folders//xgo-cache: no such file or directory`. If so, simply create that directory with `mkdir -p /var/folders//xgo-cache` and try again. - To build the Electron clients, run (it will also package an installer executable into `build/dist`): ```sh diff --git a/src/electron/add_tap_device.bat b/client/src/electron/add_tap_device.bat similarity index 100% rename from src/electron/add_tap_device.bat rename to client/src/electron/add_tap_device.bat diff --git a/src/electron/build.action.mjs b/client/src/electron/build.action.mjs similarity index 88% rename from src/electron/build.action.mjs rename to client/src/electron/build.action.mjs index 5afa64b7ab..8d1c6c0080 100644 --- a/src/electron/build.action.mjs +++ b/client/src/electron/build.action.mjs @@ -22,7 +22,7 @@ import url from 'url'; import {getRootDir} from '../build/get_root_dir.mjs'; import path from 'path'; -const ELECTRON_BUILD_DIR = 'build'; +const ELECTRON_BUILD_DIR = 'output'; const ELECTRON_PLATFORMS = ['linux', 'windows']; export async function main(...parameters) { @@ -48,9 +48,11 @@ export async function main(...parameters) { ); } - await runAction('www/build', ...parameters); - await runAction('tun2socks/build', ...parameters); - await runAction('electron/build_main', ...parameters); + await runAction('client/src/www/build', ...parameters); + await runAction('client/src/tun2socks/build', ...parameters); + await runAction('client/src/electron/build_main', ...parameters); + + await fs.mkdir(path.join(getRootDir(), ELECTRON_BUILD_DIR, 'icons'), {recursive: true}); await copydir.sync( path.join(getRootDir(), 'src', 'electron', 'icons'), @@ -64,6 +66,7 @@ export async function main(...parameters) { // build electron binary await electron.build({ publish: buildMode === 'release' ? 'always' : 'never', + projectDir: getRootDir(), targets: Platform[platform.toLocaleUpperCase()].createTarget(), config: { ...electronConfig, diff --git a/src/electron/build_main.action.mjs b/client/src/electron/build_main.action.mjs similarity index 97% rename from src/electron/build_main.action.mjs rename to client/src/electron/build_main.action.mjs index 3016726230..ab42442e51 100644 --- a/src/electron/build_main.action.mjs +++ b/client/src/electron/build_main.action.mjs @@ -36,7 +36,7 @@ export async function main(...parameters) { ); } - await runAction('www/build', ...parameters); + await runAction('client/src/www/build', ...parameters); // TODO(daniellacosse): separate building the preload script out into its own separate step await runWebpack( diff --git a/src/electron/connectivity.ts b/client/src/electron/connectivity.ts similarity index 100% rename from src/electron/connectivity.ts rename to client/src/electron/connectivity.ts diff --git a/src/electron/custom_install_steps.nsh b/client/src/electron/custom_install_steps.nsh similarity index 94% rename from src/electron/custom_install_steps.nsh rename to client/src/electron/custom_install_steps.nsh index 3f106efcd6..991d95ef83 100755 --- a/src/electron/custom_install_steps.nsh +++ b/client/src/electron/custom_install_steps.nsh @@ -52,15 +52,15 @@ ${StrRep} File /r "${PROJECT_DIR}\third_party\tap-windows6\bin\i386\*" ${EndIf} SetOutPath - - File "${PROJECT_DIR}\src\electron\add_tap_device.bat" - File "${PROJECT_DIR}\src\electron\find_tap_device_name.bat" + File "${PROJECT_DIR}\client\src\electron\add_tap_device.bat" + File "${PROJECT_DIR}\client\src\electron\find_tap_device_name.bat" ; OutlineService files, stopping the service first in case it's still running. nsExec::Exec "$SYSDIR\net stop OutlineService" - File "${PROJECT_DIR}\tools\OutlineService\OutlineService\bin\OutlineService.exe" - File "${PROJECT_DIR}\tools\smartdnsblock\bin\smartdnsblock.exe" + File "${PROJECT_DIR}\client\tools\OutlineService\OutlineService\bin\OutlineService.exe" + File "${PROJECT_DIR}\client\tools\smartdnsblock\bin\smartdnsblock.exe" File "${PROJECT_DIR}\third_party\newtonsoft\Newtonsoft.Json.dll" - File "${PROJECT_DIR}\src\electron\install_windows_service.bat" + File "${PROJECT_DIR}\client\src\electron\install_windows_service.bat" ; ExecToStack captures both stdout and stderr from the script, in the order output. ; Set a (long) timeout in case the device never becomes visible to netsh. diff --git a/client/src/electron/electron-builder.json b/client/src/electron/electron-builder.json new file mode 100644 index 0000000000..e6f95a702c --- /dev/null +++ b/client/src/electron/electron-builder.json @@ -0,0 +1,33 @@ +{ + "files": ["client/build/electron", "client/www", "client/resources/tray", "!node_modules/electron"], + "asarUnpack": ["third_party", "client/tools"], + "artifactName": "Outline-Client.${ext}", + "directories": { + "output": "client/output/dist" + }, + "linux": { + "target": { + "target": "AppImage", + "arch": ["x64"] + }, + "files": ["output/icons/png", "output/build/linux", "tools/outline_proxy_controller/dist"], + "icon": "build/icons/png", + "category": "Network" + }, + "win": { + "target": [ + { + "target": "nsis", + "arch": "ia32" + } + ], + "files": ["output/build/windows"], + "icon": "output/icons/win/icon.ico", + "sign": "client/src/electron/windows/electron_builder_signing_plugin.cjs", + "signingHashAlgorithms": ["sha256"] + }, + "nsis": { + "perMachine": true, + "include": "client/src/electron/custom_install_steps.nsh" + } +} diff --git a/src/electron/find_tap_device_name.bat b/client/src/electron/find_tap_device_name.bat similarity index 100% rename from src/electron/find_tap_device_name.bat rename to client/src/electron/find_tap_device_name.bat diff --git a/src/electron/go_vpn_tunnel.ts b/client/src/electron/go_vpn_tunnel.ts similarity index 100% rename from src/electron/go_vpn_tunnel.ts rename to client/src/electron/go_vpn_tunnel.ts diff --git a/src/electron/icons/mac/icon.icns b/client/src/electron/icons/mac/icon.icns similarity index 100% rename from src/electron/icons/mac/icon.icns rename to client/src/electron/icons/mac/icon.icns diff --git a/src/electron/icons/png/1024x1024.png b/client/src/electron/icons/png/1024x1024.png similarity index 100% rename from src/electron/icons/png/1024x1024.png rename to client/src/electron/icons/png/1024x1024.png diff --git a/src/electron/icons/png/128x128.png b/client/src/electron/icons/png/128x128.png similarity index 100% rename from src/electron/icons/png/128x128.png rename to client/src/electron/icons/png/128x128.png diff --git a/src/electron/icons/png/16x16.png b/client/src/electron/icons/png/16x16.png similarity index 100% rename from src/electron/icons/png/16x16.png rename to client/src/electron/icons/png/16x16.png diff --git a/src/electron/icons/png/24x24.png b/client/src/electron/icons/png/24x24.png similarity index 100% rename from src/electron/icons/png/24x24.png rename to client/src/electron/icons/png/24x24.png diff --git a/src/electron/icons/png/256x256.png b/client/src/electron/icons/png/256x256.png similarity index 100% rename from src/electron/icons/png/256x256.png rename to client/src/electron/icons/png/256x256.png diff --git a/src/electron/icons/png/32x32.png b/client/src/electron/icons/png/32x32.png similarity index 100% rename from src/electron/icons/png/32x32.png rename to client/src/electron/icons/png/32x32.png diff --git a/src/electron/icons/png/48x48.png b/client/src/electron/icons/png/48x48.png similarity index 100% rename from src/electron/icons/png/48x48.png rename to client/src/electron/icons/png/48x48.png diff --git a/src/electron/icons/png/512x512.png b/client/src/electron/icons/png/512x512.png similarity index 100% rename from src/electron/icons/png/512x512.png rename to client/src/electron/icons/png/512x512.png diff --git a/src/electron/icons/png/64x64.png b/client/src/electron/icons/png/64x64.png similarity index 100% rename from src/electron/icons/png/64x64.png rename to client/src/electron/icons/png/64x64.png diff --git a/src/electron/icons/win/icon.ico b/client/src/electron/icons/win/icon.ico similarity index 100% rename from src/electron/icons/win/icon.ico rename to client/src/electron/icons/win/icon.ico diff --git a/src/electron/index.ts b/client/src/electron/index.ts similarity index 100% rename from src/electron/index.ts rename to client/src/electron/index.ts diff --git a/src/electron/install_windows_service.bat b/client/src/electron/install_windows_service.bat similarity index 100% rename from src/electron/install_windows_service.bat rename to client/src/electron/install_windows_service.bat diff --git a/src/electron/preload.d.ts b/client/src/electron/preload.d.ts similarity index 100% rename from src/electron/preload.d.ts rename to client/src/electron/preload.d.ts diff --git a/src/electron/preload.ts b/client/src/electron/preload.ts similarity index 100% rename from src/electron/preload.ts rename to client/src/electron/preload.ts diff --git a/src/electron/process.ts b/client/src/electron/process.ts similarity index 100% rename from src/electron/process.ts rename to client/src/electron/process.ts diff --git a/src/electron/routing_service.ts b/client/src/electron/routing_service.ts similarity index 99% rename from src/electron/routing_service.ts rename to client/src/electron/routing_service.ts index 0ca1f1bc67..2bf0db2970 100755 --- a/src/electron/routing_service.ts +++ b/client/src/electron/routing_service.ts @@ -296,9 +296,7 @@ async function installLinuxRoutingServices(): Promise { const src = path.join(srcFolderPath, descriptor.filename); const srcContent = await fsextra.readFile(src); - descriptor.sha256 = createHash('sha256') - .update(srcContent) - .digest('hex'); + descriptor.sha256 = createHash('sha256').update(srcContent).digest('hex'); const dest = path.join(tmp, descriptor.filename); await fsextra.copy(src, dest, {overwrite: true}); diff --git a/src/electron/start.action.mjs b/client/src/electron/start.action.mjs similarity index 84% rename from src/electron/start.action.mjs rename to client/src/electron/start.action.mjs index 59efac9fff..5e1809b517 100644 --- a/src/electron/start.action.mjs +++ b/client/src/electron/start.action.mjs @@ -28,9 +28,9 @@ import {spawnStream} from '../build/spawn_stream.mjs'; export async function main(...parameters) { const {platform, buildMode} = getBuildParameters(parameters); - await runAction('www/build', platform, `--buildMode=${buildMode}`); - await runAction('electron/build_main', ...parameters); - await runAction('electron/build', platform, `--buildMode=${buildMode}`); + await runAction('client/src/www/build', platform, `--buildMode=${buildMode}`); + await runAction('client/src/electron/build_main', ...parameters); + await runAction('client/src/electron/build', platform, `--buildMode=${buildMode}`); process.env.OUTLINE_DEBUG = buildMode === 'debug'; diff --git a/src/electron/tsconfig.json b/client/src/electron/tsconfig.json similarity index 100% rename from src/electron/tsconfig.json rename to client/src/electron/tsconfig.json diff --git a/src/electron/tunnel_store.ts b/client/src/electron/tunnel_store.ts similarity index 100% rename from src/electron/tunnel_store.ts rename to client/src/electron/tunnel_store.ts diff --git a/src/electron/types/socks/index.d.ts b/client/src/electron/types/socks/index.d.ts similarity index 100% rename from src/electron/types/socks/index.d.ts rename to client/src/electron/types/socks/index.d.ts diff --git a/src/electron/vpn_tunnel.ts b/client/src/electron/vpn_tunnel.ts similarity index 100% rename from src/electron/vpn_tunnel.ts rename to client/src/electron/vpn_tunnel.ts diff --git a/src/electron/webpack_electron_main.mjs b/client/src/electron/webpack_electron_main.mjs similarity index 95% rename from src/electron/webpack_electron_main.mjs rename to client/src/electron/webpack_electron_main.mjs index 58b037b9a4..6347cf87fd 100755 --- a/src/electron/webpack_electron_main.mjs +++ b/client/src/electron/webpack_electron_main.mjs @@ -22,7 +22,7 @@ const __dirname = path.dirname(__filename); export default ({sentryDsn, appVersion}) => [ { - entry: './src/electron/index.ts', + entry: './client/src/electron/index.ts', target: 'electron-main', node: { __dirname: false, @@ -53,7 +53,7 @@ export default ({sentryDsn, appVersion}) => [ }, }, { - entry: './src/electron/preload.ts', + entry: './client/src/electron/preload.ts', target: 'electron-preload', devtool: 'inline-source-map', module: { diff --git a/src/electron/windows/digicert-usb-config/eToken-macos.cfg b/client/src/electron/windows/digicert-usb-config/eToken-macos.cfg similarity index 100% rename from src/electron/windows/digicert-usb-config/eToken-macos.cfg rename to client/src/electron/windows/digicert-usb-config/eToken-macos.cfg diff --git a/src/electron/windows/digicert-usb-config/eToken-windows.cfg b/client/src/electron/windows/digicert-usb-config/eToken-windows.cfg similarity index 100% rename from src/electron/windows/digicert-usb-config/eToken-windows.cfg rename to client/src/electron/windows/digicert-usb-config/eToken-windows.cfg diff --git a/src/electron/windows/electron_builder_signing_plugin.cjs b/client/src/electron/windows/electron_builder_signing_plugin.cjs similarity index 87% rename from src/electron/windows/electron_builder_signing_plugin.cjs rename to client/src/electron/windows/electron_builder_signing_plugin.cjs index cc66e17f3e..fac2b89a7c 100644 --- a/src/electron/windows/electron_builder_signing_plugin.cjs +++ b/client/src/electron/windows/electron_builder_signing_plugin.cjs @@ -13,7 +13,7 @@ // limitations under the License. // CommonJS module is required, ES6 module is not supported by electron-builder: -// /outline-client/node_modules/app-builder-lib/out/platformPackager.js:597 +// /outline-apps/node_modules/app-builder-lib/out/platformPackager.js:597 // const m = require(p); // ^ // Error [ERR_REQUIRE_ESM]: require() of ES Module .../electron_builder_signing_plugin.mjs not supported. @@ -30,9 +30,13 @@ */ async function electronBuilderEntryPoint(configuration) { const {runAction} = await import('../../build/run_action.mjs'); - await runAction('src/electron/windows/sign_windows_executable', - '--target', configuration.path, - '--algorithm', configuration.hash); + await runAction( + 'src/electron/windows/sign_windows_executable', + '--target', + configuration.path, + '--algorithm', + configuration.hash + ); } exports.default = electronBuilderEntryPoint; diff --git a/src/electron/windows/sign_windows_executable.action.mjs b/client/src/electron/windows/sign_windows_executable.action.mjs similarity index 99% rename from src/electron/windows/sign_windows_executable.action.mjs rename to client/src/electron/windows/sign_windows_executable.action.mjs index 49697981a5..6a9a57e64f 100644 --- a/src/electron/windows/sign_windows_executable.action.mjs +++ b/client/src/electron/windows/sign_windows_executable.action.mjs @@ -19,7 +19,7 @@ import {dirname, resolve} from 'path'; import {fileURLToPath, pathToFileURL} from 'url'; import {format} from 'util'; -import {jsign} from '../../../third_party/jsign/index.mjs'; +import {jsign} from '../../../../third_party/jsign/index.mjs'; /** * Get the parent folder path of this script. diff --git a/src/infrastructure/custom_error.ts b/client/src/infrastructure/custom_error.ts similarity index 100% rename from src/infrastructure/custom_error.ts rename to client/src/infrastructure/custom_error.ts diff --git a/src/infrastructure/electron/app_paths.ts b/client/src/infrastructure/electron/app_paths.ts similarity index 100% rename from src/infrastructure/electron/app_paths.ts rename to client/src/infrastructure/electron/app_paths.ts diff --git a/src/infrastructure/i18n.ts b/client/src/infrastructure/i18n.ts similarity index 100% rename from src/infrastructure/i18n.ts rename to client/src/infrastructure/i18n.ts diff --git a/src/infrastructure/memory_storage.ts b/client/src/infrastructure/memory_storage.ts similarity index 100% rename from src/infrastructure/memory_storage.ts rename to client/src/infrastructure/memory_storage.ts diff --git a/src/infrastructure/timeout_promise.ts b/client/src/infrastructure/timeout_promise.ts similarity index 100% rename from src/infrastructure/timeout_promise.ts rename to client/src/infrastructure/timeout_promise.ts diff --git a/src/tun2socks/build.action.mjs b/client/src/tun2socks/build.action.mjs similarity index 95% rename from src/tun2socks/build.action.mjs rename to client/src/tun2socks/build.action.mjs index c91c9889e6..f89b5019b1 100644 --- a/src/tun2socks/build.action.mjs +++ b/client/src/tun2socks/build.action.mjs @@ -37,7 +37,7 @@ export async function main(...parameters) { 'build', '-o', `output/build/${targetPlatform}/tun2socks`, - 'github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/electron' + 'github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/electron' ); } diff --git a/src/tun2socks/outline/client.go b/client/src/tun2socks/outline/client.go similarity index 100% rename from src/tun2socks/outline/client.go rename to client/src/tun2socks/outline/client.go diff --git a/src/tun2socks/outline/connectivity/connectivity.go b/client/src/tun2socks/outline/connectivity/connectivity.go similarity index 96% rename from src/tun2socks/outline/connectivity/connectivity.go rename to client/src/tun2socks/outline/connectivity/connectivity.go index 34c5ded2eb..b6e9175bec 100644 --- a/src/tun2socks/outline/connectivity/connectivity.go +++ b/client/src/tun2socks/outline/connectivity/connectivity.go @@ -21,8 +21,8 @@ import ( "net/http" "time" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/neterrors" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/neterrors" "github.com/Jigsaw-Code/outline-sdk/transport" ) @@ -119,7 +119,7 @@ func CheckTCPConnectivityWithHTTP(dialer transport.StreamDialer, targetURL strin if !hasPort(targetAddr) { targetAddr = net.JoinHostPort(targetAddr, "80") } - conn, err := dialer.Dial(ctx, targetAddr) + conn, err := dialer.DialStream(ctx, targetAddr) if err != nil { return &reachabilityError{err} } diff --git a/src/tun2socks/outline/connectivity/connectivity_test.go b/client/src/tun2socks/outline/connectivity/connectivity_test.go similarity index 100% rename from src/tun2socks/outline/connectivity/connectivity_test.go rename to client/src/tun2socks/outline/connectivity/connectivity_test.go diff --git a/src/tun2socks/outline/electron/main.go b/client/src/tun2socks/outline/electron/main.go similarity index 95% rename from src/tun2socks/outline/electron/main.go rename to client/src/tun2socks/outline/electron/main.go index 42bdae3d90..e2864c46fc 100644 --- a/src/tun2socks/outline/electron/main.go +++ b/client/src/tun2socks/outline/electron/main.go @@ -24,10 +24,10 @@ import ( "syscall" "time" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/internal/utf8" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/neterrors" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/shadowsocks" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/tun2socks" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/internal/utf8" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/neterrors" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/shadowsocks" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/tun2socks" "github.com/eycorsican/go-tun2socks/common/log" _ "github.com/eycorsican/go-tun2socks/common/log/simple" // Register a simple logger. "github.com/eycorsican/go-tun2socks/core" diff --git a/src/tun2socks/outline/internal/utf8/utf8.go b/client/src/tun2socks/outline/internal/utf8/utf8.go similarity index 100% rename from src/tun2socks/outline/internal/utf8/utf8.go rename to client/src/tun2socks/outline/internal/utf8/utf8.go diff --git a/src/tun2socks/outline/internal/utf8/utf8_test.go b/client/src/tun2socks/outline/internal/utf8/utf8_test.go similarity index 100% rename from src/tun2socks/outline/internal/utf8/utf8_test.go rename to client/src/tun2socks/outline/internal/utf8/utf8_test.go diff --git a/src/tun2socks/outline/neterrors/neterrors.go b/client/src/tun2socks/outline/neterrors/neterrors.go similarity index 95% rename from src/tun2socks/outline/neterrors/neterrors.go rename to client/src/tun2socks/outline/neterrors/neterrors.go index a95c9ffbfa..3ebebbc248 100644 --- a/src/tun2socks/outline/neterrors/neterrors.go +++ b/client/src/tun2socks/outline/neterrors/neterrors.go @@ -24,7 +24,7 @@ func (e Error) Number() int { return int(e) } -// Outline error codes. Must be kept in sync with definitions in https://github.com/Jigsaw-Code/outline-client/blob/master/src/www/model/errors.ts +// Outline error codes. Must be kept in sync with definitions in https://github.com/Jigsaw-Code/outline-apps/blob/master/src/www/model/errors.ts const ( NoError Error = 0 Unexpected Error = 1 diff --git a/src/tun2socks/outline/shadowsocks/client.go b/client/src/tun2socks/outline/shadowsocks/client.go similarity index 95% rename from src/tun2socks/outline/shadowsocks/client.go rename to client/src/tun2socks/outline/shadowsocks/client.go index a96b004b71..bacbc2c82b 100644 --- a/src/tun2socks/outline/shadowsocks/client.go +++ b/client/src/tun2socks/outline/shadowsocks/client.go @@ -25,9 +25,9 @@ import ( "strconv" "time" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/connectivity" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/internal/utf8" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/connectivity" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/internal/utf8" "github.com/Jigsaw-Code/outline-sdk/transport" "github.com/Jigsaw-Code/outline-sdk/transport/shadowsocks" "github.com/eycorsican/go-tun2socks/common/log" diff --git a/src/tun2socks/outline/shadowsocks/client_test.go b/client/src/tun2socks/outline/shadowsocks/client_test.go similarity index 100% rename from src/tun2socks/outline/shadowsocks/client_test.go rename to client/src/tun2socks/outline/shadowsocks/client_test.go diff --git a/src/tun2socks/outline/shadowsocks/config.go b/client/src/tun2socks/outline/shadowsocks/config.go similarity index 100% rename from src/tun2socks/outline/shadowsocks/config.go rename to client/src/tun2socks/outline/shadowsocks/config.go diff --git a/src/tun2socks/outline/shadowsocks/config_test.go b/client/src/tun2socks/outline/shadowsocks/config_test.go similarity index 100% rename from src/tun2socks/outline/shadowsocks/config_test.go rename to client/src/tun2socks/outline/shadowsocks/config_test.go diff --git a/src/tun2socks/outline/tun2socks/tcp.go b/client/src/tun2socks/outline/tun2socks/tcp.go similarity index 96% rename from src/tun2socks/outline/tun2socks/tcp.go rename to client/src/tun2socks/outline/tun2socks/tcp.go index 1bb6bd2c88..b1b92ac787 100644 --- a/src/tun2socks/outline/tun2socks/tcp.go +++ b/client/src/tun2socks/outline/tun2socks/tcp.go @@ -33,7 +33,7 @@ func NewTCPHandler(client transport.StreamDialer) core.TCPConnHandler { } func (h *tcpHandler) Handle(conn net.Conn, target *net.TCPAddr) error { - proxyConn, err := h.dialer.Dial(context.Background(), target.String()) + proxyConn, err := h.dialer.DialStream(context.Background(), target.String()) if err != nil { return err } diff --git a/src/tun2socks/outline/tun2socks/tunnel.go b/client/src/tun2socks/outline/tun2socks/tunnel.go similarity index 95% rename from src/tun2socks/outline/tun2socks/tunnel.go rename to client/src/tun2socks/outline/tun2socks/tunnel.go index 5944373ab8..17fc0d522b 100644 --- a/src/tun2socks/outline/tun2socks/tunnel.go +++ b/client/src/tun2socks/outline/tun2socks/tunnel.go @@ -25,8 +25,8 @@ import ( "github.com/Jigsaw-Code/outline-sdk/transport" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/connectivity" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/tunnel" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/connectivity" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/tunnel" ) // Tunnel represents a tunnel from a TUN device to a server. diff --git a/src/tun2socks/outline/tun2socks/tunnel_android.go b/client/src/tun2socks/outline/tun2socks/tunnel_android.go similarity index 92% rename from src/tun2socks/outline/tun2socks/tunnel_android.go rename to client/src/tun2socks/outline/tun2socks/tunnel_android.go index c9792fc858..f1ede839f4 100644 --- a/src/tun2socks/outline/tun2socks/tunnel_android.go +++ b/client/src/tun2socks/outline/tun2socks/tunnel_android.go @@ -17,8 +17,8 @@ package tun2socks import ( "runtime/debug" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/shadowsocks" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/tunnel" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/shadowsocks" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/tunnel" "github.com/eycorsican/go-tun2socks/common/log" ) diff --git a/src/tun2socks/outline/tun2socks/tunnel_darwin.go b/client/src/tun2socks/outline/tun2socks/tunnel_darwin.go similarity index 96% rename from src/tun2socks/outline/tun2socks/tunnel_darwin.go rename to client/src/tun2socks/outline/tun2socks/tunnel_darwin.go index 2caf3d06a8..a0ab3b3cad 100644 --- a/src/tun2socks/outline/tun2socks/tunnel_darwin.go +++ b/client/src/tun2socks/outline/tun2socks/tunnel_darwin.go @@ -20,7 +20,7 @@ import ( "runtime/debug" "time" - "github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/shadowsocks" + "github.com/Jigsaw-Code/outline-apps/client/src/tun2socks/outline/shadowsocks" ) // TunWriter is an interface that allows for outputting packets to the TUN (VPN). diff --git a/src/tun2socks/outline/tun2socks/udp.go b/client/src/tun2socks/outline/tun2socks/udp.go similarity index 100% rename from src/tun2socks/outline/tun2socks/udp.go rename to client/src/tun2socks/outline/tun2socks/udp.go diff --git a/src/tun2socks/tunnel/tun.go b/client/src/tun2socks/tunnel/tun.go similarity index 100% rename from src/tun2socks/tunnel/tun.go rename to client/src/tun2socks/tunnel/tun.go diff --git a/src/tun2socks/tunnel/tun_android.go b/client/src/tun2socks/tunnel/tun_android.go similarity index 100% rename from src/tun2socks/tunnel/tun_android.go rename to client/src/tun2socks/tunnel/tun_android.go diff --git a/src/tun2socks/tunnel/tunnel.go b/client/src/tun2socks/tunnel/tunnel.go similarity index 100% rename from src/tun2socks/tunnel/tunnel.go rename to client/src/tun2socks/tunnel/tunnel.go diff --git a/src/www/.storybook/main.js b/client/src/www/.storybook/main.js similarity index 100% rename from src/www/.storybook/main.js rename to client/src/www/.storybook/main.js diff --git a/src/www/.storybook/preview-head.html b/client/src/www/.storybook/preview-head.html similarity index 100% rename from src/www/.storybook/preview-head.html rename to client/src/www/.storybook/preview-head.html diff --git a/src/www/.storybook/preview.js b/client/src/www/.storybook/preview.js similarity index 100% rename from src/www/.storybook/preview.js rename to client/src/www/.storybook/preview.js diff --git a/src/www/TODO.spec.ts b/client/src/www/TODO.spec.ts similarity index 100% rename from src/www/TODO.spec.ts rename to client/src/www/TODO.spec.ts diff --git a/src/www/app/app.spec.ts b/client/src/www/app/app.spec.ts similarity index 100% rename from src/www/app/app.spec.ts rename to client/src/www/app/app.spec.ts diff --git a/src/www/app/app.ts b/client/src/www/app/app.ts similarity index 100% rename from src/www/app/app.ts rename to client/src/www/app/app.ts diff --git a/src/www/app/clipboard.ts b/client/src/www/app/clipboard.ts similarity index 100% rename from src/www/app/clipboard.ts rename to client/src/www/app/clipboard.ts diff --git a/src/www/app/cordova_main.ts b/client/src/www/app/cordova_main.ts similarity index 100% rename from src/www/app/cordova_main.ts rename to client/src/www/app/cordova_main.ts diff --git a/src/www/app/electron_main.ts b/client/src/www/app/electron_main.ts similarity index 100% rename from src/www/app/electron_main.ts rename to client/src/www/app/electron_main.ts diff --git a/src/www/app/electron_outline_tunnel.ts b/client/src/www/app/electron_outline_tunnel.ts similarity index 100% rename from src/www/app/electron_outline_tunnel.ts rename to client/src/www/app/electron_outline_tunnel.ts diff --git a/src/www/app/environment.ts b/client/src/www/app/environment.ts similarity index 97% rename from src/www/app/environment.ts rename to client/src/www/app/environment.ts index b8a7be4066..3f21114cc6 100644 --- a/src/www/app/environment.ts +++ b/client/src/www/app/environment.ts @@ -15,7 +15,7 @@ export interface EnvironmentVariables { APP_VERSION: string; APP_BUILD_NUMBER: string; - SENTRY_DSN: string|undefined; + SENTRY_DSN: string | undefined; } // According to http://caniuse.com/#feat=fetch fetch didn't land iOS Safari diff --git a/src/www/app/fake_tunnel.ts b/client/src/www/app/fake_tunnel.ts similarity index 100% rename from src/www/app/fake_tunnel.ts rename to client/src/www/app/fake_tunnel.ts diff --git a/src/www/app/main.ts b/client/src/www/app/main.ts similarity index 100% rename from src/www/app/main.ts rename to client/src/www/app/main.ts diff --git a/src/www/app/outline_server_repository/access_key_serialization.ts b/client/src/www/app/outline_server_repository/access_key_serialization.ts similarity index 100% rename from src/www/app/outline_server_repository/access_key_serialization.ts rename to client/src/www/app/outline_server_repository/access_key_serialization.ts diff --git a/src/www/app/outline_server_repository/index.ts b/client/src/www/app/outline_server_repository/index.ts similarity index 100% rename from src/www/app/outline_server_repository/index.ts rename to client/src/www/app/outline_server_repository/index.ts diff --git a/src/www/app/outline_server_repository/outline_server_repository.spec.ts b/client/src/www/app/outline_server_repository/outline_server_repository.spec.ts similarity index 100% rename from src/www/app/outline_server_repository/outline_server_repository.spec.ts rename to client/src/www/app/outline_server_repository/outline_server_repository.spec.ts diff --git a/src/www/app/outline_server_repository/server.ts b/client/src/www/app/outline_server_repository/server.ts similarity index 100% rename from src/www/app/outline_server_repository/server.ts rename to client/src/www/app/outline_server_repository/server.ts diff --git a/src/www/app/platform.ts b/client/src/www/app/platform.ts similarity index 100% rename from src/www/app/platform.ts rename to client/src/www/app/platform.ts diff --git a/src/www/app/settings.spec.ts b/client/src/www/app/settings.spec.ts similarity index 100% rename from src/www/app/settings.spec.ts rename to client/src/www/app/settings.spec.ts diff --git a/src/www/app/settings.ts b/client/src/www/app/settings.ts similarity index 93% rename from src/www/app/settings.ts rename to client/src/www/app/settings.ts index 2cd7ecb9b0..c0d0fce6cf 100644 --- a/src/www/app/settings.ts +++ b/client/src/www/app/settings.ts @@ -20,7 +20,7 @@ interface StorageSettings { export enum SettingsKey { VPN_WARNING_DISMISSED = 'vpn-warning-dismissed', AUTO_CONNECT_DIALOG_DISMISSED = 'auto-connect-dialog-dismissed', - PRIVACY_ACK = 'privacy-ack' + PRIVACY_ACK = 'privacy-ack', } // Persistent storage for user settings that supports a limited set of keys. @@ -30,8 +30,9 @@ export class Settings { private readonly settings = new Map(); constructor( - private storage: Storage = window.localStorage, - private validKeys: string[] = Object.values(SettingsKey)) { + private storage: Storage = window.localStorage, + private validKeys: string[] = Object.values(SettingsKey) + ) { this.loadSettings(); } @@ -79,4 +80,3 @@ export class Settings { this.storage.setItem(Settings.STORAGE_KEY, storageSettingsJson); } } - diff --git a/src/www/app/tunnel.ts b/client/src/www/app/tunnel.ts similarity index 100% rename from src/www/app/tunnel.ts rename to client/src/www/app/tunnel.ts diff --git a/src/www/app/updater.ts b/client/src/www/app/updater.ts similarity index 95% rename from src/www/app/updater.ts rename to client/src/www/app/updater.ts index e0c747657a..09a435d304 100644 --- a/src/www/app/updater.ts +++ b/client/src/www/app/updater.ts @@ -20,7 +20,7 @@ export interface Updater { } export class AbstractUpdater implements Updater { - private listener: UpdateListener|null = null; + private listener: UpdateListener | null = null; setListener(listener: UpdateListener) { this.listener = listener; diff --git a/src/www/app/url_interceptor.ts b/client/src/www/app/url_interceptor.ts similarity index 100% rename from src/www/app/url_interceptor.ts rename to client/src/www/app/url_interceptor.ts diff --git a/src/www/app/vpn_installer.ts b/client/src/www/app/vpn_installer.ts similarity index 100% rename from src/www/app/vpn_installer.ts rename to client/src/www/app/vpn_installer.ts diff --git a/src/www/assets/brand-logo.png b/client/src/www/assets/brand-logo.png similarity index 100% rename from src/www/assets/brand-logo.png rename to client/src/www/assets/brand-logo.png diff --git a/src/www/assets/circle.png b/client/src/www/assets/circle.png similarity index 100% rename from src/www/assets/circle.png rename to client/src/www/assets/circle.png diff --git a/src/www/assets/icons/about.png b/client/src/www/assets/icons/about.png similarity index 100% rename from src/www/assets/icons/about.png rename to client/src/www/assets/icons/about.png diff --git a/src/www/assets/icons/add.png b/client/src/www/assets/icons/add.png similarity index 100% rename from src/www/assets/icons/add.png rename to client/src/www/assets/icons/add.png diff --git a/src/www/assets/icons/back.png b/client/src/www/assets/icons/back.png similarity index 100% rename from src/www/assets/icons/back.png rename to client/src/www/assets/icons/back.png diff --git a/src/www/assets/icons/change_language.png b/client/src/www/assets/icons/change_language.png similarity index 100% rename from src/www/assets/icons/change_language.png rename to client/src/www/assets/icons/change_language.png diff --git a/src/www/assets/icons/contact.png b/client/src/www/assets/icons/contact.png similarity index 100% rename from src/www/assets/icons/contact.png rename to client/src/www/assets/icons/contact.png diff --git a/src/www/assets/icons/feedback.png b/client/src/www/assets/icons/feedback.png similarity index 100% rename from src/www/assets/icons/feedback.png rename to client/src/www/assets/icons/feedback.png diff --git a/src/www/assets/icons/help.png b/client/src/www/assets/icons/help.png similarity index 100% rename from src/www/assets/icons/help.png rename to client/src/www/assets/icons/help.png diff --git a/src/www/assets/icons/menu.png b/client/src/www/assets/icons/menu.png similarity index 100% rename from src/www/assets/icons/menu.png rename to client/src/www/assets/icons/menu.png diff --git a/src/www/assets/icons/outline.png b/client/src/www/assets/icons/outline.png similarity index 100% rename from src/www/assets/icons/outline.png rename to client/src/www/assets/icons/outline.png diff --git a/src/www/assets/icons/quit.png b/client/src/www/assets/icons/quit.png similarity index 100% rename from src/www/assets/icons/quit.png rename to client/src/www/assets/icons/quit.png diff --git a/src/www/assets/jigsaw-logo.png b/client/src/www/assets/jigsaw-logo.png similarity index 100% rename from src/www/assets/jigsaw-logo.png rename to client/src/www/assets/jigsaw-logo.png diff --git a/src/www/assets/jigsaw-logo.svg b/client/src/www/assets/jigsaw-logo.svg similarity index 100% rename from src/www/assets/jigsaw-logo.svg rename to client/src/www/assets/jigsaw-logo.svg diff --git a/src/www/assets/logo-nav.png b/client/src/www/assets/logo-nav.png similarity index 100% rename from src/www/assets/logo-nav.png rename to client/src/www/assets/logo-nav.png diff --git a/src/www/assets/material_icons.woff2 b/client/src/www/assets/material_icons.woff2 similarity index 100% rename from src/www/assets/material_icons.woff2 rename to client/src/www/assets/material_icons.woff2 diff --git a/src/www/assets/outline-client-logo.png b/client/src/www/assets/outline-client-logo.png similarity index 100% rename from src/www/assets/outline-client-logo.png rename to client/src/www/assets/outline-client-logo.png diff --git a/src/www/assets/outline-client-logo.svg b/client/src/www/assets/outline-client-logo.svg similarity index 100% rename from src/www/assets/outline-client-logo.svg rename to client/src/www/assets/outline-client-logo.svg diff --git a/src/www/assets/privacy-lock.png b/client/src/www/assets/privacy-lock.png similarity index 100% rename from src/www/assets/privacy-lock.png rename to client/src/www/assets/privacy-lock.png diff --git a/src/www/build.action.mjs b/client/src/www/build.action.mjs similarity index 100% rename from src/www/build.action.mjs rename to client/src/www/build.action.mjs diff --git a/src/www/favicon.ico b/client/src/www/favicon.ico similarity index 100% rename from src/www/favicon.ico rename to client/src/www/favicon.ico diff --git a/src/www/get_browser_webpack_config.mjs b/client/src/www/get_browser_webpack_config.mjs similarity index 100% rename from src/www/get_browser_webpack_config.mjs rename to client/src/www/get_browser_webpack_config.mjs diff --git a/src/www/index_cordova.html b/client/src/www/index_cordova.html similarity index 100% rename from src/www/index_cordova.html rename to client/src/www/index_cordova.html diff --git a/src/www/index_electron.html b/client/src/www/index_electron.html similarity index 100% rename from src/www/index_electron.html rename to client/src/www/index_electron.html diff --git a/src/www/karma.conf.js b/client/src/www/karma.conf.js similarity index 96% rename from src/www/karma.conf.js rename to client/src/www/karma.conf.js index 5e17bc1bf8..937e07e56a 100644 --- a/src/www/karma.conf.js +++ b/client/src/www/karma.conf.js @@ -14,7 +14,7 @@ const path = require('path'); -module.exports = async function(config) { +module.exports = async function (config) { const testConfig = await import('./webpack_test.mjs'); config.set({ diff --git a/src/www/messages/af.json b/client/src/www/messages/af.json similarity index 100% rename from src/www/messages/af.json rename to client/src/www/messages/af.json diff --git a/src/www/messages/am.json b/client/src/www/messages/am.json similarity index 100% rename from src/www/messages/am.json rename to client/src/www/messages/am.json diff --git a/src/www/messages/ar.json b/client/src/www/messages/ar.json similarity index 100% rename from src/www/messages/ar.json rename to client/src/www/messages/ar.json diff --git a/src/www/messages/az.json b/client/src/www/messages/az.json similarity index 100% rename from src/www/messages/az.json rename to client/src/www/messages/az.json diff --git a/src/www/messages/bg.json b/client/src/www/messages/bg.json similarity index 100% rename from src/www/messages/bg.json rename to client/src/www/messages/bg.json diff --git a/src/www/messages/bn.json b/client/src/www/messages/bn.json similarity index 100% rename from src/www/messages/bn.json rename to client/src/www/messages/bn.json diff --git a/src/www/messages/bs.json b/client/src/www/messages/bs.json similarity index 100% rename from src/www/messages/bs.json rename to client/src/www/messages/bs.json diff --git a/src/www/messages/ca.json b/client/src/www/messages/ca.json similarity index 100% rename from src/www/messages/ca.json rename to client/src/www/messages/ca.json diff --git a/src/www/messages/cs.json b/client/src/www/messages/cs.json similarity index 100% rename from src/www/messages/cs.json rename to client/src/www/messages/cs.json diff --git a/src/www/messages/da.json b/client/src/www/messages/da.json similarity index 100% rename from src/www/messages/da.json rename to client/src/www/messages/da.json diff --git a/src/www/messages/de.json b/client/src/www/messages/de.json similarity index 100% rename from src/www/messages/de.json rename to client/src/www/messages/de.json diff --git a/src/www/messages/el.json b/client/src/www/messages/el.json similarity index 100% rename from src/www/messages/el.json rename to client/src/www/messages/el.json diff --git a/src/www/messages/en-GB.json b/client/src/www/messages/en-GB.json similarity index 100% rename from src/www/messages/en-GB.json rename to client/src/www/messages/en-GB.json diff --git a/src/www/messages/en.json b/client/src/www/messages/en.json similarity index 100% rename from src/www/messages/en.json rename to client/src/www/messages/en.json diff --git a/src/www/messages/es-419.json b/client/src/www/messages/es-419.json similarity index 100% rename from src/www/messages/es-419.json rename to client/src/www/messages/es-419.json diff --git a/src/www/messages/es.json b/client/src/www/messages/es.json similarity index 100% rename from src/www/messages/es.json rename to client/src/www/messages/es.json diff --git a/src/www/messages/et.json b/client/src/www/messages/et.json similarity index 100% rename from src/www/messages/et.json rename to client/src/www/messages/et.json diff --git a/src/www/messages/fa.json b/client/src/www/messages/fa.json similarity index 100% rename from src/www/messages/fa.json rename to client/src/www/messages/fa.json diff --git a/src/www/messages/fi.json b/client/src/www/messages/fi.json similarity index 100% rename from src/www/messages/fi.json rename to client/src/www/messages/fi.json diff --git a/src/www/messages/fil.json b/client/src/www/messages/fil.json similarity index 100% rename from src/www/messages/fil.json rename to client/src/www/messages/fil.json diff --git a/src/www/messages/fr.json b/client/src/www/messages/fr.json similarity index 100% rename from src/www/messages/fr.json rename to client/src/www/messages/fr.json diff --git a/src/www/messages/he.json b/client/src/www/messages/he.json similarity index 100% rename from src/www/messages/he.json rename to client/src/www/messages/he.json diff --git a/src/www/messages/hi.json b/client/src/www/messages/hi.json similarity index 100% rename from src/www/messages/hi.json rename to client/src/www/messages/hi.json diff --git a/src/www/messages/hr.json b/client/src/www/messages/hr.json similarity index 100% rename from src/www/messages/hr.json rename to client/src/www/messages/hr.json diff --git a/src/www/messages/hu.json b/client/src/www/messages/hu.json similarity index 100% rename from src/www/messages/hu.json rename to client/src/www/messages/hu.json diff --git a/src/www/messages/hy.json b/client/src/www/messages/hy.json similarity index 100% rename from src/www/messages/hy.json rename to client/src/www/messages/hy.json diff --git a/src/www/messages/id.json b/client/src/www/messages/id.json similarity index 100% rename from src/www/messages/id.json rename to client/src/www/messages/id.json diff --git a/src/www/messages/is.json b/client/src/www/messages/is.json similarity index 100% rename from src/www/messages/is.json rename to client/src/www/messages/is.json diff --git a/src/www/messages/it.json b/client/src/www/messages/it.json similarity index 100% rename from src/www/messages/it.json rename to client/src/www/messages/it.json diff --git a/src/www/messages/ja.json b/client/src/www/messages/ja.json similarity index 100% rename from src/www/messages/ja.json rename to client/src/www/messages/ja.json diff --git a/src/www/messages/ka.json b/client/src/www/messages/ka.json similarity index 100% rename from src/www/messages/ka.json rename to client/src/www/messages/ka.json diff --git a/src/www/messages/kk.json b/client/src/www/messages/kk.json similarity index 100% rename from src/www/messages/kk.json rename to client/src/www/messages/kk.json diff --git a/src/www/messages/km.json b/client/src/www/messages/km.json similarity index 100% rename from src/www/messages/km.json rename to client/src/www/messages/km.json diff --git a/src/www/messages/ko.json b/client/src/www/messages/ko.json similarity index 100% rename from src/www/messages/ko.json rename to client/src/www/messages/ko.json diff --git a/src/www/messages/lo.json b/client/src/www/messages/lo.json similarity index 100% rename from src/www/messages/lo.json rename to client/src/www/messages/lo.json diff --git a/src/www/messages/lt.json b/client/src/www/messages/lt.json similarity index 100% rename from src/www/messages/lt.json rename to client/src/www/messages/lt.json diff --git a/src/www/messages/lv.json b/client/src/www/messages/lv.json similarity index 100% rename from src/www/messages/lv.json rename to client/src/www/messages/lv.json diff --git a/src/www/messages/mk.json b/client/src/www/messages/mk.json similarity index 100% rename from src/www/messages/mk.json rename to client/src/www/messages/mk.json diff --git a/src/www/messages/mn.json b/client/src/www/messages/mn.json similarity index 100% rename from src/www/messages/mn.json rename to client/src/www/messages/mn.json diff --git a/src/www/messages/mr.json b/client/src/www/messages/mr.json similarity index 100% rename from src/www/messages/mr.json rename to client/src/www/messages/mr.json diff --git a/src/www/messages/ms.json b/client/src/www/messages/ms.json similarity index 100% rename from src/www/messages/ms.json rename to client/src/www/messages/ms.json diff --git a/src/www/messages/my.json b/client/src/www/messages/my.json similarity index 100% rename from src/www/messages/my.json rename to client/src/www/messages/my.json diff --git a/src/www/messages/ne.json b/client/src/www/messages/ne.json similarity index 100% rename from src/www/messages/ne.json rename to client/src/www/messages/ne.json diff --git a/src/www/messages/nl.json b/client/src/www/messages/nl.json similarity index 100% rename from src/www/messages/nl.json rename to client/src/www/messages/nl.json diff --git a/src/www/messages/no.json b/client/src/www/messages/no.json similarity index 100% rename from src/www/messages/no.json rename to client/src/www/messages/no.json diff --git a/src/www/messages/pl.json b/client/src/www/messages/pl.json similarity index 100% rename from src/www/messages/pl.json rename to client/src/www/messages/pl.json diff --git a/src/www/messages/pt-BR.json b/client/src/www/messages/pt-BR.json similarity index 100% rename from src/www/messages/pt-BR.json rename to client/src/www/messages/pt-BR.json diff --git a/src/www/messages/pt-PT.json b/client/src/www/messages/pt-PT.json similarity index 100% rename from src/www/messages/pt-PT.json rename to client/src/www/messages/pt-PT.json diff --git a/src/www/messages/ro.json b/client/src/www/messages/ro.json similarity index 100% rename from src/www/messages/ro.json rename to client/src/www/messages/ro.json diff --git a/src/www/messages/ru.json b/client/src/www/messages/ru.json similarity index 100% rename from src/www/messages/ru.json rename to client/src/www/messages/ru.json diff --git a/src/www/messages/si.json b/client/src/www/messages/si.json similarity index 100% rename from src/www/messages/si.json rename to client/src/www/messages/si.json diff --git a/src/www/messages/sk.json b/client/src/www/messages/sk.json similarity index 100% rename from src/www/messages/sk.json rename to client/src/www/messages/sk.json diff --git a/src/www/messages/sl.json b/client/src/www/messages/sl.json similarity index 100% rename from src/www/messages/sl.json rename to client/src/www/messages/sl.json diff --git a/src/www/messages/sq.json b/client/src/www/messages/sq.json similarity index 100% rename from src/www/messages/sq.json rename to client/src/www/messages/sq.json diff --git a/src/www/messages/sr-Latn.json b/client/src/www/messages/sr-Latn.json similarity index 100% rename from src/www/messages/sr-Latn.json rename to client/src/www/messages/sr-Latn.json diff --git a/src/www/messages/sr.json b/client/src/www/messages/sr.json similarity index 100% rename from src/www/messages/sr.json rename to client/src/www/messages/sr.json diff --git a/src/www/messages/sv.json b/client/src/www/messages/sv.json similarity index 100% rename from src/www/messages/sv.json rename to client/src/www/messages/sv.json diff --git a/src/www/messages/sw.json b/client/src/www/messages/sw.json similarity index 100% rename from src/www/messages/sw.json rename to client/src/www/messages/sw.json diff --git a/src/www/messages/ta.json b/client/src/www/messages/ta.json similarity index 100% rename from src/www/messages/ta.json rename to client/src/www/messages/ta.json diff --git a/src/www/messages/th.json b/client/src/www/messages/th.json similarity index 100% rename from src/www/messages/th.json rename to client/src/www/messages/th.json diff --git a/src/www/messages/tr.json b/client/src/www/messages/tr.json similarity index 100% rename from src/www/messages/tr.json rename to client/src/www/messages/tr.json diff --git a/src/www/messages/uk.json b/client/src/www/messages/uk.json similarity index 100% rename from src/www/messages/uk.json rename to client/src/www/messages/uk.json diff --git a/src/www/messages/ur.json b/client/src/www/messages/ur.json similarity index 100% rename from src/www/messages/ur.json rename to client/src/www/messages/ur.json diff --git a/src/www/messages/vi.json b/client/src/www/messages/vi.json similarity index 100% rename from src/www/messages/vi.json rename to client/src/www/messages/vi.json diff --git a/src/www/messages/zh-CN.json b/client/src/www/messages/zh-CN.json similarity index 100% rename from src/www/messages/zh-CN.json rename to client/src/www/messages/zh-CN.json diff --git a/src/www/messages/zh-TW.json b/client/src/www/messages/zh-TW.json similarity index 100% rename from src/www/messages/zh-TW.json rename to client/src/www/messages/zh-TW.json diff --git a/src/www/model/errors.ts b/client/src/www/model/errors.ts similarity index 100% rename from src/www/model/errors.ts rename to client/src/www/model/errors.ts diff --git a/src/www/model/events.spec.ts b/client/src/www/model/events.spec.ts similarity index 99% rename from src/www/model/events.spec.ts rename to client/src/www/model/events.spec.ts index 22583bf672..e510b8b630 100644 --- a/src/www/model/events.spec.ts +++ b/client/src/www/model/events.spec.ts @@ -21,7 +21,7 @@ import { ServerForgotten, ServerReconnecting, ServerRenamed, -} from "./events"; +} from './events'; describe('EventQueue', () => { it('subscribe registers listeners to corresponding event', () => { diff --git a/src/www/model/events.ts b/client/src/www/model/events.ts similarity index 100% rename from src/www/model/events.ts rename to client/src/www/model/events.ts diff --git a/src/www/model/server.ts b/client/src/www/model/server.ts similarity index 100% rename from src/www/model/server.ts rename to client/src/www/model/server.ts diff --git a/src/www/shared/error_reporter.ts b/client/src/www/shared/error_reporter.ts similarity index 100% rename from src/www/shared/error_reporter.ts rename to client/src/www/shared/error_reporter.ts diff --git a/src/www/start.action.mjs b/client/src/www/start.action.mjs similarity index 92% rename from src/www/start.action.mjs rename to client/src/www/start.action.mjs index 739bde0664..a45bca81d2 100644 --- a/src/www/start.action.mjs +++ b/client/src/www/start.action.mjs @@ -23,11 +23,11 @@ import {getBrowserWebpackConfig} from './get_browser_webpack_config.mjs'; * @description Starts the web app for development. */ export async function main() { - await runAction('www/build', 'browser'); + await runAction('client/src/www/build', 'browser'); // TODO(daniellacosse): Browser-only webpack setup that's extended both by electron and cordova. // Currently, only the cordova web build works in standalone mode. - await runAction('cordova/setup', 'browser'); + await runAction('client/src/cordova/setup', 'browser'); const webpackConfig = getBrowserWebpackConfig('browser', 'debug'); diff --git a/src/www/storybook.action.mjs b/client/src/www/storybook.action.mjs similarity index 100% rename from src/www/storybook.action.mjs rename to client/src/www/storybook.action.mjs diff --git a/src/www/style.css b/client/src/www/style.css similarity index 100% rename from src/www/style.css rename to client/src/www/style.css diff --git a/src/www/test.action.mjs b/client/src/www/test.action.mjs similarity index 100% rename from src/www/test.action.mjs rename to client/src/www/test.action.mjs diff --git a/src/www/testing/localize.ts b/client/src/www/testing/localize.ts similarity index 100% rename from src/www/testing/localize.ts rename to client/src/www/testing/localize.ts diff --git a/src/www/tsconfig.json b/client/src/www/tsconfig.json similarity index 100% rename from src/www/tsconfig.json rename to client/src/www/tsconfig.json diff --git a/src/www/types/clipboard.d.ts b/client/src/www/types/clipboard.d.ts similarity index 100% rename from src/www/types/clipboard.d.ts rename to client/src/www/types/clipboard.d.ts diff --git a/src/www/types/shims.d.ts b/client/src/www/types/shims.d.ts similarity index 100% rename from src/www/types/shims.d.ts rename to client/src/www/types/shims.d.ts diff --git a/src/www/types/webintents.d.ts b/client/src/www/types/webintents.d.ts similarity index 100% rename from src/www/types/webintents.d.ts rename to client/src/www/types/webintents.d.ts diff --git a/src/www/ui_components/about-view.js b/client/src/www/ui_components/about-view.js similarity index 100% rename from src/www/ui_components/about-view.js rename to client/src/www/ui_components/about-view.js diff --git a/src/www/ui_components/add-server-view.js b/client/src/www/ui_components/add-server-view.js similarity index 95% rename from src/www/ui_components/add-server-view.js rename to client/src/www/ui_components/add-server-view.js index ff68736466..db55c4a407 100644 --- a/src/www/ui_components/add-server-view.js +++ b/client/src/www/ui_components/add-server-view.js @@ -190,9 +190,7 @@ Polymer({
[[localize('server-access-key-detected')]]
-
- [[localize('server-detected')]] -
+
[[localize('server-detected')]]
@@ -229,7 +227,7 @@ Polymer({ }, }, - ready: function() { + ready: function () { this.$.serverDetectedSheet.addEventListener('opened-changed', this._openChanged.bind(this)); this.$.addServerSheet.addEventListener('opened-changed', this._openChanged.bind(this)); // Workaround for --paper-input-container-input-[focus|invalid] not getting applied. @@ -238,27 +236,27 @@ Polymer({ this.$.accessKeyInput.addEventListener('invalid-changed', this._inputInvalidChanged.bind(this)); }, - openAddServerSheet: function() { + openAddServerSheet: function () { this.$.serverDetectedSheet.close(); this.$.addServerSheet.open(); }, - openAddServerConfirmationSheet: function(accessKey) { + openAddServerConfirmationSheet: function (accessKey) { this.$.addServerSheet.close(); this.accessKey = accessKey; this.$.serverDetectedSheet.open(); }, - isAddingServer: function() { + isAddingServer: function () { return this.$.serverDetectedSheet.opened; }, - close: function() { + close: function () { this.$.addServerSheet.close(); this.$.serverDetectedSheet.close(); }, - _accessKeyChanged: function() { + _accessKeyChanged: function () { // Use debounce to detect when the user has stopped typing. this.debounce( 'accessKeyChanged', @@ -269,7 +267,7 @@ Polymer({ ); }, - _addServerFromInput: function() { + _addServerFromInput: function () { var accessKeyInput = this.$.accessKeyInput; if (!this.accessKey || this.accessKey === '') { accessKeyInput.invalid = false; @@ -280,18 +278,18 @@ Polymer({ } }, - _addDetectedServer: function() { + _addDetectedServer: function () { this.fire('AddServerRequested', {accessKey: this.accessKey}); this.close(); }, - _ignoreDetectedServer: function() { + _ignoreDetectedServer: function () { this.fire('IgnoreServerRequested', {accessKey: this.accessKey}); this.close(); }, // Event listeners - _openChanged: function(event) { + _openChanged: function (event) { var dialog = event.target; if (dialog.opened) { // Scroll the page to the bottom to prevent the dialog from moving when the keyboard @@ -306,7 +304,7 @@ Polymer({ } }, - _inputFocusChanged: function(event) { + _inputFocusChanged: function (event) { var input = event.target; if (input.focused) { this.$.accessKeyInput.label = ''; @@ -316,7 +314,7 @@ Polymer({ input.toggleClass('input-focus', input.focused); }, - _inputInvalidChanged: function(event) { + _inputInvalidChanged: function (event) { var input = event.target; input.toggleClass('input-invalid', input.invalid); if (input.invalid) { @@ -326,7 +324,7 @@ Polymer({ } }, - _disallowScroll: function(event) { + _disallowScroll: function (event) { event.preventDefault(); }, diff --git a/src/www/ui_components/app-root.js b/client/src/www/ui_components/app-root.js similarity index 95% rename from src/www/ui_components/app-root.js rename to client/src/www/ui_components/app-root.js index 17c43a4762..8b97c79cc4 100644 --- a/src/www/ui_components/app-root.js +++ b/client/src/www/ui_components/app-root.js @@ -36,7 +36,6 @@ import '@polymer/paper-item/paper-item.js'; import '@polymer/paper-item/paper-icon-item.js'; import '@polymer/paper-listbox/paper-listbox.js'; import '@polymer/paper-toast/paper-toast.js'; -import 'outline-i18n/index.js'; import './about-view.js'; import './add-server-view.js'; import './feedback-view.js'; @@ -55,6 +54,49 @@ import {mixinBehaviors} from '@polymer/polymer/lib/legacy/class.js'; import {html} from '@polymer/polymer/lib/utils/html-tag.js'; import {PolymerElement} from '@polymer/polymer/polymer-element.js'; +function makeLookUpLanguage(availableLanguages) { + return languageId => { + languageId = languageId.toLowerCase(); + for (const availableLanguage of availableLanguages) { + const parts = availableLanguage.toLowerCase().split('-'); + while (parts.length) { + const joined = parts.join('-'); + if (languageId === joined) { + return availableLanguage; + } + parts.pop(); + } + } + }; +} + +function getBrowserLanguages() { + // Ensure that navigator.languages is defined and not empty, as can be the case with some browsers + // (i.e. Chrome 59 on Electron). + const languages = navigator.languages; + if (languages && languages.length > 0) { + return languages; + } + return [navigator.language]; +} + +window.OutlineI18n = { + getBestMatchingLanguage(available) { + const lookUpAvailable = makeLookUpLanguage(available); + for (const candidate of getBrowserLanguages()) { + const parts = candidate.split('-'); + while (parts.length) { + const joined = parts.join('-'); + const closest = lookUpAvailable(joined); + if (closest) { + return closest; + } + parts.pop(); + } + } + }, +}; + // Workaround: // https://github.com/PolymerElements/paper-menu-button/issues/101#issuecomment-297856912 PaperMenuButton.prototype.properties.restoreFocusOnClose.value = false; @@ -765,7 +807,7 @@ export class AppRoot extends mixinBehaviors([AppLocalizeBehavior], PolymerElemen _computeLanguage(availableLanguages, defaultLanguage) { const overrideLanguage = window.localStorage.getItem('overrideLanguage'); - const bestMatchingLanguage = OutlineI18n.getBestMatchingLanguage(Object.keys(availableLanguages)); + const bestMatchingLanguage = window.OutlineI18n.getBestMatchingLanguage(Object.keys(availableLanguages)); return overrideLanguage || bestMatchingLanguage || defaultLanguage; } diff --git a/src/www/ui_components/feedback-view.js b/client/src/www/ui_components/feedback-view.js similarity index 100% rename from src/www/ui_components/feedback-view.js rename to client/src/www/ui_components/feedback-view.js diff --git a/src/www/ui_components/language-view.js b/client/src/www/ui_components/language-view.js similarity index 100% rename from src/www/ui_components/language-view.js rename to client/src/www/ui_components/language-view.js diff --git a/src/www/ui_components/licenses-view.js b/client/src/www/ui_components/licenses-view.js similarity index 65% rename from src/www/ui_components/licenses-view.js rename to client/src/www/ui_components/licenses-view.js index 909bad1f0f..ed960d56b4 100644 --- a/src/www/ui_components/licenses-view.js +++ b/client/src/www/ui_components/licenses-view.js @@ -15,7 +15,7 @@ */ import {Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js'; -import {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js' +import {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js'; import {html} from '@polymer/polymer/lib/utils/html-tag.js'; Polymer({ @@ -36,7 +36,7 @@ Polymer({ -`, + `, is: 'licenses-view', @@ -49,27 +49,30 @@ Polymer({ _licensesLoaded: false, - ready: function() { + ready: function () { // This complexity is to avoid unconditionally loading the (huge) license // text at startup. var appRoot = dom(this).getOwnerRoot().host; - window.addEventListener('location-changed', function() { - if (this._licensesLoaded || appRoot.page !== 'licenses') { - return; - } + window.addEventListener( + 'location-changed', + function () { + if (this._licensesLoaded || appRoot.page !== 'licenses') { + return; + } - var xhr = new XMLHttpRequest(); - xhr.onload = () => { - this.$.licensesText.innerText = xhr.responseText; - this._licensesLoaded = true; - }; - xhr.onerror = () => { - console.error('could not load license.txt'); - }; - // This path works in both Cordova and Electron. - // Do *not* add a leading slash. - xhr.open('GET', 'ui_components/licenses/licenses.txt', true); - xhr.send(); - }.bind(this)); - } + var xhr = new XMLHttpRequest(); + xhr.onload = () => { + this.$.licensesText.innerText = xhr.responseText; + this._licensesLoaded = true; + }; + xhr.onerror = () => { + console.error('could not load license.txt'); + }; + // This path works in both Cordova and Electron. + // Do *not* add a leading slash. + xhr.open('GET', 'ui_components/licenses/licenses.txt', true); + xhr.send(); + }.bind(this) + ); + }, }); diff --git a/src/www/ui_components/licenses/README.md b/client/src/www/ui_components/licenses/README.md similarity index 100% rename from src/www/ui_components/licenses/README.md rename to client/src/www/ui_components/licenses/README.md diff --git a/src/www/ui_components/licenses/licenses.txt b/client/src/www/ui_components/licenses/licenses.txt similarity index 100% rename from src/www/ui_components/licenses/licenses.txt rename to client/src/www/ui_components/licenses/licenses.txt diff --git a/src/www/ui_components/licenses/third_party.sh b/client/src/www/ui_components/licenses/third_party.sh similarity index 100% rename from src/www/ui_components/licenses/third_party.sh rename to client/src/www/ui_components/licenses/third_party.sh diff --git a/src/www/ui_components/outline-icons.js b/client/src/www/ui_components/outline-icons.js similarity index 99% rename from src/www/ui_components/outline-icons.js rename to client/src/www/ui_components/outline-icons.js index 7f3ff31b15..69531368e5 100644 --- a/src/www/ui_components/outline-icons.js +++ b/client/src/www/ui_components/outline-icons.js @@ -27,4 +27,3 @@ $_documentContainer.innerHTML = `[[localize(titleLocalizationKey)]]
[[localize(detailLocalizationKey)]]
- + [[localize(linkTextLocalizationKey)]] - [[localize(dismissButtonTextLocalizationKey)]] + [[localize(dismissButtonTextLocalizationKey)]]
-`, + `, is: 'user-comms-dialog', @@ -130,22 +132,22 @@ Polymer({ fireEventOnHide: String, }, - show: function() { + show: function () { this.$.wrapper.classList.add('active'); }, - hide: function() { + hide: function () { this.$.wrapper.classList.remove('active'); }, - _dismiss: function() { + _dismiss: function () { this.hide(); if (!!this.fireEventOnHide) { this.fire(this.fireEventOnHide); } }, - _shouldHideLink: function() { + _shouldHideLink: function () { return !this.linkUrl; - } + }, }); diff --git a/src/www/views/contact_view/app_type.ts b/client/src/www/views/contact_view/app_type.ts similarity index 100% rename from src/www/views/contact_view/app_type.ts rename to client/src/www/views/contact_view/app_type.ts diff --git a/src/www/views/contact_view/index.spec.ts b/client/src/www/views/contact_view/index.spec.ts similarity index 100% rename from src/www/views/contact_view/index.spec.ts rename to client/src/www/views/contact_view/index.spec.ts diff --git a/src/www/views/contact_view/index.ts b/client/src/www/views/contact_view/index.ts similarity index 100% rename from src/www/views/contact_view/index.ts rename to client/src/www/views/contact_view/index.ts diff --git a/src/www/views/contact_view/issue_type.ts b/client/src/www/views/contact_view/issue_type.ts similarity index 100% rename from src/www/views/contact_view/issue_type.ts rename to client/src/www/views/contact_view/issue_type.ts diff --git a/src/www/views/contact_view/stories.ts b/client/src/www/views/contact_view/stories.ts similarity index 100% rename from src/www/views/contact_view/stories.ts rename to client/src/www/views/contact_view/stories.ts diff --git a/src/www/views/contact_view/support_form/index.spec.ts b/client/src/www/views/contact_view/support_form/index.spec.ts similarity index 100% rename from src/www/views/contact_view/support_form/index.spec.ts rename to client/src/www/views/contact_view/support_form/index.spec.ts diff --git a/src/www/views/contact_view/support_form/index.ts b/client/src/www/views/contact_view/support_form/index.ts similarity index 100% rename from src/www/views/contact_view/support_form/index.ts rename to client/src/www/views/contact_view/support_form/index.ts diff --git a/src/www/views/contact_view/support_form/stories.ts b/client/src/www/views/contact_view/support_form/stories.ts similarity index 100% rename from src/www/views/contact_view/support_form/stories.ts rename to client/src/www/views/contact_view/support_form/stories.ts diff --git a/src/www/views/servers_view/index.ts b/client/src/www/views/servers_view/index.ts similarity index 100% rename from src/www/views/servers_view/index.ts rename to client/src/www/views/servers_view/index.ts diff --git a/src/www/views/servers_view/server_connection_indicator/index.ts b/client/src/www/views/servers_view/server_connection_indicator/index.ts similarity index 100% rename from src/www/views/servers_view/server_connection_indicator/index.ts rename to client/src/www/views/servers_view/server_connection_indicator/index.ts diff --git a/src/www/views/servers_view/server_connection_indicator/stories.ts b/client/src/www/views/servers_view/server_connection_indicator/stories.ts similarity index 100% rename from src/www/views/servers_view/server_connection_indicator/stories.ts rename to client/src/www/views/servers_view/server_connection_indicator/stories.ts diff --git a/src/www/views/servers_view/server_list/index.ts b/client/src/www/views/servers_view/server_list/index.ts similarity index 100% rename from src/www/views/servers_view/server_list/index.ts rename to client/src/www/views/servers_view/server_list/index.ts diff --git a/src/www/views/servers_view/server_list/stories.ts b/client/src/www/views/servers_view/server_list/stories.ts similarity index 100% rename from src/www/views/servers_view/server_list/stories.ts rename to client/src/www/views/servers_view/server_list/stories.ts diff --git a/src/www/views/servers_view/server_list_item/index.ts b/client/src/www/views/servers_view/server_list_item/index.ts similarity index 100% rename from src/www/views/servers_view/server_list_item/index.ts rename to client/src/www/views/servers_view/server_list_item/index.ts diff --git a/src/www/views/servers_view/server_list_item/server_card/index.ts b/client/src/www/views/servers_view/server_list_item/server_card/index.ts similarity index 99% rename from src/www/views/servers_view/server_list_item/server_card/index.ts rename to client/src/www/views/servers_view/server_list_item/server_card/index.ts index 52a218a52f..9771cbe6c6 100644 --- a/src/www/views/servers_view/server_list_item/server_card/index.ts +++ b/client/src/www/views/servers_view/server_list_item/server_card/index.ts @@ -98,7 +98,7 @@ const sharedCSS = css` font-size: var(--server-name-size); margin-bottom: var(--outline-mini-gutter); /* To break the line in case a sequence of word characters is longer than the line. - See https://github.com/Jigsaw-Code/outline-client/issues/1372. */ + See https://github.com/Jigsaw-Code/outline-apps/issues/1372. */ word-break: break-all; } diff --git a/src/www/views/servers_view/server_list_item/server_card/stories.ts b/client/src/www/views/servers_view/server_list_item/server_card/stories.ts similarity index 100% rename from src/www/views/servers_view/server_list_item/server_card/stories.ts rename to client/src/www/views/servers_view/server_list_item/server_card/stories.ts diff --git a/src/www/webpack_base.mjs b/client/src/www/webpack_base.mjs similarity index 100% rename from src/www/webpack_base.mjs rename to client/src/www/webpack_base.mjs diff --git a/src/www/webpack_cordova.mjs b/client/src/www/webpack_cordova.mjs similarity index 100% rename from src/www/webpack_cordova.mjs rename to client/src/www/webpack_cordova.mjs diff --git a/src/www/webpack_css_rtl_loader.cjs b/client/src/www/webpack_css_rtl_loader.cjs similarity index 100% rename from src/www/webpack_css_rtl_loader.cjs rename to client/src/www/webpack_css_rtl_loader.cjs diff --git a/src/www/webpack_electron.mjs b/client/src/www/webpack_electron.mjs similarity index 100% rename from src/www/webpack_electron.mjs rename to client/src/www/webpack_electron.mjs diff --git a/src/www/webpack_test.mjs b/client/src/www/webpack_test.mjs similarity index 100% rename from src/www/webpack_test.mjs rename to client/src/www/webpack_test.mjs diff --git a/tools/OutlineService/OutlineService.sln b/client/tools/OutlineService/OutlineService.sln similarity index 100% rename from tools/OutlineService/OutlineService.sln rename to client/tools/OutlineService/OutlineService.sln diff --git a/tools/OutlineService/OutlineService/App.config b/client/tools/OutlineService/OutlineService/App.config similarity index 100% rename from tools/OutlineService/OutlineService/App.config rename to client/tools/OutlineService/OutlineService/App.config diff --git a/tools/OutlineService/OutlineService/OutlineService.Designer.cs b/client/tools/OutlineService/OutlineService/OutlineService.Designer.cs similarity index 100% rename from tools/OutlineService/OutlineService/OutlineService.Designer.cs rename to client/tools/OutlineService/OutlineService/OutlineService.Designer.cs diff --git a/tools/OutlineService/OutlineService/OutlineService.cs b/client/tools/OutlineService/OutlineService/OutlineService.cs similarity index 99% rename from tools/OutlineService/OutlineService/OutlineService.cs rename to client/tools/OutlineService/OutlineService/OutlineService.cs index 71da846c61..654dfeec0f 100755 --- a/tools/OutlineService/OutlineService/OutlineService.cs +++ b/client/tools/OutlineService/OutlineService/OutlineService.cs @@ -564,7 +564,7 @@ private void StartSmartDnsBlock() // This is for Windows 7: without it, the process exits immediately, presumably // because stdin isn't connected to anything: - // https://github.com/Jigsaw-Code/outline-client/issues/415 + // https://github.com/Jigsaw-Code/outline-apps/issues/415 // // This seems to make no difference on Windows 8 and 10. smartDnsBlock.StartInfo.RedirectStandardInput = true; diff --git a/tools/OutlineService/OutlineService/OutlineService.csproj b/client/tools/OutlineService/OutlineService/OutlineService.csproj similarity index 100% rename from tools/OutlineService/OutlineService/OutlineService.csproj rename to client/tools/OutlineService/OutlineService/OutlineService.csproj diff --git a/tools/OutlineService/OutlineService/OutlineService.resx b/client/tools/OutlineService/OutlineService/OutlineService.resx similarity index 100% rename from tools/OutlineService/OutlineService/OutlineService.resx rename to client/tools/OutlineService/OutlineService/OutlineService.resx diff --git a/tools/OutlineService/OutlineService/Program.cs b/client/tools/OutlineService/OutlineService/Program.cs similarity index 100% rename from tools/OutlineService/OutlineService/Program.cs rename to client/tools/OutlineService/OutlineService/Program.cs diff --git a/tools/OutlineService/OutlineService/Properties/AssemblyInfo.cs b/client/tools/OutlineService/OutlineService/Properties/AssemblyInfo.cs similarity index 100% rename from tools/OutlineService/OutlineService/Properties/AssemblyInfo.cs rename to client/tools/OutlineService/OutlineService/Properties/AssemblyInfo.cs diff --git a/tools/OutlineService/OutlineService/bin/OutlineService.exe b/client/tools/OutlineService/OutlineService/bin/OutlineService.exe similarity index 100% rename from tools/OutlineService/OutlineService/bin/OutlineService.exe rename to client/tools/OutlineService/OutlineService/bin/OutlineService.exe diff --git a/tools/OutlineService/OutlineService/bin/Release/OutlineService.exe.config b/client/tools/OutlineService/OutlineService/bin/Release/OutlineService.exe.config similarity index 100% rename from tools/OutlineService/OutlineService/bin/Release/OutlineService.exe.config rename to client/tools/OutlineService/OutlineService/bin/Release/OutlineService.exe.config diff --git a/tools/OutlineService/OutlineService/packages.config b/client/tools/OutlineService/OutlineService/packages.config similarity index 100% rename from tools/OutlineService/OutlineService/packages.config rename to client/tools/OutlineService/OutlineService/packages.config diff --git a/tools/build/Dockerfile b/client/tools/build/Dockerfile similarity index 100% rename from tools/build/Dockerfile rename to client/tools/build/Dockerfile diff --git a/tools/build/README.md b/client/tools/build/README.md similarity index 100% rename from tools/build/README.md rename to client/tools/build/README.md diff --git a/tools/build/android_tools_versions.sh b/client/tools/build/android_tools_versions.sh similarity index 100% rename from tools/build/android_tools_versions.sh rename to client/tools/build/android_tools_versions.sh diff --git a/tools/build/build.action.sh b/client/tools/build/build.action.sh similarity index 100% rename from tools/build/build.action.sh rename to client/tools/build/build.action.sh diff --git a/tools/build/build.sh b/client/tools/build/build.sh similarity index 100% rename from tools/build/build.sh rename to client/tools/build/build.sh diff --git a/tools/build/setup_linux_android.sh b/client/tools/build/setup_linux_android.sh similarity index 100% rename from tools/build/setup_linux_android.sh rename to client/tools/build/setup_linux_android.sh diff --git a/tools/build/setup_macos_android.sh b/client/tools/build/setup_macos_android.sh similarity index 100% rename from tools/build/setup_macos_android.sh rename to client/tools/build/setup_macos_android.sh diff --git a/tools/find_tap_name/bin/386/find_tap_name.exe b/client/tools/find_tap_name/bin/386/find_tap_name.exe similarity index 100% rename from tools/find_tap_name/bin/386/find_tap_name.exe rename to client/tools/find_tap_name/bin/386/find_tap_name.exe diff --git a/tools/find_tap_name/bin/amd64/find_tap_name.exe b/client/tools/find_tap_name/bin/amd64/find_tap_name.exe similarity index 100% rename from tools/find_tap_name/bin/amd64/find_tap_name.exe rename to client/tools/find_tap_name/bin/amd64/find_tap_name.exe diff --git a/tools/find_tap_name/build.action.sh b/client/tools/find_tap_name/build.action.sh similarity index 100% rename from tools/find_tap_name/build.action.sh rename to client/tools/find_tap_name/build.action.sh diff --git a/tools/find_tap_name/main.go b/client/tools/find_tap_name/main.go similarity index 100% rename from tools/find_tap_name/main.go rename to client/tools/find_tap_name/main.go diff --git a/tools/outline_proxy_controller/.gitignore b/client/tools/outline_proxy_controller/.gitignore similarity index 100% rename from tools/outline_proxy_controller/.gitignore rename to client/tools/outline_proxy_controller/.gitignore diff --git a/tools/outline_proxy_controller/CMakeLists.txt b/client/tools/outline_proxy_controller/CMakeLists.txt similarity index 100% rename from tools/outline_proxy_controller/CMakeLists.txt rename to client/tools/outline_proxy_controller/CMakeLists.txt diff --git a/tools/outline_proxy_controller/Dockerfile b/client/tools/outline_proxy_controller/Dockerfile similarity index 100% rename from tools/outline_proxy_controller/Dockerfile rename to client/tools/outline_proxy_controller/Dockerfile diff --git a/tools/outline_proxy_controller/OutlineProxyControllerConfig.h.in b/client/tools/outline_proxy_controller/OutlineProxyControllerConfig.h.in similarity index 100% rename from tools/outline_proxy_controller/OutlineProxyControllerConfig.h.in rename to client/tools/outline_proxy_controller/OutlineProxyControllerConfig.h.in diff --git a/tools/outline_proxy_controller/README.md b/client/tools/outline_proxy_controller/README.md similarity index 100% rename from tools/outline_proxy_controller/README.md rename to client/tools/outline_proxy_controller/README.md diff --git a/tools/outline_proxy_controller/build.action.sh b/client/tools/outline_proxy_controller/build.action.sh similarity index 100% rename from tools/outline_proxy_controller/build.action.sh rename to client/tools/outline_proxy_controller/build.action.sh diff --git a/tools/outline_proxy_controller/dist/OutlineProxyController b/client/tools/outline_proxy_controller/dist/OutlineProxyController similarity index 100% rename from tools/outline_proxy_controller/dist/OutlineProxyController rename to client/tools/outline_proxy_controller/dist/OutlineProxyController diff --git a/tools/outline_proxy_controller/dist/install_linux_service.sh b/client/tools/outline_proxy_controller/dist/install_linux_service.sh similarity index 100% rename from tools/outline_proxy_controller/dist/install_linux_service.sh rename to client/tools/outline_proxy_controller/dist/install_linux_service.sh diff --git a/tools/outline_proxy_controller/dist/outline_proxy_controller.service b/client/tools/outline_proxy_controller/dist/outline_proxy_controller.service similarity index 100% rename from tools/outline_proxy_controller/dist/outline_proxy_controller.service rename to client/tools/outline_proxy_controller/dist/outline_proxy_controller.service diff --git a/tools/outline_proxy_controller/logger.cpp b/client/tools/outline_proxy_controller/logger.cpp similarity index 100% rename from tools/outline_proxy_controller/logger.cpp rename to client/tools/outline_proxy_controller/logger.cpp diff --git a/tools/outline_proxy_controller/logger.h b/client/tools/outline_proxy_controller/logger.h similarity index 100% rename from tools/outline_proxy_controller/logger.h rename to client/tools/outline_proxy_controller/logger.h diff --git a/tools/outline_proxy_controller/network_monitor.cpp b/client/tools/outline_proxy_controller/network_monitor.cpp similarity index 100% rename from tools/outline_proxy_controller/network_monitor.cpp rename to client/tools/outline_proxy_controller/network_monitor.cpp diff --git a/tools/outline_proxy_controller/network_monitor.h b/client/tools/outline_proxy_controller/network_monitor.h similarity index 100% rename from tools/outline_proxy_controller/network_monitor.h rename to client/tools/outline_proxy_controller/network_monitor.h diff --git a/tools/outline_proxy_controller/outline_controller_server.cpp b/client/tools/outline_proxy_controller/outline_controller_server.cpp similarity index 100% rename from tools/outline_proxy_controller/outline_controller_server.cpp rename to client/tools/outline_proxy_controller/outline_controller_server.cpp diff --git a/tools/outline_proxy_controller/outline_controller_server.h b/client/tools/outline_proxy_controller/outline_controller_server.h similarity index 100% rename from tools/outline_proxy_controller/outline_controller_server.h rename to client/tools/outline_proxy_controller/outline_controller_server.h diff --git a/tools/outline_proxy_controller/outline_daemon.cpp b/client/tools/outline_proxy_controller/outline_daemon.cpp similarity index 100% rename from tools/outline_proxy_controller/outline_daemon.cpp rename to client/tools/outline_proxy_controller/outline_daemon.cpp diff --git a/tools/outline_proxy_controller/outline_error.cpp b/client/tools/outline_proxy_controller/outline_error.cpp similarity index 100% rename from tools/outline_proxy_controller/outline_error.cpp rename to client/tools/outline_proxy_controller/outline_error.cpp diff --git a/tools/outline_proxy_controller/outline_error.h b/client/tools/outline_proxy_controller/outline_error.h similarity index 100% rename from tools/outline_proxy_controller/outline_error.h rename to client/tools/outline_proxy_controller/outline_error.h diff --git a/tools/outline_proxy_controller/outline_proxy_controller.cpp b/client/tools/outline_proxy_controller/outline_proxy_controller.cpp similarity index 100% rename from tools/outline_proxy_controller/outline_proxy_controller.cpp rename to client/tools/outline_proxy_controller/outline_proxy_controller.cpp diff --git a/tools/outline_proxy_controller/outline_proxy_controller.h b/client/tools/outline_proxy_controller/outline_proxy_controller.h similarity index 100% rename from tools/outline_proxy_controller/outline_proxy_controller.h rename to client/tools/outline_proxy_controller/outline_proxy_controller.h diff --git a/tools/smartdnsblock/README.md b/client/tools/smartdnsblock/README.md similarity index 100% rename from tools/smartdnsblock/README.md rename to client/tools/smartdnsblock/README.md diff --git a/tools/smartdnsblock/bin/smartdnsblock.exe b/client/tools/smartdnsblock/bin/smartdnsblock.exe similarity index 100% rename from tools/smartdnsblock/bin/smartdnsblock.exe rename to client/tools/smartdnsblock/bin/smartdnsblock.exe diff --git a/tools/smartdnsblock/smartdnsblock.sln b/client/tools/smartdnsblock/smartdnsblock.sln similarity index 100% rename from tools/smartdnsblock/smartdnsblock.sln rename to client/tools/smartdnsblock/smartdnsblock.sln diff --git a/tools/smartdnsblock/smartdnsblock/smartdnsblock.cpp b/client/tools/smartdnsblock/smartdnsblock/smartdnsblock.cpp similarity index 100% rename from tools/smartdnsblock/smartdnsblock/smartdnsblock.cpp rename to client/tools/smartdnsblock/smartdnsblock/smartdnsblock.cpp diff --git a/tools/smartdnsblock/smartdnsblock/smartdnsblock.filters b/client/tools/smartdnsblock/smartdnsblock/smartdnsblock.filters similarity index 100% rename from tools/smartdnsblock/smartdnsblock/smartdnsblock.filters rename to client/tools/smartdnsblock/smartdnsblock/smartdnsblock.filters diff --git a/tools/smartdnsblock/smartdnsblock/smartdnsblock.user b/client/tools/smartdnsblock/smartdnsblock/smartdnsblock.user similarity index 100% rename from tools/smartdnsblock/smartdnsblock/smartdnsblock.user rename to client/tools/smartdnsblock/smartdnsblock/smartdnsblock.user diff --git a/tools/smartdnsblock/smartdnsblock/smartdnsblock.vcxproj b/client/tools/smartdnsblock/smartdnsblock/smartdnsblock.vcxproj similarity index 100% rename from tools/smartdnsblock/smartdnsblock/smartdnsblock.vcxproj rename to client/tools/smartdnsblock/smartdnsblock/smartdnsblock.vcxproj diff --git a/tsconfig.json b/client/tsconfig.json similarity index 95% rename from tsconfig.json rename to client/tsconfig.json index 33fb161c84..f6dbb97233 100644 --- a/tsconfig.json +++ b/client/tsconfig.json @@ -11,7 +11,7 @@ "outDir": "build", "removeComments": false, "resolveJsonModule": true, - "rootDir": "./", + "rootDir": "../", "skipLibCheck": true, "target": "es2017", "lib": ["es2022"] diff --git a/commitlint.config.js b/commitlint.config.js index b04e929554..cf3506a771 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -5,7 +5,8 @@ module.exports = { 2, 'always', [ - 'build', + 'client', + 'client/build', 'client/cordova', 'client/cordova/android', 'client/cordova/apple', diff --git a/go.mod b/go.mod index efbd0781fc..8e523a1957 100644 --- a/go.mod +++ b/go.mod @@ -1,24 +1,23 @@ -module github.com/Jigsaw-Code/outline-client +module github.com/Jigsaw-Code/outline-apps go 1.20 require ( - github.com/Jigsaw-Code/outline-sdk v0.0.9 - github.com/Jigsaw-Code/outline-sdk/x v0.0.0-20230807220427-893de7fdc6b8 + github.com/Jigsaw-Code/outline-sdk v0.0.14-0.20240216220040-f741c57bf854 + github.com/Jigsaw-Code/outline-sdk/x v0.0.0-20240223000159-142376ee10ea github.com/crazy-max/xgo v0.30.0 github.com/eycorsican/go-tun2socks v1.16.11 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.8.2 golang.org/x/mobile v0.0.0-20231127183840-76ac6878050a golang.org/x/sys v0.15.0 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/miekg/dns v1.1.54 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/shadowsocks/go-shadowsocks2 v0.1.5 // indirect github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 // indirect - golang.org/x/crypto v0.16.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/sync v0.5.0 // indirect diff --git a/go.sum b/go.sum index 1ba35cb8e4..050bc7f12c 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,10 @@ -github.com/Jigsaw-Code/outline-sdk v0.0.9 h1:FuyrqJ5OBh5y8mpXkSomdGJreGi8bAOWRXRNB2B+Hdc= -github.com/Jigsaw-Code/outline-sdk v0.0.9/go.mod h1:hhlKz0+r9wSDFT8usvN8Zv/BFToCIFAUn1P2Qk8G2CM= -github.com/Jigsaw-Code/outline-sdk/x v0.0.0-20230807220427-893de7fdc6b8 h1:BxOHmmuppPM8K0DGUsfvajKF4PKfGxv9boNDhmbszFU= -github.com/Jigsaw-Code/outline-sdk/x v0.0.0-20230807220427-893de7fdc6b8/go.mod h1:tBqJXpVm+kym+EAUdwNodcFxy872FfjVErfj8Br+gs0= +github.com/Jigsaw-Code/outline-sdk v0.0.14-0.20240216220040-f741c57bf854 h1:SXp/tNjb70hpjF/MXAuLDkgCttlRA9qxLR7FCosGydg= +github.com/Jigsaw-Code/outline-sdk v0.0.14-0.20240216220040-f741c57bf854/go.mod h1:9cEaF6sWWMzY8orcUI9pV5D0oFp2FZArTSyJiYtMQQs= +github.com/Jigsaw-Code/outline-sdk/x v0.0.0-20240223000159-142376ee10ea h1:SAzKKkOum6WMxylAivTbUjKAwhaUU3RXO53k9qagi0A= +github.com/Jigsaw-Code/outline-sdk/x v0.0.0-20240223000159-142376ee10ea/go.mod h1:lYYruRIG1B5nVqkGQZajQK5jS2BIkMaEBM7yjzl5fIo= github.com/crazy-max/xgo v0.30.0 h1:2uunjwLBrVu5LKIS1dIDXz9U5OIX4H5LEsC3P6wFTto= github.com/crazy-max/xgo v0.30.0/go.mod h1:m/aqfKaN/cYzfw+Pzk7Mk0tkmShg3/rCS4Zdhdugi4o= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/eycorsican/go-tun2socks v1.16.11 h1:+hJDNgisrYaGEqoSxhdikMgMJ4Ilfwm/IZDrWRrbaH8= @@ -11,8 +12,6 @@ github.com/eycorsican/go-tun2socks v1.16.11/go.mod h1:wgB2BFT8ZaPKyKOQ/5dljMG/YI github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI= -github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg= @@ -22,12 +21,17 @@ github.com/shadowsocks/go-shadowsocks2 v0.1.5/go.mod h1:AGGpIoek4HRno4xzyFiAtLHk github.com/songgao/water v0.0.0-20190725173103-fd331bda3f4b/go.mod h1:P5HUIBuIWKbyjl083/loAegFkfbFNx5i2qEP4CNbm7E= github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 h1:TG/diQgUe0pntT/2D9tmUCz4VNwm9MfrtPr0SU2qSX8= github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8/go.mod h1:P5HUIBuIWKbyjl083/loAegFkfbFNx5i2qEP4CNbm7E= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mobile v0.0.0-20231127183840-76ac6878050a h1:sYbmY3FwUWCBTodZL1S3JUuOvaW6kM2o+clDzzDNBWg= golang.org/x/mobile v0.0.0-20231127183840-76ac6878050a/go.mod h1:Ede7gF0KGoHlj822RtphAHK1jLdrcuRBZg0sF1Q+SPc= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= @@ -48,5 +52,6 @@ golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/list.action.mjs b/list.action.mjs index 47d37bf181..51de1058e6 100644 --- a/list.action.mjs +++ b/list.action.mjs @@ -16,7 +16,7 @@ import url from 'url'; import * as globby from 'globby'; import path from 'path'; import fs from 'fs/promises'; -import {getRootDir} from './src/build/get_root_dir.mjs'; +import {getRootDir} from './client/src/build/get_root_dir.mjs'; /** * @description returns a list of all valid actions to run diff --git a/package-lock.json b/package-lock.json index 0ca8655d96..3fc088abe1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,22 @@ { - "name": "outline-client", + "name": "outline-apps", "version": "0.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "outline-client", - "version": "0.0.0", + "name": "outline-apps", "workspaces": [ - "src/cordova/plugin", - "server_manager" + "server_manager", + "client" ], + "engines": { + "node": "18.x.x" + } + }, + "client": { + "name": "outline-client", + "version": "0.0.0", "dependencies": { "@material/mwc-button": "^0.25.3", "@material/mwc-circular-progress": "^0.27.0", @@ -91,7 +97,7 @@ "cordova-webintent": "github:cordova-misc/cordova-webintent#v2.0.0", "css-loader": "^5.0.1", "deepmerge": "^4.3.1", - "electron": "^19.1.9", + "electron": "19.1.9", "electron-builder": "^23.6.0", "electron-icon-maker": "^0.0.5", "eslint": "^8.15.0", @@ -101,6 +107,7 @@ "esm": "^3.2.25", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.1.0", + "husky": "^1.3.1", "i18n-strings-files": "^2.0.0", "intl-messageformat": "^9.12.0", "istanbul": "^0.4.5", @@ -112,7 +119,6 @@ "minimist": "^1.2.6", "node-fetch": "^3.3.0", "node-gyp": "^10.0.1", - "outline-i18n": "Jigsaw-Code/outline-i18n#v0.0.7", "postcss": "^7.0.39", "postcss-rtl": "^1.7.3", "prettier": "^2.8.0", @@ -132,13 +138,15 @@ "webpack-shell-plugin-next": "^2.1.1", "xmlbuilder2": "^3.1.1" }, - "engines": { - "node": "18.x.x" - }, "optionalDependencies": { "ios-deploy": "^1.11.4" } }, + "client/src/cordova/plugin": { + "name": "cordova-plugin-outline", + "version": "0.0.0", + "dev": true + }, "node_modules/@ampproject/remapping": { "version": "2.2.0", "dev": true, @@ -9630,6 +9638,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/callsites": { "version": "3.1.0", "dev": true, @@ -11486,7 +11527,7 @@ "license": "MIT" }, "node_modules/cordova-plugin-outline": { - "resolved": "src/cordova/plugin", + "resolved": "client/src/cordova/plugin", "link": true }, "node_modules/cordova-plugin-splashscreen": { @@ -11676,6 +11717,71 @@ "node": ">= 0.10" } }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "node_modules/crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", @@ -16013,6 +16119,15 @@ "node": ">=4" } }, + "node_modules/get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "dev": true, @@ -17760,6 +17875,234 @@ "ms": "^2.0.0" } }, + "node_modules/husky": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz", + "integrity": "sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "cosmiconfig": "^5.0.7", + "execa": "^1.0.0", + "find-up": "^3.0.0", + "get-stdin": "^6.0.0", + "is-ci": "^2.0.0", + "pkg-dir": "^3.0.0", + "please-upgrade-node": "^3.1.1", + "read-pkg": "^4.0.1", + "run-node": "^1.0.0", + "slash": "^2.0.0" + }, + "bin": { + "husky-upgrade": "lib/upgrader/bin.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/husky/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/husky/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/husky/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/husky/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/husky/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/husky/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/husky/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/husky/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/husky/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/husky/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/husky/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/i18n-strings-files": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/i18n-strings-files/-/i18n-strings-files-2.0.0.tgz", @@ -23402,11 +23745,9 @@ "os-tmpdir": "^1.0.0" } }, - "node_modules/outline-i18n": { - "version": "0.0.7", - "resolved": "git+ssh://git@github.com/Jigsaw-Code/outline-i18n.git#4642c3657074246b8eca09486941434718f66608", - "dev": true, - "license": "Apache-2.0" + "node_modules/outline-client": { + "resolved": "client", + "link": true }, "node_modules/outline-manager": { "resolved": "server_manager", @@ -24156,6 +24497,15 @@ "node": ">= 0.4.0" } }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, "node_modules/plist": { "version": "3.0.6", "dev": true, @@ -25401,6 +25751,20 @@ "node": ">=10" } }, + "node_modules/read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", + "dev": true, + "dependencies": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/read-pkg-up": { "version": "1.0.1", "dev": true, @@ -25494,6 +25858,42 @@ "semver": "bin/semver" } }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "dev": true, @@ -26676,6 +27076,18 @@ "node": ">=4" } }, + "node_modules/run-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", + "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", + "dev": true, + "bin": { + "run-node": "run-node" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "dev": true, @@ -26847,8 +27259,7 @@ "node_modules/semver-compare": { "version": "1.0.0", "dev": true, - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/semver-greatest-satisfied-range": { "version": "1.1.0", @@ -32860,7 +33271,8 @@ }, "src/cordova/plugin": { "name": "cordova-plugin-outline", - "version": "0.0.0" + "version": "0.0.0", + "extraneous": true } }, "dependencies": { @@ -40138,6 +40550,32 @@ "get-intrinsic": "^1.0.2" } }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, "callsites": { "version": "3.1.0", "dev": true @@ -41433,7 +41871,7 @@ "from": "cordova-plugin-clipboard@github:Jigsaw-Code/outline-cordova-plugin-clipboard#v2.0.0" }, "cordova-plugin-outline": { - "version": "file:src/cordova/plugin" + "version": "file:client/src/cordova/plugin" }, "cordova-plugin-splashscreen": { "version": "6.0.2" @@ -41542,6 +41980,61 @@ "vary": "^1" } }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + } + } + }, "crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", @@ -44726,6 +45219,12 @@ "npm-conf": "^1.1.0" } }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, "get-stream": { "version": "6.0.1", "dev": true @@ -46016,6 +46515,178 @@ "ms": "^2.0.0" } }, + "husky": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz", + "integrity": "sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.7", + "execa": "^1.0.0", + "find-up": "^3.0.0", + "get-stdin": "^6.0.0", + "is-ci": "^2.0.0", + "pkg-dir": "^3.0.0", + "please-upgrade-node": "^3.1.1", + "read-pkg": "^4.0.1", + "run-node": "^1.0.0", + "slash": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "i18n-strings-files": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/i18n-strings-files/-/i18n-strings-files-2.0.0.tgz", @@ -50096,10 +50767,128 @@ "os-tmpdir": "^1.0.0" } }, - "outline-i18n": { - "version": "git+ssh://git@github.com/Jigsaw-Code/outline-i18n.git#4642c3657074246b8eca09486941434718f66608", - "dev": true, - "from": "outline-i18n@Jigsaw-Code/outline-i18n#v0.0.7" + "outline-client": { + "version": "file:client", + "requires": { + "@babel/core": "^7.12.10", + "@babel/polyfill": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@commitlint/config-conventional": "^16.2.4", + "@jsdevtools/coverage-istanbul-loader": "^3.0.5", + "@material/mwc-button": "^0.25.3", + "@material/mwc-circular-progress": "^0.27.0", + "@material/mwc-formfield": "^0.25.3", + "@material/mwc-icon-button": "^0.25.3", + "@material/mwc-menu": "^0.25.3", + "@material/mwc-radio": "^0.25.3", + "@material/mwc-select": "^0.25.3", + "@material/mwc-textarea": "^0.25.3", + "@material/mwc-textfield": "^0.25.3", + "@open-wc/testing": "^3.2.0", + "@open-wc/testing-karma": "^4.0.9", + "@polymer/app-layout": "^3.1.0", + "@polymer/app-localize-behavior": "^3.0.1", + "@polymer/app-route": "^3.0.2", + "@polymer/decorators": "^3.0.0", + "@polymer/font-roboto": "^3.0.2", + "@polymer/iron-icons": "^3.0.1", + "@polymer/iron-iconset-svg": "^3.0.1", + "@polymer/iron-pages": "^3.0.1", + "@polymer/paper-behaviors": "^3.0.1", + "@polymer/paper-button": "^3.0.1", + "@polymer/paper-card": "^3.0.1", + "@polymer/paper-dialog": "^3.0.1", + "@polymer/paper-dropdown-menu": "^3.1.0", + "@polymer/paper-icon-button": "^3.0.2", + "@polymer/paper-input": "^3.2.1", + "@polymer/paper-item": "^3.0.1", + "@polymer/paper-listbox": "^3.0.1", + "@polymer/paper-menu-button": "^3.0.1", + "@polymer/paper-ripple": "^3.0.2", + "@polymer/paper-styles": "^3.0.1", + "@polymer/paper-toast": "^3.0.1", + "@rollup/plugin-image": "^2.1.1", + "@sentry/browser": "^7.31.1", + "@sentry/electron": "^4.2.0", + "@types/auto-launch": "^5.0.0", + "@types/cordova": "^0.0.34", + "@types/jasmine": "^4.3.6", + "@types/node": "^14.14.7", + "@types/polymer": "^1.2.9", + "@types/uuidv4": "^2.0.0", + "@typescript-eslint/eslint-plugin": "^5.32.0", + "@typescript-eslint/parser": "^5.32.0", + "@web/dev-server": "^0.1.35", + "@web/dev-server-esbuild": "^0.3.3", + "@web/dev-server-storybook": "^0.5.4", + "@webcomponents/webcomponentsjs": "^2.4.4", + "auto-launch": "^5.0.5", + "babel-loader": "^8.2.2", + "browserslist": "^4.20.3", + "chalk": "^5.0.1", + "copy-dir": "^1.3.0", + "copy-webpack-plugin": "^5.1.1", + "cordova-android": "^11.0.0", + "cordova-browser": "~6.0.0", + "cordova-ios": "github:apache/cordova-ios#1a5cd45e2243b239b5045a0ade9d2da1d779b72a", + "cordova-lib": "^11.0.0", + "cordova-osx": "github:apache/cordova-osx", + "cordova-plugin-clipboard": "github:Jigsaw-Code/outline-cordova-plugin-clipboard#v2.0.0", + "cordova-plugin-outline": "file:src/cordova/plugin", + "cordova-plugin-splashscreen": "^6.0.0", + "cordova-plugin-statusbar": "^2.2.3", + "cordova-webintent": "github:cordova-misc/cordova-webintent#v2.0.0", + "css-loader": "^5.0.1", + "deepmerge": "^4.3.1", + "electron": "19.1.9", + "electron-builder": "^23.6.0", + "electron-icon-maker": "^0.0.5", + "electron-updater": "^5.0.5", + "eslint": "^8.15.0", + "eslint-import-resolver-typescript": "^3.4.0", + "eslint-plugin-compat": "^4.0.2", + "eslint-plugin-import": "^2.26.0", + "esm": "^3.2.25", + "file-loader": "^6.2.0", + "html-webpack-plugin": "^5.1.0", + "husky": "^1.3.1", + "i18n-strings-files": "^2.0.0", + "intl-messageformat": "^9.12.0", + "ios-deploy": "^1.11.4", + "istanbul": "^0.4.5", + "karma": "^6.4.2", + "karma-chrome-launcher": "^3.1.0", + "karma-coverage-istanbul-reporter": "^3.0.3", + "karma-jasmine": "^4.0.1", + "karma-webpack": "^5.0.0", + "lit": "^2.2.2", + "minimist": "^1.2.6", + "node-fetch": "^3.3.0", + "node-gyp": "^10.0.1", + "postcss": "^7.0.39", + "postcss-rtl": "^1.7.3", + "prettier": "^2.8.0", + "pretty-quick": "^2.0.1", + "puppeteer": "^13.1.2", + "replace-in-file": "^6.3.5", + "rimraf": "^2.7.1", + "rmfr": "^2.0.0", + "ShadowsocksConfig": "github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.1", + "socks": "^1.1.10", + "style-loader": "^2.0.0", + "sudo-prompt": "^9.2.1", + "ts-loader": "^9.3.1", + "typescript": "^4.7.4", + "url": "^0.11.0", + "uuidv4": "^4.0.0", + "web-animations-js": "^2.3.2", + "webpack": "^5.16.0", + "webpack-cli": "^4.4.0", + "webpack-dev-server": "^4.5.0", + "webpack-merge": "^5.8.0", + "webpack-shell-plugin-next": "^2.1.1", + "xmlbuilder2": "^3.1.1" + } }, "outline-manager": { "version": "file:server_manager", @@ -51580,6 +52369,15 @@ "version": "0.4.0", "dev": true }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, "plist": { "version": "3.0.6", "dev": true, @@ -52487,6 +53285,49 @@ "npm-normalize-package-bin": "^1.0.1" } }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, "read-pkg-up": { "version": "1.0.1", "dev": true, @@ -53395,6 +54236,12 @@ } } }, + "run-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", + "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", + "dev": true + }, "run-parallel": { "version": "1.2.0", "dev": true, @@ -53520,8 +54367,7 @@ }, "semver-compare": { "version": "1.0.0", - "dev": true, - "optional": true + "dev": true }, "semver-greatest-satisfied-range": { "version": "1.1.0", diff --git a/package.json b/package.json index 97a245d847..b2349c254a 100644 --- a/package.json +++ b/package.json @@ -1,167 +1,24 @@ { - "name": "outline-client", - "version": "0.0.0", + "name": "outline-apps", "productName": "Outline", "scripts": { "action:help": "npm run action list", "action:list": "npm run action list", - "action": "node src/build/run_action.mjs", - "clean": "rimraf build output node_modules www platforms plugins third_party/jsign/*.jar", + "action": "node ./client/src/build/run_action.mjs", + "clean": "rimraf client/build client/output node_modules client/node_modules client/www client/platforms client/plugins third_party/jsign/*.jar", "format:all": "prettier --write \"**/*.{cjs,mjs,html,js,json,md,ts}\"", "format": "pretty-quick --staged --pattern \"**/*.{cjs,mjs,html,js,json,md,ts}\"", - "lint:ts": "eslint --ext ts,mjs src", + "lint:ts": "eslint --ext ts,mjs client/src", "lint": "npm run lint:ts", "reset": "npm run clean && npm ci" }, - "comments": { - "version": "The 'version' in this file is just a placeholder for 'npx generate-license-file', please do not change it.", - "codrova-osx": "Version-controlled platform config files at src/cordova/apple/xcode/osx/Outline/config.xml, src/cordova/apple/xcode/osx/osx.json, and src/cordova/apple/xcode/osx/www/cordova_plugins.js as a workaround for https://github.com/apache/cordova-osx/issues/106. Delete these files when the issue is fixed." - }, - "dependencies": { - "@material/mwc-button": "^0.25.3", - "@material/mwc-circular-progress": "^0.27.0", - "@material/mwc-formfield": "^0.25.3", - "@material/mwc-icon-button": "^0.25.3", - "@material/mwc-menu": "^0.25.3", - "@material/mwc-radio": "^0.25.3", - "@material/mwc-select": "^0.25.3", - "@material/mwc-textarea": "^0.25.3", - "@material/mwc-textfield": "^0.25.3", - "@polymer/app-layout": "^3.1.0", - "@polymer/app-localize-behavior": "^3.0.1", - "@polymer/app-route": "^3.0.2", - "@polymer/decorators": "^3.0.0", - "@polymer/font-roboto": "^3.0.2", - "@polymer/iron-icons": "^3.0.1", - "@polymer/iron-iconset-svg": "^3.0.1", - "@polymer/iron-pages": "^3.0.1", - "@polymer/paper-behaviors": "^3.0.1", - "@polymer/paper-button": "^3.0.1", - "@polymer/paper-card": "^3.0.1", - "@polymer/paper-dialog": "^3.0.1", - "@polymer/paper-dropdown-menu": "^3.1.0", - "@polymer/paper-icon-button": "^3.0.2", - "@polymer/paper-input": "^3.2.1", - "@polymer/paper-item": "^3.0.1", - "@polymer/paper-listbox": "^3.0.1", - "@polymer/paper-menu-button": "^3.0.1", - "@polymer/paper-ripple": "^3.0.2", - "@polymer/paper-styles": "^3.0.1", - "@polymer/paper-toast": "^3.0.1", - "@sentry/browser": "^7.31.1", - "@sentry/electron": "^4.2.0", - "@webcomponents/webcomponentsjs": "^2.4.4", - "auto-launch": "^5.0.5", - "browserslist": "^4.20.3", - "cordova-plugin-splashscreen": "^6.0.0", - "cordova-plugin-statusbar": "^2.2.3", - "electron-updater": "^5.0.5", - "lit": "^2.2.2", - "ShadowsocksConfig": "github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.1", - "socks": "^1.1.10", - "sudo-prompt": "^9.2.1", - "uuidv4": "^4.0.0", - "web-animations-js": "^2.3.2" - }, "engines": { "node": "18.x.x" }, - "devDependencies": { - "@babel/core": "^7.12.10", - "@babel/polyfill": "^7.12.1", - "@babel/preset-env": "^7.12.11", - "@commitlint/config-conventional": "^16.2.4", - "@jsdevtools/coverage-istanbul-loader": "^3.0.5", - "@open-wc/testing": "^3.2.0", - "@open-wc/testing-karma": "^4.0.9", - "@rollup/plugin-image": "^2.1.1", - "@types/auto-launch": "^5.0.0", - "@types/cordova": "^0.0.34", - "@types/jasmine": "^4.3.6", - "@types/node": "^14.14.7", - "@types/polymer": "^1.2.9", - "@types/uuidv4": "^2.0.0", - "@typescript-eslint/eslint-plugin": "^5.32.0", - "@typescript-eslint/parser": "^5.32.0", - "@web/dev-server": "^0.1.35", - "@web/dev-server-esbuild": "^0.3.3", - "@web/dev-server-storybook": "^0.5.4", - "babel-loader": "^8.2.2", - "chalk": "^5.0.1", - "copy-dir": "^1.3.0", - "copy-webpack-plugin": "^5.1.1", - "cordova-android": "^11.0.0", - "cordova-browser": "~6.0.0", - "cordova-ios": "github:apache/cordova-ios#1a5cd45e2243b239b5045a0ade9d2da1d779b72a", - "cordova-lib": "^11.0.0", - "cordova-osx": "github:apache/cordova-osx", - "cordova-plugin-clipboard": "github:Jigsaw-Code/outline-cordova-plugin-clipboard#v2.0.0", - "cordova-plugin-outline": "file:src/cordova/plugin", - "cordova-webintent": "github:cordova-misc/cordova-webintent#v2.0.0", - "css-loader": "^5.0.1", - "deepmerge": "^4.3.1", - "electron": "^19.1.9", - "electron-builder": "^23.6.0", - "electron-icon-maker": "^0.0.5", - "eslint": "^8.15.0", - "eslint-import-resolver-typescript": "^3.4.0", - "eslint-plugin-compat": "^4.0.2", - "eslint-plugin-import": "^2.26.0", - "esm": "^3.2.25", - "file-loader": "^6.2.0", - "html-webpack-plugin": "^5.1.0", - "i18n-strings-files": "^2.0.0", - "intl-messageformat": "^9.12.0", - "istanbul": "^0.4.5", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.1.0", - "karma-coverage-istanbul-reporter": "^3.0.3", - "karma-jasmine": "^4.0.1", - "karma-webpack": "^5.0.0", - "minimist": "^1.2.6", - "node-fetch": "^3.3.0", - "node-gyp": "^10.0.1", - "outline-i18n": "Jigsaw-Code/outline-i18n#v0.0.7", - "postcss": "^7.0.39", - "postcss-rtl": "^1.7.3", - "prettier": "^2.8.0", - "pretty-quick": "^2.0.1", - "puppeteer": "^13.1.2", - "replace-in-file": "^6.3.5", - "rimraf": "^2.7.1", - "rmfr": "^2.0.0", - "style-loader": "^2.0.0", - "ts-loader": "^9.3.1", - "typescript": "^4.7.4", - "url": "^0.11.0", - "webpack": "^5.16.0", - "webpack-cli": "^4.4.0", - "webpack-dev-server": "^4.5.0", - "webpack-merge": "^5.8.0", - "webpack-shell-plugin-next": "^2.1.1", - "xmlbuilder2": "^3.1.1" - }, - "optionalDependencies": { - "ios-deploy": "^1.11.4" - }, - "main": "build/electron/electron/index.js", - "cordova": { - "plugins": { - "cordova-plugin-outline": {}, - "cordova-plugin-splashscreen": {}, - "cordova-plugin-statusbar": {}, - "cordova-plugin-clipboard": {}, - "cordova-webintent": {} - }, - "platforms": [ - "browser", - "android", - "ios", - "osx" - ] - }, + "main": "client/build/electron/electron/index.js", + "private": true, "workspaces": [ - "src/cordova/plugin", - "server_manager" + "server_manager", + "client" ] } diff --git a/server_manager/electron_app/build.action.sh b/server_manager/electron_app/build.action.sh index 4972b352be..473da04464 100755 --- a/server_manager/electron_app/build.action.sh +++ b/server_manager/electron_app/build.action.sh @@ -50,7 +50,7 @@ if [[ -z "${WEBPACK_MODE:-}" ]]; then fi # Build the Web App. -node src/build/run_action.mjs server_manager/web_app/build +node client/src/build/run_action.mjs server_manager/web_app/build # Compile the Electron main process and preload to the app root folder. # Since Node.js on Cygwin doesn't like absolute Unix-style paths, diff --git a/server_manager/electron_app/package.action.sh b/server_manager/electron_app/package.action.sh index ac019925aa..dc772090fd 100755 --- a/server_manager/electron_app/package.action.sh +++ b/server_manager/electron_app/package.action.sh @@ -97,7 +97,7 @@ function main() { *) ;; esac done - node src/build/run_action.mjs server_manager/electron_app/build --buildMode="${BUILD_MODE}" --versionName="${version_name}" + node client/src/build/run_action.mjs server_manager/electron_app/build --buildMode="${BUILD_MODE}" --versionName="${version_name}" package_electron finish_yaml_files "${staging_percentage}" } diff --git a/server_manager/electron_app/start.action.sh b/server_manager/electron_app/start.action.sh index 4ab5424951..ca03d8b01d 100755 --- a/server_manager/electron_app/start.action.sh +++ b/server_manager/electron_app/start.action.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -node src/build/run_action.mjs server_manager/electron_app/build "$@" +node client/src/build/run_action.mjs server_manager/electron_app/build "$@" cd "${BUILD_DIR}/server_manager/electron_app/static" diff --git a/server_manager/web_app/build.action.sh b/server_manager/web_app/build.action.sh index 8d2230ded6..55234af2fd 100755 --- a/server_manager/web_app/build.action.sh +++ b/server_manager/web_app/build.action.sh @@ -19,7 +19,7 @@ set -eu readonly OUT_DIR="${BUILD_DIR}/server_manager/web_app" rm -rf "${OUT_DIR}" -node src/build/run_action.mjs server_manager/web_app/build_install_script +node client/src/build/run_action.mjs server_manager/web_app/build_install_script # Node.js on Cygwin doesn't like absolute Unix-style paths. # So, we use a relative path as input to webpack. diff --git a/server_manager/web_app/start.action.sh b/server_manager/web_app/start.action.sh index 5321eaa68e..fe142ec0f2 100755 --- a/server_manager/web_app/start.action.sh +++ b/server_manager/web_app/start.action.sh @@ -18,6 +18,6 @@ set -eu rm -rf "${BUILD_DIR}/server_manager/web_app" -node src/build/run_action.mjs server_manager/web_app/build_install_script +node client/src/build/run_action.mjs server_manager/web_app/build_install_script webpack-dev-server --config=src/server_manager/browser.webpack.js --open diff --git a/src/electron/electron-builder.json b/src/electron/electron-builder.json deleted file mode 100644 index 1fb45d7ae0..0000000000 --- a/src/electron/electron-builder.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "files": ["build/electron", "www", "resources/tray", "!node_modules/electron"], - "asarUnpack": ["third_party", "tools"], - "artifactName": "Outline-Client.${ext}", - "directories": { - "output": "output/build/dist" - }, - "linux": { - "target": { - "target": "AppImage", - "arch": ["x64"] - }, - "files": ["build/icons/png", "output/build/linux", "tools/outline_proxy_controller/dist"], - "icon": "build/icons/png", - "category": "Network" - }, - "win": { - "target": [ - { - "target": "nsis", - "arch": "ia32" - } - ], - "files": ["output/build/windows"], - "icon": "build/icons/win/icon.ico", - "sign": "src/electron/windows/electron_builder_signing_plugin.cjs", - "signingHashAlgorithms": ["sha256"] - }, - "nsis": { - "perMachine": true, - "include": "src/electron/custom_install_steps.nsh" - } -} diff --git a/third_party/jsign/index.mjs b/third_party/jsign/index.mjs index d5cf3e10b2..ad8ed8c58e 100644 --- a/third_party/jsign/index.mjs +++ b/third_party/jsign/index.mjs @@ -15,9 +15,9 @@ import {spawn} from 'node:child_process'; import {resolve} from 'node:path'; -import {downloadHttpsFile} from '../../src/build/download_file.mjs'; -import {getFileChecksum} from '../../src/build/get_file_checksum.mjs'; -import {getRootDir} from '../../src/build/get_root_dir.mjs'; +import {downloadHttpsFile} from '../../client/src/build/download_file.mjs'; +import {getFileChecksum} from '../../client/src/build/get_file_checksum.mjs'; +import {getRootDir} from '../../client/src/build/get_root_dir.mjs'; /** * Run jsign.jar to sign `fileToSign` with a list of cli arguments stored in `options`.