tw-framework 0.2.5__tar.gz → 0.2.6__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 (62) hide show
  1. {tw_framework-0.2.5 → tw_framework-0.2.6}/PKG-INFO +1 -1
  2. {tw_framework-0.2.5 → tw_framework-0.2.6}/pyproject.toml +1 -1
  3. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/compiler.py +16 -1
  4. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework.egg-info/PKG-INFO +1 -1
  5. {tw_framework-0.2.5 → tw_framework-0.2.6}/README.md +0 -0
  6. {tw_framework-0.2.5 → tw_framework-0.2.6}/setup.cfg +0 -0
  7. {tw_framework-0.2.5 → tw_framework-0.2.6}/tests/test_deployment.py +0 -0
  8. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/__init__.py +0 -0
  9. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/adapters/__init__.py +0 -0
  10. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/adapters/cloudflare.py +0 -0
  11. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/adapters/netlify.py +0 -0
  12. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/adapters/vercel.py +0 -0
  13. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/adapters/vercel_functions.py +0 -0
  14. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/advanced_diagnostics.py +0 -0
  15. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/asset_optimizer.py +0 -0
  16. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/ast_nodes.py +0 -0
  17. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/build.py +0 -0
  18. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/build_performance.py +0 -0
  19. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/build_report.py +0 -0
  20. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/cli.py +0 -0
  21. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/code_splitting.py +0 -0
  22. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/common.py +0 -0
  23. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/compiler_stats.py +0 -0
  24. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/dead_code.py +0 -0
  25. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/dependency_graph.py +0 -0
  26. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/deploy.py +0 -0
  27. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/dev.py +0 -0
  28. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/diagnostics.py +0 -0
  29. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/dynamic_imports.py +0 -0
  30. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/error_formatter.py +0 -0
  31. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/framework.py +0 -0
  32. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/hydration.py +0 -0
  33. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/incremental_cache.py +0 -0
  34. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/interpreter.py +0 -0
  35. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/ir.py +0 -0
  36. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/lexer.py +0 -0
  37. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/lowering.py +0 -0
  38. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/parser.py +0 -0
  39. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/partial_rebuild.py +0 -0
  40. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/performance_analyzer.py +0 -0
  41. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/plugin_runtime.py +0 -0
  42. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/production_optimizer.py +0 -0
  43. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/reactivity.py +0 -0
  44. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/render_css.py +0 -0
  45. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/render_html.py +0 -0
  46. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/route_optimizer.py +0 -0
  47. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/router.py +0 -0
  48. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/runtime_model.py +0 -0
  49. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/runtime_values.py +0 -0
  50. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/semantic.py +0 -0
  51. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/server.py +0 -0
  52. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/signature.py +0 -0
  53. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/static_dynamic_auto.py +0 -0
  54. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/streaming.py +0 -0
  55. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/test_build_cli_pytest.py +0 -0
  56. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/tree_shaking.py +0 -0
  57. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework/twm_parser.py +0 -0
  58. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework.egg-info/SOURCES.txt +0 -0
  59. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework.egg-info/dependency_links.txt +0 -0
  60. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework.egg-info/entry_points.txt +0 -0
  61. {tw_framework-0.2.5 → tw_framework-0.2.6}/tw_framework.egg-info/requires.txt +0 -0
  62. {tw_framework-0.2.5 → tw_framework-0.2.6}/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.5
3
+ Version: 0.2.6
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.5"
7
+ version = "0.2.6"
8
8
  description = "TW framework CLI with create, dev, build, and deploy commands"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1136,7 +1136,22 @@ def tokenize(code, allow_inline_scripts=False):
1136
1136
  start_line, start_col = line, col
1137
1137
  word = []
1138
1138
  # Read until whitespace, braces, quotes, or common operators.
1139
- while i < n and (code[i] not in ' \t\r\n{}"\'' and code[i] not in ONE_CHAR_OPS):
1139
+ # Exception: a `-` surrounded by alnum chars on both sides is kept as
1140
+ # part of the word (kebab-case identifiers like `aria-label`,
1141
+ # `data-foo`), since HTML/ARIA attribute names rely on this.
1142
+ while i < n:
1143
+ ch = code[i]
1144
+ if ch in ' \t\r\n{}"\'' or ch in ONE_CHAR_OPS:
1145
+ if (
1146
+ ch == "-"
1147
+ and word
1148
+ and word[-1].isalnum()
1149
+ and i + 1 < n
1150
+ and code[i + 1].isalnum()
1151
+ ):
1152
+ word.append(advance_one())
1153
+ continue
1154
+ break
1140
1155
  word.append(advance_one())
1141
1156
  word = "".join(word)
1142
1157
  if not word:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tw-framework
3
- Version: 0.2.5
3
+ Version: 0.2.6
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