@vforsh/argus 0.1.3 → 0.1.5
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/README.md +6 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/argus.js +16381 -0
- package/dist/bin.d.ts +1 -1
- package/dist/bin.js +47 -759
- package/dist/bin.js.map +1 -1
- package/dist/cdp/resolveCdpEndpoint.js +2 -2
- package/dist/cdp/resolveCdpEndpoint.js.map +1 -1
- package/dist/cli/parse.d.ts +11 -0
- package/dist/cli/parse.d.ts.map +1 -0
- package/dist/cli/parse.js +48 -0
- package/dist/cli/parse.js.map +1 -0
- package/dist/cli/program.d.ts +3 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +22 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/register/registerChrome.d.ts +3 -0
- package/dist/cli/register/registerChrome.d.ts.map +1 -0
- package/dist/cli/register/registerChrome.js +79 -0
- package/dist/cli/register/registerChrome.js.map +1 -0
- package/dist/cli/register/registerClick.d.ts +3 -0
- package/dist/cli/register/registerClick.d.ts.map +1 -0
- package/dist/cli/register/registerClick.js +23 -0
- package/dist/cli/register/registerClick.js.map +1 -0
- package/dist/cli/register/registerConfig.d.ts +3 -0
- package/dist/cli/register/registerConfig.d.ts.map +1 -0
- package/dist/cli/register/registerConfig.js +14 -0
- package/dist/cli/register/registerConfig.js.map +1 -0
- package/dist/cli/register/registerDom.d.ts +3 -0
- package/dist/cli/register/registerDom.d.ts.map +1 -0
- package/dist/cli/register/registerDom.js +261 -0
- package/dist/cli/register/registerDom.js.map +1 -0
- package/dist/cli/register/registerEval.d.ts +3 -0
- package/dist/cli/register/registerEval.d.ts.map +1 -0
- package/dist/cli/register/registerEval.js +129 -0
- package/dist/cli/register/registerEval.js.map +1 -0
- package/dist/cli/register/registerExtension.d.ts +3 -0
- package/dist/cli/register/registerExtension.d.ts.map +1 -0
- package/dist/cli/register/registerExtension.js +46 -0
- package/dist/cli/register/registerExtension.js.map +1 -0
- package/dist/cli/register/registerFill.d.ts +3 -0
- package/dist/cli/register/registerFill.d.ts.map +1 -0
- package/dist/cli/register/registerFill.js +30 -0
- package/dist/cli/register/registerFill.js.map +1 -0
- package/dist/cli/register/registerHover.d.ts +3 -0
- package/dist/cli/register/registerHover.d.ts.map +1 -0
- package/dist/cli/register/registerHover.js +20 -0
- package/dist/cli/register/registerHover.js.map +1 -0
- package/dist/cli/register/registerKeydown.d.ts +3 -0
- package/dist/cli/register/registerKeydown.d.ts.map +1 -0
- package/dist/cli/register/registerKeydown.js +20 -0
- package/dist/cli/register/registerKeydown.js.map +1 -0
- package/dist/cli/register/registerLogs.d.ts +3 -0
- package/dist/cli/register/registerLogs.d.ts.map +1 -0
- package/dist/cli/register/registerLogs.js +64 -0
- package/dist/cli/register/registerLogs.js.map +1 -0
- package/dist/cli/register/registerNet.d.ts +3 -0
- package/dist/cli/register/registerNet.d.ts.map +1 -0
- package/dist/cli/register/registerNet.js +32 -0
- package/dist/cli/register/registerNet.js.map +1 -0
- package/dist/cli/register/registerPage.d.ts +3 -0
- package/dist/cli/register/registerPage.d.ts.map +1 -0
- package/dist/cli/register/registerPage.js +106 -0
- package/dist/cli/register/registerPage.js.map +1 -0
- package/dist/cli/register/registerQuickAccess.d.ts +3 -0
- package/dist/cli/register/registerQuickAccess.d.ts.map +1 -0
- package/dist/cli/register/registerQuickAccess.js +82 -0
- package/dist/cli/register/registerQuickAccess.js.map +1 -0
- package/dist/cli/register/registerScrollTo.d.ts +3 -0
- package/dist/cli/register/registerScrollTo.d.ts.map +1 -0
- package/dist/cli/register/registerScrollTo.js +22 -0
- package/dist/cli/register/registerScrollTo.js.map +1 -0
- package/dist/cli/register/registerSnapshot.d.ts +3 -0
- package/dist/cli/register/registerSnapshot.d.ts.map +1 -0
- package/dist/cli/register/registerSnapshot.js +37 -0
- package/dist/cli/register/registerSnapshot.js.map +1 -0
- package/dist/cli/register/registerStorage.d.ts +3 -0
- package/dist/cli/register/registerStorage.d.ts.map +1 -0
- package/dist/cli/register/registerStorage.js +56 -0
- package/dist/cli/register/registerStorage.js.map +1 -0
- package/dist/cli/register/registerThrottle.d.ts +3 -0
- package/dist/cli/register/registerThrottle.d.ts.map +1 -0
- package/dist/cli/register/registerThrottle.js +33 -0
- package/dist/cli/register/registerThrottle.js.map +1 -0
- package/dist/cli/register/registerTrace.d.ts +3 -0
- package/dist/cli/register/registerTrace.d.ts.map +1 -0
- package/dist/cli/register/registerTrace.js +39 -0
- package/dist/cli/register/registerTrace.js.map +1 -0
- package/dist/cli/register/registerWatcher.d.ts +3 -0
- package/dist/cli/register/registerWatcher.d.ts.map +1 -0
- package/dist/cli/register/registerWatcher.js +115 -0
- package/dist/cli/register/registerWatcher.js.map +1 -0
- package/dist/cli/validation.d.ts +10 -0
- package/dist/cli/validation.d.ts.map +1 -0
- package/dist/cli/validation.js +24 -0
- package/dist/cli/validation.js.map +1 -0
- package/dist/commands/chrome.d.ts +23 -0
- package/dist/commands/chrome.d.ts.map +1 -1
- package/dist/commands/chrome.js +120 -0
- package/dist/commands/chrome.js.map +1 -1
- package/dist/commands/chromeStart.d.ts +24 -0
- package/dist/commands/chromeStart.d.ts.map +1 -1
- package/dist/commands/chromeStart.js +175 -105
- package/dist/commands/chromeStart.js.map +1 -1
- package/dist/commands/configInit.d.ts.map +1 -1
- package/dist/commands/configInit.js +27 -13
- package/dist/commands/configInit.js.map +1 -1
- package/dist/commands/domAdd.d.ts.map +1 -1
- package/dist/commands/domAdd.js +25 -47
- package/dist/commands/domAdd.js.map +1 -1
- package/dist/commands/domAddScript.d.ts +14 -0
- package/dist/commands/domAddScript.d.ts.map +1 -0
- package/dist/commands/domAddScript.js +172 -0
- package/dist/commands/domAddScript.js.map +1 -0
- package/dist/commands/domClick.d.ts +5 -1
- package/dist/commands/domClick.d.ts.map +1 -1
- package/dist/commands/domClick.js +74 -36
- package/dist/commands/domClick.js.map +1 -1
- package/dist/commands/domFill.d.ts +14 -0
- package/dist/commands/domFill.d.ts.map +1 -0
- package/dist/commands/domFill.js +129 -0
- package/dist/commands/domFill.js.map +1 -0
- package/dist/commands/domFocus.d.ts +10 -0
- package/dist/commands/domFocus.d.ts.map +1 -0
- package/dist/commands/domFocus.js +52 -0
- package/dist/commands/domFocus.js.map +1 -0
- package/dist/commands/domHover.d.ts +1 -0
- package/dist/commands/domHover.d.ts.map +1 -1
- package/dist/commands/domHover.js +17 -40
- package/dist/commands/domHover.js.map +1 -1
- package/dist/commands/domInfo.d.ts +1 -0
- package/dist/commands/domInfo.d.ts.map +1 -1
- package/dist/commands/domInfo.js +19 -51
- package/dist/commands/domInfo.js.map +1 -1
- package/dist/commands/domKeydown.d.ts +10 -0
- package/dist/commands/domKeydown.d.ts.map +1 -0
- package/dist/commands/domKeydown.js +46 -0
- package/dist/commands/domKeydown.js.map +1 -0
- package/dist/commands/domModify.d.ts +1 -0
- package/dist/commands/domModify.d.ts.map +1 -1
- package/dist/commands/domModify.js +14 -40
- package/dist/commands/domModify.js.map +1 -1
- package/dist/commands/domRemove.d.ts +1 -0
- package/dist/commands/domRemove.d.ts.map +1 -1
- package/dist/commands/domRemove.js +17 -40
- package/dist/commands/domRemove.js.map +1 -1
- package/dist/commands/domScroll.d.ts +12 -0
- package/dist/commands/domScroll.d.ts.map +1 -0
- package/dist/commands/domScroll.js +105 -0
- package/dist/commands/domScroll.js.map +1 -0
- package/dist/commands/domScrollTo.d.ts +12 -0
- package/dist/commands/domScrollTo.d.ts.map +1 -0
- package/dist/commands/domScrollTo.js +107 -0
- package/dist/commands/domScrollTo.js.map +1 -0
- package/dist/commands/domSetFile.d.ts +12 -0
- package/dist/commands/domSetFile.d.ts.map +1 -0
- package/dist/commands/domSetFile.js +87 -0
- package/dist/commands/domSetFile.js.map +1 -0
- package/dist/commands/domTree.d.ts +1 -0
- package/dist/commands/domTree.d.ts.map +1 -1
- package/dist/commands/domTree.js +20 -52
- package/dist/commands/domTree.js.map +1 -1
- package/dist/commands/eval.d.ts +5 -1
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +8 -148
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/evalShared.d.ts +64 -0
- package/dist/commands/evalShared.d.ts.map +1 -0
- package/dist/commands/evalShared.js +205 -0
- package/dist/commands/evalShared.js.map +1 -0
- package/dist/commands/evalUntil.d.ts +27 -0
- package/dist/commands/evalUntil.d.ts.map +1 -0
- package/dist/commands/evalUntil.js +128 -0
- package/dist/commands/evalUntil.js.map +1 -0
- package/dist/commands/extension/doctor.d.ts +5 -0
- package/dist/commands/extension/doctor.d.ts.map +1 -0
- package/dist/commands/extension/doctor.js +262 -0
- package/dist/commands/extension/doctor.js.map +1 -0
- package/dist/commands/extension/id.d.ts +9 -0
- package/dist/commands/extension/id.d.ts.map +1 -0
- package/dist/commands/extension/id.js +122 -0
- package/dist/commands/extension/id.js.map +1 -0
- package/dist/commands/extension/list.d.ts +8 -0
- package/dist/commands/extension/list.d.ts.map +1 -0
- package/dist/commands/extension/list.js +194 -0
- package/dist/commands/extension/list.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +36 -25
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +14 -55
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/net.d.ts.map +1 -1
- package/dist/commands/net.js +12 -53
- package/dist/commands/net.js.map +1 -1
- package/dist/commands/netTail.d.ts.map +1 -1
- package/dist/commands/netTail.js +4 -40
- package/dist/commands/netTail.js.map +1 -1
- package/dist/commands/page.d.ts +0 -1
- package/dist/commands/page.d.ts.map +1 -1
- package/dist/commands/page.js +3 -13
- package/dist/commands/page.js.map +1 -1
- package/dist/commands/pageEmulation.d.ts +20 -0
- package/dist/commands/pageEmulation.d.ts.map +1 -0
- package/dist/commands/pageEmulation.js +215 -0
- package/dist/commands/pageEmulation.js.map +1 -0
- package/dist/commands/reload.d.ts.map +1 -1
- package/dist/commands/reload.js +12 -39
- package/dist/commands/reload.js.map +1 -1
- package/dist/commands/resolveTestId.d.ts +10 -0
- package/dist/commands/resolveTestId.d.ts.map +1 -0
- package/dist/commands/resolveTestId.js +16 -0
- package/dist/commands/resolveTestId.js.map +1 -0
- package/dist/commands/screenshot.d.ts.map +1 -1
- package/dist/commands/screenshot.js +16 -41
- package/dist/commands/screenshot.js.map +1 -1
- package/dist/commands/snapshot.d.ts +10 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +54 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/start.d.ts +20 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +191 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/storageLocal.d.ts.map +1 -1
- package/dist/commands/storageLocal.js +16 -43
- package/dist/commands/storageLocal.js.map +1 -1
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +4 -40
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands/throttle.d.ts +13 -0
- package/dist/commands/throttle.d.ts.map +1 -0
- package/dist/commands/throttle.js +124 -0
- package/dist/commands/throttle.js.map +1 -0
- package/dist/commands/trace.d.ts.map +1 -1
- package/dist/commands/trace.js +8 -38
- package/dist/commands/trace.js.map +1 -1
- package/dist/commands/watcherPrune.d.ts.map +1 -1
- package/dist/commands/watcherPrune.js +3 -4
- package/dist/commands/watcherPrune.js.map +1 -1
- package/dist/commands/watcherStart.d.ts +3 -0
- package/dist/commands/watcherStart.d.ts.map +1 -1
- package/dist/commands/watcherStart.js +28 -8
- package/dist/commands/watcherStart.js.map +1 -1
- package/dist/commands/watcherStatus.d.ts.map +1 -1
- package/dist/commands/watcherStatus.js +10 -32
- package/dist/commands/watcherStatus.js.map +1 -1
- package/dist/commands/watcherStop.d.ts.map +1 -1
- package/dist/commands/watcherStop.js +7 -14
- package/dist/commands/watcherStop.js.map +1 -1
- package/dist/config/argusConfig.d.ts +8 -10
- package/dist/config/argusConfig.d.ts.map +1 -1
- package/dist/config/argusConfig.js +49 -56
- package/dist/config/argusConfig.js.map +1 -1
- package/dist/emulation/devices.d.ts +15 -0
- package/dist/emulation/devices.d.ts.map +1 -0
- package/dist/emulation/devices.js +54 -0
- package/dist/emulation/devices.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/output/accessibility.d.ts +16 -0
- package/dist/output/accessibility.d.ts.map +1 -0
- package/dist/output/accessibility.js +61 -0
- package/dist/output/accessibility.js.map +1 -0
- package/dist/registry.d.ts +6 -6
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +20 -21
- package/dist/registry.js.map +1 -1
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +8 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/watchers/requestWatcher.d.ts +42 -0
- package/dist/watchers/requestWatcher.d.ts.map +1 -0
- package/dist/watchers/requestWatcher.js +77 -0
- package/dist/watchers/requestWatcher.js.map +1 -0
- package/dist/watchers/resolveWatcher.js +2 -2
- package/dist/watchers/resolveWatcher.js.map +1 -1
- package/package.json +10 -15
- package/schemas/argus.config.schema.json +16 -0
- package/dist/commands/contexts.d.ts +0 -7
- package/dist/commands/contexts.d.ts.map +0 -1
- package/dist/commands/contexts.js +0 -54
- package/dist/commands/contexts.js.map +0 -1
- package/dist/commands/domDiff.d.ts +0 -43
- package/dist/commands/domDiff.d.ts.map +0 -1
- package/dist/commands/domDiff.js +0 -279
- package/dist/commands/domDiff.js.map +0 -1
- package/dist/commands/extension/attach.d.ts +0 -8
- package/dist/commands/extension/attach.d.ts.map +0 -1
- package/dist/commands/extension/attach.js +0 -171
- package/dist/commands/extension/attach.js.map +0 -1
- package/dist/commands/extension/detach.d.ts +0 -6
- package/dist/commands/extension/detach.d.ts.map +0 -1
- package/dist/commands/extension/detach.js +0 -132
- package/dist/commands/extension/detach.js.map +0 -1
- package/dist/commands/extension/targets.d.ts +0 -13
- package/dist/commands/extension/targets.d.ts.map +0 -1
- package/dist/commands/extension/targets.js +0 -77
- package/dist/commands/extension/targets.js.map +0 -1
- package/dist/commands/frames.d.ts +0 -7
- package/dist/commands/frames.d.ts.map +0 -1
- package/dist/commands/frames.js +0 -90
- package/dist/commands/frames.js.map +0 -1
- package/dist/frame/frameSelector.d.ts +0 -14
- package/dist/frame/frameSelector.d.ts.map +0 -1
- package/dist/frame/frameSelector.js +0 -31
- package/dist/frame/frameSelector.js.map +0 -1
- package/dist/output/domDiff.d.ts +0 -14
- package/dist/output/domDiff.d.ts.map +0 -1
- package/dist/output/domDiff.js +0 -151
- package/dist/output/domDiff.js.map +0 -1
- package/dist/plugins/argusApi.d.ts +0 -22
- package/dist/plugins/argusApi.d.ts.map +0 -1
- package/dist/plugins/argusApi.js +0 -92
- package/dist/plugins/argusApi.js.map +0 -1
- package/dist/plugins/loader.d.ts +0 -12
- package/dist/plugins/loader.d.ts.map +0 -1
- package/dist/plugins/loader.js +0 -92
- package/dist/plugins/loader.js.map +0 -1
- package/dist/plugins/registry.d.ts +0 -17
- package/dist/plugins/registry.d.ts.map +0 -1
- package/dist/plugins/registry.js +0 -44
- package/dist/plugins/registry.js.map +0 -1
- package/dist/plugins/resolver.d.ts +0 -6
- package/dist/plugins/resolver.d.ts.map +0 -1
- package/dist/plugins/resolver.js +0 -86
- package/dist/plugins/resolver.js.map +0 -1
package/dist/plugins/argusApi.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { createArgusClient } from '@vforsh/argus-client';
|
|
2
|
-
import { evalWithRetries } from '../eval/evalClient.js';
|
|
3
|
-
import { resolveWatcher } from '../watchers/resolveWatcher.js';
|
|
4
|
-
export class ArgusPluginApiError extends Error {
|
|
5
|
-
code;
|
|
6
|
-
candidates;
|
|
7
|
-
watcherId;
|
|
8
|
-
exception;
|
|
9
|
-
constructor(options) {
|
|
10
|
-
super(options.message);
|
|
11
|
-
this.name = 'ArgusPluginApiError';
|
|
12
|
-
this.code = options.code;
|
|
13
|
-
this.candidates = options.candidates;
|
|
14
|
-
this.watcherId = options.watcherId;
|
|
15
|
-
this.exception = options.exception;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export function createPluginArgusApi(_baseContext) {
|
|
19
|
-
const client = createArgusClient();
|
|
20
|
-
return {
|
|
21
|
-
async resolveWatcher(input) {
|
|
22
|
-
const result = await resolveWatcher({ id: input?.id });
|
|
23
|
-
if (!result.ok) {
|
|
24
|
-
return { ok: false, error: result.error, candidates: result.candidates };
|
|
25
|
-
}
|
|
26
|
-
return { ok: true, watcher: result.watcher };
|
|
27
|
-
},
|
|
28
|
-
async listWatchers(options) {
|
|
29
|
-
const results = await client.list({ byCwd: options?.byCwd });
|
|
30
|
-
return results.map((entry) => ({
|
|
31
|
-
watcher: entry.watcher,
|
|
32
|
-
reachable: entry.reachable,
|
|
33
|
-
error: entry.reachable ? undefined : entry.error,
|
|
34
|
-
}));
|
|
35
|
-
},
|
|
36
|
-
async eval(input) {
|
|
37
|
-
if (!input.expression || input.expression.trim() === '') {
|
|
38
|
-
throw new ArgusPluginApiError({
|
|
39
|
-
code: 'expression_required',
|
|
40
|
-
message: 'expression is required',
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
const resolved = await resolveWatcher({ id: input.watcherId });
|
|
44
|
-
if (!resolved.ok) {
|
|
45
|
-
const code = resolved.candidates?.length ? 'watcher_required' : 'watcher_not_found';
|
|
46
|
-
throw new ArgusPluginApiError({
|
|
47
|
-
code,
|
|
48
|
-
message: resolved.error,
|
|
49
|
-
candidates: resolved.candidates,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
const { watcher } = resolved;
|
|
53
|
-
const awaitPromise = input.awaitPromise ?? true;
|
|
54
|
-
const returnByValue = input.returnByValue ?? true;
|
|
55
|
-
const failOnException = input.failOnException ?? true;
|
|
56
|
-
const retryCount = input.retryCount ?? 0;
|
|
57
|
-
const result = await evalWithRetries({
|
|
58
|
-
watcher,
|
|
59
|
-
expression: input.expression,
|
|
60
|
-
awaitPromise,
|
|
61
|
-
returnByValue,
|
|
62
|
-
timeoutMs: input.timeoutMs,
|
|
63
|
-
failOnException,
|
|
64
|
-
retryCount,
|
|
65
|
-
});
|
|
66
|
-
if (!result.ok) {
|
|
67
|
-
if (result.kind === 'transport') {
|
|
68
|
-
throw new ArgusPluginApiError({
|
|
69
|
-
code: 'eval_transport',
|
|
70
|
-
message: result.error,
|
|
71
|
-
watcherId: watcher.id,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
throw new ArgusPluginApiError({
|
|
75
|
-
code: 'eval_exception',
|
|
76
|
-
message: result.error,
|
|
77
|
-
watcherId: watcher.id,
|
|
78
|
-
exception: result.response?.exception
|
|
79
|
-
? { text: result.response.exception.text, details: result.response.exception.details }
|
|
80
|
-
: undefined,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
watcherId: watcher.id,
|
|
85
|
-
result: result.response.result,
|
|
86
|
-
type: result.response.type ?? null,
|
|
87
|
-
exception: result.response.exception ? { text: result.response.exception.text, details: result.response.exception.details } : null,
|
|
88
|
-
};
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=argusApi.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"argusApi.js","sourceRoot":"","sources":["../../src/plugins/argusApi.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/loader.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Command } from 'commander';
|
|
2
|
-
import type { ResolvedPlugin, PluginContext } from '@vforsh/argus-core';
|
|
3
|
-
/**
|
|
4
|
-
* Loads and validates plugin modules.
|
|
5
|
-
*/
|
|
6
|
-
export declare function loadPlugins(resolved: ResolvedPlugin[], context: Omit<PluginContext, 'config' | 'argus'>): Promise<LoadedPlugin[]>;
|
|
7
|
-
export interface LoadedPlugin {
|
|
8
|
-
name: string;
|
|
9
|
-
command: Command;
|
|
10
|
-
teardown?: () => void | Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAe,aAAa,EAAmC,MAAM,oBAAoB,CAAA;AAGrH;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA2BvI;AAwED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC"}
|
package/dist/plugins/loader.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { pathToFileURL } from 'node:url';
|
|
2
|
-
import { createPluginArgusApi } from './argusApi.js';
|
|
3
|
-
/**
|
|
4
|
-
* Loads and validates plugin modules.
|
|
5
|
-
*/
|
|
6
|
-
export async function loadPlugins(resolved, context) {
|
|
7
|
-
const loaded = [];
|
|
8
|
-
const errors = [];
|
|
9
|
-
const argusApi = createPluginArgusApi(context);
|
|
10
|
-
for (const plugin of resolved) {
|
|
11
|
-
if (!plugin.enabled) {
|
|
12
|
-
continue;
|
|
13
|
-
}
|
|
14
|
-
try {
|
|
15
|
-
const loadedPlugin = await loadPlugin(plugin, context, argusApi);
|
|
16
|
-
loaded.push(loadedPlugin);
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
errors.push({
|
|
20
|
-
plugin: plugin.name,
|
|
21
|
-
error: error,
|
|
22
|
-
phase: 'load',
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if (errors.length > 0) {
|
|
27
|
-
throw new PluginLoadErrors(errors);
|
|
28
|
-
}
|
|
29
|
-
return loaded;
|
|
30
|
-
}
|
|
31
|
-
async function loadPlugin(plugin, baseContext, argusApi) {
|
|
32
|
-
let module;
|
|
33
|
-
try {
|
|
34
|
-
const fileUrl = pathToFileURL(plugin.modulePath).href;
|
|
35
|
-
module = await import(fileUrl);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
throw new Error(`Failed to import plugin module: ${plugin.modulePath}`, { cause: error });
|
|
39
|
-
}
|
|
40
|
-
const pluginExports = validatePluginExports(module, plugin.name);
|
|
41
|
-
const context = {
|
|
42
|
-
...baseContext,
|
|
43
|
-
config: plugin.config,
|
|
44
|
-
argus: argusApi,
|
|
45
|
-
};
|
|
46
|
-
if (pluginExports.setup) {
|
|
47
|
-
try {
|
|
48
|
-
await pluginExports.setup(context);
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
throw new Error(`Plugin setup failed: ${plugin.name}`, { cause: error });
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return {
|
|
55
|
-
name: plugin.name,
|
|
56
|
-
command: pluginExports.command,
|
|
57
|
-
teardown: pluginExports.teardown,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function validatePluginExports(module, pluginName) {
|
|
61
|
-
if (!module || typeof module !== 'object') {
|
|
62
|
-
throw new Error(`Plugin must export an object: ${pluginName}`);
|
|
63
|
-
}
|
|
64
|
-
const exports = module;
|
|
65
|
-
const pluginExports = exports.default;
|
|
66
|
-
if (!pluginExports) {
|
|
67
|
-
throw new Error(`Plugin must have a default export: ${pluginName}\n` + `Expected: export default { command: Command }`);
|
|
68
|
-
}
|
|
69
|
-
if (!pluginExports.command) {
|
|
70
|
-
throw new Error(`Plugin must export a "command" property: ${pluginName}`);
|
|
71
|
-
}
|
|
72
|
-
if (typeof pluginExports.command.name !== 'function') {
|
|
73
|
-
throw new Error(`Plugin "command" must be a Commander.js Command instance: ${pluginName}\n` + `Did you forget to instantiate? Try: new Command('name')`);
|
|
74
|
-
}
|
|
75
|
-
if (pluginExports.setup && typeof pluginExports.setup !== 'function') {
|
|
76
|
-
throw new Error(`Plugin "setup" must be a function: ${pluginName}`);
|
|
77
|
-
}
|
|
78
|
-
if (pluginExports.teardown && typeof pluginExports.teardown !== 'function') {
|
|
79
|
-
throw new Error(`Plugin "teardown" must be a function: ${pluginName}`);
|
|
80
|
-
}
|
|
81
|
-
return pluginExports;
|
|
82
|
-
}
|
|
83
|
-
class PluginLoadErrors extends Error {
|
|
84
|
-
errors;
|
|
85
|
-
constructor(errors) {
|
|
86
|
-
const errorSummary = errors.map((e) => ` - ${e.plugin} (${e.phase}): ${e.error.message}`).join('\n');
|
|
87
|
-
super(`Failed to load ${errors.length} plugin(s):\n${errorSummary}\n\n` + `Check your .argus/config.json "plugins" configuration.`);
|
|
88
|
-
this.errors = errors;
|
|
89
|
-
this.name = 'PluginLoadErrors';
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Command } from 'commander';
|
|
2
|
-
import type { ArgusConfig } from '../config/argusConfig.js';
|
|
3
|
-
/**
|
|
4
|
-
* Main plugin system orchestrator.
|
|
5
|
-
* Resolves, loads, and registers plugins.
|
|
6
|
-
*/
|
|
7
|
-
export declare class PluginRegistry {
|
|
8
|
-
private plugins;
|
|
9
|
-
loadFromConfig(config: ArgusConfig, context: {
|
|
10
|
-
cwd: string;
|
|
11
|
-
configDir: string;
|
|
12
|
-
argusConfig: ArgusConfig;
|
|
13
|
-
}): Promise<void>;
|
|
14
|
-
registerWith(program: Command): void;
|
|
15
|
-
cleanup(): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAI3D;;;GAGG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,OAAO,CAAqB;IAE9B,cAAc,CACnB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE;QACR,GAAG,EAAE,MAAM,CAAA;QACX,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,EAAE,WAAW,CAAA;KACxB,GACC,OAAO,CAAC,IAAI,CAAC;IAUhB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAuB9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAW9B"}
|
package/dist/plugins/registry.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { resolvePlugins } from './resolver.js';
|
|
2
|
-
import { loadPlugins } from './loader.js';
|
|
3
|
-
/**
|
|
4
|
-
* Main plugin system orchestrator.
|
|
5
|
-
* Resolves, loads, and registers plugins.
|
|
6
|
-
*/
|
|
7
|
-
export class PluginRegistry {
|
|
8
|
-
plugins = [];
|
|
9
|
-
async loadFromConfig(config, context) {
|
|
10
|
-
if (!config.plugins || config.plugins.length === 0) {
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
const resolved = await resolvePlugins(config.plugins, context.configDir);
|
|
14
|
-
this.plugins = await loadPlugins(resolved, context);
|
|
15
|
-
}
|
|
16
|
-
registerWith(program) {
|
|
17
|
-
const existingCommands = program.commands.map((c) => c.name());
|
|
18
|
-
const pluginCommands = this.plugins.map((p) => p.command.name());
|
|
19
|
-
const duplicates = pluginCommands.filter((name, index) => pluginCommands.indexOf(name) !== index);
|
|
20
|
-
if (duplicates.length > 0) {
|
|
21
|
-
throw new Error(`Duplicate plugin commands detected: ${duplicates.join(', ')}\n` + `Each plugin must have a unique command name.`);
|
|
22
|
-
}
|
|
23
|
-
const conflicts = pluginCommands.filter((name) => existingCommands.includes(name));
|
|
24
|
-
if (conflicts.length > 0) {
|
|
25
|
-
throw new Error(`Plugin commands conflict with built-in commands: ${conflicts.join(', ')}\n` + `Choose different command names for your plugins.`);
|
|
26
|
-
}
|
|
27
|
-
for (const plugin of this.plugins) {
|
|
28
|
-
program.addCommand(plugin.command);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
async cleanup() {
|
|
32
|
-
for (const plugin of this.plugins) {
|
|
33
|
-
if (plugin.teardown) {
|
|
34
|
-
try {
|
|
35
|
-
await plugin.teardown();
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
console.error(`Plugin teardown failed: ${plugin.name}`, error);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAqB,MAAM,aAAa,CAAA;AAE5D;;;GAGG;AACH,MAAM,OAAO,cAAc;IAClB,OAAO,GAAmB,EAAE,CAAA;IAEpC,KAAK,CAAC,cAAc,CACnB,MAAmB,EACnB,OAIC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,OAAM;QACP,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAExE,IAAI,CAAC,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;IAED,YAAY,CAAC,OAAgB;QAC5B,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAEhE,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAA;QAEjG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,8CAA8C,CAAC,CAAA;QACnI,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAElF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACd,oDAAoD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,kDAAkD,CACjI,CAAA;QACF,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACJ,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;gBAC/D,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { PluginConfig, ResolvedPlugin } from '@vforsh/argus-core';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves plugin configs to absolute module paths.
|
|
4
|
-
*/
|
|
5
|
-
export declare function resolvePlugins(configs: PluginConfig[], configDir: string): Promise<ResolvedPlugin[]>;
|
|
6
|
-
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/plugins/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAsB,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE1F;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAa1G"}
|
package/dist/plugins/resolver.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { resolve, isAbsolute } from 'node:path';
|
|
2
|
-
import { pathToFileURL } from 'node:url';
|
|
3
|
-
/**
|
|
4
|
-
* Resolves plugin configs to absolute module paths.
|
|
5
|
-
*/
|
|
6
|
-
export async function resolvePlugins(configs, configDir) {
|
|
7
|
-
const resolved = [];
|
|
8
|
-
for (const config of configs) {
|
|
9
|
-
try {
|
|
10
|
-
const plugin = await resolvePlugin(config, configDir);
|
|
11
|
-
resolved.push(plugin);
|
|
12
|
-
}
|
|
13
|
-
catch (error) {
|
|
14
|
-
throw new PluginResolveError(`Failed to resolve plugin: ${JSON.stringify(config)}`, { cause: error });
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return resolved;
|
|
18
|
-
}
|
|
19
|
-
async function resolvePlugin(config, configDir) {
|
|
20
|
-
const normalized = normalizePluginConfig(config);
|
|
21
|
-
const { name, module: moduleSpecifier, enabled, config: pluginConfig } = normalized;
|
|
22
|
-
const modulePath = await resolveModulePath(moduleSpecifier, configDir);
|
|
23
|
-
return {
|
|
24
|
-
name,
|
|
25
|
-
moduleSpecifier,
|
|
26
|
-
modulePath,
|
|
27
|
-
enabled: enabled ?? true,
|
|
28
|
-
config: pluginConfig,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function normalizePluginConfig(config) {
|
|
32
|
-
if (typeof config === 'string') {
|
|
33
|
-
return {
|
|
34
|
-
name: derivePluginName(config),
|
|
35
|
-
module: config,
|
|
36
|
-
enabled: true,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
name: config.name,
|
|
41
|
-
module: config.module,
|
|
42
|
-
enabled: config.enabled ?? true,
|
|
43
|
-
config: config.config,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function derivePluginName(moduleSpecifier) {
|
|
47
|
-
if (moduleSpecifier.startsWith('.') || moduleSpecifier.startsWith('/')) {
|
|
48
|
-
const basename = moduleSpecifier.split('/').pop() || moduleSpecifier;
|
|
49
|
-
return basename.replace(/\.(js|ts|mjs|cjs)$/, '');
|
|
50
|
-
}
|
|
51
|
-
return moduleSpecifier;
|
|
52
|
-
}
|
|
53
|
-
async function resolveModulePath(moduleSpecifier, configDir) {
|
|
54
|
-
if (isAbsolute(moduleSpecifier)) {
|
|
55
|
-
return moduleSpecifier;
|
|
56
|
-
}
|
|
57
|
-
if (moduleSpecifier.startsWith('.')) {
|
|
58
|
-
return resolve(configDir, moduleSpecifier);
|
|
59
|
-
}
|
|
60
|
-
try {
|
|
61
|
-
if (typeof import.meta.resolve === 'function') {
|
|
62
|
-
const resolved = await import.meta.resolve(moduleSpecifier, pathToFileURL(configDir + '/'));
|
|
63
|
-
return new URL(resolved).pathname;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
// Fall through to require.resolve
|
|
68
|
-
}
|
|
69
|
-
try {
|
|
70
|
-
const { createRequire } = await import('node:module');
|
|
71
|
-
const require = createRequire(resolve(configDir, 'package.json'));
|
|
72
|
-
return require.resolve(moduleSpecifier);
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
throw new Error(`Cannot resolve plugin module: ${moduleSpecifier}\n` +
|
|
76
|
-
`Tried resolving from: ${configDir}\n` +
|
|
77
|
-
`Make sure the package is installed or the path is correct.`, { cause: error });
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
class PluginResolveError extends Error {
|
|
81
|
-
constructor(message, options) {
|
|
82
|
-
super(message, options);
|
|
83
|
-
this.name = 'PluginResolveError';
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/plugins/resolver.ts"],"names":[],"mappings":"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"}
|