@wp-tester/config 0.0.1 → 0.0.2

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/config.d.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  import type { WPTesterConfig } from "./wp-tester-config.js";
2
2
  import type { ResolvedWPTesterConfig } from "./resolved-types.js";
3
3
  export type { WPTesterConfig } from "./wp-tester-config.js";
4
+ /**
5
+ * Resolve a path to an absolute path.
6
+ * If the path is already absolute, return it as-is.
7
+ * Otherwise, resolve it relative to the base directory.
8
+ *
9
+ * @param path - Path to resolve (relative or absolute)
10
+ * @param baseDir - Base directory to resolve relative paths from
11
+ * @returns Absolute path
12
+ */
13
+ export declare function resolveAbsolute(path: string, baseDir: string): string;
4
14
  export declare function configPath(): string;
5
15
  export declare function getSchemaPath(importMetaUrl?: string): string;
6
16
  export declare function getDefaultConfig(): WPTesterConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAuB,MAAM,kBAAkB,CAAC;AASpF,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAezD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAgBjD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAOzD;AAED,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAM3E;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAWjF;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,GAAG,MAAM,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CA2FjC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAA6D,MAAM,kBAAkB,CAAC;AAS1H,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAgBjD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAOzD;AAED,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAM3E;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAWjF;AA4CD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,GAAG,MAAM,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAqFjC"}
package/dist/config.js CHANGED
@@ -13,7 +13,7 @@ import { detectProjectType } from "./options/project-type-detect.js";
13
13
  * @param baseDir - Base directory to resolve relative paths from
14
14
  * @returns Absolute path
15
15
  */
16
- function resolveAbsolute(path, baseDir) {
16
+ export function resolveAbsolute(path, baseDir) {
17
17
  return isAbsolute(path) ? path : resolve(baseDir, path);
18
18
  }
19
19
  export function configPath() {
@@ -124,6 +124,43 @@ export function getProjectDir(config, configPath) {
124
124
  // No projectHostPath specified, return base directory
125
125
  return baseDir;
126
126
  }
127
+ /**
128
+ * Resolve PHPUnit config paths and set default testMode
129
+ * @param tests - Tests configuration
130
+ * @param projectDir - Project directory for resolving relative paths
131
+ * @returns Resolved tests configuration
132
+ */
133
+ function resolveTests(tests, projectDir) {
134
+ // If no PHPUnit config, return tests as-is (but explicitly typed)
135
+ if (!tests.phpunit) {
136
+ return {
137
+ plugin: tests.plugin,
138
+ theme: tests.theme,
139
+ wp: tests.wp,
140
+ };
141
+ }
142
+ // Resolve PHPUnit config with absolute paths and default testMode
143
+ const phpunit = tests.phpunit;
144
+ const resolvedPhpunit = {
145
+ phpunitPath: resolveAbsolute(phpunit.phpunitPath, projectDir),
146
+ configPath: resolveAbsolute(phpunit.configPath, projectDir),
147
+ testMode: phpunit.testMode ?? "unit",
148
+ };
149
+ // Add optional bootstrapPath if present
150
+ if (phpunit.bootstrapPath) {
151
+ resolvedPhpunit.bootstrapPath = resolveAbsolute(phpunit.bootstrapPath, projectDir);
152
+ }
153
+ // Preserve phpunitArgs if present
154
+ if (phpunit.phpunitArgs) {
155
+ resolvedPhpunit.phpunitArgs = phpunit.phpunitArgs;
156
+ }
157
+ return {
158
+ plugin: tests.plugin,
159
+ theme: tests.theme,
160
+ wp: tests.wp,
161
+ phpunit: resolvedPhpunit,
162
+ };
163
+ }
127
164
  /**
128
165
  * Resolve config from path or object and adjust relative paths to absolute paths
129
166
  * @param config - Config file path or config object
@@ -160,6 +197,14 @@ export async function resolveConfig(config) {
160
197
  else {
161
198
  blueprint = env.blueprint;
162
199
  }
200
+ // Ensure preferredVersions exists with defaults to create a ResolvedBlueprint
201
+ const resolvedBlueprint = {
202
+ ...blueprint,
203
+ preferredVersions: {
204
+ php: blueprint.preferredVersions?.php || "latest",
205
+ wp: blueprint.preferredVersions?.wp || "latest",
206
+ },
207
+ };
163
208
  // Auto-detect and add mounts if needed
164
209
  let mounts = env.mounts || [];
165
210
  if (mounts.length === 0 && resolvedConfig.projectHostPath) {
@@ -175,27 +220,12 @@ export async function resolveConfig(config) {
175
220
  }));
176
221
  return {
177
222
  name: env.name,
178
- blueprint,
223
+ blueprint: resolvedBlueprint,
179
224
  mounts: resolvedMounts,
180
225
  };
181
226
  }));
182
- // Resolve PHPUnit paths to absolute paths
183
- let resolvedTests = resolvedConfig.tests;
184
- if (resolvedTests.phpunit) {
185
- resolvedTests = {
186
- ...resolvedTests,
187
- phpunit: {
188
- phpunitPath: resolveAbsolute(resolvedTests.phpunit.phpunitPath, projectDir),
189
- configPath: resolveAbsolute(resolvedTests.phpunit.configPath, projectDir),
190
- ...(resolvedTests.phpunit.bootstrapPath && {
191
- bootstrapPath: resolveAbsolute(resolvedTests.phpunit.bootstrapPath, projectDir),
192
- }),
193
- ...(resolvedTests.phpunit.testMode && {
194
- testMode: resolvedTests.phpunit.testMode,
195
- }),
196
- },
197
- };
198
- }
227
+ // Resolve PHPUnit paths to absolute paths and ensure testMode has a default
228
+ const resolvedTests = resolveTests(resolvedConfig.tests, projectDir);
199
229
  // Get project VFS path from the mount
200
230
  const mount = getProjectRootMount(projectDir, projectType);
201
231
  const projectVFSPath = mount?.vfsPath || projectDir;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAe;IAC3D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAsB;IAClD,sCAAsC;IACtC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,+CAA+C;IAC/C,qEAAqE;IACrE,MAAM,UAAU,GAAG;QACjB,qBAAqB;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iCAAiC,CAAC;QACtD,oCAAoC;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,2BAA2B,CAAC;QAChD,oBAAoB;QACpB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qDAAqD,CAAC;KAC3E,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,cAAc;IACd,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,0BAA0B;gBAChC,SAAS,EAAE;oBACT,iBAAiB,EAAE;wBACjB,GAAG,EAAE,QAAQ;wBACb,EAAE,EAAE,QAAQ;qBACb;iBACF;aACF;SACF;QACD,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAa;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAsB,EACtB,IAAa;IAEb,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,OAAO,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,MAAsB,EAAE,UAAmB;IACvE,kDAAkD;IAClD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtE,yEAAyE;IACzE,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,sDAAsD;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAY,EAAE,UAAkB;IACpD,kEAAkE;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,eAAe,GAA0B;QAC7C,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;QAC7D,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;QAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM;KACrC,CAAC;IAEF,wCAAwC;IACxC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,eAAe,CAAC,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACrF,CAAC;IAED,kCAAkC;IAClC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACpD,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,OAAO,EAAE,eAAe;KACzB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA+B;IAE/B,IAAI,cAA8B,CAAC;IACnC,IAAI,UAA8B,CAAC;IAEnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACnD,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,cAAc,GAAG,MAAM,CAAC;QACxB,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,0EAA0E;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAE7D,qDAAqD;IACrD,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEhF,0BAA0B;IAC1B,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC;IAE1D,uEAAuE;IACvE,MAAM,oBAAoB,GAA0B,MAAM,OAAO,CAAC,GAAG,CACnE,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5C,oEAAoE;QACpE,IAAI,SAAiC,CAAC;QACtC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACjE,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAChE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAA2B,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC5B,CAAC;QAED,8EAA8E;QAC9E,MAAM,iBAAiB,GAAG;YACxB,GAAG,SAAS;YACZ,iBAAiB,EAAE;gBACjB,GAAG,EAAE,SAAS,CAAC,iBAAiB,EAAE,GAAG,IAAI,QAAQ;gBACjD,EAAE,EAAE,SAAS,CAAC,iBAAiB,EAAE,EAAE,IAAI,QAAQ;aAChD;SACF,CAAC;QAEF,uCAAuC;QACvC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5C,GAAG,KAAK;YACR,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;SACtD,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,iBAAiB;YAC5B,MAAM,EAAE,cAAc;SACvB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,4EAA4E;IAC5E,MAAM,aAAa,GAAkB,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEpF,sCAAsC;IACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,KAAK,EAAE,OAAO,IAAI,UAAU,CAAC;IAEpD,wDAAwD;IACxD,OAAO;QACL,GAAG,cAAc;QACjB,eAAe,EAAE,UAAU;QAC3B,cAAc;QACd,WAAW;QACX,SAAS;QACT,YAAY,EAAE,oBAAoB;QAClC,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type { WPTesterConfig, Environment, Tests, PHPUnitConfig, TestType, Reporter, Mount, Blueprint, JsonReporterOptions, } from './types.js';
2
- export type { ResolvedEnvironment, ResolvedWPTesterConfig, } from './resolved-types.js';
3
- export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, } from './config.js';
2
+ export type { ResolvedEnvironment, ResolvedWPTesterConfig, ResolvedPHPUnitConfig, ResolvedTests, ResolvedBlueprint, } from './resolved-types.js';
3
+ export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, resolveAbsolute, } from "./config.js";
4
+ export { mergePhpunitArgs } from './phpunit.js';
4
5
  export { getProjectRootMount } from './auto-mount.js';
5
6
  export { hostToVfs, vfsToHost } from './path-mappers.js';
6
7
  export type { ProjectType } from './options/project-type-detect.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,cAAc,EACd,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,cAAc,EACd,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // Functions
2
- export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, } from './config.js';
2
+ export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, resolveAbsolute, } from "./config.js";
3
+ export { mergePhpunitArgs } from './phpunit.js';
3
4
  export { getProjectRootMount } from './auto-mount.js';
4
5
  export { hostToVfs, vfsToHost } from './path-mappers.js';
5
6
  // Options
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,YAAY;AACZ,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtD,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAgE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAA8B,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,YAAY;AACZ,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtD,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAgE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAA8B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { WPTesterConfig } from "./wp-tester-config.js";
2
+ /**
3
+ * Merge additional PHPUnit arguments into a config object.
4
+ * Creates a new config object with merged phpunitArgs and preserves the config path context
5
+ * by setting projectHostPath to the config directory if not already set.
6
+ *
7
+ * @param config - Config object or path to config file
8
+ * @param additionalArgs - Additional PHPUnit arguments to append
9
+ * @returns Config object with merged phpunitArgs
10
+ */
11
+ export declare function mergePhpunitArgs(config: WPTesterConfig | string, additionalArgs: string[]): Promise<WPTesterConfig>;
12
+ //# sourceMappingURL=phpunit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phpunit.d.ts","sourceRoot":"","sources":["../src/phpunit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,GAAG,MAAM,EAC/B,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,cAAc,CAAC,CA8CzB"}
@@ -0,0 +1,52 @@
1
+ import { readConfigFile, getConfigDir } from "./config.js";
2
+ /**
3
+ * Merge additional PHPUnit arguments into a config object.
4
+ * Creates a new config object with merged phpunitArgs and preserves the config path context
5
+ * by setting projectHostPath to the config directory if not already set.
6
+ *
7
+ * @param config - Config object or path to config file
8
+ * @param additionalArgs - Additional PHPUnit arguments to append
9
+ * @returns Config object with merged phpunitArgs
10
+ */
11
+ export async function mergePhpunitArgs(config, additionalArgs) {
12
+ // Track the config path for proper resolution
13
+ const configPath = typeof config === "string" ? config : undefined;
14
+ // Load config if path is provided
15
+ const loadedConfig = typeof config === "string"
16
+ ? await readConfigFile(config)
17
+ : config;
18
+ // If no additional args, return config as-is (but with projectHostPath set if needed)
19
+ if (!additionalArgs || additionalArgs.length === 0) {
20
+ // If config was loaded from a file path and projectHostPath is not set,
21
+ // set it to the config directory to preserve path context
22
+ if (configPath && !loadedConfig.projectHostPath) {
23
+ return {
24
+ ...loadedConfig,
25
+ projectHostPath: getConfigDir(configPath),
26
+ };
27
+ }
28
+ return loadedConfig;
29
+ }
30
+ // Merge args (config args first, then additional args)
31
+ const configArgs = loadedConfig.tests?.phpunit?.phpunitArgs || [];
32
+ const mergedArgs = [...configArgs, ...additionalArgs];
33
+ // Create new config with merged args
34
+ // If config was loaded from a file path and projectHostPath is not set,
35
+ // set it to the config directory to preserve path context
36
+ const result = {
37
+ ...loadedConfig,
38
+ tests: {
39
+ ...loadedConfig.tests,
40
+ phpunit: loadedConfig.tests?.phpunit ? {
41
+ ...loadedConfig.tests.phpunit,
42
+ phpunitArgs: mergedArgs,
43
+ } : undefined,
44
+ },
45
+ };
46
+ // Preserve the config path context
47
+ if (configPath && !result.projectHostPath) {
48
+ result.projectHostPath = getConfigDir(configPath);
49
+ }
50
+ return result;
51
+ }
52
+ //# sourceMappingURL=phpunit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phpunit.js","sourceRoot":"","sources":["../src/phpunit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA+B,EAC/B,cAAwB;IAExB,8CAA8C;IAC9C,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnE,kCAAkC;IAClC,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ;QAC7C,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC;IAEX,sFAAsF;IACtF,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,wEAAwE;QACxE,0DAA0D;QAC1D,IAAI,UAAU,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;YAChD,OAAO;gBACL,GAAG,YAAY;gBACf,eAAe,EAAE,YAAY,CAAC,UAAU,CAAC;aAC1C,CAAC;QACJ,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,uDAAuD;IACvD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,cAAc,CAAC,CAAC;IAEtD,qCAAqC;IACrC,wEAAwE;IACxE,0DAA0D;IAC1D,MAAM,MAAM,GAAmB;QAC7B,GAAG,YAAY;QACf,KAAK,EAAE;YACL,GAAG,YAAY,CAAC,KAAK;YACrB,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;gBACrC,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO;gBAC7B,WAAW,EAAE,UAAU;aACxB,CAAC,CAAC,CAAC,SAAS;SACd;KACF,CAAC;IAEF,mCAAmC;IACnC,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,69 +1,49 @@
1
1
  import type { BlueprintV1Declaration } from "@wp-playground/blueprints";
2
- import type { Mount, Tests, Reporter } from "./wp-tester-config.js";
2
+ import type { Mount, Reporter, PHPUnitConfig, Tests, Environment, WPTesterConfig, TestMode, ProjectType } from "./wp-tester-config.js";
3
3
  /**
4
- * Resolved test environment configuration.
5
- * After resolveConfig() runs, all blueprints are loaded and all paths are absolute.
4
+ * Resolved PHPUnit configuration with absolute paths and required testMode.
6
5
  */
7
- export interface ResolvedEnvironment {
8
- /**
9
- * Optional descriptive name for this environment
10
- * @example "PHP 8.1 + WP 6.7"
11
- * @example "WooCommerce Environment"
12
- */
13
- name?: string;
14
- /**
15
- * WordPress Playground Blueprint configuration.
16
- * Always a BlueprintV1Declaration object after resolution.
17
- */
18
- blueprint: BlueprintV1Declaration;
19
- /**
20
- * Filesystem mounts to apply to this environment.
21
- * All paths are absolute after resolution.
22
- * Always defined (may be empty array if no mounts).
23
- */
6
+ export interface ResolvedPHPUnitConfig extends Omit<PHPUnitConfig, 'testMode'> {
7
+ /** Test mode (always defined after resolution, defaults to "unit") */
8
+ testMode: TestMode;
9
+ }
10
+ /**
11
+ * Resolved test configuration with resolved PHPUnit config.
12
+ */
13
+ export interface ResolvedTests extends Omit<Tests, 'phpunit'> {
14
+ phpunit?: ResolvedPHPUnitConfig;
15
+ }
16
+ /**
17
+ * Resolved blueprint with guaranteed preferredVersions.
18
+ */
19
+ export interface ResolvedBlueprint extends Omit<BlueprintV1Declaration, 'preferredVersions'> {
20
+ /** Preferred versions (always defined after resolution, defaults to "latest") */
21
+ preferredVersions: Required<NonNullable<BlueprintV1Declaration['preferredVersions']>>;
22
+ }
23
+ /**
24
+ * Resolved environment with loaded blueprint and required mounts array.
25
+ */
26
+ export interface ResolvedEnvironment extends Omit<Environment, 'blueprint' | 'mounts'> {
27
+ /** Blueprint loaded from file (if it was a string path) with guaranteed preferredVersions */
28
+ blueprint: ResolvedBlueprint;
29
+ /** Mounts array (always defined, may be empty) */
24
30
  mounts: Mount[];
25
31
  }
26
32
  /**
27
- * Resolved wp-tester configuration.
28
- * After resolveConfig() runs, all blueprints are loaded and all paths are absolute.
29
- * All optional fields from WPTesterConfig are guaranteed to have values.
33
+ * Resolved config with all paths absolute and optional fields set.
30
34
  */
31
- export interface ResolvedWPTesterConfig {
32
- /**
33
- * JSON Schema reference for IDE validation and autocomplete
34
- */
35
- $schema?: string;
36
- /**
37
- * Absolute path to the project on the host filesystem.
38
- * All relative paths in the config are resolved from this directory.
39
- */
35
+ export interface ResolvedWPTesterConfig extends Omit<WPTesterConfig, 'projectHostPath' | 'projectType' | 'reporters' | 'environments' | 'tests'> {
36
+ /** Absolute path to project on host (always defined after resolution) */
40
37
  projectHostPath: string;
41
- /**
42
- * Path to the project in the VFS (Virtual File System).
43
- * Determined by projectType (e.g., /wordpress/wp-content/plugins/my-plugin).
44
- */
38
+ /** VFS path determined by project type */
45
39
  projectVFSPath: string;
46
- /**
47
- * Detected WordPress project type (always set after resolution).
48
- * Automatically detected during setup based on project structure.
49
- */
50
- projectType: 'plugin' | 'theme' | 'wp-content' | 'wordpress-install' | 'unknown';
51
- /**
52
- * Test environments to run.
53
- * Each environment can have different PHP/WordPress versions and setup.
54
- * Tests will run against all defined environments (matrix testing).
55
- * All blueprints are loaded and all paths are absolute.
56
- * @minItems 1
57
- */
40
+ /** Project type (always defined after resolution) */
41
+ projectType: ProjectType;
42
+ /** Resolved environments with loaded blueprints */
58
43
  environments: ResolvedEnvironment[];
59
- /**
60
- * Test suites to execute
61
- */
62
- tests: Tests;
63
- /**
64
- * Output reporters for test results (always set after resolution).
65
- * @default ["default"]
66
- */
44
+ /** Resolved tests with absolute paths and defaults */
45
+ tests: ResolvedTests;
46
+ /** Reporters (always defined after resolution) */
67
47
  reporters: Reporter[];
68
48
  }
69
49
  //# sourceMappingURL=resolved-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-types.d.ts","sourceRoot":"","sources":["../src/resolved-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,SAAS,EAAE,sBAAsB,CAAC;IAElC;;;;OAIG;IACH,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,WAAW,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAEjF;;;;;;OAMG;IACH,YAAY,EAAE,mBAAmB,EAAE,CAAC;IAEpC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;OAGG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB"}
1
+ {"version":3,"file":"resolved-types.d.ts","sourceRoot":"","sources":["../src/resolved-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEpI;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IAC5E,sEAAsE;IACtE,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;IAC1F,iFAAiF;IACjF,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC;IACpF,6FAA6F;IAC7F,SAAS,EAAE,iBAAiB,CAAC;IAC7B,kDAAkD;IAClD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,iBAAiB,GAAG,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;IAC9I,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,WAAW,EAAE,WAAW,CAAC;IACzB,mDAAmD;IACnD,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,sDAAsD;IACtD,KAAK,EAAE,aAAa,CAAC;IACrB,kDAAkD;IAClD,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB"}
package/dist/schema.json CHANGED
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "ArrayBuffer": {
45
45
  "properties": {
46
- "__@toStringTag@599": {
46
+ "__@toStringTag@630": {
47
47
  "type": "string"
48
48
  },
49
49
  "byteLength": {
@@ -51,7 +51,7 @@
51
51
  }
52
52
  },
53
53
  "required": [
54
- "__@toStringTag@599",
54
+ "__@toStringTag@630",
55
55
  "byteLength"
56
56
  ],
57
57
  "type": "object"
@@ -193,7 +193,7 @@
193
193
  "BYTES_PER_ELEMENT": {
194
194
  "type": "number"
195
195
  },
196
- "__@toStringTag@599": {
196
+ "__@toStringTag@630": {
197
197
  "const": "Uint8Array",
198
198
  "type": "string"
199
199
  },
@@ -212,7 +212,7 @@
212
212
  },
213
213
  "required": [
214
214
  "BYTES_PER_ELEMENT",
215
- "__@toStringTag@599",
215
+ "__@toStringTag@630",
216
216
  "buffer",
217
217
  "byteLength",
218
218
  "byteOffset",
@@ -1329,7 +1329,7 @@
1329
1329
  "BYTES_PER_ELEMENT": {
1330
1330
  "type": "number"
1331
1331
  },
1332
- "__@toStringTag@599": {
1332
+ "__@toStringTag@630": {
1333
1333
  "const": "Uint8Array",
1334
1334
  "type": "string"
1335
1335
  },
@@ -1348,7 +1348,7 @@
1348
1348
  },
1349
1349
  "required": [
1350
1350
  "BYTES_PER_ELEMENT",
1351
- "__@toStringTag@599",
1351
+ "__@toStringTag@630",
1352
1352
  "buffer",
1353
1353
  "byteLength",
1354
1354
  "byteOffset",
@@ -1590,7 +1590,7 @@
1590
1590
  "BYTES_PER_ELEMENT": {
1591
1591
  "type": "number"
1592
1592
  },
1593
- "__@toStringTag@599": {
1593
+ "__@toStringTag@630": {
1594
1594
  "const": "Uint8Array",
1595
1595
  "type": "string"
1596
1596
  },
@@ -1609,7 +1609,7 @@
1609
1609
  },
1610
1610
  "required": [
1611
1611
  "BYTES_PER_ELEMENT",
1612
- "__@toStringTag@599",
1612
+ "__@toStringTag@630",
1613
1613
  "buffer",
1614
1614
  "byteLength",
1615
1615
  "byteOffset",
@@ -1798,7 +1798,7 @@
1798
1798
  "BYTES_PER_ELEMENT": {
1799
1799
  "type": "number"
1800
1800
  },
1801
- "__@toStringTag@599": {
1801
+ "__@toStringTag@630": {
1802
1802
  "const": "Uint8Array",
1803
1803
  "type": "string"
1804
1804
  },
@@ -1817,7 +1817,7 @@
1817
1817
  },
1818
1818
  "required": [
1819
1819
  "BYTES_PER_ELEMENT",
1820
- "__@toStringTag@599",
1820
+ "__@toStringTag@630",
1821
1821
  "buffer",
1822
1822
  "byteLength",
1823
1823
  "byteOffset",
@@ -2011,7 +2011,7 @@
2011
2011
  "BYTES_PER_ELEMENT": {
2012
2012
  "type": "number"
2013
2013
  },
2014
- "__@toStringTag@599": {
2014
+ "__@toStringTag@630": {
2015
2015
  "const": "Uint8Array",
2016
2016
  "type": "string"
2017
2017
  },
@@ -2030,7 +2030,7 @@
2030
2030
  },
2031
2031
  "required": [
2032
2032
  "BYTES_PER_ELEMENT",
2033
- "__@toStringTag@599",
2033
+ "__@toStringTag@630",
2034
2034
  "buffer",
2035
2035
  "byteLength",
2036
2036
  "byteOffset",
@@ -2219,7 +2219,7 @@
2219
2219
  "BYTES_PER_ELEMENT": {
2220
2220
  "type": "number"
2221
2221
  },
2222
- "__@toStringTag@599": {
2222
+ "__@toStringTag@630": {
2223
2223
  "const": "Uint8Array",
2224
2224
  "type": "string"
2225
2225
  },
@@ -2238,7 +2238,7 @@
2238
2238
  },
2239
2239
  "required": [
2240
2240
  "BYTES_PER_ELEMENT",
2241
- "__@toStringTag@599",
2241
+ "__@toStringTag@630",
2242
2242
  "buffer",
2243
2243
  "byteLength",
2244
2244
  "byteOffset",
@@ -2447,7 +2447,7 @@
2447
2447
  "BYTES_PER_ELEMENT": {
2448
2448
  "type": "number"
2449
2449
  },
2450
- "__@toStringTag@599": {
2450
+ "__@toStringTag@630": {
2451
2451
  "const": "Uint8Array",
2452
2452
  "type": "string"
2453
2453
  },
@@ -2466,7 +2466,7 @@
2466
2466
  },
2467
2467
  "required": [
2468
2468
  "BYTES_PER_ELEMENT",
2469
- "__@toStringTag@599",
2469
+ "__@toStringTag@630",
2470
2470
  "buffer",
2471
2471
  "byteLength",
2472
2472
  "byteOffset",
@@ -2532,7 +2532,7 @@
2532
2532
  "BYTES_PER_ELEMENT": {
2533
2533
  "type": "number"
2534
2534
  },
2535
- "__@toStringTag@599": {
2535
+ "__@toStringTag@630": {
2536
2536
  "const": "Uint8Array",
2537
2537
  "type": "string"
2538
2538
  },
@@ -2551,7 +2551,7 @@
2551
2551
  },
2552
2552
  "required": [
2553
2553
  "BYTES_PER_ELEMENT",
2554
- "__@toStringTag@599",
2554
+ "__@toStringTag@630",
2555
2555
  "buffer",
2556
2556
  "byteLength",
2557
2557
  "byteOffset",
@@ -2622,7 +2622,7 @@
2622
2622
  },
2623
2623
  "testMode": {
2624
2624
  "default": "unit",
2625
- "description": "Test mode - determines whether WordPress is loaded during tests\n\n- \"unit\": WordPress is NOT loaded. Use for testing isolated PHP logic,\n pure functions, classes that don't depend on WordPress. (DEFAULT)\n\n- \"integration\": WordPress is loaded before tests run. Use for testing\n WordPress APIs, hooks, database interactions, etc.",
2625
+ "description": "Test mode - determines whether WordPress is loaded during tests",
2626
2626
  "enum": [
2627
2627
  "integration",
2628
2628
  "unit"
@@ -2847,10 +2847,10 @@
2847
2847
  },
2848
2848
  "SharedArrayBuffer": {
2849
2849
  "properties": {
2850
- "__@species@652": {
2850
+ "__@species@697": {
2851
2851
  "$ref": "#/definitions/SharedArrayBuffer"
2852
2852
  },
2853
- "__@toStringTag@599": {
2853
+ "__@toStringTag@630": {
2854
2854
  "const": "SharedArrayBuffer",
2855
2855
  "type": "string"
2856
2856
  },
@@ -2859,8 +2859,8 @@
2859
2859
  }
2860
2860
  },
2861
2861
  "required": [
2862
- "__@species@652",
2863
- "__@toStringTag@599",
2862
+ "__@species@697",
2863
+ "__@toStringTag@630",
2864
2864
  "byteLength"
2865
2865
  ],
2866
2866
  "type": "object"
@@ -2934,7 +2934,7 @@
2934
2934
  "BYTES_PER_ELEMENT": {
2935
2935
  "type": "number"
2936
2936
  },
2937
- "__@toStringTag@599": {
2937
+ "__@toStringTag@630": {
2938
2938
  "const": "Uint8Array",
2939
2939
  "type": "string"
2940
2940
  },
@@ -2953,7 +2953,7 @@
2953
2953
  },
2954
2954
  "required": [
2955
2955
  "BYTES_PER_ELEMENT",
2956
- "__@toStringTag@599",
2956
+ "__@toStringTag@630",
2957
2957
  "buffer",
2958
2958
  "byteLength",
2959
2959
  "byteOffset",
@@ -3157,7 +3157,7 @@
3157
3157
  "BYTES_PER_ELEMENT": {
3158
3158
  "type": "number"
3159
3159
  },
3160
- "__@toStringTag@599": {
3160
+ "__@toStringTag@630": {
3161
3161
  "const": "Uint8Array",
3162
3162
  "type": "string"
3163
3163
  },
@@ -3176,7 +3176,7 @@
3176
3176
  },
3177
3177
  "required": [
3178
3178
  "BYTES_PER_ELEMENT",
3179
- "__@toStringTag@599",
3179
+ "__@toStringTag@630",
3180
3180
  "buffer",
3181
3181
  "byteLength",
3182
3182
  "byteOffset",
@@ -3217,7 +3217,7 @@
3217
3217
  "BYTES_PER_ELEMENT": {
3218
3218
  "type": "number"
3219
3219
  },
3220
- "__@toStringTag@599": {
3220
+ "__@toStringTag@630": {
3221
3221
  "const": "Uint8Array",
3222
3222
  "type": "string"
3223
3223
  },
@@ -3236,7 +3236,7 @@
3236
3236
  },
3237
3237
  "required": [
3238
3238
  "BYTES_PER_ELEMENT",
3239
- "__@toStringTag@599",
3239
+ "__@toStringTag@630",
3240
3240
  "buffer",
3241
3241
  "byteLength",
3242
3242
  "byteOffset",