flet-web 0.25.0.dev3487__py3-none-any.whl
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.
Potentially problematic release.
This version of flet-web might be problematic. Click here for more details.
- flet_web/__init__.py +9 -0
- flet_web/fastapi/README.md +146 -0
- flet_web/fastapi/__init__.py +6 -0
- flet_web/fastapi/app.py +120 -0
- flet_web/fastapi/flet_app.py +431 -0
- flet_web/fastapi/flet_app_manager.py +166 -0
- flet_web/fastapi/flet_fastapi.py +128 -0
- flet_web/fastapi/flet_oauth.py +66 -0
- flet_web/fastapi/flet_static_files.py +188 -0
- flet_web/fastapi/flet_upload.py +95 -0
- flet_web/fastapi/oauth_state.py +11 -0
- flet_web/fastapi/serve_fastapi_web_app.py +93 -0
- flet_web/patch_index.py +104 -0
- flet_web/uploads.py +54 -0
- flet_web/version.py +5 -0
- flet_web/web/.last_build_id +1 -0
- flet_web/web/assets/AssetManifest.bin +2 -0
- flet_web/web/assets/AssetManifest.bin.json +1 -0
- flet_web/web/assets/AssetManifest.json +1 -0
- flet_web/web/assets/FontManifest.json +1 -0
- flet_web/web/assets/NOTICES +37060 -0
- flet_web/web/assets/fonts/MaterialIcons-Regular.otf +0 -0
- flet_web/web/assets/packages/cupertino_icons/assets/CupertinoIcons.ttf +0 -0
- flet_web/web/assets/packages/flutter_map/lib/assets/flutter_map_logo.png +0 -0
- flet_web/web/assets/packages/media_kit/assets/web/hls1.4.10.js +2 -0
- flet_web/web/assets/packages/record_web/assets/js/record.fixwebmduration.js +507 -0
- flet_web/web/assets/packages/record_web/assets/js/record.worklet.js +400 -0
- flet_web/web/assets/packages/wakelock_plus/assets/no_sleep.js +230 -0
- flet_web/web/assets/packages/window_manager/images/ic_chrome_close.png +0 -0
- flet_web/web/assets/packages/window_manager/images/ic_chrome_maximize.png +0 -0
- flet_web/web/assets/packages/window_manager/images/ic_chrome_minimize.png +0 -0
- flet_web/web/assets/packages/window_manager/images/ic_chrome_unmaximize.png +0 -0
- flet_web/web/assets/shaders/ink_sparkle.frag +126 -0
- flet_web/web/favicon.png +0 -0
- flet_web/web/flutter.js +4 -0
- flet_web/web/flutter_bootstrap.js +28 -0
- flet_web/web/flutter_service_worker.js +218 -0
- flet_web/web/icons/apple-touch-icon-192.png +0 -0
- flet_web/web/icons/icon-192.png +0 -0
- flet_web/web/icons/icon-512.png +0 -0
- flet_web/web/icons/icon-maskable-192.png +0 -0
- flet_web/web/icons/icon-maskable-512.png +0 -0
- flet_web/web/icons/loading-animation.png +0 -0
- flet_web/web/index.html +99 -0
- flet_web/web/main.dart.js +225762 -0
- flet_web/web/manifest.json +35 -0
- flet_web/web/python-worker.js +47 -0
- flet_web/web/python.js +28 -0
- flet_web/web/version.json +1 -0
- flet_web-0.25.0.dev3487.dist-info/METADATA +25 -0
- flet_web-0.25.0.dev3487.dist-info/RECORD +52 -0
- flet_web-0.25.0.dev3487.dist-info/WHEEL +4 -0
flet_web/uploads.py
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import hashlib
|
|
2
|
+
import hmac
|
|
3
|
+
import logging
|
|
4
|
+
import os
|
|
5
|
+
import urllib.parse
|
|
6
|
+
from datetime import datetime, timedelta, timezone
|
|
7
|
+
from typing import Optional
|
|
8
|
+
|
|
9
|
+
import flet_web
|
|
10
|
+
|
|
11
|
+
logger = logging.getLogger(flet_web.__name__)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def build_upload_url(
|
|
15
|
+
upload_endpoint_path: str,
|
|
16
|
+
file_name: str,
|
|
17
|
+
expires_in_seconds: int,
|
|
18
|
+
secret_key: Optional[str],
|
|
19
|
+
):
|
|
20
|
+
expire_date = datetime.now(timezone.utc) + timedelta(seconds=expires_in_seconds)
|
|
21
|
+
query_string = build_upload_query_string(file_name, expire_date)
|
|
22
|
+
signature = get_upload_signature(
|
|
23
|
+
upload_endpoint_path, query_string, expire_date, secret_key
|
|
24
|
+
)
|
|
25
|
+
return f"/{upload_endpoint_path.strip('/')}?{query_string}&s={signature}"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def build_upload_query_string(file_name: str, expire_date: datetime):
|
|
29
|
+
return urllib.parse.urlencode({"f": file_name, "e": expire_date.isoformat()})
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def get_upload_signature(
|
|
33
|
+
upload_endpoint_path: str,
|
|
34
|
+
query_string: str,
|
|
35
|
+
expire_date: datetime,
|
|
36
|
+
secret_key: Optional[str],
|
|
37
|
+
):
|
|
38
|
+
env_secret_key = os.getenv("FLET_SECRET_KEY")
|
|
39
|
+
if env_secret_key:
|
|
40
|
+
secret_key = env_secret_key
|
|
41
|
+
if not secret_key:
|
|
42
|
+
raise Exception(
|
|
43
|
+
"Specify secret_key parameter or set FLET_SECRET_KEY environment variable to enable uploads."
|
|
44
|
+
)
|
|
45
|
+
signing_key = hmac.new(
|
|
46
|
+
secret_key.encode("utf-8"),
|
|
47
|
+
expire_date.isoformat().encode("utf-8"),
|
|
48
|
+
hashlib.sha256,
|
|
49
|
+
).digest()
|
|
50
|
+
return hmac.new(
|
|
51
|
+
signing_key,
|
|
52
|
+
f"{upload_endpoint_path.strip('/')}{query_string}".encode("utf-8"),
|
|
53
|
+
hashlib.sha256,
|
|
54
|
+
).hexdigest()
|
flet_web/version.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2b928efaac59f5b3d3830b6371088b0e
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"DQoHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmDAENAQcFYXNzZXQHMnBhY2thZ2VzL2N1cGVydGlub19pY29ucy9hc3NldHMvQ3VwZXJ0aW5vSWNvbnMudHRmBzRwYWNrYWdlcy9mbHV0dGVyX21hcC9saWIvYXNzZXRzL2ZsdXR0ZXJfbWFwX2xvZ28ucG5nDAENAQcFYXNzZXQHNHBhY2thZ2VzL2ZsdXR0ZXJfbWFwL2xpYi9hc3NldHMvZmx1dHRlcl9tYXBfbG9nby5wbmcHKnBhY2thZ2VzL21lZGlhX2tpdC9hc3NldHMvd2ViL2hsczEuNC4xMC5qcwwBDQEHBWFzc2V0BypwYWNrYWdlcy9tZWRpYV9raXQvYXNzZXRzL3dlYi9obHMxLjQuMTAuanMHN3BhY2thZ2VzL3JlY29yZF93ZWIvYXNzZXRzL2pzL3JlY29yZC5maXh3ZWJtZHVyYXRpb24uanMMAQ0BBwVhc3NldAc3cGFja2FnZXMvcmVjb3JkX3dlYi9hc3NldHMvanMvcmVjb3JkLmZpeHdlYm1kdXJhdGlvbi5qcwcvcGFja2FnZXMvcmVjb3JkX3dlYi9hc3NldHMvanMvcmVjb3JkLndvcmtsZXQuanMMAQ0BBwVhc3NldAcvcGFja2FnZXMvcmVjb3JkX3dlYi9hc3NldHMvanMvcmVjb3JkLndvcmtsZXQuanMHKXBhY2thZ2VzL3dha2Vsb2NrX3BsdXMvYXNzZXRzL25vX3NsZWVwLmpzDAENAQcFYXNzZXQHKXBhY2thZ2VzL3dha2Vsb2NrX3BsdXMvYXNzZXRzL25vX3NsZWVwLmpzBzJwYWNrYWdlcy93aW5kb3dfbWFuYWdlci9pbWFnZXMvaWNfY2hyb21lX2Nsb3NlLnBuZwwBDQEHBWFzc2V0BzJwYWNrYWdlcy93aW5kb3dfbWFuYWdlci9pbWFnZXMvaWNfY2hyb21lX2Nsb3NlLnBuZwc1cGFja2FnZXMvd2luZG93X21hbmFnZXIvaW1hZ2VzL2ljX2Nocm9tZV9tYXhpbWl6ZS5wbmcMAQ0BBwVhc3NldAc1cGFja2FnZXMvd2luZG93X21hbmFnZXIvaW1hZ2VzL2ljX2Nocm9tZV9tYXhpbWl6ZS5wbmcHNXBhY2thZ2VzL3dpbmRvd19tYW5hZ2VyL2ltYWdlcy9pY19jaHJvbWVfbWluaW1pemUucG5nDAENAQcFYXNzZXQHNXBhY2thZ2VzL3dpbmRvd19tYW5hZ2VyL2ltYWdlcy9pY19jaHJvbWVfbWluaW1pemUucG5nBzdwYWNrYWdlcy93aW5kb3dfbWFuYWdlci9pbWFnZXMvaWNfY2hyb21lX3VubWF4aW1pemUucG5nDAENAQcFYXNzZXQHN3BhY2thZ2VzL3dpbmRvd19tYW5hZ2VyL2ltYWdlcy9pY19jaHJvbWVfdW5tYXhpbWl6ZS5wbmc="
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_map/lib/assets/flutter_map_logo.png":["packages/flutter_map/lib/assets/flutter_map_logo.png"],"packages/media_kit/assets/web/hls1.4.10.js":["packages/media_kit/assets/web/hls1.4.10.js"],"packages/record_web/assets/js/record.fixwebmduration.js":["packages/record_web/assets/js/record.fixwebmduration.js"],"packages/record_web/assets/js/record.worklet.js":["packages/record_web/assets/js/record.worklet.js"],"packages/wakelock_plus/assets/no_sleep.js":["packages/wakelock_plus/assets/no_sleep.js"],"packages/window_manager/images/ic_chrome_close.png":["packages/window_manager/images/ic_chrome_close.png"],"packages/window_manager/images/ic_chrome_maximize.png":["packages/window_manager/images/ic_chrome_maximize.png"],"packages/window_manager/images/ic_chrome_minimize.png":["packages/window_manager/images/ic_chrome_minimize.png"],"packages/window_manager/images/ic_chrome_unmaximize.png":["packages/window_manager/images/ic_chrome_unmaximize.png"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
|