@respira/wordpress-mcp-server 7.3.0 → 7.4.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/dist/__tests__/site-list-self-heal.test.d.ts +18 -0
- package/dist/__tests__/site-list-self-heal.test.d.ts.map +1 -0
- package/dist/__tests__/site-list-self-heal.test.js +169 -0
- package/dist/__tests__/site-list-self-heal.test.js.map +1 -0
- package/dist/acf-tools.d.ts +0 -10
- package/dist/acf-tools.d.ts.map +1 -1
- package/dist/acf-tools.js +0 -15
- package/dist/acf-tools.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +31 -36
- package/dist/config.js.map +1 -1
- package/dist/server.d.ts +34 -46
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +560 -463
- package/dist/server.js.map +1 -1
- package/dist/wordpress-client.d.ts +33 -29
- package/dist/wordpress-client.d.ts.map +1 -1
- package/dist/wordpress-client.js +124 -148
- package/dist/wordpress-client.js.map +1 -1
- package/package.json +2 -2
- package/skills/activity-report-composer/README.md +38 -0
- package/skills/activity-report-composer/SKILL.md +167 -0
- package/skills/activity-report-composer/metadata.json +42 -0
- package/skills/brand-voice-synthesizer/README.md +43 -0
- package/skills/brand-voice-synthesizer/SKILL.md +259 -0
- package/skills/brand-voice-synthesizer/metadata.json +46 -0
- package/skills/build-oxygen6-page/SKILL.md +59 -0
- package/skills/conversion-audit/README.md +37 -0
- package/skills/conversion-audit/SKILL.md +185 -0
- package/skills/conversion-audit/metadata.json +46 -0
- package/skills/custom-post-type-architect/README.md +34 -0
- package/skills/custom-post-type-architect/SKILL.md +158 -0
- package/skills/custom-post-type-architect/metadata.json +39 -0
- package/skills/design-system-synthesizer/README.md +46 -0
- package/skills/design-system-synthesizer/SKILL.md +395 -0
- package/skills/design-system-synthesizer/metadata.json +57 -0
- package/skills/figma-to-elementor/SKILL.md +204 -0
- package/skills/html-to-bricks/README.md +43 -0
- package/skills/html-to-bricks/SKILL.md +135 -0
- package/skills/html-to-bricks/metadata.json +41 -0
- package/skills/internal-link-builder/SKILL.md +258 -0
- package/skills/internal-link-builder/metadata.json +46 -0
- package/skills/migrate-beaver-builder-to-bricks/SKILL.md +251 -0
- package/skills/migrate-beaver-builder-to-gutenberg/SKILL.md +248 -0
- package/skills/migrate-brizy-to-gutenberg/SKILL.md +248 -0
- package/skills/migrate-divi-to-breakdance/SKILL.md +312 -0
- package/skills/migrate-divi-to-bricks/SKILL.md +321 -0
- package/skills/migrate-divi-to-gutenberg/SKILL.md +328 -0
- package/skills/migrate-elementor-to-breakdance/SKILL.md +287 -0
- package/skills/migrate-elementor-to-bricks/SKILL.md +289 -0
- package/skills/migrate-elementor-to-gutenberg/SKILL.md +327 -0
- package/skills/migrate-elementor-to-oxygen/SKILL.md +300 -0
- package/skills/migrate-oxygen-to-breakdance/SKILL.md +235 -0
- package/skills/migrate-oxygen-to-bricks/SKILL.md +237 -0
- package/skills/migrate-thrive-architect-to-gutenberg/SKILL.md +257 -0
- package/skills/migrate-visual-composer-to-gutenberg/SKILL.md +261 -0
- package/skills/migrate-wpbakery-to-bricks/SKILL.md +336 -0
- package/skills/migrate-wpbakery-to-gutenberg/SKILL.md +345 -0
- package/skills/mobile-experience-report/SKILL.md +719 -0
- package/skills/mobile-experience-report/telemetry.ts +137 -0
- package/skills/page-template-library/README.md +41 -0
- package/skills/page-template-library/SKILL.md +175 -0
- package/skills/page-template-library/metadata.json +44 -0
- package/skills/prime-the-agent/README.md +49 -0
- package/skills/prime-the-agent/SKILL.md +225 -0
- package/skills/prime-the-agent/metadata.json +46 -0
- package/skills/respira-setup-assistant/SKILL.md +386 -0
- package/skills/respira-setup-assistant/metadata.json +36 -0
- package/skills/seo-aeo-amplifier/README.md +61 -0
- package/skills/seo-aeo-amplifier/SKILL.md +277 -0
- package/skills/seo-aeo-amplifier/metadata.json +62 -0
- package/skills/stale-content-detector/README.md +41 -0
- package/skills/stale-content-detector/SKILL.md +156 -0
- package/skills/stale-content-detector/metadata.json +43 -0
- package/skills/technical-debt-audit/SKILL.md +691 -0
- package/skills/technical-debt-audit/telemetry.ts +142 -0
- package/skills/woocommerce-health-check/SKILL.md +719 -0
- package/skills/woocommerce-health-check/telemetry.ts +137 -0
- package/skills/wordpress-ai-image-optimizer/README.md +49 -0
- package/skills/wordpress-ai-image-optimizer/SKILL.md +232 -0
- package/skills/wordpress-ai-image-optimizer/metadata.json +63 -0
- package/skills/wordpress-site-dna/README.md +81 -0
- package/skills/wordpress-site-dna/SKILL.md +669 -0
- package/skills/wordpress-site-dna/telemetry.ts +137 -0
- package/dist/__tests__/acf-tool-routing.test.d.ts +0 -2
- package/dist/__tests__/acf-tool-routing.test.d.ts.map +0 -1
- package/dist/__tests__/acf-tool-routing.test.js +0 -37
- package/dist/__tests__/acf-tool-routing.test.js.map +0 -1
- package/dist/__tests__/cowork-bootstrap.test.d.ts +0 -2
- package/dist/__tests__/cowork-bootstrap.test.d.ts.map +0 -1
- package/dist/__tests__/cowork-bootstrap.test.js +0 -61
- package/dist/__tests__/cowork-bootstrap.test.js.map +0 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress Site DNA — Telemetry helper
|
|
3
|
+
* Fire-and-forget usage tracking to respira.press/api/skills/track-usage
|
|
4
|
+
* Never blocks skill execution.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export interface SiteDNATelemetry {
|
|
8
|
+
session_id: string;
|
|
9
|
+
user_id?: string | null;
|
|
10
|
+
wordpress_site_url?: string;
|
|
11
|
+
wordpress_version?: string;
|
|
12
|
+
php_version?: string;
|
|
13
|
+
started_at: string;
|
|
14
|
+
completed_at?: string;
|
|
15
|
+
duration_ms?: number;
|
|
16
|
+
success: boolean;
|
|
17
|
+
error_message?: string | null;
|
|
18
|
+
issues_found?: number;
|
|
19
|
+
issues_by_severity?: {
|
|
20
|
+
critical: number;
|
|
21
|
+
high: number;
|
|
22
|
+
medium: number;
|
|
23
|
+
low: number;
|
|
24
|
+
info?: number;
|
|
25
|
+
};
|
|
26
|
+
health_score?: number;
|
|
27
|
+
mcp_tools_used?: string[];
|
|
28
|
+
findings_summary?: Record<string, unknown>;
|
|
29
|
+
had_respira_before?: boolean;
|
|
30
|
+
installed_respira_after?: boolean;
|
|
31
|
+
assistant_client?: string;
|
|
32
|
+
assistant_version?: string;
|
|
33
|
+
assistant_transport?: string;
|
|
34
|
+
telemetry_source?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const TELEMETRY_ENDPOINT = 'https://www.respira.press/api/skills/track-usage';
|
|
38
|
+
|
|
39
|
+
function detectAssistantTelemetry(): {
|
|
40
|
+
assistant_client?: string;
|
|
41
|
+
assistant_version?: string;
|
|
42
|
+
assistant_transport?: string;
|
|
43
|
+
telemetry_source?: string;
|
|
44
|
+
} {
|
|
45
|
+
const env: Record<string, string | undefined> =
|
|
46
|
+
typeof process !== 'undefined' && process?.env ? (process.env as Record<string, string | undefined>) : {};
|
|
47
|
+
|
|
48
|
+
const explicitClient = env.RESPIRA_AGENT_CLIENT || env.MCP_AGENT_CLIENT || env.AI_AGENT_CLIENT;
|
|
49
|
+
const explicitTransport = env.RESPIRA_AGENT_TRANSPORT || env.MCP_AGENT_TRANSPORT;
|
|
50
|
+
const explicitVersion = env.RESPIRA_AGENT_VERSION || env.MCP_AGENT_VERSION || env.AI_AGENT_VERSION;
|
|
51
|
+
|
|
52
|
+
const fingerprint = [
|
|
53
|
+
explicitClient,
|
|
54
|
+
env.CURSOR_AGENT,
|
|
55
|
+
env.CURSOR_TRACE_ID,
|
|
56
|
+
env.CLAUDECODE,
|
|
57
|
+
env.CLAUDE_CODE_ENTRYPOINT,
|
|
58
|
+
env.CODEIUM_ENV,
|
|
59
|
+
env.TERM_PROGRAM,
|
|
60
|
+
env.TERM_PROGRAM_VERSION,
|
|
61
|
+
typeof navigator !== 'undefined' ? navigator.userAgent : '',
|
|
62
|
+
]
|
|
63
|
+
.filter(Boolean)
|
|
64
|
+
.join(' ')
|
|
65
|
+
.toLowerCase();
|
|
66
|
+
|
|
67
|
+
const inferredClient = (() => {
|
|
68
|
+
if (explicitClient) return explicitClient.toLowerCase();
|
|
69
|
+
if (fingerprint.includes('cursor')) return 'cursor';
|
|
70
|
+
if (fingerprint.includes('claude')) return 'claude-code';
|
|
71
|
+
if (fingerprint.includes('codex')) return 'codex';
|
|
72
|
+
if (fingerprint.includes('windsurf') || fingerprint.includes('codeium')) return 'windsurf';
|
|
73
|
+
if (fingerprint.includes('copilot')) return 'copilot';
|
|
74
|
+
if (fingerprint.includes('gemini')) return 'gemini';
|
|
75
|
+
return undefined;
|
|
76
|
+
})();
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
assistant_client: inferredClient,
|
|
80
|
+
assistant_version: explicitVersion?.toLowerCase(),
|
|
81
|
+
assistant_transport: (explicitTransport || 'desktop-mcp').toLowerCase(),
|
|
82
|
+
telemetry_source: explicitClient ? 'env' : inferredClient ? 'heuristic' : 'skill-fetch',
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Send skill usage telemetry.
|
|
88
|
+
* Non-blocking: errors are swallowed, never thrown.
|
|
89
|
+
* Call after the skill completes — success or failure.
|
|
90
|
+
*/
|
|
91
|
+
export function trackSkillUsage(data: SiteDNATelemetry): void {
|
|
92
|
+
const detected = detectAssistantTelemetry();
|
|
93
|
+
const payload = {
|
|
94
|
+
skill_slug: 'wordpress-site-dna',
|
|
95
|
+
had_respira_before: true,
|
|
96
|
+
...detected,
|
|
97
|
+
...data,
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const headers: Record<string, string> = {
|
|
101
|
+
'Content-Type': 'application/json',
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
if (payload.assistant_client) {
|
|
105
|
+
headers['X-Respira-Agent-Client'] = payload.assistant_client;
|
|
106
|
+
}
|
|
107
|
+
if (payload.assistant_version) {
|
|
108
|
+
headers['X-Respira-Agent-Version'] = payload.assistant_version;
|
|
109
|
+
}
|
|
110
|
+
if (payload.assistant_transport) {
|
|
111
|
+
headers['X-Respira-Agent-Transport'] = payload.assistant_transport;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Fire and forget — intentionally not awaited
|
|
115
|
+
fetch(TELEMETRY_ENDPOINT, {
|
|
116
|
+
method: 'POST',
|
|
117
|
+
headers,
|
|
118
|
+
body: JSON.stringify(payload),
|
|
119
|
+
}).catch(() => {
|
|
120
|
+
// Silently swallow all errors — telemetry must never break the skill
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Generate a session ID for tracking a single skill run.
|
|
126
|
+
*/
|
|
127
|
+
export function generateSessionId(): string {
|
|
128
|
+
if (typeof crypto !== 'undefined' && crypto.randomUUID) {
|
|
129
|
+
return crypto.randomUUID();
|
|
130
|
+
}
|
|
131
|
+
// Fallback for environments without crypto.randomUUID
|
|
132
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
133
|
+
const r = (Math.random() * 16) | 0;
|
|
134
|
+
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
135
|
+
return v.toString(16);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acf-tool-routing.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/acf-tool-routing.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { test } from 'node:test';
|
|
2
|
-
import assert from 'node:assert';
|
|
3
|
-
import { ACF_TOOL_NAMES, resolveAcfToolName } from '../acf-tools.js';
|
|
4
|
-
// Regression guard for the "Unknown tool: wordpress_acf_*" bug (kenbi/Pedro,
|
|
5
|
-
// 2026-07-14). normalizeToolName() rewrites respira_* -> wordpress_* before
|
|
6
|
-
// dispatch, so ACF calls reach dispatchToolCall as wordpress_acf_*. Every ACF
|
|
7
|
-
// tool must still resolve to its respira_acf_* canonical (the name ACF_ROUTES
|
|
8
|
-
// and the plugin REST endpoints are keyed by), from BOTH prefixes.
|
|
9
|
-
test('every ACF tool resolves from respira_ and post-normalization wordpress_ prefixes', () => {
|
|
10
|
-
assert.ok(ACF_TOOL_NAMES.size > 0, 'ACF_TOOL_NAMES should not be empty');
|
|
11
|
-
for (const respiraName of ACF_TOOL_NAMES) {
|
|
12
|
-
// called directly as advertised
|
|
13
|
-
assert.equal(resolveAcfToolName(respiraName), respiraName, `direct: ${respiraName}`);
|
|
14
|
-
// as it arrives after normalizeToolName strips respira_ -> wordpress_
|
|
15
|
-
const normalized = 'wordpress_acf_' + respiraName.slice('respira_acf_'.length);
|
|
16
|
-
assert.equal(resolveAcfToolName(normalized), respiraName, `normalized: ${normalized}`);
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
test('the four repeater write/read tools route (Pedro repro)', () => {
|
|
20
|
-
for (const t of [
|
|
21
|
-
'respira_acf_get_repeater',
|
|
22
|
-
'respira_acf_get_repeater_row',
|
|
23
|
-
'respira_acf_add_repeater_row',
|
|
24
|
-
'respira_acf_update_repeater_row',
|
|
25
|
-
]) {
|
|
26
|
-
const normalized = 'wordpress_acf_' + t.slice('respira_acf_'.length);
|
|
27
|
-
assert.equal(resolveAcfToolName(normalized), t, `repeater: ${normalized}`);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
test('non-ACF tools are never misrouted to the ACF dispatcher', () => {
|
|
31
|
-
assert.equal(resolveAcfToolName('wordpress_update_page'), null);
|
|
32
|
-
assert.equal(resolveAcfToolName('respira_find_element'), null);
|
|
33
|
-
assert.equal(resolveAcfToolName('wordpress_update_post'), null);
|
|
34
|
-
// a lookalike that is not a real ACF tool must not resolve
|
|
35
|
-
assert.equal(resolveAcfToolName('wordpress_acf_not_a_real_tool'), null);
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=acf-tool-routing.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acf-tool-routing.test.js","sourceRoot":"","sources":["../../src/__tests__/acf-tool-routing.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErE,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,mEAAmE;AACnE,IAAI,CAAC,kFAAkF,EAAE,GAAG,EAAE;IAC5F,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;IACzE,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;QACzC,gCAAgC;QAChC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,WAAW,WAAW,EAAE,CAAC,CAAC;QACrF,sEAAsE;QACtE,MAAM,UAAU,GAAG,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,eAAe,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;IAClE,KAAK,MAAM,CAAC,IAAI;QACd,0BAA0B;QAC1B,8BAA8B;QAC9B,8BAA8B;QAC9B,iCAAiC;KAClC,EAAE,CAAC;QACF,MAAM,UAAU,GAAG,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,aAAa,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACnE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC;IAChE,2DAA2D;IAC3D,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,+BAA+B,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cowork-bootstrap.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/cowork-bootstrap.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { test } from 'node:test';
|
|
2
|
-
import assert from 'node:assert/strict';
|
|
3
|
-
import { loadConfig } from '../config.js';
|
|
4
|
-
// A path that reliably does not exist, standing in for the Cowork/Windows case
|
|
5
|
-
// where RESPIRA_CONFIG_FILE resolves to a sandbox home path the user's real
|
|
6
|
-
// ~/.respira/config.json (written to the Windows home) never occupies.
|
|
7
|
-
const MISSING = '/tmp/respira-nonexistent-cowork-test-xyz/config.json';
|
|
8
|
-
const ENV_KEYS = [
|
|
9
|
-
'RESPIRA_CONFIG_FILE',
|
|
10
|
-
'RESPIRA_CONFIG_B64',
|
|
11
|
-
'RESPIRA_CONFIG_MODE',
|
|
12
|
-
'RESPIRA_BOOTSTRAP_OK',
|
|
13
|
-
'RESPIRA_STRICT_CONFIG',
|
|
14
|
-
'WORDPRESS_URL',
|
|
15
|
-
'WORDPRESS_API_KEY',
|
|
16
|
-
];
|
|
17
|
-
function withEnv(overrides, fn) {
|
|
18
|
-
const saved = {};
|
|
19
|
-
for (const k of ENV_KEYS) {
|
|
20
|
-
saved[k] = process.env[k];
|
|
21
|
-
delete process.env[k];
|
|
22
|
-
}
|
|
23
|
-
for (const [k, v] of Object.entries(overrides)) {
|
|
24
|
-
if (v === undefined)
|
|
25
|
-
delete process.env[k];
|
|
26
|
-
else
|
|
27
|
-
process.env[k] = v;
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
fn();
|
|
31
|
-
}
|
|
32
|
-
finally {
|
|
33
|
-
for (const k of ENV_KEYS) {
|
|
34
|
-
if (saved[k] === undefined)
|
|
35
|
-
delete process.env[k];
|
|
36
|
-
else
|
|
37
|
-
process.env[k] = saved[k];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
test('missing RESPIRA_CONFIG_FILE boots to bootstrap mode by default (no throw, zero sites)', () => {
|
|
42
|
-
withEnv({ RESPIRA_CONFIG_FILE: MISSING }, () => {
|
|
43
|
-
const config = loadConfig();
|
|
44
|
-
assert.deepEqual(config.sites, []);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
test('bootstrap-by-default holds even WITHOUT RESPIRA_BOOTSTRAP_OK (Cowork/Windows sandbox-home case, Igor / prisma.gallery)', () => {
|
|
48
|
-
// Pre-fix, a missing config file with BOOTSTRAP_OK unset threw and the npx
|
|
49
|
-
// server exited, so Cowork advertised zero tools. Now it must boot so
|
|
50
|
-
// respira_redeem_token stays reachable and the user can self-provision.
|
|
51
|
-
withEnv({ RESPIRA_CONFIG_FILE: MISSING, RESPIRA_BOOTSTRAP_OK: undefined }, () => {
|
|
52
|
-
const config = loadConfig();
|
|
53
|
-
assert.deepEqual(config.sites, []);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
test('RESPIRA_STRICT_CONFIG=1 restores the hard startup failure on a missing config file', () => {
|
|
57
|
-
withEnv({ RESPIRA_CONFIG_FILE: MISSING, RESPIRA_STRICT_CONFIG: '1' }, () => {
|
|
58
|
-
assert.throws(() => loadConfig(), /missing file|No WordPress sites/);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
//# sourceMappingURL=cowork-bootstrap.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cowork-bootstrap.test.js","sourceRoot":"","sources":["../../src/__tests__/cowork-bootstrap.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,+EAA+E;AAC/E,4EAA4E;AAC5E,uEAAuE;AACvE,MAAM,OAAO,GAAG,sDAAsD,CAAC;AAEvE,MAAM,QAAQ,GAAG;IACf,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,uBAAuB;IACvB,eAAe;IACf,mBAAmB;CACpB,CAAC;AAEF,SAAS,OAAO,CAAC,SAA6C,EAAE,EAAc;IAC5E,MAAM,KAAK,GAAuC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;YACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC;QACH,EAAE,EAAE,CAAC;IACP,CAAC;YAAS,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;gBAC7C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,CAAC,uFAAuF,EAAE,GAAG,EAAE;IACjG,OAAO,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wHAAwH,EAAE,GAAG,EAAE;IAClI,2EAA2E;IAC3E,sEAAsE;IACtE,wEAAwE;IACxE,OAAO,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;QAC9E,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE;IAC9F,OAAO,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,iCAAiC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|