vease 0.1.3 → 0.1.4-rc.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/CICD.yaml +26 -14
- package/.releaserc +12 -0
- package/electron/main.js +14 -7
- package/electron-server/install_back.ps1 +17 -0
- package/electron-server/install_back.sh +12 -7
- package/electron-server/install_viewer.ps1 +17 -0
- package/electron-server/install_viewer.sh +12 -7
- package/electron-server/requirements_back.txt +3 -3
- package/forge.config.cjs +2 -3
- package/node_scripts/install_back.js +19 -0
- package/node_scripts/install_viewer.js +19 -0
- package/node_scripts/prepackage.js +17 -0
- package/package.json +4 -3
- package/electron-server/requirements_viewer.txt +0 -140
|
@@ -5,38 +5,50 @@ on:
|
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
7
|
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
|
8
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
8
9
|
|
|
9
10
|
jobs:
|
|
11
|
+
semantic:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
outputs:
|
|
14
|
+
new_release: ${{ steps.semantic.outputs.new_release_published }}
|
|
15
|
+
steps:
|
|
16
|
+
- name: Check out Git repository
|
|
17
|
+
uses: actions/checkout@v4
|
|
18
|
+
- name: Semantic Release
|
|
19
|
+
uses: cycjimmy/semantic-release-action@v4
|
|
20
|
+
id: semantic
|
|
21
|
+
|
|
10
22
|
release:
|
|
11
23
|
runs-on: ${{ matrix.os }}
|
|
12
|
-
|
|
13
|
-
|
|
24
|
+
needs: [semantic]
|
|
25
|
+
if: needs.semantic.outputs.new_release == 'true'
|
|
14
26
|
strategy:
|
|
15
27
|
matrix:
|
|
16
|
-
os: [
|
|
17
|
-
|
|
28
|
+
os: [ubuntu-latest]
|
|
18
29
|
steps:
|
|
19
30
|
- name: Check out Git repository
|
|
20
31
|
uses: actions/checkout@v4
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
id: semantic
|
|
25
|
-
env:
|
|
26
|
-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
32
|
+
- uses: actions/setup-python@v5
|
|
33
|
+
with:
|
|
34
|
+
python-version: '3.10'
|
|
27
35
|
- name: Install Node.js, NPM and Yarn
|
|
28
36
|
uses: actions/setup-node@v4
|
|
29
37
|
with:
|
|
30
38
|
node-version: 20
|
|
31
|
-
|
|
32
|
-
- name: Install dependencies
|
|
33
|
-
if: steps.semantic.outputs.new_release_published == 'true'
|
|
39
|
+
- name: Publish version
|
|
34
40
|
run: |
|
|
35
41
|
npm install
|
|
42
|
+
pwd
|
|
43
|
+
ls -l
|
|
44
|
+
ls -l ./electron-server
|
|
45
|
+
ls -l ./electron-server/dist_back
|
|
46
|
+
npm run prepackage
|
|
36
47
|
npm run package
|
|
37
48
|
npm run make
|
|
38
|
-
if [[ "$github.ref == 'refs/heads/next'" ]] then
|
|
49
|
+
if [[ "$github.ref == 'refs/heads/next'" ]]; then
|
|
39
50
|
npm run publish --prerelease
|
|
40
51
|
else
|
|
41
52
|
npm run publish
|
|
42
53
|
fi
|
|
54
|
+
shell: bash
|
package/.releaserc
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
branches: [
|
|
3
|
+
{ name: "master" },
|
|
4
|
+
{ name: "next", channel: "next", prerelease: "rc" }
|
|
5
|
+
],
|
|
6
|
+
plugins: [
|
|
7
|
+
'@semantic-release/commit-analyzer',
|
|
8
|
+
'@semantic-release/release-notes-generator',
|
|
9
|
+
'@semantic-release/github',
|
|
10
|
+
'@semantic-release/npm'
|
|
11
|
+
]
|
|
12
|
+
}
|
package/electron/main.js
CHANGED
|
@@ -92,21 +92,28 @@ app.whenReady().then(() => {
|
|
|
92
92
|
ipcMain.handle("run_back", async (event, ...args) => {
|
|
93
93
|
const port = await getAvailablePort(args[0]);
|
|
94
94
|
console.log("BACK PORT", port);
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
var command;
|
|
96
|
+
if (process.platform === "win32") {
|
|
97
|
+
command = "resources/geodeapp_back.exe";
|
|
98
|
+
} else if (process.platform === "linux") {
|
|
99
|
+
command = "./resources/geodeapp_back";
|
|
100
|
+
}
|
|
101
|
+
await run_script(win, command, ["--port " + port], "Serving Flask app");
|
|
101
102
|
return port;
|
|
102
103
|
});
|
|
103
104
|
|
|
104
105
|
ipcMain.handle("run_viewer", async (event, ...args) => {
|
|
105
106
|
const port = await getAvailablePort(args[0]);
|
|
106
107
|
console.log("VIEWER PORT", port);
|
|
108
|
+
var command;
|
|
109
|
+
if (process.platform === "win32") {
|
|
110
|
+
command = "resources/geodeapp_viewer.exe";
|
|
111
|
+
} else if (process.platform === "linux") {
|
|
112
|
+
command = "./resources/geodeapp_viewer";
|
|
113
|
+
}
|
|
107
114
|
await run_script(
|
|
108
115
|
win,
|
|
109
|
-
|
|
116
|
+
command,
|
|
110
117
|
["--port " + port],
|
|
111
118
|
"Starting factory"
|
|
112
119
|
);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Remove-Item -Recurse -Force /electron-server/venv_back/ -ErrorAction:SilentlyContinue
|
|
2
|
+
Remove-Item -Recurse -Force /electron-server/dist_back/ -ErrorAction:SilentlyContinue
|
|
3
|
+
Remove-Item -Recurse -Force /electron-server/build/ -ErrorAction:SilentlyContinue
|
|
4
|
+
Remove-Item -Recurse -Force /electron-server/requirements_back.txt -ErrorAction:SilentlyContinue
|
|
5
|
+
$folder="electron-server/venv_back"
|
|
6
|
+
python -m venv $folder
|
|
7
|
+
|
|
8
|
+
$bin_folder = $folder + "/Lib/site-packages/geodeapp_back"
|
|
9
|
+
electron-server/venv_back/Scripts/Activate
|
|
10
|
+
|
|
11
|
+
pip install pip-tools
|
|
12
|
+
pip-compile electron-server/requirements_back.in
|
|
13
|
+
pip install -r electron-server/requirements_back.txt
|
|
14
|
+
pip install pyinstaller
|
|
15
|
+
pyinstaller --onefile --collect-data opengeodeweb_back --collect-data geodeapp_back $bin_folder/app.py --distpath ./electron-server/dist_back -n geodeapp_back --clean
|
|
16
|
+
ls -r ./electron-server/dist_back
|
|
17
|
+
Copy-Item ./electron-server/dist_back/geodeapp_back.exe ./resources
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
rm -rf electron-server/venv_back electron-server/dist_back electron-server/build electron-server/requirements_back.txt
|
|
4
|
+
folder=electron-server/venv_back
|
|
5
|
+
python3 -m venv $folder
|
|
6
|
+
bin_folder=$folder/bin
|
|
7
|
+
source $bin_folder/activate
|
|
8
|
+
packages_path=$folder/lib/python3.10/site-packages
|
|
5
9
|
pip install pip-tools
|
|
6
|
-
pip-compile
|
|
7
|
-
pip install -r
|
|
10
|
+
pip-compile electron-server/requirements_back.in
|
|
11
|
+
pip install -r electron-server/requirements_back.txt
|
|
8
12
|
pip install pyinstaller
|
|
9
|
-
pyinstaller --onefile --collect-data opengeodeweb_back
|
|
13
|
+
pyinstaller --onefile --collect-data opengeodeweb_back $packages_path/geodeapp_back/app.py --distpath ./electron-server/dist_back -n geodeapp_back --clean
|
|
14
|
+
cp ./electron-server/dist_back/geodeapp_back ./resources
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Remove-Item -Recurse -Force /electron-server/venv_viewer/ -ErrorAction:SilentlyContinue
|
|
2
|
+
Remove-Item -Recurse -Force /electron-server/dist_viewer/ -ErrorAction:SilentlyContinue
|
|
3
|
+
Remove-Item -Recurse -Force /electron-server/build/ -ErrorAction:SilentlyContinue
|
|
4
|
+
Remove-Item -Recurse -Force /electron-server/requirements_viewer.txt -ErrorAction:SilentlyContinue
|
|
5
|
+
$folder="electron-server/venv_viewer"
|
|
6
|
+
python -m venv $folder
|
|
7
|
+
|
|
8
|
+
$bin_folder = $folder + "/Lib/site-packages/geodeapp_viewer"
|
|
9
|
+
electron-server/venv_viewer/Scripts/Activate
|
|
10
|
+
|
|
11
|
+
pip install pip-tools
|
|
12
|
+
pip-compile electron-server/requirements_viewer.in
|
|
13
|
+
pip install -r electron-server/requirements_viewer.txt
|
|
14
|
+
pip install pyinstaller
|
|
15
|
+
pyinstaller --onefile --collect-data opengeodeweb_viewer --collect-all vtkmodules electron-server/venv_viewer/Lib/site-packages/geodeapp_viewer/app.py --distpath ./electron-server/dist_viewer -n geodeapp_viewer --clean
|
|
16
|
+
ls -r ./electron-server/dist_viewer
|
|
17
|
+
Copy-Item ./electron-server/dist_viewer/geodeapp_viewer.exe ./resources
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
#! /bin/
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
#! /bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
rm -rf electron-server/venv_viewer electron-server/dist_viewer electron-server/build electron-server/requirements_viewer.txt
|
|
4
|
+
folder=electron-server/venv_viewer
|
|
5
|
+
python3 -m venv $folder
|
|
6
|
+
bin_folder=$folder/bin
|
|
7
|
+
source $bin_folder/activate
|
|
8
|
+
packages_path=$folder/lib/python3.10/site-packages
|
|
5
9
|
pip install pip-tools
|
|
6
|
-
pip-compile
|
|
7
|
-
pip install -r
|
|
10
|
+
pip-compile electron-server/requirements_viewer.in
|
|
11
|
+
pip install -r electron-server/requirements_viewer.txt
|
|
8
12
|
pip install pyinstaller
|
|
9
|
-
pyinstaller --onefile --collect-data opengeodeweb_viewer --collect-all vtkmodules
|
|
13
|
+
pyinstaller --onefile --collect-data opengeodeweb_viewer --collect-all vtkmodules $packages_path/geodeapp_viewer/app.py --distpath ./electron-server/dist_viewer -n geodeapp_viewer --clean
|
|
14
|
+
cp ./electron-server/dist_viewer/geodeapp_viewer ./resources
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# This file is autogenerated by pip-compile with Python 3.10
|
|
3
3
|
# by the following command:
|
|
4
4
|
#
|
|
5
|
-
# pip-compile
|
|
5
|
+
# pip-compile electron-server/requirements_back.in
|
|
6
6
|
#
|
|
7
7
|
asgiref==3.8.1
|
|
8
8
|
# via
|
|
@@ -80,8 +80,8 @@ geode-viewables==2.2.3
|
|
|
80
80
|
# via
|
|
81
81
|
# geodeapp-back
|
|
82
82
|
# opengeodeweb-back
|
|
83
|
-
geodeapp-back==0.1.
|
|
84
|
-
# via -r
|
|
83
|
+
geodeapp-back==0.1.1
|
|
84
|
+
# via -r electron-server/requirements_back.in
|
|
85
85
|
itsdangerous==2.2.0
|
|
86
86
|
# via
|
|
87
87
|
# flask
|
package/forge.config.cjs
CHANGED
|
@@ -4,8 +4,8 @@ module.exports = {
|
|
|
4
4
|
extraResource: [
|
|
5
5
|
"./.output/public/.",
|
|
6
6
|
"./dist-electron",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
7
|
+
"//GEODEAPP_BACK",
|
|
8
|
+
"//GEODEAPP_VIEWER"
|
|
9
9
|
],
|
|
10
10
|
icon: "./favicon.ico",
|
|
11
11
|
},
|
|
@@ -25,7 +25,6 @@ module.exports = {
|
|
|
25
25
|
owner: "Geode-solutions",
|
|
26
26
|
name: "GeodeApp",
|
|
27
27
|
},
|
|
28
|
-
draft: false,
|
|
29
28
|
},
|
|
30
29
|
},
|
|
31
30
|
],
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const { spawn } = require('node:child_process')
|
|
2
|
+
|
|
3
|
+
var child
|
|
4
|
+
if (process.platform === "win32"){
|
|
5
|
+
child = spawn("powershell.exe", ["/install_back.ps1"]);
|
|
6
|
+
} else if (process.platform === "linux"){
|
|
7
|
+
child = spawn("./electron-server/install_back.sh", []);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
child.stdout.on("data",function(data){
|
|
11
|
+
console.log("Data: " + data);
|
|
12
|
+
});
|
|
13
|
+
child.stderr.on("data",function(data){
|
|
14
|
+
console.log("error: " + data);
|
|
15
|
+
});
|
|
16
|
+
child.on("exit",function(){
|
|
17
|
+
console.log("Exit script");
|
|
18
|
+
});
|
|
19
|
+
child.stdin.end(); //end input
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const { spawn } = require('node:child_process')
|
|
2
|
+
|
|
3
|
+
var child
|
|
4
|
+
if (process.platform === "win32"){
|
|
5
|
+
child = spawn("powershell.exe", ["electron-server/install_back.ps1"]);
|
|
6
|
+
} else if (process.platform === "linux"){
|
|
7
|
+
child = spawn("./electron-server/install_viewer.sh", []);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
child.stdout.on("data",function(data){
|
|
11
|
+
console.log("Data: " + data);
|
|
12
|
+
});
|
|
13
|
+
child.stderr.on("data",function(data){
|
|
14
|
+
console.log("error: " + data);
|
|
15
|
+
});
|
|
16
|
+
child.on("exit",function(){
|
|
17
|
+
console.log("Exit script");
|
|
18
|
+
});
|
|
19
|
+
child.stdin.end(); //end input
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const fs = require("node:fs");
|
|
2
|
+
var fileContent;
|
|
3
|
+
try {
|
|
4
|
+
fileContent = fs.readFileSync("./forge.config.cjs", "utf8");
|
|
5
|
+
} catch (err) {
|
|
6
|
+
console.error(err);
|
|
7
|
+
}
|
|
8
|
+
if (process.platform === "win32") {
|
|
9
|
+
fileContent = fileContent.replace("//GEODEAPP_BACK", "./electron-server/dist_back/geodeapp_back.exe");
|
|
10
|
+
fileContent = fileContent.replace("//GEODEAPP_VIEWER", "./electron-server/dist_viewer/geodeapp_viewer.exe");
|
|
11
|
+
} else if (process.platform === "linux") {
|
|
12
|
+
fileContent = fileContent.replace("//GEODEAPP_BACK", "./electron-server/dist_back/geodeapp_back");
|
|
13
|
+
fileContent = fileContent.replace("//GEODEAPP_VIEWER", "./electron-server/dist_viewer/geodeapp_viewer");
|
|
14
|
+
}
|
|
15
|
+
fs.writeFileSync("./forge.config.cjs", fileContent);
|
|
16
|
+
console.log("forge.config.cjs updated", fileContent);
|
|
17
|
+
|
package/package.json
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vease",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4-rc.48",
|
|
4
4
|
"description": "Basic app",
|
|
5
5
|
"main": "dist-electron/main.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "nuxi dev",
|
|
8
8
|
"generate": "nuxt generate",
|
|
9
|
-
"install_back": "
|
|
10
|
-
"install_viewer": "
|
|
9
|
+
"install_back": "node node_scripts/install_back.js",
|
|
10
|
+
"install_viewer": "node node_scripts/install_viewer.js",
|
|
11
11
|
"build": "nuxi build --prerender",
|
|
12
12
|
"test": "vitest",
|
|
13
13
|
"start": "npm run build && electron-forge start",
|
|
14
|
+
"prepackage": "node node_scripts/prepackage.js",
|
|
14
15
|
"package": "npm run build && electron-forge package",
|
|
15
16
|
"make": "electron-forge make",
|
|
16
17
|
"publish": "electron-forge publish",
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# This file is autogenerated by pip-compile with Python 3.10
|
|
3
|
-
# by the following command:
|
|
4
|
-
#
|
|
5
|
-
# pip-compile ./electron-server/requirements_viewer.in
|
|
6
|
-
#
|
|
7
|
-
aiohttp==3.9.3
|
|
8
|
-
# via
|
|
9
|
-
# geodeapp-viewer
|
|
10
|
-
# opengeodeweb-viewer
|
|
11
|
-
# wslink
|
|
12
|
-
aiosignal==1.3.1
|
|
13
|
-
# via
|
|
14
|
-
# aiohttp
|
|
15
|
-
# geodeapp-viewer
|
|
16
|
-
# opengeodeweb-viewer
|
|
17
|
-
async-timeout==4.0.3
|
|
18
|
-
# via
|
|
19
|
-
# aiohttp
|
|
20
|
-
# geodeapp-viewer
|
|
21
|
-
# opengeodeweb-viewer
|
|
22
|
-
attrs==23.2.0
|
|
23
|
-
# via
|
|
24
|
-
# aiohttp
|
|
25
|
-
# geodeapp-viewer
|
|
26
|
-
# jsonschema
|
|
27
|
-
# opengeodeweb-viewer
|
|
28
|
-
# referencing
|
|
29
|
-
contourpy==1.2.0
|
|
30
|
-
# via
|
|
31
|
-
# geodeapp-viewer
|
|
32
|
-
# matplotlib
|
|
33
|
-
cycler==0.12.1
|
|
34
|
-
# via
|
|
35
|
-
# geodeapp-viewer
|
|
36
|
-
# matplotlib
|
|
37
|
-
fonttools==4.50.0
|
|
38
|
-
# via
|
|
39
|
-
# geodeapp-viewer
|
|
40
|
-
# matplotlib
|
|
41
|
-
frozenlist==1.4.1
|
|
42
|
-
# via
|
|
43
|
-
# aiohttp
|
|
44
|
-
# aiosignal
|
|
45
|
-
# geodeapp-viewer
|
|
46
|
-
# opengeodeweb-viewer
|
|
47
|
-
geodeapp-viewer[gpu]==0.1.0
|
|
48
|
-
# via -r ./electron-server/requirements_viewer.in
|
|
49
|
-
idna==3.6
|
|
50
|
-
# via
|
|
51
|
-
# geodeapp-viewer
|
|
52
|
-
# opengeodeweb-viewer
|
|
53
|
-
# yarl
|
|
54
|
-
importlib-resources==6.4.0
|
|
55
|
-
# via geodeapp-viewer
|
|
56
|
-
jsonschema==4.21.1
|
|
57
|
-
# via
|
|
58
|
-
# geodeapp-viewer
|
|
59
|
-
# opengeodeweb-viewer
|
|
60
|
-
jsonschema-specifications==2023.12.1
|
|
61
|
-
# via
|
|
62
|
-
# geodeapp-viewer
|
|
63
|
-
# jsonschema
|
|
64
|
-
# opengeodeweb-viewer
|
|
65
|
-
kiwisolver==1.4.5
|
|
66
|
-
# via
|
|
67
|
-
# geodeapp-viewer
|
|
68
|
-
# matplotlib
|
|
69
|
-
matplotlib==3.8.3
|
|
70
|
-
# via
|
|
71
|
-
# geodeapp-viewer
|
|
72
|
-
# vtk
|
|
73
|
-
multidict==6.0.5
|
|
74
|
-
# via
|
|
75
|
-
# aiohttp
|
|
76
|
-
# geodeapp-viewer
|
|
77
|
-
# opengeodeweb-viewer
|
|
78
|
-
# yarl
|
|
79
|
-
numpy==1.26.4
|
|
80
|
-
# via
|
|
81
|
-
# contourpy
|
|
82
|
-
# geodeapp-viewer
|
|
83
|
-
# matplotlib
|
|
84
|
-
opengeodeweb-viewer[gpu]==0.1.1
|
|
85
|
-
# via geodeapp-viewer
|
|
86
|
-
packaging==24.0
|
|
87
|
-
# via
|
|
88
|
-
# geodeapp-viewer
|
|
89
|
-
# matplotlib
|
|
90
|
-
pillow==10.3.0
|
|
91
|
-
# via
|
|
92
|
-
# geodeapp-viewer
|
|
93
|
-
# matplotlib
|
|
94
|
-
pyparsing==3.1.2
|
|
95
|
-
# via
|
|
96
|
-
# geodeapp-viewer
|
|
97
|
-
# matplotlib
|
|
98
|
-
python-dateutil==2.9.0.post0
|
|
99
|
-
# via
|
|
100
|
-
# geodeapp-viewer
|
|
101
|
-
# matplotlib
|
|
102
|
-
python-dotenv==1.0.1
|
|
103
|
-
# via
|
|
104
|
-
# geodeapp-viewer
|
|
105
|
-
# opengeodeweb-viewer
|
|
106
|
-
referencing==0.33.0
|
|
107
|
-
# via
|
|
108
|
-
# geodeapp-viewer
|
|
109
|
-
# jsonschema
|
|
110
|
-
# jsonschema-specifications
|
|
111
|
-
# opengeodeweb-viewer
|
|
112
|
-
rpds-py==0.18.0
|
|
113
|
-
# via
|
|
114
|
-
# geodeapp-viewer
|
|
115
|
-
# jsonschema
|
|
116
|
-
# opengeodeweb-viewer
|
|
117
|
-
# referencing
|
|
118
|
-
six==1.16.0
|
|
119
|
-
# via
|
|
120
|
-
# geodeapp-viewer
|
|
121
|
-
# python-dateutil
|
|
122
|
-
vtk==9.3.0
|
|
123
|
-
# via
|
|
124
|
-
# geodeapp-viewer
|
|
125
|
-
# opengeodeweb-viewer
|
|
126
|
-
websocket-client==1.7.0
|
|
127
|
-
# via
|
|
128
|
-
# geodeapp-viewer
|
|
129
|
-
# opengeodeweb-viewer
|
|
130
|
-
wslink==1.12.4
|
|
131
|
-
# via
|
|
132
|
-
# geodeapp-viewer
|
|
133
|
-
# opengeodeweb-viewer
|
|
134
|
-
yarl==1.9.4
|
|
135
|
-
# via
|
|
136
|
-
# aiohttp
|
|
137
|
-
# geodeapp-viewer
|
|
138
|
-
# opengeodeweb-viewer
|
|
139
|
-
zipp==3.18.1
|
|
140
|
-
# via geodeapp-viewer
|