craftdriver 1.7.0 → 1.9.0
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/CHANGELOG.md +25 -12
- package/README.md +16 -6
- package/dist/cli/agentSession.d.ts +62 -0
- package/dist/cli/agentSession.d.ts.map +1 -0
- package/dist/cli/agentSession.js +100 -0
- package/dist/cli/agentSession.js.map +1 -0
- package/dist/cli/artifactPaths.d.ts +42 -0
- package/dist/cli/artifactPaths.d.ts.map +1 -0
- package/dist/cli/artifactPaths.js +144 -0
- package/dist/cli/artifactPaths.js.map +1 -0
- package/dist/cli/bounds.d.ts +88 -0
- package/dist/cli/bounds.d.ts.map +1 -0
- package/dist/cli/bounds.js +128 -0
- package/dist/cli/bounds.js.map +1 -0
- package/dist/cli/client.d.ts +3 -0
- package/dist/cli/client.d.ts.map +1 -1
- package/dist/cli/client.js +24 -8
- package/dist/cli/client.js.map +1 -1
- package/dist/cli/daemon.d.ts +3 -0
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +152 -39
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/defaults.d.ts +23 -3
- package/dist/cli/defaults.d.ts.map +1 -1
- package/dist/cli/defaults.js +50 -5
- package/dist/cli/defaults.js.map +1 -1
- package/dist/cli/dispatcher.d.ts +54 -11
- package/dist/cli/dispatcher.d.ts.map +1 -1
- package/dist/cli/dispatcher.js +851 -54
- package/dist/cli/dispatcher.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +305 -56
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +14 -14
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +328 -180
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/journal.d.ts +153 -0
- package/dist/cli/journal.d.ts.map +1 -0
- package/dist/cli/journal.js +252 -0
- package/dist/cli/journal.js.map +1 -0
- package/dist/cli/lineReader.d.ts +33 -0
- package/dist/cli/lineReader.d.ts.map +1 -0
- package/dist/cli/lineReader.js +66 -0
- package/dist/cli/lineReader.js.map +1 -0
- package/dist/cli/locatorCandidates.d.ts +44 -0
- package/dist/cli/locatorCandidates.d.ts.map +1 -0
- package/dist/cli/locatorCandidates.js +190 -0
- package/dist/cli/locatorCandidates.js.map +1 -0
- package/dist/cli/mcp/artifacts.d.ts +39 -1
- package/dist/cli/mcp/artifacts.d.ts.map +1 -1
- package/dist/cli/mcp/artifacts.js +104 -9
- package/dist/cli/mcp/artifacts.js.map +1 -1
- package/dist/cli/mcp/bounds.d.ts +65 -0
- package/dist/cli/mcp/bounds.d.ts.map +1 -0
- package/dist/cli/mcp/bounds.js +124 -0
- package/dist/cli/mcp/bounds.js.map +1 -0
- package/dist/cli/mcp/params.d.ts +38 -0
- package/dist/cli/mcp/params.d.ts.map +1 -0
- package/dist/cli/mcp/params.js +174 -0
- package/dist/cli/mcp/params.js.map +1 -0
- package/dist/cli/mcp/server.d.ts +94 -16
- package/dist/cli/mcp/server.d.ts.map +1 -1
- package/dist/cli/mcp/server.js +304 -150
- package/dist/cli/mcp/server.js.map +1 -1
- package/dist/cli/mcp/tools.d.ts +62 -17
- package/dist/cli/mcp/tools.d.ts.map +1 -1
- package/dist/cli/mcp/tools.js +373 -158
- package/dist/cli/mcp/tools.js.map +1 -1
- package/dist/cli/pageSemantics.d.ts +6 -0
- package/dist/cli/pageSemantics.d.ts.map +1 -0
- package/dist/cli/pageSemantics.js +6 -0
- package/dist/cli/pageSemantics.js.map +1 -0
- package/dist/cli/parseArgs.d.ts +6 -18
- package/dist/cli/parseArgs.d.ts.map +1 -1
- package/dist/cli/parseArgs.js +689 -45
- package/dist/cli/parseArgs.js.map +1 -1
- package/dist/cli/protocol.d.ts +8 -0
- package/dist/cli/protocol.d.ts.map +1 -1
- package/dist/cli/selector.d.ts +3 -3
- package/dist/cli/selector.d.ts.map +1 -1
- package/dist/cli/selector.js +6 -9
- package/dist/cli/selector.js.map +1 -1
- package/dist/cli/sessionRegistry.d.ts +42 -0
- package/dist/cli/sessionRegistry.d.ts.map +1 -0
- package/dist/cli/sessionRegistry.js +99 -0
- package/dist/cli/sessionRegistry.js.map +1 -0
- package/dist/cli/snapshot.d.ts +100 -19
- package/dist/cli/snapshot.d.ts.map +1 -1
- package/dist/cli/snapshot.js +295 -108
- package/dist/cli/snapshot.js.map +1 -1
- package/dist/cli/stateStore.d.ts +50 -0
- package/dist/cli/stateStore.d.ts.map +1 -0
- package/dist/cli/stateStore.js +122 -0
- package/dist/cli/stateStore.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/a11y.d.ts +6 -2
- package/dist/lib/a11y.d.ts.map +1 -1
- package/dist/lib/a11y.js +3 -1
- package/dist/lib/a11y.js.map +1 -1
- package/dist/lib/bidi/evaluate.d.ts +11 -0
- package/dist/lib/bidi/evaluate.d.ts.map +1 -0
- package/dist/lib/bidi/evaluate.js +25 -0
- package/dist/lib/bidi/evaluate.js.map +1 -0
- package/dist/lib/bidi/index.d.ts +1 -1
- package/dist/lib/bidi/index.d.ts.map +1 -1
- package/dist/lib/bidi/index.js +2 -2
- package/dist/lib/bidi/index.js.map +1 -1
- package/dist/lib/bidi/logs.d.ts +3 -0
- package/dist/lib/bidi/logs.d.ts.map +1 -1
- package/dist/lib/bidi/logs.js +7 -0
- package/dist/lib/bidi/logs.js.map +1 -1
- package/dist/lib/bidi/network.d.ts +14 -1
- package/dist/lib/bidi/network.d.ts.map +1 -1
- package/dist/lib/bidi/network.js +45 -7
- package/dist/lib/bidi/network.js.map +1 -1
- package/dist/lib/bidi/storage.d.ts +30 -6
- package/dist/lib/bidi/storage.d.ts.map +1 -1
- package/dist/lib/bidi/storage.js +190 -45
- package/dist/lib/bidi/storage.js.map +1 -1
- package/dist/lib/bidi/types.d.ts +9 -2
- package/dist/lib/bidi/types.d.ts.map +1 -1
- package/dist/lib/browser.d.ts +7 -4
- package/dist/lib/browser.d.ts.map +1 -1
- package/dist/lib/browser.js +186 -65
- package/dist/lib/browser.js.map +1 -1
- package/dist/lib/browserContext.d.ts +58 -24
- package/dist/lib/browserContext.d.ts.map +1 -1
- package/dist/lib/browserContext.js +300 -99
- package/dist/lib/browserContext.js.map +1 -1
- package/dist/lib/by.d.ts +68 -30
- package/dist/lib/by.d.ts.map +1 -1
- package/dist/lib/by.js +54 -23
- package/dist/lib/by.js.map +1 -1
- package/dist/lib/clearFastPath.d.ts.map +1 -1
- package/dist/lib/clearFastPath.js +2 -0
- package/dist/lib/clearFastPath.js.map +1 -1
- package/dist/lib/clickFastPath.d.ts.map +1 -1
- package/dist/lib/clickFastPath.js +2 -0
- package/dist/lib/clickFastPath.js.map +1 -1
- package/dist/lib/driver.d.ts +26 -0
- package/dist/lib/driver.d.ts.map +1 -1
- package/dist/lib/driver.js +123 -4
- package/dist/lib/driver.js.map +1 -1
- package/dist/lib/elementHandle.d.ts +13 -10
- package/dist/lib/elementHandle.d.ts.map +1 -1
- package/dist/lib/elementHandle.js +119 -50
- package/dist/lib/elementHandle.js.map +1 -1
- package/dist/lib/errors.d.ts +12 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +12 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/expect.d.ts +10 -0
- package/dist/lib/expect.d.ts.map +1 -1
- package/dist/lib/expect.js +76 -49
- package/dist/lib/expect.js.map +1 -1
- package/dist/lib/fillFastPath.d.ts.map +1 -1
- package/dist/lib/fillFastPath.js +2 -0
- package/dist/lib/fillFastPath.js.map +1 -1
- package/dist/lib/frame.d.ts.map +1 -1
- package/dist/lib/frame.js +29 -17
- package/dist/lib/frame.js.map +1 -1
- package/dist/lib/initScript.d.ts +9 -0
- package/dist/lib/initScript.d.ts.map +1 -0
- package/dist/lib/initScript.js +14 -0
- package/dist/lib/initScript.js.map +1 -0
- package/dist/lib/locator.d.ts +21 -54
- package/dist/lib/locator.d.ts.map +1 -1
- package/dist/lib/locator.js +165 -208
- package/dist/lib/locator.js.map +1 -1
- package/dist/lib/page.d.ts +22 -0
- package/dist/lib/page.d.ts.map +1 -1
- package/dist/lib/page.js +71 -13
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/pageSemantics.d.ts +42 -0
- package/dist/lib/pageSemantics.d.ts.map +1 -0
- package/dist/lib/pageSemantics.js +216 -0
- package/dist/lib/pageSemantics.js.map +1 -0
- package/dist/lib/query.d.ts +68 -0
- package/dist/lib/query.d.ts.map +1 -0
- package/dist/lib/query.js +590 -0
- package/dist/lib/query.js.map +1 -0
- package/dist/lib/secureFile.d.ts +8 -0
- package/dist/lib/secureFile.d.ts.map +1 -0
- package/dist/lib/secureFile.js +67 -0
- package/dist/lib/secureFile.js.map +1 -0
- package/dist/lib/sessionStateValidation.d.ts +35 -0
- package/dist/lib/sessionStateValidation.d.ts.map +1 -0
- package/dist/lib/sessionStateValidation.js +223 -0
- package/dist/lib/sessionStateValidation.js.map +1 -0
- package/dist/lib/shadowRoot.d.ts +21 -0
- package/dist/lib/shadowRoot.d.ts.map +1 -0
- package/dist/lib/shadowRoot.js +29 -0
- package/dist/lib/shadowRoot.js.map +1 -0
- package/dist/lib/shadowRootLocator.d.ts +31 -0
- package/dist/lib/shadowRootLocator.d.ts.map +1 -0
- package/dist/lib/shadowRootLocator.js +55 -0
- package/dist/lib/shadowRootLocator.js.map +1 -0
- package/dist/lib/timing.d.ts +2 -2
- package/dist/lib/timing.js +2 -2
- package/dist/lib/tracing.d.ts +2 -1
- package/dist/lib/tracing.d.ts.map +1 -1
- package/dist/lib/tracing.js +12 -1
- package/dist/lib/tracing.js.map +1 -1
- package/docs/accessibility.md +9 -1
- package/docs/agents.md +56 -61
- package/docs/api-reference.md +5 -1
- package/docs/browser-api.md +27 -7
- package/docs/browser-context.md +21 -15
- package/docs/cli.md +353 -30
- package/docs/error-codes.md +7 -4
- package/docs/getting-started.md +6 -1
- package/docs/index.md +1 -1
- package/docs/mcp.md +136 -65
- package/docs/public/examples/agent-actions.html +48 -0
- package/docs/public/examples/agent-debug.html +86 -0
- package/docs/public/examples/agent-late-mutation.html +18 -0
- package/docs/public/examples/agent-ref-shift.html +33 -0
- package/docs/public/examples/iframe-child.html +12 -1
- package/docs/public/examples/shadow-dom.html +137 -0
- package/docs/recipes/login-once-reuse-session.md +33 -5
- package/docs/selectors.md +61 -0
- package/docs/session-management.md +80 -12
- package/docs/why-craftdriver.md +1 -1
- package/package.json +5 -3
- package/skills/craftdriver/SKILL.md +59 -75
- package/skills/craftdriver/agents/openai.yaml +4 -0
- package/skills/craftdriver/cheatsheet.md +18 -4
- package/skills/craftdriver/cli.md +194 -68
- package/skills/craftdriver/patterns.md +17 -8
- package/skills/craftdriver/workflow.md +149 -0
package/dist/lib/locator.d.ts
CHANGED
|
@@ -1,119 +1,86 @@
|
|
|
1
1
|
import { By } from './by.js';
|
|
2
2
|
import type { Driver } from './driver.js';
|
|
3
|
-
import { ElementHandle
|
|
3
|
+
import { ElementHandle } from './elementHandle.js';
|
|
4
4
|
import type { ExpectApi } from './expect.js';
|
|
5
5
|
import { A11y } from './a11y.js';
|
|
6
|
+
import { QueryEnvironment, type ContextSwitcher, type LocatorPlan, type QueryBiDiProvider } from './query.js';
|
|
7
|
+
import { ShadowRootLocator } from './shadowRootLocator.js';
|
|
6
8
|
export interface ActionOptions {
|
|
7
9
|
timeout?: number;
|
|
8
10
|
}
|
|
9
11
|
export declare class Locator {
|
|
10
12
|
private driver;
|
|
11
|
-
private by;
|
|
12
13
|
private getDefaultTimeout;
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
private plan;
|
|
15
|
+
private environment;
|
|
16
|
+
constructor(driver: Driver, by: By, getDefaultTimeout?: () => number, environment?: QueryEnvironment, plan?: LocatorPlan);
|
|
17
|
+
/** Internal factory used by root-aware search contexts. */
|
|
18
|
+
static fromPlan(driver: Driver, plan: LocatorPlan, getDefaultTimeout: () => number, environment: QueryEnvironment): Locator;
|
|
19
|
+
/** Internal immutable snapshot for child/root/filter composition. */
|
|
20
|
+
_queryPlan(): LocatorPlan;
|
|
21
|
+
/** Internal shared query environment for child/root composition. */
|
|
22
|
+
_queryEnvironment(): QueryEnvironment;
|
|
23
|
+
/** Bind this locator to a browsing context (iframe/tab). */
|
|
20
24
|
withContext(switcher: ContextSwitcher): this;
|
|
25
|
+
/** Bind this locator to a live BiDi context provider. */
|
|
26
|
+
withBiDi(provider: QueryBiDiProvider): this;
|
|
21
27
|
private _withContext;
|
|
22
|
-
/** Return a new child Locator
|
|
28
|
+
/** Return a new child Locator scoped within this locator's first match. */
|
|
23
29
|
locator(selector: string | By): Locator;
|
|
24
|
-
/**
|
|
30
|
+
/** Cross the explicit open Shadow DOM boundary exposed by the current host. */
|
|
31
|
+
shadowRoot(): ShadowRootLocator;
|
|
25
32
|
getByRole(role: string, opts?: {
|
|
26
33
|
name?: string;
|
|
27
34
|
exact?: boolean;
|
|
28
35
|
includeHidden?: boolean;
|
|
29
36
|
}): Locator;
|
|
30
|
-
/** Return a child Locator matching a descendant by visible text, scoped within this locator's first match. */
|
|
31
37
|
getByText(text: string, opts?: {
|
|
32
38
|
exact?: boolean;
|
|
33
39
|
}): Locator;
|
|
34
|
-
/** Return a child Locator matching a descendant by associated label, scoped within this locator's first match. */
|
|
35
40
|
getByLabel(text: string, opts?: {
|
|
36
41
|
exact?: boolean;
|
|
37
42
|
}): Locator;
|
|
38
|
-
/** Return a child Locator matching a descendant by placeholder text, scoped within this locator's first match. */
|
|
39
43
|
getByPlaceholder(text: string, opts?: {
|
|
40
44
|
exact?: boolean;
|
|
41
45
|
}): Locator;
|
|
42
|
-
/** Return a child Locator matching a descendant by alt text, scoped within this locator's first match. */
|
|
43
46
|
getByAltText(text: string, opts?: {
|
|
44
47
|
exact?: boolean;
|
|
45
48
|
}): Locator;
|
|
46
|
-
/** Return a child Locator matching a descendant by title attribute, scoped within this locator's first match. */
|
|
47
49
|
getByTitle(text: string, opts?: {
|
|
48
50
|
exact?: boolean;
|
|
49
51
|
}): Locator;
|
|
50
|
-
/** Return a child Locator matching a descendant by data-testid, scoped within this locator's first match. */
|
|
51
52
|
getByTestId(id: string): Locator;
|
|
52
|
-
/** Return a new Locator targeting the element at position `index` (0-based). */
|
|
53
53
|
nth(index: number): Locator;
|
|
54
|
-
/** Return a new Locator targeting the first match. */
|
|
55
54
|
first(): Locator;
|
|
56
|
-
/** Return a new Locator targeting the last match. */
|
|
57
55
|
last(): Locator;
|
|
58
|
-
/** Return a new Locator that narrows matches by text or child-locator presence. */
|
|
59
56
|
filter(opts: {
|
|
60
57
|
hasText?: string | RegExp;
|
|
61
58
|
has?: Locator;
|
|
62
59
|
}): Locator;
|
|
63
60
|
private _clone;
|
|
64
|
-
|
|
65
|
-
private _findRaw;
|
|
66
|
-
/** Apply text / has filters to the raw result set. */
|
|
67
|
-
private _findFiltered;
|
|
68
|
-
/** Apply index on top of the filtered result set. */
|
|
61
|
+
private _target;
|
|
69
62
|
private _findFinal;
|
|
70
|
-
|
|
63
|
+
private _selectorDetail;
|
|
71
64
|
private _waitForVisible;
|
|
72
|
-
/** Poll until any element is present in the final result set (need not be visible). */
|
|
73
65
|
private _waitForAny;
|
|
74
66
|
private _resolve;
|
|
75
|
-
/** Resolve the current final match once without waiting. */
|
|
76
67
|
private _resolveOnce;
|
|
77
68
|
private _resolveExisting;
|
|
78
|
-
/**
|
|
79
|
-
* Resolve to a visible element WITHOUT applying context switching (used inside _withContext blocks).
|
|
80
|
-
* The caller is responsible for switching context before calling this.
|
|
81
|
-
*/
|
|
82
|
-
private _waitForVisibleOrSimple;
|
|
83
|
-
/**
|
|
84
|
-
* Resolve to an existing element WITHOUT applying context switching (used inside _withContext blocks).
|
|
85
|
-
* The caller is responsible for switching context before calling this.
|
|
86
|
-
*/
|
|
87
|
-
private _waitForAnyOrSimple;
|
|
88
69
|
click(options?: ActionOptions): Promise<void>;
|
|
89
70
|
fill(text: string, options?: ActionOptions): Promise<void>;
|
|
90
71
|
text(options?: ActionOptions): Promise<string>;
|
|
91
|
-
/** Alias for text(). */
|
|
92
72
|
textContent(options?: ActionOptions): Promise<string>;
|
|
93
73
|
isVisible(options?: ActionOptions): Promise<boolean>;
|
|
94
|
-
/**
|
|
95
|
-
* Returns the number of currently matching elements in the DOM (no auto-wait).
|
|
96
|
-
* Use `waitFor` if you need to wait for a specific count.
|
|
97
|
-
*/
|
|
98
74
|
count(): Promise<number>;
|
|
99
|
-
/**
|
|
100
|
-
* Returns snapshot `ElementHandle`s for all currently matching elements.
|
|
101
|
-
* Each handle is bound to the element resolved at call time.
|
|
102
|
-
*/
|
|
103
75
|
all(): Promise<ElementHandle[]>;
|
|
104
76
|
waitFor(options: {
|
|
105
77
|
state: 'attached' | 'detached' | 'visible' | 'hidden';
|
|
106
78
|
timeout?: number;
|
|
107
79
|
}): Promise<unknown>;
|
|
108
|
-
/** Poll until the element is detached from DOM (`detached`) or no longer visible (`hidden`). */
|
|
109
80
|
private _waitForNegativeState;
|
|
110
|
-
/** Returns an assertion API scoped to this locator's selector. */
|
|
111
81
|
expect(): ExpectApi;
|
|
112
82
|
private _a11y?;
|
|
113
|
-
/**
|
|
114
|
-
* Accessibility audit scoped to the resolved element. Re-resolves the
|
|
115
|
-
* locator on every audit/check call.
|
|
116
|
-
*/
|
|
117
83
|
get a11y(): A11y;
|
|
118
84
|
}
|
|
85
|
+
export type { ContextSwitcher } from './query.js';
|
|
119
86
|
//# sourceMappingURL=locator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locator.d.ts","sourceRoot":"","sources":["../../src/lib/locator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"locator.d.ts","sourceRoot":"","sources":["../../src/lib/locator.ts"],"names":[],"mappings":"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"}
|