ripple 0.2.216 → 0.3.0

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 (155) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/package.json +16 -7
  3. package/src/compiler/errors.js +1 -1
  4. package/src/compiler/identifier-utils.js +2 -0
  5. package/src/compiler/index.d.ts +2 -6
  6. package/src/compiler/phases/1-parse/index.js +171 -233
  7. package/src/compiler/phases/2-analyze/index.js +192 -16
  8. package/src/compiler/phases/2-analyze/prune.js +2 -2
  9. package/src/compiler/phases/3-transform/client/index.js +308 -91
  10. package/src/compiler/phases/3-transform/segments.js +43 -15
  11. package/src/compiler/phases/3-transform/server/index.js +71 -21
  12. package/src/compiler/scope.js +31 -12
  13. package/src/compiler/source-map-utils.js +4 -6
  14. package/src/compiler/types/acorn.d.ts +11 -0
  15. package/src/compiler/types/estree-jsx.d.ts +11 -0
  16. package/src/compiler/types/estree.d.ts +11 -0
  17. package/src/compiler/types/import.d.ts +32 -18
  18. package/src/compiler/types/index.d.ts +75 -23
  19. package/src/compiler/types/parse.d.ts +7 -10
  20. package/src/compiler/utils.js +48 -0
  21. package/src/runtime/array.js +53 -22
  22. package/src/runtime/date.js +15 -5
  23. package/src/runtime/index-client.js +41 -7
  24. package/src/runtime/index-server.js +7 -7
  25. package/src/runtime/internal/client/bindings.js +2 -2
  26. package/src/runtime/internal/client/blocks.js +40 -1
  27. package/src/runtime/internal/client/context.js +8 -0
  28. package/src/runtime/internal/client/for.js +3 -3
  29. package/src/runtime/internal/client/index.js +32 -5
  30. package/src/runtime/internal/client/render.js +20 -8
  31. package/src/runtime/internal/client/runtime.js +9 -7
  32. package/src/runtime/internal/client/try.js +15 -22
  33. package/src/runtime/internal/client/utils.js +1 -1
  34. package/src/runtime/internal/server/context.js +8 -0
  35. package/src/runtime/internal/server/index.js +99 -6
  36. package/src/runtime/map.js +7 -7
  37. package/src/runtime/media-query.js +10 -1
  38. package/src/runtime/object.js +6 -6
  39. package/src/runtime/proxy.js +6 -6
  40. package/src/runtime/set.js +11 -11
  41. package/src/runtime/url-search-params.js +13 -2
  42. package/src/runtime/url.js +15 -5
  43. package/src/utils/builders.js +13 -3
  44. package/tests/client/array/array.copy-within.test.ripple +11 -11
  45. package/tests/client/array/array.derived.test.ripple +42 -42
  46. package/tests/client/array/array.iteration.test.ripple +12 -12
  47. package/tests/client/array/array.mutations.test.ripple +25 -25
  48. package/tests/client/array/array.static.test.ripple +103 -106
  49. package/tests/client/array/array.to-methods.test.ripple +8 -8
  50. package/tests/client/async-suspend.test.ripple +94 -0
  51. package/tests/client/basic/basic.attributes.test.ripple +31 -31
  52. package/tests/client/basic/basic.collections.test.ripple +7 -7
  53. package/tests/client/basic/basic.components.test.ripple +48 -10
  54. package/tests/client/basic/basic.errors.test.ripple +46 -31
  55. package/tests/client/basic/basic.events.test.ripple +11 -11
  56. package/tests/client/basic/basic.get-set.test.ripple +18 -18
  57. package/tests/client/basic/basic.reactivity.test.ripple +47 -42
  58. package/tests/client/basic/basic.rendering.test.ripple +7 -7
  59. package/tests/client/basic/basic.utilities.test.ripple +4 -4
  60. package/tests/client/boundaries.test.ripple +7 -7
  61. package/tests/client/compiler/__snapshots__/compiler.assignments.test.ripple.snap +2 -2
  62. package/tests/client/compiler/compiler.assignments.test.ripple +21 -21
  63. package/tests/client/compiler/compiler.basic.test.ripple +223 -82
  64. package/tests/client/compiler/compiler.tracked-access.test.ripple +8 -9
  65. package/tests/client/composite/composite.dynamic-components.test.ripple +8 -8
  66. package/tests/client/composite/composite.generics.test.ripple +4 -4
  67. package/tests/client/composite/composite.props.test.ripple +9 -9
  68. package/tests/client/composite/composite.reactivity.test.ripple +32 -26
  69. package/tests/client/composite/composite.render.test.ripple +13 -4
  70. package/tests/client/computed-properties.test.ripple +3 -3
  71. package/tests/client/context.test.ripple +3 -3
  72. package/tests/client/css/global-additional-cases.test.ripple +4 -4
  73. package/tests/client/css/style-identifier.test.ripple +49 -41
  74. package/tests/client/date.test.ripple +40 -40
  75. package/tests/client/dynamic-elements.test.ripple +165 -30
  76. package/tests/client/events.test.ripple +25 -25
  77. package/tests/client/for.test.ripple +76 -8
  78. package/tests/client/function-overload.test.ripple +0 -1
  79. package/tests/client/head.test.ripple +7 -7
  80. package/tests/client/html.test.ripple +2 -2
  81. package/tests/client/input-value.test.ripple +174 -176
  82. package/tests/client/map.test.ripple +21 -21
  83. package/tests/client/media-query.test.ripple +4 -4
  84. package/tests/client/object.test.ripple +12 -12
  85. package/tests/client/portal.test.ripple +4 -4
  86. package/tests/client/ref.test.ripple +5 -5
  87. package/tests/client/return.test.ripple +17 -17
  88. package/tests/client/set.test.ripple +16 -16
  89. package/tests/client/svg.test.ripple +6 -7
  90. package/tests/client/switch.test.ripple +10 -10
  91. package/tests/client/tracked-expression.test.ripple +1 -3
  92. package/tests/client/try.test.ripple +33 -4
  93. package/tests/client/url/url.derived.test.ripple +10 -9
  94. package/tests/client/url/url.parsing.test.ripple +10 -10
  95. package/tests/client/url/url.partial-removal.test.ripple +10 -10
  96. package/tests/client/url/url.reactivity.test.ripple +17 -17
  97. package/tests/client/url/url.serialization.test.ripple +4 -4
  98. package/tests/client/url-search-params/url-search-params.derived.test.ripple +11 -10
  99. package/tests/client/url-search-params/url-search-params.initialization.test.ripple +5 -7
  100. package/tests/client/url-search-params/url-search-params.iteration.test.ripple +13 -13
  101. package/tests/client/url-search-params/url-search-params.mutation.test.ripple +19 -19
  102. package/tests/client/url-search-params/url-search-params.retrieval.test.ripple +17 -17
  103. package/tests/client/url-search-params/url-search-params.serialization.test.ripple +5 -5
  104. package/tests/client/url-search-params/url-search-params.tracked-url.test.ripple +5 -5
  105. package/tests/hydration/compiled/client/events.js +8 -11
  106. package/tests/hydration/compiled/client/for.js +20 -23
  107. package/tests/hydration/compiled/client/head.js +17 -19
  108. package/tests/hydration/compiled/client/hmr.js +1 -3
  109. package/tests/hydration/compiled/client/html.js +1 -15
  110. package/tests/hydration/compiled/client/if-children.js +7 -9
  111. package/tests/hydration/compiled/client/if.js +5 -7
  112. package/tests/hydration/compiled/client/mixed-control-flow.js +3 -5
  113. package/tests/hydration/compiled/client/portal.js +1 -1
  114. package/tests/hydration/compiled/client/reactivity.js +9 -11
  115. package/tests/hydration/compiled/client/return.js +11 -13
  116. package/tests/hydration/compiled/client/switch.js +4 -6
  117. package/tests/hydration/compiled/server/basic.js +0 -1
  118. package/tests/hydration/compiled/server/composite.js +0 -3
  119. package/tests/hydration/compiled/server/events.js +8 -12
  120. package/tests/hydration/compiled/server/for.js +20 -23
  121. package/tests/hydration/compiled/server/head.js +17 -19
  122. package/tests/hydration/compiled/server/hmr.js +1 -4
  123. package/tests/hydration/compiled/server/html.js +1 -35
  124. package/tests/hydration/compiled/server/if-children.js +7 -11
  125. package/tests/hydration/compiled/server/if.js +5 -7
  126. package/tests/hydration/compiled/server/mixed-control-flow.js +3 -5
  127. package/tests/hydration/compiled/server/portal.js +1 -9
  128. package/tests/hydration/compiled/server/reactivity.js +9 -11
  129. package/tests/hydration/compiled/server/return.js +11 -13
  130. package/tests/hydration/compiled/server/switch.js +4 -6
  131. package/tests/hydration/components/events.ripple +8 -9
  132. package/tests/hydration/components/for.ripple +20 -21
  133. package/tests/hydration/components/head.ripple +6 -8
  134. package/tests/hydration/components/hmr.ripple +1 -2
  135. package/tests/hydration/components/html.ripple +1 -3
  136. package/tests/hydration/components/if-children.ripple +7 -8
  137. package/tests/hydration/components/if.ripple +5 -6
  138. package/tests/hydration/components/mixed-control-flow.ripple +4 -6
  139. package/tests/hydration/components/portal.ripple +1 -1
  140. package/tests/hydration/components/reactivity.ripple +9 -10
  141. package/tests/hydration/components/return.ripple +11 -12
  142. package/tests/hydration/components/switch.ripple +6 -8
  143. package/tests/server/await.test.ripple +2 -2
  144. package/tests/server/basic.attributes.test.ripple +19 -21
  145. package/tests/server/basic.components.test.ripple +13 -7
  146. package/tests/server/basic.test.ripple +20 -21
  147. package/tests/server/compiler.test.ripple +5 -5
  148. package/tests/server/composite.props.test.ripple +6 -7
  149. package/tests/server/composite.test.ripple +4 -4
  150. package/tests/server/context.test.ripple +1 -3
  151. package/tests/server/dynamic-elements.test.ripple +24 -24
  152. package/tests/server/head.test.ripple +5 -7
  153. package/tests/server/style-identifier.test.ripple +16 -17
  154. package/types/index.d.ts +266 -62
  155. package/types/server.d.ts +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # ripple
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#779](https://github.com/Ripple-TS/ripple/pull/779)
8
+ [`74a10cc`](https://github.com/Ripple-TS/ripple/commit/74a10cc5701962cd7c72b144d59b35ecb76263a3)
9
+ Thanks [@leonidaz](https://github.com/leonidaz)! - Introduces #ripple namespace
10
+ for creating ripple reactive entities without imports, such as array, object,
11
+ map, set, date, url, urlSearchParams, mediaQuery. Adds track, untrack,
12
+ trackSplit, effect, context, server, style to the namespace. Deprecates #[] and
13
+ #{} in favor of #ripple[] and #ripple{}. Renames types and actual reactive
14
+ imports for TrackedX entities, such as TrackedArray, TrackedObject, etc. into
15
+ RippleArray, RippleObjec, etc.
16
+
17
+ ### Patch Changes
18
+
19
+ - [#786](https://github.com/Ripple-TS/ripple/pull/786)
20
+ [`61271cb`](https://github.com/Ripple-TS/ripple/commit/61271cb1c4777f2ab9093c6c89a5ad771ec98b7d)
21
+ Thanks [@anubra266](https://github.com/anubra266)! - fix: preserve generic type
22
+ arguments in interface extends clauses for `compile_to_volar_mappings`
23
+
24
+ - [#772](https://github.com/Ripple-TS/ripple/pull/772)
25
+ [`21dd402`](https://github.com/Ripple-TS/ripple/commit/21dd4029d7e027a0706cb133b09530a722feb73d)
26
+ Thanks [@anubra266](https://github.com/anubra266)! - Fix ref handling for
27
+ dynamic elements with reactive spread props to avoid read-only/proxy symbol
28
+ errors and prevent unnecessary ref teardown/recreation.
29
+
30
+ - [#774](https://github.com/Ripple-TS/ripple/pull/774)
31
+ [`c2dbefe`](https://github.com/Ripple-TS/ripple/commit/c2dbefe5645c0c4f6e0ff4dc00d9c4de81616667)
32
+ Thanks [@copilot-swe-agent](https://github.com/apps/copilot-swe-agent)! - Fixes
33
+ language server type support for nested component call inside a parent
34
+ components that become props and should not be marked as unused by typescript
35
+ - Updated dependencies
36
+ [[`61271cb`](https://github.com/Ripple-TS/ripple/commit/61271cb1c4777f2ab9093c6c89a5ad771ec98b7d),
37
+ [`21dd402`](https://github.com/Ripple-TS/ripple/commit/21dd4029d7e027a0706cb133b09530a722feb73d),
38
+ [`c2dbefe`](https://github.com/Ripple-TS/ripple/commit/c2dbefe5645c0c4f6e0ff4dc00d9c4de81616667),
39
+ [`74a10cc`](https://github.com/Ripple-TS/ripple/commit/74a10cc5701962cd7c72b144d59b35ecb76263a3)]:
40
+ - ripple@0.3.0
41
+
3
42
  ## 0.2.216
4
43
 
5
44
  ### Patch Changes
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ripple is an elegant TypeScript UI framework",
4
4
  "license": "MIT",
5
5
  "author": "Dominic Gannaway",
6
- "version": "0.2.216",
6
+ "version": "0.3.0",
7
7
  "type": "module",
8
8
  "module": "src/runtime/index-client.js",
9
9
  "main": "src/runtime/index-client.js",
@@ -38,6 +38,15 @@
38
38
  "require": "./src/compiler/index.js",
39
39
  "default": "./src/compiler/index.js"
40
40
  },
41
+ "./types/estree": {
42
+ "types": "./src/compiler/types/estree.d.ts"
43
+ },
44
+ "./types/estree-jsx": {
45
+ "types": "./src/compiler/types/estree-jsx.d.ts"
46
+ },
47
+ "./types/acorn": {
48
+ "types": "./src/compiler/types/acorn.d.ts"
49
+ },
41
50
  "./compiler/internal/import": {
42
51
  "types": "./src/compiler/types/import.d.ts"
43
52
  },
@@ -78,24 +87,24 @@
78
87
  "@sveltejs/acorn-typescript": "^1.0.9",
79
88
  "acorn": "^8.15.0",
80
89
  "clsx": "^2.1.1",
81
- "devalue": "^5.3.2",
90
+ "devalue": "^5.6.3",
82
91
  "esm-env": "^1.2.2",
83
92
  "esrap": "^2.1.0",
84
93
  "is-reference": "^3.0.3",
85
94
  "magic-string": "^0.30.18",
86
95
  "muggle-string": "^0.4.1",
87
- "zimmerframe": "^1.1.2"
96
+ "zimmerframe": "^1.1.2",
97
+ "@types/estree": "^1.0.8",
98
+ "@types/estree-jsx": "^1.0.5"
88
99
  },
89
100
  "devDependencies": {
90
- "@types/estree": "^1.0.8",
91
- "@types/estree-jsx": "^1.0.5",
92
101
  "@types/node": "^24.3.0",
93
102
  "@typescript-eslint/types": "^8.40.0",
94
- "typescript": "^5.9.2",
103
+ "typescript": "^5.9.3",
95
104
  "@volar/language-core": "~2.4.28",
96
105
  "vscode-languageserver-types": "^3.17.5"
97
106
  },
98
107
  "peerDependencies": {
99
- "ripple": "0.2.216"
108
+ "ripple": "0.3.0"
100
109
  }
101
110
  }
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @param {string} message
9
9
  * @param {string | null} filename
10
- * @param {AST.Node} node
10
+ * @param {AST.Node | AST.NodeWithLocation} node
11
11
  * @param {RippleCompileError[]} [errors]
12
12
  * @param {AST.CommentWithLocation[]} [comments]
13
13
  * @returns {void}
@@ -1,4 +1,6 @@
1
1
  export const IDENTIFIER_OBFUSCATION_PREFIX = '_$_';
2
+ export const RIPPLE_NAMESPACE_IDENTIFIER =
3
+ IDENTIFIER_OBFUSCATION_PREFIX + encode_utf16_char('#') + 'ripple';
2
4
  export const STYLE_IDENTIFIER = IDENTIFIER_OBFUSCATION_PREFIX + encode_utf16_char('#') + 'style';
3
5
  export const SERVER_IDENTIFIER = IDENTIFIER_OBFUSCATION_PREFIX + encode_utf16_char('#') + 'server';
4
6
  export const CSS_HASH_IDENTIFIER = IDENTIFIER_OBFUSCATION_PREFIX + 'hash';
@@ -58,7 +58,6 @@ export interface PluginActionOverrides {
58
58
  }
59
59
 
60
60
  export interface CustomMappingData extends PluginActionOverrides {
61
- generatedLengths: number[];
62
61
  embeddedId?: string; // e.g. css regions: 'style_0', 'style_1', etc.
63
62
  content?: string; // (e.g., css code)
64
63
  }
@@ -67,12 +66,9 @@ export interface MappingData extends VolarCodeInformation {
67
66
  customData: CustomMappingData;
68
67
  }
69
68
 
70
- export interface CodeMapping extends VolarMapping<MappingData> {
71
- data: MappingData;
72
- }
73
-
74
- export interface CodeMappingWithAll extends CodeMapping {
69
+ export interface CodeMapping extends Omit<VolarMapping<MappingData>, 'generatedLengths'> {
75
70
  generatedLengths: number[];
71
+ data: MappingData;
76
72
  }
77
73
 
78
74
  export interface VolarMappingsResult {