ripple 0.2.216 → 0.3.1

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 +52 -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 +27 -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,57 @@
1
1
  # ripple
2
2
 
3
+ ## 0.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#799](https://github.com/Ripple-TS/ripple/pull/799)
8
+ [`87c2078`](https://github.com/Ripple-TS/ripple/commit/87c20780f6f6f7339cf94b9a9d08e028533df0a2)
9
+ Thanks [@leonidaz](https://github.com/leonidaz)! - Fix imports for removed
10
+ functions
11
+
12
+ - Updated dependencies
13
+ [[`87c2078`](https://github.com/Ripple-TS/ripple/commit/87c20780f6f6f7339cf94b9a9d08e028533df0a2)]:
14
+ - ripple@0.3.1
15
+
16
+ ## 0.3.0
17
+
18
+ ### Minor Changes
19
+
20
+ - [#779](https://github.com/Ripple-TS/ripple/pull/779)
21
+ [`74a10cc`](https://github.com/Ripple-TS/ripple/commit/74a10cc5701962cd7c72b144d59b35ecb76263a3)
22
+ Thanks [@leonidaz](https://github.com/leonidaz)! - Introduces #ripple namespace
23
+ for creating ripple reactive entities without imports, such as array, object,
24
+ map, set, date, url, urlSearchParams, mediaQuery. Adds track, untrack,
25
+ trackSplit, effect, context, server, style to the namespace. Deprecates #[] and
26
+ #{} in favor of #ripple[] and #ripple{}. Renames types and actual reactive
27
+ imports for TrackedX entities, such as TrackedArray, TrackedObject, etc. into
28
+ RippleArray, RippleObjec, etc.
29
+
30
+ ### Patch Changes
31
+
32
+ - [#786](https://github.com/Ripple-TS/ripple/pull/786)
33
+ [`61271cb`](https://github.com/Ripple-TS/ripple/commit/61271cb1c4777f2ab9093c6c89a5ad771ec98b7d)
34
+ Thanks [@anubra266](https://github.com/anubra266)! - fix: preserve generic type
35
+ arguments in interface extends clauses for `compile_to_volar_mappings`
36
+
37
+ - [#772](https://github.com/Ripple-TS/ripple/pull/772)
38
+ [`21dd402`](https://github.com/Ripple-TS/ripple/commit/21dd4029d7e027a0706cb133b09530a722feb73d)
39
+ Thanks [@anubra266](https://github.com/anubra266)! - Fix ref handling for
40
+ dynamic elements with reactive spread props to avoid read-only/proxy symbol
41
+ errors and prevent unnecessary ref teardown/recreation.
42
+
43
+ - [#774](https://github.com/Ripple-TS/ripple/pull/774)
44
+ [`c2dbefe`](https://github.com/Ripple-TS/ripple/commit/c2dbefe5645c0c4f6e0ff4dc00d9c4de81616667)
45
+ Thanks [@copilot-swe-agent](https://github.com/apps/copilot-swe-agent)! - Fixes
46
+ language server type support for nested component call inside a parent
47
+ components that become props and should not be marked as unused by typescript
48
+ - Updated dependencies
49
+ [[`61271cb`](https://github.com/Ripple-TS/ripple/commit/61271cb1c4777f2ab9093c6c89a5ad771ec98b7d),
50
+ [`21dd402`](https://github.com/Ripple-TS/ripple/commit/21dd4029d7e027a0706cb133b09530a722feb73d),
51
+ [`c2dbefe`](https://github.com/Ripple-TS/ripple/commit/c2dbefe5645c0c4f6e0ff4dc00d9c4de81616667),
52
+ [`74a10cc`](https://github.com/Ripple-TS/ripple/commit/74a10cc5701962cd7c72b144d59b35ecb76263a3)]:
53
+ - ripple@0.3.0
54
+
3
55
  ## 0.2.216
4
56
 
5
57
  ### 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.1",
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.1"
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 {