tw-framework 0.2.8__tar.gz → 0.3.0__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.
Files changed (63) hide show
  1. {tw_framework-0.2.8 → tw_framework-0.3.0}/PKG-INFO +1 -1
  2. {tw_framework-0.2.8 → tw_framework-0.3.0}/pyproject.toml +1 -1
  3. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/compiler.py +5 -0
  4. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/framework.py +3 -3
  5. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/PKG-INFO +1 -1
  6. {tw_framework-0.2.8 → tw_framework-0.3.0}/README.md +0 -0
  7. {tw_framework-0.2.8 → tw_framework-0.3.0}/setup.cfg +0 -0
  8. {tw_framework-0.2.8 → tw_framework-0.3.0}/tests/test_deployment.py +0 -0
  9. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/__init__.py +0 -0
  10. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/__init__.py +0 -0
  11. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/cloudflare.py +0 -0
  12. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/netlify.py +0 -0
  13. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/vercel.py +0 -0
  14. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/adapters/vercel_functions.py +0 -0
  15. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/advanced_diagnostics.py +0 -0
  16. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/asset_optimizer.py +0 -0
  17. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/ast_nodes.py +0 -0
  18. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/build.py +0 -0
  19. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/build_performance.py +0 -0
  20. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/build_report.py +0 -0
  21. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/cli.py +0 -0
  22. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/code_splitting.py +0 -0
  23. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/common.py +0 -0
  24. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/compiler_stats.py +0 -0
  25. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dead_code.py +0 -0
  26. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dependency_graph.py +0 -0
  27. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/deploy.py +0 -0
  28. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dev.py +0 -0
  29. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/diagnostics.py +0 -0
  30. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/dynamic_imports.py +0 -0
  31. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/error_formatter.py +0 -0
  32. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/hydration.py +0 -0
  33. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/incremental_cache.py +0 -0
  34. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/interpreter.py +0 -0
  35. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/ir.py +0 -0
  36. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/lexer.py +0 -0
  37. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/lowering.py +0 -0
  38. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/parser.py +0 -0
  39. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/partial_rebuild.py +0 -0
  40. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/performance_analyzer.py +0 -0
  41. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/plugin_runtime.py +0 -0
  42. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/production_optimizer.py +0 -0
  43. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/reactivity.py +0 -0
  44. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/render_css.py +0 -0
  45. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/render_html.py +0 -0
  46. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/route_optimizer.py +0 -0
  47. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/router.py +0 -0
  48. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/runtime_model.py +0 -0
  49. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/runtime_values.py +0 -0
  50. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/semantic.py +0 -0
  51. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/server.py +0 -0
  52. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/signature.py +0 -0
  53. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/static_dynamic_auto.py +0 -0
  54. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/streaming.py +0 -0
  55. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/test_build_cli_pytest.py +0 -0
  56. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/tree_shaking.py +0 -0
  57. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/twm_api_runner.js +0 -0
  58. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework/twm_parser.py +0 -0
  59. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/SOURCES.txt +0 -0
  60. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/dependency_links.txt +0 -0
  61. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/entry_points.txt +0 -0
  62. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/requires.txt +0 -0
  63. {tw_framework-0.2.8 → tw_framework-0.3.0}/tw_framework.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tw-framework
3
- Version: 0.2.8
3
+ Version: 0.3.0
4
4
  Summary: TW framework CLI with create, dev, build, and deploy commands
5
5
  Author: TW Framework
6
6
  Requires-Python: >=3.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tw-framework"
7
- version = "0.2.8"
7
+ version = "0.3.0"
8
8
  description = "TW framework CLI with create, dev, build, and deploy commands"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -2095,6 +2095,11 @@ def finalize_css_value(css_prop, raw_value, context):
2095
2095
  return _append_px_if_numeric(value)
2096
2096
  if isinstance(value, str):
2097
2097
  stripped = value.strip()
2098
+ if len(stripped) >= 2 and (
2099
+ (stripped[0] == '"' and stripped[-1] == '"')
2100
+ or (stripped[0] == "'" and stripped[-1] == "'")
2101
+ ):
2102
+ stripped = stripped[1:-1]
2098
2103
  stripped = _normalize_css_function_args(stripped)
2099
2104
  if css_prop == "line-height" and NUM_RE.match(stripped):
2100
2105
  return stripped
@@ -2526,13 +2526,13 @@ def write_route_artifacts(output_dir: str):
2526
2526
 
2527
2527
  def strip_html_to_text(html_text: str) -> str:
2528
2528
  # Remove script/style blocks
2529
- html_text = re.sub(r"<script[\\s\\S]*?</script>", " ", html_text, flags=re.I)
2530
- html_text = re.sub(r"<style[\\s\\S]*?</style>", " ", html_text, flags=re.I)
2529
+ html_text = re.sub(r"<script[\s\S]*?</script>", " ", html_text, flags=re.I)
2530
+ html_text = re.sub(r"<style[\s\S]*?</style>", " ", html_text, flags=re.I)
2531
2531
  # Remove tags
2532
2532
  html_text = re.sub(r"<[^>]+>", " ", html_text)
2533
2533
  # Decode entities + normalize whitespace
2534
2534
  html_text = html.unescape(html_text)
2535
- html_text = re.sub(r"\\s+", " ", html_text).strip()
2535
+ html_text = re.sub(r"\s+", " ", html_text).strip()
2536
2536
  return html_text
2537
2537
 
2538
2538
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tw-framework
3
- Version: 0.2.8
3
+ Version: 0.3.0
4
4
  Summary: TW framework CLI with create, dev, build, and deploy commands
5
5
  Author: TW Framework
6
6
  Requires-Python: >=3.9
File without changes
File without changes