Compare commits

..

62 Commits

Author SHA1 Message Date
a78cd4c56c Update dependency @types/node to v14.18.63
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-09-24 01:05:31 +00:00
1c6931b8a1 Lock file maintenance
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-09-18 01:07:15 +00:00
41091c692a Update dependency @types/node to v14.18.61
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-09-17 01:04:21 +00:00
18cf038fc9 Update dependency @types/node to v14.18.58
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-09-03 01:04:22 +00:00
4e8058c3ee Lock file maintenance
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-08-25 01:20:32 +00:00
64e0d1c4a6 Update dependency @types/node to v14.18.56
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-08-24 01:05:02 +00:00
1fb3303bf4 Update dependency @types/node to v14.18.53
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-07-04 01:03:09 +00:00
4f0fc97ad1 Lock file maintenance
All checks were successful
valuya/comptaplan_app/pipeline/pr-dev This commit looks good
valuya/comptaplan_app/pipeline/head This commit looks good
2023-02-11 01:13:14 +00:00
743dc8e24f Merge remote-tracking branch 'origin/master' into dev
Some checks reported errors
valuya/comptaplan_app/pipeline/head Something is wrong with the build of this commit
2022-04-18 21:15:29 +02:00
e69dcf9be0 Merge pull request 'Configure Renovate' (#1) from renovate/configure into master
Reviewed-on: #1
2022-04-16 16:32:18 +00:00
7456cb5958 Add renovate.json
Some checks failed
valuya/comptaplan_app/pipeline/pr-master There was a failure building this commit
valuya/comptaplan_app/pipeline/head There was a failure building this commit
2022-04-16 15:49:27 +00:00
67a71e2aa0 jenkinsfile & script: Fix passing upload track correctly
Some checks reported errors
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
valuya/comptaplan_app/pipeline/head Something is wrong with the build of this commit
2022-01-19 22:18:57 +01:00
Jenkins release
35ba1d4091 Bump to build Update pubspec for version 1.0.0+68
67
2022-01-19 22:16:13 +01:00
37118b7991 Allow to use webview & open ios app store link on ios
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2022-01-19 22:05:50 +01:00
Jenkins release
912f527bdd Bump to build Update pubspec for version 1.0.0+67
66
2022-01-19 20:15:30 +01:00
402753569d Jenkinsfile: skip using stash/unstash
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2022-01-19 20:08:35 +01:00
6e770d69ed Merge remote-tracking branch 'origin/android-releases' into dev 2022-01-19 20:08:21 +01:00
ea85f7838a Winbooks Connect migration
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2022-01-19 19:11:31 +01:00
Jenkins release
160b2bb51f Bump to build Update pubspec for version 1.0.0+66
65
2021-11-28 18:06:23 +01:00
b134c69db7 BUmp build number
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2021-11-28 18:02:08 +01:00
8c67951494 fix repo uri
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 17:53:02 +01:00
4b637d76e8 fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 17:36:13 +01:00
24ae69f918 Merge remote-tracking branch 'upstream/master' into dev
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 17:19:33 +01:00
55e4040bc6 Fix 2021-11-28 17:19:20 +01:00
869017c9b5 fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 17:04:01 +01:00
edfb83def4 Merge remote-tracking branch 'upstream/master' into dev
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 16:45:59 +01:00
76349d4b42 Fix 2021-11-28 16:44:33 +01:00
554bd1b10a Update readme 2021-11-28 16:41:26 +01:00
93ed50761e fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 16:40:14 +01:00
717559a421 fix
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2021-11-28 16:37:09 +01:00
549e812225 Merge remote-tracking branch 'origin/android-releases' into dev
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 16:27:58 +01:00
f408329a83 Merge remote-tracking branch 'upstream/master' into dev
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 16:27:38 +01:00
207732cbe7 Fixes 2021-11-28 16:27:23 +01:00
c294e40c01 fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 16:26:49 +01:00
5b571b174b fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 16:25:13 +01:00
b79c151948 Merge remote-tracking branch 'upstream/master' into dev
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-28 16:24:24 +01:00
9da3a88041 Fixes 2021-11-28 16:23:38 +01:00
dc7bc9425e merge upstream/master 2021-11-28 16:22:57 +01:00
27edfbf287 Fixes 2021-11-28 15:50:12 +01:00
d157673aac Upgrade webview 2021-11-28 15:44:08 +01:00
027eb0b7d1 Clean up & add packaging scripts 2021-11-28 15:42:28 +01:00
Jenkins release
96a202b4e2 Bump to build Update pubspec for version 1.0.0+63
62
2021-11-28 14:56:13 +01:00
e1b7fd1999 Merge remote-tracking branch 'origin/android-releases' into dev
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2021-11-28 14:45:28 +01:00
9e934d6441 Fix file upload/download 2021-11-28 14:45:15 +01:00
Jenkins release
9a6410504f Bump to build Update pubspec for version 1.0.0+62
61
2021-11-28 00:54:10 +01:00
7061dd0653 Merge remote-tracking branch 'origin/android-releases' into dev
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2021-11-28 00:49:23 +01:00
62924098d2 Fix
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2021-11-28 00:49:04 +01:00
Jenkins release
c54ac3563e Bump to build Update pubspec for version 1.0.0+61
60
2021-11-27 18:54:34 +01:00
6a2b1592fe Fix
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2021-11-27 18:51:36 +01:00
4bb0ca4a97 ios icons
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-27 18:44:33 +01:00
5c3bc83a09 Update icon
All checks were successful
gestemps/comptaplanapp/pipeline/head This commit looks good
2021-11-27 18:39:56 +01:00
56003d3209 typo
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-27 18:33:54 +01:00
2005fd437f fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-27 18:30:36 +01:00
a1dd4055a3 fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-27 18:28:21 +01:00
5e8f43b92a typo 2021-11-27 18:26:13 +01:00
06c521b175 jenkins: fix keystore conf
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-27 18:24:59 +01:00
28a90263f6 jenkins: fix keystore conf
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-27 18:20:19 +01:00
80f30b02b8 fix
Some checks failed
gestemps/comptaplanapp/pipeline/head There was a failure building this commit
2021-11-27 18:14:32 +01:00
cb9da7a7fa fix secret paths
Some checks failed
valuya/comptaplan_app/pipeline/head There was a failure building this commit
2021-11-27 18:11:59 +01:00
3816a01fdf jenkinsfile fix
Some checks are pending
gestemps/comptaplanapp/pipeline/head Build queued...
2021-11-27 17:53:53 +01:00
53116080e4 jenkinsfile fix 2021-11-27 17:53:47 +01:00
12eba45ff1 Comptaplan config 2021-11-27 17:51:36 +01:00
86 changed files with 894 additions and 640 deletions

67
Jenkinsfile vendored
View File

@ -7,36 +7,59 @@ pipeline {
buildDiscarder(logRotator(numToKeepStr: '10')) buildDiscarder(logRotator(numToKeepStr: '10'))
} }
parameters { parameters {
string(name: 'APP_TITLE', defaultValue: 'Embedded Webview', description: 'Application title') string(name: 'APP_PACKAGE_ID', defaultValue: 'comptaplan.app', description: 'Application package id used as android identifier')
string(name: 'APP_URI', defaultValue: 'https://www.charlyghislain.com', description: 'Application uri') string(name: 'APP_BUNDLE_ID', defaultValue: 'comptaplan_app', description: 'Application bundle id used as ios identifier')
string(name: 'APP_COLOR', defaultValue: 'red', description: 'Application color (blue, teal, ...)') string(name: 'APP_TITLE', defaultValue: 'My Comptaplan', description: 'Application title')
string(name: 'APP_URI', defaultValue: 'https://my.comptaplan.be', description: 'Application uri')
string(name: 'APP_COLOR', defaultValue: 'blue', description: 'Application color (blue, teal, ...)')
string(name: 'BUILD_MODE', defaultValue: 'debug', description: 'Flutter build mode (debug/release)') string(name: 'BUILD_MODE', defaultValue: 'debug', description: 'Flutter build mode (debug/release)')
string(name: 'UPLOAD_TRACK', defaultValue: 'alpha', description: 'Upload track') string(name: 'ANDROID_SIGNING_KEYSTORE_CREDENTIAL', defaultValue: 'jenkins-gestemps-android-service-secret-keystore')
string(name: 'RELEASE_MESSAGE', defaultValue: 'Nouvelle version', description: 'A release message') string(name: 'ANDROID_SIGNING_KEYSTORE_PASSWORD_CREDENTIAL', defaultValue: 'jenkins-gestemps-android-service-secret-keystore-password')
string(name: 'RELEASE_STATUS', defaultValue: 'completed', description: 'draft/completed') string(name: 'ANDROID_SIGNING_KEY_PASSWORD_CREDENTIAL', defaultValue: 'jenkins-gestemps-android-service-secret-key-password')
string(name: 'ANDROID_SIGNING_KEY_ALIAS', defaultValue: 'comptaplan',
description: 'The key alias to use within the keystore')
booleanParam(name: 'SKIP_PUBLISH', defaultValue: 'true', description: 'Skip publishing apk') booleanParam(name: 'SKIP_PUBLISH', defaultValue: 'true', description: 'Skip publishing apk')
string(name: 'GIT_CREDENTIAL_ID', defaultValue: 'jenkins-jenkins-ssh-key', description: '') string(name: 'GIT_CREDENTIAL_ID', defaultValue: 'jenkins-jenkins-ssh-key', description: '')
string(name: 'RELEASE_MESSAGE', defaultValue: 'Nouvelle version', description: 'A release message')
string(name: 'ANDROID_UPLOAD_TRACK', defaultValue: 'alpha', description: 'Upload track (internal/alpha/beta/production)')
string(name: 'ANDROID_RELEASE_STATUS', defaultValue: 'completed', description: 'draft/completed')
string(name: 'ANDROID_API_KEY_CREDENTIAL', defaultValue: 'jenkins-gestemps-android-service-secret-api-key', description: 'Api key to for the play store api')
string(name: 'GIT_SSH_REMOTE_NAME', defaultValue: 'ssh://git@gitea.valuya.com:2022/Valuya/comptaplan_app.git',
description: 'We use ssh authentication, but gitea may use an http remotes by default. This is the remote to push the build number increment.')
string(name: 'GIT_PUSH_BRANCH', defaultValue: 'android-releases', description: 'A branch to push the commit') string(name: 'GIT_PUSH_BRANCH', defaultValue: 'android-releases', description: 'A branch to push the commit')
string(name: 'GIT_TAG', defaultValue: '', description: 'An additional tag to push') string(name: 'GIT_TAG', defaultValue: '', description: 'An additional tag to push')
string(name: 'SSH_KNOWN_HOSTS_FILE', defaultValue: '/var/run/ssh/known_hosts.gitea.valuya.com', description: 'Known hosts for ssh client (might be used to get flutter git dependencies and push commits)')
booleanParam(name: 'SKIP_PUSH_TAG', defaultValue: 'true', description: 'Skip push tag') booleanParam(name: 'SKIP_PUSH_TAG', defaultValue: 'true', description: 'Skip push tag')
string(name: 'NODEJS_INSTALLATION', defaultValue: 'node14',description: 'Nodejs installation to use') string(name: 'NODEJS_INSTALLATION', defaultValue: 'node 15',description: 'Nodejs installation to use')
} }
stages { stages {
stage ('Build') { stage ('Build') {
steps { steps {
script { script {
env.APP_PACKAGE_ID= params.APP_PACKAGE_ID
env.APP_BUNDLE_ID= params.APP_BUNDLE_ID
env.APP_TITLE= params.APP_TITLE env.APP_TITLE= params.APP_TITLE
env.APP_URI= params.APP_URI env.APP_URI= params.APP_URI
env.APP_COLOR= params.APP_COLOR env.APP_COLOR= params.APP_COLOR
env.BUILD_MODE= params.BUILD_MODE env.BUILD_MODE= params.BUILD_MODE
env.SSH_KNOWN_HOSTS_FILE= params.SSH_KNOWN_HOSTS_FILE
env.ANDROID_KEY_ALIAS= params.ANDROID_SIGNING_KEY_ALIAS
} }
container ('flutter') { container ('flutter') {
sshagent(["${params.GIT_CREDENTIAL_ID}"]) { sshagent(["${params.GIT_CREDENTIAL_ID}"]) {
sh 'flutter doctor' withCredentials([
sh 'GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/var/run/ssh/known_hosts.gitea.fteamdev.valuya.be" flutter pub get' file(credentialsId: params.ANDROID_SIGNING_KEYSTORE_CREDENTIAL, variable: 'ANDROID_KEYSTORE_FILE'),
sh 'flutter clean' string(credentialsId: params.ANDROID_SIGNING_KEYSTORE_PASSWORD_CREDENTIAL, variable: 'ANDROID_KEYSTORE_PASSWORD'),
sh 'APP_TITLE="$APP_TITLE" APP_URI="$APP_URI" APP_COLOR="$APP_COLOR" BUILDMODE="$BUILD_MODEs" ./tools/jenkins-build-android.sh' string(credentialsId: params.ANDROID_SIGNING_KEY_PASSWORD_CREDENTIAL, variable: 'ANDROID_KEY_PASSWORD')
stash(name: 'outputs', includes: 'build/app/outputs/**') ]) {
sh 'flutter doctor'
sh 'GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$SSH_KNOWN_HOSTS_FILE" flutter pub get'
sh 'flutter clean'
sh './tools/set-bundle-identifier.sh "$APP_BUNDLE_ID"'
sh './tools/set-package.sh "$APP_PACKAGE_ID"'
sh './tools/set-title.sh "$APP_TITLE"'
sh './tools/jenkins-build-android.sh'
}
} }
} }
} }
@ -51,24 +74,30 @@ pipeline {
env.SKIP_PUSH_TAG= params.SKIP_PUSH_TAG env.SKIP_PUSH_TAG= params.SKIP_PUSH_TAG
env.GIT_TAG= params.GIT_TAG env.GIT_TAG= params.GIT_TAG
env.GIT_PUSH_BRANCH = params.GIT_PUSH_BRANCH env.GIT_PUSH_BRANCH = params.GIT_PUSH_BRANCH
env.TRACK = params.UPLOAD_TRACK env.ANDROID_UPLOAD_TRACK = params.ANDROID_UPLOAD_TRACK
env.RELEASE_STATUS = params.RELEASE_STATUS env.ANDROID_RELEASE_STATUS = params.ANDROID_RELEASE_STATUS
env.RELEASE_MESSAGE = params.RELEASE_MESSAGE env.RELEASE_MESSAGE = params.RELEASE_MESSAGE
env.GIT_SSH_REMOTE_NAME = params.GIT_SSH_REMOTE_NAME
env.SSH_KNOWN_HOSTS_FILE = params.SSH_KNOWN_HOSTS_FILE
} }
unstash(name: 'outputs')
sshagent(["${params.GIT_CREDENTIAL_ID}"]) { sshagent(["${params.GIT_CREDENTIAL_ID}"]) {
nodejs(nodeJSInstallationName: "${params.NODEJS_INSTALLATION}") { nodejs(nodeJSInstallationName: "${params.NODEJS_INSTALLATION}") {
sh './tools/jenkins-publish-android.sh' withCredentials([
file(credentialsId: params.ANDROID_API_KEY_CREDENTIAL, variable: 'GOOGLE_APPLICATION_CREDENTIALS')
]) {
sh './tools/jenkins-publish-android.sh'
}
} }
sh ''' sh '''
VERSION_CODE=$(./tools/jenkins-increment-buildnumber.sh || echo $?) VERSION_CODE=$(./tools/jenkins-increment-buildnumber.sh || echo $?)
[ "$VERSION_CODE" == "0" ] && exit 1 [ "$VERSION_CODE" == "0" ] && exit 1
git config user.email "jenkins@valuya.be" git config user.email "jenkins@valuya.com"
git config user.name "Jenkins release" git config user.name "Jenkins release"
git add pubspec.yaml git add pubspec.yaml
git remote add ssh "ssh://git@gitea.fteamdev.valuya.be:2022/fiscalteam/nitro-trustee-mobile.git" git remote add ssh "$GIT_SSH_REMOTE_NAME"
git commit -m "Bump to build $VERSION_CODE" git commit -m "Bump to build $VERSION_CODE"
export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/var/run/ssh/known_hosts.gitea.fteamdev.valuya.be" export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$SSH_KNOWN_HOSTS_FILE"
git push ssh HEAD:$GIT_PUSH_BRANCH git push ssh HEAD:$GIT_PUSH_BRANCH
if [ "$SKIP_PUSH_TAG" != "true" ] ; then if [ "$SKIP_PUSH_TAG" != "true" ] ; then
git tag "$GIT_TAG" git tag "$GIT_TAG"

View File

@ -1,23 +1,31 @@
# embedded_webview # comptaplan_app
An embedded webview An embedded webview
Build-time env config: Build-time env config:
APP_TITLE=The app title which does not appear used much APP_TITLE=The app title which does not appear used much APP_URI=THe uri to load APP_COLOR=The color to use a theme that does not appear used
APP_URI=THe uri to load much
APP_COLOR=The color to use a theme that does not appear used much
Pass them to dart usign --dart-define: Pass them to dart usign --dart-define:
`--dart-define="APP_TITLE=test" --dart-define="APP_URI=https://www.charlyghislain.com"` `--dart-define="APP_TITLE=test" --dart-define="APP_URI=https://www.charlyghislain.com"`
Pass those flags to flutter run, ... Pass those flags to flutter run, ...
See jenkinsfile.
## To publish on app store ## To publish on app store
- Clone this repo - Fork this repo
- Alter the android and ios config to your liking, package name, key etc - Alter the android and ios config to your liking, package name, key etc
- Publish - Push your branding changes to another repo
- Set up the jenkins job
- Merge upstream changes regularly
## Adnroid checklist:
- setup a key.properties file along local.properties
- load the properties in the app/build.gradle and reference to generate the manaifest
## Getting Started ## Getting Started
@ -29,5 +37,4 @@ A few resources to get you started if this is your first Flutter project:
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
For help getting started with Flutter, view our For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials, [online documentation](https://flutter.dev/docs), which offers tutorials, samples, guidance on mobile development, and a full API reference.
samples, guidance on mobile development, and a full API reference.

View File

@ -21,6 +21,13 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0' flutterVersionName = '1.0'
} }
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
@ -41,20 +48,28 @@ android {
main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/kotlin'
} }
dependencies {
implementation 'com.google.android.material:material:1.4.0'
}
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "comptaplan.app"
applicationId "com.charlyghislain.embedded_webview"
minSdkVersion 19 minSdkVersion 19
targetSdkVersion 30 targetSdkVersion 30
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
} }
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes { buildTypes {
release { release {
// TODO: Add your own signing config for the release build. signingConfig signingConfigs.release
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
} }
} }
} }

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.charlyghislain.embedded_webview"> package="comptaplan.app">
<!-- Flutter needs it to communicate with the running application <!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc. to allow setting breakpoints, to provide hot reload, etc.
--> -->

View File

@ -1,8 +1,14 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.charlyghislain.embedded_webview"> package="comptaplan.app">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<application <application
android:label="embedded_webview" android:label="My Comptaplan"
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/icon">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:launchMode="singleTop" android:launchMode="singleTop"

View File

@ -1,4 +1,4 @@
package com.charlyghislain.embedded_webview package comptaplan.app
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen --> <!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" /> <item android:drawable="@android:color/black" />
<!-- You can insert your own image assets here --> <!-- You can insert your own image assets here -->
<!-- <item> <!-- <item>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -12,7 +12,7 @@
running. running.
This Theme is only used starting with V2 of Flutter's Android embedding. --> This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar"> <style name="NormalTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowBackground">?android:colorBackground</item> <item name="android:windowBackground">?android:colorBackground</item>
</style> </style>
</resources> </resources>

View File

@ -12,7 +12,7 @@
running. running.
This Theme is only used starting with V2 of Flutter's Android embedding. --> This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar"> <style name="NormalTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:windowBackground">?android:colorBackground</item> <item name="android:windowBackground">?android:colorBackground</item>
</style> </style>
</resources> </resources>

View File

@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.charlyghislain.embedded_webview"> package="comptaplan.app">
<!-- Flutter needs it to communicate with the running application <!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc. to allow setting breakpoints, to provide hot reload, etc.
--> -->

BIN
images/winbooks_connect.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -291,7 +291,7 @@
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.charlyghislain.embeddedWebview; PRODUCT_BUNDLE_IDENTIFIER = com.charlyghislain.embedded_webview;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -415,7 +415,7 @@
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.charlyghislain.embeddedWebview; PRODUCT_BUNDLE_IDENTIFIER = com.charlyghislain.embedded_webview;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -434,7 +434,7 @@
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.charlyghislain.embeddedWebview; PRODUCT_BUNDLE_IDENTIFIER = com.charlyghislain.embedded_webview;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,122 +1,116 @@
{ {
"images" : [ "images" : [
{ {
"size" : "20x20", "filename" : "40x40.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png", "scale" : "2x",
"scale" : "2x" "size" : "20x20"
}, },
{ {
"size" : "20x20", "filename" : "60x60.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png", "scale" : "3x",
"scale" : "3x" "size" : "20x20"
}, },
{ {
"size" : "29x29", "filename" : "58x58.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png", "scale" : "2x",
"scale" : "1x" "size" : "29x29"
}, },
{ {
"size" : "29x29", "filename" : "87x87.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png", "scale" : "3x",
"scale" : "2x" "size" : "29x29"
}, },
{ {
"size" : "29x29", "filename" : "80x80.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png", "scale" : "2x",
"scale" : "3x" "size" : "40x40"
}, },
{ {
"size" : "40x40", "filename" : "120x120.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png", "scale" : "3x",
"scale" : "2x" "size" : "40x40"
}, },
{ {
"size" : "40x40", "filename" : "120x120-1.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png", "scale" : "2x",
"scale" : "3x" "size" : "60x60"
}, },
{ {
"size" : "60x60", "filename" : "180x180.png",
"idiom" : "iphone", "idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png", "scale" : "3x",
"scale" : "2x" "size" : "60x60"
}, },
{ {
"size" : "60x60", "filename" : "20x20.png",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png", "scale" : "1x",
"scale" : "1x" "size" : "20x20"
}, },
{ {
"size" : "20x20", "filename" : "40x40-1.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png", "scale" : "2x",
"scale" : "2x" "size" : "20x20"
}, },
{ {
"size" : "29x29", "filename" : "29x29.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png", "scale" : "1x",
"scale" : "1x" "size" : "29x29"
}, },
{ {
"size" : "29x29", "filename" : "58x58-1.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png", "scale" : "2x",
"scale" : "2x" "size" : "29x29"
}, },
{ {
"size" : "40x40", "filename" : "40x40-2.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png", "scale" : "1x",
"scale" : "1x" "size" : "40x40"
}, },
{ {
"size" : "40x40", "filename" : "80x80-1.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png", "scale" : "2x",
"scale" : "2x" "size" : "40x40"
}, },
{ {
"size" : "76x76", "filename" : "76x76.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png", "scale" : "1x",
"scale" : "1x" "size" : "76x76"
}, },
{ {
"size" : "76x76", "filename" : "152x152.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png", "scale" : "2x",
"scale" : "2x" "size" : "76x76"
}, },
{ {
"size" : "83.5x83.5", "filename" : "167x167.png",
"idiom" : "ipad", "idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png", "scale" : "2x",
"scale" : "2x" "size" : "83.5x83.5"
}, },
{ {
"size" : "1024x1024", "filename" : "1024x1024.png",
"idiom" : "ios-marketing", "idiom" : "ios-marketing",
"filename" : "Icon-App-1024x1024@1x.png", "scale" : "1x",
"scale" : "1x" "size" : "1024x1024"
} }
], ],
"info" : { "info" : {
"version" : 1, "author" : "xcode",
"author" : "xcode" "version" : 1
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -1,23 +1,216 @@
{ {
"images" : [ "images" : [
{ {
"idiom" : "universal", "extent" : "full-screen",
"filename" : "LaunchImage.png", "filename" : "1242x2688.png",
"scale" : "1x" "idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "portrait",
"scale" : "3x",
"subtype" : "2688h"
}, },
{ {
"idiom" : "universal", "extent" : "full-screen",
"filename" : "LaunchImage@2x.png", "filename" : "2688x1242.png",
"idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "landscape",
"scale" : "3x",
"subtype" : "2688h"
},
{
"extent" : "full-screen",
"filename" : "828x1792.png",
"idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "1792h"
},
{
"extent" : "full-screen",
"filename" : "1792x828.png",
"idiom" : "iphone",
"minimum-system-version" : "12.0",
"orientation" : "landscape",
"scale" : "2x",
"subtype" : "1792h"
},
{
"extent" : "full-screen",
"filename" : "1125x2436.png",
"idiom" : "iphone",
"minimum-system-version" : "11.0",
"orientation" : "portrait",
"scale" : "3x",
"subtype" : "2436h"
},
{
"extent" : "full-screen",
"filename" : "2436x1125.png",
"idiom" : "iphone",
"minimum-system-version" : "11.0",
"orientation" : "landscape",
"scale" : "3x",
"subtype" : "2436h"
},
{
"extent" : "full-screen",
"filename" : "1242x2208.png",
"idiom" : "iphone",
"minimum-system-version" : "8.0",
"orientation" : "portrait",
"scale" : "3x",
"subtype" : "736h"
},
{
"extent" : "full-screen",
"filename" : "2208x1242.png",
"idiom" : "iphone",
"minimum-system-version" : "8.0",
"orientation" : "landscape",
"scale" : "3x",
"subtype" : "736h"
},
{
"extent" : "full-screen",
"filename" : "750x1334.png",
"idiom" : "iphone",
"minimum-system-version" : "8.0",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "667h"
},
{
"extent" : "full-screen",
"filename" : "640x960.png",
"idiom" : "iphone",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"idiom" : "universal", "extent" : "full-screen",
"filename" : "LaunchImage@3x.png", "filename" : "640x1136.png",
"scale" : "3x" "idiom" : "iphone",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "retina4"
},
{
"extent" : "full-screen",
"filename" : "768x1024.png",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "1x"
},
{
"extent" : "full-screen",
"filename" : "1024x768.png",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"orientation" : "landscape",
"scale" : "1x"
},
{
"extent" : "full-screen",
"filename" : "1536x2048.png",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x"
},
{
"extent" : "full-screen",
"filename" : "2048x1536.png",
"idiom" : "ipad",
"minimum-system-version" : "7.0",
"orientation" : "landscape",
"scale" : "2x"
},
{
"extent" : "full-screen",
"filename" : "320x480.png",
"idiom" : "iphone",
"orientation" : "portrait",
"scale" : "1x"
},
{
"extent" : "full-screen",
"filename" : "640x960-1.png",
"idiom" : "iphone",
"orientation" : "portrait",
"scale" : "2x"
},
{
"extent" : "full-screen",
"filename" : "640x1136-1.png",
"idiom" : "iphone",
"orientation" : "portrait",
"scale" : "2x",
"subtype" : "retina4"
},
{
"extent" : "to-status-bar",
"filename" : "768x1004.png",
"idiom" : "ipad",
"orientation" : "portrait",
"scale" : "1x"
},
{
"extent" : "full-screen",
"filename" : "768x1024-1.png",
"idiom" : "ipad",
"orientation" : "portrait",
"scale" : "1x"
},
{
"extent" : "to-status-bar",
"filename" : "1024x748.png",
"idiom" : "ipad",
"orientation" : "landscape",
"scale" : "1x"
},
{
"extent" : "full-screen",
"filename" : "1024x768-1.png",
"idiom" : "ipad",
"orientation" : "landscape",
"scale" : "1x"
},
{
"extent" : "to-status-bar",
"filename" : "1536x2008.png",
"idiom" : "ipad",
"orientation" : "portrait",
"scale" : "2x"
},
{
"extent" : "full-screen",
"filename" : "1536x2048-1.png",
"idiom" : "ipad",
"orientation" : "portrait",
"scale" : "2x"
},
{
"extent" : "to-status-bar",
"filename" : "2048x1496.png",
"idiom" : "ipad",
"orientation" : "landscape",
"scale" : "2x"
},
{
"extent" : "full-screen",
"filename" : "2048x1536-1.png",
"idiom" : "ipad",
"orientation" : "landscape",
"scale" : "2x"
} }
], ],
"info" : { "info" : {
"version" : 1, "author" : "xcode",
"author" : "xcode" "version" : 1
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "768x1024.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "1536x2048.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "2304x3072.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "384x512.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "768x1024.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "1536x2048.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -11,7 +11,7 @@
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>embedded_webview</string> <string>comptaplan_app</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>

View File

@ -1,33 +1,33 @@
import 'package:comptaplan_app/winbooks_migration_widget.dart';
import 'package:comptaplan_app/webview_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
void main() { void main() {
const title = String.fromEnvironment("APP_TITLE"); const title = String.fromEnvironment("APP_TITLE");
const uri = String.fromEnvironment("APP_URI"); const uri = String.fromEnvironment("APP_URI");
const playStoreUri = 'https://play.google.com/store/apps/details?id=com.winbooks.connect';
const appStoreUri = 'https://apps.apple.com/be/app/winbooks-connect/id1534550954';
const color = String.fromEnvironment("APP_COLOR"); const color = String.fromEnvironment("APP_COLOR");
runApp(const MyApp(title, uri, color)); runApp(const MyApp(title, uri, playStoreUri, appStoreUri, color));
} }
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
final String _title; final String _title;
final String _uri; final String _uri;
final String _playstoreUri;
final String _appStoreUri;
final String _color; final String _color;
const MyApp(this._title, this._uri, this._color, {Key? key}) : super(key: key); const MyApp(this._title, this._uri, this._playstoreUri, this._appStoreUri, this._color, {Key? key}) : super(key: key);
// This widget is the root of your application. // This widget is the root of your application.
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
MaterialColor materialColor = this._getMaterialColor(this._color); MaterialColor materialColor = _getMaterialColor(_color);
return MaterialApp( return MaterialApp(title: _title, theme: ThemeData(primarySwatch: materialColor), initialRoute: '/migrate', routes: {
title: this._title, '/migrate': (context) => WinbooksMigrationWidget(_title, _playstoreUri, _appStoreUri),
theme: ThemeData(primarySwatch: materialColor), '/web': (context) => WebViewWidget(_uri),
home: WebView( });
initialUrl: this._uri,
javascriptMode: JavascriptMode.unrestricted,
zoomEnabled: true,
allowsInlineMediaPlayback: true,
));
} }
MaterialColor _getMaterialColor(String colorString) { MaterialColor _getMaterialColor(String colorString) {

47
lib/webview_widget.dart Normal file
View File

@ -0,0 +1,47 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_webview_pro/webview_flutter.dart';
class WebViewWidget extends StatefulWidget {
final String _initialUrl;
const WebViewWidget(this._initialUrl, {Key? key}) : super(key: key);
@override
WebViewWidgetState createState() => WebViewWidgetState();
}
class WebViewWidgetState extends State<WebViewWidget> {
WebViewWidgetState();
@override
void initState() {
super.initState();
// Enable hybrid composition.
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
}
@override
Widget build(BuildContext context) {
return WebView(
initialUrl: widget._initialUrl,
javascriptMode: JavascriptMode.unrestricted,
javascriptChannels: <JavascriptChannel>{
_toasterJavascriptChannel(context),
},
gestureNavigationEnabled: true,
);
}
JavascriptChannel _toasterJavascriptChannel(BuildContext context) {
return JavascriptChannel(
name: 'Toaster',
onMessageReceived: (JavascriptMessage message) {
// ignore: deprecated_member_use
Scaffold.of(context).showSnackBar(
SnackBar(content: Text(message.message)),
);
});
}
}

View File

@ -0,0 +1,108 @@
import 'dart:io';
import 'package:android_intent_plus/android_intent.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class WinbooksMigrationWidget extends StatefulWidget {
final String _playStoreUrl;
final String _appStoreUrl;
final String _title;
const WinbooksMigrationWidget(this._title, this._playStoreUrl, this._appStoreUrl, {Key? key}) : super(key: key);
@override
WinbooksMigrationWidgetState createState() => WinbooksMigrationWidgetState();
}
class WinbooksMigrationWidgetState extends State<WinbooksMigrationWidget> {
WinbooksMigrationWidgetState();
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
ThemeData themeData = Theme.of(context);
TextStyle largerTextStyle = themeData.textTheme.bodyText1!.apply(fontSizeFactor: 1.4);
TextStyle smallerTextStyle = themeData.textTheme.bodyText2!;
AssetBundle assetBundle = DefaultAssetBundle.of(context);
return Scaffold(
appBar: AppBar(
title: Text(widget._title),
),
body: GridView.count(
crossAxisCount: 1,
children: [
Column(children: [
Container(
margin: const EdgeInsets.all(10.0),
child: Text(
'My comptaplan migre vers WinBooks Connect. Téléchargez WinBooks Connect pour continuer à envoyer vos fichiers à votre comptable',
textAlign: TextAlign.center,
style: largerTextStyle),
),
Center(
child: Container(
margin: const EdgeInsets.all(10.0),
child: ElevatedButton(
style: ElevatedButton.styleFrom(textStyle: largerTextStyle, padding: const EdgeInsets.all(20.0)),
child: Row(children: [
Image.asset('images/winbooks_connect.png', bundle: assetBundle, width: 50.0, height: 50.0),
const SizedBox(width: 10),
const Flexible(child: Text('Télécharger WinBooks Connect', textAlign: TextAlign.left, softWrap: true))
]),
onPressed: () async {
return _onWinbooksConnectPress();
},
),
),
),
Container(
margin: const EdgeInsets.all(10.0),
child: Text(
'Si vous ne parvenez pas à télécharger Winbooks Connect, ou pour obtenir vos identifiants, veuillez contacter votre comptable.',
textAlign: TextAlign.left,
style: smallerTextStyle),
),
Center(
child: Container(
margin: const EdgeInsets.all(10.0),
child: ElevatedButton(
style: ElevatedButton.styleFrom(textStyle: smallerTextStyle, padding: const EdgeInsets.all(10.0)),
child: const Text('Vers My Comptaplan', softWrap: true),
onPressed: () async {
return _onMyComptaplanPress();
},
),
),
),
Container(
margin: const EdgeInsets.all(10.0),
child: Text("L'accès à My Comptaplan risque de ne plus fonctionner prochainement.",
textAlign: TextAlign.left, style: smallerTextStyle),
),
])
],
));
}
Future<void> _onWinbooksConnectPress() async {
if (Platform.isAndroid) {
AndroidIntent intent = AndroidIntent(
action: 'action_view',
data: widget._playStoreUrl,
package: 'com.android.vending',
);
await intent.launch();
} else if (Platform.isIOS) {
await launch(widget._appStoreUrl);
}
}
Future<void> _onMyComptaplanPress() async {
await Navigator.pushNamed(context, '/web');
}
}

View File

@ -1,62 +1,70 @@
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
android_intent_plus:
dependency: "direct main"
description:
name: android_intent_plus
sha256: "04cbc7c332a6f0bba88fed354de78813e9d24049c1800aaf10f449c7adc22603"
url: "https://pub.dev"
source: hosted
version: "3.1.9"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.8.1" version: "2.11.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.3.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.dartlang.org" sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.1.1"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
url: "https://pub.dev"
source: hosted source: hosted
version: "1.15.0" version: "1.17.2"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.4" version: "1.0.6"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.3.1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -66,7 +74,8 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
url: "https://pub.dartlang.org" sha256: b543301ad291598523947dc534aaddc5aaad597b709d2426d3a0e0d44c5cb493
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
flutter_test: flutter_test:
@ -74,41 +83,75 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_webview_pro:
dependency: "direct main"
description:
name: flutter_webview_pro
sha256: "59bce97b1c1bc732060484cc5fd0caab545a3e328f9d948108b35df3ab6eb31b"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
lints: lints:
dependency: transitive dependency: transitive
description: description:
name: lints name: lints
url: "https://pub.dartlang.org" sha256: a2c3d198cb5ea2e179926622d433331d8b58374ab8f29cdda6e863bd62fd369c
url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.1" version: "1.0.1"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.10" version: "0.12.16"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
url: "https://pub.dev"
source: hosted
version: "0.5.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.dartlang.org" sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.7.0" version: "1.9.1"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.dartlang.org" sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.0" version: "1.8.3"
platform:
dependency: transitive
description:
name: platform
sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102
url: "https://pub.dev"
source: hosted
version: "3.1.2"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d
url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.2" version: "2.1.6"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
@ -118,86 +161,130 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.dartlang.org" sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.1" version: "1.10.0"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.11.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.0" version: "1.2.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.1"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.2" version: "0.6.0"
typed_data: url_launcher:
dependency: "direct main"
description:
name: url_launcher
sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27"
url: "https://pub.dev"
source: hosted
version: "6.1.14"
url_launcher_android:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: url_launcher_android
url: "https://pub.dartlang.org" sha256: b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330
url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "6.1.0"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
sha256: "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f"
url: "https://pub.dev"
source: hosted
version: "6.1.5"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
sha256: b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e
url: "https://pub.dev"
source: hosted
version: "3.0.6"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
sha256: b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88
url: "https://pub.dev"
source: hosted
version: "3.0.7"
url_launcher_platform_interface:
dependency: transitive
description:
name: url_launcher_platform_interface
sha256: "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
sha256: "2942294a500b4fa0b918685aff406773ba0a4cd34b7f42198742a94083020ce5"
url: "https://pub.dev"
source: hosted
version: "2.0.20"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
sha256: "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069"
url: "https://pub.dev"
source: hosted
version: "3.0.8"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.4"
webview_flutter: web:
dependency: "direct main"
description:
name: webview_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "2.3.1"
webview_flutter_android:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_android name: web
url: "https://pub.dartlang.org" sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "0.1.4-beta"
webview_flutter_platform_interface:
dependency: transitive
description:
name: webview_flutter_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.1"
webview_flutter_wkwebview:
dependency: transitive
description:
name: webview_flutter_wkwebview
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.0"
sdks: sdks:
dart: ">=2.14.0 <3.0.0" dart: ">=3.1.0 <4.0.0"
flutter: ">=2.5.0" flutter: ">=3.13.0"

View File

@ -1,4 +1,4 @@
name: embedded_webview name: comptaplan_app
description: An embedded webview description: An embedded webview
# The following line prevents the package from being accidentally published to # The following line prevents the package from being accidentally published to
@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at # Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1 version: 1.0.0+68
environment: environment:
sdk: ">=2.12.0 <3.0.0" sdk: ">=2.12.0 <3.0.0"
@ -34,7 +34,11 @@ dependencies:
# The following adds the Cupertino Icons font to your application. # The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons. # Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
webview_flutter: ^2.3.1 #webview_flutter: ^2.3.1
flutter_webview_pro: ^1.0.0
android_intent_plus: ^3.0.2
url_launcher: ^6.0.18
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
@ -58,8 +62,8 @@ flutter:
uses-material-design: true uses-material-design: true
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
# assets: assets:
# - images/a_dot_burr.jpeg - images/winbooks_connect.png
# - images/a_dot_ham.jpeg # - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see # An image asset can refer to one or more resolution-specific "variants", see

6
renovate.json Normal file
View File

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>valuya.com-infra/renovate-config"
]
}

View File

@ -1,30 +0,0 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:embedded_webview/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(const MyApp());
// Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing);
// Tap the '+' icon and trigger a frame.
await tester.tap(find.byIcon(Icons.add));
await tester.pump();
// Verify that our counter has incremented.
expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget);
});
}

View File

@ -1,26 +1,30 @@
#!/bin/bash #!/bin/bash
# debug/release # debug/release
BUILDMODE=${BUILDMODE:-debug} BUILD_MODE=${BUILD_MODE:-debug}
# LOCAL/DEV/PROD # LOCAL/DEV/PROD
APP_TITLE=${APP_TITLE:-} APP_TITLE=${APP_TITLE:-}
APP_URI=${APP_URI:-} APP_URI=${APP_URI:-}
APP_COLOR=${APP_COLOR:-} APP_COLOR=${APP_COLOR:-}
ANDROID_KEYSTORE_FILE=${ANDROID_KEYSTORE_FILE:-}
ANDROID_KEY_ALIAS=${ANDROID_KEY_ALIAS:-}
ANDROID_KEYSTORE_PASSWORD=${ANDROID_KEYSTORE_PASSWORD:-}
ANDROID_KEY_PASSWORD=${ANDROID_KEY_PASSWORD:-}
cat << EOF > android/local.properties cat << EOF > android/local.properties
flutter.sdk=/home/developer/flutter flutter.sdk=/home/developer/flutter
sdk.dir=/home/developer/android sdk.dir=/home/developer/android
flutter.buildMode=${BUILDMODE} flutter.buildMode=${BUILD_MODE}
flutter.versionName= flutter.versionName=
flutter.versionCode= flutter.versionCode=
EOF EOF
cat << EOF > android/key.properties cat << EOF > android/key.properties
storePassword=jenkins.fteamdev storePassword=${ANDROID_KEYSTORE_PASSWORD}
keyPassword=jenkins.fteamdev keyPassword=${ANDROID_KEY_PASSWORD}
keyAlias=jenkins.fteamdev keyAlias=${ANDROID_SIGNING_KEY_ALIAS}
storeFile=/var/run/secrets/signing_keystore.jks storeFile=${ANDROID_KEYSTORE_FILE}
EOF EOF
pwd pwd

View File

@ -1,9 +1,10 @@
#!/bin/bash #!/bin/bash
TRACK=${TRACK:-alpha} ANDROID_UPLOAD_TRACK=${ANDROID_UPLOAD_TRACK:-alpha}
RELEASE_STATUS=${RELEASE_STATUS:-completed} RELEASE_STATUS=${RELEASE_STATUS:-completed}
RELEASE_MESSAGE="${RELEASE_MESSAGE:-New version}" RELEASE_MESSAGE="${RELEASE_MESSAGE:-New version}"
GOOGLE_APPLICATION_CREDENTIALS="${GOOGLE_APPLICATION_CREDENTIALS:-}"
VERSION_AND_CODE="$(cat pubspec.yaml | grep 'version:' | sed 's/version: //')" VERSION_AND_CODE="$(cat pubspec.yaml | grep 'version:' | sed 's/version: //')"
@ -19,9 +20,8 @@ npm install
./node_modules/.bin/tsc ./node_modules/.bin/tsc
npm install -g --save googleapis npm install -g --save googleapis
GOOGLE_APPLICATION_CREDENTIALS=/var/run/secrets/google_api.key.json \
node ${WD}/publish-android-js/publish-app-store.js \ node ${WD}/publish-android-js/publish-app-store.js \
"$TRACK" "$VERSION_CODE" "$RELEASE_STATUS" "$VERSION_CODE $VERISON_NAME" "$RELEASE_MESSAGE" ${WD}/../build/app/outputs/bundle/release/app-release.aab \ "$ANDROID_UPLOAD_TRACK" "$VERSION_CODE" "$RELEASE_STATUS" "$VERSION_CODE $VERISON_NAME" "$RELEASE_MESSAGE" ${WD}/../build/app/outputs/bundle/release/app-release.aab \
|| exit 1 || exit 1
popd popd

View File

@ -1,22 +1,22 @@
{ {
"name": "publish-app-store", "name": "publish-app-store",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 2, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "publish-app-store", "name": "publish-app-store",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@types/node": "^14.14.31", "@types/node": "^14.18.63",
"googleapis": "^91.0.0", "googleapis": "^91.0.0",
"typescript": "^4.5.2" "typescript": "^4.5.2"
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "14.17.33", "version": "14.18.63",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.33.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz",
"integrity": "sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g==" "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="
}, },
"node_modules/abort-controller": { "node_modules/abort-controller": {
"version": "3.0.0", "version": "3.0.0",
@ -68,9 +68,9 @@
] ]
}, },
"node_modules/bignumber.js": { "node_modules/bignumber.js": {
"version": "9.0.1", "version": "9.1.2",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
"integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
"engines": { "engines": {
"node": "*" "node": "*"
} }
@ -78,7 +78,7 @@
"node_modules/buffer-equal-constant-time": { "node_modules/buffer-equal-constant-time": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
}, },
"node_modules/call-bind": { "node_modules/call-bind": {
"version": "1.0.2", "version": "1.0.2",
@ -93,9 +93,9 @@
} }
}, },
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.2", "version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": { "dependencies": {
"ms": "2.1.2" "ms": "2.1.2"
}, },
@ -130,9 +130,9 @@
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
}, },
"node_modules/fast-text-encoding": { "node_modules/fast-text-encoding": {
"version": "1.0.3", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz",
"integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w=="
}, },
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.1", "version": "1.1.1",
@ -140,15 +140,15 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
}, },
"node_modules/gaxios": { "node_modules/gaxios": {
"version": "4.3.2", "version": "4.3.3",
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz",
"integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==",
"dependencies": { "dependencies": {
"abort-controller": "^3.0.0", "abort-controller": "^3.0.0",
"extend": "^3.0.2", "extend": "^3.0.2",
"https-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0",
"is-stream": "^2.0.0", "is-stream": "^2.0.0",
"node-fetch": "^2.6.1" "node-fetch": "^2.6.7"
}, },
"engines": { "engines": {
"node": ">=10" "node": ">=10"
@ -167,22 +167,23 @@
} }
}, },
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.1.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dependencies": { "dependencies": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
"has": "^1.0.3", "has": "^1.0.3",
"has-symbols": "^1.0.1" "has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/google-auth-library": { "node_modules/google-auth-library": {
"version": "7.10.2", "version": "7.14.1",
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.10.2.tgz", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz",
"integrity": "sha512-M37o9Kxa/TLvOLgF71SXvLeVEP5sbSTmKl1zlIgl72SFy5PtsU3pOdu8G8MIHHpQ3/NZabDI8rQkA9DvQVKkPA==", "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==",
"dependencies": { "dependencies": {
"arrify": "^2.0.0", "arrify": "^2.0.0",
"base64-js": "^1.3.0", "base64-js": "^1.3.0",
@ -199,11 +200,11 @@
} }
}, },
"node_modules/google-p12-pem": { "node_modules/google-p12-pem": {
"version": "3.1.2", "version": "3.1.4",
"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz",
"integrity": "sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==", "integrity": "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==",
"dependencies": { "dependencies": {
"node-forge": "^0.10.0" "node-forge": "^1.3.1"
}, },
"bin": { "bin": {
"gp12-pem": "build/src/bin/gp12-pem.js" "gp12-pem": "build/src/bin/gp12-pem.js"
@ -225,13 +226,13 @@
} }
}, },
"node_modules/googleapis-common": { "node_modules/googleapis-common": {
"version": "5.0.5", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.5.tgz", "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.1.0.tgz",
"integrity": "sha512-o2dgoW4x4fLIAN+IVAOccz3mEH8Lj1LP9c9BSSvkNJEn+U7UZh0WSr4fdH08x5VH7+sstIpd1lOYFZD0g7j4pw==", "integrity": "sha512-RXrif+Gzhq1QAzfjxulbGvAY3FPj8zq/CYcvgjzDbaBNCD6bUl+86I7mUs4DKWHGruuK26ijjR/eDpWIDgNROA==",
"dependencies": { "dependencies": {
"extend": "^3.0.2", "extend": "^3.0.2",
"gaxios": "^4.0.0", "gaxios": "^4.0.0",
"google-auth-library": "^7.0.2", "google-auth-library": "^7.14.0",
"qs": "^6.7.0", "qs": "^6.7.0",
"url-template": "^2.0.8", "url-template": "^2.0.8",
"uuid": "^8.0.0" "uuid": "^8.0.0"
@ -241,12 +242,12 @@
} }
}, },
"node_modules/gtoken": { "node_modules/gtoken": {
"version": "5.3.1", "version": "5.3.2",
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz",
"integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==",
"dependencies": { "dependencies": {
"gaxios": "^4.0.0", "gaxios": "^4.0.0",
"google-p12-pem": "^3.0.3", "google-p12-pem": "^3.1.3",
"jws": "^4.0.0" "jws": "^4.0.0"
}, },
"engines": { "engines": {
@ -264,10 +265,21 @@
"node": ">= 0.4.0" "node": ">= 0.4.0"
} }
}, },
"node_modules/has-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": { "node_modules/has-symbols": {
"version": "1.0.2", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
}, },
@ -276,9 +288,9 @@
} }
}, },
"node_modules/https-proxy-agent": { "node_modules/https-proxy-agent": {
"version": "5.0.0", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dependencies": { "dependencies": {
"agent-base": "6", "agent-base": "6",
"debug": "4" "debug": "4"
@ -342,36 +354,44 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}, },
"node_modules/node-fetch": { "node_modules/node-fetch": {
"version": "2.6.6", "version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"dependencies": { "dependencies": {
"whatwg-url": "^5.0.0" "whatwg-url": "^5.0.0"
}, },
"engines": { "engines": {
"node": "4.x || >=6.0.0" "node": "4.x || >=6.0.0"
},
"peerDependencies": {
"encoding": "^0.1.0"
},
"peerDependenciesMeta": {
"encoding": {
"optional": true
}
} }
}, },
"node_modules/node-forge": { "node_modules/node-forge": {
"version": "0.10.0", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
"integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
"engines": { "engines": {
"node": ">= 6.0.0" "node": ">= 6.13.0"
} }
}, },
"node_modules/object-inspect": { "node_modules/object-inspect": {
"version": "1.11.0", "version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/qs": { "node_modules/qs": {
"version": "6.10.1", "version": "6.11.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
"dependencies": { "dependencies": {
"side-channel": "^1.0.4" "side-channel": "^1.0.4"
}, },
@ -417,12 +437,12 @@
"node_modules/tr46": { "node_modules/tr46": {
"version": "0.0.3", "version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "4.5.2", "version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
"tsserver": "bin/tsserver" "tsserver": "bin/tsserver"
@ -434,7 +454,7 @@
"node_modules/url-template": { "node_modules/url-template": {
"version": "2.0.8", "version": "2.0.8",
"resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
"integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=" "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw=="
}, },
"node_modules/uuid": { "node_modules/uuid": {
"version": "8.3.2", "version": "8.3.2",
@ -447,12 +467,12 @@
"node_modules/webidl-conversions": { "node_modules/webidl-conversions": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
}, },
"node_modules/whatwg-url": { "node_modules/whatwg-url": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dependencies": { "dependencies": {
"tr46": "~0.0.3", "tr46": "~0.0.3",
"webidl-conversions": "^3.0.0" "webidl-conversions": "^3.0.0"
@ -463,327 +483,5 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
} }
},
"dependencies": {
"@types/node": {
"version": "14.17.33",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.33.tgz",
"integrity": "sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g=="
},
"abort-controller": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"requires": {
"event-target-shim": "^5.0.0"
}
},
"agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"requires": {
"debug": "4"
}
},
"arrify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug=="
},
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"bignumber.js": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
"integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA=="
},
"buffer-equal-constant-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"debug": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"requires": {
"ms": "2.1.2"
}
},
"ecdsa-sig-formatter": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
"integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
},
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"fast-text-encoding": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz",
"integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig=="
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"gaxios": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz",
"integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==",
"requires": {
"abort-controller": "^3.0.0",
"extend": "^3.0.2",
"https-proxy-agent": "^5.0.0",
"is-stream": "^2.0.0",
"node-fetch": "^2.6.1"
}
},
"gcp-metadata": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz",
"integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==",
"requires": {
"gaxios": "^4.0.0",
"json-bigint": "^1.0.0"
}
},
"get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1"
}
},
"google-auth-library": {
"version": "7.10.2",
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.10.2.tgz",
"integrity": "sha512-M37o9Kxa/TLvOLgF71SXvLeVEP5sbSTmKl1zlIgl72SFy5PtsU3pOdu8G8MIHHpQ3/NZabDI8rQkA9DvQVKkPA==",
"requires": {
"arrify": "^2.0.0",
"base64-js": "^1.3.0",
"ecdsa-sig-formatter": "^1.0.11",
"fast-text-encoding": "^1.0.0",
"gaxios": "^4.0.0",
"gcp-metadata": "^4.2.0",
"gtoken": "^5.0.4",
"jws": "^4.0.0",
"lru-cache": "^6.0.0"
}
},
"google-p12-pem": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz",
"integrity": "sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==",
"requires": {
"node-forge": "^0.10.0"
}
},
"googleapis": {
"version": "91.0.0",
"resolved": "https://registry.npmjs.org/googleapis/-/googleapis-91.0.0.tgz",
"integrity": "sha512-iHqXZwgYam0g8n0Yyi+YHx8kgwT+H5O4k3fe0LB1JhWRp1dSKYu+ShY4PQbW584zLOE4kK3LHf2B+x1THx+ZPQ==",
"requires": {
"google-auth-library": "^7.0.2",
"googleapis-common": "^5.0.2"
}
},
"googleapis-common": {
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.5.tgz",
"integrity": "sha512-o2dgoW4x4fLIAN+IVAOccz3mEH8Lj1LP9c9BSSvkNJEn+U7UZh0WSr4fdH08x5VH7+sstIpd1lOYFZD0g7j4pw==",
"requires": {
"extend": "^3.0.2",
"gaxios": "^4.0.0",
"google-auth-library": "^7.0.2",
"qs": "^6.7.0",
"url-template": "^2.0.8",
"uuid": "^8.0.0"
}
},
"gtoken": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz",
"integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==",
"requires": {
"gaxios": "^4.0.0",
"google-p12-pem": "^3.0.3",
"jws": "^4.0.0"
}
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"requires": {
"function-bind": "^1.1.1"
}
},
"has-symbols": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
},
"https-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
"requires": {
"agent-base": "6",
"debug": "4"
}
},
"is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
},
"json-bigint": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
"requires": {
"bignumber.js": "^9.0.0"
}
},
"jwa": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
"integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
"requires": {
"buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
"integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
"requires": {
"jwa": "^2.0.0",
"safe-buffer": "^5.0.1"
}
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"requires": {
"yallist": "^4.0.0"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node-fetch": {
"version": "2.6.6",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz",
"integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"node-forge": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
"integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA=="
},
"object-inspect": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
},
"qs": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
"integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
"requires": {
"side-channel": "^1.0.4"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
}
},
"tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
},
"typescript": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz",
"integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw=="
},
"url-template": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
"integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE="
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
"whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
}
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
} }
} }

View File

@ -30,11 +30,11 @@ if (versionCode == null || versionCode.length < 1 || versionStatus == null || ve
} }
try { try {
const packageName = 'be.fiscalteam.nitro_trustee_mobile'; const packageName = 'comptaplan.app';
// const apkMime = 'application/vnd.android.package-archive'; // const apkMime = 'application/vnd.android.package-archive';
const apkMime = 'application/octet-stream'; const apkMime = 'application/octet-stream';
const apkFileStream = createReadStream(aabFilePath); const apkFileStream = createReadStream(aabFilePath);
const appName = `Nitro admin mobile`; const appName = `My comptaplan`;
const apiKeyFilePath: PathLike = process.env.GOOGLE_APPLICATION_CREDENTIALS; const apiKeyFilePath: PathLike = process.env.GOOGLE_APPLICATION_CREDENTIALS;
// Use GOOGLE_APPLICATION_CREDENTIALS to point to api key (json) // Use GOOGLE_APPLICATION_CREDENTIALS to point to api key (json)

7
tools/set-bundle-identifier.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
BUNDLE_NAME="$1"
echo "Setting the ios bundle name to $BUNDLE_NAME"
sed -i "s/PRODUCT_BUNDLE_IDENTIFIER = .*;/PRODUCT_BUNDLE_IDENTIFIER = $BUNDLE_NAME;/" ios/Runner.xcodeproj/project.pbxproj

14
tools/set-package.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
PACKAGE="$1"
echo "Setting the application android package to $PACKAGE"
sed -i "s/package=\"[^\"]\+\"/package=\"$PACKAGE\"/" android/app/src/debug/AndroidManifest.xml
sed -i "s/package=\"[^\"]\+\"/package=\"$PACKAGE\"/" android/app/src/main/AndroidManifest.xml
sed -i "s/package=\"[^\"]\+\"/package=\"$PACKAGE\"/" android/app/src/profile/AndroidManifest.xml
sed -i "s/applicationId \"[^\"]\+\"/applicationId \"$PACKAGE\"/" android/app/build.gradle
sed -i "s/package .*/package $PACKAGE/" android/app/src/main/kotlin/com/charlyghislain/embedded_webview/MainActivity.kt

19
tools/set-title.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
TITLE="$1"
echo "Setting the application title to $TITLE"
sed -i "s/android:label=\"[^\"]\+\"/android:label=\"$TITLE\"/" android/app/src/main/AndroidManifest.xml
NAME_LENGTH="${#TITLE}"
LONG_NAME="$(( $NAME_LENGTH > 15))" # 1 if long name
BUNDLE_NAME="$(echo $TITLE | cut -c -15)"
perl -0777 -i -pe "s#\t<key>CFBundleName</key>\n[^\n]+#\t<key>CFBundleName</key>\n\t<string>$BUNDLE_NAME</string>#igs" ios/Runner/Info.plist
if [ "$LONG_NAME" = "1" ] ; then
# todo : set bundleDisplayName
echo "Warning: name truncated to $BUNDLE_NAME"
fi