@vxrn/compiler 2.0.0-beta.33.1 → 2.0.0-beta.46.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 (95) hide show
  1. package/dist/cjs/cache.cjs +112 -109
  2. package/dist/cjs/configure.cjs +26 -28
  3. package/dist/cjs/constants.cjs +56 -60
  4. package/dist/cjs/index.cjs +420 -438
  5. package/dist/cjs/reactNativeCodegen.cjs +105 -114
  6. package/dist/cjs/reactNativeViewConfig.cjs +362 -381
  7. package/dist/cjs/refresh-runtime.cjs +390 -397
  8. package/dist/cjs/transformBabel.cjs +278 -218
  9. package/dist/cjs/transformHermesAsync.cjs +36 -47
  10. package/dist/cjs/transformHermesLoops.cjs +279 -281
  11. package/dist/cjs/transformSWC.cjs +183 -200
  12. package/dist/cjs/transformWorklets.cjs +107 -95
  13. package/dist/cjs/types.cjs +9 -11
  14. package/dist/cjs/worklets/autoworklet.cjs +277 -222
  15. package/dist/cjs/worklets/globals.cjs +124 -60
  16. package/dist/cjs/worklets/hash.cjs +23 -27
  17. package/dist/cjs/worklets/scope.cjs +338 -359
  18. package/dist/cjs/worklets/serialize.cjs +73 -75
  19. package/dist/cjs/worklets/transform.cjs +217 -222
  20. package/dist/cjs/worklets/types.cjs +9 -11
  21. package/dist/esm/cache.mjs +96 -89
  22. package/dist/esm/cache.mjs.map +1 -1
  23. package/dist/esm/configure.mjs +11 -10
  24. package/dist/esm/configure.mjs.map +1 -1
  25. package/dist/esm/constants.mjs +41 -41
  26. package/dist/esm/constants.mjs.map +1 -1
  27. package/dist/esm/index.js +417 -420
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/index.mjs +417 -420
  30. package/dist/esm/index.mjs.map +1 -1
  31. package/dist/esm/reactNativeCodegen.mjs +90 -88
  32. package/dist/esm/reactNativeCodegen.mjs.map +1 -1
  33. package/dist/esm/reactNativeViewConfig.mjs +347 -362
  34. package/dist/esm/reactNativeViewConfig.mjs.map +1 -1
  35. package/dist/esm/refresh-runtime.mjs +372 -376
  36. package/dist/esm/refresh-runtime.mjs.map +1 -1
  37. package/dist/esm/transformBabel.mjs +261 -194
  38. package/dist/esm/transformBabel.mjs.map +1 -1
  39. package/dist/esm/transformHermesAsync.mjs +20 -21
  40. package/dist/esm/transformHermesAsync.mjs.map +1 -1
  41. package/dist/esm/transformHermesLoops.mjs +264 -255
  42. package/dist/esm/transformHermesLoops.mjs.map +1 -1
  43. package/dist/esm/transformSWC.mjs +163 -171
  44. package/dist/esm/transformSWC.mjs.map +1 -1
  45. package/dist/esm/transformWorklets.mjs +89 -69
  46. package/dist/esm/transformWorklets.mjs.map +1 -1
  47. package/dist/esm/types.mjs +0 -2
  48. package/dist/esm/worklets/autoworklet.mjs +258 -200
  49. package/dist/esm/worklets/autoworklet.mjs.map +1 -1
  50. package/dist/esm/worklets/globals.mjs +109 -42
  51. package/dist/esm/worklets/globals.mjs.map +1 -1
  52. package/dist/esm/worklets/hash.mjs +10 -9
  53. package/dist/esm/worklets/hash.mjs.map +1 -1
  54. package/dist/esm/worklets/scope.mjs +325 -341
  55. package/dist/esm/worklets/scope.mjs.map +1 -1
  56. package/dist/esm/worklets/serialize.mjs +60 -58
  57. package/dist/esm/worklets/serialize.mjs.map +1 -1
  58. package/dist/esm/worklets/transform.mjs +201 -197
  59. package/dist/esm/worklets/transform.mjs.map +1 -1
  60. package/dist/esm/worklets/types.mjs +0 -2
  61. package/package.json +7 -6
  62. package/src/cache.ts +37 -7
  63. package/src/index.ts +33 -18
  64. package/src/transformBabel.test.ts +311 -1
  65. package/src/transformBabel.ts +110 -13
  66. package/src/transformWorklets.test.ts +7 -1
  67. package/types/cache.d.ts +2 -2
  68. package/types/cache.d.ts.map +1 -1
  69. package/types/index.d.ts.map +1 -1
  70. package/types/transformBabel.d.ts +16 -1
  71. package/types/transformBabel.d.ts.map +1 -1
  72. package/types/transformSWC.d.ts +1 -4
  73. package/types/transformSWC.d.ts.map +1 -1
  74. package/dist/cjs/transformBabel.test.cjs +0 -360
  75. package/dist/cjs/transformHermesLoops.test.cjs +0 -257
  76. package/dist/cjs/transformSWC.test.cjs +0 -117
  77. package/dist/cjs/transformWorklets.test.cjs +0 -604
  78. package/dist/esm/transformBabel.test.mjs +0 -337
  79. package/dist/esm/transformBabel.test.mjs.map +0 -1
  80. package/dist/esm/transformHermesLoops.test.mjs +0 -234
  81. package/dist/esm/transformHermesLoops.test.mjs.map +0 -1
  82. package/dist/esm/transformSWC.test.mjs +0 -118
  83. package/dist/esm/transformSWC.test.mjs.map +0 -1
  84. package/dist/esm/transformWorklets.test.mjs +0 -581
  85. package/dist/esm/transformWorklets.test.mjs.map +0 -1
  86. package/dist/esm/types.mjs.map +0 -1
  87. package/dist/esm/worklets/types.mjs.map +0 -1
  88. package/types/transformBabel.test.d.ts +0 -2
  89. package/types/transformBabel.test.d.ts.map +0 -1
  90. package/types/transformHermesLoops.test.d.ts +0 -2
  91. package/types/transformHermesLoops.test.d.ts.map +0 -1
  92. package/types/transformSWC.test.d.ts +0 -2
  93. package/types/transformSWC.test.d.ts.map +0 -1
  94. package/types/transformWorklets.test.d.ts +0 -2
  95. package/types/transformWorklets.test.d.ts.map +0 -1
@@ -1,421 +1,417 @@
1
1
  /*! Copyright (c) Meta Platforms, Inc. and affiliates. **/
2
- const REACT_FORWARD_REF_TYPE = /* @__PURE__ */Symbol.for("react.forward_ref");
3
- const REACT_MEMO_TYPE = /* @__PURE__ */Symbol.for("react.memo");
4
- let allFamiliesByID = /* @__PURE__ */new Map();
5
- let allFamiliesByType = /* @__PURE__ */new WeakMap();
6
- let allSignaturesByType = /* @__PURE__ */new WeakMap();
7
- const updatedFamiliesByType = /* @__PURE__ */new WeakMap();
2
+ const REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
3
+ const REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
4
+ let allFamiliesByID = /* @__PURE__ */ new Map();
5
+ let allFamiliesByType = /* @__PURE__ */ new WeakMap();
6
+ let allSignaturesByType = /* @__PURE__ */ new WeakMap();
7
+ const updatedFamiliesByType = /* @__PURE__ */ new WeakMap();
8
8
  let pendingUpdates = [];
9
- const helpersByRendererID = /* @__PURE__ */new Map();
10
- const helpersByRoot = /* @__PURE__ */new Map();
11
- const mountedRoots = /* @__PURE__ */new Set();
12
- const failedRoots = /* @__PURE__ */new Set();
13
- let rootElements = /* @__PURE__ */new WeakMap();
9
+ const helpersByRendererID = /* @__PURE__ */ new Map();
10
+ const helpersByRoot = /* @__PURE__ */ new Map();
11
+ const mountedRoots = /* @__PURE__ */ new Set();
12
+ const failedRoots = /* @__PURE__ */ new Set();
13
+ let rootElements = /* @__PURE__ */ new WeakMap();
14
14
  let isPerformingRefresh = false;
15
15
  function computeFullKey(signature) {
16
- if (signature.fullKey !== null) {
17
- return signature.fullKey;
18
- }
19
- let fullKey = signature.ownKey;
20
- let hooks2;
21
- try {
22
- hooks2 = signature.getCustomHooks();
23
- } catch (err) {
24
- signature.forceReset = true;
25
- signature.fullKey = fullKey;
26
- return fullKey;
27
- }
28
- for (let i = 0; i < hooks2.length; i++) {
29
- const hook = hooks2[i];
30
- if (typeof hook !== "function") {
31
- signature.forceReset = true;
32
- signature.fullKey = fullKey;
33
- return fullKey;
34
- }
35
- const nestedHookSignature = allSignaturesByType.get(hook);
36
- if (nestedHookSignature === void 0) {
37
- continue;
38
- }
39
- const nestedHookKey = computeFullKey(nestedHookSignature);
40
- if (nestedHookSignature.forceReset) {
41
- signature.forceReset = true;
42
- }
43
- fullKey += "\n---\n" + nestedHookKey;
44
- }
45
- signature.fullKey = fullKey;
46
- return fullKey;
16
+ if (signature.fullKey !== null) {
17
+ return signature.fullKey;
18
+ }
19
+ let fullKey = signature.ownKey;
20
+ let hooks2;
21
+ try {
22
+ hooks2 = signature.getCustomHooks();
23
+ } catch (err) {
24
+ signature.forceReset = true;
25
+ signature.fullKey = fullKey;
26
+ return fullKey;
27
+ }
28
+ for (let i = 0; i < hooks2.length; i++) {
29
+ const hook = hooks2[i];
30
+ if (typeof hook !== "function") {
31
+ signature.forceReset = true;
32
+ signature.fullKey = fullKey;
33
+ return fullKey;
34
+ }
35
+ const nestedHookSignature = allSignaturesByType.get(hook);
36
+ if (nestedHookSignature === void 0) {
37
+ continue;
38
+ }
39
+ const nestedHookKey = computeFullKey(nestedHookSignature);
40
+ if (nestedHookSignature.forceReset) {
41
+ signature.forceReset = true;
42
+ }
43
+ fullKey += "\n---\n" + nestedHookKey;
44
+ }
45
+ signature.fullKey = fullKey;
46
+ return fullKey;
47
47
  }
48
48
  function haveEqualSignatures(prevType, nextType) {
49
- const prevSignature = allSignaturesByType.get(prevType);
50
- const nextSignature = allSignaturesByType.get(nextType);
51
- if (prevSignature === void 0 && nextSignature === void 0) {
52
- return true;
53
- }
54
- if (prevSignature === void 0 || nextSignature === void 0) {
55
- return false;
56
- }
57
- if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {
58
- return false;
59
- }
60
- if (nextSignature.forceReset) {
61
- return false;
62
- }
63
- return true;
49
+ const prevSignature = allSignaturesByType.get(prevType);
50
+ const nextSignature = allSignaturesByType.get(nextType);
51
+ if (prevSignature === void 0 && nextSignature === void 0) {
52
+ return true;
53
+ }
54
+ if (prevSignature === void 0 || nextSignature === void 0) {
55
+ return false;
56
+ }
57
+ if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {
58
+ return false;
59
+ }
60
+ if (nextSignature.forceReset) {
61
+ return false;
62
+ }
63
+ return true;
64
64
  }
65
65
  function isReactClass(type) {
66
- return type.prototype && type.prototype.isReactComponent;
66
+ return type.prototype && type.prototype.isReactComponent;
67
67
  }
68
68
  function canPreserveStateBetween(prevType, nextType) {
69
- if (isReactClass(prevType) || isReactClass(nextType)) {
70
- return false;
71
- }
72
- if (haveEqualSignatures(prevType, nextType)) {
73
- return true;
74
- }
75
- return false;
69
+ if (isReactClass(prevType) || isReactClass(nextType)) {
70
+ return false;
71
+ }
72
+ if (haveEqualSignatures(prevType, nextType)) {
73
+ return true;
74
+ }
75
+ return false;
76
76
  }
77
77
  function resolveFamily(type) {
78
- return updatedFamiliesByType.get(type);
78
+ return updatedFamiliesByType.get(type);
79
79
  }
80
80
  function getProperty(object, property) {
81
- try {
82
- return object[property];
83
- } catch (err) {
84
- return void 0;
85
- }
81
+ try {
82
+ return object[property];
83
+ } catch (err) {
84
+ return void 0;
85
+ }
86
86
  }
87
87
  function performReactRefresh() {
88
- if (pendingUpdates.length === 0) {
89
- return null;
90
- }
91
- if (isPerformingRefresh) {
92
- return null;
93
- }
94
- isPerformingRefresh = true;
95
- try {
96
- const staleFamilies = /* @__PURE__ */new Set();
97
- const updatedFamilies = /* @__PURE__ */new Set();
98
- const updates = pendingUpdates;
99
- pendingUpdates = [];
100
- updates.forEach(([family, nextType]) => {
101
- const prevType = family.current;
102
- updatedFamiliesByType.set(prevType, family);
103
- updatedFamiliesByType.set(nextType, family);
104
- family.current = nextType;
105
- if (canPreserveStateBetween(prevType, nextType)) {
106
- updatedFamilies.add(family);
107
- } else {
108
- staleFamilies.add(family);
109
- }
110
- });
111
- const update = {
112
- updatedFamilies,
113
- // Families that will re-render preserving state
114
- staleFamilies
115
- // Families that will be remounted
116
- };
117
- helpersByRendererID.forEach(helpers => {
118
- helpers.setRefreshHandler(resolveFamily);
119
- });
120
- let didError = false;
121
- let firstError = null;
122
- const failedRootsSnapshot = new Set(failedRoots);
123
- const mountedRootsSnapshot = new Set(mountedRoots);
124
- const helpersByRootSnapshot = new Map(helpersByRoot);
125
- failedRootsSnapshot.forEach(root => {
126
- const helpers = helpersByRootSnapshot.get(root);
127
- if (helpers === void 0) {
128
- throw new Error("Could not find helpers for a root. This is a bug in React Refresh.");
129
- }
130
- if (!failedRoots.has(root)) {}
131
- if (rootElements === null) {
132
- return;
133
- }
134
- if (!rootElements.has(root)) {
135
- return;
136
- }
137
- const element = rootElements.get(root);
138
- try {
139
- helpers.scheduleRoot(root, element);
140
- } catch (err) {
141
- if (!didError) {
142
- didError = true;
143
- firstError = err;
144
- }
145
- }
146
- });
147
- mountedRootsSnapshot.forEach(root => {
148
- const helpers = helpersByRootSnapshot.get(root);
149
- if (helpers === void 0) {
150
- throw new Error("Could not find helpers for a root. This is a bug in React Refresh.");
151
- }
152
- if (!mountedRoots.has(root)) {}
153
- try {
154
- helpers.scheduleRefresh(root, update);
155
- } catch (err) {
156
- if (!didError) {
157
- didError = true;
158
- firstError = err;
159
- }
160
- }
161
- });
162
- if (didError) {
163
- throw firstError;
164
- }
165
- return update;
166
- } finally {
167
- isPerformingRefresh = false;
168
- }
88
+ if (pendingUpdates.length === 0) {
89
+ return null;
90
+ }
91
+ if (isPerformingRefresh) {
92
+ return null;
93
+ }
94
+ isPerformingRefresh = true;
95
+ try {
96
+ const staleFamilies = /* @__PURE__ */ new Set();
97
+ const updatedFamilies = /* @__PURE__ */ new Set();
98
+ const updates = pendingUpdates;
99
+ pendingUpdates = [];
100
+ updates.forEach(([family, nextType]) => {
101
+ const prevType = family.current;
102
+ updatedFamiliesByType.set(prevType, family);
103
+ updatedFamiliesByType.set(nextType, family);
104
+ family.current = nextType;
105
+ if (canPreserveStateBetween(prevType, nextType)) {
106
+ updatedFamilies.add(family);
107
+ } else {
108
+ staleFamilies.add(family);
109
+ }
110
+ });
111
+ const update = {
112
+ updatedFamilies,
113
+ staleFamilies
114
+ };
115
+ helpersByRendererID.forEach((helpers) => {
116
+ helpers.setRefreshHandler(resolveFamily);
117
+ });
118
+ let didError = false;
119
+ let firstError = null;
120
+ const failedRootsSnapshot = new Set(failedRoots);
121
+ const mountedRootsSnapshot = new Set(mountedRoots);
122
+ const helpersByRootSnapshot = new Map(helpersByRoot);
123
+ failedRootsSnapshot.forEach((root) => {
124
+ const helpers = helpersByRootSnapshot.get(root);
125
+ if (helpers === void 0) {
126
+ throw new Error("Could not find helpers for a root. This is a bug in React Refresh.");
127
+ }
128
+ if (!failedRoots.has(root)) {}
129
+ if (rootElements === null) {
130
+ return;
131
+ }
132
+ if (!rootElements.has(root)) {
133
+ return;
134
+ }
135
+ const element = rootElements.get(root);
136
+ try {
137
+ helpers.scheduleRoot(root, element);
138
+ } catch (err) {
139
+ if (!didError) {
140
+ didError = true;
141
+ firstError = err;
142
+ }
143
+ }
144
+ });
145
+ mountedRootsSnapshot.forEach((root) => {
146
+ const helpers = helpersByRootSnapshot.get(root);
147
+ if (helpers === void 0) {
148
+ throw new Error("Could not find helpers for a root. This is a bug in React Refresh.");
149
+ }
150
+ if (!mountedRoots.has(root)) {}
151
+ try {
152
+ helpers.scheduleRefresh(root, update);
153
+ } catch (err) {
154
+ if (!didError) {
155
+ didError = true;
156
+ firstError = err;
157
+ }
158
+ }
159
+ });
160
+ if (didError) {
161
+ throw firstError;
162
+ }
163
+ return update;
164
+ } finally {
165
+ isPerformingRefresh = false;
166
+ }
169
167
  }
170
168
  function register(type, id) {
171
- if (type === null) {
172
- return;
173
- }
174
- if (typeof type !== "function" && typeof type !== "object") {
175
- return;
176
- }
177
- if (allFamiliesByType.has(type)) {
178
- return;
179
- }
180
- let family = allFamiliesByID.get(id);
181
- if (family === void 0) {
182
- family = {
183
- current: type
184
- };
185
- allFamiliesByID.set(id, family);
186
- } else {
187
- pendingUpdates.push([family, type]);
188
- }
189
- allFamiliesByType.set(type, family);
190
- if (typeof type === "object" && type !== null) {
191
- switch (getProperty(type, "$$typeof")) {
192
- case REACT_FORWARD_REF_TYPE:
193
- register(type.render, id + "$render");
194
- break;
195
- case REACT_MEMO_TYPE:
196
- register(type.type, id + "$type");
197
- break;
198
- }
199
- }
169
+ if (type === null) {
170
+ return;
171
+ }
172
+ if (typeof type !== "function" && typeof type !== "object") {
173
+ return;
174
+ }
175
+ if (allFamiliesByType.has(type)) {
176
+ return;
177
+ }
178
+ let family = allFamiliesByID.get(id);
179
+ if (family === void 0) {
180
+ family = { current: type };
181
+ allFamiliesByID.set(id, family);
182
+ } else {
183
+ pendingUpdates.push([family, type]);
184
+ }
185
+ allFamiliesByType.set(type, family);
186
+ if (typeof type === "object" && type !== null) {
187
+ switch (getProperty(type, "$$typeof")) {
188
+ case REACT_FORWARD_REF_TYPE:
189
+ register(type.render, id + "$render");
190
+ break;
191
+ case REACT_MEMO_TYPE:
192
+ register(type.type, id + "$type");
193
+ break;
194
+ }
195
+ }
200
196
  }
201
197
  function setSignature(type, key, forceReset, getCustomHooks) {
202
- if (!allSignaturesByType.has(type)) {
203
- allSignaturesByType.set(type, {
204
- forceReset,
205
- ownKey: key,
206
- fullKey: null,
207
- getCustomHooks: getCustomHooks || (() => [])
208
- });
209
- }
210
- if (typeof type === "object" && type !== null) {
211
- switch (getProperty(type, "$$typeof")) {
212
- case REACT_FORWARD_REF_TYPE:
213
- setSignature(type.render, key, forceReset, getCustomHooks);
214
- break;
215
- case REACT_MEMO_TYPE:
216
- setSignature(type.type, key, forceReset, getCustomHooks);
217
- break;
218
- }
219
- }
198
+ if (!allSignaturesByType.has(type)) {
199
+ allSignaturesByType.set(type, {
200
+ forceReset,
201
+ ownKey: key,
202
+ fullKey: null,
203
+ getCustomHooks: getCustomHooks || (() => [])
204
+ });
205
+ }
206
+ if (typeof type === "object" && type !== null) {
207
+ switch (getProperty(type, "$$typeof")) {
208
+ case REACT_FORWARD_REF_TYPE:
209
+ setSignature(type.render, key, forceReset, getCustomHooks);
210
+ break;
211
+ case REACT_MEMO_TYPE:
212
+ setSignature(type.type, key, forceReset, getCustomHooks);
213
+ break;
214
+ }
215
+ }
220
216
  }
221
217
  function collectCustomHooksForSignature(type) {
222
- const signature = allSignaturesByType.get(type);
223
- if (signature !== void 0) {
224
- computeFullKey(signature);
225
- }
218
+ const signature = allSignaturesByType.get(type);
219
+ if (signature !== void 0) {
220
+ computeFullKey(signature);
221
+ }
226
222
  }
227
223
  function injectIntoGlobalHook(globalObject) {
228
- let hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;
229
- if (hook === void 0) {
230
- let nextID = 0;
231
- globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {
232
- renderers: /* @__PURE__ */new Map(),
233
- supportsFiber: true,
234
- inject: injected => nextID++,
235
- onScheduleFiberRoot: (id, root, children) => {},
236
- onCommitFiberRoot: (id, root, maybePriorityLevel, didError) => {},
237
- onCommitFiberUnmount() {}
238
- };
239
- }
240
- if (hook.isDisabled) {
241
- console["warn"]("Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). Fast Refresh is not compatible with this shim and will be disabled.");
242
- return;
243
- }
244
- const oldInject = hook.inject;
245
- hook.inject = function (injected) {
246
- const id = oldInject.apply(this, arguments);
247
- if (typeof injected.scheduleRefresh === "function" && typeof injected.setRefreshHandler === "function") {
248
- helpersByRendererID.set(id, injected);
249
- }
250
- return id;
251
- };
252
- hook.renderers.forEach((injected, id) => {
253
- if (typeof injected.scheduleRefresh === "function" && typeof injected.setRefreshHandler === "function") {
254
- helpersByRendererID.set(id, injected);
255
- }
256
- });
257
- const oldOnCommitFiberRoot = hook.onCommitFiberRoot;
258
- const oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || (() => {});
259
- hook.onScheduleFiberRoot = function (id, root, children) {
260
- if (!isPerformingRefresh) {
261
- failedRoots.delete(root);
262
- if (rootElements !== null) {
263
- rootElements.set(root, children);
264
- }
265
- }
266
- return oldOnScheduleFiberRoot.apply(this, arguments);
267
- };
268
- hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {
269
- const helpers = helpersByRendererID.get(id);
270
- if (helpers !== void 0) {
271
- helpersByRoot.set(root, helpers);
272
- const current = root.current;
273
- const alternate = current.alternate;
274
- if (alternate !== null) {
275
- const wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null && mountedRoots.has(root);
276
- const isMounted = current.memoizedState != null && current.memoizedState.element != null;
277
- if (!wasMounted && isMounted) {
278
- mountedRoots.add(root);
279
- failedRoots.delete(root);
280
- } else if (wasMounted && isMounted) {} else if (wasMounted && !isMounted) {
281
- mountedRoots.delete(root);
282
- if (didError) {
283
- failedRoots.add(root);
284
- } else {
285
- helpersByRoot.delete(root);
286
- }
287
- } else if (!wasMounted && !isMounted) {
288
- if (didError) {
289
- failedRoots.add(root);
290
- }
291
- }
292
- } else {
293
- mountedRoots.add(root);
294
- }
295
- }
296
- return oldOnCommitFiberRoot.apply(this, arguments);
297
- };
224
+ let hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;
225
+ if (hook === void 0) {
226
+ let nextID = 0;
227
+ globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {
228
+ renderers: /* @__PURE__ */ new Map(),
229
+ supportsFiber: true,
230
+ inject: (injected) => nextID++,
231
+ onScheduleFiberRoot: (id, root, children) => {},
232
+ onCommitFiberRoot: (id, root, maybePriorityLevel, didError) => {},
233
+ onCommitFiberUnmount() {}
234
+ };
235
+ }
236
+ if (hook.isDisabled) {
237
+ console["warn"]("Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). Fast Refresh is not compatible with this shim and will be disabled.");
238
+ return;
239
+ }
240
+ const oldInject = hook.inject;
241
+ hook.inject = function(injected) {
242
+ const id = oldInject.apply(this, arguments);
243
+ if (typeof injected.scheduleRefresh === "function" && typeof injected.setRefreshHandler === "function") {
244
+ helpersByRendererID.set(id, injected);
245
+ }
246
+ return id;
247
+ };
248
+ hook.renderers.forEach((injected, id) => {
249
+ if (typeof injected.scheduleRefresh === "function" && typeof injected.setRefreshHandler === "function") {
250
+ helpersByRendererID.set(id, injected);
251
+ }
252
+ });
253
+ const oldOnCommitFiberRoot = hook.onCommitFiberRoot;
254
+ const oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || (() => {});
255
+ hook.onScheduleFiberRoot = function(id, root, children) {
256
+ if (!isPerformingRefresh) {
257
+ failedRoots.delete(root);
258
+ if (rootElements !== null) {
259
+ rootElements.set(root, children);
260
+ }
261
+ }
262
+ return oldOnScheduleFiberRoot.apply(this, arguments);
263
+ };
264
+ hook.onCommitFiberRoot = function(id, root, maybePriorityLevel, didError) {
265
+ const helpers = helpersByRendererID.get(id);
266
+ if (helpers !== void 0) {
267
+ helpersByRoot.set(root, helpers);
268
+ const current = root.current;
269
+ const alternate = current.alternate;
270
+ if (alternate !== null) {
271
+ const wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null && mountedRoots.has(root);
272
+ const isMounted = current.memoizedState != null && current.memoizedState.element != null;
273
+ if (!wasMounted && isMounted) {
274
+ mountedRoots.add(root);
275
+ failedRoots.delete(root);
276
+ } else if (wasMounted && isMounted) {} else if (wasMounted && !isMounted) {
277
+ mountedRoots.delete(root);
278
+ if (didError) {
279
+ failedRoots.add(root);
280
+ } else {
281
+ helpersByRoot.delete(root);
282
+ }
283
+ } else if (!wasMounted && !isMounted) {
284
+ if (didError) {
285
+ failedRoots.add(root);
286
+ }
287
+ }
288
+ } else {
289
+ mountedRoots.add(root);
290
+ }
291
+ }
292
+ return oldOnCommitFiberRoot.apply(this, arguments);
293
+ };
298
294
  }
299
295
  function createSignatureFunctionForTransform() {
300
- let savedType;
301
- let hasCustomHooks;
302
- let didCollectHooks = false;
303
- return (type, key, forceReset, getCustomHooks) => {
304
- if (typeof key === "string") {
305
- if (!savedType) {
306
- savedType = type;
307
- hasCustomHooks = typeof getCustomHooks === "function";
308
- }
309
- if (type != null && (typeof type === "function" || typeof type === "object")) {
310
- setSignature(type, key, forceReset, getCustomHooks);
311
- }
312
- return type;
313
- }
314
- if (!didCollectHooks && hasCustomHooks) {
315
- didCollectHooks = true;
316
- collectCustomHooksForSignature(savedType);
317
- }
318
- };
296
+ let savedType;
297
+ let hasCustomHooks;
298
+ let didCollectHooks = false;
299
+ return (type, key, forceReset, getCustomHooks) => {
300
+ if (typeof key === "string") {
301
+ if (!savedType) {
302
+ savedType = type;
303
+ hasCustomHooks = typeof getCustomHooks === "function";
304
+ }
305
+ if (type != null && (typeof type === "function" || typeof type === "object")) {
306
+ setSignature(type, key, forceReset, getCustomHooks);
307
+ }
308
+ return type;
309
+ }
310
+ if (!didCollectHooks && hasCustomHooks) {
311
+ didCollectHooks = true;
312
+ collectCustomHooksForSignature(savedType);
313
+ }
314
+ };
319
315
  }
320
316
  function isLikelyComponentType(type) {
321
- switch (typeof type) {
322
- case "function":
323
- {
324
- if (type.prototype != null) {
325
- if (type.prototype.isReactComponent) {
326
- return true;
327
- }
328
- const ownNames = Object.getOwnPropertyNames(type.prototype);
329
- if (ownNames.length > 1 || ownNames[0] !== "constructor") {
330
- return false;
331
- }
332
- if (type.prototype.__proto__ !== Object.prototype) {
333
- return false;
334
- }
335
- }
336
- const name = type.name || type.displayName;
337
- return typeof name === "string" && /^[A-Z]/.test(name);
338
- }
339
- case "object":
340
- {
341
- if (type != null) {
342
- switch (getProperty(type, "$$typeof")) {
343
- case REACT_FORWARD_REF_TYPE:
344
- case REACT_MEMO_TYPE:
345
- return true;
346
- default:
347
- return false;
348
- }
349
- }
350
- return false;
351
- }
352
- default:
353
- {
354
- return false;
355
- }
356
- }
317
+ switch (typeof type) {
318
+ case "function": {
319
+ if (type.prototype != null) {
320
+ if (type.prototype.isReactComponent) {
321
+ return true;
322
+ }
323
+ const ownNames = Object.getOwnPropertyNames(type.prototype);
324
+ if (ownNames.length > 1 || ownNames[0] !== "constructor") {
325
+ return false;
326
+ }
327
+ if (type.prototype.__proto__ !== Object.prototype) {
328
+ return false;
329
+ }
330
+ }
331
+ const name = type.name || type.displayName;
332
+ return typeof name === "string" && /^[A-Z]/.test(name);
333
+ }
334
+ case "object": {
335
+ if (type != null) {
336
+ switch (getProperty(type, "$$typeof")) {
337
+ case REACT_FORWARD_REF_TYPE:
338
+ case REACT_MEMO_TYPE: return true;
339
+ default: return false;
340
+ }
341
+ }
342
+ return false;
343
+ }
344
+ default: {
345
+ return false;
346
+ }
347
+ }
357
348
  }
358
349
  function getRefreshReg(filename) {
359
- return (type, id) => register(type, filename + " " + id);
350
+ return (type, id) => register(type, filename + " " + id);
360
351
  }
361
352
  function registerExportsForReactRefresh(filename, moduleExports) {
362
- for (const key in moduleExports) {
363
- if (key === "__esModule") continue;
364
- const exportValue = moduleExports[key];
365
- if (isLikelyComponentType(exportValue)) {
366
- register(exportValue, filename + " export " + key);
367
- }
368
- }
353
+ for (const key in moduleExports) {
354
+ if (key === "__esModule") continue;
355
+ const exportValue = moduleExports[key];
356
+ if (isLikelyComponentType(exportValue)) {
357
+ register(exportValue, filename + " export " + key);
358
+ }
359
+ }
369
360
  }
370
361
  function debounce(fn, delay) {
371
- let handle;
372
- return () => {
373
- clearTimeout(handle);
374
- handle = setTimeout(fn, delay);
375
- };
362
+ let handle;
363
+ return () => {
364
+ clearTimeout(handle);
365
+ handle = setTimeout(fn, delay);
366
+ };
376
367
  }
377
368
  const hooks = [];
378
- window.__registerBeforePerformReactRefresh = cb => {
379
- hooks.push(cb);
369
+ window.__registerBeforePerformReactRefresh = (cb) => {
370
+ hooks.push(cb);
380
371
  };
381
372
  const enqueueUpdate = debounce(async () => {
382
- if (hooks.length) await Promise.all(hooks.map(cb => cb()));
383
- performReactRefresh();
373
+ if (hooks.length) await Promise.all(hooks.map((cb) => cb()));
374
+ performReactRefresh();
384
375
  }, 16);
385
376
  function validateRefreshBoundaryAndEnqueueUpdate(id, prevExports, nextExports) {
386
- const ignoredExports = ["sitemap", "loader", "generateStaticParams"];
387
- if (predicateOnExport(ignoredExports, prevExports, key => key in nextExports) !== true) {
388
- return "Could not Fast Refresh (export removed)";
389
- }
390
- if (predicateOnExport(ignoredExports, nextExports, key => key in prevExports) !== true) {
391
- return "Could not Fast Refresh (new export)";
392
- }
393
- let hasExports = false;
394
- const allExportsAreComponentsOrUnchanged = predicateOnExport(ignoredExports, nextExports, (key, value) => {
395
- hasExports = true;
396
- if (isLikelyComponentType(value)) return true;
397
- return prevExports[key] === nextExports[key];
398
- });
399
- if (hasExports && allExportsAreComponentsOrUnchanged === true) {
400
- enqueueUpdate();
401
- } else {
402
- return `Could not Fast Refresh ("${allExportsAreComponentsOrUnchanged}" export is incompatible). Learn more at https://github.com/vitejs/vite-plugin-react-swc#consistent-components-exports`;
403
- }
377
+ const ignoredExports = [
378
+ "sitemap",
379
+ "loader",
380
+ "generateStaticParams"
381
+ ];
382
+ if (predicateOnExport(ignoredExports, prevExports, (key) => key in nextExports) !== true) {
383
+ return "Could not Fast Refresh (export removed)";
384
+ }
385
+ if (predicateOnExport(ignoredExports, nextExports, (key) => key in prevExports) !== true) {
386
+ return "Could not Fast Refresh (new export)";
387
+ }
388
+ let hasExports = false;
389
+ const allExportsAreComponentsOrUnchanged = predicateOnExport(ignoredExports, nextExports, (key, value) => {
390
+ hasExports = true;
391
+ if (isLikelyComponentType(value)) return true;
392
+ return prevExports[key] === nextExports[key];
393
+ });
394
+ if (hasExports && allExportsAreComponentsOrUnchanged === true) {
395
+ enqueueUpdate();
396
+ } else {
397
+ return `Could not Fast Refresh ("${allExportsAreComponentsOrUnchanged}" export is incompatible). Learn more at https://github.com/vitejs/vite-plugin-react-swc#consistent-components-exports`;
398
+ }
404
399
  }
405
400
  function predicateOnExport(ignoredExports, moduleExports, predicate) {
406
- for (const key in moduleExports) {
407
- if (key === "__esModule") continue;
408
- if (ignoredExports.includes(key)) continue;
409
- const desc = Object.getOwnPropertyDescriptor(moduleExports, key);
410
- if (desc && desc.get) return key;
411
- if (!predicate(key, moduleExports[key])) return key;
412
- }
413
- return true;
401
+ for (const key in moduleExports) {
402
+ if (key === "__esModule") continue;
403
+ if (ignoredExports.includes(key)) continue;
404
+ const desc = Object.getOwnPropertyDescriptor(moduleExports, key);
405
+ if (desc && desc.get) return key;
406
+ if (!predicate(key, moduleExports[key])) return key;
407
+ }
408
+ return true;
414
409
  }
415
- const __hmr_import = module => import(/* @vite-ignore */
416
- module);
417
- var refresh_runtime_default = {
418
- injectIntoGlobalHook
419
- };
410
+ const __hmr_import = (module) => import(
411
+ /* @vite-ignore */
412
+ module
413
+ );
414
+ var refresh_runtime_default = { injectIntoGlobalHook };
415
+
420
416
  export { __hmr_import, createSignatureFunctionForTransform, refresh_runtime_default as default, getRefreshReg, injectIntoGlobalHook, registerExportsForReactRefresh, validateRefreshBoundaryAndEnqueueUpdate };
421
417
  //# sourceMappingURL=refresh-runtime.mjs.map