wp-typia 0.20.3 → 0.20.4
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-bunli/.bunli/commands.gen.js +144 -50
- package/dist-bunli/{cli-z18m4k4g.js → cli-68145vb5.js} +3 -3
- package/dist-bunli/{cli-add-43f9hqev.js → cli-add-a27wjrk4.js} +147 -50
- package/dist-bunli/{cli-8rnhjvb8.js → cli-c5021kqy.js} +2 -2
- package/dist-bunli/{cli-doctor-wnx8rv84.js → cli-doctor-31djnnxs.js} +3 -2
- package/dist-bunli/{cli-scaffold-nt1fx2f0.js → cli-scaffold-r0yxfhbq.js} +1 -1
- package/dist-bunli/cli.js +2 -2
- package/dist-bunli/{command-list-g3z86j3x.js → command-list-kx7q3f18.js} +5 -5
- package/dist-bunli/node-cli.js +3 -3
- package/package.json +2 -2
|
@@ -231627,7 +231627,6 @@ async function runAddRestResourceCommand({
|
|
|
231627
231627
|
const validatorsFilePath = path52.join(restResourceDir, "api-validators.ts");
|
|
231628
231628
|
const apiFilePath = path52.join(restResourceDir, "api.ts");
|
|
231629
231629
|
const dataFilePath = path52.join(restResourceDir, "data.ts");
|
|
231630
|
-
const clientFilePath = path52.join(restResourceDir, "api-client.ts");
|
|
231631
231630
|
const phpFilePath = path52.join(workspace.projectDir, "inc", "rest", `${restResourceSlug}.php`);
|
|
231632
231631
|
const mutationSnapshot = {
|
|
231633
231632
|
fileSources: await snapshotWorkspaceFiles([
|
|
@@ -231700,6 +231699,50 @@ function escapeRegex5(value2) {
|
|
|
231700
231699
|
function quotePhpString3(value2) {
|
|
231701
231700
|
return `'${value2.replace(/\\/gu, "\\\\").replace(/'/gu, "\\'")}'`;
|
|
231702
231701
|
}
|
|
231702
|
+
function findPhpFunctionRange2(source, functionName) {
|
|
231703
|
+
const functionPattern = new RegExp(`function\\s+${escapeRegex5(functionName)}\\s*\\([^)]*\\)\\s*\\{`, "u");
|
|
231704
|
+
const match3 = functionPattern.exec(source);
|
|
231705
|
+
if (!match3) {
|
|
231706
|
+
return null;
|
|
231707
|
+
}
|
|
231708
|
+
const openingBraceIndex = match3.index + match3[0].length - 1;
|
|
231709
|
+
let depth = 0;
|
|
231710
|
+
for (let index = openingBraceIndex;index < source.length; index += 1) {
|
|
231711
|
+
const character = source[index];
|
|
231712
|
+
if (character === "{") {
|
|
231713
|
+
depth += 1;
|
|
231714
|
+
} else if (character === "}") {
|
|
231715
|
+
depth -= 1;
|
|
231716
|
+
if (depth === 0) {
|
|
231717
|
+
const end = index + 1;
|
|
231718
|
+
return {
|
|
231719
|
+
end,
|
|
231720
|
+
source: source.slice(match3.index, end),
|
|
231721
|
+
start: match3.index
|
|
231722
|
+
};
|
|
231723
|
+
}
|
|
231724
|
+
}
|
|
231725
|
+
}
|
|
231726
|
+
return null;
|
|
231727
|
+
}
|
|
231728
|
+
function replacePhpFunctionDefinition2(source, functionName, replacement) {
|
|
231729
|
+
const functionRange = findPhpFunctionRange2(source, functionName);
|
|
231730
|
+
if (!functionRange) {
|
|
231731
|
+
return source;
|
|
231732
|
+
}
|
|
231733
|
+
return `${source.slice(0, functionRange.start)}${replacement.trimStart()}${source.slice(functionRange.end)}`;
|
|
231734
|
+
}
|
|
231735
|
+
function resolveManagedDependencyVersion(existingVersion, requiredVersion) {
|
|
231736
|
+
if (!existingVersion) {
|
|
231737
|
+
return requiredVersion;
|
|
231738
|
+
}
|
|
231739
|
+
const existingMinimum = import_semver2.default.minVersion(existingVersion);
|
|
231740
|
+
const requiredMinimum = import_semver2.default.minVersion(requiredVersion);
|
|
231741
|
+
if (!existingMinimum || !requiredMinimum) {
|
|
231742
|
+
return requiredVersion;
|
|
231743
|
+
}
|
|
231744
|
+
return import_semver2.default.gte(existingMinimum, requiredMinimum) ? existingVersion : requiredVersion;
|
|
231745
|
+
}
|
|
231703
231746
|
function toPascalCaseFromAbilitySlug(abilitySlug) {
|
|
231704
231747
|
return normalizeBlockSlug(abilitySlug).split("-").filter(Boolean).map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1)).join("");
|
|
231705
231748
|
}
|
|
@@ -231769,7 +231812,14 @@ export interface ${pascalCase}AbilityOutput {
|
|
|
231769
231812
|
function buildAbilityDataSource(abilitySlug) {
|
|
231770
231813
|
const pascalCase = toPascalCaseFromAbilitySlug(abilitySlug);
|
|
231771
231814
|
const abilityConstBase = abilitySlug.toUpperCase().replace(/[^A-Z0-9]+/gu, "_").replace(/_{2,}/gu, "_").replace(/^_|_$/gu, "");
|
|
231772
|
-
return `import
|
|
231815
|
+
return `import {
|
|
231816
|
+
executeAbility,
|
|
231817
|
+
getAbilities,
|
|
231818
|
+
getAbility as getRegisteredAbility,
|
|
231819
|
+
} from '@wordpress/abilities';
|
|
231820
|
+
import '@wordpress/core-abilities';
|
|
231821
|
+
|
|
231822
|
+
import abilityConfig from './ability.config.json';
|
|
231773
231823
|
|
|
231774
231824
|
import type { ${pascalCase}AbilityInput, ${pascalCase}AbilityOutput } from './types';
|
|
231775
231825
|
|
|
@@ -231781,55 +231831,56 @@ interface WordPressAbilityDefinition {
|
|
|
231781
231831
|
name?: string;
|
|
231782
231832
|
}
|
|
231783
231833
|
|
|
231784
|
-
interface WordPressAbilitiesClient {
|
|
231785
|
-
executeAbility( name: string, input?: unknown ): Promise< unknown >;
|
|
231786
|
-
getAbilities( args?: { category?: string } ): WordPressAbilityDefinition[];
|
|
231787
|
-
getAbility( name: string ): WordPressAbilityDefinition | undefined;
|
|
231788
|
-
}
|
|
231789
|
-
|
|
231790
|
-
const ABILITY_CLIENT_UNAVAILABLE_MESSAGE =
|
|
231791
|
-
'The WordPress abilities client is unavailable on this screen. Ensure the Abilities API and @wordpress/core-abilities integration are loaded before using this scaffold.';
|
|
231792
|
-
|
|
231793
231834
|
export const ${abilityConstBase}_ABILITY = abilityConfig;
|
|
231794
231835
|
export const ${abilityConstBase}_ABILITY_CATEGORY = abilityConfig.category;
|
|
231795
231836
|
export const ${abilityConstBase}_ABILITY_ID = abilityConfig.abilityId;
|
|
231796
231837
|
export const ${abilityConstBase}_ABILITY_META = abilityConfig.meta;
|
|
231838
|
+
const ABILITY_DISCOVERY_POLL_INTERVAL_MS = 50;
|
|
231839
|
+
const ABILITY_DISCOVERY_TIMEOUT_MS = 5000;
|
|
231797
231840
|
|
|
231798
231841
|
export type {
|
|
231799
231842
|
${pascalCase}AbilityInput,
|
|
231800
231843
|
${pascalCase}AbilityOutput,
|
|
231801
231844
|
};
|
|
231802
231845
|
|
|
231803
|
-
function
|
|
231804
|
-
|
|
231805
|
-
|
|
231806
|
-
|
|
231807
|
-
|
|
231808
|
-
|
|
231809
|
-
|
|
231810
|
-
|
|
231811
|
-
|
|
231812
|
-
|
|
231813
|
-
|
|
231814
|
-
|
|
231846
|
+
function sleep( milliseconds: number ): Promise< void > {
|
|
231847
|
+
return new Promise( ( resolve ) => {
|
|
231848
|
+
setTimeout( resolve, milliseconds );
|
|
231849
|
+
} );
|
|
231850
|
+
}
|
|
231851
|
+
|
|
231852
|
+
async function waitFor${pascalCase}AbilityRegistration(): Promise< void > {
|
|
231853
|
+
const deadline = Date.now() + ABILITY_DISCOVERY_TIMEOUT_MS;
|
|
231854
|
+
while ( ! getRegisteredAbility( ${abilityConstBase}_ABILITY_ID ) ) {
|
|
231855
|
+
if ( Date.now() >= deadline ) {
|
|
231856
|
+
return;
|
|
231857
|
+
}
|
|
231815
231858
|
|
|
231816
|
-
|
|
231859
|
+
await sleep( ABILITY_DISCOVERY_POLL_INTERVAL_MS );
|
|
231860
|
+
}
|
|
231817
231861
|
}
|
|
231818
231862
|
|
|
231819
|
-
export function list${pascalCase}CategoryAbilities(): WordPressAbilityDefinition[] {
|
|
231820
|
-
|
|
231863
|
+
export async function list${pascalCase}CategoryAbilities(): Promise< WordPressAbilityDefinition[] > {
|
|
231864
|
+
await waitFor${pascalCase}AbilityRegistration();
|
|
231865
|
+
|
|
231866
|
+
return getAbilities( {
|
|
231821
231867
|
category: ${abilityConstBase}_ABILITY_CATEGORY.slug,
|
|
231822
|
-
} );
|
|
231868
|
+
} ) as WordPressAbilityDefinition[];
|
|
231823
231869
|
}
|
|
231824
231870
|
|
|
231825
|
-
export function get${pascalCase}Ability():
|
|
231871
|
+
export async function get${pascalCase}Ability(): Promise<
|
|
231826
231872
|
| WordPressAbilityDefinition
|
|
231827
|
-
| undefined
|
|
231828
|
-
|
|
231873
|
+
| undefined
|
|
231874
|
+
> {
|
|
231875
|
+
await waitFor${pascalCase}AbilityRegistration();
|
|
231876
|
+
|
|
231877
|
+
return getRegisteredAbility( ${abilityConstBase}_ABILITY_ID ) as
|
|
231878
|
+
| WordPressAbilityDefinition
|
|
231879
|
+
| undefined;
|
|
231829
231880
|
}
|
|
231830
231881
|
|
|
231831
|
-
export function require${pascalCase}Ability(): WordPressAbilityDefinition {
|
|
231832
|
-
const ability = get${pascalCase}Ability();
|
|
231882
|
+
export async function require${pascalCase}Ability(): Promise< WordPressAbilityDefinition > {
|
|
231883
|
+
const ability = await get${pascalCase}Ability();
|
|
231833
231884
|
if ( ability ) {
|
|
231834
231885
|
return ability;
|
|
231835
231886
|
}
|
|
@@ -231845,7 +231896,9 @@ export function require${pascalCase}Ability(): WordPressAbilityDefinition {
|
|
|
231845
231896
|
export async function run${pascalCase}Ability(
|
|
231846
231897
|
input: ${pascalCase}AbilityInput
|
|
231847
231898
|
): Promise< ${pascalCase}AbilityOutput > {
|
|
231848
|
-
|
|
231899
|
+
await waitFor${pascalCase}AbilityRegistration();
|
|
231900
|
+
|
|
231901
|
+
return ( await executeAbility(
|
|
231849
231902
|
${abilityConstBase}_ABILITY_ID,
|
|
231850
231903
|
input
|
|
231851
231904
|
) ) as ${pascalCase}AbilityOutput;
|
|
@@ -231857,8 +231910,8 @@ function buildAbilityClientSource(abilitySlug) {
|
|
|
231857
231910
|
return `/**
|
|
231858
231911
|
* Re-export the typed ${pascalCase} ability client helpers.
|
|
231859
231912
|
*
|
|
231860
|
-
* The
|
|
231861
|
-
*
|
|
231913
|
+
* The helper methods load the WordPress core abilities integration and wait for
|
|
231914
|
+
* this server-registered ability before reading or executing it.
|
|
231862
231915
|
*/
|
|
231863
231916
|
export * from './data';
|
|
231864
231917
|
`;
|
|
@@ -232224,22 +232277,31 @@ function ${enqueueFunctionName}() {
|
|
|
232224
232277
|
? $asset['dependencies']
|
|
232225
232278
|
: array();
|
|
232226
232279
|
|
|
232227
|
-
foreach ( array( '${
|
|
232228
|
-
|
|
232229
|
-
|
|
232230
|
-
|
|
232231
|
-
|
|
232232
|
-
|
|
232280
|
+
foreach ( array( '${WP_CORE_ABILITIES_SCRIPT_MODULE_ID}', '${WP_ABILITIES_SCRIPT_MODULE_ID}' ) as $ability_dependency ) {
|
|
232281
|
+
$has_dependency = false;
|
|
232282
|
+
foreach ( $dependencies as $dependency ) {
|
|
232283
|
+
$dependency_id = is_array( $dependency ) && isset( $dependency['id'] )
|
|
232284
|
+
? $dependency['id']
|
|
232285
|
+
: $dependency;
|
|
232286
|
+
if ( $dependency_id === $ability_dependency ) {
|
|
232287
|
+
$has_dependency = true;
|
|
232288
|
+
break;
|
|
232289
|
+
}
|
|
232290
|
+
}
|
|
232291
|
+
if ( ! $has_dependency ) {
|
|
232233
232292
|
$dependencies[] = $ability_dependency;
|
|
232234
232293
|
}
|
|
232235
232294
|
}
|
|
232236
232295
|
|
|
232237
|
-
|
|
232296
|
+
if ( ! function_exists( 'wp_enqueue_script_module' ) ) {
|
|
232297
|
+
return;
|
|
232298
|
+
}
|
|
232299
|
+
|
|
232300
|
+
wp_enqueue_script_module(
|
|
232238
232301
|
'${workspaceBaseName}-abilities',
|
|
232239
232302
|
plugins_url( '${ABILITY_EDITOR_SCRIPT}', __FILE__ ),
|
|
232240
232303
|
$dependencies,
|
|
232241
|
-
isset( $asset['version'] ) ? $asset['version'] : filemtime( $script_path )
|
|
232242
|
-
true
|
|
232304
|
+
isset( $asset['version'] ) ? $asset['version'] : filemtime( $script_path )
|
|
232243
232305
|
);
|
|
232244
232306
|
}
|
|
232245
232307
|
`;
|
|
@@ -232277,6 +232339,8 @@ ${snippet}
|
|
|
232277
232339
|
}
|
|
232278
232340
|
if (!hasPhpFunctionDefinition(enqueueFunctionName)) {
|
|
232279
232341
|
insertPhpSnippet(enqueueFunction);
|
|
232342
|
+
} else if (!findPhpFunctionRange2(nextSource, enqueueFunctionName)?.source.includes("wp_enqueue_script_module")) {
|
|
232343
|
+
nextSource = replacePhpFunctionDefinition2(nextSource, enqueueFunctionName, enqueueFunction);
|
|
232280
232344
|
}
|
|
232281
232345
|
if (!nextSource.includes(loadHook)) {
|
|
232282
232346
|
appendPhpSnippet(loadHook);
|
|
@@ -232297,10 +232361,16 @@ async function ensureAbilityPackageScripts(workspace) {
|
|
|
232297
232361
|
...packageJson.scripts ?? {},
|
|
232298
232362
|
"sync-abilities": packageJson.scripts?.["sync-abilities"] ?? "tsx scripts/sync-abilities.ts"
|
|
232299
232363
|
};
|
|
232300
|
-
|
|
232364
|
+
const nextDependencies = {
|
|
232365
|
+
...packageJson.dependencies ?? {},
|
|
232366
|
+
[WP_ABILITIES_SCRIPT_MODULE_ID]: resolveManagedDependencyVersion(packageJson.dependencies?.[WP_ABILITIES_SCRIPT_MODULE_ID], WP_ABILITIES_PACKAGE_VERSION),
|
|
232367
|
+
[WP_CORE_ABILITIES_SCRIPT_MODULE_ID]: resolveManagedDependencyVersion(packageJson.dependencies?.[WP_CORE_ABILITIES_SCRIPT_MODULE_ID], WP_CORE_ABILITIES_PACKAGE_VERSION)
|
|
232368
|
+
};
|
|
232369
|
+
if (JSON.stringify(nextScripts) === JSON.stringify(packageJson.scripts ?? {}) && JSON.stringify(nextDependencies) === JSON.stringify(packageJson.dependencies ?? {})) {
|
|
232301
232370
|
return;
|
|
232302
232371
|
}
|
|
232303
232372
|
packageJson.scripts = nextScripts;
|
|
232373
|
+
packageJson.dependencies = nextDependencies;
|
|
232304
232374
|
await fsp19.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, "\t")}
|
|
232305
232375
|
`, "utf8");
|
|
232306
232376
|
}
|
|
@@ -232376,6 +232446,28 @@ async function ensureAbilityWebpackAnchors(workspace) {
|
|
|
232376
232446
|
if (/['"]abilities\/index['"]/u.test(source)) {
|
|
232377
232447
|
return source;
|
|
232378
232448
|
}
|
|
232449
|
+
const optionalModuleReturnPattern = /(function\s+getOptionalModuleEntries\s*\(\)\s*\{[\s\S]*?)(\n\treturn Object\.fromEntries\(\s*entries\s*\);\n\})/u;
|
|
232450
|
+
if (optionalModuleReturnPattern.test(source)) {
|
|
232451
|
+
return source.replace(optionalModuleReturnPattern, `$1
|
|
232452
|
+
|
|
232453
|
+
for ( const [ entryName, candidates ] of [
|
|
232454
|
+
[
|
|
232455
|
+
'abilities/index',
|
|
232456
|
+
[ 'src/abilities/index.ts', 'src/abilities/index.js' ],
|
|
232457
|
+
],
|
|
232458
|
+
] ) {
|
|
232459
|
+
for ( const relativePath of candidates ) {
|
|
232460
|
+
const entryPath = path.resolve( process.cwd(), relativePath );
|
|
232461
|
+
if ( ! fs.existsSync( entryPath ) ) {
|
|
232462
|
+
continue;
|
|
232463
|
+
}
|
|
232464
|
+
|
|
232465
|
+
entries.push( [ entryName, entryPath ] );
|
|
232466
|
+
break;
|
|
232467
|
+
}
|
|
232468
|
+
}
|
|
232469
|
+
$2`);
|
|
232470
|
+
}
|
|
232379
232471
|
const sharedEntriesPattern = /for\s*\(\s*const\s+\[\s*entryName\s*,\s*candidates\s*\]\s+of\s+\[([\s\S]*?)\]\s*\)\s*\{/u;
|
|
232380
232472
|
const match3 = source.match(sharedEntriesPattern);
|
|
232381
232473
|
if (!match3 || !match3[1].includes("bindings/index") || !match3[1].includes("editor-plugins/index")) {
|
|
@@ -232479,12 +232571,13 @@ async function runAddAbilityCommand({
|
|
|
232479
232571
|
throw error48;
|
|
232480
232572
|
}
|
|
232481
232573
|
}
|
|
232482
|
-
var ABILITY_SERVER_GLOB = "/inc/abilities/*.php", ABILITY_EDITOR_SCRIPT = "build/abilities/index.js", ABILITY_EDITOR_ASSET = "build/abilities/index.asset.php", ABILITY_REGISTRY_END_MARKER = "// wp-typia add ability entries end", ABILITY_REGISTRY_START_MARKER = "// wp-typia add ability entries start",
|
|
232574
|
+
var import_semver2, ABILITY_SERVER_GLOB = "/inc/abilities/*.php", ABILITY_EDITOR_SCRIPT = "build/abilities/index.js", ABILITY_EDITOR_ASSET = "build/abilities/index.asset.php", ABILITY_REGISTRY_END_MARKER = "// wp-typia add ability entries end", ABILITY_REGISTRY_START_MARKER = "// wp-typia add ability entries start", WP_ABILITIES_PACKAGE_VERSION = "^0.10.0", WP_CORE_ABILITIES_PACKAGE_VERSION = "^0.9.0", WP_ABILITIES_SCRIPT_MODULE_ID = "@wordpress/abilities", WP_CORE_ABILITIES_SCRIPT_MODULE_ID = "@wordpress/core-abilities";
|
|
232483
232575
|
var init_cli_add_workspace_ability = __esm(() => {
|
|
232484
232576
|
init_workspace_inventory();
|
|
232485
232577
|
init_workspace_project();
|
|
232486
232578
|
init_cli_add_shared();
|
|
232487
232579
|
init_scaffold_compatibility();
|
|
232580
|
+
import_semver2 = __toESM(require_semver2(), 1);
|
|
232488
232581
|
});
|
|
232489
232582
|
|
|
232490
232583
|
// ../wp-typia-project-tools/src/runtime/schema-core.ts
|
|
@@ -234319,7 +234412,8 @@ function checkWorkspaceAbilityBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
234319
234412
|
const hasServerGlob = source.includes(WORKSPACE_ABILITY_GLOB);
|
|
234320
234413
|
const hasEditorScript = source.includes(WORKSPACE_ABILITY_EDITOR_SCRIPT);
|
|
234321
234414
|
const hasEditorAsset = source.includes(WORKSPACE_ABILITY_EDITOR_ASSET);
|
|
234322
|
-
|
|
234415
|
+
const hasScriptModuleEnqueue = source.includes("wp_enqueue_script_module");
|
|
234416
|
+
return createDoctorCheck2("Ability bootstrap", hasLoaderHook && hasAdminEnqueueHook && hasEditorEnqueueHook && hasServerGlob && hasEditorScript && hasEditorAsset && hasScriptModuleEnqueue ? "pass" : "fail", hasLoaderHook && hasAdminEnqueueHook && hasEditorEnqueueHook && hasServerGlob && hasEditorScript && hasEditorAsset && hasScriptModuleEnqueue ? "Ability loader and admin/editor script-module bootstrap hooks are present" : "Missing ability loader hook, script-module enqueue, or build/abilities asset references");
|
|
234323
234417
|
}
|
|
234324
234418
|
function checkWorkspaceAbilityIndex(projectDir, abilities) {
|
|
234325
234419
|
const indexRelativePath = [
|
|
@@ -288755,7 +288849,7 @@ import path10 from "path";
|
|
|
288755
288849
|
// package.json
|
|
288756
288850
|
var package_default2 = {
|
|
288757
288851
|
name: "wp-typia",
|
|
288758
|
-
version: "0.20.
|
|
288852
|
+
version: "0.20.4",
|
|
288759
288853
|
description: "Canonical CLI package for wp-typia scaffolding and project workflows",
|
|
288760
288854
|
packageManager: "bun@1.3.11",
|
|
288761
288855
|
type: "module",
|
|
@@ -288823,7 +288917,7 @@ var package_default2 = {
|
|
|
288823
288917
|
"@bunli/tui": "0.6.0",
|
|
288824
288918
|
"@bunli/utils": "0.6.0",
|
|
288825
288919
|
"@wp-typia/api-client": "^0.4.5",
|
|
288826
|
-
"@wp-typia/project-tools": "0.20.
|
|
288920
|
+
"@wp-typia/project-tools": "0.20.1",
|
|
288827
288921
|
"better-result": "^2.7.0",
|
|
288828
288922
|
react: "^19.2.5",
|
|
288829
288923
|
"react-dom": "^19.2.5",
|
|
@@ -291482,4 +291576,4 @@ export {
|
|
|
291482
291576
|
cli
|
|
291483
291577
|
};
|
|
291484
291578
|
|
|
291485
|
-
//# debugId=
|
|
291579
|
+
//# debugId=779859C25A157CA464756E2164756E21
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
// package.json
|
|
10
10
|
var package_default = {
|
|
11
11
|
name: "wp-typia",
|
|
12
|
-
version: "0.20.
|
|
12
|
+
version: "0.20.4",
|
|
13
13
|
description: "Canonical CLI package for wp-typia scaffolding and project workflows",
|
|
14
14
|
packageManager: "bun@1.3.11",
|
|
15
15
|
type: "module",
|
|
@@ -77,7 +77,7 @@ var package_default = {
|
|
|
77
77
|
"@bunli/tui": "0.6.0",
|
|
78
78
|
"@bunli/utils": "0.6.0",
|
|
79
79
|
"@wp-typia/api-client": "^0.4.5",
|
|
80
|
-
"@wp-typia/project-tools": "0.20.
|
|
80
|
+
"@wp-typia/project-tools": "0.20.1",
|
|
81
81
|
"better-result": "^2.7.0",
|
|
82
82
|
react: "^19.2.5",
|
|
83
83
|
"react-dom": "^19.2.5",
|
|
@@ -532,4 +532,4 @@ function createPlugin(input) {
|
|
|
532
532
|
}
|
|
533
533
|
export { createPlugin, package_default, CREATE_OPTION_METADATA, ADD_OPTION_METADATA, MIGRATE_OPTION_METADATA, SYNC_OPTION_METADATA, TEMPLATES_OPTION_METADATA, GLOBAL_OPTION_METADATA, buildCommandOptions, collectOptionNamesByType, buildCommandOptionParser, resolveCommandOptionValues, prefersStructuredCliOutput, emitCliDiagnosticFailure, writeStructuredCliDiagnosticError, WP_TYPIA_CONFIG_SOURCES, mergeWpTypiaUserConfig, loadWpTypiaUserConfigFromSource, loadWpTypiaUserConfig, getCreateDefaults, getAddBlockDefaults, getMcpSchemaSources };
|
|
534
534
|
|
|
535
|
-
//# debugId=
|
|
535
|
+
//# debugId=33737B5BBB1DCAAF64756E2164756E21
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
parseCompoundInnerBlocksPreset,
|
|
12
12
|
parseTemplateLocator,
|
|
13
13
|
renderScaffoldCompatibilityConfig,
|
|
14
|
+
require_semver,
|
|
14
15
|
resolveExternalTemplateLayers,
|
|
15
16
|
resolveLocalCliPathOption,
|
|
16
17
|
resolveOptionalInteractiveExternalLayerId,
|
|
@@ -19,7 +20,7 @@ import {
|
|
|
19
20
|
scaffoldProject,
|
|
20
21
|
syncPersistenceRestArtifacts,
|
|
21
22
|
updatePluginHeaderCompatibility
|
|
22
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-c5021kqy.js";
|
|
23
24
|
import {
|
|
24
25
|
getPackageVersions
|
|
25
26
|
} from "./cli-tesygdnr.js";
|
|
@@ -84,7 +85,8 @@ import {
|
|
|
84
85
|
resolveWorkspaceProject
|
|
85
86
|
} from "./cli-pd5pqgre.js";
|
|
86
87
|
import {
|
|
87
|
-
__reExport
|
|
88
|
+
__reExport,
|
|
89
|
+
__toESM
|
|
88
90
|
} from "./cli-xnn9xjcy.js";
|
|
89
91
|
// ../wp-typia-project-tools/src/runtime/cli-add-block.ts
|
|
90
92
|
import fs2 from "fs";
|
|
@@ -2758,7 +2760,6 @@ async function runAddRestResourceCommand({
|
|
|
2758
2760
|
const validatorsFilePath = path7.join(restResourceDir, "api-validators.ts");
|
|
2759
2761
|
const apiFilePath = path7.join(restResourceDir, "api.ts");
|
|
2760
2762
|
const dataFilePath = path7.join(restResourceDir, "data.ts");
|
|
2761
|
-
const clientFilePath = path7.join(restResourceDir, "api-client.ts");
|
|
2762
2763
|
const phpFilePath = path7.join(workspace.projectDir, "inc", "rest", `${restResourceSlug}.php`);
|
|
2763
2764
|
const mutationSnapshot = {
|
|
2764
2765
|
fileSources: await snapshotWorkspaceFiles([
|
|
@@ -2811,6 +2812,7 @@ async function runAddRestResourceCommand({
|
|
|
2811
2812
|
}
|
|
2812
2813
|
}
|
|
2813
2814
|
// ../wp-typia-project-tools/src/runtime/cli-add-workspace-ability.ts
|
|
2815
|
+
var import_semver = __toESM(require_semver(), 1);
|
|
2814
2816
|
import fs4 from "fs";
|
|
2815
2817
|
import { promises as fsp5 } from "fs";
|
|
2816
2818
|
import path8 from "path";
|
|
@@ -2820,14 +2822,60 @@ var ABILITY_EDITOR_SCRIPT = "build/abilities/index.js";
|
|
|
2820
2822
|
var ABILITY_EDITOR_ASSET = "build/abilities/index.asset.php";
|
|
2821
2823
|
var ABILITY_REGISTRY_END_MARKER = "// wp-typia add ability entries end";
|
|
2822
2824
|
var ABILITY_REGISTRY_START_MARKER = "// wp-typia add ability entries start";
|
|
2823
|
-
var
|
|
2824
|
-
var
|
|
2825
|
+
var WP_ABILITIES_PACKAGE_VERSION = "^0.10.0";
|
|
2826
|
+
var WP_CORE_ABILITIES_PACKAGE_VERSION = "^0.9.0";
|
|
2827
|
+
var WP_ABILITIES_SCRIPT_MODULE_ID = "@wordpress/abilities";
|
|
2828
|
+
var WP_CORE_ABILITIES_SCRIPT_MODULE_ID = "@wordpress/core-abilities";
|
|
2825
2829
|
function escapeRegex3(value) {
|
|
2826
2830
|
return value.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
|
|
2827
2831
|
}
|
|
2828
2832
|
function quotePhpString3(value) {
|
|
2829
2833
|
return `'${value.replace(/\\/gu, "\\\\").replace(/'/gu, "\\'")}'`;
|
|
2830
2834
|
}
|
|
2835
|
+
function findPhpFunctionRange2(source, functionName) {
|
|
2836
|
+
const functionPattern = new RegExp(`function\\s+${escapeRegex3(functionName)}\\s*\\([^)]*\\)\\s*\\{`, "u");
|
|
2837
|
+
const match = functionPattern.exec(source);
|
|
2838
|
+
if (!match) {
|
|
2839
|
+
return null;
|
|
2840
|
+
}
|
|
2841
|
+
const openingBraceIndex = match.index + match[0].length - 1;
|
|
2842
|
+
let depth = 0;
|
|
2843
|
+
for (let index = openingBraceIndex;index < source.length; index += 1) {
|
|
2844
|
+
const character = source[index];
|
|
2845
|
+
if (character === "{") {
|
|
2846
|
+
depth += 1;
|
|
2847
|
+
} else if (character === "}") {
|
|
2848
|
+
depth -= 1;
|
|
2849
|
+
if (depth === 0) {
|
|
2850
|
+
const end = index + 1;
|
|
2851
|
+
return {
|
|
2852
|
+
end,
|
|
2853
|
+
source: source.slice(match.index, end),
|
|
2854
|
+
start: match.index
|
|
2855
|
+
};
|
|
2856
|
+
}
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2859
|
+
return null;
|
|
2860
|
+
}
|
|
2861
|
+
function replacePhpFunctionDefinition2(source, functionName, replacement) {
|
|
2862
|
+
const functionRange = findPhpFunctionRange2(source, functionName);
|
|
2863
|
+
if (!functionRange) {
|
|
2864
|
+
return source;
|
|
2865
|
+
}
|
|
2866
|
+
return `${source.slice(0, functionRange.start)}${replacement.trimStart()}${source.slice(functionRange.end)}`;
|
|
2867
|
+
}
|
|
2868
|
+
function resolveManagedDependencyVersion(existingVersion, requiredVersion) {
|
|
2869
|
+
if (!existingVersion) {
|
|
2870
|
+
return requiredVersion;
|
|
2871
|
+
}
|
|
2872
|
+
const existingMinimum = import_semver.default.minVersion(existingVersion);
|
|
2873
|
+
const requiredMinimum = import_semver.default.minVersion(requiredVersion);
|
|
2874
|
+
if (!existingMinimum || !requiredMinimum) {
|
|
2875
|
+
return requiredVersion;
|
|
2876
|
+
}
|
|
2877
|
+
return import_semver.default.gte(existingMinimum, requiredMinimum) ? existingVersion : requiredVersion;
|
|
2878
|
+
}
|
|
2831
2879
|
function toPascalCaseFromAbilitySlug(abilitySlug) {
|
|
2832
2880
|
return normalizeBlockSlug(abilitySlug).split("-").filter(Boolean).map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1)).join("");
|
|
2833
2881
|
}
|
|
@@ -2897,7 +2945,14 @@ export interface ${pascalCase}AbilityOutput {
|
|
|
2897
2945
|
function buildAbilityDataSource(abilitySlug) {
|
|
2898
2946
|
const pascalCase = toPascalCaseFromAbilitySlug(abilitySlug);
|
|
2899
2947
|
const abilityConstBase = abilitySlug.toUpperCase().replace(/[^A-Z0-9]+/gu, "_").replace(/_{2,}/gu, "_").replace(/^_|_$/gu, "");
|
|
2900
|
-
return `import
|
|
2948
|
+
return `import {
|
|
2949
|
+
executeAbility,
|
|
2950
|
+
getAbilities,
|
|
2951
|
+
getAbility as getRegisteredAbility,
|
|
2952
|
+
} from '@wordpress/abilities';
|
|
2953
|
+
import '@wordpress/core-abilities';
|
|
2954
|
+
|
|
2955
|
+
import abilityConfig from './ability.config.json';
|
|
2901
2956
|
|
|
2902
2957
|
import type { ${pascalCase}AbilityInput, ${pascalCase}AbilityOutput } from './types';
|
|
2903
2958
|
|
|
@@ -2909,55 +2964,56 @@ interface WordPressAbilityDefinition {
|
|
|
2909
2964
|
name?: string;
|
|
2910
2965
|
}
|
|
2911
2966
|
|
|
2912
|
-
interface WordPressAbilitiesClient {
|
|
2913
|
-
executeAbility( name: string, input?: unknown ): Promise< unknown >;
|
|
2914
|
-
getAbilities( args?: { category?: string } ): WordPressAbilityDefinition[];
|
|
2915
|
-
getAbility( name: string ): WordPressAbilityDefinition | undefined;
|
|
2916
|
-
}
|
|
2917
|
-
|
|
2918
|
-
const ABILITY_CLIENT_UNAVAILABLE_MESSAGE =
|
|
2919
|
-
'The WordPress abilities client is unavailable on this screen. Ensure the Abilities API and @wordpress/core-abilities integration are loaded before using this scaffold.';
|
|
2920
|
-
|
|
2921
2967
|
export const ${abilityConstBase}_ABILITY = abilityConfig;
|
|
2922
2968
|
export const ${abilityConstBase}_ABILITY_CATEGORY = abilityConfig.category;
|
|
2923
2969
|
export const ${abilityConstBase}_ABILITY_ID = abilityConfig.abilityId;
|
|
2924
2970
|
export const ${abilityConstBase}_ABILITY_META = abilityConfig.meta;
|
|
2971
|
+
const ABILITY_DISCOVERY_POLL_INTERVAL_MS = 50;
|
|
2972
|
+
const ABILITY_DISCOVERY_TIMEOUT_MS = 5000;
|
|
2925
2973
|
|
|
2926
2974
|
export type {
|
|
2927
2975
|
${pascalCase}AbilityInput,
|
|
2928
2976
|
${pascalCase}AbilityOutput,
|
|
2929
2977
|
};
|
|
2930
2978
|
|
|
2931
|
-
function
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
};
|
|
2937
|
-
};
|
|
2938
|
-
};
|
|
2939
|
-
const client = runtime.window?.wp?.abilities;
|
|
2940
|
-
if ( ! client ) {
|
|
2941
|
-
throw new Error( ABILITY_CLIENT_UNAVAILABLE_MESSAGE );
|
|
2942
|
-
}
|
|
2979
|
+
function sleep( milliseconds: number ): Promise< void > {
|
|
2980
|
+
return new Promise( ( resolve ) => {
|
|
2981
|
+
setTimeout( resolve, milliseconds );
|
|
2982
|
+
} );
|
|
2983
|
+
}
|
|
2943
2984
|
|
|
2944
|
-
|
|
2985
|
+
async function waitFor${pascalCase}AbilityRegistration(): Promise< void > {
|
|
2986
|
+
const deadline = Date.now() + ABILITY_DISCOVERY_TIMEOUT_MS;
|
|
2987
|
+
while ( ! getRegisteredAbility( ${abilityConstBase}_ABILITY_ID ) ) {
|
|
2988
|
+
if ( Date.now() >= deadline ) {
|
|
2989
|
+
return;
|
|
2990
|
+
}
|
|
2991
|
+
|
|
2992
|
+
await sleep( ABILITY_DISCOVERY_POLL_INTERVAL_MS );
|
|
2993
|
+
}
|
|
2945
2994
|
}
|
|
2946
2995
|
|
|
2947
|
-
export function list${pascalCase}CategoryAbilities(): WordPressAbilityDefinition[] {
|
|
2948
|
-
|
|
2996
|
+
export async function list${pascalCase}CategoryAbilities(): Promise< WordPressAbilityDefinition[] > {
|
|
2997
|
+
await waitFor${pascalCase}AbilityRegistration();
|
|
2998
|
+
|
|
2999
|
+
return getAbilities( {
|
|
2949
3000
|
category: ${abilityConstBase}_ABILITY_CATEGORY.slug,
|
|
2950
|
-
} );
|
|
3001
|
+
} ) as WordPressAbilityDefinition[];
|
|
2951
3002
|
}
|
|
2952
3003
|
|
|
2953
|
-
export function get${pascalCase}Ability():
|
|
3004
|
+
export async function get${pascalCase}Ability(): Promise<
|
|
2954
3005
|
| WordPressAbilityDefinition
|
|
2955
|
-
| undefined
|
|
2956
|
-
|
|
3006
|
+
| undefined
|
|
3007
|
+
> {
|
|
3008
|
+
await waitFor${pascalCase}AbilityRegistration();
|
|
3009
|
+
|
|
3010
|
+
return getRegisteredAbility( ${abilityConstBase}_ABILITY_ID ) as
|
|
3011
|
+
| WordPressAbilityDefinition
|
|
3012
|
+
| undefined;
|
|
2957
3013
|
}
|
|
2958
3014
|
|
|
2959
|
-
export function require${pascalCase}Ability(): WordPressAbilityDefinition {
|
|
2960
|
-
const ability = get${pascalCase}Ability();
|
|
3015
|
+
export async function require${pascalCase}Ability(): Promise< WordPressAbilityDefinition > {
|
|
3016
|
+
const ability = await get${pascalCase}Ability();
|
|
2961
3017
|
if ( ability ) {
|
|
2962
3018
|
return ability;
|
|
2963
3019
|
}
|
|
@@ -2973,7 +3029,9 @@ export function require${pascalCase}Ability(): WordPressAbilityDefinition {
|
|
|
2973
3029
|
export async function run${pascalCase}Ability(
|
|
2974
3030
|
input: ${pascalCase}AbilityInput
|
|
2975
3031
|
): Promise< ${pascalCase}AbilityOutput > {
|
|
2976
|
-
|
|
3032
|
+
await waitFor${pascalCase}AbilityRegistration();
|
|
3033
|
+
|
|
3034
|
+
return ( await executeAbility(
|
|
2977
3035
|
${abilityConstBase}_ABILITY_ID,
|
|
2978
3036
|
input
|
|
2979
3037
|
) ) as ${pascalCase}AbilityOutput;
|
|
@@ -2985,8 +3043,8 @@ function buildAbilityClientSource(abilitySlug) {
|
|
|
2985
3043
|
return `/**
|
|
2986
3044
|
* Re-export the typed ${pascalCase} ability client helpers.
|
|
2987
3045
|
*
|
|
2988
|
-
* The
|
|
2989
|
-
*
|
|
3046
|
+
* The helper methods load the WordPress core abilities integration and wait for
|
|
3047
|
+
* this server-registered ability before reading or executing it.
|
|
2990
3048
|
*/
|
|
2991
3049
|
export * from './data';
|
|
2992
3050
|
`;
|
|
@@ -3352,22 +3410,31 @@ function ${enqueueFunctionName}() {
|
|
|
3352
3410
|
? $asset['dependencies']
|
|
3353
3411
|
: array();
|
|
3354
3412
|
|
|
3355
|
-
foreach ( array( '${
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3413
|
+
foreach ( array( '${WP_CORE_ABILITIES_SCRIPT_MODULE_ID}', '${WP_ABILITIES_SCRIPT_MODULE_ID}' ) as $ability_dependency ) {
|
|
3414
|
+
$has_dependency = false;
|
|
3415
|
+
foreach ( $dependencies as $dependency ) {
|
|
3416
|
+
$dependency_id = is_array( $dependency ) && isset( $dependency['id'] )
|
|
3417
|
+
? $dependency['id']
|
|
3418
|
+
: $dependency;
|
|
3419
|
+
if ( $dependency_id === $ability_dependency ) {
|
|
3420
|
+
$has_dependency = true;
|
|
3421
|
+
break;
|
|
3422
|
+
}
|
|
3423
|
+
}
|
|
3424
|
+
if ( ! $has_dependency ) {
|
|
3361
3425
|
$dependencies[] = $ability_dependency;
|
|
3362
3426
|
}
|
|
3363
3427
|
}
|
|
3364
3428
|
|
|
3365
|
-
|
|
3429
|
+
if ( ! function_exists( 'wp_enqueue_script_module' ) ) {
|
|
3430
|
+
return;
|
|
3431
|
+
}
|
|
3432
|
+
|
|
3433
|
+
wp_enqueue_script_module(
|
|
3366
3434
|
'${workspaceBaseName}-abilities',
|
|
3367
3435
|
plugins_url( '${ABILITY_EDITOR_SCRIPT}', __FILE__ ),
|
|
3368
3436
|
$dependencies,
|
|
3369
|
-
isset( $asset['version'] ) ? $asset['version'] : filemtime( $script_path )
|
|
3370
|
-
true
|
|
3437
|
+
isset( $asset['version'] ) ? $asset['version'] : filemtime( $script_path )
|
|
3371
3438
|
);
|
|
3372
3439
|
}
|
|
3373
3440
|
`;
|
|
@@ -3405,6 +3472,8 @@ ${snippet}
|
|
|
3405
3472
|
}
|
|
3406
3473
|
if (!hasPhpFunctionDefinition(enqueueFunctionName)) {
|
|
3407
3474
|
insertPhpSnippet(enqueueFunction);
|
|
3475
|
+
} else if (!findPhpFunctionRange2(nextSource, enqueueFunctionName)?.source.includes("wp_enqueue_script_module")) {
|
|
3476
|
+
nextSource = replacePhpFunctionDefinition2(nextSource, enqueueFunctionName, enqueueFunction);
|
|
3408
3477
|
}
|
|
3409
3478
|
if (!nextSource.includes(loadHook)) {
|
|
3410
3479
|
appendPhpSnippet(loadHook);
|
|
@@ -3425,10 +3494,16 @@ async function ensureAbilityPackageScripts(workspace) {
|
|
|
3425
3494
|
...packageJson.scripts ?? {},
|
|
3426
3495
|
"sync-abilities": packageJson.scripts?.["sync-abilities"] ?? "tsx scripts/sync-abilities.ts"
|
|
3427
3496
|
};
|
|
3428
|
-
|
|
3497
|
+
const nextDependencies = {
|
|
3498
|
+
...packageJson.dependencies ?? {},
|
|
3499
|
+
[WP_ABILITIES_SCRIPT_MODULE_ID]: resolveManagedDependencyVersion(packageJson.dependencies?.[WP_ABILITIES_SCRIPT_MODULE_ID], WP_ABILITIES_PACKAGE_VERSION),
|
|
3500
|
+
[WP_CORE_ABILITIES_SCRIPT_MODULE_ID]: resolveManagedDependencyVersion(packageJson.dependencies?.[WP_CORE_ABILITIES_SCRIPT_MODULE_ID], WP_CORE_ABILITIES_PACKAGE_VERSION)
|
|
3501
|
+
};
|
|
3502
|
+
if (JSON.stringify(nextScripts) === JSON.stringify(packageJson.scripts ?? {}) && JSON.stringify(nextDependencies) === JSON.stringify(packageJson.dependencies ?? {})) {
|
|
3429
3503
|
return;
|
|
3430
3504
|
}
|
|
3431
3505
|
packageJson.scripts = nextScripts;
|
|
3506
|
+
packageJson.dependencies = nextDependencies;
|
|
3432
3507
|
await fsp5.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, "\t")}
|
|
3433
3508
|
`, "utf8");
|
|
3434
3509
|
}
|
|
@@ -3504,6 +3579,28 @@ async function ensureAbilityWebpackAnchors(workspace) {
|
|
|
3504
3579
|
if (/['"]abilities\/index['"]/u.test(source)) {
|
|
3505
3580
|
return source;
|
|
3506
3581
|
}
|
|
3582
|
+
const optionalModuleReturnPattern = /(function\s+getOptionalModuleEntries\s*\(\)\s*\{[\s\S]*?)(\n\treturn Object\.fromEntries\(\s*entries\s*\);\n\})/u;
|
|
3583
|
+
if (optionalModuleReturnPattern.test(source)) {
|
|
3584
|
+
return source.replace(optionalModuleReturnPattern, `$1
|
|
3585
|
+
|
|
3586
|
+
for ( const [ entryName, candidates ] of [
|
|
3587
|
+
[
|
|
3588
|
+
'abilities/index',
|
|
3589
|
+
[ 'src/abilities/index.ts', 'src/abilities/index.js' ],
|
|
3590
|
+
],
|
|
3591
|
+
] ) {
|
|
3592
|
+
for ( const relativePath of candidates ) {
|
|
3593
|
+
const entryPath = path.resolve( process.cwd(), relativePath );
|
|
3594
|
+
if ( ! fs.existsSync( entryPath ) ) {
|
|
3595
|
+
continue;
|
|
3596
|
+
}
|
|
3597
|
+
|
|
3598
|
+
entries.push( [ entryName, entryPath ] );
|
|
3599
|
+
break;
|
|
3600
|
+
}
|
|
3601
|
+
}
|
|
3602
|
+
$2`);
|
|
3603
|
+
}
|
|
3507
3604
|
const sharedEntriesPattern = /for\s*\(\s*const\s+\[\s*entryName\s*,\s*candidates\s*\]\s+of\s+\[([\s\S]*?)\]\s*\)\s*\{/u;
|
|
3508
3605
|
const match = source.match(sharedEntriesPattern);
|
|
3509
3606
|
if (!match || !match[1].includes("bindings/index") || !match[1].includes("editor-plugins/index")) {
|
|
@@ -5040,4 +5137,4 @@ export {
|
|
|
5040
5137
|
ADD_BLOCK_TEMPLATE_IDS
|
|
5041
5138
|
};
|
|
5042
5139
|
|
|
5043
|
-
//# debugId=
|
|
5140
|
+
//# debugId=B375BD42A8A3F6C764756E2164756E21
|
|
@@ -16557,6 +16557,6 @@ async function resolveOptionalInteractiveExternalLayerId({
|
|
|
16557
16557
|
}
|
|
16558
16558
|
}
|
|
16559
16559
|
|
|
16560
|
-
export { syncPersistenceRestArtifacts, copyInterpolatedDirectory, listInterpolatedDirectoryOutputs, getPrimaryDevelopmentScript, getOptionalOnboardingSteps, getOptionalOnboardingNote, getOptionalOnboardingShortNote, formatNonEmptyTargetDirectoryError, parseTemplateLocator, resolveExternalTemplateLayers, resolveTemplateSeed, normalizeOptionalCliString, resolveLocalCliPathOption, assertExternalLayerCompositionOptions, assertBuiltInTemplateVariantAllowed, parseAlternateRenderTargets, parseCompoundInnerBlocksPreset, OPTIONAL_WORDPRESS_AI_CLIENT_COMPATIBILITY, REQUIRED_WORKSPACE_ABILITY_COMPATIBILITY, resolveScaffoldCompatibilityPolicy, renderScaffoldCompatibilityConfig, updatePluginHeaderCompatibility, getDefaultAnswers, resolveTemplateId, resolvePackageManagerId, collectScaffoldAnswers, DATA_STORAGE_MODES, PERSISTENCE_POLICIES, isDataStorageMode, isPersistencePolicy, scaffoldProject, resolveOptionalInteractiveExternalLayerId };
|
|
16560
|
+
export { syncPersistenceRestArtifacts, copyInterpolatedDirectory, listInterpolatedDirectoryOutputs, getPrimaryDevelopmentScript, getOptionalOnboardingSteps, getOptionalOnboardingNote, getOptionalOnboardingShortNote, formatNonEmptyTargetDirectoryError, require_semver2 as require_semver, parseTemplateLocator, resolveExternalTemplateLayers, resolveTemplateSeed, normalizeOptionalCliString, resolveLocalCliPathOption, assertExternalLayerCompositionOptions, assertBuiltInTemplateVariantAllowed, parseAlternateRenderTargets, parseCompoundInnerBlocksPreset, OPTIONAL_WORDPRESS_AI_CLIENT_COMPATIBILITY, REQUIRED_WORKSPACE_ABILITY_COMPATIBILITY, resolveScaffoldCompatibilityPolicy, renderScaffoldCompatibilityConfig, updatePluginHeaderCompatibility, getDefaultAnswers, resolveTemplateId, resolvePackageManagerId, collectScaffoldAnswers, DATA_STORAGE_MODES, PERSISTENCE_POLICIES, isDataStorageMode, isPersistencePolicy, scaffoldProject, resolveOptionalInteractiveExternalLayerId };
|
|
16561
16561
|
|
|
16562
|
-
//# debugId=
|
|
16562
|
+
//# debugId=45408AA53A2AA42964756E2164756E21
|
|
@@ -391,7 +391,8 @@ function checkWorkspaceAbilityBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
391
391
|
const hasServerGlob = source.includes(WORKSPACE_ABILITY_GLOB);
|
|
392
392
|
const hasEditorScript = source.includes(WORKSPACE_ABILITY_EDITOR_SCRIPT);
|
|
393
393
|
const hasEditorAsset = source.includes(WORKSPACE_ABILITY_EDITOR_ASSET);
|
|
394
|
-
|
|
394
|
+
const hasScriptModuleEnqueue = source.includes("wp_enqueue_script_module");
|
|
395
|
+
return createDoctorCheck2("Ability bootstrap", hasLoaderHook && hasAdminEnqueueHook && hasEditorEnqueueHook && hasServerGlob && hasEditorScript && hasEditorAsset && hasScriptModuleEnqueue ? "pass" : "fail", hasLoaderHook && hasAdminEnqueueHook && hasEditorEnqueueHook && hasServerGlob && hasEditorScript && hasEditorAsset && hasScriptModuleEnqueue ? "Ability loader and admin/editor script-module bootstrap hooks are present" : "Missing ability loader hook, script-module enqueue, or build/abilities asset references");
|
|
395
396
|
}
|
|
396
397
|
function checkWorkspaceAbilityIndex(projectDir, abilities) {
|
|
397
398
|
const indexRelativePath = [
|
|
@@ -647,4 +648,4 @@ export {
|
|
|
647
648
|
getDoctorChecks
|
|
648
649
|
};
|
|
649
650
|
|
|
650
|
-
//# debugId=
|
|
651
|
+
//# debugId=DA7EC2F06C52A22464756E2164756E21
|
package/dist-bunli/cli.js
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
mergeWpTypiaUserConfig,
|
|
15
15
|
package_default,
|
|
16
16
|
writeStructuredCliDiagnosticError
|
|
17
|
-
} from "./cli-
|
|
17
|
+
} from "./cli-68145vb5.js";
|
|
18
18
|
import"./cli-03j0axbt.js";
|
|
19
19
|
import {
|
|
20
20
|
GLOBAL_FLAGS,
|
|
@@ -2539,7 +2539,7 @@ async function formatCliError(error) {
|
|
|
2539
2539
|
}
|
|
2540
2540
|
async function createWpTypiaCli(options = {}) {
|
|
2541
2541
|
applyStandaloneSupportLayoutEnv();
|
|
2542
|
-
const { wpTypiaCommands } = await import("./command-list-
|
|
2542
|
+
const { wpTypiaCommands } = await import("./command-list-kx7q3f18.js");
|
|
2543
2543
|
const cli = await createCLI({
|
|
2544
2544
|
...bunliConfig,
|
|
2545
2545
|
description: package_default.description,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
package_default,
|
|
14
14
|
prefersStructuredCliOutput,
|
|
15
15
|
resolveCommandOptionValues
|
|
16
|
-
} from "./cli-
|
|
16
|
+
} from "./cli-68145vb5.js";
|
|
17
17
|
import {
|
|
18
18
|
Result,
|
|
19
19
|
TaggedError,
|
|
@@ -939,12 +939,12 @@ async function executeSyncCommand({
|
|
|
939
939
|
}
|
|
940
940
|
|
|
941
941
|
// src/runtime-bridge.ts
|
|
942
|
-
var loadCliAddRuntime = () => import("./cli-add-
|
|
942
|
+
var loadCliAddRuntime = () => import("./cli-add-a27wjrk4.js");
|
|
943
943
|
var loadCliDiagnosticsRuntime = () => import("./cli-diagnostics-db6kxv83.js");
|
|
944
|
-
var loadCliDoctorRuntime = () => import("./cli-doctor-
|
|
944
|
+
var loadCliDoctorRuntime = () => import("./cli-doctor-31djnnxs.js");
|
|
945
945
|
var loadCliInitRuntime = () => import("./cli-init-gdyp9enw.js");
|
|
946
946
|
var loadCliPromptRuntime = () => import("./cli-prompt-614tq57c.js");
|
|
947
|
-
var loadCliScaffoldRuntime = () => import("./cli-scaffold-
|
|
947
|
+
var loadCliScaffoldRuntime = () => import("./cli-scaffold-r0yxfhbq.js");
|
|
948
948
|
var loadCliTemplatesRuntime = () => import("./cli-templates-9t2a7zqd.js");
|
|
949
949
|
var loadMigrationsRuntime = () => import("./migrations-1p6mbkyw.js");
|
|
950
950
|
async function wrapCliCommandError(command, error) {
|
|
@@ -2083,7 +2083,7 @@ var doctorCommand = defineCommand({
|
|
|
2083
2083
|
const prefersStructuredOutput = prefersStructuredCliOutput(args);
|
|
2084
2084
|
if (prefersStructuredOutput) {
|
|
2085
2085
|
const [{ getDoctorChecks }, { getDoctorFailureDetailLines }] = await Promise.all([
|
|
2086
|
-
import("./cli-doctor-
|
|
2086
|
+
import("./cli-doctor-31djnnxs.js"),
|
|
2087
2087
|
import("./cli-diagnostics-db6kxv83.js")
|
|
2088
2088
|
]);
|
|
2089
2089
|
const checks = await getDoctorChecks(args.cwd);
|
package/dist-bunli/node-cli.js
CHANGED
|
@@ -3,7 +3,7 @@ var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
|
3
3
|
// package.json
|
|
4
4
|
var package_default = {
|
|
5
5
|
name: "wp-typia",
|
|
6
|
-
version: "0.20.
|
|
6
|
+
version: "0.20.4",
|
|
7
7
|
description: "Canonical CLI package for wp-typia scaffolding and project workflows",
|
|
8
8
|
packageManager: "bun@1.3.11",
|
|
9
9
|
type: "module",
|
|
@@ -71,7 +71,7 @@ var package_default = {
|
|
|
71
71
|
"@bunli/tui": "0.6.0",
|
|
72
72
|
"@bunli/utils": "0.6.0",
|
|
73
73
|
"@wp-typia/api-client": "^0.4.5",
|
|
74
|
-
"@wp-typia/project-tools": "0.20.
|
|
74
|
+
"@wp-typia/project-tools": "0.20.1",
|
|
75
75
|
"better-result": "^2.7.0",
|
|
76
76
|
react: "^19.2.5",
|
|
77
77
|
"react-dom": "^19.2.5",
|
|
@@ -2707,4 +2707,4 @@ export {
|
|
|
2707
2707
|
hasFlagBeforeTerminator
|
|
2708
2708
|
};
|
|
2709
2709
|
|
|
2710
|
-
//# debugId=
|
|
2710
|
+
//# debugId=2B2288BD839BD95964756E2164756E21
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wp-typia",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.4",
|
|
4
4
|
"description": "Canonical CLI package for wp-typia scaffolding and project workflows",
|
|
5
5
|
"packageManager": "bun@1.3.11",
|
|
6
6
|
"type": "module",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"@bunli/tui": "0.6.0",
|
|
69
69
|
"@bunli/utils": "0.6.0",
|
|
70
70
|
"@wp-typia/api-client": "^0.4.5",
|
|
71
|
-
"@wp-typia/project-tools": "0.20.
|
|
71
|
+
"@wp-typia/project-tools": "0.20.1",
|
|
72
72
|
"better-result": "^2.7.0",
|
|
73
73
|
"react": "^19.2.5",
|
|
74
74
|
"react-dom": "^19.2.5",
|