@tamagui/compiler-core 0.0.0-bootstrap.0 → 3.0.0-beta.637.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 (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -1
  3. package/dist/cjs/ast.cjs +95 -0
  4. package/dist/cjs/contracts.cjs +62 -0
  5. package/dist/cjs/diagnostics.cjs +69 -0
  6. package/dist/cjs/evaluate.cjs +351 -0
  7. package/dist/cjs/graph.cjs +279 -0
  8. package/dist/cjs/hash.cjs +49 -0
  9. package/dist/cjs/index.cjs +44 -0
  10. package/dist/cjs/ir.cjs +33 -0
  11. package/dist/cjs/lower.cjs +225 -0
  12. package/dist/cjs/materialize.cjs +200 -0
  13. package/dist/cjs/normalize.cjs +622 -0
  14. package/dist/cjs/output.cjs +149 -0
  15. package/dist/cjs/planCache.cjs +224 -0
  16. package/dist/cjs/session.cjs +119 -0
  17. package/dist/cjs/yuku.cjs +159 -0
  18. package/dist/cjs/zero.cjs +387 -0
  19. package/dist/esm/ast.mjs +65 -0
  20. package/dist/esm/ast.mjs.map +1 -0
  21. package/dist/esm/contracts.mjs +34 -0
  22. package/dist/esm/contracts.mjs.map +1 -0
  23. package/dist/esm/diagnostics.mjs +44 -0
  24. package/dist/esm/diagnostics.mjs.map +1 -0
  25. package/dist/esm/evaluate.mjs +327 -0
  26. package/dist/esm/evaluate.mjs.map +1 -0
  27. package/dist/esm/graph.mjs +256 -0
  28. package/dist/esm/graph.mjs.map +1 -0
  29. package/dist/esm/hash.mjs +26 -0
  30. package/dist/esm/hash.mjs.map +1 -0
  31. package/dist/esm/index.mjs +30 -0
  32. package/dist/esm/ir.mjs +12 -0
  33. package/dist/esm/ir.mjs.map +1 -0
  34. package/dist/esm/lower.mjs +202 -0
  35. package/dist/esm/lower.mjs.map +1 -0
  36. package/dist/esm/materialize.mjs +179 -0
  37. package/dist/esm/materialize.mjs.map +1 -0
  38. package/dist/esm/normalize.mjs +596 -0
  39. package/dist/esm/normalize.mjs.map +1 -0
  40. package/dist/esm/output.mjs +119 -0
  41. package/dist/esm/output.mjs.map +1 -0
  42. package/dist/esm/planCache.mjs +194 -0
  43. package/dist/esm/planCache.mjs.map +1 -0
  44. package/dist/esm/session.mjs +99 -0
  45. package/dist/esm/session.mjs.map +1 -0
  46. package/dist/esm/yuku.mjs +136 -0
  47. package/dist/esm/yuku.mjs.map +1 -0
  48. package/dist/esm/zero.mjs +352 -0
  49. package/dist/esm/zero.mjs.map +1 -0
  50. package/package.json +42 -4
  51. package/src/ast.ts +86 -0
  52. package/src/contracts.ts +148 -0
  53. package/src/diagnostics.ts +96 -0
  54. package/src/evaluate.ts +497 -0
  55. package/src/graph.ts +347 -0
  56. package/src/hash.ts +36 -0
  57. package/src/index.ts +15 -0
  58. package/src/ir.ts +154 -0
  59. package/src/lower.ts +418 -0
  60. package/src/materialize.ts +330 -0
  61. package/src/normalize.ts +846 -0
  62. package/src/output.ts +175 -0
  63. package/src/planCache.ts +327 -0
  64. package/src/session.ts +172 -0
  65. package/src/yuku.ts +189 -0
  66. package/src/zero.ts +598 -0
  67. package/types/ast.d.ts +10 -0
  68. package/types/ast.d.ts.map +1 -0
  69. package/types/contracts.d.ts +97 -0
  70. package/types/contracts.d.ts.map +1 -0
  71. package/types/diagnostics.d.ts +31 -0
  72. package/types/diagnostics.d.ts.map +1 -0
  73. package/types/evaluate.d.ts +36 -0
  74. package/types/evaluate.d.ts.map +1 -0
  75. package/types/graph.d.ts +37 -0
  76. package/types/graph.d.ts.map +1 -0
  77. package/types/hash.d.ts +8 -0
  78. package/types/hash.d.ts.map +1 -0
  79. package/types/index.d.ts +16 -0
  80. package/types/index.d.ts.map +1 -0
  81. package/types/ir.d.ts +118 -0
  82. package/types/ir.d.ts.map +1 -0
  83. package/types/lower.d.ts +99 -0
  84. package/types/lower.d.ts.map +1 -0
  85. package/types/materialize.d.ts +104 -0
  86. package/types/materialize.d.ts.map +1 -0
  87. package/types/normalize.d.ts +8 -0
  88. package/types/normalize.d.ts.map +1 -0
  89. package/types/output.d.ts +32 -0
  90. package/types/output.d.ts.map +1 -0
  91. package/types/planCache.d.ts +113 -0
  92. package/types/planCache.d.ts.map +1 -0
  93. package/types/session.d.ts +44 -0
  94. package/types/session.d.ts.map +1 -0
  95. package/types/yuku.d.ts +4 -0
  96. package/types/yuku.d.ts.map +1 -0
  97. package/types/zero.d.ts +98 -0
  98. package/types/zero.d.ts.map +1 -0
@@ -0,0 +1,200 @@
1
+
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all) __defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var materialize_exports = {};
23
+ __export(materialize_exports, { materializeModule: () => materializeModule });
24
+ module.exports = __toCommonJS(materialize_exports);
25
+ function compareCodeUnits(left, right) {
26
+ return left < right ? -1 : left > right ? 1 : 0;
27
+ }
28
+ function materializeValue(graph, value) {
29
+ if (value.kind === "static") {
30
+ return {
31
+ kind: "static",
32
+ value: value.value,
33
+ dependencies: [],
34
+ span: value.span,
35
+ literalOrigin: true
36
+ };
37
+ }
38
+ if (value.kind === "dom-style") {
39
+ return {
40
+ kind: "dom-style",
41
+ span: value.span,
42
+ items: value.items.map((item) => ({
43
+ condition: item.condition,
44
+ value: materializeValue(graph, item.value)
45
+ }))
46
+ };
47
+ }
48
+ const result = graph.evaluate(value);
49
+ if (result.ok) {
50
+ return {
51
+ kind: "static",
52
+ value: result.value,
53
+ dependencies: result.dependencies,
54
+ span: value
55
+ };
56
+ }
57
+ const conditional = graph.evaluateConditional(value);
58
+ if (conditional) {
59
+ return {
60
+ kind: "conditional",
61
+ test: conditional.test,
62
+ whenTrue: conditional.whenTrue.value,
63
+ whenFalse: conditional.whenFalse.value,
64
+ dependencies: [.../* @__PURE__ */ new Set([...conditional.whenTrue.dependencies, ...conditional.whenFalse.dependencies])].sort(compareCodeUnits),
65
+ bailout: result.bailout,
66
+ span: value
67
+ };
68
+ }
69
+ return {
70
+ kind: "bailout",
71
+ bailout: result.bailout,
72
+ span: value
73
+ };
74
+ }
75
+ function materializeEntry(graph, entry) {
76
+ if (entry.kind === "prop") {
77
+ return {
78
+ kind: entry.kind,
79
+ name: entry.name,
80
+ span: entry.span,
81
+ value: materializeValue(graph, entry.value)
82
+ };
83
+ }
84
+ if (entry.kind === "spread") {
85
+ return {
86
+ kind: entry.kind,
87
+ span: entry.span,
88
+ value: materializeValue(graph, entry.value)
89
+ };
90
+ }
91
+ if (entry.value.kind === "element" || entry.value.kind === "empty") {
92
+ return {
93
+ kind: entry.kind,
94
+ span: entry.span,
95
+ value: entry.value
96
+ };
97
+ }
98
+ return {
99
+ kind: entry.kind,
100
+ span: entry.span,
101
+ value: materializeValue(graph, entry.value)
102
+ };
103
+ }
104
+ function materializeElement(graph, element) {
105
+ const entries = element.complete ? element.entries : element.bailedEntries;
106
+ return {
107
+ kind: element.kind,
108
+ form: element.form,
109
+ id: element.id,
110
+ span: element.span,
111
+ propsSpan: element.propsSpan,
112
+ component: element.component,
113
+ complete: element.complete,
114
+ entries: entries.map((entry) => materializeEntry(graph, entry)),
115
+ bailouts: [...element.bailouts]
116
+ };
117
+ }
118
+ function materializeStyledDefinition(graph, definition) {
119
+ return {
120
+ kind: definition.kind,
121
+ id: definition.id,
122
+ name: definition.name,
123
+ span: definition.span,
124
+ definitionSpan: definition.definitionSpan,
125
+ factory: definition.factory,
126
+ base: definition.base,
127
+ baseClassName: definition.baseClassName ? materializeValue(graph, definition.baseClassName) : null,
128
+ options: materializeValue(graph, definition.options),
129
+ complete: definition.complete,
130
+ bailouts: [...definition.bailouts]
131
+ };
132
+ }
133
+ function collectDependencies(module2) {
134
+ const dependencies = /* @__PURE__ */ new Set();
135
+ const collect = (value) => {
136
+ if (value.kind === "static" || value.kind === "conditional") {
137
+ for (const dependency of value.dependencies) dependencies.add(dependency);
138
+ } else if (value.kind === "dom-style") {
139
+ for (const item of value.items) collect(item.value);
140
+ } else if (value.bailout.dependencyId) {
141
+ dependencies.add(value.bailout.dependencyId);
142
+ }
143
+ };
144
+ for (const element of module2.elements) {
145
+ if (element.component.provenance) {
146
+ dependencies.add(element.component.provenance.resolvedId);
147
+ }
148
+ if (element.component.definition) dependencies.add(element.component.definition.id);
149
+ for (const entry of element.entries) {
150
+ if ("value" in entry && entry.value.kind !== "element" && entry.value.kind !== "empty") {
151
+ collect(entry.value);
152
+ }
153
+ }
154
+ }
155
+ for (const definition of module2.styledDefinitions) {
156
+ dependencies.add(definition.factory.resolvedId);
157
+ if (definition.base.provenance) dependencies.add(definition.base.provenance.resolvedId);
158
+ if (definition.base.definition) dependencies.add(definition.base.definition.id);
159
+ if (definition.baseClassName) collect(definition.baseClassName);
160
+ collect(definition.options);
161
+ }
162
+ for (const definition of module2.domStyleDefinitions) {
163
+ dependencies.add(definition.factory.resolvedId);
164
+ collect(definition.value);
165
+ }
166
+ return [...dependencies].sort(compareCodeUnits);
167
+ }
168
+ function materializeModule(graph, id) {
169
+ const inputHash = graph.contentHash(id);
170
+ if (!inputHash) throw new Error(`Cannot materialize unknown host module ${id}`);
171
+ const result = graph.elementsOf(id);
172
+ const definitions = [...result.styledDefinitions];
173
+ const definitionKeys = new Set(definitions.map((definition) => `${definition.id}\0${definition.name}`));
174
+ for (const element of result.elements) {
175
+ const linked = element.component.definition;
176
+ if (!linked || linked.id === id) continue;
177
+ const definition = graph.elementsOf(linked.id).styledDefinitions.find((candidate) => candidate.id === linked.id && candidate.name === linked.name);
178
+ const key = definition && `${definition.id}\0${definition.name}`;
179
+ if (definition && key && !definitionKeys.has(key)) {
180
+ definitionKeys.add(key);
181
+ definitions.push(definition);
182
+ }
183
+ }
184
+ const base = {
185
+ version: 1,
186
+ id,
187
+ inputHash,
188
+ elements: result.elements.map((element) => materializeElement(graph, element)),
189
+ styledDefinitions: definitions.map((definition) => materializeStyledDefinition(graph, definition)),
190
+ domStyleDefinitions: result.domStyleDefinitions.map((definition) => ({
191
+ ...definition,
192
+ value: materializeValue(graph, definition.value)
193
+ })),
194
+ diagnostics: graph.diagnostics().filter(({ span }) => span.id === id)
195
+ };
196
+ return {
197
+ ...base,
198
+ dependencies: collectDependencies(base)
199
+ };
200
+ }