@hanzogui/static 3.0.5 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/check-dep-versions.cjs +201 -96
  2. package/dist/checkDeps.cjs +163 -92
  3. package/dist/constants.cjs +32 -30
  4. package/dist/exports.cjs +15 -13
  5. package/dist/extractor/accessSafe.cjs +25 -23
  6. package/dist/extractor/babelParse.cjs +30 -28
  7. package/dist/extractor/buildClassName.cjs +59 -35
  8. package/dist/extractor/bundle.cjs +159 -104
  9. package/dist/extractor/bundleConfig.cjs +463 -263
  10. package/dist/extractor/concatClassName.cjs +41 -29
  11. package/dist/extractor/createEvaluator.cjs +54 -41
  12. package/dist/extractor/createExtractor.cjs +1338 -661
  13. package/dist/extractor/createLogger.cjs +30 -25
  14. package/dist/extractor/detectModuleFormat.cjs +22 -16
  15. package/dist/extractor/ensureImportingConcat.cjs +31 -25
  16. package/dist/extractor/errors.cjs +12 -10
  17. package/dist/extractor/esbuildAliasPlugin.cjs +28 -16
  18. package/dist/extractor/esbuildTsconfigPaths.cjs +58 -36
  19. package/dist/extractor/evaluateAstNode.cjs +104 -59
  20. package/dist/extractor/extractHelpers.cjs +130 -67
  21. package/dist/extractor/extractMediaStyle.cjs +110 -69
  22. package/dist/extractor/extractToClassNames.cjs +336 -230
  23. package/dist/extractor/extractToNative.cjs +244 -149
  24. package/dist/extractor/findTopmostFunction.cjs +22 -13
  25. package/dist/extractor/generatedUid.cjs +39 -28
  26. package/dist/extractor/getGuiConfigPathFromOptionsConfig.cjs +20 -14
  27. package/dist/extractor/getPrefixLogs.cjs +12 -10
  28. package/dist/extractor/getPropValueFromAttributes.cjs +52 -34
  29. package/dist/extractor/getSourceModule.cjs +73 -37
  30. package/dist/extractor/getStaticBindingsForScope.cjs +131 -68
  31. package/dist/extractor/hoistClassNames.cjs +46 -32
  32. package/dist/extractor/literalToAst.cjs +67 -42
  33. package/dist/extractor/loadFile.cjs +9 -3
  34. package/dist/extractor/loadGui.cjs +198 -109
  35. package/dist/extractor/logLines.cjs +27 -19
  36. package/dist/extractor/normalizeTernaries.cjs +66 -44
  37. package/dist/extractor/propsToFontFamilyCache.cjs +15 -11
  38. package/dist/extractor/regenerateConfig.cjs +109 -81
  39. package/dist/extractor/removeUnusedHooks.cjs +73 -41
  40. package/dist/extractor/timer.cjs +23 -14
  41. package/dist/extractor/validHTMLAttributes.cjs +61 -59
  42. package/dist/extractor/watchGuiConfig.cjs +35 -23
  43. package/dist/getPragmaOptions.cjs +34 -19
  44. package/dist/helpers/memoize.cjs +24 -16
  45. package/dist/helpers/requireGuiCore.cjs +22 -15
  46. package/dist/index.cjs +26 -24
  47. package/dist/registerRequire.cjs +132 -77
  48. package/dist/server.cjs +35 -28
  49. package/dist/types.cjs +7 -5
  50. package/dist/worker.cjs +62 -40
  51. package/package.json +15 -15
  52. package/src/checkDeps.ts +1 -1
  53. package/src/extractor/bundle.ts +1 -1
  54. package/src/extractor/bundleConfig.ts +5 -5
  55. package/src/extractor/createExtractor.ts +28 -13
  56. package/src/extractor/createLogger.ts +1 -3
  57. package/src/extractor/extractToNative.ts +35 -9
  58. package/src/extractor/loadGui.ts +4 -4
  59. package/src/extractor/regenerateConfig.ts +2 -2
  60. package/src/getPragmaOptions.ts +2 -2
  61. package/src/helpers/requireGuiCore.ts +6 -6
  62. package/src/registerRequire.ts +4 -4
  63. package/src/worker.ts +1 -1
  64. package/types/extractor/createExtractor.d.ts.map +1 -1
  65. package/types/extractor/createLogger.d.ts.map +1 -1
  66. package/types/extractor/extractToNative.d.ts.map +1 -1
  67. package/types/worker.d.ts +1 -1
@@ -3,20 +3,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: !0
9
- });
10
- },
11
- __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
14
  get: () => from[key],
14
15
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
16
  });
16
- return to;
17
- };
17
+ }
18
+ return to;
19
+ };
18
20
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
- value: !0
21
+ value: true
20
22
  }), mod);
21
23
  var concatClassName_exports = {};
22
24
  __export(concatClassName_exports, {
@@ -24,20 +26,21 @@ __export(concatClassName_exports, {
24
26
  });
25
27
  module.exports = __toCommonJS(concatClassName_exports);
26
28
  function concatClassName(_cn) {
27
- const args = arguments,
28
- usedPrefixes = /* @__PURE__ */new Set();
29
+ const args = arguments;
30
+ const usedPrefixes = /* @__PURE__ */new Set();
29
31
  let final = "";
30
32
  const len = args.length;
31
33
  let propObjects = null;
32
34
  for (let x = len; x >= 0; x--) {
33
35
  const cns = args[x];
34
36
  if (!cns) continue;
35
- if (!Array.isArray(cns) && typeof cns != "string") {
36
- propObjects = propObjects || [], propObjects.push(cns);
37
+ if (!Array.isArray(cns) && typeof cns !== "string") {
38
+ propObjects = propObjects || [];
39
+ propObjects.push(cns);
37
40
  continue;
38
41
  }
39
- const names = Array.isArray(cns) ? cns : cns.split(" "),
40
- numNames = names.length;
42
+ const names = Array.isArray(cns) ? cns : cns.split(" ");
43
+ const numNames = names.length;
41
44
  for (let i = numNames - 1; i >= 0; i--) {
42
45
  const name = names[i];
43
46
  if (!name || name === " ") continue;
@@ -50,22 +53,31 @@ function concatClassName(_cn) {
50
53
  final = name + " " + final;
51
54
  continue;
52
55
  }
53
- const isMediaQuery = name[splitIndex + 1] === "_",
54
- styleKey = name.slice(1, name.indexOf("-")),
55
- mediaStart = splitIndex + 2,
56
- mediaEnd = name.indexOf("_", mediaStart),
57
- mediaKey = isMediaQuery && mediaEnd > mediaStart ? name.slice(mediaStart, mediaEnd) : null,
58
- uid = mediaKey ? styleKey + mediaKey : styleKey;
59
- if (usedPrefixes.has(uid)) continue;
56
+ const nextChar = name[splitIndex + 1];
57
+ const isMediaQuery = nextChar === "_";
58
+ const styleKey = name.slice(1, name.indexOf("-"));
59
+ const mediaStart = splitIndex + 2;
60
+ const mediaEnd = name.indexOf("_", mediaStart);
61
+ const mediaKey = isMediaQuery && mediaEnd > mediaStart ? name.slice(mediaStart, mediaEnd) : null;
62
+ const uid = mediaKey ? styleKey + mediaKey : styleKey;
63
+ if (usedPrefixes.has(uid)) {
64
+ continue;
65
+ }
60
66
  usedPrefixes.add(uid);
61
67
  const propName = styleKey;
62
- propName && propObjects && propObjects.some(po => {
63
- if (mediaKey) {
64
- const propKey = pseudoInvert[mediaKey];
65
- return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;
68
+ if (propName && propObjects) {
69
+ if (propObjects.some(po => {
70
+ if (mediaKey) {
71
+ const propKey = pseudoInvert[mediaKey];
72
+ return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;
73
+ }
74
+ const res = po && propName in po && po[propName] !== null;
75
+ return res;
76
+ })) {
77
+ continue;
66
78
  }
67
- return po && propName in po && po[propName] !== null;
68
- }) || (final = name + " " + final);
79
+ }
80
+ final = name + " " + final;
69
81
  }
70
82
  }
71
83
  return final.trim();
@@ -2,45 +2,47 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
32
34
  var createEvaluator_exports = {};
33
35
  __export(createEvaluator_exports, {
34
36
  createEvaluator: () => createEvaluator,
35
37
  createSafeEvaluator: () => createSafeEvaluator
36
38
  });
37
39
  module.exports = __toCommonJS(createEvaluator_exports);
38
- var import_node_vm = __toESM(require("node:vm")),
39
- import_generator = __toESM(require("@babel/generator")),
40
- t = __toESM(require("@babel/types")),
41
- import_esbuild = __toESM(require("esbuild")),
42
- import_constants = require("../constants.cjs"),
43
- import_evaluateAstNode = require("./evaluateAstNode.cjs");
40
+ var import_node_vm = __toESM(require("node:vm"));
41
+ var import_generator = __toESM(require("@babel/generator"));
42
+ var t = __toESM(require("@babel/types"));
43
+ var import_esbuild = __toESM(require("esbuild"));
44
+ var import_constants = require("../constants.cjs");
45
+ var import_evaluateAstNode = require("./evaluateAstNode.cjs");
44
46
  function createEvaluator({
45
47
  props,
46
48
  staticNamespace,
@@ -49,26 +51,37 @@ function createEvaluator({
49
51
  shouldPrintDebug
50
52
  }) {
51
53
  const evalFn = n => {
52
- if (t.isIdentifier(n) && typeof staticNamespace[n.name] < "u") return staticNamespace[n.name];
53
- const evalContext = import_node_vm.default.createContext(staticNamespace),
54
- codeWithTypescriptAnnotations = `(${(0, import_generator.default)(n).code})`,
55
- code = import_esbuild.default.transformSync(codeWithTypescriptAnnotations, {
56
- loader: "tsx"
57
- }).code.replace(/;\n$/, "");
58
- shouldPrintDebug && console.info("evaluating", code);
59
- const result1 = import_node_vm.default.runInContext(code, evalContext),
60
- result2 = import_node_vm.default.runInContext(code, evalContext);
61
- if (!(Object.is(result1, result2) || typeof result1 == "object" && typeof result2 == "object" && JSON.stringify(result1) === JSON.stringify(result2))) throw shouldPrintDebug && console.info("Bailing on non-deterministic expression:", code, `
62
- First result:`, result1, "Second result:", result2), new Error("Non-deterministic value, bailing");
54
+ if (t.isIdentifier(n) && typeof staticNamespace[n.name] !== "undefined") {
55
+ return staticNamespace[n.name];
56
+ }
57
+ const evalContext = import_node_vm.default.createContext(staticNamespace);
58
+ const codeWithTypescriptAnnotations = `(${(0, import_generator.default)(n).code})`;
59
+ const code = import_esbuild.default.transformSync(codeWithTypescriptAnnotations, {
60
+ loader: "tsx"
61
+ }).code.replace(/;\n$/, "");
62
+ if (shouldPrintDebug) {
63
+ console.info("evaluating", code);
64
+ }
65
+ const result1 = import_node_vm.default.runInContext(code, evalContext);
66
+ const result2 = import_node_vm.default.runInContext(code, evalContext);
67
+ const isDeterministic = Object.is(result1, result2) || typeof result1 === "object" && typeof result2 === "object" && JSON.stringify(result1) === JSON.stringify(result2);
68
+ if (!isDeterministic) {
69
+ if (shouldPrintDebug) {
70
+ console.info("Bailing on non-deterministic expression:", code, "\nFirst result:", result1, "Second result:", result2);
71
+ }
72
+ throw new Error(`Non-deterministic value, bailing`);
73
+ }
63
74
  return result1;
64
75
  };
65
- return n => (0, import_evaluateAstNode.evaluateAstNode)(n, evalFn);
76
+ return n => {
77
+ return (0, import_evaluateAstNode.evaluateAstNode)(n, evalFn);
78
+ };
66
79
  }
67
80
  function createSafeEvaluator(attemptEval) {
68
81
  return n => {
69
82
  try {
70
83
  return attemptEval(n);
71
- } catch {
84
+ } catch (err) {
72
85
  return import_constants.FAILED_EVAL;
73
86
  }
74
87
  };