@quilted/create 0.2.21 → 0.2.23

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 (129) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/esm/node_modules/.pnpm/@nodelib_fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.mjs +3 -3
  3. package/build/esm/node_modules/.pnpm/@nodelib_fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.mjs +1 -1
  4. package/build/esm/node_modules/.pnpm/@nodelib_fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.mjs +1 -1
  5. package/build/esm/node_modules/.pnpm/@nodelib_fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.mjs +1 -1
  6. package/build/esm/node_modules/.pnpm/@nodelib_fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.mjs +3 -3
  7. package/build/esm/node_modules/.pnpm/@nodelib_fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.mjs +1 -1
  8. package/build/esm/node_modules/.pnpm/@nodelib_fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.mjs +1 -1
  9. package/build/esm/node_modules/.pnpm/@nodelib_fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.mjs +1 -1
  10. package/build/esnext/app.esnext +2 -4
  11. package/build/esnext/module.esnext +1 -2
  12. package/build/esnext/node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.esnext +2 -4
  13. package/build/esnext/node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.esnext +1 -2
  14. package/build/esnext/node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/expand.esnext +3 -6
  15. package/build/esnext/node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/parse.esnext +4 -8
  16. package/build/esnext/node_modules/.pnpm/braces@3.0.2/node_modules/braces/lib/utils.esnext +8 -16
  17. package/build/esnext/node_modules/.pnpm/common-tags@1.8.2/node_modules/common-tags/es/TemplateTag/TemplateTag.esnext +3 -6
  18. package/build/esnext/node_modules/.pnpm/fastq@1.13.0/node_modules/fastq/queue.esnext +1 -2
  19. package/build/esnext/node_modules/.pnpm/fill-range@7.0.1/node_modules/fill-range/index.esnext +12 -24
  20. package/build/esnext/node_modules/.pnpm/is-extglob@2.1.1/node_modules/is-extglob/index.esnext +1 -2
  21. package/build/esnext/node_modules/.pnpm/kleur@3.0.3/node_modules/kleur/index.esnext +1 -2
  22. package/build/esnext/node_modules/.pnpm/micromatch@4.0.5/node_modules/micromatch/index.esnext +6 -12
  23. package/build/esnext/node_modules/.pnpm/minimatch@5.1.0/node_modules/minimatch/minimatch.esnext +19 -38
  24. package/build/esnext/node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.esnext +8 -16
  25. package/build/esnext/node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.esnext +3 -6
  26. package/build/esnext/node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.esnext +3 -6
  27. package/build/esnext/node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.esnext +2 -4
  28. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/datepart.esnext +1 -2
  29. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/day.esnext +1 -2
  30. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/hours.esnext +2 -4
  31. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/index.esnext +1 -2
  32. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/meridiem.esnext +1 -2
  33. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/milliseconds.esnext +1 -2
  34. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/minutes.esnext +1 -2
  35. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/month.esnext +1 -2
  36. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/seconds.esnext +1 -2
  37. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/dateparts/year.esnext +1 -2
  38. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/autocomplete.esnext +16 -30
  39. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/autocompleteMultiselect.esnext +6 -12
  40. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/confirm.esnext +4 -8
  41. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/date.esnext +9 -18
  42. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/index.esnext +1 -2
  43. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/multiselect.esnext +8 -13
  44. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/number.esnext +11 -22
  45. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/prompt.esnext +4 -8
  46. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/select.esnext +10 -17
  47. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/text.esnext +9 -18
  48. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/elements/toggle.esnext +7 -14
  49. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/index.esnext +15 -30
  50. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/prompts.esnext +1 -2
  51. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/action.esnext +24 -48
  52. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/clear.esnext +13 -26
  53. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/entriesToDisplay.esnext +2 -4
  54. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/figures.esnext +1 -2
  55. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/index.esnext +1 -2
  56. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/lines.esnext +2 -4
  57. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/strip.esnext +1 -2
  58. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/style.esnext +1 -2
  59. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/dist/util/wrap.esnext +3 -6
  60. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/index.esnext +2 -4
  61. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/datepart.esnext +1 -2
  62. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/day.esnext +1 -2
  63. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/hours.esnext +1 -2
  64. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/index.esnext +1 -2
  65. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/meridiem.esnext +1 -2
  66. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/milliseconds.esnext +1 -2
  67. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/minutes.esnext +1 -2
  68. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/month.esnext +1 -2
  69. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/seconds.esnext +1 -2
  70. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/dateparts/year.esnext +1 -2
  71. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/autocomplete.esnext +11 -22
  72. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/autocompleteMultiselect.esnext +6 -12
  73. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/confirm.esnext +4 -8
  74. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/date.esnext +8 -16
  75. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/index.esnext +1 -2
  76. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/multiselect.esnext +4 -8
  77. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/number.esnext +10 -20
  78. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/prompt.esnext +4 -8
  79. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/select.esnext +5 -10
  80. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/text.esnext +8 -16
  81. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/elements/toggle.esnext +7 -14
  82. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/index.esnext +4 -8
  83. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/prompts.esnext +1 -2
  84. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/action.esnext +24 -48
  85. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/clear.esnext +2 -4
  86. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/entriesToDisplay.esnext +2 -4
  87. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/figures.esnext +1 -2
  88. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/index.esnext +1 -2
  89. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/lines.esnext +2 -4
  90. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/strip.esnext +1 -2
  91. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/style.esnext +1 -2
  92. package/build/esnext/node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/util/wrap.esnext +2 -4
  93. package/build/esnext/node_modules/.pnpm/run-parallel@1.2.0/node_modules/run-parallel/index.esnext +3 -6
  94. package/build/esnext/node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.esnext +6 -12
  95. package/build/esnext/node_modules/.pnpm/to-regex-range@5.0.1/node_modules/to-regex-range/index.esnext +1 -2
  96. package/build/esnext/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/compose/resolve-flow-collection.esnext +11 -12
  97. package/build/esnext/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/parse/lexer.esnext +17 -18
  98. package/build/esnext/node_modules/.pnpm/yaml@2.1.1/node_modules/yaml/browser/dist/parse/parser.esnext +9 -10
  99. package/build/esnext/package.esnext +7 -14
  100. package/build/esnext/server.esnext +1 -2
  101. package/build/esnext/shared/prompts.esnext +3 -6
  102. package/build/esnext/shared.esnext +3 -6
  103. package/package.json +1 -1
  104. package/templates/app-basic/features/start/Start/Start.test.tsx +1 -1
  105. package/templates/app-basic/foundation/html/HTML.test.tsx +4 -4
  106. package/templates/app-basic/package.json +1 -1
  107. package/templates/app-basic/shared/context.ts +2 -5
  108. package/templates/app-basic/tests/render/render.tsx +12 -11
  109. package/templates/app-basic/tests/render/types.ts +11 -0
  110. package/templates/app-basic/tests/render.ts +1 -1
  111. package/templates/app-empty/package.json +1 -1
  112. package/templates/app-empty/tsconfig.json +2 -1
  113. package/templates/app-graphql/features/start/Start/Start.test.tsx +1 -1
  114. package/templates/app-graphql/foundation/html/HTML.test.tsx +4 -4
  115. package/templates/app-graphql/package.json +2 -2
  116. package/templates/app-graphql/shared/context.ts +2 -5
  117. package/templates/app-graphql/tests/render/render.tsx +22 -14
  118. package/templates/app-graphql/tests/render/types.ts +11 -0
  119. package/templates/app-graphql/tests/render.ts +1 -1
  120. package/templates/app-graphql/tsconfig.json +2 -1
  121. package/templates/app-trpc/features/start/Start/Start.test.tsx +1 -1
  122. package/templates/app-trpc/foundation/html/HTML.test.tsx +4 -4
  123. package/templates/app-trpc/package.json +2 -2
  124. package/templates/app-trpc/shared/context.ts +2 -5
  125. package/templates/app-trpc/tests/render/render.tsx +23 -15
  126. package/templates/app-trpc/tests/render/types.ts +11 -0
  127. package/templates/app-trpc/tests/render.ts +1 -1
  128. package/templates/app-trpc/tsconfig.json +2 -1
  129. package/templates/workspace/package.json +2 -2
@@ -1,60 +1,36 @@
1
1
  var action;
2
2
  var hasRequiredAction;
3
3
  function requireAction() {
4
- if (hasRequiredAction)
5
- return action;
4
+ if (hasRequiredAction) return action;
6
5
  hasRequiredAction = 1;
7
6
  action = (key, isSelect) => {
8
- if (key.meta && key.name !== "escape")
9
- return;
7
+ if (key.meta && key.name !== "escape") return;
10
8
  if (key.ctrl) {
11
- if (key.name === "a")
12
- return "first";
13
- if (key.name === "c")
14
- return "abort";
15
- if (key.name === "d")
16
- return "abort";
17
- if (key.name === "e")
18
- return "last";
19
- if (key.name === "g")
20
- return "reset";
9
+ if (key.name === "a") return "first";
10
+ if (key.name === "c") return "abort";
11
+ if (key.name === "d") return "abort";
12
+ if (key.name === "e") return "last";
13
+ if (key.name === "g") return "reset";
21
14
  }
22
15
  if (isSelect) {
23
- if (key.name === "j")
24
- return "down";
25
- if (key.name === "k")
26
- return "up";
16
+ if (key.name === "j") return "down";
17
+ if (key.name === "k") return "up";
27
18
  }
28
- if (key.name === "return")
29
- return "submit";
30
- if (key.name === "enter")
31
- return "submit";
32
- if (key.name === "backspace")
33
- return "delete";
34
- if (key.name === "delete")
35
- return "deleteForward";
36
- if (key.name === "abort")
37
- return "abort";
38
- if (key.name === "escape")
39
- return "exit";
40
- if (key.name === "tab")
41
- return "next";
42
- if (key.name === "pagedown")
43
- return "nextPage";
44
- if (key.name === "pageup")
45
- return "prevPage";
46
- if (key.name === "home")
47
- return "home";
48
- if (key.name === "end")
49
- return "end";
50
- if (key.name === "up")
51
- return "up";
52
- if (key.name === "down")
53
- return "down";
54
- if (key.name === "right")
55
- return "right";
56
- if (key.name === "left")
57
- return "left";
19
+ if (key.name === "return") return "submit";
20
+ if (key.name === "enter") return "submit";
21
+ if (key.name === "backspace") return "delete";
22
+ if (key.name === "delete") return "deleteForward";
23
+ if (key.name === "abort") return "abort";
24
+ if (key.name === "escape") return "exit";
25
+ if (key.name === "tab") return "next";
26
+ if (key.name === "pagedown") return "nextPage";
27
+ if (key.name === "pageup") return "prevPage";
28
+ if (key.name === "home") return "home";
29
+ if (key.name === "end") return "end";
30
+ if (key.name === "up") return "up";
31
+ if (key.name === "down") return "down";
32
+ if (key.name === "right") return "right";
33
+ if (key.name === "left") return "left";
58
34
  return false;
59
35
  };
60
36
  return action;
@@ -4,15 +4,13 @@ import { __require as requireSrc } from '../../../../../sisteransi@1.0.5/node_mo
4
4
  var clear;
5
5
  var hasRequiredClear;
6
6
  function requireClear() {
7
- if (hasRequiredClear)
8
- return clear;
7
+ if (hasRequiredClear) return clear;
9
8
  hasRequiredClear = 1;
10
9
  const strip = requireStrip();
11
10
  const { erase, cursor } = requireSrc();
12
11
  const width = (str) => [...strip(str)].length;
13
12
  clear = function(prompt, perLine) {
14
- if (!perLine)
15
- return erase.line + cursor.to(0);
13
+ if (!perLine) return erase.line + cursor.to(0);
16
14
  let rows = 0;
17
15
  const lines = prompt.split(/\r?\n/);
18
16
  for (let line of lines) {
@@ -1,14 +1,12 @@
1
1
  var entriesToDisplay;
2
2
  var hasRequiredEntriesToDisplay;
3
3
  function requireEntriesToDisplay() {
4
- if (hasRequiredEntriesToDisplay)
5
- return entriesToDisplay;
4
+ if (hasRequiredEntriesToDisplay) return entriesToDisplay;
6
5
  hasRequiredEntriesToDisplay = 1;
7
6
  entriesToDisplay = (cursor, total, maxVisible) => {
8
7
  maxVisible = maxVisible || total;
9
8
  let startIndex = Math.min(total - maxVisible, cursor - Math.floor(maxVisible / 2));
10
- if (startIndex < 0)
11
- startIndex = 0;
9
+ if (startIndex < 0) startIndex = 0;
12
10
  let endIndex = Math.min(startIndex + maxVisible, total);
13
11
  return { startIndex, endIndex };
14
12
  };
@@ -1,8 +1,7 @@
1
1
  var figures_1;
2
2
  var hasRequiredFigures;
3
3
  function requireFigures() {
4
- if (hasRequiredFigures)
5
- return figures_1;
4
+ if (hasRequiredFigures) return figures_1;
6
5
  hasRequiredFigures = 1;
7
6
  const main = {
8
7
  arrowUp: "\u2191",
@@ -10,8 +10,7 @@ import { __require as requireEntriesToDisplay } from './entriesToDisplay.esnext'
10
10
  var util;
11
11
  var hasRequiredUtil;
12
12
  function requireUtil() {
13
- if (hasRequiredUtil)
14
- return util;
13
+ if (hasRequiredUtil) return util;
15
14
  hasRequiredUtil = 1;
16
15
  util = {
17
16
  action: requireAction(),
@@ -3,14 +3,12 @@ import { __require as requireStrip } from './strip.esnext';
3
3
  var lines;
4
4
  var hasRequiredLines;
5
5
  function requireLines() {
6
- if (hasRequiredLines)
7
- return lines;
6
+ if (hasRequiredLines) return lines;
8
7
  hasRequiredLines = 1;
9
8
  const strip = requireStrip();
10
9
  lines = function(msg, perLine) {
11
10
  let lines2 = String(strip(msg) || "").split(/\r?\n/);
12
- if (!perLine)
13
- return lines2.length;
11
+ if (!perLine) return lines2.length;
14
12
  return lines2.map((l) => Math.ceil(l.length / perLine)).reduce((a, b) => a + b);
15
13
  };
16
14
  return lines;
@@ -1,8 +1,7 @@
1
1
  var strip;
2
2
  var hasRequiredStrip;
3
3
  function requireStrip() {
4
- if (hasRequiredStrip)
5
- return strip;
4
+ if (hasRequiredStrip) return strip;
6
5
  hasRequiredStrip = 1;
7
6
  strip = (str) => {
8
7
  const pattern = [
@@ -4,8 +4,7 @@ import { __require as requireFigures } from './figures.esnext';
4
4
  var style;
5
5
  var hasRequiredStyle;
6
6
  function requireStyle() {
7
- if (hasRequiredStyle)
8
- return style;
7
+ if (hasRequiredStyle) return style;
9
8
  hasRequiredStyle = 1;
10
9
  const c = requireKleur();
11
10
  const figures = requireFigures();
@@ -1,8 +1,7 @@
1
1
  var wrap;
2
2
  var hasRequiredWrap;
3
3
  function requireWrap() {
4
- if (hasRequiredWrap)
5
- return wrap;
4
+ if (hasRequiredWrap) return wrap;
6
5
  hasRequiredWrap = 1;
7
6
  wrap = (msg, opts = {}) => {
8
7
  const tab = Number.isSafeInteger(parseInt(opts.margin)) ? new Array(parseInt(opts.margin)).fill(" ").join("") : opts.margin || "";
@@ -10,8 +9,7 @@ function requireWrap() {
10
9
  return (msg || "").split(/\r?\n/g).map((line) => line.split(/\s+/g).reduce((arr, w) => {
11
10
  if (w.length + tab.length >= width || arr[arr.length - 1].length + w.length + 1 < width)
12
11
  arr[arr.length - 1] += ` ${w}`;
13
- else
14
- arr.push(`${tab}${w}`);
12
+ else arr.push(`${tab}${w}`);
15
13
  return arr;
16
14
  }, [tab]).join("\n")).join("\n");
17
15
  };
@@ -15,14 +15,11 @@ function runParallel(tasks, cb) {
15
15
  }
16
16
  function done(err) {
17
17
  function end() {
18
- if (cb)
19
- cb(err, results);
18
+ if (cb) cb(err, results);
20
19
  cb = null;
21
20
  }
22
- if (isSync)
23
- queueMicrotask(end);
24
- else
25
- end();
21
+ if (isSync) queueMicrotask(end);
22
+ else end();
26
23
  }
27
24
  function each(i, err, result) {
28
25
  results[i] = result;
@@ -1,28 +1,22 @@
1
1
  var src;
2
2
  var hasRequiredSrc;
3
3
  function requireSrc() {
4
- if (hasRequiredSrc)
5
- return src;
4
+ if (hasRequiredSrc) return src;
6
5
  hasRequiredSrc = 1;
7
6
  const ESC = "\x1B";
8
7
  const CSI = `${ESC}[`;
9
8
  const beep = "\x07";
10
9
  const cursor = {
11
10
  to(x, y) {
12
- if (!y)
13
- return `${CSI}${x + 1}G`;
11
+ if (!y) return `${CSI}${x + 1}G`;
14
12
  return `${CSI}${y + 1};${x + 1}H`;
15
13
  },
16
14
  move(x, y) {
17
15
  let ret = "";
18
- if (x < 0)
19
- ret += `${CSI}${-x}D`;
20
- else if (x > 0)
21
- ret += `${CSI}${x}C`;
22
- if (y < 0)
23
- ret += `${CSI}${-y}A`;
24
- else if (y > 0)
25
- ret += `${CSI}${y}B`;
16
+ if (x < 0) ret += `${CSI}${-x}D`;
17
+ else if (x > 0) ret += `${CSI}${x}C`;
18
+ if (y < 0) ret += `${CSI}${-y}A`;
19
+ else if (y > 0) ret += `${CSI}${y}B`;
26
20
  return ret;
27
21
  },
28
22
  up: (count = 1) => `${CSI}${count}A`,
@@ -155,8 +155,7 @@ function filterPatterns(arr, comparison, prefix, intersection, options) {
155
155
  }
156
156
  function zip(a, b) {
157
157
  let arr = [];
158
- for (let i = 0; i < a.length; i++)
159
- arr.push([a[i], b[i]]);
158
+ for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);
160
159
  return arr;
161
160
  }
162
161
  function compare(a, b) {
@@ -60,19 +60,18 @@ function resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onErr
60
60
  onError(props.start, "MISSING_CHAR", `Missing , between ${fcName} items`);
61
61
  if (props.comment) {
62
62
  let prevItemComment = "";
63
- loop:
64
- for (const st of start) {
65
- switch (st.type) {
66
- case "comma":
67
- case "space":
68
- break;
69
- case "comment":
70
- prevItemComment = st.source.substring(1);
71
- break loop;
72
- default:
73
- break loop;
74
- }
63
+ loop: for (const st of start) {
64
+ switch (st.type) {
65
+ case "comma":
66
+ case "space":
67
+ break;
68
+ case "comment":
69
+ prevItemComment = st.source.substring(1);
70
+ break loop;
71
+ default:
72
+ break loop;
75
73
  }
74
+ }
76
75
  if (prevItemComment) {
77
76
  let prev = coll.items[coll.items.length - 1];
78
77
  if (isPair(prev))
@@ -363,27 +363,26 @@ class Lexer {
363
363
  let nl = this.pos - 1;
364
364
  let indent = 0;
365
365
  let ch;
366
- loop:
367
- for (let i = this.pos; ch = this.buffer[i]; ++i) {
368
- switch (ch) {
369
- case " ":
370
- indent += 1;
371
- break;
372
- case "\n":
373
- nl = i;
374
- indent = 0;
366
+ loop: for (let i = this.pos; ch = this.buffer[i]; ++i) {
367
+ switch (ch) {
368
+ case " ":
369
+ indent += 1;
370
+ break;
371
+ case "\n":
372
+ nl = i;
373
+ indent = 0;
374
+ break;
375
+ case "\r": {
376
+ const next = this.buffer[i + 1];
377
+ if (!next && !this.atEnd)
378
+ return this.setNext("block-scalar");
379
+ if (next === "\n")
375
380
  break;
376
- case "\r": {
377
- const next = this.buffer[i + 1];
378
- if (!next && !this.atEnd)
379
- return this.setNext("block-scalar");
380
- if (next === "\n")
381
- break;
382
- }
383
- default:
384
- break loop;
385
381
  }
382
+ default:
383
+ break loop;
386
384
  }
385
+ }
387
386
  if (!ch && !this.atEnd)
388
387
  return this.setNext("block-scalar");
389
388
  if (indent >= this.indentNext) {
@@ -50,17 +50,16 @@ function getFirstKeyStartProps(prev) {
50
50
  if (prev.length === 0)
51
51
  return [];
52
52
  let i = prev.length;
53
- loop:
54
- while (--i >= 0) {
55
- switch (prev[i].type) {
56
- case "doc-start":
57
- case "explicit-key-ind":
58
- case "map-value-ind":
59
- case "seq-item-ind":
60
- case "newline":
61
- break loop;
62
- }
53
+ loop: while (--i >= 0) {
54
+ switch (prev[i].type) {
55
+ case "doc-start":
56
+ case "explicit-key-ind":
57
+ case "map-value-ind":
58
+ case "seq-item-ind":
59
+ case "newline":
60
+ break loop;
63
61
  }
62
+ }
64
63
  while (prev[++i]?.type === "space") {
65
64
  }
66
65
  return prev.splice(i, prev.length);
@@ -370,8 +370,7 @@ async function getDirectory(args, { name, inWorkspace }) {
370
370
  )} is not empty, is it safe to empty it?`,
371
371
  initial: true
372
372
  });
373
- if (empty)
374
- break;
373
+ if (empty) break;
375
374
  const promptDirectory = await prompt({
376
375
  type: "text",
377
376
  message: "What directory do you want to create your package in?"
@@ -384,10 +383,8 @@ async function getDirectory(args, { name, inWorkspace }) {
384
383
  return directory;
385
384
  }
386
385
  async function getDescription(args) {
387
- if (args["--description"])
388
- return args["--description"];
389
- if (args["--no-description"])
390
- return false;
386
+ if (args["--description"]) return args["--description"];
387
+ if (args["--no-description"]) return false;
391
388
  const description = await prompt({
392
389
  type: "text",
393
390
  message: "What is a short description of what this package will do?"
@@ -395,19 +392,15 @@ async function getDescription(args) {
395
392
  return description;
396
393
  }
397
394
  async function getRepository(args, { inWorkspace = false } = {}) {
398
- if (args["--repository"])
399
- return args["--repository"];
400
- if (args["--no-repository"])
401
- return false;
402
- if (!inWorkspace)
403
- return;
395
+ if (args["--repository"]) return args["--repository"];
396
+ if (args["--no-repository"]) return false;
397
+ if (!inWorkspace) return;
404
398
  const { globby } = await import('./node_modules/.pnpm/globby@13.1.1/node_modules/globby/index.esnext');
405
399
  const files = await globby("**/package.json", { ignore: ["**/node_modules"] });
406
400
  for (const file of files) {
407
401
  try {
408
402
  const json = JSON.parse(await fs.promises.readFile(file, "utf8"));
409
- if (json.repository)
410
- return json.repository;
403
+ if (json.repository) return json.repository;
411
404
  } catch {
412
405
  }
413
406
  }
@@ -245,8 +245,7 @@ async function getDirectory(argv, { name }) {
245
245
  )} is not empty, is it safe to empty it?`,
246
246
  initial: true
247
247
  });
248
- if (empty)
249
- break;
248
+ if (empty) break;
250
249
  const promptDirectory = await prompt({
251
250
  type: "text",
252
251
  message: "What directory do you want to create your new service in?"
@@ -4,10 +4,8 @@ import { prompt } from '../packages/cli-kit/build/esnext/prompt.esnext.esnext';
4
4
  import { getPackageManager as getPackageManager$1, createPackageManagerRunner } from '../packages/cli-kit/build/esnext/package-manager.esnext.esnext';
5
5
 
6
6
  async function getInWorkspace(argv) {
7
- if (argv["--in-workspace"])
8
- return true;
9
- if (argv["--not-in-workspace"])
10
- return false;
7
+ if (argv["--in-workspace"]) return true;
8
+ if (argv["--not-in-workspace"]) return false;
11
9
  return fs.existsSync("pnpm-workspace.yaml");
12
10
  }
13
11
  async function getCreateAsMonorepo(argv, {
@@ -37,8 +35,7 @@ async function getPackageManager(argv, options) {
37
35
  }
38
36
  const VALID_EXTRAS = /* @__PURE__ */ new Set(["github", "vscode"]);
39
37
  async function getExtrasToSetup(argv, { inWorkspace }) {
40
- if (inWorkspace || argv["--no-extras"])
41
- return /* @__PURE__ */ new Set();
38
+ if (inWorkspace || argv["--no-extras"]) return /* @__PURE__ */ new Set();
42
39
  if (argv["--extras"]) {
43
40
  return new Set(
44
41
  argv["--extras"].filter(
@@ -153,8 +153,7 @@ function mergeWorkspaceAndProjectPackageJsons(projectPackageJson, workspacePacka
153
153
  ...projectPackageJson.scripts
154
154
  };
155
155
  hasHandledScriptsField = true;
156
- if (key === "scripts")
157
- continue;
156
+ if (key === "scripts") continue;
158
157
  }
159
158
  if (isDependencyKey) {
160
159
  newPackageJson[key] = mergeDependencies(
@@ -166,10 +165,8 @@ function mergeWorkspaceAndProjectPackageJsons(projectPackageJson, workspacePacka
166
165
  }
167
166
  }
168
167
  for (const [key, value] of Object.entries(workspacePackageJson)) {
169
- if (seenKeys.has(key))
170
- continue;
171
- if (key === "workspaces")
172
- continue;
168
+ if (seenKeys.has(key)) continue;
169
+ if (key === "workspaces") continue;
173
170
  newPackageJson[key] = value;
174
171
  }
175
172
  return newPackageJson;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@quilted/create",
3
3
  "type": "module",
4
- "version": "0.2.21",
4
+ "version": "0.2.23",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -7,6 +7,6 @@ import Start from './Start.tsx';
7
7
  describe('<Start />', () => {
8
8
  it('includes a welcome message', async () => {
9
9
  const start = await renderApp(<Start />);
10
- expect(start).toContainReactText('Hello world!');
10
+ expect(start).toContainPreactText('Hello world!');
11
11
  });
12
12
  });
@@ -14,7 +14,7 @@ describe('<HTML />', () => {
14
14
  it('includes a responsive viewport tag', async () => {
15
15
  const head = await renderApp(<HTML />);
16
16
 
17
- expect(head).toContainReactComponent(Viewport, {
17
+ expect(head).toContainPreactComponent(Viewport, {
18
18
  cover: true,
19
19
  });
20
20
  });
@@ -22,7 +22,7 @@ describe('<HTML />', () => {
22
22
  it('prevents search robots from indexing the application', async () => {
23
23
  const head = await renderApp(<HTML />);
24
24
 
25
- expect(head).toContainReactComponent(SearchRobots, {
25
+ expect(head).toContainPreactComponent(SearchRobots, {
26
26
  index: false,
27
27
  follow: false,
28
28
  });
@@ -31,7 +31,7 @@ describe('<HTML />', () => {
31
31
  it('does not cache the response', async () => {
32
32
  const headers = await renderApp(<HTML />);
33
33
 
34
- expect(headers).toContainReactComponent(CacheControl, {
34
+ expect(headers).toContainPreactComponent(CacheControl, {
35
35
  cache: false,
36
36
  });
37
37
  });
@@ -39,7 +39,7 @@ describe('<HTML />', () => {
39
39
  it('adds a content security policy with a strict default policy', async () => {
40
40
  const headers = await renderApp(<HTML />);
41
41
 
42
- expect(headers).toContainReactComponent(ContentSecurityPolicy, {
42
+ expect(headers).toContainPreactComponent(ContentSecurityPolicy, {
43
43
  defaultSources: ["'self'"],
44
44
  });
45
45
  });
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {},
13
13
  "devDependencies": {
14
- "@quilted/quilt": "workspace:^0.6.0",
14
+ "@quilted/quilt": "^0.7.0",
15
15
  "jsdom": "^24.0.0",
16
16
  "preact": "^10.21.0",
17
17
  "react": "npm:@quilted/react@^18.2.0",
@@ -1,9 +1,6 @@
1
- import {
2
- createOptionalContext,
3
- createUseContextHook,
4
- } from '@quilted/quilt/react';
1
+ import {createOptionalContext} from '@quilted/quilt/context';
5
2
 
6
3
  export interface AppContext {}
7
4
 
8
5
  export const AppContextReact = createOptionalContext<AppContext>();
9
- export const useAppContext = createUseContextHook(AppContextReact);
6
+ export const useAppContext = AppContextReact.use;
@@ -1,4 +1,5 @@
1
- import {createRender} from '@quilted/quilt/react/testing';
1
+ import {createRender} from '@quilted/quilt/testing';
2
+ import {BrowserContext, BrowserTestMock} from '@quilted/quilt/browser/testing';
2
3
  import {TestRouting, TestRouter} from '@quilted/quilt/navigate/testing';
3
4
  import {Localization} from '@quilted/quilt/localize';
4
5
 
@@ -19,21 +20,21 @@ export const renderApp = createRender<
19
20
  // Create context that can be used by the `render` function, and referenced by test
20
21
  // authors on the `root.context` property. Context is used to share data between your
21
22
  // React tree and your test code, and is ideal for mocking out global context providers.
22
- context({router = new TestRouter()}) {
23
- return {router};
23
+ context({router = new TestRouter(), browser = new BrowserTestMock()}) {
24
+ return {router, browser};
24
25
  },
25
26
  // Render all of our app-wide context providers around each component under test.
26
27
  render(element, context, {locale = 'en'}) {
27
- const {router} = context;
28
+ const {router, browser} = context;
28
29
 
29
30
  return (
30
- <Localization locale={locale}>
31
- <TestRouting router={router}>
32
- <AppContextReact.Provider value={context}>
33
- {element}
34
- </AppContextReact.Provider>
35
- </TestRouting>
36
- </Localization>
31
+ <AppContextReact.Provider value={context}>
32
+ <BrowserContext browser={browser}>
33
+ <Localization locale={locale}>
34
+ <TestRouting router={router}>{element}</TestRouting>
35
+ </Localization>
36
+ </BrowserContext>
37
+ </AppContextReact.Provider>
37
38
  );
38
39
  },
39
40
  async afterRender() {
@@ -1,4 +1,5 @@
1
1
  import type {TestRouter} from '@quilted/quilt/navigate/testing';
2
+ import type {BrowserTestMock} from '@quilted/quilt/browser/testing';
2
3
 
3
4
  import type {AppContext} from '~/shared/context.ts';
4
5
 
@@ -11,6 +12,11 @@ export interface RenderOptions {
11
12
  */
12
13
  readonly router?: TestRouter;
13
14
 
15
+ /**
16
+ * A custom environment for this component test.
17
+ */
18
+ readonly browser?: BrowserTestMock;
19
+
14
20
  /**
15
21
  * A custom locale to use for this component test.
16
22
  */
@@ -22,6 +28,11 @@ export interface RenderContext extends AppContext {
22
28
  * The router used for this component test.
23
29
  */
24
30
  readonly router: TestRouter;
31
+
32
+ /**
33
+ * The browser environment for this component test.
34
+ */
35
+ readonly browser: BrowserTestMock;
25
36
  }
26
37
 
27
38
  export interface RenderActions extends Record<string, never> {}
@@ -1,4 +1,4 @@
1
- import '@quilted/quilt/react/testing';
1
+ import '@quilted/quilt/testing';
2
2
 
3
3
  export {TestRouter} from '@quilted/quilt/navigate/testing';
4
4
 
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {},
13
13
  "devDependencies": {
14
- "@quilted/quilt": "^0.6.0",
14
+ "@quilted/quilt": "^0.7.0",
15
15
  "preact": "^10.21.0",
16
16
  "react": "npm:@quilted/react@^18.2.0",
17
17
  "react-dom": "npm:@quilted/react-dom@^18.2.0"