pulse-framework 0.1.48__tar.gz → 0.1.49__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.48 → pulse_framework-0.1.49}/PKG-INFO +1 -1
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/pyproject.toml +1 -1
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/proxy.py +2 -2
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/imports.py +7 -2
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/README.md +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/app.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/channel.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/cmd.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/dependencies.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/folder_lock.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/helpers.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/models.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/packages.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/processes.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/secrets.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cli/uvicorn_log_config.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/codegen.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/js.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/templates/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/templates/layout.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/templates/route.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/templates/routes_ts.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/codegen/utils.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/components/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/components/for_.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/components/if_.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/components/react_router.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/context.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/cookies.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/decorators.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/env.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/form.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/helpers.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/core.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/effects.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/init.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/runtime.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/setup.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/stable.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/hooks/states.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/html/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/html/elements.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/html/events.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/html/props.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/html/svg.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/html/tags.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/html/tags.pyi +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/__init__.pyi +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/_types.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/array.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/console.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/date.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/document.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/error.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/json.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/map.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/math.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/navigator.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/number.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/object.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/promise.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/regexp.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/set.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/string.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/weakmap.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/weakset.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/js/window.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/messages.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/middleware.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/plugin.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/py.typed +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/client.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/common.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/effect.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/infinite_query.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/mutation.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/protocol.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/query.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/queries/store.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/react_component.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/reactive.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/reactive_extensions.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/render_session.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/renderer.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/request.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/routing.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/serializer.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/state.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/builtins.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/constants.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/context.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/errors.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/function.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/ids.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/js_module.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/modules/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/modules/asyncio.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/modules/json.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/modules/math.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/modules/re.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/modules/tags.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/modules/typing.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/nodes.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/py_module.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/transpiler.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/transpiler/utils.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/types/__init__.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/types/event_handler.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/user_session.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/vdom.py +0 -0
- {pulse_framework-0.1.48 → pulse_framework-0.1.49}/src/pulse/version.py +0 -0
|
@@ -41,7 +41,7 @@ class ReactProxy:
|
|
|
41
41
|
self.server_address = server_address
|
|
42
42
|
self._client = None
|
|
43
43
|
|
|
44
|
-
def
|
|
44
|
+
def rewrite_url(self, url: str) -> str:
|
|
45
45
|
"""Rewrite internal React server URLs to external server address."""
|
|
46
46
|
if self.react_server_address in url:
|
|
47
47
|
return url.replace(self.react_server_address, self.server_address)
|
|
@@ -207,7 +207,7 @@ class ReactProxy:
|
|
|
207
207
|
response_headers: dict[str, str] = {}
|
|
208
208
|
for k, v in r.headers.items():
|
|
209
209
|
if k.lower() in ("location", "content-location"):
|
|
210
|
-
v = self.
|
|
210
|
+
v = self.rewrite_url(v)
|
|
211
211
|
response_headers[k] = v
|
|
212
212
|
|
|
213
213
|
return StreamingResponse(
|
|
@@ -293,6 +293,7 @@ class CssImport(Import):
|
|
|
293
293
|
- Absolute path (e.g., "/path/to/styles.css")
|
|
294
294
|
module: If True, import as a CSS module (default export for class access).
|
|
295
295
|
If False, import for side effects only (global styles).
|
|
296
|
+
Automatically set to True if path ends with ".module.css".
|
|
296
297
|
relative: If True, resolve path relative to the caller's file.
|
|
297
298
|
before: List of import sources that should come after this import.
|
|
298
299
|
|
|
@@ -300,8 +301,8 @@ class CssImport(Import):
|
|
|
300
301
|
# Side-effect CSS import (global styles)
|
|
301
302
|
CssImport("@mantine/core/styles.css")
|
|
302
303
|
|
|
303
|
-
# CSS module for class access
|
|
304
|
-
styles = CssImport("./styles.module.css",
|
|
304
|
+
# CSS module for class access (module=True auto-detected from .module.css)
|
|
305
|
+
styles = CssImport("./styles.module.css", relative=True)
|
|
305
306
|
styles.container # Returns JSMember for 'container' class
|
|
306
307
|
|
|
307
308
|
# Local CSS file (will be copied during codegen)
|
|
@@ -316,6 +317,10 @@ class CssImport(Import):
|
|
|
316
317
|
relative: bool = False,
|
|
317
318
|
before: Sequence[str] = (),
|
|
318
319
|
) -> None:
|
|
320
|
+
# Auto-detect CSS modules based on filename
|
|
321
|
+
if path.endswith(".module.css"):
|
|
322
|
+
module = True
|
|
323
|
+
|
|
319
324
|
source_path: Path | None = None
|
|
320
325
|
import_src = path
|
|
321
326
|
|
|
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
|
|
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
|
|
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
|