@builder.io/mitosis 0.0.78 → 0.0.80

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 (144) hide show
  1. package/dist/src/generators/html.js +6 -3
  2. package/dist/src/generators/qwik/component-generator.js +51 -46
  3. package/dist/src/generators/qwik/stable-inject.d.ts +5 -0
  4. package/dist/src/generators/qwik/stable-inject.js +50 -0
  5. package/dist/src/generators/react/generator.js +7 -4
  6. package/dist/src/generators/react/state.js +6 -4
  7. package/dist/src/generators/solid/state/signals.js +6 -7
  8. package/dist/src/generators/solid/state/store.js +6 -7
  9. package/dist/src/helpers/babel-transform.d.ts +0 -1
  10. package/dist/src/helpers/babel-transform.js +2 -3
  11. package/dist/src/helpers/get-state-object-string.js +1 -5
  12. package/dist/src/helpers/handle-missing-state.js +1 -1
  13. package/dist/src/helpers/plugins/process-code.js +1 -1
  14. package/dist/src/helpers/process-http-requests.js +1 -1
  15. package/dist/src/index.d.ts +1 -0
  16. package/dist/src/index.js +1 -0
  17. package/dist/src/parsers/builder/builder.js +7 -6
  18. package/dist/src/parsers/builder/helpers.js +1 -1
  19. package/dist/src/parsers/jsx/function-parser.js +2 -2
  20. package/dist/src/parsers/jsx/helpers.js +0 -4
  21. package/dist/src/parsers/jsx/hooks.js +2 -2
  22. package/dist/src/parsers/jsx/state.js +2 -2
  23. package/dist/src/parsers/svelte/css/index.d.ts +3 -0
  24. package/dist/src/parsers/svelte/css/index.js +8 -0
  25. package/dist/src/parsers/svelte/helpers/bindings.d.ts +3 -0
  26. package/dist/src/parsers/svelte/helpers/bindings.js +75 -0
  27. package/dist/src/parsers/svelte/helpers/children.d.ts +5 -0
  28. package/dist/src/parsers/svelte/helpers/children.js +23 -0
  29. package/dist/src/parsers/svelte/helpers/expressions.d.ts +3 -0
  30. package/dist/src/parsers/svelte/helpers/expressions.js +22 -0
  31. package/dist/src/parsers/svelte/helpers/hooks.d.ts +2 -0
  32. package/dist/src/parsers/svelte/helpers/hooks.js +15 -0
  33. package/dist/src/parsers/svelte/helpers/mitosis-node.d.ts +2 -0
  34. package/dist/src/parsers/svelte/helpers/mitosis-node.js +15 -0
  35. package/dist/src/parsers/svelte/helpers/post-process.d.ts +9 -0
  36. package/dist/src/parsers/svelte/helpers/post-process.js +177 -0
  37. package/dist/src/parsers/svelte/helpers/string.d.ts +3 -0
  38. package/dist/src/parsers/svelte/helpers/string.js +26 -0
  39. package/dist/src/parsers/svelte/html/actions.d.ts +3 -0
  40. package/dist/src/parsers/svelte/html/actions.js +40 -0
  41. package/dist/src/parsers/svelte/html/each.d.ts +35 -0
  42. package/dist/src/parsers/svelte/html/each.js +24 -0
  43. package/dist/src/parsers/svelte/html/element.d.ts +3 -0
  44. package/dist/src/parsers/svelte/html/element.js +222 -0
  45. package/dist/src/parsers/svelte/html/fragment.d.ts +3 -0
  46. package/dist/src/parsers/svelte/html/fragment.js +16 -0
  47. package/dist/src/parsers/svelte/html/if-else.d.ts +3 -0
  48. package/dist/src/parsers/svelte/html/if-else.js +37 -0
  49. package/dist/src/parsers/svelte/html/index.d.ts +5 -0
  50. package/dist/src/parsers/svelte/html/index.js +79 -0
  51. package/dist/src/parsers/svelte/html/mustache-tag.d.ts +3 -0
  52. package/dist/src/parsers/svelte/html/mustache-tag.js +23 -0
  53. package/dist/src/parsers/svelte/html/slot.d.ts +3 -0
  54. package/dist/src/parsers/svelte/html/slot.js +25 -0
  55. package/dist/src/parsers/svelte/html/text.d.ts +30 -0
  56. package/dist/src/parsers/svelte/html/text.js +21 -0
  57. package/dist/src/parsers/svelte/index.d.ts +2 -0
  58. package/dist/src/parsers/svelte/index.js +105 -0
  59. package/dist/src/parsers/svelte/instance/context.d.ts +5 -0
  60. package/dist/src/parsers/svelte/instance/context.js +59 -0
  61. package/dist/src/parsers/svelte/instance/expressions.d.ts +3 -0
  62. package/dist/src/parsers/svelte/instance/expressions.js +11 -0
  63. package/dist/src/parsers/svelte/instance/functions.d.ts +3 -0
  64. package/dist/src/parsers/svelte/instance/functions.js +61 -0
  65. package/dist/src/parsers/svelte/instance/hooks.d.ts +5 -0
  66. package/dist/src/parsers/svelte/instance/hooks.js +33 -0
  67. package/dist/src/parsers/svelte/instance/imports.d.ts +3 -0
  68. package/dist/src/parsers/svelte/instance/imports.js +42 -0
  69. package/dist/src/parsers/svelte/instance/index.d.ts +3 -0
  70. package/dist/src/parsers/svelte/instance/index.js +125 -0
  71. package/dist/src/parsers/svelte/instance/properties.d.ts +3 -0
  72. package/dist/src/parsers/svelte/instance/properties.js +34 -0
  73. package/dist/src/parsers/svelte/instance/reactive.d.ts +3 -0
  74. package/dist/src/parsers/svelte/instance/reactive.js +24 -0
  75. package/dist/src/parsers/svelte/instance/references.d.ts +4 -0
  76. package/dist/src/parsers/svelte/instance/references.js +68 -0
  77. package/dist/src/parsers/svelte/instance/statements.d.ts +3 -0
  78. package/dist/src/parsers/svelte/instance/statements.js +10 -0
  79. package/dist/src/parsers/svelte/module/index.d.ts +3 -0
  80. package/dist/src/parsers/svelte/module/index.js +46 -0
  81. package/dist/src/parsers/svelte/types/index.d.ts +4 -0
  82. package/dist/src/parsers/svelte/types/index.js +2 -0
  83. package/dist/src/parsers/svelte/typescript/index.d.ts +7 -0
  84. package/dist/src/parsers/svelte/typescript/index.js +130 -0
  85. package/dist/src/plugins/compile-away-builder-components.d.ts +2 -5
  86. package/dist/src/types/config.d.ts +0 -5
  87. package/dist/src/types/mitosis-component.d.ts +3 -11
  88. package/dist/src/types/mitosis-component.js +0 -11
  89. package/dist/tsconfig.build.tsbuildinfo +1 -1
  90. package/package.json +14 -1
  91. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/high.jsx +0 -0
  92. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/low.jsx +0 -240
  93. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/med.jsx +0 -4
  94. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/high.jsx +0 -0
  95. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/low.jsx +0 -54
  96. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/med.jsx +0 -4
  97. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/high.js +0 -9
  98. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/low.js +0 -0
  99. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/med.js +0 -151
  100. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/high.js +0 -9
  101. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/low.js +0 -0
  102. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/med.js +0 -151
  103. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/high.cjs +0 -0
  104. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/low.cjs +0 -45
  105. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/med.cjs +0 -3
  106. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/high.js +0 -3
  107. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/low.js +0 -25
  108. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/med.js +0 -31
  109. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/high.jsx +0 -0
  110. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/low.jsx +0 -108
  111. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/med.jsx +0 -7
  112. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/high.cjsx +0 -9
  113. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/low.cjsx +0 -0
  114. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/med.cjsx +0 -68
  115. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/high.cjs +0 -0
  116. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/low.cjs +0 -58
  117. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/med.cjs +0 -5
  118. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/high.jsx +0 -0
  119. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/low.jsx +0 -26
  120. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/med.jsx +0 -4
  121. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/high.cjs +0 -0
  122. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/low.cjs +0 -47
  123. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/med.cjs +0 -3
  124. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/high.js +0 -0
  125. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/low.js +0 -33
  126. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/med.js +0 -4
  127. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/high.jsx +0 -9
  128. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/low.jsx +0 -0
  129. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/med.jsx +0 -170
  130. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/high.js +0 -0
  131. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/low.js +0 -30
  132. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/med.js +0 -4
  133. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/high.cjs +0 -19
  134. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/low.cjs +0 -0
  135. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/med.cjs +0 -51
  136. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/high.js +0 -19
  137. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/low.js +0 -0
  138. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/med.js +0 -47
  139. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/high.tsx +0 -19
  140. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/low.tsx +0 -0
  141. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/med.tsx +0 -43
  142. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/high.tsx +0 -7
  143. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/low.tsx +0 -34
  144. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/med.tsx +0 -4
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processBindings = void 0;
4
+ function replaceGroupWithChecked(node, isArray) {
5
+ var _a, _b, _c;
6
+ if (isArray === void 0) { isArray = false; }
7
+ if ((_b = (_a = node.bindings.group) === null || _a === void 0 ? void 0 : _a.code) === null || _b === void 0 ? void 0 : _b.length) {
8
+ var bindingValue = (_c = node.bindings.value) === null || _c === void 0 ? void 0 : _c.code;
9
+ var propertyValue = node.properties.value;
10
+ var groupBinding = node.bindings.group.code;
11
+ var code = '';
12
+ if (isArray) {
13
+ code = bindingValue
14
+ ? "".concat(groupBinding, ".includes(").concat(bindingValue, ")")
15
+ : "".concat(groupBinding, ".includes('").concat(propertyValue, "')");
16
+ }
17
+ else {
18
+ code = bindingValue
19
+ ? "".concat(groupBinding, " === ").concat(bindingValue)
20
+ : "".concat(groupBinding, " === '").concat(propertyValue, "'");
21
+ }
22
+ node.bindings['checked'] = {
23
+ code: code,
24
+ };
25
+ delete node.bindings.group;
26
+ }
27
+ }
28
+ /* post-processes bindings
29
+ bind:group https://svelte.dev/docs#template-syntax-element-directives-bind-group
30
+ bind:property https://svelte.dev/docs#template-syntax-component-directives-bind-this
31
+ bind:this https://svelte.dev/docs#template-syntax-component-directives-bind-this
32
+
33
+ - replaces group binding with checked for checkboxes and radios (supported inputs for bind:group)
34
+ - adds onChange for bind:group and bind:property (event.target.value OR event.target.checked)
35
+ */
36
+ function processBindings(json, node) {
37
+ var _a, _b, _c, _d, _e, _f, _g;
38
+ var name;
39
+ var target = 'event.target.value';
40
+ var binding = '';
41
+ var isArray = false;
42
+ if (Object.prototype.hasOwnProperty.call(node.bindings, 'group')) {
43
+ name = 'group';
44
+ binding = (_b = (_a = node.bindings.group) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : '';
45
+ if (binding.startsWith('state.')) {
46
+ var stateObject = json.state[binding.replace(/^state\./, '')];
47
+ isArray = Array.isArray(stateObject === null || stateObject === void 0 ? void 0 : stateObject.code);
48
+ }
49
+ replaceGroupWithChecked(node, isArray);
50
+ if (node.properties.type === 'checkbox' && !node.properties.value) {
51
+ target = 'event.target.checked';
52
+ }
53
+ }
54
+ else if (Object.prototype.hasOwnProperty.call(node.bindings, 'this')) {
55
+ name = 'ref';
56
+ binding = (_d = (_c = node.bindings.this) === null || _c === void 0 ? void 0 : _c.code) !== null && _d !== void 0 ? _d : '';
57
+ }
58
+ else if (Object.prototype.hasOwnProperty.call(node.bindings, 'onChange') &&
59
+ node.properties.type === 'checkbox') {
60
+ target = 'event.target.checked';
61
+ binding = (_f = (_e = node.bindings.onChange) === null || _e === void 0 ? void 0 : _e.code.split('=')[0]) !== null && _f !== void 0 ? _f : '';
62
+ }
63
+ var onChangeCode = "".concat(binding, " = ").concat(target);
64
+ // If the binding is an array, we should push / splice rather than assigning
65
+ if (isArray) {
66
+ onChangeCode = "event.target.checked ? ".concat(binding, ".push(").concat(target, ") : ").concat(binding, ".splice(").concat(binding, ".indexOf(").concat(node.properties.value ? "'".concat(node.properties.value, "'") : (_g = node.bindings.value) === null || _g === void 0 ? void 0 : _g.code, "), 1)");
67
+ }
68
+ if (name !== 'ref' && binding) {
69
+ node.bindings['onChange'] = {
70
+ code: onChangeCode,
71
+ arguments: ['event'],
72
+ };
73
+ }
74
+ }
75
+ exports.processBindings = processBindings;
@@ -0,0 +1,5 @@
1
+ import type { TemplateNode } from 'svelte/types/compiler/interfaces';
2
+ import type { MitosisNode } from '../../../types/mitosis-node';
3
+ import type { SveltosisComponent } from '../types';
4
+ export declare function filterChildren(children: TemplateNode[]): TemplateNode[];
5
+ export declare function parseChildren(json: SveltosisComponent, node: TemplateNode): MitosisNode[];
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseChildren = exports.filterChildren = void 0;
4
+ var html_1 = require("../html");
5
+ function filterChildren(children) {
6
+ var _a;
7
+ return ((_a = children === null || children === void 0 ? void 0 : children.filter(function (n) { var _a; return n.type !== 'Comment' && (n.type !== 'Text' || ((_a = n.data) === null || _a === void 0 ? void 0 : _a.trim().length)); })) !== null && _a !== void 0 ? _a : []);
8
+ }
9
+ exports.filterChildren = filterChildren;
10
+ function parseChildren(json, node) {
11
+ var children = [];
12
+ if (node.children) {
13
+ for (var _i = 0, _a = filterChildren(node.children); _i < _a.length; _i++) {
14
+ var child = _a[_i];
15
+ var mitosisNode = (0, html_1.parseHtmlNode)(json, child);
16
+ if (mitosisNode) {
17
+ children.push(mitosisNode);
18
+ }
19
+ }
20
+ }
21
+ return children;
22
+ }
23
+ exports.parseChildren = parseChildren;
@@ -0,0 +1,3 @@
1
+ import { ObjectExpression } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseObjectExpression(json: SveltosisComponent, node: ObjectExpression): {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseObjectExpression = void 0;
4
+ var astring_1 = require("astring");
5
+ var references_1 = require("../instance/references");
6
+ function parseObjectExpression(json, node) {
7
+ var _a;
8
+ var properties = node.properties.map(function (n) {
9
+ var node_ = n;
10
+ return {
11
+ key: (0, astring_1.generate)(node_.key),
12
+ value: (0, references_1.getParsedValue)(json, node_.value),
13
+ };
14
+ });
15
+ var c = {};
16
+ for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {
17
+ var item = properties_1[_i];
18
+ Object.assign(c, (_a = {}, _a[item.key] = item.value, _a));
19
+ }
20
+ return c;
21
+ }
22
+ exports.parseObjectExpression = parseObjectExpression;
@@ -0,0 +1,2 @@
1
+ import type { SveltosisComponent } from '../types';
2
+ export declare function addToOnInitHook(json: SveltosisComponent, code: string): void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addToOnInitHook = void 0;
4
+ function addToOnInitHook(json, code) {
5
+ var _a;
6
+ if ((_a = json.hooks.onInit) === null || _a === void 0 ? void 0 : _a.code.length) {
7
+ json.hooks.onInit.code += "\n ".concat(code);
8
+ }
9
+ else {
10
+ json.hooks.onInit = {
11
+ code: code,
12
+ };
13
+ }
14
+ }
15
+ exports.addToOnInitHook = addToOnInitHook;
@@ -0,0 +1,2 @@
1
+ import { MitosisNode } from '../../../types/mitosis-node';
2
+ export declare function createMitosisNode(): MitosisNode;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMitosisNode = void 0;
4
+ function createMitosisNode() {
5
+ return {
6
+ '@type': '@builder.io/mitosis/node',
7
+ name: '',
8
+ meta: {},
9
+ scope: {},
10
+ children: [],
11
+ bindings: {},
12
+ properties: {},
13
+ };
14
+ }
15
+ exports.createMitosisNode = createMitosisNode;
@@ -0,0 +1,9 @@
1
+ import type { SveltosisComponent } from '../types';
2
+ export declare function preventNameCollissions(json: SveltosisComponent, input: string, arguments_: string[], prepend?: string, append?: string): {
3
+ code: string;
4
+ arguments: string[];
5
+ } | {
6
+ code: string;
7
+ arguments?: undefined;
8
+ };
9
+ export declare function postProcess(json: SveltosisComponent): void;
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.postProcess = exports.preventNameCollissions = void 0;
24
+ var bindings_1 = require("./bindings");
25
+ function preventNameCollissions(json, input, arguments_, prepend, append) {
26
+ if (prepend === void 0) { prepend = ''; }
27
+ if (append === void 0) { append = '_'; }
28
+ var output = input;
29
+ var argumentsOutput = arguments_;
30
+ var keys = __spreadArray(__spreadArray(__spreadArray([], Object.keys(json.props), true), Object.keys(json.state), true), Object.keys(json.refs), true);
31
+ var _loop_1 = function (key) {
32
+ var regex = function () { return new RegExp("(?<!=(?:\\s))".concat(key, "\\b"), 'g'); };
33
+ var isInArguments = false;
34
+ argumentsOutput.forEach(function (argument, index) {
35
+ if (regex().test(argument)) {
36
+ isInArguments = true;
37
+ argumentsOutput.splice(index, 1, argument.replace(regex(), "".concat(prepend).concat(key).concat(append)));
38
+ }
39
+ });
40
+ var isInOutput = regex().test(output);
41
+ if (isInArguments && isInOutput) {
42
+ output = output.replace(regex(), "".concat(prepend).concat(key).concat(append));
43
+ }
44
+ };
45
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
46
+ var key = keys_1[_i];
47
+ _loop_1(key);
48
+ }
49
+ return (argumentsOutput === null || argumentsOutput === void 0 ? void 0 : argumentsOutput.length)
50
+ ? {
51
+ code: output,
52
+ arguments: argumentsOutput,
53
+ }
54
+ : { code: output };
55
+ }
56
+ exports.preventNameCollissions = preventNameCollissions;
57
+ function prependProperties(json, input) {
58
+ var output = input;
59
+ var propertyKeys = Object.keys(json.props);
60
+ for (var _i = 0, propertyKeys_1 = propertyKeys; _i < propertyKeys_1.length; _i++) {
61
+ var property = propertyKeys_1[_i];
62
+ var regex = new RegExp("(?<!(\\.|'|\"|`))\\b(props\\.)?".concat(property, "\\b"), 'g');
63
+ if (regex.test(output)) {
64
+ output = output.replace(regex, "props.".concat(property));
65
+ }
66
+ }
67
+ return output;
68
+ }
69
+ function prependState(json, input) {
70
+ var output = input;
71
+ var stateKeys = Object.keys(json.state);
72
+ for (var _i = 0, stateKeys_1 = stateKeys; _i < stateKeys_1.length; _i++) {
73
+ var state = stateKeys_1[_i];
74
+ var regex = new RegExp("(?<!(\\.|'|\"|`|function ))\\b(state\\.)?".concat(state, "\\b(?!(\\s+)?\\()"), 'g');
75
+ if (regex.test(output)) {
76
+ output = output.replace(regex, "state.".concat(state));
77
+ }
78
+ }
79
+ return output;
80
+ }
81
+ function addPropertiesAndState(json, input) {
82
+ var output = input;
83
+ output = prependProperties(json, output);
84
+ output = prependState(json, output);
85
+ return output;
86
+ }
87
+ function addPropertiesAndStateToNode(json, node) {
88
+ var _a, _b, _c;
89
+ for (var _i = 0, _d = Object.keys(node.bindings); _i < _d.length; _i++) {
90
+ var key = _d[_i];
91
+ if (Object.prototype.hasOwnProperty.call(node.bindings, key)) {
92
+ node.bindings[key] = {
93
+ code: addPropertiesAndState(json, (_b = (_a = node.bindings[key]) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : '').trim(),
94
+ type: (_c = node.bindings[key]) === null || _c === void 0 ? void 0 : _c.type,
95
+ };
96
+ }
97
+ }
98
+ }
99
+ function postProcessState(json) {
100
+ for (var _i = 0, _a = Object.keys(json.state); _i < _a.length; _i++) {
101
+ var key = _a[_i];
102
+ var item = json.state[key];
103
+ if ((item === null || item === void 0 ? void 0 : item.type) !== 'property') {
104
+ var output = preventNameCollissions(json, item.code, (item === null || item === void 0 ? void 0 : item.arguments) || []);
105
+ output.code = addPropertiesAndState(json, output.code);
106
+ json.state[key] = __assign(__assign({}, item), output);
107
+ }
108
+ }
109
+ }
110
+ function postProcessChildren(json, children) {
111
+ var _a;
112
+ for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
113
+ var node = children_1[_i];
114
+ addPropertiesAndStateToNode(json, node);
115
+ (0, bindings_1.processBindings)(json, node);
116
+ var children_2 = [];
117
+ if (((_a = node.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
118
+ children_2 = node.children;
119
+ }
120
+ var metaValues = (Object.values(node.meta) || []);
121
+ if (metaValues.length > 0) {
122
+ var metaChildren = metaValues.filter(function (item) {
123
+ return (item === null || item === void 0 ? void 0 : item['@type']) === '@builder.io/mitosis/node';
124
+ });
125
+ children_2 = __spreadArray(__spreadArray([], children_2, true), metaChildren, true);
126
+ }
127
+ postProcessChildren(json, children_2);
128
+ }
129
+ }
130
+ function addPropertiesAndStateToHook(json, hook) {
131
+ return {
132
+ code: addPropertiesAndState(json, hook.code),
133
+ deps: addPropertiesAndState(json, hook.deps || ''),
134
+ };
135
+ }
136
+ function postProcessHooks(json) {
137
+ var hookKeys = Object.keys(json.hooks);
138
+ var _loop_2 = function (key) {
139
+ var hook = json.hooks[key];
140
+ if (!hook) {
141
+ return "continue";
142
+ }
143
+ if (key === 'onUpdate' && Array.isArray(hook)) {
144
+ hook.forEach(function (item, index) {
145
+ var _a;
146
+ (_a = json.hooks[key]) === null || _a === void 0 ? void 0 : _a.splice(index, 1, addPropertiesAndStateToHook(json, item));
147
+ });
148
+ return "continue";
149
+ }
150
+ json.hooks[key] = addPropertiesAndStateToHook(json, hook);
151
+ };
152
+ for (var _i = 0, hookKeys_1 = hookKeys; _i < hookKeys_1.length; _i++) {
153
+ var key = hookKeys_1[_i];
154
+ _loop_2(key);
155
+ }
156
+ }
157
+ function postProcessContext(json) {
158
+ var _a;
159
+ for (var _i = 0, _b = Object.keys(json.context.set); _i < _b.length; _i++) {
160
+ var key = _b[_i];
161
+ if ((_a = json.context.set[key]) === null || _a === void 0 ? void 0 : _a.ref) {
162
+ json.context.set[key].ref = addPropertiesAndState(json, json.context.set[key].ref);
163
+ }
164
+ }
165
+ }
166
+ function postProcess(json) {
167
+ // Call preventNameCollissions here, before the rest (where it applies -- function arguments for now)
168
+ // State (everything except type === 'property')
169
+ postProcessState(json);
170
+ // Children
171
+ postProcessChildren(json, json.children);
172
+ // Hooks
173
+ postProcessHooks(json);
174
+ // Context
175
+ postProcessContext(json);
176
+ }
177
+ exports.postProcess = postProcess;
@@ -0,0 +1,3 @@
1
+ export declare function uniqueName(existingItems: string[], reference: string): string;
2
+ export declare function insertAt(string_: string, sub: string, pos: number): string;
3
+ export declare function stripQuotes(string_: string): string;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stripQuotes = exports.insertAt = exports.uniqueName = void 0;
4
+ // helper functions for strings
5
+ var lodash_1 = require("lodash");
6
+ function uniqueName(existingItems, reference) {
7
+ var index = 0;
8
+ var match = false;
9
+ while (false === match) {
10
+ if (!existingItems.includes(reference)) {
11
+ match = true;
12
+ break;
13
+ }
14
+ index++;
15
+ }
16
+ return (0, lodash_1.camelCase)("".concat(reference).concat(index));
17
+ }
18
+ exports.uniqueName = uniqueName;
19
+ function insertAt(string_, sub, pos) {
20
+ return "".concat(string_.slice(0, pos)).concat(sub).concat(string_.slice(pos));
21
+ }
22
+ exports.insertAt = insertAt;
23
+ function stripQuotes(string_) {
24
+ return string_.replace(/["']+/g, '');
25
+ }
26
+ exports.stripQuotes = stripQuotes;
@@ -0,0 +1,3 @@
1
+ import type { Element } from 'svelte/types/compiler/interfaces';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseAction(json: SveltosisComponent, nodeReference: string, attribute: Element['attributes'][number]): void;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseAction = void 0;
4
+ var string_1 = require("../helpers/string");
5
+ var astring_1 = require("astring");
6
+ function parseAction(json, nodeReference, attribute) {
7
+ var _a, _b;
8
+ var methodName = attribute.name;
9
+ var parameters = '';
10
+ if (['Identifier', 'ObjectExpression'].includes((_a = attribute.expression) === null || _a === void 0 ? void 0 : _a.type)) {
11
+ parameters = (0, astring_1.generate)(attribute.expression);
12
+ }
13
+ var actionHandler = (0, string_1.uniqueName)(Object.keys(json.state), 'actionHandler');
14
+ json.state[actionHandler] = {
15
+ code: 'null',
16
+ type: 'property',
17
+ };
18
+ var initHandler = "if (".concat(nodeReference, ") { ").concat(actionHandler, " = ").concat(methodName, "(").concat(nodeReference, ", ").concat(parameters, "); };\n");
19
+ // Handle Mount
20
+ var onMountCode = ((_b = json.hooks.onMount) === null || _b === void 0 ? void 0 : _b.code) || '';
21
+ json.hooks.onMount = {
22
+ code: "".concat(onMountCode, "\n").concat(initHandler, ";\n"),
23
+ };
24
+ // Handle Destroy / Re-Mount
25
+ var onReferenceUpdate = "\n if (!".concat(nodeReference, " && ").concat(actionHandler, ") { \n ").concat(actionHandler, "?.destroy(); \n ").concat(actionHandler, " = null; \n } else if (").concat(nodeReference, " && !").concat(actionHandler, ") { \n ").concat(initHandler, " \n };\n\n ");
26
+ json.hooks.onUpdate = json.hooks.onUpdate || [];
27
+ json.hooks.onUpdate.push({
28
+ code: onReferenceUpdate,
29
+ deps: "[".concat(nodeReference, "]"),
30
+ });
31
+ // Handle Update
32
+ if (parameters) {
33
+ var onUpdate = "".concat(actionHandler, "?.update(").concat(parameters, ")\n");
34
+ json.hooks.onUpdate.push({
35
+ code: onUpdate,
36
+ deps: "[".concat(parameters, "]"),
37
+ });
38
+ }
39
+ }
40
+ exports.parseAction = parseAction;
@@ -0,0 +1,35 @@
1
+ import type { TemplateNode } from 'svelte/types/compiler/interfaces';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseEach(json: SveltosisComponent, node: TemplateNode): {
4
+ name: string;
5
+ scope: {
6
+ forName: any;
7
+ };
8
+ bindings: {
9
+ each: {
10
+ code: any;
11
+ };
12
+ };
13
+ children: import("../../..").MitosisNode[];
14
+ '@type': "@builder.io/mitosis/node";
15
+ meta: import("../../../types/json").JSONObject;
16
+ properties: {
17
+ [key: string]: string | undefined;
18
+ };
19
+ } | {
20
+ name: string;
21
+ scope: {
22
+ forName: any;
23
+ };
24
+ bindings: {
25
+ each: {
26
+ code: any;
27
+ };
28
+ };
29
+ children: import("../../..").MitosisNode[];
30
+ '@type': "@builder.io/mitosis/node";
31
+ meta: import("../../../types/json").JSONObject;
32
+ properties: {
33
+ [key: string]: string | undefined;
34
+ };
35
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.parseEach = void 0;
15
+ var mitosis_node_1 = require("../helpers/mitosis-node");
16
+ var children_1 = require("../helpers/children");
17
+ function parseEach(json, node) {
18
+ return __assign(__assign({}, (0, mitosis_node_1.createMitosisNode)()), { name: 'For', scope: { forName: node.context.name }, bindings: {
19
+ each: {
20
+ code: node.expression.name,
21
+ },
22
+ }, children: (0, children_1.parseChildren)(json, node) });
23
+ }
24
+ exports.parseEach = parseEach;
@@ -0,0 +1,3 @@
1
+ import type { TemplateNode } from 'svelte/types/compiler/interfaces';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseElement(json: SveltosisComponent, node: TemplateNode): import("../../..").MitosisNode;