@elench/testkit 0.1.114 → 0.1.116

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 (212) hide show
  1. package/README.md +33 -8
  2. package/lib/cli/args.mjs +3 -3
  3. package/lib/cli/assistant/app.mjs +4 -2
  4. package/lib/cli/assistant/session.mjs +5 -1
  5. package/lib/cli/assistant/state.mjs +1 -2
  6. package/lib/cli/command-flags.mjs +4 -0
  7. package/lib/cli/commands/db/schema/refresh.mjs +21 -0
  8. package/lib/cli/commands/db/schema/verify.mjs +27 -0
  9. package/lib/cli/components/blocks/run-tree.mjs +7 -2
  10. package/lib/cli/components/hooks/use-element-layout.mjs +63 -0
  11. package/lib/cli/components/hooks/use-spinner-frame.mjs +26 -0
  12. package/lib/cli/entrypoint.mjs +1 -0
  13. package/lib/cli/operations/db/schema/refresh/operation.mjs +56 -0
  14. package/lib/cli/operations/db/{snapshot/capture → schema/verify}/operation.mjs +6 -27
  15. package/lib/cli/operations/run/operation.mjs +1 -0
  16. package/lib/cli/renderers/db-schema/text.mjs +7 -0
  17. package/lib/config/database.mjs +64 -0
  18. package/lib/config-api/index.d.ts +16 -1
  19. package/lib/config-api/index.mjs +31 -16
  20. package/lib/database/fingerprint.mjs +2 -0
  21. package/lib/database/index.mjs +142 -104
  22. package/lib/database/schema-source.mjs +295 -0
  23. package/lib/database/template-steps.mjs +158 -38
  24. package/lib/runner/orchestrator.mjs +4 -3
  25. package/lib/runner/template-steps.mjs +12 -1
  26. package/lib/runner/template.mjs +16 -1
  27. package/node_modules/@alcalzone/ansi-tokenize/README.md +0 -5
  28. package/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.d.ts +8 -0
  29. package/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js +10 -8
  30. package/node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js.map +1 -1
  31. package/node_modules/@alcalzone/ansi-tokenize/build/tokenize.d.ts +1 -5
  32. package/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js +9 -45
  33. package/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js.map +1 -1
  34. package/node_modules/@alcalzone/ansi-tokenize/package.json +1 -1
  35. package/node_modules/@elench/next-analysis/package.json +1 -1
  36. package/node_modules/@elench/testkit-bridge/package.json +2 -2
  37. package/node_modules/@elench/testkit-protocol/package.json +1 -1
  38. package/node_modules/@elench/ts-analysis/package.json +1 -1
  39. package/node_modules/cli-boxes/index.d.ts +95 -90
  40. package/node_modules/cli-boxes/index.js +5 -2
  41. package/node_modules/cli-boxes/package.json +6 -13
  42. package/node_modules/cli-boxes/readme.md +15 -3
  43. package/node_modules/cli-truncate/index.d.ts +1 -1
  44. package/node_modules/cli-truncate/package.json +4 -4
  45. package/node_modules/cli-truncate/readme.md +1 -0
  46. package/node_modules/es-toolkit/CHANGELOG.md +801 -0
  47. package/node_modules/es-toolkit/src/compat/_internal/Equals.d.ts +1 -0
  48. package/node_modules/es-toolkit/src/compat/_internal/IsWritable.d.ts +3 -0
  49. package/node_modules/es-toolkit/src/compat/_internal/MutableList.d.ts +4 -0
  50. package/node_modules/es-toolkit/src/compat/_internal/RejectReadonly.d.ts +4 -0
  51. package/node_modules/esprima/ChangeLog +235 -0
  52. package/node_modules/ink/build/apply-styles.js +175 -0
  53. package/node_modules/ink/build/build-layout.js +77 -0
  54. package/node_modules/ink/build/calculate-wrapped-text.js +53 -0
  55. package/node_modules/ink/build/components/App.d.ts +1 -4
  56. package/node_modules/ink/build/components/App.js +22 -142
  57. package/node_modules/ink/build/components/App.js.map +1 -1
  58. package/node_modules/ink/build/components/AppContext.d.ts +3 -23
  59. package/node_modules/ink/build/components/AppContext.js +4 -7
  60. package/node_modules/ink/build/components/AppContext.js.map +1 -1
  61. package/node_modules/ink/build/components/Box.d.ts +3 -16
  62. package/node_modules/ink/build/components/Color.js +62 -0
  63. package/node_modules/ink/build/components/Cursor.d.ts +83 -0
  64. package/node_modules/ink/build/components/Cursor.js +53 -0
  65. package/node_modules/ink/build/components/Cursor.js.map +1 -0
  66. package/node_modules/ink/build/components/ErrorBoundary.d.ts +2 -2
  67. package/node_modules/ink/build/components/ErrorOverview.js +6 -6
  68. package/node_modules/ink/build/components/ErrorOverview.js.map +1 -1
  69. package/node_modules/ink/build/components/Static.js.map +1 -1
  70. package/node_modules/ink/build/components/StdinContext.d.ts +1 -7
  71. package/node_modules/ink/build/components/StdinContext.js +0 -1
  72. package/node_modules/ink/build/components/StdinContext.js.map +1 -1
  73. package/node_modules/ink/build/components/Text.d.ts +1 -1
  74. package/node_modules/ink/build/components/Text.js +1 -1
  75. package/node_modules/ink/build/components/Text.js.map +1 -1
  76. package/node_modules/ink/build/components/Transform.d.ts +1 -1
  77. package/node_modules/ink/build/devtools-window-polyfill.js +4 -7
  78. package/node_modules/ink/build/devtools-window-polyfill.js.map +1 -1
  79. package/node_modules/ink/build/devtools.js +6 -31
  80. package/node_modules/ink/build/devtools.js.map +1 -1
  81. package/node_modules/ink/build/dom.d.ts +1 -5
  82. package/node_modules/ink/build/dom.js +1 -20
  83. package/node_modules/ink/build/dom.js.map +1 -1
  84. package/node_modules/ink/build/experimental/apply-style.js +140 -0
  85. package/node_modules/ink/build/experimental/dom.js +123 -0
  86. package/node_modules/ink/build/experimental/output.js +91 -0
  87. package/node_modules/ink/build/experimental/reconciler.js +141 -0
  88. package/node_modules/ink/build/experimental/renderer.js +81 -0
  89. package/node_modules/ink/build/hooks/use-app.d.ts +1 -1
  90. package/node_modules/ink/build/hooks/use-app.js +1 -1
  91. package/node_modules/ink/build/hooks/use-cursor.d.ts +1 -1
  92. package/node_modules/ink/build/hooks/use-cursor.js +1 -1
  93. package/node_modules/ink/build/hooks/use-focus-manager.d.ts +2 -17
  94. package/node_modules/ink/build/hooks/use-focus-manager.js +1 -2
  95. package/node_modules/ink/build/hooks/use-focus-manager.js.map +1 -1
  96. package/node_modules/ink/build/hooks/use-focus.d.ts +1 -2
  97. package/node_modules/ink/build/hooks/use-focus.js +4 -5
  98. package/node_modules/ink/build/hooks/use-focus.js.map +1 -1
  99. package/node_modules/ink/build/hooks/use-input.d.ts +1 -2
  100. package/node_modules/ink/build/hooks/use-input.js +80 -82
  101. package/node_modules/ink/build/hooks/use-input.js.map +1 -1
  102. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.d.ts +1 -2
  103. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js +1 -2
  104. package/node_modules/ink/build/hooks/use-is-screen-reader-enabled.js.map +1 -1
  105. package/node_modules/ink/build/hooks/use-stderr.d.ts +1 -1
  106. package/node_modules/ink/build/hooks/use-stderr.js +1 -1
  107. package/node_modules/ink/build/hooks/use-stdin.d.ts +2 -4
  108. package/node_modules/ink/build/hooks/use-stdin.js +1 -2
  109. package/node_modules/ink/build/hooks/use-stdin.js.map +1 -1
  110. package/node_modules/ink/build/hooks/use-stdout.d.ts +1 -1
  111. package/node_modules/ink/build/hooks/use-stdout.js +1 -1
  112. package/node_modules/ink/build/hooks/useInput.js +38 -0
  113. package/node_modules/ink/build/index.d.ts +1 -8
  114. package/node_modules/ink/build/index.js +0 -4
  115. package/node_modules/ink/build/index.js.map +1 -1
  116. package/node_modules/ink/build/ink.d.ts +3 -48
  117. package/node_modules/ink/build/ink.js +155 -325
  118. package/node_modules/ink/build/ink.js.map +1 -1
  119. package/node_modules/ink/build/input-parser.d.ts +1 -4
  120. package/node_modules/ink/build/input-parser.js +30 -70
  121. package/node_modules/ink/build/input-parser.js.map +1 -1
  122. package/node_modules/ink/build/instance.js +205 -0
  123. package/node_modules/ink/build/layout.d.ts +7 -0
  124. package/node_modules/ink/build/layout.js +33 -0
  125. package/node_modules/ink/build/layout.js.map +1 -0
  126. package/node_modules/ink/build/log-update.d.ts +0 -1
  127. package/node_modules/ink/build/log-update.js +1 -13
  128. package/node_modules/ink/build/log-update.js.map +1 -1
  129. package/node_modules/ink/build/measure-element.d.ts +0 -4
  130. package/node_modules/ink/build/measure-element.js +0 -4
  131. package/node_modules/ink/build/measure-element.js.map +1 -1
  132. package/node_modules/ink/build/options.d.ts +52 -0
  133. package/node_modules/ink/build/options.js +2 -0
  134. package/node_modules/ink/build/options.js.map +1 -0
  135. package/node_modules/ink/build/output.js +0 -25
  136. package/node_modules/ink/build/output.js.map +1 -1
  137. package/node_modules/ink/build/parse-keypress.d.ts +3 -1
  138. package/node_modules/ink/build/parse-keypress.js +17 -19
  139. package/node_modules/ink/build/parse-keypress.js.map +1 -1
  140. package/node_modules/ink/build/reconciler.js +27 -46
  141. package/node_modules/ink/build/reconciler.js.map +1 -1
  142. package/node_modules/ink/build/render-border.js +18 -29
  143. package/node_modules/ink/build/render-border.js.map +1 -1
  144. package/node_modules/ink/build/render-to-string.js +1 -2
  145. package/node_modules/ink/build/render-to-string.js.map +1 -1
  146. package/node_modules/ink/build/render.d.ts +2 -57
  147. package/node_modules/ink/build/render.js +11 -18
  148. package/node_modules/ink/build/render.js.map +1 -1
  149. package/node_modules/ink/build/screen-reader-update.d.ts +13 -0
  150. package/node_modules/ink/build/screen-reader-update.js +38 -0
  151. package/node_modules/ink/build/screen-reader-update.js.map +1 -0
  152. package/node_modules/ink/build/styles.d.ts +16 -78
  153. package/node_modules/ink/build/styles.js +31 -102
  154. package/node_modules/ink/build/styles.js.map +1 -1
  155. package/node_modules/ink/build/utils.d.ts +2 -9
  156. package/node_modules/ink/build/utils.js +3 -18
  157. package/node_modules/ink/build/utils.js.map +1 -1
  158. package/node_modules/ink/build/wrap-text.js +0 -7
  159. package/node_modules/ink/build/wrap-text.js.map +1 -1
  160. package/node_modules/ink/build/write-synchronized.d.ts +1 -1
  161. package/node_modules/ink/build/write-synchronized.js +2 -4
  162. package/node_modules/ink/build/write-synchronized.js.map +1 -1
  163. package/node_modules/ink/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  164. package/node_modules/ink/node_modules/emoji-regex/README.md +107 -0
  165. package/node_modules/ink/node_modules/emoji-regex/index.d.ts +3 -0
  166. package/node_modules/ink/node_modules/emoji-regex/index.js +4 -0
  167. package/node_modules/ink/node_modules/emoji-regex/index.mjs +4 -0
  168. package/node_modules/ink/node_modules/emoji-regex/package.json +45 -0
  169. package/node_modules/{wrap-ansi → ink/node_modules/wrap-ansi}/index.d.ts +1 -1
  170. package/node_modules/ink/node_modules/wrap-ansi/index.js +222 -0
  171. package/node_modules/ink/node_modules/wrap-ansi/node_modules/string-width/index.d.ts +39 -0
  172. package/node_modules/ink/node_modules/wrap-ansi/node_modules/string-width/index.js +82 -0
  173. package/node_modules/ink/node_modules/wrap-ansi/node_modules/string-width/license +9 -0
  174. package/node_modules/ink/node_modules/wrap-ansi/node_modules/string-width/package.json +64 -0
  175. package/node_modules/ink/node_modules/wrap-ansi/node_modules/string-width/readme.md +66 -0
  176. package/node_modules/{wrap-ansi → ink/node_modules/wrap-ansi}/package.json +11 -11
  177. package/node_modules/{wrap-ansi → ink/node_modules/wrap-ansi}/readme.md +0 -2
  178. package/node_modules/ink/package.json +98 -34
  179. package/node_modules/ink/readme.md +48 -554
  180. package/node_modules/slice-ansi/index.d.ts +1 -1
  181. package/node_modules/slice-ansi/index.js +89 -146
  182. package/node_modules/slice-ansi/package.json +5 -5
  183. package/node_modules/slice-ansi/readme.md +0 -1
  184. package/node_modules/slice-ansi/tokenize-ansi.js +1 -1
  185. package/package.json +14 -10
  186. package/packages/testkit-bridge/node_modules/@elench/testkit-protocol/dist/index.d.ts +188 -0
  187. package/packages/testkit-bridge/node_modules/@elench/testkit-protocol/dist/index.d.ts.map +1 -0
  188. package/packages/testkit-bridge/node_modules/@elench/testkit-protocol/dist/index.js +293 -0
  189. package/packages/testkit-bridge/node_modules/@elench/testkit-protocol/dist/index.js.map +1 -0
  190. package/packages/testkit-bridge/node_modules/@elench/testkit-protocol/package.json +25 -0
  191. package/lib/cli/commands/db/snapshot/capture.mjs +0 -26
  192. package/lib/cli/renderers/db-snapshot-capture/text.mjs +0 -3
  193. package/node_modules/@alcalzone/ansi-tokenize/build/consts.d.ts +0 -17
  194. package/node_modules/@alcalzone/ansi-tokenize/build/consts.js +0 -28
  195. package/node_modules/@alcalzone/ansi-tokenize/build/consts.js.map +0 -1
  196. package/node_modules/ink/build/components/AnimationContext.d.ts +0 -9
  197. package/node_modules/ink/build/components/AnimationContext.js +0 -13
  198. package/node_modules/ink/build/components/AnimationContext.js.map +0 -1
  199. package/node_modules/ink/build/hooks/use-animation.d.ts +0 -49
  200. package/node_modules/ink/build/hooks/use-animation.js +0 -87
  201. package/node_modules/ink/build/hooks/use-animation.js.map +0 -1
  202. package/node_modules/ink/build/hooks/use-box-metrics.d.ts +0 -59
  203. package/node_modules/ink/build/hooks/use-box-metrics.js +0 -88
  204. package/node_modules/ink/build/hooks/use-box-metrics.js.map +0 -1
  205. package/node_modules/ink/build/hooks/use-paste.d.ts +0 -35
  206. package/node_modules/ink/build/hooks/use-paste.js +0 -62
  207. package/node_modules/ink/build/hooks/use-paste.js.map +0 -1
  208. package/node_modules/ink/build/hooks/use-window-size.d.ts +0 -18
  209. package/node_modules/ink/build/hooks/use-window-size.js +0 -22
  210. package/node_modules/ink/build/hooks/use-window-size.js.map +0 -1
  211. package/node_modules/wrap-ansi/index.js +0 -468
  212. /package/node_modules/{wrap-ansi → ink/node_modules/wrap-ansi}/license +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ink",
3
- "version": "7.0.1",
3
+ "version": "6.8.0",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": "vadimdemedes/ink",
@@ -15,16 +15,13 @@
15
15
  "default": "./build/index.js"
16
16
  },
17
17
  "engines": {
18
- "node": ">=22"
18
+ "node": ">=20"
19
19
  },
20
20
  "scripts": {
21
21
  "dev": "tsc --watch",
22
22
  "build": "tsc",
23
23
  "prepare": "npm run build",
24
- "test": "npm run typecheck && npm run lint && FORCE_COLOR=true ava",
25
- "lint": "xo",
26
- "format": "prettier --write .",
27
- "typecheck": "tsc --noEmit",
24
+ "test": "tsc --noEmit && xo && FORCE_COLOR=true ava",
28
25
  "example": "NODE_NO_WARNINGS=1 node --import=tsx",
29
26
  "benchmark": "NODE_NO_WARNINGS=1 node --import=tsx",
30
27
  "inspect": "react-devtools"
@@ -47,66 +44,69 @@
47
44
  "text"
48
45
  ],
49
46
  "dependencies": {
50
- "@alcalzone/ansi-tokenize": "^0.3.0",
47
+ "@alcalzone/ansi-tokenize": "^0.2.4",
51
48
  "ansi-escapes": "^7.3.0",
52
- "ansi-styles": "^6.2.3",
49
+ "ansi-styles": "^6.2.1",
53
50
  "auto-bind": "^5.0.1",
54
- "chalk": "^5.6.2",
55
- "cli-boxes": "^4.0.1",
51
+ "chalk": "^5.6.0",
52
+ "cli-boxes": "^3.0.0",
56
53
  "cli-cursor": "^4.0.0",
57
- "cli-truncate": "^6.0.0",
54
+ "cli-truncate": "^5.1.1",
58
55
  "code-excerpt": "^4.0.0",
59
- "es-toolkit": "^1.45.1",
56
+ "es-toolkit": "^1.39.10",
60
57
  "indent-string": "^5.0.0",
61
58
  "is-in-ci": "^2.0.0",
62
59
  "patch-console": "^2.0.0",
63
60
  "react-reconciler": "^0.33.0",
64
61
  "scheduler": "^0.27.0",
65
62
  "signal-exit": "^3.0.7",
66
- "slice-ansi": "^9.0.0",
63
+ "slice-ansi": "^8.0.0",
67
64
  "stack-utils": "^2.0.6",
68
- "string-width": "^8.2.0",
65
+ "string-width": "^8.1.1",
69
66
  "terminal-size": "^4.0.1",
70
- "type-fest": "^5.5.0",
67
+ "type-fest": "^5.4.1",
71
68
  "widest-line": "^6.0.0",
72
- "wrap-ansi": "^10.0.0",
73
- "ws": "^8.20.0",
69
+ "wrap-ansi": "^9.0.0",
70
+ "ws": "^8.18.0",
74
71
  "yoga-layout": "~3.2.1"
75
72
  },
76
73
  "devDependencies": {
77
- "@faker-js/faker": "^10.4.0",
78
- "@sindresorhus/tsconfig": "^8.1.0",
79
- "@sinonjs/fake-timers": "^15.3.0",
74
+ "@faker-js/faker": "^10.3.0",
75
+ "@sindresorhus/tsconfig": "^7.0.0",
76
+ "@sinonjs/fake-timers": "^15.1.0",
80
77
  "@types/ms": "^2.1.0",
81
- "@types/node": "^25.5.2",
82
- "@types/react": "^19.2.14",
78
+ "@types/node": "^25.0.10",
79
+ "@types/react": "^19.2.13",
83
80
  "@types/react-reconciler": "^0.33.0",
84
81
  "@types/scheduler": "^0.26.0",
85
82
  "@types/signal-exit": "^3.0.0",
86
- "@types/sinon": "^21.0.1",
87
- "@types/stack-utils": "^2.0.3",
83
+ "@types/sinon": "^21.0.0",
84
+ "@types/stack-utils": "^2.0.2",
88
85
  "@types/ws": "^8.18.1",
89
86
  "@vdemedes/prettier-config": "^2.0.1",
90
- "ava": "^7.0.0",
87
+ "ava": "^5.1.1",
91
88
  "boxen": "^8.0.1",
92
89
  "delay": "^7.0.0",
90
+ "eslint-config-xo-react": "0.27.0",
91
+ "eslint-plugin-react": "^7.37.5",
92
+ "eslint-plugin-react-hooks": "^5.0.0",
93
93
  "ms": "^2.1.3",
94
- "node-pty": "^1.2.0-beta.12",
95
- "p-queue": "^9.1.2",
94
+ "node-pty": "^1.2.0-beta.10",
95
+ "p-queue": "^9.0.0",
96
96
  "prettier": "^3.8.1",
97
97
  "react": "^19.2.4",
98
- "react-devtools": "^7.0.1",
99
98
  "react-devtools-core": "^7.0.1",
100
- "react-router": "^7.14.0",
101
- "sinon": "^21.0.3",
102
- "strip-ansi": "^7.2.0",
99
+ "react-devtools": "^7.0.1",
100
+ "react-router": "^7.13.0",
101
+ "sinon": "^21.0.0",
102
+ "strip-ansi": "^7.1.0",
103
103
  "tsx": "^4.21.0",
104
104
  "typescript": "^5.8.3",
105
- "xo": "^1.2.3"
105
+ "xo": "^0.59.3"
106
106
  },
107
107
  "peerDependencies": {
108
- "@types/react": ">=19.2.0",
109
- "react": ">=19.2.0",
108
+ "@types/react": ">=19.0.0",
109
+ "react": ">=19.0.0",
110
110
  "react-devtools-core": ">=6.1.2"
111
111
  },
112
112
  "peerDependenciesMeta": {
@@ -133,5 +133,69 @@
133
133
  "--import=tsx"
134
134
  ]
135
135
  },
136
+ "xo": {
137
+ "extends": [
138
+ "xo-react"
139
+ ],
140
+ "plugins": [
141
+ "react"
142
+ ],
143
+ "prettier": true,
144
+ "rules": {
145
+ "react/no-unescaped-entities": "off",
146
+ "react/state-in-constructor": "off",
147
+ "react/jsx-indent": "off",
148
+ "react/prop-types": "off",
149
+ "unicorn/import-index": "off",
150
+ "import/no-useless-path-segments": "off",
151
+ "react-hooks/exhaustive-deps": "off",
152
+ "complexity": "off"
153
+ },
154
+ "ignores": [
155
+ "src/parse-keypress.ts"
156
+ ],
157
+ "overrides": [
158
+ {
159
+ "files": [
160
+ "src/**/*.{ts,tsx}",
161
+ "test/**/*.{ts,tsx}"
162
+ ],
163
+ "rules": {
164
+ "no-unused-expressions": "off",
165
+ "camelcase": [
166
+ "error",
167
+ {
168
+ "allow": [
169
+ "^unstable__",
170
+ "^internal_"
171
+ ]
172
+ }
173
+ ],
174
+ "unicorn/filename-case": "off",
175
+ "react/default-props-match-prop-types": "off",
176
+ "unicorn/prevent-abbreviations": "off",
177
+ "react/require-default-props": "off",
178
+ "react/jsx-curly-brace-presence": "off",
179
+ "@typescript-eslint/no-empty-function": "off",
180
+ "@typescript-eslint/promise-function-async": "warn",
181
+ "@typescript-eslint/explicit-function-return": "off",
182
+ "@typescript-eslint/explicit-function-return-type": "off",
183
+ "dot-notation": "off",
184
+ "react/boolean-prop-naming": "off",
185
+ "unicorn/prefer-dom-node-remove": "off",
186
+ "unicorn/prefer-event-target": "off"
187
+ }
188
+ },
189
+ {
190
+ "files": [
191
+ "examples/**/*.{ts,tsx}",
192
+ "benchmark/**/*.{ts,tsx}"
193
+ ],
194
+ "rules": {
195
+ "import/no-unassigned-import": "off"
196
+ }
197
+ }
198
+ ]
199
+ },
136
200
  "prettier": "@vdemedes/prettier-config"
137
201
  }