pulse-framework 0.1.38a8__tar.gz → 0.1.39__tar.gz
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.
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/PKG-INFO +1 -1
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/pyproject.toml +1 -1
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/app.py +1 -1
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/cmd.py +4 -1
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/processes.py +6 -2
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/middleware.py +8 -6
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/README.md +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/channel.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/dependencies.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/folder_lock.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/helpers.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/models.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/packages.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/secrets.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cli/uvicorn_log_config.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/codegen.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/imports.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/js.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/templates/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/templates/layout.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/templates/route.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/templates/routes_ts.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/utils.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/components/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/components/for_.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/components/if_.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/components/react_router.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/context.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/cookies.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/css.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/decorators.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/env.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/form.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/helpers.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/hooks/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/hooks/core.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/hooks/effects.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/hooks/runtime.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/hooks/setup.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/hooks/stable.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/hooks/states.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/html/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/html/elements.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/html/events.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/html/props.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/html/svg.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/html/tags.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/html/tags.pyi +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/messages.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/plugin.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/proxy.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/py.typed +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/query.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/react_component.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/reactive.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/reactive_extensions.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/render_session.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/renderer.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/request.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/routing.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/serializer.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/state.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/types/__init__.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/types/event_handler.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/user_session.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/vdom.py +0 -0
- {pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/version.py +0 -0
|
@@ -939,7 +939,7 @@ class App:
|
|
|
939
939
|
return # no active render for this user session
|
|
940
940
|
|
|
941
941
|
# We don't want to wait for this to resolve
|
|
942
|
-
create_task(render.call_api(f"
|
|
942
|
+
create_task(render.call_api(f"{self.api_prefix}/set-cookies", method="GET"))
|
|
943
943
|
sess.scheduled_cookie_refresh = True
|
|
944
944
|
|
|
945
945
|
|
|
@@ -204,7 +204,10 @@ def run(
|
|
|
204
204
|
)
|
|
205
205
|
)
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
# Only add tags in dev mode to avoid breaking structured output (e.g., CloudWatch EMF metrics)
|
|
208
|
+
tag_colors = (
|
|
209
|
+
{"server": "cyan", "web": "orange1"} if env.pulse_env == "dev" else None
|
|
210
|
+
)
|
|
208
211
|
|
|
209
212
|
with FolderLock(web_root):
|
|
210
213
|
try:
|
|
@@ -215,8 +215,12 @@ def _run_without_pty(
|
|
|
215
215
|
|
|
216
216
|
|
|
217
217
|
def _write_tagged_line(name: str, message: str, colors: Mapping[str, str]) -> None:
|
|
218
|
-
|
|
219
|
-
|
|
218
|
+
# Only add tags if colors dict is not empty (i.e., tagging is enabled)
|
|
219
|
+
if colors:
|
|
220
|
+
color = ANSI_CODES.get(colors.get(name, ""), ANSI_CODES["default"])
|
|
221
|
+
sys.stdout.write(f"{color}[{name}]\033[0m {message}\n")
|
|
222
|
+
else:
|
|
223
|
+
sys.stdout.write(f"{message}\n")
|
|
220
224
|
sys.stdout.flush()
|
|
221
225
|
|
|
222
226
|
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from collections.abc import Callable, Sequence
|
|
4
|
-
from typing import
|
|
5
|
-
|
|
6
|
-
from pulse.messages import
|
|
4
|
+
from typing import Any, Generic, TypeVar, overload, override
|
|
5
|
+
|
|
6
|
+
from pulse.messages import (
|
|
7
|
+
ClientMessage,
|
|
8
|
+
PrerenderPayload,
|
|
9
|
+
PrerenderResult,
|
|
10
|
+
ServerInitMessage,
|
|
11
|
+
)
|
|
7
12
|
from pulse.request import PulseRequest
|
|
8
13
|
from pulse.routing import RouteInfo
|
|
9
14
|
|
|
10
|
-
if TYPE_CHECKING:
|
|
11
|
-
from pulse.app import PrerenderPayload, PrerenderResult
|
|
12
|
-
|
|
13
15
|
T = TypeVar("T")
|
|
14
16
|
|
|
15
17
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulse_framework-0.1.38a8 → pulse_framework-0.1.39}/src/pulse/codegen/templates/routes_ts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|