@acutis/cli 0.1.2-dev.17 → 0.1.2-dev.19

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 (63) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/9eLkUDDj.js +1 -0
  3. package/.output/public/_nuxt/BGkBW2ni2.js +1 -0
  4. package/.output/public/_nuxt/BKydt2Wp2.js +4 -0
  5. package/.output/public/_nuxt/CDI0GNVb2.js +1 -0
  6. package/.output/public/_nuxt/CqZ7dV6a2.js +64 -0
  7. package/.output/public/_nuxt/{CC0OsuIz.js → DtncvtMS.js} +3 -3
  8. package/.output/public/_nuxt/builds/latest.json +1 -1
  9. package/.output/public/_nuxt/builds/meta/a872bf7d-d21f-4cc5-b4d7-6ddb7b63d620.json +1 -0
  10. package/.output/public/_nuxt/entry.Ci6Ki0cW.css +2 -0
  11. package/.output/public/_nuxt/tags.B5A43CvD.css +1 -0
  12. package/.output/server/chunks/_/auth2.mjs +3 -3
  13. package/.output/server/chunks/_/environment.mjs +2 -2
  14. package/.output/server/chunks/_/generation.mjs +3 -3
  15. package/.output/server/chunks/_/project.mjs +2 -2
  16. package/.output/server/chunks/_/project.service.mjs +2 -30
  17. package/.output/server/chunks/_/project.service.mjs.map +1 -1
  18. package/.output/server/chunks/_/recording.mjs +5 -2
  19. package/.output/server/chunks/_/recording.mjs.map +1 -1
  20. package/.output/server/chunks/_/scenario.mjs +4 -2
  21. package/.output/server/chunks/_/scenario.mjs.map +1 -1
  22. package/.output/server/chunks/_/scenario2.mjs +22 -5
  23. package/.output/server/chunks/_/scenario2.mjs.map +1 -1
  24. package/.output/server/chunks/_/spec-rules.mjs +28 -231
  25. package/.output/server/chunks/_/spec-rules.mjs.map +1 -1
  26. package/.output/server/chunks/build/{_...scenario_-DNqQ06NM.mjs → _...scenario_-CTwC_evr.mjs} +172 -31
  27. package/.output/server/chunks/build/_...scenario_-CTwC_evr.mjs.map +1 -0
  28. package/.output/server/chunks/build/{_slug_-BlLRYU9d.mjs → _slug_-DEXTo_9N.mjs} +58 -34
  29. package/.output/server/chunks/build/{_slug_-BlLRYU9d.mjs.map → _slug_-DEXTo_9N.mjs.map} +1 -1
  30. package/.output/server/chunks/build/{tags-DrKY6Ah4.mjs → tags-DQ0X0wtQ.mjs} +59 -14
  31. package/.output/server/chunks/build/{tags-DrKY6Ah4.mjs.map → tags-DQ0X0wtQ.mjs.map} +1 -1
  32. package/.output/server/chunks/build/timeline-styles.CzOXKr8R.mjs +9 -0
  33. package/.output/server/chunks/build/timeline-styles.CzOXKr8R.mjs.map +1 -0
  34. package/.output/server/chunks/nitro/nitro.mjs +680 -270
  35. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  36. package/.output/server/chunks/raw/driver-entry.mjs +1 -1
  37. package/.output/server/chunks/routes/api/projects/_slug/auth/record.post.mjs +1 -1
  38. package/.output/server/chunks/routes/api/projects/_slug/auth/skip.post.mjs +1 -1
  39. package/.output/server/chunks/routes/api/projects/_slug/auth.get.mjs +1 -1
  40. package/.output/server/chunks/routes/api/projects/_slug/auth.put.mjs +1 -1
  41. package/.output/server/chunks/routes/debug/close-page.post.mjs +40 -0
  42. package/.output/server/chunks/routes/debug/close-page.post.mjs.map +1 -0
  43. package/.output/server/chunks/routes/debug/replay-decision.post.mjs +43 -0
  44. package/.output/server/chunks/routes/debug/replay-decision.post.mjs.map +1 -0
  45. package/.output/server/chunks/routes/renderer.mjs +2 -2
  46. package/.output/server/chunks/routes/runner/video.get.mjs +1 -1
  47. package/.output/server/chunks/routes/ws.mjs +19 -2
  48. package/.output/server/chunks/routes/ws.mjs.map +1 -1
  49. package/.output/server/chunks/virtual/entry.mjs +3 -3
  50. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  51. package/.output/server/chunks/virtual/styles.mjs +2 -1
  52. package/.output/server/index.mjs +1 -1
  53. package/.output/server/package.json +1 -1
  54. package/dist-ui/driver-entry.js +3 -3
  55. package/package.json +1 -1
  56. package/.output/public/_nuxt/5GgR1mbX.js +0 -1
  57. package/.output/public/_nuxt/CTLrtTtn2.js +0 -64
  58. package/.output/public/_nuxt/D4ykC_lY2.js +0 -1
  59. package/.output/public/_nuxt/DDHUGtv32.js +0 -4
  60. package/.output/public/_nuxt/Dpnaldxf2.js +0 -1
  61. package/.output/public/_nuxt/builds/meta/f764322c-bb05-455d-81f9-a546df72cf7d.json +0 -1
  62. package/.output/public/_nuxt/entry.m-nAFUcz.css +0 -2
  63. package/.output/server/chunks/build/_...scenario_-DNqQ06NM.mjs.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import * as z from 'zod';
2
- import { w as runAgent } from '../nitro/nitro.mjs';
3
- import { q as ENV_KEY, r as keyed, i as EnvKey, u as ownsKey } from './project.service.mjs';
2
+ import { w as runAgent, E as EnvKey, x as describeElement, y as pathOf, z as SENSITIVE_PREFIX, M as MASK, B as ownsKey } from '../nitro/nitro.mjs';
4
3
 
5
4
  const GherkinSchema = z.object({
6
5
  gherkin: z.string().describe("Conte\xFAdo completo do arquivo .feature em portugu\xEAs brasileiro"),
@@ -48,51 +47,12 @@ function fixSpec(config, input) {
48
47
  return runAgent(config, { instructions: INSTRUCTIONS, schema: FixedSpecSchema }, input);
49
48
  }
50
49
 
51
- var __defProp$4 = Object.defineProperty;
52
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
53
- var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, key + "" , value);
54
- class ActiveVars {
55
- constructor(vars = []) {
56
- __publicField$4(this, "vars", vars);
57
- const keys = vars.map((variable) => variable.key);
58
- for (const key of keys) {
59
- if (!new RegExp(`^${ENV_KEY}$`).test(key)) {
60
- throw new Error(`Nome de vari\xE1vel inv\xE1lido: ${key}`);
61
- }
62
- }
63
- if (new Set(keys).size !== keys.length) {
64
- throw new Error("O ambiente declara a mesma vari\xE1vel duas vezes.");
65
- }
66
- }
67
- get(key) {
68
- return keyed(this.vars, key);
69
- }
70
- has(key) {
71
- return this.get(key) !== null;
72
- }
73
- /** A chave que já guarda esse valor, se alguma guardar. */
74
- keyOf(value) {
75
- var _a, _b;
76
- if (!value) return null;
77
- return (_b = (_a = this.vars.find((variable) => variable.value === value)) == null ? void 0 : _a.key) != null ? _b : null;
78
- }
79
- /** Se a chave está declarada mas sem valor. */
80
- isEmpty(key) {
81
- var _a;
82
- return !((_a = this.get(key)) == null ? void 0 : _a.value);
83
- }
84
- /** As que têm valor não secreto, e portanto podem vazar literais para o arquivo gerado. */
85
- exposed() {
86
- return this.vars.filter((variable) => !variable.secret && Boolean(variable.value));
87
- }
88
- }
89
-
90
- var __defProp$3 = Object.defineProperty;
91
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
92
- var __publicField$3 = (obj, key, value) => __defNormalProp$3(obj, key + "" , value);
50
+ var __defProp$1 = Object.defineProperty;
51
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
52
+ var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, key + "" , value);
93
53
  class Playwright {
94
54
  constructor(value) {
95
- __publicField$3(this, "value", value);
55
+ __publicField$1(this, "value", value);
96
56
  }
97
57
  lines() {
98
58
  return this.value.split("\n");
@@ -121,163 +81,6 @@ class Playwright {
121
81
  }
122
82
  }
123
83
 
124
- var __defProp$2 = Object.defineProperty;
125
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
126
- var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
127
- class Url {
128
- constructor(value) {
129
- __publicField$2(this, "value", value);
130
- __publicField$2(this, "parsed");
131
- try {
132
- this.parsed = new URL(value);
133
- } catch {
134
- throw new Error(`URL inv\xE1lida: ${value}`);
135
- }
136
- if (!this.parsed.protocol.startsWith("http")) {
137
- throw new Error(`URL inv\xE1lida: ${value}`);
138
- }
139
- }
140
- host() {
141
- return this.parsed.hostname;
142
- }
143
- /** O caminho que a URL já traz, sem a barra final. */
144
- path() {
145
- return this.parsed.pathname.replace(/\/+$/, "");
146
- }
147
- toString() {
148
- return this.value;
149
- }
150
- }
151
-
152
- var __defProp$1 = Object.defineProperty;
153
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
154
- var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, key + "" , value);
155
- const MASK = "\u2022\u2022\u2022\u2022";
156
- const SENSITIVE_PREFIX = "SENSIVEL_";
157
- function marker$1(key) {
158
- return `{{${key}}}`;
159
- }
160
- class Recording {
161
- constructor(recorded) {
162
- __publicField$1(this, "recorded", recorded);
163
- }
164
- static make(events) {
165
- return new Recording(events);
166
- }
167
- /** Os eventos gravados; o DOM capturado só vem quando pedido. */
168
- events(html = false) {
169
- if (html) return this.recorded;
170
- return this.recorded.map(({ html: _html, ...event }) => event);
171
- }
172
- /** Troca o valor de cada evento sensível pelo marcador. */
173
- redacted(environments = new ActiveVars()) {
174
- let position = 0;
175
- return this.events().map((event) => {
176
- var _a, _b;
177
- if (event.sensitive !== true) return event;
178
- position++;
179
- const value = (_a = event.value) != null ? _a : "";
180
- return {
181
- ...event,
182
- value: marker$1((_b = environments.keyOf(value)) != null ? _b : `${SENSITIVE_PREFIX}${position}`)
183
- };
184
- });
185
- }
186
- /** O DOM ao redor de cada elemento, na chave do evento que o produziu. */
187
- html() {
188
- const html = {};
189
- this.recorded.forEach((event, index) => {
190
- if (event.html) html[index] = event.html;
191
- });
192
- return html;
193
- }
194
- /** Os eventos com usuário e senha trocados pelo nome da variável que os guarda. */
195
- withoutPasswords() {
196
- const events = this.events();
197
- const password = this.passwordIndex();
198
- for (const [index, event] of events.entries()) {
199
- if (event.inputType === "password") {
200
- events[index] = { ...event, value: marker$1(EnvKey.PASSWORD) };
201
- }
202
- }
203
- const user = password === null ? null : this.fillBefore(password);
204
- if (user !== null) {
205
- events[user] = { ...events[user], value: marker$1(EnvKey.USER) };
206
- }
207
- return events;
208
- }
209
- /**
210
- * A URL em que a gravação caiu depois do login: a primeira navegação após o submit (ou após o
211
- * campo de senha, quando não houve submit) que saiu da URL onde o login foi enviado.
212
- */
213
- landingUrl() {
214
- let submitIndex = null;
215
- this.recorded.forEach((event, index) => {
216
- if (event.type === "submit" || event.type === "fill" && event.inputType === "password") {
217
- submitIndex = index;
218
- }
219
- });
220
- if (submitIndex === null) return null;
221
- const submitUrl = this.recorded[submitIndex].url;
222
- for (const event of this.recorded.slice(submitIndex + 1)) {
223
- if (event.type === "navigate" && event.url && event.url !== submitUrl) {
224
- return event.url;
225
- }
226
- }
227
- return null;
228
- }
229
- /** Usuário e senha reais do login gravado, ou null quando não dá para identificá-los. */
230
- credentials() {
231
- var _a, _b;
232
- const passwordIndex = this.passwordIndex();
233
- if (passwordIndex === null) return null;
234
- const userIndex = this.fillBefore(passwordIndex);
235
- const username = userIndex === null ? null : (_a = this.recorded[userIndex]) == null ? void 0 : _a.value;
236
- const password = (_b = this.recorded[passwordIndex]) == null ? void 0 : _b.value;
237
- return username && password ? { username, password } : null;
238
- }
239
- /** O valor real de cada marcador batizado, indexado pelo nome que ele recebeu. */
240
- envValues(names) {
241
- const sensitive = this.sensitiveValues();
242
- const values = {};
243
- for (const [key, name] of Object.entries(names)) {
244
- if (!key.startsWith(SENSITIVE_PREFIX)) continue;
245
- const position = Number(key.slice(SENSITIVE_PREFIX.length));
246
- const value = sensitive[position - 1];
247
- if (value === void 0) continue;
248
- values[name] = value;
249
- }
250
- return values;
251
- }
252
- /** O alerta de quando os nomes declarados não cobrem os marcadores da gravação. */
253
- unmatchedEnvWarning(names) {
254
- const markers = this.sensitiveValues().length;
255
- const declared = Object.keys(names).length;
256
- if (markers === 0 || declared === markers) return null;
257
- return `Grava\xE7\xE3o tem ${markers} valor(es) sens\xEDvel(is) mas a IA nomeou ${declared}, e algum .env pode ter ficado vazio.`;
258
- }
259
- sensitiveValues() {
260
- return this.recorded.filter((event) => event.sensitive === true).map((event) => {
261
- var _a;
262
- return (_a = event.value) != null ? _a : "";
263
- });
264
- }
265
- passwordIndex() {
266
- const index = this.recorded.findIndex(
267
- (event) => event.type === "fill" && event.inputType === "password"
268
- );
269
- return index === -1 ? null : index;
270
- }
271
- /** O preenchimento anterior ao índice dado, que é onde o usuário do login foi digitado. */
272
- fillBefore(index) {
273
- var _a;
274
- for (let i = index - 1; i >= 0; i--) {
275
- if (((_a = this.recorded[i]) == null ? void 0 : _a.type) === "fill") return i;
276
- }
277
- return null;
278
- }
279
- }
280
-
281
84
  var __defProp = Object.defineProperty;
282
85
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
283
86
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -286,16 +89,6 @@ const SLOW_TIMEOUT = 15e3;
286
89
  function slugUpper(source) {
287
90
  return source.normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^A-Za-z0-9]+/g, "_").replace(/^_+|_+$/g, "").toUpperCase();
288
91
  }
289
- function limit(source, max = 60) {
290
- return source.length <= max ? source : source.slice(0, max).trimEnd();
291
- }
292
- function pathOf(url) {
293
- try {
294
- return new URL(url).pathname;
295
- } catch {
296
- return "";
297
- }
298
- }
299
92
  function hostOf(url) {
300
93
  try {
301
94
  return new URL(url).hostname;
@@ -456,7 +249,7 @@ class SpecEmitter {
456
249
  if (locator === null) return null;
457
250
  const verb = type === "hover" ? "hover" : "click";
458
251
  const prefix = type === "hover" ? "Passa o mouse" : "Clica";
459
- const what = this.describe(event);
252
+ const what = describeElement(event);
460
253
  return {
461
254
  title: what === null ? `${prefix} no elemento` : `${prefix} em ${this.quoted(what)}`,
462
255
  lines: [
@@ -475,7 +268,7 @@ class SpecEmitter {
475
268
  const value = (_a = event.value) != null ? _a : "";
476
269
  const checked = (_b = event.checked) != null ? _b : true;
477
270
  const action = event.tagName === "select" ? `selectOption(${this.value(value)})` : toggle ? checked ? "check()" : "uncheck()" : `fill(${this.value(value)})`;
478
- const what = this.describe(event);
271
+ const what = describeElement(event);
479
272
  return {
480
273
  field: locator,
481
274
  step: {
@@ -496,18 +289,30 @@ class SpecEmitter {
496
289
  lines: [`await ${lastField}.press('Enter')`]
497
290
  };
498
291
  }
292
+ /** A tela afirmada pelo endereço: pelo segmento próprio dela, ou pelo caminho inteiro. */
293
+ urlAssertion(target) {
294
+ const segment = this.segment(target);
295
+ if (segment !== null) {
296
+ return {
297
+ title: `Confere que a tela \xE9 ${this.quoted(segment)}`,
298
+ lines: [`await expect(page).toHaveURL(/${segment.replace(/\./g, "\\.")}/)`]
299
+ };
300
+ }
301
+ const path = pathOf(target).replace(/\/+$/, "");
302
+ if (path === "") return null;
303
+ const pattern = path.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\//g, "\\/");
304
+ const relative = this.relativePath(target);
305
+ return {
306
+ title: `Confere que a tela \xE9 ${relative === "" || relative === null ? "a p\xE1gina inicial" : this.quoted(relative)}`,
307
+ lines: [`await expect(page).toHaveURL(/${pattern}\\/?$/)`]
308
+ };
309
+ }
499
310
  assertion(event, slow) {
500
311
  var _a, _b, _c, _d, _e;
501
312
  const assert = (_a = event.assert) != null ? _a : {};
502
313
  const expected = (_b = assert.expectedValue) != null ? _b : null;
503
314
  const type = (_c = assert.assertType) != null ? _c : "visible";
504
- if (type === "url") {
505
- const segment = this.segment((_d = expected != null ? expected : event.url) != null ? _d : "");
506
- return segment === null ? null : {
507
- title: `Confere que a tela \xE9 ${this.quoted(segment)}`,
508
- lines: [`await expect(page).toHaveURL(/${segment.replace(/\./g, "\\.")}/)`]
509
- };
510
- }
315
+ if (type === "url") return this.urlAssertion((_d = expected != null ? expected : event.url) != null ? _d : "");
511
316
  const locator = this.locator(event);
512
317
  if (locator === null) return null;
513
318
  const matchers = {
@@ -519,7 +324,7 @@ class SpecEmitter {
519
324
  disabled: "toBeDisabled()"
520
325
  };
521
326
  const matcher = (_e = matchers[type]) != null ? _e : `toBeVisible(${this.timeout(slow)})`;
522
- const what = this.describe(event);
327
+ const what = describeElement(event);
523
328
  return {
524
329
  title: `Confere ${what === null ? "o elemento" : this.quoted(what)}`,
525
330
  lines: [`const alvo = ${locator}`, `await expect(alvo).${matcher}`]
@@ -538,14 +343,6 @@ class SpecEmitter {
538
343
  if (selectors.xpath) return `page.locator(${this.literal(`xpath=${selectors.xpath}`)})`;
539
344
  return null;
540
345
  }
541
- /** Como o passo chama o elemento; null quando nada na gravação o descreve. */
542
- describe(event) {
543
- var _a, _b, _c, _d, _e;
544
- const selectors = (_a = event.selectors) != null ? _a : null;
545
- const source = (_e = (_d = (_c = (_b = event.label) != null ? _b : event.innerText) != null ? _c : selectors == null ? void 0 : selectors.placeholder) != null ? _d : selectors == null ? void 0 : selectors.text) != null ? _e : "";
546
- const clean = source.replace(/\s+/gu, " ").trim();
547
- return clean === "" ? null : limit(clean);
548
- }
549
346
  timeout(slow) {
550
347
  return slow ? `{ timeout: ${SLOW_TIMEOUT} }` : "";
551
348
  }
@@ -799,5 +596,5 @@ function checkSpec(file, base, environments) {
799
596
  return RULES.flatMap((rule) => rule(file, base, environments));
800
597
  }
801
598
 
802
- export { ActiveVars as A, Playwright as P, Recording as R, SpecEmitter as S, Url as U, SENSITIVE_PREFIX as a, checkSpec as c, fixSpec as f, violation as v, writeGherkin as w };
599
+ export { Playwright as P, SpecEmitter as S, checkSpec as c, fixSpec as f, violation as v, writeGherkin as w };
803
600
  //# sourceMappingURL=spec-rules.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec-rules.mjs","sources":["../../../../core/modules/ai/agents/gherkin.ts","../../../../core/modules/ai/agents/spec-fixer.ts","../../../../core/common/playwright/active-vars.ts","../../../../core/common/playwright/playwright.ts","../../../../core/common/playwright/url.ts","../../../../core/modules/recording/recording.ts","../../../../core/modules/recording/spec-emitter.ts","../../../../core/modules/rules/violation.ts","../../../../core/modules/rules/spec-rules.ts"],"names":["INSTRUCTIONS","__publicField","marker","key"],"mappings":"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"}
1
+ {"version":3,"file":"spec-rules.mjs","sources":["../../../../core/modules/ai/agents/gherkin.ts","../../../../core/modules/ai/agents/spec-fixer.ts","../../../../core/common/playwright/playwright.ts","../../../../core/modules/recording/spec-emitter.ts","../../../../core/modules/rules/violation.ts","../../../../core/modules/rules/spec-rules.ts"],"names":["INSTRUCTIONS","__publicField","key"],"mappings":"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"}