@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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/9eLkUDDj.js +1 -0
- package/.output/public/_nuxt/BGkBW2ni2.js +1 -0
- package/.output/public/_nuxt/BKydt2Wp2.js +4 -0
- package/.output/public/_nuxt/CDI0GNVb2.js +1 -0
- package/.output/public/_nuxt/CqZ7dV6a2.js +64 -0
- package/.output/public/_nuxt/{CC0OsuIz.js → DtncvtMS.js} +3 -3
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/a872bf7d-d21f-4cc5-b4d7-6ddb7b63d620.json +1 -0
- package/.output/public/_nuxt/entry.Ci6Ki0cW.css +2 -0
- package/.output/public/_nuxt/tags.B5A43CvD.css +1 -0
- package/.output/server/chunks/_/auth2.mjs +3 -3
- package/.output/server/chunks/_/environment.mjs +2 -2
- package/.output/server/chunks/_/generation.mjs +3 -3
- package/.output/server/chunks/_/project.mjs +2 -2
- package/.output/server/chunks/_/project.service.mjs +2 -30
- package/.output/server/chunks/_/project.service.mjs.map +1 -1
- package/.output/server/chunks/_/recording.mjs +5 -2
- package/.output/server/chunks/_/recording.mjs.map +1 -1
- package/.output/server/chunks/_/scenario.mjs +4 -2
- package/.output/server/chunks/_/scenario.mjs.map +1 -1
- package/.output/server/chunks/_/scenario2.mjs +22 -5
- package/.output/server/chunks/_/scenario2.mjs.map +1 -1
- package/.output/server/chunks/_/spec-rules.mjs +28 -231
- package/.output/server/chunks/_/spec-rules.mjs.map +1 -1
- package/.output/server/chunks/build/{_...scenario_-DNqQ06NM.mjs → _...scenario_-CTwC_evr.mjs} +172 -31
- package/.output/server/chunks/build/_...scenario_-CTwC_evr.mjs.map +1 -0
- package/.output/server/chunks/build/{_slug_-BlLRYU9d.mjs → _slug_-DEXTo_9N.mjs} +58 -34
- package/.output/server/chunks/build/{_slug_-BlLRYU9d.mjs.map → _slug_-DEXTo_9N.mjs.map} +1 -1
- package/.output/server/chunks/build/{tags-DrKY6Ah4.mjs → tags-DQ0X0wtQ.mjs} +59 -14
- package/.output/server/chunks/build/{tags-DrKY6Ah4.mjs.map → tags-DQ0X0wtQ.mjs.map} +1 -1
- package/.output/server/chunks/build/timeline-styles.CzOXKr8R.mjs +9 -0
- package/.output/server/chunks/build/timeline-styles.CzOXKr8R.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +680 -270
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/raw/driver-entry.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_slug/auth/record.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_slug/auth/skip.post.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_slug/auth.get.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/_slug/auth.put.mjs +1 -1
- package/.output/server/chunks/routes/debug/close-page.post.mjs +40 -0
- package/.output/server/chunks/routes/debug/close-page.post.mjs.map +1 -0
- package/.output/server/chunks/routes/debug/replay-decision.post.mjs +43 -0
- package/.output/server/chunks/routes/debug/replay-decision.post.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/routes/runner/video.get.mjs +1 -1
- package/.output/server/chunks/routes/ws.mjs +19 -2
- package/.output/server/chunks/routes/ws.mjs.map +1 -1
- package/.output/server/chunks/virtual/entry.mjs +3 -3
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/chunks/virtual/styles.mjs +2 -1
- package/.output/server/index.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/dist-ui/driver-entry.js +3 -3
- package/package.json +1 -1
- package/.output/public/_nuxt/5GgR1mbX.js +0 -1
- package/.output/public/_nuxt/CTLrtTtn2.js +0 -64
- package/.output/public/_nuxt/D4ykC_lY2.js +0 -1
- package/.output/public/_nuxt/DDHUGtv32.js +0 -4
- package/.output/public/_nuxt/Dpnaldxf2.js +0 -1
- package/.output/public/_nuxt/builds/meta/f764322c-bb05-455d-81f9-a546df72cf7d.json +0 -1
- package/.output/public/_nuxt/entry.m-nAFUcz.css +0 -2
- package/.output/server/chunks/build/_...scenario_-DNqQ06NM.mjs.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { M as useState, v as useRoute, z as icon_default, _ as _sfc_main$2, m as modal_default$1, e as _sfc_main$1, N as useRequestEvent, C as _sfc_main$8, o as _sfc_main$6 } from '../virtual/entry.mjs';
|
|
2
2
|
import { _ as _sfc_main } from './origin-_Ab6zkKk.mjs';
|
|
3
3
|
import { c as codefield_default } from './modal-Cpj-bQgu.mjs';
|
|
4
|
+
import { _ as _plugin_vue_export_helper_default } from './_plugin-vue_export-helper-BOaGB7Aw.mjs';
|
|
4
5
|
import { defineComponent, ref, computed, mergeProps, isRef, unref, useModel, withCtx, createVNode, renderSlot, createTextVNode, toDisplayString, mergeModels, watch, nextTick, useSSRContext } from 'vue';
|
|
5
6
|
import { m as getRequestURL } from '../nitro/nitro.mjs';
|
|
6
7
|
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderAttr, ssrRenderClass, ssrRenderList, ssrRenderSlot } from 'vue/server-renderer';
|
|
@@ -84,6 +85,24 @@ setup_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
|
|
|
84
85
|
var setup_default = Object.assign(setup_vue_vue_type_script_setup_true_lang_default, { __name: "WebdriverSetup" });
|
|
85
86
|
//#endregion
|
|
86
87
|
//#region app/utils/recorder-event.ts
|
|
88
|
+
/** A gravação como o backend a guarda: os campos do evento, sem o que é do transporte. */
|
|
89
|
+
function toRecordedEvents(events) {
|
|
90
|
+
return events.map((event) => ({
|
|
91
|
+
type: event.type,
|
|
92
|
+
timestamp: event.timestamp,
|
|
93
|
+
url: event.url ?? null,
|
|
94
|
+
selectors: event.selectors ?? null,
|
|
95
|
+
label: event.label ?? null,
|
|
96
|
+
innerText: event.innerText ?? null,
|
|
97
|
+
tagName: event.tagName ?? null,
|
|
98
|
+
inputType: event.inputType ?? null,
|
|
99
|
+
value: event.value ?? null,
|
|
100
|
+
sensitive: event.sensitive ?? false,
|
|
101
|
+
checked: event.checked ?? null,
|
|
102
|
+
html: event.html ?? null,
|
|
103
|
+
assert: event.assert
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
87
106
|
/** Como o evento chama o elemento, na mesma ordem de fontes do `SpecEmitter` do backend. */
|
|
88
107
|
function target(event) {
|
|
89
108
|
const selectors = event.selectors;
|
|
@@ -120,7 +139,9 @@ function describeRecorderEvent(event) {
|
|
|
120
139
|
return `Preenche ${field} com ${event.sensitive ? "••••" : quoted(event.value)}`;
|
|
121
140
|
}
|
|
122
141
|
case "submit": return "Envia o formulário";
|
|
123
|
-
case "assert":
|
|
142
|
+
case "assert":
|
|
143
|
+
if (event.assert?.assertType === "url") return `Confere que a tela é ${page(event)}`;
|
|
144
|
+
return `Confere ${what ? quoted(what) : "o elemento"}`;
|
|
124
145
|
default: return what ?? event.url ?? event.type ?? "";
|
|
125
146
|
}
|
|
126
147
|
}
|
|
@@ -132,11 +153,18 @@ var timeline_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
132
153
|
props: {
|
|
133
154
|
events: {},
|
|
134
155
|
videoSrc: { default: null },
|
|
135
|
-
recordingStartedAt: { default: null }
|
|
156
|
+
recordingStartedAt: { default: null },
|
|
157
|
+
resumable: {
|
|
158
|
+
type: Boolean,
|
|
159
|
+
default: false
|
|
160
|
+
}
|
|
136
161
|
},
|
|
137
|
-
|
|
162
|
+
emits: ["resume"],
|
|
163
|
+
setup(__props, { emit: __emit }) {
|
|
138
164
|
ref(null);
|
|
139
165
|
const currentTime = ref(0);
|
|
166
|
+
const armed = ref(null);
|
|
167
|
+
const ready = ref(false);
|
|
140
168
|
const eventIcons = {
|
|
141
169
|
navigate: "i-ic-round-public",
|
|
142
170
|
click: "i-ic-round-ads-click",
|
|
@@ -156,22 +184,35 @@ var timeline_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
156
184
|
});
|
|
157
185
|
return index;
|
|
158
186
|
});
|
|
187
|
+
/** Quantos passos saem da gravação quando o corte armado for confirmado. */
|
|
188
|
+
const dropped = computed(() => armed.value === null ? 0 : __props.events.length - armed.value);
|
|
159
189
|
return (_ctx, _push, _parent, _attrs) => {
|
|
160
190
|
const _component_UIcon = _sfc_main$2;
|
|
161
|
-
_push(`<div${ssrRenderAttrs(mergeProps({ class: "grid grid-cols-1 gap-6 lg:grid-cols-5" }, _attrs))}>`);
|
|
162
|
-
if (__props.videoSrc) _push(`<video data-testid="revisao-video"${ssrRenderAttr("src", __props.videoSrc)} controls class="w-full self-start rounded-lg lg:sticky lg:top-0 lg:col-span-3"></video>`);
|
|
191
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "grid grid-cols-1 gap-6 lg:grid-cols-5" }, _attrs))} data-v-46efcf33>`);
|
|
192
|
+
if (__props.videoSrc) _push(`<video data-testid="revisao-video"${ssrRenderAttr("src", __props.videoSrc)} controls class="w-full self-start rounded-lg lg:sticky lg:top-0 lg:col-span-3" data-v-46efcf33></video>`);
|
|
163
193
|
else _push(`<!---->`);
|
|
164
|
-
_push(`<div class="${ssrRenderClass(__props.videoSrc ? "lg:col-span-2" : "lg:col-span-5")}"><p class="mb-3 font-semibold"> Timeline dos eventos </p><ol class="flex flex-col"><!--[-->`);
|
|
194
|
+
_push(`<div class="${ssrRenderClass(__props.videoSrc ? "lg:col-span-2" : "lg:col-span-5")}" data-v-46efcf33><p class="mb-3 font-semibold" data-v-46efcf33> Timeline dos eventos </p><ol class="flex w-max max-w-full flex-col" data-v-46efcf33><!--[-->`);
|
|
165
195
|
ssrRenderList(__props.events, (event, i) => {
|
|
166
|
-
_push(`<li data-testid="revisao-evento"${ssrRenderAttr("data-current", i === unref(currentIndex) ? "true" : "false")} class="group flex cursor-pointer items-stretch gap-3
|
|
196
|
+
_push(`<li data-testid="revisao-evento"${ssrRenderAttr("data-current", i === unref(currentIndex) ? "true" : "false")}${ssrRenderAttr("data-dropped", unref(armed) !== null && i >= unref(armed) ? "true" : "false")} class="${ssrRenderClass([unref(armed) !== null && i >= unref(armed) ? "opacity-50" : "", "group relative flex cursor-pointer items-stretch gap-3 transition-opacity"])}" data-v-46efcf33>`);
|
|
197
|
+
if (__props.resumable && i > 0) {
|
|
198
|
+
_push(`<button type="button" data-testid="revisao-retomar"${ssrRenderAttr("data-armed", unref(armed) === i ? "true" : "false")} class="${ssrRenderClass([unref(armed) === i ? "opacity-100!" : "", "absolute -top-5 -right-1.5 -left-1.5 z-10 flex h-4 items-center gap-2 opacity-0 transition-opacity focus-visible:opacity-100 group-hover:opacity-100"])}"${ssrRenderAttr("aria-label", unref(armed) === i ? `Confirmar a retomada deste passo, descartando ${unref(dropped)}` : "Retomar a gravação deste passo")} data-v-46efcf33><span class="${ssrRenderClass([unref(armed) === i ? "bg-error" : "bg-primary", "h-px flex-1 rounded-full"])}" data-v-46efcf33></span><span class="${ssrRenderClass([unref(armed) === i ? "bg-error text-inverted" : "bg-default text-primary", "rounded-full px-2 py-0.5 text-[10px] leading-none font-medium tracking-wide uppercase"])}" data-v-46efcf33>`);
|
|
199
|
+
if (unref(armed) !== i) _push(`<!--[-->retomar daqui<!--]-->`);
|
|
200
|
+
else if (unref(ready)) _push(`<!--[-->clique de novo · descarta ${ssrInterpolate(unref(dropped))}<!--]-->`);
|
|
201
|
+
else _push(`<!--[-->aguarde…<!--]-->`);
|
|
202
|
+
_push(`</span><span class="relative h-px flex-1 overflow-visible rounded-full bg-accented" data-v-46efcf33>`);
|
|
203
|
+
if (unref(armed) === i) _push(`<span class="arming absolute inset-y-0 left-0 rounded-full bg-error" data-v-46efcf33></span>`);
|
|
204
|
+
else _push(`<!---->`);
|
|
205
|
+
_push(`</span></button>`);
|
|
206
|
+
} else _push(`<!---->`);
|
|
207
|
+
_push(`<div class="flex flex-col items-center" data-v-46efcf33>`);
|
|
167
208
|
_push(ssrRenderComponent(_component_UIcon, {
|
|
168
209
|
name: eventIcons[event.type] ?? "i-ic-round-help-outline",
|
|
169
210
|
class: ["size-5 shrink-0 transition-colors", i <= unref(currentIndex) ? "text-primary" : "text-muted"]
|
|
170
211
|
}, null, _parent));
|
|
171
|
-
if (i < __props.events.length - 1) _push(`<span class="${ssrRenderClass([i < unref(currentIndex) ? "bg-primary" : "bg-accented", "w-px grow transition-colors"])}"></span>`);
|
|
212
|
+
if (i < __props.events.length - 1) _push(`<span class="${ssrRenderClass([i < unref(currentIndex) ? "bg-primary" : "bg-accented", "w-px grow transition-colors"])}" data-v-46efcf33></span>`);
|
|
172
213
|
else _push(`<!---->`);
|
|
173
|
-
_push(`</div><div class="pb-
|
|
174
|
-
if (__props.recordingStartedAt) _push(`<p class="text-xs text-dimmed">${ssrInterpolate(offsetSeconds(event).toFixed(1))}s </p>`);
|
|
214
|
+
_push(`</div><div class="pb-6 min-w-0 flex-1" data-v-46efcf33><p class="${ssrRenderClass([[i === unref(currentIndex) ? "font-semibold text-primary" : "text-default", unref(armed) !== null && i >= unref(armed) ? "line-through decoration-dimmed" : ""], "truncate text-sm transition-colors group-hover:text-highlighted"])}" data-v-46efcf33>${ssrInterpolate(unref(describeRecorderEvent)(event))}</p>`);
|
|
215
|
+
if (__props.recordingStartedAt) _push(`<p class="text-xs text-dimmed" data-v-46efcf33>${ssrInterpolate(offsetSeconds(event).toFixed(1))}s </p>`);
|
|
175
216
|
else _push(`<!---->`);
|
|
176
217
|
_push(`</div></li>`);
|
|
177
218
|
});
|
|
@@ -187,7 +228,7 @@ timeline_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
|
|
|
187
228
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/scenario/review/timeline.vue");
|
|
188
229
|
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
|
|
189
230
|
};
|
|
190
|
-
var timeline_default = Object.assign(timeline_vue_vue_type_script_setup_true_lang_default, { __name: "ScenarioReviewTimeline" });
|
|
231
|
+
var timeline_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(timeline_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-46efcf33"]]), { __name: "ScenarioReviewTimeline" });
|
|
191
232
|
//#endregion
|
|
192
233
|
//#region app/components/base/confirm.vue?vue&type=script&setup=true&lang.ts
|
|
193
234
|
var confirm_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -535,6 +576,8 @@ function useWebdriver() {
|
|
|
535
576
|
connected: false,
|
|
536
577
|
extensionReady: false,
|
|
537
578
|
recording: false,
|
|
579
|
+
replaying: false,
|
|
580
|
+
replayFailedStep: null,
|
|
538
581
|
error: null,
|
|
539
582
|
events: [],
|
|
540
583
|
videoSessionId: null,
|
|
@@ -551,10 +594,12 @@ function useWebdriver() {
|
|
|
551
594
|
function ensureConnected() {}
|
|
552
595
|
function startRecording(mode = "scenario", options = {}) {
|
|
553
596
|
state.value.error = null;
|
|
554
|
-
state.value.events = [];
|
|
597
|
+
state.value.events = options.replay ?? [];
|
|
555
598
|
state.value.videoSessionId = null;
|
|
556
599
|
state.value.storageState = null;
|
|
557
600
|
state.value.recording = true;
|
|
601
|
+
state.value.replaying = (options.replay?.length ?? 0) > 0;
|
|
602
|
+
state.value.replayFailedStep = null;
|
|
558
603
|
send("START_RECORDING", {
|
|
559
604
|
mode,
|
|
560
605
|
...options
|
|
@@ -590,5 +635,5 @@ function tagColor(tag) {
|
|
|
590
635
|
return "primary";
|
|
591
636
|
}
|
|
592
637
|
|
|
593
|
-
export { timeline_default as a,
|
|
594
|
-
//# sourceMappingURL=tags-
|
|
638
|
+
export { timeline_default as a, toRecordedEvents as b, confirm_default as c, draftFromScenario as d, eventsBaseUrl as e, contexts_default as f, setup_default as s, tagColor as t, useWebdriver as u };
|
|
639
|
+
//# sourceMappingURL=tags-DQ0X0wtQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags-
|
|
1
|
+
{"version":3,"file":"tags-DQ0X0wtQ.mjs","sources":["../../../../node_modules/.pnpm/nuxt@4.5.2_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_416b7c14be74ec1137687d64bf90f040/node_modules/nuxt/dist/app/composables/url.js","../../../../app/components/webdriver/setup.vue","../../../../app/utils/recorder-event.ts","../../../../app/components/scenario/review/timeline.vue","../../../../app/components/base/confirm.vue","../../../../app/utils/scenario-draft.ts","../../../../app/components/scenario/review/contexts.vue","../../../../app/composables/webdriver.ts","../../../../app/utils/tags.ts"],"names":[],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region app/components/scenario/review/timeline.vue?vue&type=style&index=0&scoped=46efcf33&inline&used&lang.css
|
|
2
|
+
var timeline_vue_vue_type_style_index_0_scoped_46efcf33_inline_used_lang_default = ".arming[data-v-46efcf33]{animation:.6s linear forwards arming-46efcf33}@keyframes arming-46efcf33{0%{width:0}to{width:100%}}@media (prefers-reduced-motion:reduce){.arming[data-v-46efcf33]{width:100%;animation-duration:1ms}}";
|
|
3
|
+
|
|
4
|
+
const timelineStyles_CzOXKr8R = [
|
|
5
|
+
timeline_vue_vue_type_style_index_0_scoped_46efcf33_inline_used_lang_default
|
|
6
|
+
];
|
|
7
|
+
|
|
8
|
+
export { timelineStyles_CzOXKr8R as default };
|
|
9
|
+
//# sourceMappingURL=timeline-styles.CzOXKr8R.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-styles.CzOXKr8R.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/timeline-styles.CzOXKr8R.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|