@voiden/runner 0.1.0-beta.6 → 2.1.1
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 +20 -0
- package/bundled-runners/package.json +3 -0
- package/bundled-runners/simple-assertions-runner.js +1 -0
- package/bundled-runners/versions.json +9 -0
- package/bundled-runners/voiden-advanced-auth-runner.js +1 -0
- package/bundled-runners/voiden-faker-runner.js +16 -0
- package/bundled-runners/voiden-graphql-runner.js +1 -0
- package/bundled-runners/voiden-rest-api-runner.js +1 -0
- package/bundled-runners/voiden-scripting-runner.js +397 -0
- package/bundled-runners/voiden-sockets-grpcs-runner.js +1 -0
- package/dist/cliElectron.d.ts +1 -1
- package/dist/index.js +267 -26
- package/dist/index.js.map +1 -1
- package/dist/plugins/community.d.ts +4 -3
- package/dist/plugins/community.d.ts.map +1 -1
- package/dist/plugins/community.js +32 -21
- package/dist/plugins/community.js.map +1 -1
- package/dist/plugins/loader.d.ts +9 -0
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +93 -8
- package/dist/plugins/loader.js.map +1 -1
- package/dist/plugins/registry.d.ts +30 -21
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +111 -46
- package/dist/plugins/registry.js.map +1 -1
- package/dist/plugins/registryCache.d.ts +30 -0
- package/dist/plugins/registryCache.d.ts.map +1 -0
- package/dist/plugins/registryCache.js +95 -0
- package/dist/plugins/registryCache.js.map +1 -0
- package/dist/plugins/store.d.ts +6 -1
- package/dist/plugins/store.d.ts.map +1 -1
- package/dist/plugins/store.js +21 -1
- package/dist/plugins/store.js.map +1 -1
- package/dist/plugins/updateCheck.d.ts +19 -0
- package/dist/plugins/updateCheck.d.ts.map +1 -0
- package/dist/plugins/updateCheck.js +60 -0
- package/dist/plugins/updateCheck.js.map +1 -0
- package/dist/runner.d.ts +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +19 -2
- package/dist/runner.js.map +1 -1
- package/dist/runtimeVars.d.ts +5 -0
- package/dist/runtimeVars.d.ts.map +1 -1
- package/dist/runtimeVars.js +36 -2
- package/dist/runtimeVars.js.map +1 -1
- package/package.json +13 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwDH,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ/D;AAID,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAaD,4EAA4E;AAC5E,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAKlE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAGpF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAEzD"}
|
package/dist/plugins/registry.js
CHANGED
|
@@ -1,52 +1,117 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Plugin Registry
|
|
2
|
+
* Core Plugin Registry
|
|
3
3
|
*
|
|
4
|
-
* Derives the list of runner-capable core
|
|
5
|
-
*
|
|
4
|
+
* Derives the list of runner-capable core plugins from the same
|
|
5
|
+
* VoidenHQ/plugin-registry `extensions.json` that the Electron app reads
|
|
6
|
+
* (see registryCache.ts) — no separate static snapshot to keep in sync.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* ID_TO_FOLDER handles the few cases where the registry ID differs from the
|
|
14
|
-
* folder name inside @voiden/core-extensions/src/.
|
|
8
|
+
* A core plugin is runner-capable when the registry marks it `hasRunner: true`
|
|
9
|
+
* (set by plugin-registry maintainers when the plugin publishes a headless
|
|
10
|
+
* runner.js bundle). Each such plugin is built and released as
|
|
11
|
+
* {pluginId}-runner.js in its own GitHub repo (VoidenHQ/plugin-{dir}).
|
|
12
|
+
* voiden-runner downloads and caches these files the same way community
|
|
13
|
+
* plugins do: ~/.voiden/extensions/{id}/runner.js
|
|
15
14
|
*/
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
15
|
+
import { join } from 'path';
|
|
16
|
+
import { homedir } from 'os';
|
|
17
|
+
import { existsSync, statSync, readFileSync } from 'fs';
|
|
18
|
+
import { pathToFileURL } from 'url';
|
|
19
|
+
import { getRegistry } from './registryCache.js';
|
|
20
|
+
import { getInstalledVersion } from './store.js';
|
|
21
|
+
// ─── Runner paths (priority: bundled-at-build-time > user cache > download) ───
|
|
22
|
+
const RUNNER_CACHE_DIR = join(homedir(), '.voiden', 'extensions');
|
|
23
|
+
// A failed/interrupted download can leave a 0-byte file behind; treat that as
|
|
24
|
+
// "not cached" so we fall back to the bundled copy instead of importing nothing.
|
|
25
|
+
function isValidRunnerFile(path) {
|
|
26
|
+
try {
|
|
27
|
+
return existsSync(path) && statSync(path).size > 0;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Resolves the bundled-runners/ directory shipped inside the @voiden/runner
|
|
34
|
+
// package itself (built by scripts/build-runners.mjs from plugins whose
|
|
35
|
+
// plugin-registry entry has `bundled: true`). Two candidates: monorepo dev
|
|
36
|
+
// layout vs. the npm-installed package layout.
|
|
37
|
+
function getBundledRunnersDir() {
|
|
38
|
+
const candidates = [
|
|
39
|
+
join(new URL('.', import.meta.url).pathname, '../../../../packages/voiden-runner/bundled-runners'),
|
|
40
|
+
join(new URL('.', import.meta.url).pathname, '../../bundled-runners'),
|
|
41
|
+
];
|
|
42
|
+
for (const dir of candidates) {
|
|
43
|
+
if (existsSync(dir))
|
|
44
|
+
return dir;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
function getBundledRunnerPath(pluginId) {
|
|
49
|
+
const dir = getBundledRunnersDir();
|
|
50
|
+
if (!dir)
|
|
51
|
+
return null;
|
|
52
|
+
const p = join(dir, `${pluginId}-runner.js`);
|
|
53
|
+
return isValidRunnerFile(p) ? p : null;
|
|
54
|
+
}
|
|
55
|
+
let bundledVersionsCache;
|
|
56
|
+
function getBundledVersions() {
|
|
57
|
+
if (bundledVersionsCache)
|
|
58
|
+
return bundledVersionsCache;
|
|
59
|
+
const dir = getBundledRunnersDir();
|
|
60
|
+
try {
|
|
61
|
+
bundledVersionsCache = dir ? JSON.parse(readFileSync(join(dir, 'versions.json'), 'utf-8')) : {};
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
bundledVersionsCache = {};
|
|
65
|
+
}
|
|
66
|
+
return bundledVersionsCache;
|
|
67
|
+
}
|
|
68
|
+
/** Version of the copy currently bundled inside the package (not the latest registry version). */
|
|
69
|
+
export function getBundledVersion(pluginId) {
|
|
70
|
+
return getBundledVersions()[pluginId];
|
|
71
|
+
}
|
|
72
|
+
/** The version actually present locally — cached download takes priority over the bundled copy. */
|
|
73
|
+
export function getCoreRunnerVersion(pluginId) {
|
|
74
|
+
return getInstalledVersion(pluginId) ?? getBundledVersion(pluginId);
|
|
75
|
+
}
|
|
76
|
+
export function getCoreRunnerPath(pluginId) {
|
|
77
|
+
return join(RUNNER_CACHE_DIR, pluginId, 'runner.js');
|
|
78
|
+
}
|
|
79
|
+
export function hasCoreRunner(pluginId) {
|
|
80
|
+
return !!getBundledRunnerPath(pluginId) || isValidRunnerFile(getCoreRunnerPath(pluginId));
|
|
81
|
+
}
|
|
82
|
+
export function getCoreRunnerImportUrl(pluginId) {
|
|
83
|
+
// User cache (~/.voiden/extensions) takes priority over the bundled snapshot —
|
|
84
|
+
// mirrors Electron's OTA-cache-over-bundled resolution (seedBundledPluginsToCache /
|
|
85
|
+
// isOtaCached) — so `plugin update` can actually supersede a bundled runner.
|
|
86
|
+
if (isValidRunnerFile(getCoreRunnerPath(pluginId)))
|
|
87
|
+
return pathToFileURL(getCoreRunnerPath(pluginId)).href;
|
|
88
|
+
const bundled = getBundledRunnerPath(pluginId);
|
|
89
|
+
if (bundled)
|
|
90
|
+
return pathToFileURL(bundled).href;
|
|
91
|
+
return pathToFileURL(getCoreRunnerPath(pluginId)).href;
|
|
92
|
+
}
|
|
93
|
+
function toPluginDefinition(entry) {
|
|
94
|
+
return {
|
|
95
|
+
name: entry.id,
|
|
96
|
+
description: entry.description,
|
|
97
|
+
repo: entry.repo,
|
|
98
|
+
runnerAsset: entry.runnerAsset ?? `${entry.id}-runner.js`,
|
|
99
|
+
version: entry.version,
|
|
100
|
+
pluginPath: hasCoreRunner(entry.id) ? getCoreRunnerImportUrl(entry.id) : undefined,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** Core, runner-capable plugins — derived live from the plugin registry. */
|
|
104
|
+
export async function getCorePlugins() {
|
|
105
|
+
const entries = await getRegistry();
|
|
106
|
+
return entries
|
|
107
|
+
.filter((p) => p.type === 'core' && p.hasRunner)
|
|
108
|
+
.map(toPluginDefinition);
|
|
109
|
+
}
|
|
110
|
+
export async function findPlugin(name) {
|
|
111
|
+
const plugins = await getCorePlugins();
|
|
112
|
+
return plugins.find((p) => p.name === name);
|
|
113
|
+
}
|
|
114
|
+
export async function listPluginNames() {
|
|
115
|
+
return (await getCorePlugins()).map((p) => p.name);
|
|
51
116
|
}
|
|
52
117
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared registry cache — fetches the community plugin-registry's
|
|
3
|
+
* `extensions.json` (the same source the Electron app reads, see
|
|
4
|
+
* apps/electron/src/main/extension/extensionFetcher.ts) and caches it so
|
|
5
|
+
* `voiden-runner` doesn't refetch on every invocation and keeps working
|
|
6
|
+
* offline after the first successful fetch.
|
|
7
|
+
*/
|
|
8
|
+
export interface RegistryEntry {
|
|
9
|
+
type: 'core' | 'community';
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
author: string;
|
|
14
|
+
version: string;
|
|
15
|
+
repo: string;
|
|
16
|
+
hasRunner?: boolean;
|
|
17
|
+
runnerAsset?: string;
|
|
18
|
+
icon?: string;
|
|
19
|
+
voidenVersion?: string;
|
|
20
|
+
/** Set by plugin-registry maintainers when this plugin's runner should ship inside the @voiden/runner npm package (see bundled-runners/). */
|
|
21
|
+
bundled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns the full plugin-registry catalogue (core + community plugins).
|
|
25
|
+
* Cached in-memory for the process lifetime and on-disk for 24h. If the
|
|
26
|
+
* registry is unreachable, falls back to the last known-good on-disk cache
|
|
27
|
+
* (even if stale) so `run` keeps working offline.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getRegistry(): Promise<RegistryEntry[]>;
|
|
30
|
+
//# sourceMappingURL=registryCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registryCache.d.ts","sourceRoot":"","sources":["../../src/plugins/registryCache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,6IAA6I;IAC7I,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAmDD;;;;;GAKG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAsB5D"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared registry cache — fetches the community plugin-registry's
|
|
3
|
+
* `extensions.json` (the same source the Electron app reads, see
|
|
4
|
+
* apps/electron/src/main/extension/extensionFetcher.ts) and caches it so
|
|
5
|
+
* `voiden-runner` doesn't refetch on every invocation and keeps working
|
|
6
|
+
* offline after the first successful fetch.
|
|
7
|
+
*/
|
|
8
|
+
import * as https from 'https';
|
|
9
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
10
|
+
import { join } from 'path';
|
|
11
|
+
import { homedir } from 'os';
|
|
12
|
+
const REGISTRY_URL = 'https://raw.githubusercontent.com/VoidenHQ/plugin-registry/main/extensions.json';
|
|
13
|
+
const CACHE_PATH = join(homedir(), '.voiden', 'registry-cache.json');
|
|
14
|
+
const CACHE_TTL = 24 * 60 * 60 * 1000; // 1 day
|
|
15
|
+
let memCache;
|
|
16
|
+
function httpsGetText(url, maxRedirects = 5) {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
const options = {
|
|
19
|
+
headers: {
|
|
20
|
+
'User-Agent': 'voiden-runner',
|
|
21
|
+
'Accept': 'application/vnd.github.v3+json',
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
function doGet(u, hops) {
|
|
25
|
+
https.get(u, options, (res) => {
|
|
26
|
+
if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
|
|
27
|
+
if (hops <= 0) {
|
|
28
|
+
reject(new Error('Too many redirects'));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
doGet(res.headers.location, hops - 1);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (res.statusCode && res.statusCode >= 400) {
|
|
35
|
+
reject(new Error(`HTTP ${res.statusCode}`));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
let data = '';
|
|
39
|
+
res.on('data', (c) => (data += c));
|
|
40
|
+
res.on('end', () => resolve(data));
|
|
41
|
+
res.on('error', reject);
|
|
42
|
+
}).on('error', reject);
|
|
43
|
+
}
|
|
44
|
+
doGet(url, maxRedirects);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function readDiskCache() {
|
|
48
|
+
if (!existsSync(CACHE_PATH))
|
|
49
|
+
return undefined;
|
|
50
|
+
try {
|
|
51
|
+
return JSON.parse(readFileSync(CACHE_PATH, 'utf-8'));
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function writeDiskCache(entries) {
|
|
58
|
+
try {
|
|
59
|
+
mkdirSync(join(homedir(), '.voiden'), { recursive: true });
|
|
60
|
+
writeFileSync(CACHE_PATH, JSON.stringify({ fetchedAt: Date.now(), entries }, null, 2), 'utf-8');
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Best-effort — the on-disk cache is an offline optimization, not a requirement.
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns the full plugin-registry catalogue (core + community plugins).
|
|
68
|
+
* Cached in-memory for the process lifetime and on-disk for 24h. If the
|
|
69
|
+
* registry is unreachable, falls back to the last known-good on-disk cache
|
|
70
|
+
* (even if stale) so `run` keeps working offline.
|
|
71
|
+
*/
|
|
72
|
+
export async function getRegistry() {
|
|
73
|
+
if (memCache)
|
|
74
|
+
return memCache;
|
|
75
|
+
const disk = readDiskCache();
|
|
76
|
+
if (disk && Date.now() - disk.fetchedAt < CACHE_TTL) {
|
|
77
|
+
memCache = disk.entries;
|
|
78
|
+
return memCache;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
const raw = await httpsGetText(REGISTRY_URL);
|
|
82
|
+
const entries = JSON.parse(raw);
|
|
83
|
+
memCache = entries;
|
|
84
|
+
writeDiskCache(entries);
|
|
85
|
+
return entries;
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
if (disk) {
|
|
89
|
+
memCache = disk.entries;
|
|
90
|
+
return memCache;
|
|
91
|
+
}
|
|
92
|
+
throw err;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=registryCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registryCache.js","sourceRoot":"","sources":["../../src/plugins/registryCache.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/store.d.ts
CHANGED
|
@@ -5,13 +5,18 @@ export interface InstalledPlugin {
|
|
|
5
5
|
name: string;
|
|
6
6
|
enabled: boolean;
|
|
7
7
|
installedAt: string;
|
|
8
|
+
/** Runner bundle version that was downloaded — compared against the registry to detect updates */
|
|
9
|
+
version?: string;
|
|
8
10
|
}
|
|
9
11
|
export interface PluginStore {
|
|
10
12
|
installedPlugins: Record<string, InstalledPlugin>;
|
|
11
13
|
}
|
|
12
14
|
export declare const STORE_DIR: string;
|
|
13
15
|
export declare function readStore(): PluginStore;
|
|
14
|
-
export declare function installPlugin(name: string): boolean;
|
|
16
|
+
export declare function installPlugin(name: string, version?: string): boolean;
|
|
17
|
+
/** Records the runner bundle version for an installed plugin (used by `plugin update`). */
|
|
18
|
+
export declare function setPluginVersion(name: string, version: string): void;
|
|
19
|
+
export declare function getInstalledVersion(name: string): string | undefined;
|
|
15
20
|
export declare function uninstallPlugin(name: string): boolean;
|
|
16
21
|
export declare function setPluginEnabled(name: string, enabled: boolean): void;
|
|
17
22
|
export declare function getEnabledPlugins(): InstalledPlugin[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/plugins/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/plugins/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAClD;AAED,eAAO,MAAM,SAAS,QAA6B,CAAA;AAOnD,wBAAgB,SAAS,IAAI,WAAW,CAOvC;AAOD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAarE;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAapE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAYrE;AAED,wBAAgB,iBAAiB,IAAI,eAAe,EAAE,CAGrD;AAED,wBAAgB,sBAAsB,IAAI,eAAe,EAAE,CAE1D"}
|
package/dist/plugins/store.js
CHANGED
|
@@ -23,7 +23,7 @@ function writeStore(store) {
|
|
|
23
23
|
mkdirSync(STORE_DIR, { recursive: true });
|
|
24
24
|
writeFileSync(STORE_PATH, JSON.stringify(store, null, 2) + '\n', 'utf-8');
|
|
25
25
|
}
|
|
26
|
-
export function installPlugin(name) {
|
|
26
|
+
export function installPlugin(name, version) {
|
|
27
27
|
const store = readStore();
|
|
28
28
|
const alreadyInstalled = !!store.installedPlugins[name];
|
|
29
29
|
if (!alreadyInstalled) {
|
|
@@ -31,11 +31,31 @@ export function installPlugin(name) {
|
|
|
31
31
|
name,
|
|
32
32
|
enabled: true,
|
|
33
33
|
installedAt: new Date().toISOString(),
|
|
34
|
+
version,
|
|
34
35
|
};
|
|
35
36
|
writeStore(store);
|
|
36
37
|
}
|
|
37
38
|
return !alreadyInstalled;
|
|
38
39
|
}
|
|
40
|
+
/** Records the runner bundle version for an installed plugin (used by `plugin update`). */
|
|
41
|
+
export function setPluginVersion(name, version) {
|
|
42
|
+
const store = readStore();
|
|
43
|
+
if (!store.installedPlugins[name]) {
|
|
44
|
+
store.installedPlugins[name] = {
|
|
45
|
+
name,
|
|
46
|
+
enabled: true,
|
|
47
|
+
installedAt: new Date().toISOString(),
|
|
48
|
+
version,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
store.installedPlugins[name].version = version;
|
|
53
|
+
}
|
|
54
|
+
writeStore(store);
|
|
55
|
+
}
|
|
56
|
+
export function getInstalledVersion(name) {
|
|
57
|
+
return readStore().installedPlugins[name]?.version;
|
|
58
|
+
}
|
|
39
59
|
export function uninstallPlugin(name) {
|
|
40
60
|
const store = readStore();
|
|
41
61
|
if (!store.installedPlugins[name])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/plugins/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/plugins/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin update detection — compares each plugin's currently-active runner
|
|
3
|
+
* version against the latest version published in the shared plugin-registry
|
|
4
|
+
* (registryCache.ts). Used by `plugin update` and the post-command update
|
|
5
|
+
* notice in index.ts.
|
|
6
|
+
*
|
|
7
|
+
* Core plugins are checked even if never explicitly `plugin install`ed —
|
|
8
|
+
* they're enabled by default and may only exist as the version bundled
|
|
9
|
+
* inside the @voiden/runner package (see registry.ts:getCoreRunnerVersion),
|
|
10
|
+
* so users still get notified when a newer release is available.
|
|
11
|
+
*/
|
|
12
|
+
export interface PluginUpdateInfo {
|
|
13
|
+
id: string;
|
|
14
|
+
type: 'core' | 'community';
|
|
15
|
+
installedVersion: string;
|
|
16
|
+
latestVersion: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function checkForPluginUpdates(): Promise<PluginUpdateInfo[]>;
|
|
19
|
+
//# sourceMappingURL=updateCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateCheck.d.ts","sourceRoot":"","sources":["../../src/plugins/updateCheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAeD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA4BzE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin update detection — compares each plugin's currently-active runner
|
|
3
|
+
* version against the latest version published in the shared plugin-registry
|
|
4
|
+
* (registryCache.ts). Used by `plugin update` and the post-command update
|
|
5
|
+
* notice in index.ts.
|
|
6
|
+
*
|
|
7
|
+
* Core plugins are checked even if never explicitly `plugin install`ed —
|
|
8
|
+
* they're enabled by default and may only exist as the version bundled
|
|
9
|
+
* inside the @voiden/runner package (see registry.ts:getCoreRunnerVersion),
|
|
10
|
+
* so users still get notified when a newer release is available.
|
|
11
|
+
*/
|
|
12
|
+
import { getAllInstalledPlugins } from './store.js';
|
|
13
|
+
import { getRegistry } from './registryCache.js';
|
|
14
|
+
import { getCorePlugins, getCoreRunnerVersion } from './registry.js';
|
|
15
|
+
import { isCorePluginEnabled } from './loader.js';
|
|
16
|
+
/** Compares dotted version strings numerically, segment by segment. */
|
|
17
|
+
function isNewer(latest, installed) {
|
|
18
|
+
const a = latest.split('.').map((n) => parseInt(n, 10) || 0);
|
|
19
|
+
const b = installed.split('.').map((n) => parseInt(n, 10) || 0);
|
|
20
|
+
const len = Math.max(a.length, b.length);
|
|
21
|
+
for (let i = 0; i < len; i++) {
|
|
22
|
+
const x = a[i] ?? 0;
|
|
23
|
+
const y = b[i] ?? 0;
|
|
24
|
+
if (x !== y)
|
|
25
|
+
return x > y;
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
export async function checkForPluginUpdates() {
|
|
30
|
+
const registry = await getRegistry();
|
|
31
|
+
const byId = new Map(registry.map((e) => [e.id, e]));
|
|
32
|
+
const updates = [];
|
|
33
|
+
// Core plugins: compare whatever version is actually present locally
|
|
34
|
+
// (bundled copy, or a cached download from a previous `plugin install`/
|
|
35
|
+
// `update`) against the registry's latest — regardless of explicit install.
|
|
36
|
+
const corePlugins = await getCorePlugins();
|
|
37
|
+
for (const def of corePlugins) {
|
|
38
|
+
if (!isCorePluginEnabled(def.name))
|
|
39
|
+
continue;
|
|
40
|
+
const current = getCoreRunnerVersion(def.name);
|
|
41
|
+
if (!current)
|
|
42
|
+
continue;
|
|
43
|
+
if (isNewer(def.version, current)) {
|
|
44
|
+
updates.push({ id: def.name, type: 'core', installedVersion: current, latestVersion: def.version });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Community plugins: only ones explicitly installed have a version to compare.
|
|
48
|
+
for (const plugin of getAllInstalledPlugins()) {
|
|
49
|
+
if (!plugin.version)
|
|
50
|
+
continue;
|
|
51
|
+
const entry = byId.get(plugin.name);
|
|
52
|
+
if (!entry || entry.type !== 'community')
|
|
53
|
+
continue;
|
|
54
|
+
if (isNewer(entry.version, plugin.version)) {
|
|
55
|
+
updates.push({ id: plugin.name, type: 'community', installedVersion: plugin.version, latestVersion: entry.version });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return updates;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=updateCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../src/plugins/updateCheck.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* voiden-runner — core runner
|
|
3
3
|
*
|
|
4
4
|
* Flow for each section in a .void file:
|
|
5
|
-
* 1. loadEnabledPlugins() — derives the list from
|
|
5
|
+
* 1. loadEnabledPlugins() — derives the list from core-plugins-registry.json
|
|
6
6
|
* a. Parser plugins (graphql, sockets, rest-api) load their runner.ts and
|
|
7
7
|
* call context.onBuildRequest() to register block→request builders with
|
|
8
8
|
* the shared RequestOrchestrator from @voiden/executors
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA6G3C,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,OAAO,CAAC,EAAM,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAQ,aAAa,EAAE,CAAA;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CA2HxB"}
|
package/dist/runner.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* voiden-runner — core runner
|
|
3
3
|
*
|
|
4
4
|
* Flow for each section in a .void file:
|
|
5
|
-
* 1. loadEnabledPlugins() — derives the list from
|
|
5
|
+
* 1. loadEnabledPlugins() — derives the list from core-plugins-registry.json
|
|
6
6
|
* a. Parser plugins (graphql, sockets, rest-api) load their runner.ts and
|
|
7
7
|
* call context.onBuildRequest() to register block→request builders with
|
|
8
8
|
* the shared RequestOrchestrator from @voiden/executors
|
|
@@ -185,7 +185,24 @@ export async function runVoidFile(filePath, options = {}) {
|
|
|
185
185
|
// These are immediately available to the next section via {{process.xxx}}.
|
|
186
186
|
const captureRows = extractRuntimeVarRows(normalizedBlocks);
|
|
187
187
|
if (captureRows.length > 0) {
|
|
188
|
-
|
|
188
|
+
// Pass req and res as separate objects; include the raw header list on the
|
|
189
|
+
// response side so duplicate set-cookie headers are not collapsed.
|
|
190
|
+
const captureReq = {
|
|
191
|
+
url: runResult.url,
|
|
192
|
+
method: runResult.method,
|
|
193
|
+
requestHeaders: runResult.requestHeaders,
|
|
194
|
+
requestBody: runResult.requestBody,
|
|
195
|
+
};
|
|
196
|
+
const captureRes = {
|
|
197
|
+
status: runResult.status,
|
|
198
|
+
statusText: runResult.statusText,
|
|
199
|
+
responseHeaders: runResult.responseHeaders,
|
|
200
|
+
responseHeaderList: response.headers,
|
|
201
|
+
body: runResult.body,
|
|
202
|
+
durationMs: runResult.durationMs,
|
|
203
|
+
size: runResult.size,
|
|
204
|
+
};
|
|
205
|
+
captureRuntimeVars(captureRows, captureReq, captureRes, runtimeVars);
|
|
189
206
|
}
|
|
190
207
|
}
|
|
191
208
|
return { results, activePlugins };
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/runtimeVars.d.ts
CHANGED
|
@@ -33,6 +33,11 @@ export interface CaptureResponse {
|
|
|
33
33
|
status?: number;
|
|
34
34
|
statusText?: string;
|
|
35
35
|
responseHeaders?: Record<string, string>;
|
|
36
|
+
/** Raw header list preserving duplicate set-cookie entries. Takes precedence over responseHeaders when building the headers path for byPath. */
|
|
37
|
+
responseHeaderList?: Array<{
|
|
38
|
+
key: string;
|
|
39
|
+
value: string;
|
|
40
|
+
}>;
|
|
36
41
|
body?: string;
|
|
37
42
|
durationMs?: number;
|
|
38
43
|
size?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeVars.d.ts","sourceRoot":"","sources":["../src/runtimeVars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAM,MAAM,CAAA;IACf,KAAK,EAAI,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAY,MAAM,CAAA;IACtB,MAAM,CAAC,EAAS,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,WAAW,CAAC,EAAI,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"runtimeVars.d.ts","sourceRoot":"","sources":["../src/runtimeVars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAM,MAAM,CAAA;IACf,KAAK,EAAI,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAY,MAAM,CAAA;IACtB,MAAM,CAAC,EAAS,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,WAAW,CAAC,EAAI,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAe,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAW,MAAM,CAAA;IAC5B,eAAe,CAAC,EAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,gJAAgJ;IAChJ,kBAAkB,CAAC,EAAG,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3D,IAAI,CAAC,EAAiB,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAW,MAAM,CAAA;IAC5B,IAAI,CAAC,EAAiB,MAAM,CAAA;CAC7B;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,CA6CpE;AAoID;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAI,aAAa,EAAE,EACvB,GAAG,EAAK,cAAc,EACtB,GAAG,EAAK,eAAe,EACvB,IAAI,EAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,IAAI,CAiBN;AA0BD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,GAAG,EACV,IAAI,EAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,GAAG,CA4BL"}
|