@depup/svelte 5.53.3-depup.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 (386) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +41 -0
  3. package/action.d.ts +1 -0
  4. package/animate.d.ts +1 -0
  5. package/compiler/index.js +1 -0
  6. package/compiler/package.json +3 -0
  7. package/compiler.d.ts +1 -0
  8. package/easing.d.ts +1 -0
  9. package/elements.d.ts +2078 -0
  10. package/index.d.ts +1 -0
  11. package/legacy.d.ts +1 -0
  12. package/motion.d.ts +1 -0
  13. package/package.json +185 -0
  14. package/src/animate/index.js +78 -0
  15. package/src/attachments/index.js +113 -0
  16. package/src/compiler/errors.js +1719 -0
  17. package/src/compiler/index.js +198 -0
  18. package/src/compiler/legacy.js +637 -0
  19. package/src/compiler/migrate/index.js +1996 -0
  20. package/src/compiler/phases/1-parse/acorn.js +198 -0
  21. package/src/compiler/phases/1-parse/index.js +326 -0
  22. package/src/compiler/phases/1-parse/read/context.js +116 -0
  23. package/src/compiler/phases/1-parse/read/expression.js +93 -0
  24. package/src/compiler/phases/1-parse/read/options.js +263 -0
  25. package/src/compiler/phases/1-parse/read/script.js +97 -0
  26. package/src/compiler/phases/1-parse/read/style.js +637 -0
  27. package/src/compiler/phases/1-parse/remove_typescript_nodes.js +180 -0
  28. package/src/compiler/phases/1-parse/state/element.js +937 -0
  29. package/src/compiler/phases/1-parse/state/fragment.js +17 -0
  30. package/src/compiler/phases/1-parse/state/tag.js +751 -0
  31. package/src/compiler/phases/1-parse/state/text.js +23 -0
  32. package/src/compiler/phases/1-parse/utils/bracket.js +213 -0
  33. package/src/compiler/phases/1-parse/utils/create.js +16 -0
  34. package/src/compiler/phases/1-parse/utils/entities.js +2234 -0
  35. package/src/compiler/phases/1-parse/utils/fuzzymatch.js +281 -0
  36. package/src/compiler/phases/1-parse/utils/html.js +127 -0
  37. package/src/compiler/phases/2-analyze/css/css-analyze.js +331 -0
  38. package/src/compiler/phases/2-analyze/css/css-prune.js +1206 -0
  39. package/src/compiler/phases/2-analyze/css/css-warn.js +47 -0
  40. package/src/compiler/phases/2-analyze/css/utils.js +177 -0
  41. package/src/compiler/phases/2-analyze/index.js +1300 -0
  42. package/src/compiler/phases/2-analyze/utils/check_graph_for_cycles.js +47 -0
  43. package/src/compiler/phases/2-analyze/visitors/AnimateDirective.js +15 -0
  44. package/src/compiler/phases/2-analyze/visitors/ArrowFunctionExpression.js +11 -0
  45. package/src/compiler/phases/2-analyze/visitors/AssignmentExpression.js +31 -0
  46. package/src/compiler/phases/2-analyze/visitors/AttachTag.js +17 -0
  47. package/src/compiler/phases/2-analyze/visitors/Attribute.js +66 -0
  48. package/src/compiler/phases/2-analyze/visitors/AwaitBlock.js +48 -0
  49. package/src/compiler/phases/2-analyze/visitors/AwaitExpression.js +150 -0
  50. package/src/compiler/phases/2-analyze/visitors/BindDirective.js +280 -0
  51. package/src/compiler/phases/2-analyze/visitors/CallExpression.js +339 -0
  52. package/src/compiler/phases/2-analyze/visitors/ClassBody.js +156 -0
  53. package/src/compiler/phases/2-analyze/visitors/ClassDeclaration.js +25 -0
  54. package/src/compiler/phases/2-analyze/visitors/ClassDirective.js +13 -0
  55. package/src/compiler/phases/2-analyze/visitors/Component.js +26 -0
  56. package/src/compiler/phases/2-analyze/visitors/ConstTag.js +45 -0
  57. package/src/compiler/phases/2-analyze/visitors/DebugTag.js +15 -0
  58. package/src/compiler/phases/2-analyze/visitors/EachBlock.js +97 -0
  59. package/src/compiler/phases/2-analyze/visitors/ExportDefaultDeclaration.js +20 -0
  60. package/src/compiler/phases/2-analyze/visitors/ExportNamedDeclaration.js +70 -0
  61. package/src/compiler/phases/2-analyze/visitors/ExportSpecifier.js +30 -0
  62. package/src/compiler/phases/2-analyze/visitors/ExpressionStatement.js +38 -0
  63. package/src/compiler/phases/2-analyze/visitors/ExpressionTag.js +26 -0
  64. package/src/compiler/phases/2-analyze/visitors/Fragment.js +10 -0
  65. package/src/compiler/phases/2-analyze/visitors/FunctionDeclaration.js +16 -0
  66. package/src/compiler/phases/2-analyze/visitors/FunctionExpression.js +11 -0
  67. package/src/compiler/phases/2-analyze/visitors/HtmlTag.js +19 -0
  68. package/src/compiler/phases/2-analyze/visitors/Identifier.js +194 -0
  69. package/src/compiler/phases/2-analyze/visitors/IfBlock.js +46 -0
  70. package/src/compiler/phases/2-analyze/visitors/ImportDeclaration.js +31 -0
  71. package/src/compiler/phases/2-analyze/visitors/KeyBlock.js +21 -0
  72. package/src/compiler/phases/2-analyze/visitors/LabeledStatement.js +95 -0
  73. package/src/compiler/phases/2-analyze/visitors/LetDirective.js +24 -0
  74. package/src/compiler/phases/2-analyze/visitors/Literal.js +14 -0
  75. package/src/compiler/phases/2-analyze/visitors/MemberExpression.js +28 -0
  76. package/src/compiler/phases/2-analyze/visitors/NewExpression.js +17 -0
  77. package/src/compiler/phases/2-analyze/visitors/OnDirective.js +28 -0
  78. package/src/compiler/phases/2-analyze/visitors/PropertyDefinition.js +21 -0
  79. package/src/compiler/phases/2-analyze/visitors/RegularElement.js +240 -0
  80. package/src/compiler/phases/2-analyze/visitors/RenderTag.js +68 -0
  81. package/src/compiler/phases/2-analyze/visitors/SlotElement.js +42 -0
  82. package/src/compiler/phases/2-analyze/visitors/SnippetBlock.js +113 -0
  83. package/src/compiler/phases/2-analyze/visitors/SpreadAttribute.js +13 -0
  84. package/src/compiler/phases/2-analyze/visitors/SpreadElement.js +16 -0
  85. package/src/compiler/phases/2-analyze/visitors/StyleDirective.js +39 -0
  86. package/src/compiler/phases/2-analyze/visitors/SvelteBody.js +22 -0
  87. package/src/compiler/phases/2-analyze/visitors/SvelteBoundary.js +30 -0
  88. package/src/compiler/phases/2-analyze/visitors/SvelteComponent.js +18 -0
  89. package/src/compiler/phases/2-analyze/visitors/SvelteDocument.js +24 -0
  90. package/src/compiler/phases/2-analyze/visitors/SvelteElement.js +78 -0
  91. package/src/compiler/phases/2-analyze/visitors/SvelteFragment.js +27 -0
  92. package/src/compiler/phases/2-analyze/visitors/SvelteHead.js +18 -0
  93. package/src/compiler/phases/2-analyze/visitors/SvelteSelf.js +36 -0
  94. package/src/compiler/phases/2-analyze/visitors/SvelteWindow.js +24 -0
  95. package/src/compiler/phases/2-analyze/visitors/TaggedTemplateExpression.js +16 -0
  96. package/src/compiler/phases/2-analyze/visitors/TemplateElement.js +12 -0
  97. package/src/compiler/phases/2-analyze/visitors/Text.js +52 -0
  98. package/src/compiler/phases/2-analyze/visitors/TitleElement.js +21 -0
  99. package/src/compiler/phases/2-analyze/visitors/TransitionDirective.js +19 -0
  100. package/src/compiler/phases/2-analyze/visitors/UpdateExpression.js +29 -0
  101. package/src/compiler/phases/2-analyze/visitors/UseDirective.js +18 -0
  102. package/src/compiler/phases/2-analyze/visitors/VariableDeclarator.js +160 -0
  103. package/src/compiler/phases/2-analyze/visitors/shared/a11y/constants.js +334 -0
  104. package/src/compiler/phases/2-analyze/visitors/shared/a11y/index.js +981 -0
  105. package/src/compiler/phases/2-analyze/visitors/shared/attribute.js +125 -0
  106. package/src/compiler/phases/2-analyze/visitors/shared/component.js +177 -0
  107. package/src/compiler/phases/2-analyze/visitors/shared/element.js +160 -0
  108. package/src/compiler/phases/2-analyze/visitors/shared/fragment.js +15 -0
  109. package/src/compiler/phases/2-analyze/visitors/shared/function.js +24 -0
  110. package/src/compiler/phases/2-analyze/visitors/shared/snippets.js +17 -0
  111. package/src/compiler/phases/2-analyze/visitors/shared/special-element.js +16 -0
  112. package/src/compiler/phases/2-analyze/visitors/shared/utils.js +301 -0
  113. package/src/compiler/phases/3-transform/client/transform-client.js +719 -0
  114. package/src/compiler/phases/3-transform/client/transform-template/fix-attribute-casing.js +18 -0
  115. package/src/compiler/phases/3-transform/client/transform-template/index.js +67 -0
  116. package/src/compiler/phases/3-transform/client/transform-template/template.js +164 -0
  117. package/src/compiler/phases/3-transform/client/utils.js +181 -0
  118. package/src/compiler/phases/3-transform/client/visitors/AnimateDirective.js +38 -0
  119. package/src/compiler/phases/3-transform/client/visitors/ArrowFunctionExpression.js +11 -0
  120. package/src/compiler/phases/3-transform/client/visitors/AssignmentExpression.js +247 -0
  121. package/src/compiler/phases/3-transform/client/visitors/AttachTag.js +26 -0
  122. package/src/compiler/phases/3-transform/client/visitors/Attribute.js +14 -0
  123. package/src/compiler/phases/3-transform/client/visitors/AwaitBlock.js +124 -0
  124. package/src/compiler/phases/3-transform/client/visitors/AwaitExpression.js +25 -0
  125. package/src/compiler/phases/3-transform/client/visitors/BinaryExpression.js +34 -0
  126. package/src/compiler/phases/3-transform/client/visitors/BindDirective.js +290 -0
  127. package/src/compiler/phases/3-transform/client/visitors/BlockStatement.js +32 -0
  128. package/src/compiler/phases/3-transform/client/visitors/BreakStatement.js +20 -0
  129. package/src/compiler/phases/3-transform/client/visitors/CallExpression.js +136 -0
  130. package/src/compiler/phases/3-transform/client/visitors/ClassBody.js +111 -0
  131. package/src/compiler/phases/3-transform/client/visitors/Comment.js +11 -0
  132. package/src/compiler/phases/3-transform/client/visitors/Component.js +12 -0
  133. package/src/compiler/phases/3-transform/client/visitors/ConstTag.js +134 -0
  134. package/src/compiler/phases/3-transform/client/visitors/DebugTag.js +28 -0
  135. package/src/compiler/phases/3-transform/client/visitors/EachBlock.js +362 -0
  136. package/src/compiler/phases/3-transform/client/visitors/ExportNamedDeclaration.js +19 -0
  137. package/src/compiler/phases/3-transform/client/visitors/ExpressionStatement.js +20 -0
  138. package/src/compiler/phases/3-transform/client/visitors/ForOfStatement.js +25 -0
  139. package/src/compiler/phases/3-transform/client/visitors/Fragment.js +186 -0
  140. package/src/compiler/phases/3-transform/client/visitors/FunctionDeclaration.js +12 -0
  141. package/src/compiler/phases/3-transform/client/visitors/FunctionExpression.js +11 -0
  142. package/src/compiler/phases/3-transform/client/visitors/HtmlTag.js +53 -0
  143. package/src/compiler/phases/3-transform/client/visitors/Identifier.js +45 -0
  144. package/src/compiler/phases/3-transform/client/visitors/IfBlock.js +131 -0
  145. package/src/compiler/phases/3-transform/client/visitors/KeyBlock.js +45 -0
  146. package/src/compiler/phases/3-transform/client/visitors/LabeledStatement.js +64 -0
  147. package/src/compiler/phases/3-transform/client/visitors/LetDirective.js +55 -0
  148. package/src/compiler/phases/3-transform/client/visitors/MemberExpression.js +23 -0
  149. package/src/compiler/phases/3-transform/client/visitors/OnDirective.js +38 -0
  150. package/src/compiler/phases/3-transform/client/visitors/Program.js +153 -0
  151. package/src/compiler/phases/3-transform/client/visitors/RegularElement.js +725 -0
  152. package/src/compiler/phases/3-transform/client/visitors/RenderTag.js +95 -0
  153. package/src/compiler/phases/3-transform/client/visitors/SlotElement.js +94 -0
  154. package/src/compiler/phases/3-transform/client/visitors/SnippetBlock.js +94 -0
  155. package/src/compiler/phases/3-transform/client/visitors/SpreadAttribute.js +10 -0
  156. package/src/compiler/phases/3-transform/client/visitors/SvelteBody.js +11 -0
  157. package/src/compiler/phases/3-transform/client/visitors/SvelteBoundary.js +126 -0
  158. package/src/compiler/phases/3-transform/client/visitors/SvelteComponent.js +13 -0
  159. package/src/compiler/phases/3-transform/client/visitors/SvelteDocument.js +11 -0
  160. package/src/compiler/phases/3-transform/client/visitors/SvelteElement.js +161 -0
  161. package/src/compiler/phases/3-transform/client/visitors/SvelteFragment.js +17 -0
  162. package/src/compiler/phases/3-transform/client/visitors/SvelteHead.js +23 -0
  163. package/src/compiler/phases/3-transform/client/visitors/SvelteSelf.js +13 -0
  164. package/src/compiler/phases/3-transform/client/visitors/SvelteWindow.js +11 -0
  165. package/src/compiler/phases/3-transform/client/visitors/TitleElement.js +48 -0
  166. package/src/compiler/phases/3-transform/client/visitors/TransitionDirective.js +41 -0
  167. package/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js +55 -0
  168. package/src/compiler/phases/3-transform/client/visitors/UseDirective.js +49 -0
  169. package/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js +422 -0
  170. package/src/compiler/phases/3-transform/client/visitors/shared/component.js +536 -0
  171. package/src/compiler/phases/3-transform/client/visitors/shared/declarations.js +53 -0
  172. package/src/compiler/phases/3-transform/client/visitors/shared/element.js +263 -0
  173. package/src/compiler/phases/3-transform/client/visitors/shared/events.js +180 -0
  174. package/src/compiler/phases/3-transform/client/visitors/shared/fragment.js +185 -0
  175. package/src/compiler/phases/3-transform/client/visitors/shared/function.js +17 -0
  176. package/src/compiler/phases/3-transform/client/visitors/shared/special_element.js +22 -0
  177. package/src/compiler/phases/3-transform/client/visitors/shared/utils.js +513 -0
  178. package/src/compiler/phases/3-transform/css/index.js +479 -0
  179. package/src/compiler/phases/3-transform/index.js +118 -0
  180. package/src/compiler/phases/3-transform/server/transform-server.js +428 -0
  181. package/src/compiler/phases/3-transform/server/visitors/AssignmentExpression.js +124 -0
  182. package/src/compiler/phases/3-transform/server/visitors/AwaitBlock.js +36 -0
  183. package/src/compiler/phases/3-transform/server/visitors/AwaitExpression.js +40 -0
  184. package/src/compiler/phases/3-transform/server/visitors/CallExpression.js +71 -0
  185. package/src/compiler/phases/3-transform/server/visitors/ClassBody.js +81 -0
  186. package/src/compiler/phases/3-transform/server/visitors/Component.js +13 -0
  187. package/src/compiler/phases/3-transform/server/visitors/ConstTag.js +49 -0
  188. package/src/compiler/phases/3-transform/server/visitors/DebugTag.js +24 -0
  189. package/src/compiler/phases/3-transform/server/visitors/EachBlock.js +76 -0
  190. package/src/compiler/phases/3-transform/server/visitors/ExpressionStatement.js +23 -0
  191. package/src/compiler/phases/3-transform/server/visitors/Fragment.js +53 -0
  192. package/src/compiler/phases/3-transform/server/visitors/HtmlTag.js +25 -0
  193. package/src/compiler/phases/3-transform/server/visitors/Identifier.js +24 -0
  194. package/src/compiler/phases/3-transform/server/visitors/IfBlock.js +48 -0
  195. package/src/compiler/phases/3-transform/server/visitors/KeyBlock.js +22 -0
  196. package/src/compiler/phases/3-transform/server/visitors/LabeledStatement.js +24 -0
  197. package/src/compiler/phases/3-transform/server/visitors/MemberExpression.js +19 -0
  198. package/src/compiler/phases/3-transform/server/visitors/Program.js +25 -0
  199. package/src/compiler/phases/3-transform/server/visitors/PropertyDefinition.js +37 -0
  200. package/src/compiler/phases/3-transform/server/visitors/RegularElement.js +216 -0
  201. package/src/compiler/phases/3-transform/server/visitors/RenderTag.js +45 -0
  202. package/src/compiler/phases/3-transform/server/visitors/SlotElement.js +68 -0
  203. package/src/compiler/phases/3-transform/server/visitors/SnippetBlock.js +29 -0
  204. package/src/compiler/phases/3-transform/server/visitors/SpreadAttribute.js +10 -0
  205. package/src/compiler/phases/3-transform/server/visitors/SvelteBoundary.js +139 -0
  206. package/src/compiler/phases/3-transform/server/visitors/SvelteComponent.js +12 -0
  207. package/src/compiler/phases/3-transform/server/visitors/SvelteElement.js +89 -0
  208. package/src/compiler/phases/3-transform/server/visitors/SvelteFragment.js +11 -0
  209. package/src/compiler/phases/3-transform/server/visitors/SvelteHead.js +25 -0
  210. package/src/compiler/phases/3-transform/server/visitors/SvelteSelf.js +12 -0
  211. package/src/compiler/phases/3-transform/server/visitors/TitleElement.js +21 -0
  212. package/src/compiler/phases/3-transform/server/visitors/UpdateExpression.js +35 -0
  213. package/src/compiler/phases/3-transform/server/visitors/VariableDeclaration.js +247 -0
  214. package/src/compiler/phases/3-transform/server/visitors/shared/component.js +359 -0
  215. package/src/compiler/phases/3-transform/server/visitors/shared/element.js +557 -0
  216. package/src/compiler/phases/3-transform/server/visitors/shared/utils.js +408 -0
  217. package/src/compiler/phases/3-transform/shared/assignments.js +92 -0
  218. package/src/compiler/phases/3-transform/shared/transform-async.js +114 -0
  219. package/src/compiler/phases/3-transform/utils.js +451 -0
  220. package/src/compiler/phases/bindings.js +227 -0
  221. package/src/compiler/phases/css.js +14 -0
  222. package/src/compiler/phases/nodes.js +258 -0
  223. package/src/compiler/phases/patterns.js +27 -0
  224. package/src/compiler/phases/scope.js +1432 -0
  225. package/src/compiler/preprocess/decode_sourcemap.js +96 -0
  226. package/src/compiler/preprocess/index.js +368 -0
  227. package/src/compiler/preprocess/replace_in_code.js +72 -0
  228. package/src/compiler/print/index.js +911 -0
  229. package/src/compiler/state.js +144 -0
  230. package/src/compiler/utils/assert.js +9 -0
  231. package/src/compiler/utils/ast.js +639 -0
  232. package/src/compiler/utils/builders.js +698 -0
  233. package/src/compiler/utils/compile_diagnostic.js +107 -0
  234. package/src/compiler/utils/extract_svelte_ignore.js +104 -0
  235. package/src/compiler/utils/mapped_code.js +454 -0
  236. package/src/compiler/utils/push_array.js +13 -0
  237. package/src/compiler/utils/sanitize_template_string.js +7 -0
  238. package/src/compiler/utils/slot.js +20 -0
  239. package/src/compiler/utils/string.js +9 -0
  240. package/src/compiler/validate-options.js +324 -0
  241. package/src/compiler/warnings.js +845 -0
  242. package/src/constants.js +66 -0
  243. package/src/easing/index.js +286 -0
  244. package/src/escaping.js +26 -0
  245. package/src/events/index.js +1 -0
  246. package/src/html-tree-validation.js +238 -0
  247. package/src/index-client.js +255 -0
  248. package/src/index-server.js +56 -0
  249. package/src/internal/client/constants.js +77 -0
  250. package/src/internal/client/context.js +258 -0
  251. package/src/internal/client/dev/assign.js +79 -0
  252. package/src/internal/client/dev/console-log.js +37 -0
  253. package/src/internal/client/dev/css.js +31 -0
  254. package/src/internal/client/dev/debug.js +500 -0
  255. package/src/internal/client/dev/elements.js +63 -0
  256. package/src/internal/client/dev/equality.js +101 -0
  257. package/src/internal/client/dev/hmr.js +89 -0
  258. package/src/internal/client/dev/inspect.js +72 -0
  259. package/src/internal/client/dev/legacy.js +25 -0
  260. package/src/internal/client/dev/ownership.js +81 -0
  261. package/src/internal/client/dev/tracing.js +162 -0
  262. package/src/internal/client/dev/validation.js +16 -0
  263. package/src/internal/client/dom/blocks/async.js +71 -0
  264. package/src/internal/client/dom/blocks/await.js +142 -0
  265. package/src/internal/client/dom/blocks/boundary.js +534 -0
  266. package/src/internal/client/dom/blocks/branches.js +227 -0
  267. package/src/internal/client/dom/blocks/css-props.js +28 -0
  268. package/src/internal/client/dom/blocks/each.js +723 -0
  269. package/src/internal/client/dom/blocks/html.js +128 -0
  270. package/src/internal/client/dom/blocks/if.js +82 -0
  271. package/src/internal/client/dom/blocks/key.js +40 -0
  272. package/src/internal/client/dom/blocks/slot.js +44 -0
  273. package/src/internal/client/dom/blocks/snippet.js +103 -0
  274. package/src/internal/client/dom/blocks/svelte-component.js +61 -0
  275. package/src/internal/client/dom/blocks/svelte-element.js +152 -0
  276. package/src/internal/client/dom/blocks/svelte-head.js +61 -0
  277. package/src/internal/client/dom/css.js +33 -0
  278. package/src/internal/client/dom/elements/actions.js +43 -0
  279. package/src/internal/client/dom/elements/attachments.js +33 -0
  280. package/src/internal/client/dom/elements/attributes.js +657 -0
  281. package/src/internal/client/dom/elements/bindings/document.js +17 -0
  282. package/src/internal/client/dom/elements/bindings/input.js +312 -0
  283. package/src/internal/client/dom/elements/bindings/media.js +233 -0
  284. package/src/internal/client/dom/elements/bindings/navigator.js +11 -0
  285. package/src/internal/client/dom/elements/bindings/props.js +22 -0
  286. package/src/internal/client/dom/elements/bindings/select.js +159 -0
  287. package/src/internal/client/dom/elements/bindings/shared.js +76 -0
  288. package/src/internal/client/dom/elements/bindings/size.js +107 -0
  289. package/src/internal/client/dom/elements/bindings/this.js +61 -0
  290. package/src/internal/client/dom/elements/bindings/universal.js +75 -0
  291. package/src/internal/client/dom/elements/bindings/window.js +66 -0
  292. package/src/internal/client/dom/elements/class.js +51 -0
  293. package/src/internal/client/dom/elements/custom-element.js +344 -0
  294. package/src/internal/client/dom/elements/customizable-select.js +99 -0
  295. package/src/internal/client/dom/elements/events.js +355 -0
  296. package/src/internal/client/dom/elements/misc.js +58 -0
  297. package/src/internal/client/dom/elements/style.js +57 -0
  298. package/src/internal/client/dom/elements/transitions.js +471 -0
  299. package/src/internal/client/dom/hydration.js +125 -0
  300. package/src/internal/client/dom/legacy/event-modifiers.js +127 -0
  301. package/src/internal/client/dom/legacy/lifecycle.js +82 -0
  302. package/src/internal/client/dom/legacy/misc.js +68 -0
  303. package/src/internal/client/dom/operations.js +293 -0
  304. package/src/internal/client/dom/reconciler.js +25 -0
  305. package/src/internal/client/dom/task.js +42 -0
  306. package/src/internal/client/dom/template.js +401 -0
  307. package/src/internal/client/error-handling.js +118 -0
  308. package/src/internal/client/errors.js +510 -0
  309. package/src/internal/client/hydratable.js +33 -0
  310. package/src/internal/client/index.js +183 -0
  311. package/src/internal/client/legacy.js +46 -0
  312. package/src/internal/client/loop.js +48 -0
  313. package/src/internal/client/proxy.js +432 -0
  314. package/src/internal/client/reactivity/async.js +306 -0
  315. package/src/internal/client/reactivity/batch.js +1057 -0
  316. package/src/internal/client/reactivity/deriveds.js +426 -0
  317. package/src/internal/client/reactivity/effects.js +718 -0
  318. package/src/internal/client/reactivity/equality.js +31 -0
  319. package/src/internal/client/reactivity/props.js +430 -0
  320. package/src/internal/client/reactivity/sources.js +370 -0
  321. package/src/internal/client/reactivity/status.js +25 -0
  322. package/src/internal/client/reactivity/store.js +203 -0
  323. package/src/internal/client/reactivity/utils.js +40 -0
  324. package/src/internal/client/render.js +335 -0
  325. package/src/internal/client/runtime.js +827 -0
  326. package/src/internal/client/timing.js +16 -0
  327. package/src/internal/client/validate.js +54 -0
  328. package/src/internal/client/warnings.js +271 -0
  329. package/src/internal/disclose-version.js +6 -0
  330. package/src/internal/flags/async.js +3 -0
  331. package/src/internal/flags/index.js +23 -0
  332. package/src/internal/flags/legacy.js +3 -0
  333. package/src/internal/flags/tracing.js +3 -0
  334. package/src/internal/index.js +5 -0
  335. package/src/internal/server/abort-signal.js +13 -0
  336. package/src/internal/server/blocks/html.js +11 -0
  337. package/src/internal/server/blocks/snippet.js +24 -0
  338. package/src/internal/server/context.js +132 -0
  339. package/src/internal/server/crypto.js +45 -0
  340. package/src/internal/server/dev.js +115 -0
  341. package/src/internal/server/errors.js +131 -0
  342. package/src/internal/server/hydratable.js +142 -0
  343. package/src/internal/server/hydration.js +6 -0
  344. package/src/internal/server/index.js +544 -0
  345. package/src/internal/server/render-context.js +86 -0
  346. package/src/internal/server/renderer.js +923 -0
  347. package/src/internal/server/warnings.js +29 -0
  348. package/src/internal/shared/attributes.js +225 -0
  349. package/src/internal/shared/clone.js +137 -0
  350. package/src/internal/shared/dev.js +65 -0
  351. package/src/internal/shared/errors.js +134 -0
  352. package/src/internal/shared/utils.js +144 -0
  353. package/src/internal/shared/validate.js +47 -0
  354. package/src/internal/shared/warnings.js +40 -0
  355. package/src/legacy/legacy-client.js +281 -0
  356. package/src/legacy/legacy-server.js +112 -0
  357. package/src/motion/index.js +32 -0
  358. package/src/motion/spring.js +369 -0
  359. package/src/motion/tweened.js +306 -0
  360. package/src/motion/utils.js +7 -0
  361. package/src/reactivity/create-subscriber.js +95 -0
  362. package/src/reactivity/date.js +118 -0
  363. package/src/reactivity/index-client.js +7 -0
  364. package/src/reactivity/index-server.js +23 -0
  365. package/src/reactivity/map.js +273 -0
  366. package/src/reactivity/media-query.js +55 -0
  367. package/src/reactivity/reactive-value.js +24 -0
  368. package/src/reactivity/set.js +213 -0
  369. package/src/reactivity/url-search-params.js +174 -0
  370. package/src/reactivity/url.js +205 -0
  371. package/src/reactivity/window/index.js +161 -0
  372. package/src/server/index.js +1 -0
  373. package/src/store/index-client.js +169 -0
  374. package/src/store/index-server.js +101 -0
  375. package/src/store/shared/index.js +209 -0
  376. package/src/store/utils.js +36 -0
  377. package/src/transition/index.js +300 -0
  378. package/src/utils.js +504 -0
  379. package/src/version.js +8 -0
  380. package/store.d.ts +1 -0
  381. package/svelte-html.d.ts +245 -0
  382. package/transition.d.ts +1 -0
  383. package/types/compiler/interfaces.d.ts +1 -0
  384. package/types/compiler/preprocess.d.ts +1 -0
  385. package/types/index.d.ts +3744 -0
  386. package/types/index.d.ts.map +280 -0
@@ -0,0 +1,31 @@
1
+ /** @import { Equals } from '#client' */
2
+
3
+ /** @type {Equals} */
4
+ export function equals(value) {
5
+ return value === this.v;
6
+ }
7
+
8
+ /**
9
+ * @param {unknown} a
10
+ * @param {unknown} b
11
+ * @returns {boolean}
12
+ */
13
+ export function safe_not_equal(a, b) {
14
+ return a != a
15
+ ? b == b
16
+ : a !== b || (a !== null && typeof a === 'object') || typeof a === 'function';
17
+ }
18
+
19
+ /**
20
+ * @param {unknown} a
21
+ * @param {unknown} b
22
+ * @returns {boolean}
23
+ */
24
+ export function not_equal(a, b) {
25
+ return a !== b;
26
+ }
27
+
28
+ /** @type {Equals} */
29
+ export function safe_equals(value) {
30
+ return !safe_not_equal(value, this.v);
31
+ }
@@ -0,0 +1,430 @@
1
+ /** @import { Effect, Source } from './types.js' */
2
+ import { DEV } from 'esm-env';
3
+ import {
4
+ PROPS_IS_BINDABLE,
5
+ PROPS_IS_IMMUTABLE,
6
+ PROPS_IS_LAZY_INITIAL,
7
+ PROPS_IS_RUNES,
8
+ PROPS_IS_UPDATED
9
+ } from '../../../constants.js';
10
+ import { get_descriptor, is_function } from '../../shared/utils.js';
11
+ import { set, source, update } from './sources.js';
12
+ import { derived, derived_safe_equal } from './deriveds.js';
13
+ import {
14
+ active_effect,
15
+ get,
16
+ is_destroying_effect,
17
+ set_active_effect,
18
+ untrack
19
+ } from '../runtime.js';
20
+ import * as e from '../errors.js';
21
+ import { DESTROYED, LEGACY_PROPS, STATE_SYMBOL } from '#client/constants';
22
+ import { proxy } from '../proxy.js';
23
+ import { capture_store_binding } from './store.js';
24
+ import { legacy_mode_flag } from '../../flags/index.js';
25
+
26
+ /**
27
+ * @param {((value?: number) => number)} fn
28
+ * @param {1 | -1} [d]
29
+ * @returns {number}
30
+ */
31
+ export function update_prop(fn, d = 1) {
32
+ const value = fn();
33
+ fn(value + d);
34
+ return value;
35
+ }
36
+
37
+ /**
38
+ * @param {((value?: number) => number)} fn
39
+ * @param {1 | -1} [d]
40
+ * @returns {number}
41
+ */
42
+ export function update_pre_prop(fn, d = 1) {
43
+ const value = fn() + d;
44
+ fn(value);
45
+ return value;
46
+ }
47
+
48
+ /**
49
+ * The proxy handler for rest props (i.e. `const { x, ...rest } = $props()`).
50
+ * Is passed the full `$$props` object and excludes the named props.
51
+ * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, name?: string }>}}
52
+ */
53
+ const rest_props_handler = {
54
+ get(target, key) {
55
+ if (target.exclude.includes(key)) return;
56
+ return target.props[key];
57
+ },
58
+ set(target, key) {
59
+ if (DEV) {
60
+ // TODO should this happen in prod too?
61
+ e.props_rest_readonly(`${target.name}.${String(key)}`);
62
+ }
63
+
64
+ return false;
65
+ },
66
+ getOwnPropertyDescriptor(target, key) {
67
+ if (target.exclude.includes(key)) return;
68
+ if (key in target.props) {
69
+ return {
70
+ enumerable: true,
71
+ configurable: true,
72
+ value: target.props[key]
73
+ };
74
+ }
75
+ },
76
+ has(target, key) {
77
+ if (target.exclude.includes(key)) return false;
78
+ return key in target.props;
79
+ },
80
+ ownKeys(target) {
81
+ return Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));
82
+ }
83
+ };
84
+
85
+ /**
86
+ * @param {Record<string, unknown>} props
87
+ * @param {string[]} exclude
88
+ * @param {string} [name]
89
+ * @returns {Record<string, unknown>}
90
+ */
91
+ /*#__NO_SIDE_EFFECTS__*/
92
+ export function rest_props(props, exclude, name) {
93
+ return new Proxy(
94
+ DEV ? { props, exclude, name, other: {}, to_proxy: [] } : { props, exclude },
95
+ rest_props_handler
96
+ );
97
+ }
98
+
99
+ /**
100
+ * The proxy handler for legacy $$restProps and $$props
101
+ * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, special: Record<string | symbol, (v?: unknown) => unknown>, version: Source<number>, parent_effect: Effect }>}}
102
+ */
103
+ const legacy_rest_props_handler = {
104
+ get(target, key) {
105
+ if (target.exclude.includes(key)) return;
106
+ get(target.version);
107
+ return key in target.special ? target.special[key]() : target.props[key];
108
+ },
109
+ set(target, key, value) {
110
+ if (!(key in target.special)) {
111
+ var previous_effect = active_effect;
112
+
113
+ try {
114
+ set_active_effect(target.parent_effect);
115
+
116
+ // Handle props that can temporarily get out of sync with the parent
117
+ /** @type {Record<string, (v?: unknown) => unknown>} */
118
+ target.special[key] = prop(
119
+ {
120
+ get [key]() {
121
+ return target.props[key];
122
+ }
123
+ },
124
+ /** @type {string} */ (key),
125
+ PROPS_IS_UPDATED
126
+ );
127
+ } finally {
128
+ set_active_effect(previous_effect);
129
+ }
130
+ }
131
+
132
+ target.special[key](value);
133
+ update(target.version); // $$props is coarse-grained: when $$props.x is updated, usages of $$props.y etc are also rerun
134
+ return true;
135
+ },
136
+ getOwnPropertyDescriptor(target, key) {
137
+ if (target.exclude.includes(key)) return;
138
+ if (key in target.props) {
139
+ return {
140
+ enumerable: true,
141
+ configurable: true,
142
+ value: target.props[key]
143
+ };
144
+ }
145
+ },
146
+ deleteProperty(target, key) {
147
+ // Svelte 4 allowed for deletions on $$restProps
148
+ if (target.exclude.includes(key)) return true;
149
+ target.exclude.push(key);
150
+ update(target.version);
151
+ return true;
152
+ },
153
+ has(target, key) {
154
+ if (target.exclude.includes(key)) return false;
155
+ return key in target.props;
156
+ },
157
+ ownKeys(target) {
158
+ return Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));
159
+ }
160
+ };
161
+
162
+ /**
163
+ * @param {Record<string, unknown>} props
164
+ * @param {string[]} exclude
165
+ * @returns {Record<string, unknown>}
166
+ */
167
+ export function legacy_rest_props(props, exclude) {
168
+ return new Proxy(
169
+ {
170
+ props,
171
+ exclude,
172
+ special: {},
173
+ version: source(0),
174
+ // TODO this is only necessary because we need to track component
175
+ // destruction inside `prop`, because of `bind:this`, but it
176
+ // seems likely that we can simplify `bind:this` instead
177
+ parent_effect: /** @type {Effect} */ (active_effect)
178
+ },
179
+ legacy_rest_props_handler
180
+ );
181
+ }
182
+
183
+ /**
184
+ * The proxy handler for spread props. Handles the incoming array of props
185
+ * that looks like `() => { dynamic: props }, { static: prop }, ..` and wraps
186
+ * them so that the whole thing is passed to the component as the `$$props` argument.
187
+ * @type {ProxyHandler<{ props: Array<Record<string | symbol, unknown> | (() => Record<string | symbol, unknown>)> }>}}
188
+ */
189
+ const spread_props_handler = {
190
+ get(target, key) {
191
+ let i = target.props.length;
192
+ while (i--) {
193
+ let p = target.props[i];
194
+ if (is_function(p)) p = p();
195
+ if (typeof p === 'object' && p !== null && key in p) return p[key];
196
+ }
197
+ },
198
+ set(target, key, value) {
199
+ let i = target.props.length;
200
+ while (i--) {
201
+ let p = target.props[i];
202
+ if (is_function(p)) p = p();
203
+ const desc = get_descriptor(p, key);
204
+ if (desc && desc.set) {
205
+ desc.set(value);
206
+ return true;
207
+ }
208
+ }
209
+ return false;
210
+ },
211
+ getOwnPropertyDescriptor(target, key) {
212
+ let i = target.props.length;
213
+ while (i--) {
214
+ let p = target.props[i];
215
+ if (is_function(p)) p = p();
216
+ if (typeof p === 'object' && p !== null && key in p) {
217
+ const descriptor = get_descriptor(p, key);
218
+ if (descriptor && !descriptor.configurable) {
219
+ // Prevent a "Non-configurability Report Error": The target is an array, it does
220
+ // not actually contain this property. If it is now described as non-configurable,
221
+ // the proxy throws a validation error. Setting it to true avoids that.
222
+ descriptor.configurable = true;
223
+ }
224
+ return descriptor;
225
+ }
226
+ }
227
+ },
228
+ has(target, key) {
229
+ // To prevent a false positive `is_entry_props` in the `prop` function
230
+ if (key === STATE_SYMBOL || key === LEGACY_PROPS) return false;
231
+
232
+ for (let p of target.props) {
233
+ if (is_function(p)) p = p();
234
+ if (p != null && key in p) return true;
235
+ }
236
+
237
+ return false;
238
+ },
239
+ ownKeys(target) {
240
+ /** @type {Array<string | symbol>} */
241
+ const keys = [];
242
+
243
+ for (let p of target.props) {
244
+ if (is_function(p)) p = p();
245
+ if (!p) continue;
246
+
247
+ for (const key in p) {
248
+ if (!keys.includes(key)) keys.push(key);
249
+ }
250
+
251
+ for (const key of Object.getOwnPropertySymbols(p)) {
252
+ if (!keys.includes(key)) keys.push(key);
253
+ }
254
+ }
255
+
256
+ return keys;
257
+ }
258
+ };
259
+
260
+ /**
261
+ * @param {Array<Record<string, unknown> | (() => Record<string, unknown>)>} props
262
+ * @returns {any}
263
+ */
264
+ export function spread_props(...props) {
265
+ return new Proxy({ props }, spread_props_handler);
266
+ }
267
+
268
+ /**
269
+ * This function is responsible for synchronizing a possibly bound prop with the inner component state.
270
+ * It is used whenever the compiler sees that the component writes to the prop, or when it has a default prop_value.
271
+ * @template V
272
+ * @param {Record<string, unknown>} props
273
+ * @param {string} key
274
+ * @param {number} flags
275
+ * @param {V | (() => V)} [fallback]
276
+ * @returns {(() => V | ((arg: V) => V) | ((arg: V, mutation: boolean) => V))}
277
+ */
278
+ export function prop(props, key, flags, fallback) {
279
+ var runes = !legacy_mode_flag || (flags & PROPS_IS_RUNES) !== 0;
280
+ var bindable = (flags & PROPS_IS_BINDABLE) !== 0;
281
+ var lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0;
282
+
283
+ var fallback_value = /** @type {V} */ (fallback);
284
+ var fallback_dirty = true;
285
+
286
+ var get_fallback = () => {
287
+ if (fallback_dirty) {
288
+ fallback_dirty = false;
289
+
290
+ fallback_value = lazy
291
+ ? untrack(/** @type {() => V} */ (fallback))
292
+ : /** @type {V} */ (fallback);
293
+ }
294
+
295
+ return fallback_value;
296
+ };
297
+
298
+ /** @type {((v: V) => void) | undefined} */
299
+ var setter;
300
+
301
+ if (bindable) {
302
+ // Can be the case when someone does `mount(Component, props)` with `let props = $state({...})`
303
+ // or `createClassComponent(Component, props)`
304
+ var is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props;
305
+
306
+ setter =
307
+ get_descriptor(props, key)?.set ??
308
+ (is_entry_props && key in props ? (v) => (props[key] = v) : undefined);
309
+ }
310
+
311
+ var initial_value;
312
+ var is_store_sub = false;
313
+
314
+ if (bindable) {
315
+ [initial_value, is_store_sub] = capture_store_binding(() => /** @type {V} */ (props[key]));
316
+ } else {
317
+ initial_value = /** @type {V} */ (props[key]);
318
+ }
319
+
320
+ if (initial_value === undefined && fallback !== undefined) {
321
+ initial_value = get_fallback();
322
+
323
+ if (setter) {
324
+ if (runes) e.props_invalid_value(key);
325
+ setter(initial_value);
326
+ }
327
+ }
328
+
329
+ /** @type {() => V} */
330
+ var getter;
331
+
332
+ if (runes) {
333
+ getter = () => {
334
+ var value = /** @type {V} */ (props[key]);
335
+ if (value === undefined) return get_fallback();
336
+ fallback_dirty = true;
337
+ return value;
338
+ };
339
+ } else {
340
+ getter = () => {
341
+ var value = /** @type {V} */ (props[key]);
342
+
343
+ if (value !== undefined) {
344
+ // in legacy mode, we don't revert to the fallback value
345
+ // if the prop goes from defined to undefined. The easiest
346
+ // way to model this is to make the fallback undefined
347
+ // as soon as the prop has a value
348
+ fallback_value = /** @type {V} */ (undefined);
349
+ }
350
+
351
+ return value === undefined ? fallback_value : value;
352
+ };
353
+ }
354
+
355
+ // prop is never written to — we only need a getter
356
+ if (runes && (flags & PROPS_IS_UPDATED) === 0) {
357
+ return getter;
358
+ }
359
+
360
+ // prop is written to, but the parent component had `bind:foo` which
361
+ // means we can just call `$$props.foo = value` directly
362
+ if (setter) {
363
+ var legacy_parent = props.$$legacy;
364
+ return /** @type {() => V} */ (
365
+ function (/** @type {V} */ value, /** @type {boolean} */ mutation) {
366
+ if (arguments.length > 0) {
367
+ // We don't want to notify if the value was mutated and the parent is in runes mode.
368
+ // In that case the state proxy (if it exists) should take care of the notification.
369
+ // If the parent is not in runes mode, we need to notify on mutation, too, that the prop
370
+ // has changed because the parent will not be able to detect the change otherwise.
371
+ if (!runes || !mutation || legacy_parent || is_store_sub) {
372
+ /** @type {Function} */ (setter)(mutation ? getter() : value);
373
+ }
374
+
375
+ return value;
376
+ }
377
+
378
+ return getter();
379
+ }
380
+ );
381
+ }
382
+
383
+ // Either prop is written to, but there's no binding, which means we
384
+ // create a derived that we can write to locally.
385
+ // Or we are in legacy mode where we always create a derived to replicate that
386
+ // Svelte 4 did not trigger updates when a primitive value was updated to the same value.
387
+ var overridden = false;
388
+
389
+ var d = ((flags & PROPS_IS_IMMUTABLE) !== 0 ? derived : derived_safe_equal)(() => {
390
+ overridden = false;
391
+ return getter();
392
+ });
393
+
394
+ if (DEV) {
395
+ d.label = key;
396
+ }
397
+
398
+ // Capture the initial value if it's bindable
399
+ if (bindable) get(d);
400
+
401
+ var parent_effect = /** @type {Effect} */ (active_effect);
402
+
403
+ return /** @type {() => V} */ (
404
+ function (/** @type {any} */ value, /** @type {boolean} */ mutation) {
405
+ if (arguments.length > 0) {
406
+ const new_value = mutation ? get(d) : runes && bindable ? proxy(value) : value;
407
+
408
+ set(d, new_value);
409
+ overridden = true;
410
+
411
+ if (fallback_value !== undefined) {
412
+ fallback_value = new_value;
413
+ }
414
+
415
+ return value;
416
+ }
417
+
418
+ // special case — avoid recalculating the derived if we're in a
419
+ // teardown function and the prop was overridden locally, or the
420
+ // component was already destroyed (this latter part is necessary
421
+ // because `bind:this` can read props after the component has
422
+ // been destroyed. TODO simplify `bind:this`
423
+ if ((is_destroying_effect && overridden) || (parent_effect.f & DESTROYED) !== 0) {
424
+ return d.v;
425
+ }
426
+
427
+ return get(d);
428
+ }
429
+ );
430
+ }