wp-typia 0.24.2 → 0.24.3
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 +264 -286
- package/dist-bunli/{cli-vxd8eyax.js → cli-377p86mf.js} +1 -1
- package/dist-bunli/{cli-6mr6vja7.js → cli-4pzxbk4s.js} +3 -3
- package/dist-bunli/{cli-wfvf3tv1.js → cli-84c7wff4.js} +1 -1
- package/dist-bunli/{cli-add-r4c15g7g.js → cli-add-mxxk5rep.js} +5 -5
- package/dist-bunli/{cli-doctor-fd6mfx0f.js → cli-doctor-6fyxq940.js} +2 -2
- package/dist-bunli/{cli-kbqztfkt.js → cli-fv4h3ydt.js} +33 -31
- package/dist-bunli/{cli-init-kmredfj7.js → cli-init-7avk42dh.js} +2 -2
- package/dist-bunli/{cli-4eqznv15.js → cli-kfm9mm68.js} +3130 -3132
- package/dist-bunli/{cli-scaffold-b49zc1rw.js → cli-scaffold-0bb6pr3w.js} +95 -133
- package/dist-bunli/{cli-6ys6d16y.js → cli-tj7ajdvf.js} +1 -1
- package/dist-bunli/cli.js +2 -2
- package/dist-bunli/{command-list-rqt03qqy.js → command-list-bgwaa2f4.js} +12 -10
- package/dist-bunli/{migrations-zhd03hvy.js → migrations-3vngdy51.js} +2 -2
- package/dist-bunli/node-cli.js +7 -5
- package/package.json +2 -2
|
@@ -244163,13 +244163,7 @@ var init_cli_add = __esm(() => {
|
|
|
244163
244163
|
init_workspace_inventory();
|
|
244164
244164
|
});
|
|
244165
244165
|
|
|
244166
|
-
// ../wp-typia-project-tools/src/runtime/cli-scaffold.ts
|
|
244167
|
-
var exports_cli_scaffold = {};
|
|
244168
|
-
__export(exports_cli_scaffold, {
|
|
244169
|
-
runScaffoldFlow: () => runScaffoldFlow,
|
|
244170
|
-
getOptionalOnboarding: () => getOptionalOnboarding,
|
|
244171
|
-
getNextSteps: () => getNextSteps
|
|
244172
|
-
});
|
|
244166
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-files.ts
|
|
244173
244167
|
import { promises as fsp43 } from "fs";
|
|
244174
244168
|
import path91 from "path";
|
|
244175
244169
|
async function listRelativeProjectFiles(rootDir) {
|
|
@@ -244197,58 +244191,43 @@ async function assertDryRunTargetDirectoryReady(projectDir, allowExistingDir) {
|
|
|
244197
244191
|
throw new Error(formatNonEmptyTargetDirectoryError(projectDir));
|
|
244198
244192
|
}
|
|
244199
244193
|
}
|
|
244200
|
-
async function
|
|
244201
|
-
|
|
244202
|
-
|
|
244203
|
-
|
|
244204
|
-
|
|
244205
|
-
|
|
244206
|
-
|
|
244207
|
-
|
|
244208
|
-
|
|
244209
|
-
|
|
244210
|
-
|
|
244211
|
-
|
|
244212
|
-
|
|
244213
|
-
|
|
244214
|
-
|
|
244215
|
-
|
|
244216
|
-
|
|
244217
|
-
|
|
244218
|
-
|
|
244219
|
-
|
|
244220
|
-
|
|
244221
|
-
}
|
|
244222
|
-
|
|
244194
|
+
async function readGeneratedPackageScripts(projectDir) {
|
|
244195
|
+
try {
|
|
244196
|
+
const parsedPackageJson = await readJsonFile(path91.join(projectDir, "package.json"), {
|
|
244197
|
+
context: "generated package manifest"
|
|
244198
|
+
});
|
|
244199
|
+
const scripts = parsedPackageJson.scripts && typeof parsedPackageJson.scripts === "object" && !Array.isArray(parsedPackageJson.scripts) ? parsedPackageJson.scripts : {};
|
|
244200
|
+
return Object.entries(scripts).filter(([, value2]) => typeof value2 === "string").map(([scriptName]) => scriptName);
|
|
244201
|
+
} catch {
|
|
244202
|
+
return;
|
|
244203
|
+
}
|
|
244204
|
+
}
|
|
244205
|
+
var init_cli_scaffold_files = __esm(() => {
|
|
244206
|
+
init_scaffold_bootstrap();
|
|
244207
|
+
init_fs_async();
|
|
244208
|
+
init_json_utils();
|
|
244209
|
+
});
|
|
244210
|
+
|
|
244211
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-emission.ts
|
|
244212
|
+
import path92 from "path";
|
|
244213
|
+
async function emitScaffoldProject(options) {
|
|
244214
|
+
return scaffoldProject(options);
|
|
244215
|
+
}
|
|
244216
|
+
async function buildScaffoldDryRunPlan(options) {
|
|
244217
|
+
await assertDryRunTargetDirectoryReady(options.projectDir, options.allowExistingDir);
|
|
244223
244218
|
const { path: tempRoot, cleanup } = await createManagedTempRoot("wp-typia-scaffold-plan-");
|
|
244224
|
-
const previewProjectDir =
|
|
244219
|
+
const previewProjectDir = path92.join(tempRoot, "preview-project");
|
|
244225
244220
|
try {
|
|
244226
|
-
const result = await
|
|
244221
|
+
const result = await emitScaffoldProject({
|
|
244222
|
+
...options,
|
|
244227
244223
|
allowExistingDir: false,
|
|
244228
|
-
alternateRenderTargets,
|
|
244229
|
-
answers,
|
|
244230
|
-
cwd,
|
|
244231
|
-
dataStorageMode,
|
|
244232
|
-
externalLayerId,
|
|
244233
|
-
externalLayerSource,
|
|
244234
|
-
externalLayerSourceLabel,
|
|
244235
|
-
installDependencies,
|
|
244236
244224
|
noInstall: true,
|
|
244237
|
-
|
|
244238
|
-
packageManager,
|
|
244239
|
-
persistencePolicy,
|
|
244240
|
-
profile,
|
|
244241
|
-
projectDir: previewProjectDir,
|
|
244242
|
-
templateId,
|
|
244243
|
-
variant,
|
|
244244
|
-
withMigrationUi,
|
|
244245
|
-
withTestPreset,
|
|
244246
|
-
withWpEnv
|
|
244225
|
+
projectDir: previewProjectDir
|
|
244247
244226
|
});
|
|
244248
244227
|
const files = await listRelativeProjectFiles(previewProjectDir);
|
|
244249
244228
|
return {
|
|
244250
244229
|
plan: {
|
|
244251
|
-
dependencyInstall: noInstall ? "skipped-by-flag" : "would-install",
|
|
244230
|
+
dependencyInstall: options.noInstall ? "skipped-by-flag" : "would-install",
|
|
244252
244231
|
files
|
|
244253
244232
|
},
|
|
244254
244233
|
result
|
|
@@ -244257,19 +244236,77 @@ async function buildScaffoldDryRunPlan({
|
|
|
244257
244236
|
await cleanup();
|
|
244258
244237
|
}
|
|
244259
244238
|
}
|
|
244239
|
+
var init_cli_scaffold_emission = __esm(() => {
|
|
244240
|
+
init_cli_scaffold_files();
|
|
244241
|
+
init_scaffold();
|
|
244242
|
+
init_temp_roots();
|
|
244243
|
+
});
|
|
244244
|
+
|
|
244245
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-output.ts
|
|
244246
|
+
import path93 from "path";
|
|
244247
|
+
function quoteShellValue(value2) {
|
|
244248
|
+
if (!value2.startsWith("-") && /^[A-Za-z0-9._/@:-]+(?:\/[A-Za-z0-9._@:-]+)*$/.test(value2)) {
|
|
244249
|
+
return value2;
|
|
244250
|
+
}
|
|
244251
|
+
return `'${value2.replace(/'/g, `'"'"'`)}'`;
|
|
244252
|
+
}
|
|
244253
|
+
function getNextSteps({
|
|
244254
|
+
projectInput,
|
|
244255
|
+
projectDir,
|
|
244256
|
+
packageManager,
|
|
244257
|
+
noInstall,
|
|
244258
|
+
templateId
|
|
244259
|
+
}) {
|
|
244260
|
+
const cdTarget = path93.isAbsolute(projectInput) ? projectDir : projectInput;
|
|
244261
|
+
const steps = [`cd ${quoteShellValue(cdTarget)}`];
|
|
244262
|
+
if (noInstall) {
|
|
244263
|
+
steps.push(formatInstallCommand(packageManager));
|
|
244264
|
+
}
|
|
244265
|
+
steps.push(formatRunScript(packageManager, getPrimaryDevelopmentScript(templateId)));
|
|
244266
|
+
return steps;
|
|
244267
|
+
}
|
|
244268
|
+
function getOptionalOnboarding({
|
|
244269
|
+
availableScripts,
|
|
244270
|
+
packageManager,
|
|
244271
|
+
templateId,
|
|
244272
|
+
compoundPersistenceEnabled = false
|
|
244273
|
+
}) {
|
|
244274
|
+
return {
|
|
244275
|
+
note: getOptionalOnboardingNote(packageManager, templateId, {
|
|
244276
|
+
availableScripts,
|
|
244277
|
+
compoundPersistenceEnabled
|
|
244278
|
+
}),
|
|
244279
|
+
shortNote: getOptionalOnboardingShortNote(packageManager, templateId, {
|
|
244280
|
+
availableScripts,
|
|
244281
|
+
compoundPersistenceEnabled
|
|
244282
|
+
}),
|
|
244283
|
+
steps: getOptionalOnboardingSteps(packageManager, templateId, {
|
|
244284
|
+
availableScripts,
|
|
244285
|
+
compoundPersistenceEnabled
|
|
244286
|
+
})
|
|
244287
|
+
};
|
|
244288
|
+
}
|
|
244289
|
+
var init_cli_scaffold_output = __esm(() => {
|
|
244290
|
+
init_package_managers();
|
|
244291
|
+
init_scaffold_onboarding();
|
|
244292
|
+
init_local_dev_presets();
|
|
244293
|
+
});
|
|
244294
|
+
|
|
244295
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-validation.ts
|
|
244296
|
+
import path94 from "path";
|
|
244260
244297
|
function validateCreateProjectInput(projectInput) {
|
|
244261
244298
|
const normalizedProjectInput = projectInput.trim();
|
|
244262
244299
|
if (normalizedProjectInput.length === 0) {
|
|
244263
244300
|
throw new Error("Project directory is required. Usage: wp-typia create <project-dir> (or wp-typia <project-dir> when <project-dir> is the only positional argument).");
|
|
244264
244301
|
}
|
|
244265
|
-
const normalizedProjectPath =
|
|
244302
|
+
const normalizedProjectPath = path94.normalize(normalizedProjectInput).replace(/[\\/]+$/u, "") || path94.normalize(normalizedProjectInput);
|
|
244266
244303
|
if (normalizedProjectPath === "." || normalizedProjectPath === "..") {
|
|
244267
244304
|
throw new Error("`wp-typia create` requires a new project directory. Use an explicit child directory instead of `.` or `..`.");
|
|
244268
244305
|
}
|
|
244269
244306
|
}
|
|
244270
244307
|
function collectProjectDirectoryWarnings(projectDir) {
|
|
244271
244308
|
const warnings = [];
|
|
244272
|
-
const projectName =
|
|
244309
|
+
const projectName = path94.basename(projectDir);
|
|
244273
244310
|
if (/\s/u.test(projectName)) {
|
|
244274
244311
|
warnings.push(`Project directory "${projectName}" contains spaces. The generated next-step commands will be quoted, but a simple kebab-case directory name is usually easier to use with shells and downstream tooling.`);
|
|
244275
244312
|
}
|
|
@@ -244378,7 +244415,7 @@ async function resolveOptionalSelection({
|
|
|
244378
244415
|
if (!shouldResolve) {
|
|
244379
244416
|
return;
|
|
244380
244417
|
}
|
|
244381
|
-
if (explicitValue) {
|
|
244418
|
+
if (explicitValue !== undefined) {
|
|
244382
244419
|
return parseSelectableValue(label, explicitValue, isValue, allowedValues);
|
|
244383
244420
|
}
|
|
244384
244421
|
if (yes) {
|
|
@@ -244411,48 +244448,21 @@ async function resolveOptionalBooleanFlag({
|
|
|
244411
244448
|
}
|
|
244412
244449
|
return defaultValue;
|
|
244413
244450
|
}
|
|
244414
|
-
|
|
244415
|
-
|
|
244416
|
-
|
|
244417
|
-
|
|
244418
|
-
|
|
244419
|
-
}
|
|
244420
|
-
|
|
244421
|
-
|
|
244422
|
-
|
|
244423
|
-
|
|
244424
|
-
|
|
244425
|
-
|
|
244426
|
-
|
|
244427
|
-
|
|
244428
|
-
|
|
244429
|
-
if (noInstall) {
|
|
244430
|
-
steps.push(formatInstallCommand(packageManager));
|
|
244431
|
-
}
|
|
244432
|
-
steps.push(formatRunScript(packageManager, getPrimaryDevelopmentScript(templateId)));
|
|
244433
|
-
return steps;
|
|
244434
|
-
}
|
|
244435
|
-
function getOptionalOnboarding({
|
|
244436
|
-
availableScripts,
|
|
244437
|
-
packageManager,
|
|
244438
|
-
templateId,
|
|
244439
|
-
compoundPersistenceEnabled = false
|
|
244440
|
-
}) {
|
|
244441
|
-
return {
|
|
244442
|
-
note: getOptionalOnboardingNote(packageManager, templateId, {
|
|
244443
|
-
availableScripts,
|
|
244444
|
-
compoundPersistenceEnabled
|
|
244445
|
-
}),
|
|
244446
|
-
shortNote: getOptionalOnboardingShortNote(packageManager, templateId, {
|
|
244447
|
-
availableScripts,
|
|
244448
|
-
compoundPersistenceEnabled
|
|
244449
|
-
}),
|
|
244450
|
-
steps: getOptionalOnboardingSteps(packageManager, templateId, {
|
|
244451
|
-
availableScripts,
|
|
244452
|
-
compoundPersistenceEnabled
|
|
244453
|
-
})
|
|
244454
|
-
};
|
|
244455
|
-
}
|
|
244451
|
+
var init_cli_scaffold_validation = __esm(() => {
|
|
244452
|
+
init_alternate_render_targets();
|
|
244453
|
+
init_compound_inner_blocks();
|
|
244454
|
+
init_cli_validation();
|
|
244455
|
+
init_template_registry();
|
|
244456
|
+
});
|
|
244457
|
+
|
|
244458
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold.ts
|
|
244459
|
+
var exports_cli_scaffold = {};
|
|
244460
|
+
__export(exports_cli_scaffold, {
|
|
244461
|
+
runScaffoldFlow: () => runScaffoldFlow,
|
|
244462
|
+
getOptionalOnboarding: () => getOptionalOnboarding,
|
|
244463
|
+
getNextSteps: () => getNextSteps
|
|
244464
|
+
});
|
|
244465
|
+
import path95 from "path";
|
|
244456
244466
|
async function runScaffoldFlow({
|
|
244457
244467
|
projectInput,
|
|
244458
244468
|
cwd = process.cwd(),
|
|
@@ -244574,8 +244584,8 @@ async function runScaffoldFlow({
|
|
|
244574
244584
|
select: selectWithMigrationUi,
|
|
244575
244585
|
yes
|
|
244576
244586
|
});
|
|
244577
|
-
const projectDir =
|
|
244578
|
-
const projectName =
|
|
244587
|
+
const projectDir = path95.resolve(cwd, projectInput);
|
|
244588
|
+
const projectName = path95.basename(projectDir);
|
|
244579
244589
|
const answers = await collectScaffoldAnswers({
|
|
244580
244590
|
dataStorageMode: resolvedDataStorage,
|
|
244581
244591
|
namespace,
|
|
@@ -244591,7 +244601,7 @@ async function runScaffoldFlow({
|
|
|
244591
244601
|
if (resolvedTemplateId === "compound" && resolvedInnerBlocksPreset) {
|
|
244592
244602
|
answers.compoundInnerBlocksPreset = resolvedInnerBlocksPreset;
|
|
244593
244603
|
}
|
|
244594
|
-
const
|
|
244604
|
+
const emissionOptions = {
|
|
244595
244605
|
allowExistingDir,
|
|
244596
244606
|
alternateRenderTargets,
|
|
244597
244607
|
answers,
|
|
@@ -244612,43 +244622,12 @@ async function runScaffoldFlow({
|
|
|
244612
244622
|
withMigrationUi: resolvedWithMigrationUi,
|
|
244613
244623
|
withTestPreset: resolvedWithTestPreset,
|
|
244614
244624
|
withWpEnv: resolvedWithWpEnv
|
|
244615
|
-
}
|
|
244625
|
+
};
|
|
244626
|
+
const resolvedResult = dryRun ? await buildScaffoldDryRunPlan(emissionOptions) : {
|
|
244616
244627
|
plan: undefined,
|
|
244617
|
-
result: await
|
|
244618
|
-
alternateRenderTargets,
|
|
244619
|
-
answers,
|
|
244620
|
-
allowExistingDir,
|
|
244621
|
-
cwd,
|
|
244622
|
-
dataStorageMode: resolvedDataStorage,
|
|
244623
|
-
externalLayerId: resolvedExternalLayerSelection.externalLayerId,
|
|
244624
|
-
externalLayerSource: resolvedExternalLayerSelection.externalLayerSource,
|
|
244625
|
-
externalLayerSourceLabel: normalizedExternalLayerSource,
|
|
244626
|
-
installDependencies,
|
|
244627
|
-
noInstall,
|
|
244628
|
-
onProgress,
|
|
244629
|
-
packageManager: resolvedPackageManager,
|
|
244630
|
-
persistencePolicy: resolvedPersistencePolicy,
|
|
244631
|
-
profile: resolvedProfile,
|
|
244632
|
-
projectDir,
|
|
244633
|
-
templateId: resolvedTemplateId,
|
|
244634
|
-
variant,
|
|
244635
|
-
withMigrationUi: resolvedWithMigrationUi,
|
|
244636
|
-
withTestPreset: resolvedWithTestPreset,
|
|
244637
|
-
withWpEnv: resolvedWithWpEnv
|
|
244638
|
-
})
|
|
244628
|
+
result: await emitScaffoldProject(emissionOptions)
|
|
244639
244629
|
};
|
|
244640
|
-
|
|
244641
|
-
if (!dryRun) {
|
|
244642
|
-
try {
|
|
244643
|
-
const parsedPackageJson = await readJsonFile(path91.join(projectDir, "package.json"), {
|
|
244644
|
-
context: "generated package manifest"
|
|
244645
|
-
});
|
|
244646
|
-
const scripts = parsedPackageJson.scripts && typeof parsedPackageJson.scripts === "object" && !Array.isArray(parsedPackageJson.scripts) ? parsedPackageJson.scripts : {};
|
|
244647
|
-
availableScripts = Object.entries(scripts).filter(([, value2]) => typeof value2 === "string").map(([scriptName]) => scriptName);
|
|
244648
|
-
} catch {
|
|
244649
|
-
availableScripts = undefined;
|
|
244650
|
-
}
|
|
244651
|
-
}
|
|
244630
|
+
const availableScripts = dryRun ? undefined : await readGeneratedPackageScripts(projectDir);
|
|
244652
244631
|
return {
|
|
244653
244632
|
dryRun,
|
|
244654
244633
|
optionalOnboarding: getOptionalOnboarding({
|
|
@@ -244687,19 +244666,16 @@ async function runScaffoldFlow({
|
|
|
244687
244666
|
}
|
|
244688
244667
|
var init_cli_scaffold = __esm(() => {
|
|
244689
244668
|
init_scaffold();
|
|
244690
|
-
init_alternate_render_targets();
|
|
244691
244669
|
init_compound_inner_blocks();
|
|
244692
244670
|
init_scaffold_template_variable_groups();
|
|
244693
|
-
|
|
244694
|
-
|
|
244695
|
-
|
|
244696
|
-
|
|
244697
|
-
init_scaffold_bootstrap();
|
|
244698
|
-
init_fs_async();
|
|
244699
|
-
init_json_utils();
|
|
244671
|
+
init_cli_scaffold_emission();
|
|
244672
|
+
init_cli_scaffold_files();
|
|
244673
|
+
init_cli_scaffold_output();
|
|
244674
|
+
init_cli_scaffold_validation();
|
|
244700
244675
|
init_template_registry();
|
|
244701
244676
|
init_external_layer_selection();
|
|
244702
244677
|
init_cli_validation();
|
|
244678
|
+
init_cli_scaffold_output();
|
|
244703
244679
|
});
|
|
244704
244680
|
|
|
244705
244681
|
// ../wp-typia-project-tools/src/runtime/cli-templates.ts
|
|
@@ -244861,7 +244837,7 @@ var init_cli_templates = __esm(() => {
|
|
|
244861
244837
|
|
|
244862
244838
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-shared.ts
|
|
244863
244839
|
import fs32 from "fs";
|
|
244864
|
-
import
|
|
244840
|
+
import path96 from "path";
|
|
244865
244841
|
function createDoctorCheck(label, status, detail, code) {
|
|
244866
244842
|
return code ? { code, detail, label, status } : { detail, label, status };
|
|
244867
244843
|
}
|
|
@@ -244872,10 +244848,10 @@ function getWorkspaceBootstrapRelativePath(packageName) {
|
|
|
244872
244848
|
return `${packageName.split("/").pop() ?? packageName}.php`;
|
|
244873
244849
|
}
|
|
244874
244850
|
function resolveWorkspaceBootstrapPath(projectDir, packageName) {
|
|
244875
|
-
return
|
|
244851
|
+
return path96.join(projectDir, getWorkspaceBootstrapRelativePath(packageName));
|
|
244876
244852
|
}
|
|
244877
244853
|
function checkExistingFiles(projectDir, label, filePaths) {
|
|
244878
|
-
const missing = filePaths.filter((filePath) => typeof filePath === "string").filter((filePath) => !fs32.existsSync(
|
|
244854
|
+
const missing = filePaths.filter((filePath) => typeof filePath === "string").filter((filePath) => !fs32.existsSync(path96.join(projectDir, filePath)));
|
|
244879
244855
|
return createDoctorCheck(label, missing.length === 0 ? "pass" : "fail", missing.length === 0 ? "All referenced files exist" : `Missing: ${missing.join(", ")}`);
|
|
244880
244856
|
}
|
|
244881
244857
|
var WORKSPACE_BINDING_SERVER_GLOB = "/src/bindings/*/server.php", WORKSPACE_BINDING_EDITOR_SCRIPT = "build/bindings/index.js", WORKSPACE_BINDING_EDITOR_ASSET = "build/bindings/index.asset.php", WORKSPACE_REST_RESOURCE_GLOB = "/inc/rest/*.php", WORKSPACE_POST_META_GLOB = "/inc/post-meta/*.php", WORKSPACE_ABILITY_GLOB = "/inc/abilities/*.php", WORKSPACE_ABILITY_EDITOR_SCRIPT = "build/abilities/index.js", WORKSPACE_ABILITY_EDITOR_ASSET = "build/abilities/index.asset.php", WORKSPACE_AI_FEATURE_GLOB = "/inc/ai-features/*.php", WORKSPACE_ADMIN_VIEW_GLOB = "/inc/admin-views/*.php", WORKSPACE_ADMIN_VIEW_SCRIPT = "build/admin-views/index.js", WORKSPACE_ADMIN_VIEW_ASSET = "build/admin-views/index.asset.php", WORKSPACE_ADMIN_VIEW_STYLE = "build/admin-views/style-index.css", WORKSPACE_EDITOR_PLUGIN_EDITOR_SCRIPT = "build/editor-plugins/index.js", WORKSPACE_EDITOR_PLUGIN_EDITOR_ASSET = "build/editor-plugins/index.asset.php", WORKSPACE_EDITOR_PLUGIN_EDITOR_STYLE = "build/editor-plugins/style-index.css", WORKSPACE_GENERATED_BLOCK_ARTIFACTS, WORKSPACE_FULL_BLOCK_NAME_PATTERN;
|
|
@@ -244895,7 +244871,7 @@ import { execFileSync as execFileSync3 } from "child_process";
|
|
|
244895
244871
|
import { access, constants as fsConstants, rm as rm2, writeFile as writeFile6 } from "fs/promises";
|
|
244896
244872
|
import fs33 from "fs";
|
|
244897
244873
|
import os5 from "os";
|
|
244898
|
-
import
|
|
244874
|
+
import path97 from "path";
|
|
244899
244875
|
function readCommandVersion(command, args = ["--version"]) {
|
|
244900
244876
|
try {
|
|
244901
244877
|
return execFileSync3(command, args, {
|
|
@@ -244919,7 +244895,7 @@ async function checkWritableDirectory(directory) {
|
|
|
244919
244895
|
}
|
|
244920
244896
|
}
|
|
244921
244897
|
async function checkTempDirectory() {
|
|
244922
|
-
const tempFile =
|
|
244898
|
+
const tempFile = path97.join(os5.tmpdir(), `wp-typia-${Date.now()}.tmp`);
|
|
244923
244899
|
try {
|
|
244924
244900
|
await writeFile6(tempFile, "ok", "utf8");
|
|
244925
244901
|
await rm2(tempFile, { force: true });
|
|
@@ -244933,7 +244909,7 @@ function getTemplateDoctorChecks() {
|
|
|
244933
244909
|
for (const template of listTemplates()) {
|
|
244934
244910
|
if (!isBuiltInTemplateId(template.id)) {
|
|
244935
244911
|
const templateDirExists = fs33.existsSync(template.templateDir);
|
|
244936
|
-
const hasAssets2 = templateDirExists && fs33.existsSync(
|
|
244912
|
+
const hasAssets2 = templateDirExists && fs33.existsSync(path97.join(template.templateDir, "package.json.mustache"));
|
|
244937
244913
|
checks3.push({
|
|
244938
244914
|
status: !templateDirExists || hasAssets2 ? "pass" : "fail",
|
|
244939
244915
|
label: `Template ${template.id}`,
|
|
@@ -244958,7 +244934,7 @@ function getTemplateDoctorChecks() {
|
|
|
244958
244934
|
])) : getBuiltInTemplateLayerDirs(builtInTemplateId);
|
|
244959
244935
|
const missingRequiredLayer = layerDirs.some((layerDir) => !fs33.existsSync(layerDir) && !isOmittableBuiltInTemplateLayerDir(builtInTemplateId, layerDir));
|
|
244960
244936
|
const existingLayerDirs = layerDirs.filter((layerDir) => fs33.existsSync(layerDir));
|
|
244961
|
-
const hasAssets = !missingRequiredLayer && existingLayerDirs.some((layerDir) => fs33.existsSync(
|
|
244937
|
+
const hasAssets = !missingRequiredLayer && existingLayerDirs.some((layerDir) => fs33.existsSync(path97.join(layerDir, "package.json.mustache"))) && existingLayerDirs.some((layerDir) => fs33.existsSync(path97.join(layerDir, "src")));
|
|
244962
244938
|
checks3.push({
|
|
244963
244939
|
status: hasAssets ? "pass" : "fail",
|
|
244964
244940
|
label: `Template ${template.id}`,
|
|
@@ -244990,12 +244966,12 @@ var init_cli_doctor_environment = __esm(() => {
|
|
|
244990
244966
|
|
|
244991
244967
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-bindings.ts
|
|
244992
244968
|
import fs34 from "fs";
|
|
244993
|
-
import
|
|
244969
|
+
import path98 from "path";
|
|
244994
244970
|
import { parseScaffoldBlockMetadata as parseScaffoldBlockMetadata2 } from "@wp-typia/block-runtime/blocks";
|
|
244995
244971
|
function checkWorkspaceBindingBootstrap(projectDir, packageName) {
|
|
244996
244972
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
244997
244973
|
if (!fs34.existsSync(bootstrapPath)) {
|
|
244998
|
-
return createDoctorCheck("Binding bootstrap", "fail", `Missing ${
|
|
244974
|
+
return createDoctorCheck("Binding bootstrap", "fail", `Missing ${path98.basename(bootstrapPath)}`);
|
|
244999
244975
|
}
|
|
245000
244976
|
const source = fs34.readFileSync(bootstrapPath, "utf8");
|
|
245001
244977
|
const hasServerGlob = source.includes(WORKSPACE_BINDING_SERVER_GLOB);
|
|
@@ -245005,11 +244981,11 @@ function checkWorkspaceBindingBootstrap(projectDir, packageName) {
|
|
|
245005
244981
|
return createDoctorCheck("Binding bootstrap", hasServerGlob && hasEditorEnqueueHook && hasEditorScript && hasEditorAsset ? "pass" : "fail", hasServerGlob && hasEditorEnqueueHook && hasEditorScript && hasEditorAsset ? "Binding source PHP and editor bootstrap hooks are present" : "Missing binding source PHP require glob or editor enqueue hook");
|
|
245006
244982
|
}
|
|
245007
244983
|
function checkWorkspaceBindingSourcesIndex(projectDir, bindingSources) {
|
|
245008
|
-
const indexRelativePath = [
|
|
244984
|
+
const indexRelativePath = [path98.join("src", "bindings", "index.ts"), path98.join("src", "bindings", "index.js")].find((relativePath) => fs34.existsSync(path98.join(projectDir, relativePath)));
|
|
245009
244985
|
if (!indexRelativePath) {
|
|
245010
244986
|
return createDoctorCheck("Binding sources index", "fail", "Missing src/bindings/index.ts or src/bindings/index.js");
|
|
245011
244987
|
}
|
|
245012
|
-
const indexPath =
|
|
244988
|
+
const indexPath = path98.join(projectDir, indexRelativePath);
|
|
245013
244989
|
const source = fs34.readFileSync(indexPath, "utf8");
|
|
245014
244990
|
const missingImports = bindingSources.filter((bindingSource) => !source.includes(`./${bindingSource.slug}/editor`));
|
|
245015
244991
|
return createDoctorCheck("Binding sources index", missingImports.length === 0 ? "pass" : "fail", missingImports.length === 0 ? "Binding source editor registrations are aggregated" : `Missing editor imports for: ${missingImports.map((entry) => entry.slug).join(", ")}`);
|
|
@@ -245026,8 +245002,8 @@ function checkWorkspaceBindingTarget(projectDir, workspace, registeredBlockSlugs
|
|
|
245026
245002
|
if (!registeredBlockSlugs.has(bindingSource.block)) {
|
|
245027
245003
|
return createDoctorCheck(`Binding target ${bindingSource.slug}`, "fail", `Binding target references unknown block "${bindingSource.block}".`);
|
|
245028
245004
|
}
|
|
245029
|
-
const blockJsonRelativePath =
|
|
245030
|
-
const blockJsonPath =
|
|
245005
|
+
const blockJsonRelativePath = path98.join("src", "blocks", bindingSource.block, "block.json");
|
|
245006
|
+
const blockJsonPath = path98.join(projectDir, blockJsonRelativePath);
|
|
245031
245007
|
const issues = [];
|
|
245032
245008
|
try {
|
|
245033
245009
|
const blockJson = parseScaffoldBlockMetadata2(readJsonFileSync(blockJsonPath, {
|
|
@@ -245045,7 +245021,7 @@ function checkWorkspaceBindingTarget(projectDir, workspace, registeredBlockSlugs
|
|
|
245045
245021
|
} catch (error48) {
|
|
245046
245022
|
issues.push(error48 instanceof Error ? `Unable to read ${blockJsonRelativePath}: ${error48.message}` : `Unable to read ${blockJsonRelativePath}.`);
|
|
245047
245023
|
}
|
|
245048
|
-
const serverPath =
|
|
245024
|
+
const serverPath = path98.join(projectDir, bindingSource.serverFile);
|
|
245049
245025
|
if (fs34.existsSync(serverPath)) {
|
|
245050
245026
|
const serverSource = fs34.readFileSync(serverPath, "utf8");
|
|
245051
245027
|
const supportedAttributesFilter = `block_bindings_supported_attributes_${workspace.workspace.namespace}/${bindingSource.block}`;
|
|
@@ -245058,7 +245034,7 @@ function checkWorkspaceBindingTarget(projectDir, workspace, registeredBlockSlugs
|
|
|
245058
245034
|
} else {
|
|
245059
245035
|
issues.push(`Missing ${bindingSource.serverFile}`);
|
|
245060
245036
|
}
|
|
245061
|
-
const editorPath =
|
|
245037
|
+
const editorPath = path98.join(projectDir, bindingSource.editorFile);
|
|
245062
245038
|
if (fs34.existsSync(editorPath)) {
|
|
245063
245039
|
const editorSource = fs34.readFileSync(editorPath, "utf8");
|
|
245064
245040
|
const blockName = `${workspace.workspace.namespace}/${bindingSource.block}`;
|
|
@@ -245098,7 +245074,7 @@ function checkWorkspaceBindingPostMeta(projectDir, inventory, bindingSource) {
|
|
|
245098
245074
|
} catch (error48) {
|
|
245099
245075
|
issues.push(error48 instanceof Error ? error48.message : String(error48));
|
|
245100
245076
|
}
|
|
245101
|
-
const serverPath =
|
|
245077
|
+
const serverPath = path98.join(projectDir, bindingSource.serverFile);
|
|
245102
245078
|
if (fs34.existsSync(serverPath)) {
|
|
245103
245079
|
const serverSource = fs34.readFileSync(serverPath, "utf8");
|
|
245104
245080
|
if (!serverSource.includes("get_post_meta")) {
|
|
@@ -245113,7 +245089,7 @@ function checkWorkspaceBindingPostMeta(projectDir, inventory, bindingSource) {
|
|
|
245113
245089
|
} else {
|
|
245114
245090
|
issues.push(`Missing ${bindingSource.serverFile}`);
|
|
245115
245091
|
}
|
|
245116
|
-
const editorPath =
|
|
245092
|
+
const editorPath = path98.join(projectDir, bindingSource.editorFile);
|
|
245117
245093
|
if (fs34.existsSync(editorPath)) {
|
|
245118
245094
|
const editorSource = fs34.readFileSync(editorPath, "utf8");
|
|
245119
245095
|
if (!editorSource.includes("POST_META_BINDING_FIELDS")) {
|
|
@@ -245161,7 +245137,7 @@ var init_cli_doctor_workspace_bindings = __esm(() => {
|
|
|
245161
245137
|
|
|
245162
245138
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-block-addons.ts
|
|
245163
245139
|
import fs35 from "fs";
|
|
245164
|
-
import
|
|
245140
|
+
import path99 from "path";
|
|
245165
245141
|
function isNestedPatternContentFile(patternFile) {
|
|
245166
245142
|
if (!patternFile) {
|
|
245167
245143
|
return false;
|
|
@@ -245172,7 +245148,7 @@ function isNestedPatternContentFile(patternFile) {
|
|
|
245172
245148
|
function checkWorkspacePatternBootstrap(projectDir, packageName, requiresNestedPatternGlob) {
|
|
245173
245149
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245174
245150
|
if (!fs35.existsSync(bootstrapPath)) {
|
|
245175
|
-
return createDoctorCheck("Pattern bootstrap", "fail", `Missing ${
|
|
245151
|
+
return createDoctorCheck("Pattern bootstrap", "fail", `Missing ${path99.basename(bootstrapPath)}`);
|
|
245176
245152
|
}
|
|
245177
245153
|
const source = fs35.readFileSync(bootstrapPath, "utf8");
|
|
245178
245154
|
const hasCategoryAnchor = source.includes("register_block_pattern_category");
|
|
@@ -245182,9 +245158,9 @@ function checkWorkspacePatternBootstrap(projectDir, packageName, requiresNestedP
|
|
|
245182
245158
|
return createDoctorCheck("Pattern bootstrap", hasCategoryAnchor && hasRequiredPatternGlobs ? "pass" : "fail", hasCategoryAnchor && hasRequiredPatternGlobs ? "Pattern category and loader hooks are present" : requiresNestedPatternGlob ? "Missing pattern category registration or nested src/patterns loader hook" : "Missing pattern category registration or src/patterns loader hook");
|
|
245183
245159
|
}
|
|
245184
245160
|
function checkVariationEntrypoint(projectDir, blockSlug) {
|
|
245185
|
-
const entryPath =
|
|
245161
|
+
const entryPath = path99.join(projectDir, "src", "blocks", blockSlug, "index.tsx");
|
|
245186
245162
|
if (!fs35.existsSync(entryPath)) {
|
|
245187
|
-
return createDoctorCheck(`Variation entrypoint ${blockSlug}`, "fail", `Missing ${
|
|
245163
|
+
return createDoctorCheck(`Variation entrypoint ${blockSlug}`, "fail", `Missing ${path99.relative(projectDir, entryPath)}`);
|
|
245188
245164
|
}
|
|
245189
245165
|
const source = fs35.readFileSync(entryPath, "utf8");
|
|
245190
245166
|
const hasImport = hasUncommentedPattern(source, WORKSPACE_VARIATIONS_IMPORT_PATTERN);
|
|
@@ -245192,9 +245168,9 @@ function checkVariationEntrypoint(projectDir, blockSlug) {
|
|
|
245192
245168
|
return createDoctorCheck(`Variation entrypoint ${blockSlug}`, hasImport && hasCall ? "pass" : "fail", hasImport && hasCall ? "Variations registration hook is present" : "Missing ./variations import or registerWorkspaceVariations() call");
|
|
245193
245169
|
}
|
|
245194
245170
|
function checkBlockStyleEntrypoint(projectDir, blockSlug) {
|
|
245195
|
-
const entryPath =
|
|
245171
|
+
const entryPath = path99.join(projectDir, "src", "blocks", blockSlug, "index.tsx");
|
|
245196
245172
|
if (!fs35.existsSync(entryPath)) {
|
|
245197
|
-
return createDoctorCheck(`Block style entrypoint ${blockSlug}`, "fail", `Missing ${
|
|
245173
|
+
return createDoctorCheck(`Block style entrypoint ${blockSlug}`, "fail", `Missing ${path99.relative(projectDir, entryPath)}`);
|
|
245198
245174
|
}
|
|
245199
245175
|
const source = fs35.readFileSync(entryPath, "utf8");
|
|
245200
245176
|
const hasImport = hasUncommentedPattern(source, WORKSPACE_BLOCK_STYLES_IMPORT_PATTERN);
|
|
@@ -245202,9 +245178,9 @@ function checkBlockStyleEntrypoint(projectDir, blockSlug) {
|
|
|
245202
245178
|
return createDoctorCheck(`Block style entrypoint ${blockSlug}`, hasImport && hasCall ? "pass" : "fail", hasImport && hasCall ? "Block style registration hook is present" : "Missing ./styles import or registerWorkspaceBlockStyles() call");
|
|
245203
245179
|
}
|
|
245204
245180
|
function checkBlockTransformEntrypoint(projectDir, blockSlug) {
|
|
245205
|
-
const entryPath =
|
|
245181
|
+
const entryPath = path99.join(projectDir, "src", "blocks", blockSlug, "index.tsx");
|
|
245206
245182
|
if (!fs35.existsSync(entryPath)) {
|
|
245207
|
-
return createDoctorCheck(`Block transform entrypoint ${blockSlug}`, "fail", `Missing ${
|
|
245183
|
+
return createDoctorCheck(`Block transform entrypoint ${blockSlug}`, "fail", `Missing ${path99.relative(projectDir, entryPath)}`);
|
|
245208
245184
|
}
|
|
245209
245185
|
const source = fs35.readFileSync(entryPath, "utf8");
|
|
245210
245186
|
const hasImport = hasUncommentedPattern(source, WORKSPACE_BLOCK_TRANSFORMS_IMPORT_PATTERN);
|
|
@@ -245247,7 +245223,7 @@ function getWorkspaceBlockAddonDoctorChecks(workspace, inventory, registeredBloc
|
|
|
245247
245223
|
}
|
|
245248
245224
|
for (const blockSlug of blockStyleTargetBlocks) {
|
|
245249
245225
|
checks3.push(checkExistingFiles(workspace.projectDir, `Block style registry ${blockSlug}`, [
|
|
245250
|
-
|
|
245226
|
+
path99.join("src", "blocks", blockSlug, "styles", "index.ts")
|
|
245251
245227
|
]));
|
|
245252
245228
|
checks3.push(checkBlockStyleEntrypoint(workspace.projectDir, blockSlug));
|
|
245253
245229
|
}
|
|
@@ -245263,11 +245239,11 @@ function getWorkspaceBlockAddonDoctorChecks(workspace, inventory, registeredBloc
|
|
|
245263
245239
|
}
|
|
245264
245240
|
for (const blockSlug of blockTransformTargetBlocks) {
|
|
245265
245241
|
checks3.push(checkExistingFiles(workspace.projectDir, `Block transform registry ${blockSlug}`, [
|
|
245266
|
-
|
|
245242
|
+
path99.join("src", "blocks", blockSlug, "transforms", "index.ts")
|
|
245267
245243
|
]));
|
|
245268
245244
|
checks3.push(checkBlockTransformEntrypoint(workspace.projectDir, blockSlug));
|
|
245269
245245
|
}
|
|
245270
|
-
const shouldCheckPatternBootstrap = inventory.patterns.length > 0 || fs35.existsSync(
|
|
245246
|
+
const shouldCheckPatternBootstrap = inventory.patterns.length > 0 || fs35.existsSync(path99.join(workspace.projectDir, "src", "patterns"));
|
|
245271
245247
|
if (shouldCheckPatternBootstrap) {
|
|
245272
245248
|
const requiresNestedPatternGlob = inventory.patterns.some((pattern) => isNestedPatternContentFile(resolvePatternCatalogContentFile(pattern)));
|
|
245273
245249
|
checks3.push(checkWorkspacePatternBootstrap(workspace.projectDir, workspace.packageName, requiresNestedPatternGlob));
|
|
@@ -245299,10 +245275,10 @@ var init_cli_doctor_workspace_block_addons = __esm(() => {
|
|
|
245299
245275
|
|
|
245300
245276
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-block-iframe.ts
|
|
245301
245277
|
import fs36 from "fs";
|
|
245302
|
-
import
|
|
245278
|
+
import path100 from "path";
|
|
245303
245279
|
import { parseScaffoldBlockMetadata as parseScaffoldBlockMetadata3 } from "@wp-typia/block-runtime/blocks";
|
|
245304
245280
|
function normalizePathSeparators(relativePath) {
|
|
245305
|
-
return relativePath.split(
|
|
245281
|
+
return relativePath.split(path100.sep).join("/");
|
|
245306
245282
|
}
|
|
245307
245283
|
function hasRegisteredBlockAsset(value2) {
|
|
245308
245284
|
if (typeof value2 === "string") {
|
|
@@ -245314,8 +245290,8 @@ function hasRegisteredBlockAsset(value2) {
|
|
|
245314
245290
|
return false;
|
|
245315
245291
|
}
|
|
245316
245292
|
function readWorkspaceBlockIframeMetadata(projectDir, blockSlug) {
|
|
245317
|
-
const blockJsonRelativePath =
|
|
245318
|
-
const blockJsonPath =
|
|
245293
|
+
const blockJsonRelativePath = path100.join("src", "blocks", blockSlug, "block.json");
|
|
245294
|
+
const blockJsonPath = path100.join(projectDir, blockJsonRelativePath);
|
|
245319
245295
|
if (!fs36.existsSync(blockJsonPath)) {
|
|
245320
245296
|
return {
|
|
245321
245297
|
blockJsonRelativePath,
|
|
@@ -245342,8 +245318,8 @@ function isWorkspaceBlockEditorSource(relativePath) {
|
|
|
245342
245318
|
return false;
|
|
245343
245319
|
}
|
|
245344
245320
|
const normalizedRelativePath = normalizePathSeparators(relativePath);
|
|
245345
|
-
const normalizedDirName =
|
|
245346
|
-
const normalizedBaseName =
|
|
245321
|
+
const normalizedDirName = path100.posix.dirname(normalizedRelativePath);
|
|
245322
|
+
const normalizedBaseName = path100.posix.basename(normalizedRelativePath, path100.posix.extname(normalizedRelativePath));
|
|
245347
245323
|
if (WORKSPACE_BLOCK_EDITOR_SOURCE_BASENAMES.has(normalizedBaseName)) {
|
|
245348
245324
|
return true;
|
|
245349
245325
|
}
|
|
@@ -245351,11 +245327,11 @@ function isWorkspaceBlockEditorSource(relativePath) {
|
|
|
245351
245327
|
return pathSegments.some((segment) => WORKSPACE_BLOCK_EDITOR_SOURCE_DIRECTORIES.has(segment));
|
|
245352
245328
|
}
|
|
245353
245329
|
function isWorkspaceBlockSaveSource(relativePath) {
|
|
245354
|
-
const normalizedBaseName =
|
|
245330
|
+
const normalizedBaseName = path100.basename(relativePath, path100.extname(relativePath));
|
|
245355
245331
|
return normalizedBaseName === "save";
|
|
245356
245332
|
}
|
|
245357
245333
|
function collectWorkspaceBlockEditorSources(projectDir, blockSlug) {
|
|
245358
|
-
const blockDir =
|
|
245334
|
+
const blockDir = path100.join(projectDir, "src", "blocks", blockSlug);
|
|
245359
245335
|
if (!fs36.existsSync(blockDir)) {
|
|
245360
245336
|
return [];
|
|
245361
245337
|
}
|
|
@@ -245367,7 +245343,7 @@ function collectWorkspaceBlockEditorSources(projectDir, blockSlug) {
|
|
|
245367
245343
|
continue;
|
|
245368
245344
|
}
|
|
245369
245345
|
for (const entry of fs36.readdirSync(currentDir, { withFileTypes: true })) {
|
|
245370
|
-
const absolutePath =
|
|
245346
|
+
const absolutePath = path100.join(currentDir, entry.name);
|
|
245371
245347
|
if (entry.isDirectory()) {
|
|
245372
245348
|
queue.push(absolutePath);
|
|
245373
245349
|
continue;
|
|
@@ -245375,7 +245351,7 @@ function collectWorkspaceBlockEditorSources(projectDir, blockSlug) {
|
|
|
245375
245351
|
if (!entry.isFile()) {
|
|
245376
245352
|
continue;
|
|
245377
245353
|
}
|
|
245378
|
-
const relativePath =
|
|
245354
|
+
const relativePath = path100.relative(projectDir, absolutePath);
|
|
245379
245355
|
if (!isWorkspaceBlockEditorSource(relativePath)) {
|
|
245380
245356
|
continue;
|
|
245381
245357
|
}
|
|
@@ -245448,8 +245424,8 @@ function getWorkspaceBlockIframeCompatibilityChecks(projectDir, blockSlug) {
|
|
|
245448
245424
|
}
|
|
245449
245425
|
const blockJson = metadataResult.document;
|
|
245450
245426
|
const apiVersion = typeof blockJson.apiVersion === "number" && Number.isFinite(blockJson.apiVersion) ? blockJson.apiVersion : null;
|
|
245451
|
-
const blockDir =
|
|
245452
|
-
const localStyleFiles = WORKSPACE_BLOCK_LOCAL_STYLE_FILES.filter((fileName) => fs36.existsSync(
|
|
245427
|
+
const blockDir = path100.join(projectDir, "src", "blocks", blockSlug);
|
|
245428
|
+
const localStyleFiles = WORKSPACE_BLOCK_LOCAL_STYLE_FILES.filter((fileName) => fs36.existsSync(path100.join(blockDir, fileName))).map((fileName) => normalizePathSeparators(path100.join("src", "blocks", blockSlug, fileName)));
|
|
245453
245429
|
const hasRegisteredEditorStyles = hasRegisteredBlockAsset(blockJson.style) || hasRegisteredBlockAsset(blockJson.editorStyle);
|
|
245454
245430
|
const editorSources = collectWorkspaceBlockEditorSources(projectDir, blockSlug);
|
|
245455
245431
|
const editorWrapperSources = editorSources.filter((source) => !isWorkspaceBlockSaveSource(source.relativePath));
|
|
@@ -245501,21 +245477,21 @@ var init_cli_doctor_workspace_block_iframe = __esm(() => {
|
|
|
245501
245477
|
|
|
245502
245478
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-block-metadata.ts
|
|
245503
245479
|
import fs37 from "fs";
|
|
245504
|
-
import
|
|
245480
|
+
import path101 from "path";
|
|
245505
245481
|
import { parseScaffoldBlockMetadata as parseScaffoldBlockMetadata4 } from "@wp-typia/block-runtime/blocks";
|
|
245506
245482
|
function getWorkspaceBlockRequiredFiles(block) {
|
|
245507
|
-
const blockDir =
|
|
245483
|
+
const blockDir = path101.join("src", "blocks", block.slug);
|
|
245508
245484
|
return Array.from(new Set([
|
|
245509
245485
|
block.typesFile,
|
|
245510
245486
|
block.apiTypesFile,
|
|
245511
245487
|
block.openApiFile,
|
|
245512
|
-
|
|
245513
|
-
...WORKSPACE_GENERATED_BLOCK_ARTIFACTS.map((fileName) =>
|
|
245488
|
+
path101.join(blockDir, "index.tsx"),
|
|
245489
|
+
...WORKSPACE_GENERATED_BLOCK_ARTIFACTS.map((fileName) => path101.join(blockDir, fileName))
|
|
245514
245490
|
].filter((filePath) => typeof filePath === "string")));
|
|
245515
245491
|
}
|
|
245516
245492
|
function checkWorkspaceBlockMetadata(projectDir, workspace, block) {
|
|
245517
|
-
const blockJsonRelativePath =
|
|
245518
|
-
const blockJsonPath =
|
|
245493
|
+
const blockJsonRelativePath = path101.join("src", "blocks", block.slug, "block.json");
|
|
245494
|
+
const blockJsonPath = path101.join(projectDir, blockJsonRelativePath);
|
|
245519
245495
|
if (!fs37.existsSync(blockJsonPath)) {
|
|
245520
245496
|
return createDoctorCheck(`Block metadata ${block.slug}`, "fail", `Missing ${blockJsonRelativePath}`);
|
|
245521
245497
|
}
|
|
@@ -245538,8 +245514,8 @@ function checkWorkspaceBlockMetadata(projectDir, workspace, block) {
|
|
|
245538
245514
|
return createDoctorCheck(`Block metadata ${block.slug}`, issues.length === 0 ? "pass" : "fail", issues.length === 0 ? `block.json matches ${expectedName} and ${workspace.workspace.textDomain}` : issues.join("; "));
|
|
245539
245515
|
}
|
|
245540
245516
|
function checkWorkspaceBlockHooks(projectDir, blockSlug) {
|
|
245541
|
-
const blockJsonRelativePath =
|
|
245542
|
-
const blockJsonPath =
|
|
245517
|
+
const blockJsonRelativePath = path101.join("src", "blocks", blockSlug, "block.json");
|
|
245518
|
+
const blockJsonPath = path101.join(projectDir, blockJsonRelativePath);
|
|
245543
245519
|
if (!fs37.existsSync(blockJsonPath)) {
|
|
245544
245520
|
return createDoctorCheck(`Block hooks ${blockSlug}`, "fail", `Missing ${blockJsonRelativePath}`);
|
|
245545
245521
|
}
|
|
@@ -245563,8 +245539,8 @@ function checkWorkspaceBlockHooks(projectDir, blockSlug) {
|
|
|
245563
245539
|
return createDoctorCheck(`Block hooks ${blockSlug}`, invalidEntries.length === 0 ? "pass" : "fail", invalidEntries.length === 0 ? `blockHooks metadata is valid${Object.keys(blockHooks).length > 0 ? ` (${Object.keys(blockHooks).join(", ")})` : ""}` : `Invalid blockHooks entries: ${invalidEntries.map(([anchor, position]) => `${anchor || "<empty>"} => ${String(position)}`).join(", ")}`);
|
|
245564
245540
|
}
|
|
245565
245541
|
function checkWorkspaceBlockCollectionImport(projectDir, blockSlug) {
|
|
245566
|
-
const entryRelativePath =
|
|
245567
|
-
const entryPath =
|
|
245542
|
+
const entryRelativePath = path101.join("src", "blocks", blockSlug, "index.tsx");
|
|
245543
|
+
const entryPath = path101.join(projectDir, entryRelativePath);
|
|
245568
245544
|
if (!fs37.existsSync(entryPath)) {
|
|
245569
245545
|
return createDoctorCheck(`Block collection ${blockSlug}`, "fail", `Missing ${entryRelativePath}`);
|
|
245570
245546
|
}
|
|
@@ -245607,7 +245583,7 @@ var init_cli_doctor_workspace_blocks = __esm(() => {
|
|
|
245607
245583
|
|
|
245608
245584
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-abilities.ts
|
|
245609
245585
|
import fs38 from "fs";
|
|
245610
|
-
import
|
|
245586
|
+
import path102 from "path";
|
|
245611
245587
|
function getWorkspaceAbilityRequiredFiles(ability) {
|
|
245612
245588
|
return Array.from(new Set([
|
|
245613
245589
|
ability.clientFile,
|
|
@@ -245620,7 +245596,7 @@ function getWorkspaceAbilityRequiredFiles(ability) {
|
|
|
245620
245596
|
]));
|
|
245621
245597
|
}
|
|
245622
245598
|
function checkWorkspaceAbilityConfig(projectDir, ability) {
|
|
245623
|
-
const configPath =
|
|
245599
|
+
const configPath = path102.join(projectDir, ability.configFile);
|
|
245624
245600
|
if (!fs38.existsSync(configPath)) {
|
|
245625
245601
|
return createDoctorCheck(`Ability config ${ability.slug}`, "fail", `Missing ${ability.configFile}`);
|
|
245626
245602
|
}
|
|
@@ -245640,7 +245616,7 @@ function checkWorkspaceAbilityConfig(projectDir, ability) {
|
|
|
245640
245616
|
function checkWorkspaceAbilityBootstrap(projectDir, packageName, phpPrefix) {
|
|
245641
245617
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245642
245618
|
if (!fs38.existsSync(bootstrapPath)) {
|
|
245643
|
-
return createDoctorCheck("Ability bootstrap", "fail", `Missing ${
|
|
245619
|
+
return createDoctorCheck("Ability bootstrap", "fail", `Missing ${path102.basename(bootstrapPath)}`);
|
|
245644
245620
|
}
|
|
245645
245621
|
const source = fs38.readFileSync(bootstrapPath, "utf8");
|
|
245646
245622
|
const loadFunctionName = `${phpPrefix}_load_workflow_abilities`;
|
|
@@ -245659,13 +245635,13 @@ function checkWorkspaceAbilityBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
245659
245635
|
}
|
|
245660
245636
|
function checkWorkspaceAbilityIndex(projectDir, abilities) {
|
|
245661
245637
|
const indexRelativePath = [
|
|
245662
|
-
|
|
245663
|
-
|
|
245664
|
-
].find((relativePath) => fs38.existsSync(
|
|
245638
|
+
path102.join("src", "abilities", "index.ts"),
|
|
245639
|
+
path102.join("src", "abilities", "index.js")
|
|
245640
|
+
].find((relativePath) => fs38.existsSync(path102.join(projectDir, relativePath)));
|
|
245665
245641
|
if (!indexRelativePath) {
|
|
245666
245642
|
return createDoctorCheck("Abilities index", "fail", "Missing src/abilities/index.ts or src/abilities/index.js");
|
|
245667
245643
|
}
|
|
245668
|
-
const indexPath =
|
|
245644
|
+
const indexPath = path102.join(projectDir, indexRelativePath);
|
|
245669
245645
|
const source = fs38.readFileSync(indexPath, "utf8");
|
|
245670
245646
|
const missingExports = abilities.filter((ability) => {
|
|
245671
245647
|
const exportPattern = new RegExp(`^\\s*export\\s+(?:\\*\\s+from|\\{[^}]+\\}\\s+from)\\s+['"\`]\\./${escapeRegex2(ability.slug)}\\/client['"\`]`, "mu");
|
|
@@ -245692,17 +245668,17 @@ var init_cli_doctor_workspace_features_abilities = __esm(() => {
|
|
|
245692
245668
|
|
|
245693
245669
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-admin-views.ts
|
|
245694
245670
|
import fs39 from "fs";
|
|
245695
|
-
import
|
|
245671
|
+
import path103 from "path";
|
|
245696
245672
|
function getWorkspaceAdminViewRequiredFiles(adminView) {
|
|
245697
|
-
const adminViewDir =
|
|
245673
|
+
const adminViewDir = path103.join("src", "admin-views", adminView.slug);
|
|
245698
245674
|
return Array.from(new Set([
|
|
245699
245675
|
adminView.file,
|
|
245700
245676
|
adminView.phpFile,
|
|
245701
|
-
|
|
245702
|
-
|
|
245703
|
-
|
|
245704
|
-
|
|
245705
|
-
|
|
245677
|
+
path103.join(adminViewDir, "Screen.tsx"),
|
|
245678
|
+
path103.join(adminViewDir, "config.ts"),
|
|
245679
|
+
path103.join(adminViewDir, "data.ts"),
|
|
245680
|
+
path103.join(adminViewDir, "style.scss"),
|
|
245681
|
+
path103.join(adminViewDir, "types.ts")
|
|
245706
245682
|
]));
|
|
245707
245683
|
}
|
|
245708
245684
|
function checkWorkspaceAdminViewConfig(adminView, inventory) {
|
|
@@ -245724,7 +245700,7 @@ function checkWorkspaceAdminViewConfig(adminView, inventory) {
|
|
|
245724
245700
|
function checkWorkspaceAdminViewBootstrap(projectDir, packageName, phpPrefix) {
|
|
245725
245701
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245726
245702
|
if (!fs39.existsSync(bootstrapPath)) {
|
|
245727
|
-
return createDoctorCheck("Admin view bootstrap", "fail", `Missing ${
|
|
245703
|
+
return createDoctorCheck("Admin view bootstrap", "fail", `Missing ${path103.basename(bootstrapPath)}`);
|
|
245728
245704
|
}
|
|
245729
245705
|
const source = fs39.readFileSync(bootstrapPath, "utf8");
|
|
245730
245706
|
const loadFunctionName = `${phpPrefix}_load_admin_views`;
|
|
@@ -245735,13 +245711,13 @@ function checkWorkspaceAdminViewBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
245735
245711
|
}
|
|
245736
245712
|
function checkWorkspaceAdminViewIndex(projectDir, adminViews) {
|
|
245737
245713
|
const indexRelativePath = [
|
|
245738
|
-
|
|
245739
|
-
|
|
245740
|
-
].find((relativePath) => fs39.existsSync(
|
|
245714
|
+
path103.join("src", "admin-views", "index.ts"),
|
|
245715
|
+
path103.join("src", "admin-views", "index.js")
|
|
245716
|
+
].find((relativePath) => fs39.existsSync(path103.join(projectDir, relativePath)));
|
|
245741
245717
|
if (!indexRelativePath) {
|
|
245742
245718
|
return createDoctorCheck("Admin views index", "fail", "Missing src/admin-views/index.ts or src/admin-views/index.js");
|
|
245743
245719
|
}
|
|
245744
|
-
const indexPath =
|
|
245720
|
+
const indexPath = path103.join(projectDir, indexRelativePath);
|
|
245745
245721
|
const source = fs39.readFileSync(indexPath, "utf8");
|
|
245746
245722
|
const missingImports = adminViews.filter((adminView) => {
|
|
245747
245723
|
const importPattern = new RegExp(`['"\`]\\./${escapeRegex2(adminView.slug)}(?:/[^'"\`]*)?['"\`]`, "u");
|
|
@@ -245750,7 +245726,7 @@ function checkWorkspaceAdminViewIndex(projectDir, adminViews) {
|
|
|
245750
245726
|
return createDoctorCheck("Admin views index", missingImports.length === 0 ? "pass" : "fail", missingImports.length === 0 ? "Admin view registrations are aggregated" : `Missing admin view imports for: ${missingImports.map((entry) => entry.slug).join(", ")}`);
|
|
245751
245727
|
}
|
|
245752
245728
|
function checkWorkspaceAdminViewPhp(projectDir, adminView) {
|
|
245753
|
-
const phpPath =
|
|
245729
|
+
const phpPath = path103.join(projectDir, adminView.phpFile);
|
|
245754
245730
|
if (!fs39.existsSync(phpPath)) {
|
|
245755
245731
|
return createDoctorCheck(`Admin view PHP ${adminView.slug}`, "fail", `Missing ${adminView.phpFile}`);
|
|
245756
245732
|
}
|
|
@@ -245783,14 +245759,14 @@ var init_cli_doctor_workspace_features_admin_views = __esm(() => {
|
|
|
245783
245759
|
|
|
245784
245760
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-ai.ts
|
|
245785
245761
|
import fs40 from "fs";
|
|
245786
|
-
import
|
|
245762
|
+
import path104 from "path";
|
|
245787
245763
|
function getWorkspaceAiFeatureRequiredFiles(aiFeature) {
|
|
245788
245764
|
return Array.from(new Set([
|
|
245789
245765
|
aiFeature.aiSchemaFile,
|
|
245790
245766
|
aiFeature.apiFile,
|
|
245791
|
-
|
|
245792
|
-
|
|
245793
|
-
|
|
245767
|
+
path104.join(path104.dirname(aiFeature.typesFile), "api-schemas", "feature-request.schema.json"),
|
|
245768
|
+
path104.join(path104.dirname(aiFeature.typesFile), "api-schemas", "feature-response.schema.json"),
|
|
245769
|
+
path104.join(path104.dirname(aiFeature.typesFile), "api-schemas", "feature-result.schema.json"),
|
|
245794
245770
|
aiFeature.clientFile,
|
|
245795
245771
|
aiFeature.dataFile,
|
|
245796
245772
|
aiFeature.openApiFile,
|
|
@@ -245806,7 +245782,7 @@ function checkWorkspaceAiFeatureConfig(aiFeature) {
|
|
|
245806
245782
|
function checkWorkspaceAiFeatureBootstrap(projectDir, packageName, phpPrefix) {
|
|
245807
245783
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245808
245784
|
if (!fs40.existsSync(bootstrapPath)) {
|
|
245809
|
-
return createDoctorCheck("AI feature bootstrap", "fail", `Missing ${
|
|
245785
|
+
return createDoctorCheck("AI feature bootstrap", "fail", `Missing ${path104.basename(bootstrapPath)}`);
|
|
245810
245786
|
}
|
|
245811
245787
|
const source = fs40.readFileSync(bootstrapPath, "utf8");
|
|
245812
245788
|
const registerFunctionName = `${phpPrefix}_register_ai_features`;
|
|
@@ -245833,16 +245809,16 @@ var init_cli_doctor_workspace_features_ai = __esm(() => {
|
|
|
245833
245809
|
|
|
245834
245810
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-editor-plugins.ts
|
|
245835
245811
|
import fs41 from "fs";
|
|
245836
|
-
import
|
|
245812
|
+
import path105 from "path";
|
|
245837
245813
|
function getWorkspaceEditorPluginRequiredFiles(editorPlugin) {
|
|
245838
|
-
const editorPluginDir =
|
|
245839
|
-
const surfaceFile = editorPlugin.slot === "PluginSidebar" ?
|
|
245814
|
+
const editorPluginDir = path105.join("src", "editor-plugins", editorPlugin.slug);
|
|
245815
|
+
const surfaceFile = editorPlugin.slot === "PluginSidebar" ? path105.join(editorPluginDir, "Sidebar.tsx") : path105.join(editorPluginDir, "Surface.tsx");
|
|
245840
245816
|
return Array.from(new Set([
|
|
245841
245817
|
editorPlugin.file,
|
|
245842
245818
|
surfaceFile,
|
|
245843
|
-
|
|
245844
|
-
|
|
245845
|
-
|
|
245819
|
+
path105.join(editorPluginDir, "data.ts"),
|
|
245820
|
+
path105.join(editorPluginDir, "types.ts"),
|
|
245821
|
+
path105.join(editorPluginDir, "style.scss")
|
|
245846
245822
|
]));
|
|
245847
245823
|
}
|
|
245848
245824
|
function checkWorkspaceEditorPluginConfig(editorPlugin) {
|
|
@@ -245853,7 +245829,7 @@ function checkWorkspaceEditorPluginConfig(editorPlugin) {
|
|
|
245853
245829
|
function checkWorkspaceEditorPluginBootstrap(projectDir, packageName, phpPrefix) {
|
|
245854
245830
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245855
245831
|
if (!fs41.existsSync(bootstrapPath)) {
|
|
245856
|
-
return createDoctorCheck("Editor plugin bootstrap", "fail", `Missing ${
|
|
245832
|
+
return createDoctorCheck("Editor plugin bootstrap", "fail", `Missing ${path105.basename(bootstrapPath)}`);
|
|
245857
245833
|
}
|
|
245858
245834
|
const source = fs41.readFileSync(bootstrapPath, "utf8");
|
|
245859
245835
|
const enqueueFunctionName = `${phpPrefix}_enqueue_editor_plugins_editor`;
|
|
@@ -245866,13 +245842,13 @@ function checkWorkspaceEditorPluginBootstrap(projectDir, packageName, phpPrefix)
|
|
|
245866
245842
|
}
|
|
245867
245843
|
function checkWorkspaceEditorPluginIndex(projectDir, editorPlugins) {
|
|
245868
245844
|
const indexRelativePath = [
|
|
245869
|
-
|
|
245870
|
-
|
|
245871
|
-
].find((relativePath) => fs41.existsSync(
|
|
245845
|
+
path105.join("src", "editor-plugins", "index.ts"),
|
|
245846
|
+
path105.join("src", "editor-plugins", "index.js")
|
|
245847
|
+
].find((relativePath) => fs41.existsSync(path105.join(projectDir, relativePath)));
|
|
245872
245848
|
if (!indexRelativePath) {
|
|
245873
245849
|
return createDoctorCheck("Editor plugins index", "fail", "Missing src/editor-plugins/index.ts or src/editor-plugins/index.js");
|
|
245874
245850
|
}
|
|
245875
|
-
const indexPath =
|
|
245851
|
+
const indexPath = path105.join(projectDir, indexRelativePath);
|
|
245876
245852
|
const source = fs41.readFileSync(indexPath, "utf8");
|
|
245877
245853
|
const missingImports = editorPlugins.filter((editorPlugin) => {
|
|
245878
245854
|
const importPattern = new RegExp(`['"\`]\\./${escapeRegex2(editorPlugin.slug)}(?:/[^'"\`]*)?['"\`]`, "u");
|
|
@@ -245899,7 +245875,7 @@ var init_cli_doctor_workspace_features_editor_plugins = __esm(() => {
|
|
|
245899
245875
|
|
|
245900
245876
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-post-meta.ts
|
|
245901
245877
|
import fs42 from "fs";
|
|
245902
|
-
import
|
|
245878
|
+
import path106 from "path";
|
|
245903
245879
|
function getWorkspacePostMetaRequiredFiles(postMeta) {
|
|
245904
245880
|
return Array.from(new Set([
|
|
245905
245881
|
postMeta.phpFile,
|
|
@@ -245921,7 +245897,7 @@ function checkWorkspacePostMetaConfig(postMeta) {
|
|
|
245921
245897
|
function checkWorkspacePostMetaBootstrap(projectDir, packageName, phpPrefix) {
|
|
245922
245898
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245923
245899
|
if (!fs42.existsSync(bootstrapPath)) {
|
|
245924
|
-
return createDoctorCheck("Post meta bootstrap", "fail", `Missing ${
|
|
245900
|
+
return createDoctorCheck("Post meta bootstrap", "fail", `Missing ${path106.basename(bootstrapPath)}`);
|
|
245925
245901
|
}
|
|
245926
245902
|
const source = fs42.readFileSync(bootstrapPath, "utf8");
|
|
245927
245903
|
const registerFunctionName = `${phpPrefix}_register_post_meta_contracts`;
|
|
@@ -245931,7 +245907,7 @@ function checkWorkspacePostMetaBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
245931
245907
|
return createDoctorCheck("Post meta bootstrap", hasServerGlob && hasRegisterHook ? "pass" : "fail", hasServerGlob && hasRegisterHook ? "Post meta PHP loader hook is present" : "Missing post meta PHP require glob or init hook");
|
|
245932
245908
|
}
|
|
245933
245909
|
function checkWorkspacePostMetaPhp(projectDir, postMeta) {
|
|
245934
|
-
const phpPath =
|
|
245910
|
+
const phpPath = path106.join(projectDir, postMeta.phpFile);
|
|
245935
245911
|
if (!fs42.existsSync(phpPath)) {
|
|
245936
245912
|
return createDoctorCheck(`Post meta PHP ${postMeta.slug}`, "fail", `Missing ${postMeta.phpFile}`);
|
|
245937
245913
|
}
|
|
@@ -245962,7 +245938,7 @@ var init_cli_doctor_workspace_features_post_meta = __esm(() => {
|
|
|
245962
245938
|
|
|
245963
245939
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-rest.ts
|
|
245964
245940
|
import fs43 from "fs";
|
|
245965
|
-
import
|
|
245941
|
+
import path107 from "path";
|
|
245966
245942
|
function isManualRestResource(restResource) {
|
|
245967
245943
|
return restResource.mode === "manual";
|
|
245968
245944
|
}
|
|
@@ -245976,7 +245952,7 @@ function getWorkspaceRestResourceRequiredFiles(restResource) {
|
|
|
245976
245952
|
schemaNames.add("response");
|
|
245977
245953
|
return Array.from(new Set([
|
|
245978
245954
|
restResource.apiFile,
|
|
245979
|
-
...Array.from(schemaNames, (schemaName) =>
|
|
245955
|
+
...Array.from(schemaNames, (schemaName) => path107.join(path107.dirname(restResource.typesFile), "api-schemas", `${schemaName}.schema.json`)),
|
|
245980
245956
|
restResource.clientFile,
|
|
245981
245957
|
restResource.openApiFile,
|
|
245982
245958
|
restResource.typesFile,
|
|
@@ -246006,7 +245982,7 @@ function getWorkspaceRestResourceRequiredFiles(restResource) {
|
|
|
246006
245982
|
}
|
|
246007
245983
|
return Array.from(new Set([
|
|
246008
245984
|
restResource.apiFile,
|
|
246009
|
-
...Array.from(schemaNames, (schemaName) =>
|
|
245985
|
+
...Array.from(schemaNames, (schemaName) => path107.join(path107.dirname(restResource.typesFile), "api-schemas", `${schemaName}.schema.json`)),
|
|
246010
245986
|
restResource.clientFile,
|
|
246011
245987
|
...restResource.dataFile ? [restResource.dataFile] : [],
|
|
246012
245988
|
restResource.openApiFile,
|
|
@@ -246031,7 +246007,7 @@ function checkWorkspaceRestResourceConfig(restResource) {
|
|
|
246031
246007
|
function checkWorkspaceRestResourceBootstrap(projectDir, packageName, phpPrefix) {
|
|
246032
246008
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
246033
246009
|
if (!fs43.existsSync(bootstrapPath)) {
|
|
246034
|
-
return createDoctorCheck("REST resource bootstrap", "fail", `Missing ${
|
|
246010
|
+
return createDoctorCheck("REST resource bootstrap", "fail", `Missing ${path107.basename(bootstrapPath)}`);
|
|
246035
246011
|
}
|
|
246036
246012
|
const source = fs43.readFileSync(bootstrapPath, "utf8");
|
|
246037
246013
|
const registerFunctionName = `${phpPrefix}_register_rest_resources`;
|
|
@@ -246077,14 +246053,14 @@ var init_cli_doctor_workspace_features = __esm(() => {
|
|
|
246077
246053
|
});
|
|
246078
246054
|
|
|
246079
246055
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-package.ts
|
|
246080
|
-
import
|
|
246056
|
+
import path108 from "path";
|
|
246081
246057
|
async function prepareWorkspacePackageDoctorSnapshot(workspace, packageJson) {
|
|
246082
246058
|
const packageName = packageJson.name;
|
|
246083
246059
|
const bootstrapRelativePath = getWorkspaceBootstrapRelativePath(typeof packageName === "string" && packageName.length > 0 ? packageName : workspace.packageName);
|
|
246084
|
-
const migrationConfigRelativePath =
|
|
246060
|
+
const migrationConfigRelativePath = path108.join("src", "migrations", "config.ts");
|
|
246085
246061
|
const [bootstrapExists, migrationConfigExists] = await Promise.all([
|
|
246086
|
-
pathExists(
|
|
246087
|
-
pathExists(
|
|
246062
|
+
pathExists(path108.join(workspace.projectDir, bootstrapRelativePath)),
|
|
246063
|
+
pathExists(path108.join(workspace.projectDir, migrationConfigRelativePath))
|
|
246088
246064
|
]);
|
|
246089
246065
|
return {
|
|
246090
246066
|
bootstrapExists,
|
|
@@ -246314,9 +246290,9 @@ var init_cli_doctor = __esm(() => {
|
|
|
246314
246290
|
|
|
246315
246291
|
// ../wp-typia-project-tools/src/runtime/cli-init-package-json.ts
|
|
246316
246292
|
import fs44 from "fs";
|
|
246317
|
-
import
|
|
246293
|
+
import path109 from "path";
|
|
246318
246294
|
function readProjectPackageJson(projectDir) {
|
|
246319
|
-
const packageJsonPath =
|
|
246295
|
+
const packageJsonPath = path109.join(projectDir, "package.json");
|
|
246320
246296
|
if (!fs44.existsSync(packageJsonPath)) {
|
|
246321
246297
|
return null;
|
|
246322
246298
|
}
|
|
@@ -246333,13 +246309,13 @@ function inferInitPackageManager(projectDir, packageJson) {
|
|
|
246333
246309
|
if (packageJson?.packageManager) {
|
|
246334
246310
|
return parseWorkspacePackageManagerId(packageJson.packageManager);
|
|
246335
246311
|
}
|
|
246336
|
-
if (fs44.existsSync(
|
|
246312
|
+
if (fs44.existsSync(path109.join(projectDir, "bun.lock")) || fs44.existsSync(path109.join(projectDir, "bun.lockb"))) {
|
|
246337
246313
|
return "bun";
|
|
246338
246314
|
}
|
|
246339
|
-
if (fs44.existsSync(
|
|
246315
|
+
if (fs44.existsSync(path109.join(projectDir, "pnpm-lock.yaml"))) {
|
|
246340
246316
|
return "pnpm";
|
|
246341
246317
|
}
|
|
246342
|
-
if (fs44.existsSync(
|
|
246318
|
+
if (fs44.existsSync(path109.join(projectDir, "yarn.lock")) || fs44.existsSync(path109.join(projectDir, ".yarnrc.yml"))) {
|
|
246343
246319
|
return "yarn";
|
|
246344
246320
|
}
|
|
246345
246321
|
return "npm";
|
|
@@ -246426,10 +246402,10 @@ function hasExistingWpTypiaProjectSurface(projectDir, packageJson) {
|
|
|
246426
246402
|
const scripts = packageJson?.scripts ?? {};
|
|
246427
246403
|
const hasSyncSurface = typeof scripts.sync === "string" || typeof scripts["sync-types"] === "string";
|
|
246428
246404
|
const hasHelperFiles = [
|
|
246429
|
-
|
|
246430
|
-
|
|
246431
|
-
|
|
246432
|
-
].every((relativePath) => fs44.existsSync(
|
|
246405
|
+
path109.join("scripts", "block-config.ts"),
|
|
246406
|
+
path109.join("scripts", "sync-project.ts"),
|
|
246407
|
+
path109.join("scripts", "sync-types-to-block-json.ts")
|
|
246408
|
+
].every((relativePath) => fs44.existsSync(path109.join(projectDir, relativePath)));
|
|
246433
246409
|
const hasRuntimeDeps = typeof getExistingDependencyVersion(packageJson, "@wp-typia/block-runtime") === "string" && typeof getExistingDependencyVersion(packageJson, "@wp-typia/block-types") === "string";
|
|
246434
246410
|
return hasSyncSurface && hasHelperFiles && hasRuntimeDeps;
|
|
246435
246411
|
}
|
|
@@ -246571,19 +246547,19 @@ var SUPPORTED_RETROFIT_LAYOUT_NOTE = "Supported retrofit layouts currently mirro
|
|
|
246571
246547
|
|
|
246572
246548
|
// ../wp-typia-project-tools/src/runtime/cli-init-plan.ts
|
|
246573
246549
|
import fs45 from "fs";
|
|
246574
|
-
import
|
|
246550
|
+
import path110 from "path";
|
|
246575
246551
|
import { analyzeSourceTypes } from "@wp-typia/block-runtime/metadata-parser";
|
|
246576
246552
|
function normalizeRelativePath2(value2) {
|
|
246577
246553
|
return value2.replace(/\\/gu, "/");
|
|
246578
246554
|
}
|
|
246579
246555
|
function buildGeneratedArtifactPaths(blockJsonFile, manifestFile) {
|
|
246580
|
-
const manifestDir =
|
|
246556
|
+
const manifestDir = path110.dirname(manifestFile);
|
|
246581
246557
|
const artifactPaths = [
|
|
246582
246558
|
blockJsonFile,
|
|
246583
246559
|
manifestFile,
|
|
246584
|
-
|
|
246585
|
-
|
|
246586
|
-
|
|
246560
|
+
path110.join(manifestDir, "typia.schema.json"),
|
|
246561
|
+
path110.join(manifestDir, "typia-validator.php"),
|
|
246562
|
+
path110.join(manifestDir, "typia.openapi.json")
|
|
246587
246563
|
];
|
|
246588
246564
|
return Array.from(new Set(artifactPaths.map((filePath) => normalizeRelativePath2(filePath))));
|
|
246589
246565
|
}
|
|
@@ -246604,7 +246580,7 @@ function isObjectLikeSourceType(projectDir, typesFile, sourceTypeName) {
|
|
|
246604
246580
|
return analyzedTypes[sourceTypeName]?.kind === "object";
|
|
246605
246581
|
}
|
|
246606
246582
|
function inferRetrofitAttributeTypeName(projectDir, block) {
|
|
246607
|
-
const typesPath =
|
|
246583
|
+
const typesPath = path110.join(projectDir, block.typesFile);
|
|
246608
246584
|
const typesSource = fs45.readFileSync(typesPath, "utf8");
|
|
246609
246585
|
const blockNameSegments = block.blockName.split("/");
|
|
246610
246586
|
const slug = blockNameSegments[blockNameSegments.length - 1] ?? block.key;
|
|
@@ -246697,17 +246673,17 @@ function buildPlannedFiles(projectDir, layoutKind) {
|
|
|
246697
246673
|
}
|
|
246698
246674
|
return [
|
|
246699
246675
|
{
|
|
246700
|
-
action: fs45.existsSync(
|
|
246676
|
+
action: fs45.existsSync(path110.join(projectDir, "scripts", "block-config.ts")) ? "update" : "add",
|
|
246701
246677
|
path: "scripts/block-config.ts",
|
|
246702
246678
|
purpose: "Declare the current retrofit block targets so sync-types can regenerate metadata from the existing TypeScript source of truth."
|
|
246703
246679
|
},
|
|
246704
246680
|
{
|
|
246705
|
-
action: fs45.existsSync(
|
|
246681
|
+
action: fs45.existsSync(path110.join(projectDir, "scripts", "sync-types-to-block-json.ts")) ? "update" : "add",
|
|
246706
246682
|
path: "scripts/sync-types-to-block-json.ts",
|
|
246707
246683
|
purpose: "Generate block.json and Typia metadata artifacts from the current TypeScript source of truth."
|
|
246708
246684
|
},
|
|
246709
246685
|
{
|
|
246710
|
-
action: fs45.existsSync(
|
|
246686
|
+
action: fs45.existsSync(path110.join(projectDir, "scripts", "sync-project.ts")) ? "update" : "add",
|
|
246711
246687
|
path: "scripts/sync-project.ts",
|
|
246712
246688
|
purpose: "Provide one shared sync entrypoint that can grow into sync-rest or workspace-aware refresh steps later."
|
|
246713
246689
|
}
|
|
@@ -246748,7 +246724,7 @@ function createRetrofitPlan(options) {
|
|
|
246748
246724
|
};
|
|
246749
246725
|
}
|
|
246750
246726
|
function getInitPlan(projectDir, options = {}) {
|
|
246751
|
-
const resolvedProjectDir =
|
|
246727
|
+
const resolvedProjectDir = path110.resolve(projectDir);
|
|
246752
246728
|
const packageJson = readProjectPackageJson(resolvedProjectDir);
|
|
246753
246729
|
const packageManager = resolveInitPackageManager(resolvedProjectDir, packageJson, options.packageManager);
|
|
246754
246730
|
const workspace = tryResolveWorkspaceProject(resolvedProjectDir);
|
|
@@ -246784,7 +246760,7 @@ function getInitPlan(projectDir, options = {}) {
|
|
|
246784
246760
|
status: "already-initialized"
|
|
246785
246761
|
});
|
|
246786
246762
|
}
|
|
246787
|
-
const projectName = typeof packageJson?.name === "string" && packageJson.name.length > 0 ? packageJson.name :
|
|
246763
|
+
const projectName = typeof packageJson?.name === "string" && packageJson.name.length > 0 ? packageJson.name : path110.basename(resolvedProjectDir);
|
|
246788
246764
|
const layout = buildInitLayoutDetails(resolvedProjectDir);
|
|
246789
246765
|
const dependencyChanges = buildDependencyChanges(packageJson);
|
|
246790
246766
|
const scriptChanges = buildScriptChanges(packageJson, packageManager);
|
|
@@ -246838,7 +246814,7 @@ var init_cli_init_plan = __esm(() => {
|
|
|
246838
246814
|
});
|
|
246839
246815
|
|
|
246840
246816
|
// ../wp-typia-project-tools/src/runtime/cli-init-templates.ts
|
|
246841
|
-
import
|
|
246817
|
+
import path111 from "path";
|
|
246842
246818
|
function buildRetrofitBlockConfigEntry(target) {
|
|
246843
246819
|
return [
|
|
246844
246820
|
"\t{",
|
|
@@ -247066,9 +247042,9 @@ main().catch( ( error ) => {
|
|
|
247066
247042
|
}
|
|
247067
247043
|
function buildRetrofitHelperFiles(blockTargets) {
|
|
247068
247044
|
return {
|
|
247069
|
-
[
|
|
247070
|
-
[
|
|
247071
|
-
[
|
|
247045
|
+
[path111.join("scripts", "block-config.ts")]: buildRetrofitBlockConfigSource(blockTargets),
|
|
247046
|
+
[path111.join("scripts", "sync-project.ts")]: buildRetrofitSyncProjectScriptSource(),
|
|
247047
|
+
[path111.join("scripts", "sync-types-to-block-json.ts")]: buildRetrofitSyncTypesScriptSource()
|
|
247072
247048
|
};
|
|
247073
247049
|
}
|
|
247074
247050
|
var init_cli_init_templates = __esm(() => {
|
|
@@ -247079,9 +247055,9 @@ var init_cli_init_templates = __esm(() => {
|
|
|
247079
247055
|
// ../wp-typia-project-tools/src/runtime/cli-init-apply.ts
|
|
247080
247056
|
import fs46 from "fs";
|
|
247081
247057
|
import { promises as fsp44 } from "fs";
|
|
247082
|
-
import
|
|
247058
|
+
import path112 from "path";
|
|
247083
247059
|
async function createRetrofitMutationSnapshot(projectDir, filePaths) {
|
|
247084
|
-
const scriptsDir =
|
|
247060
|
+
const scriptsDir = path112.join(projectDir, "scripts");
|
|
247085
247061
|
const scriptsDirExisted = fs46.existsSync(scriptsDir);
|
|
247086
247062
|
const fileSources = await snapshotWorkspaceFiles(filePaths);
|
|
247087
247063
|
const targetPaths = fileSources.filter((entry) => entry.source === null).map((entry) => entry.filePath);
|
|
@@ -247096,11 +247072,11 @@ async function createRetrofitMutationSnapshot(projectDir, filePaths) {
|
|
|
247096
247072
|
}
|
|
247097
247073
|
async function writeRetrofitFiles(options) {
|
|
247098
247074
|
const helperFiles = buildRetrofitHelperFiles(options.blockTargets);
|
|
247099
|
-
const scriptsDir =
|
|
247075
|
+
const scriptsDir = path112.join(options.projectDir, "scripts");
|
|
247100
247076
|
await fsp44.mkdir(scriptsDir, { recursive: true });
|
|
247101
|
-
await fsp44.writeFile(
|
|
247077
|
+
await fsp44.writeFile(path112.join(options.projectDir, "package.json"), buildProjectPackageJsonSource(options.packageJson), "utf8");
|
|
247102
247078
|
for (const [relativePath, source] of Object.entries(helperFiles)) {
|
|
247103
|
-
await fsp44.writeFile(
|
|
247079
|
+
await fsp44.writeFile(path112.join(options.projectDir, relativePath), source, "utf8");
|
|
247104
247080
|
}
|
|
247105
247081
|
}
|
|
247106
247082
|
function buildApplyFailureError(error48) {
|
|
@@ -247134,8 +247110,8 @@ async function applyInitPlan(projectDir, options = {}) {
|
|
|
247134
247110
|
});
|
|
247135
247111
|
const helperFiles = buildRetrofitHelperFiles(previewPlan.blockTargets);
|
|
247136
247112
|
const filePaths = [
|
|
247137
|
-
|
|
247138
|
-
...Object.keys(helperFiles).map((relativePath) =>
|
|
247113
|
+
path112.join(previewPlan.projectDir, "package.json"),
|
|
247114
|
+
...Object.keys(helperFiles).map((relativePath) => path112.join(previewPlan.projectDir, relativePath))
|
|
247139
247115
|
];
|
|
247140
247116
|
const mutationSnapshot = await createRetrofitMutationSnapshot(previewPlan.projectDir, filePaths);
|
|
247141
247117
|
try {
|
|
@@ -300361,7 +300337,9 @@ var PATTERN_CATALOG_VISIBLE_FIELDS = [
|
|
|
300361
300337
|
"name",
|
|
300362
300338
|
"scope",
|
|
300363
300339
|
"section-role",
|
|
300364
|
-
"catalog-title"
|
|
300340
|
+
"catalog-title",
|
|
300341
|
+
"tags",
|
|
300342
|
+
"thumbnail-url"
|
|
300365
300343
|
];
|
|
300366
300344
|
var NAME_SOURCE_VISIBLE_FIELDS = [
|
|
300367
300345
|
"kind",
|
|
@@ -301064,7 +301042,7 @@ var patternAddKindEntry = defineAddKindRegistryEntry({
|
|
|
301064
301042
|
title: "Added workspace pattern"
|
|
301065
301043
|
},
|
|
301066
301044
|
description: "Add a PHP block pattern shell",
|
|
301067
|
-
hiddenStringSubmitFields: ["tag"
|
|
301045
|
+
hiddenStringSubmitFields: ["tag"],
|
|
301068
301046
|
nameLabel: "Pattern name",
|
|
301069
301047
|
async prepareExecution(context) {
|
|
301070
301048
|
const name2 = requireAddKindName(context, PATTERN_MISSING_NAME_MESSAGE);
|
|
@@ -301894,7 +301872,7 @@ function buildStructuredInitSuccessPayload(plan) {
|
|
|
301894
301872
|
// package.json
|
|
301895
301873
|
var package_default2 = {
|
|
301896
301874
|
name: "wp-typia",
|
|
301897
|
-
version: "0.24.
|
|
301875
|
+
version: "0.24.3",
|
|
301898
301876
|
description: "Canonical CLI package for wp-typia scaffolding and project workflows",
|
|
301899
301877
|
packageManager: "bun@1.3.11",
|
|
301900
301878
|
type: "module",
|
|
@@ -301964,7 +301942,7 @@ var package_default2 = {
|
|
|
301964
301942
|
"@bunli/tui": "0.6.0",
|
|
301965
301943
|
"@bunli/utils": "0.6.0",
|
|
301966
301944
|
"@wp-typia/api-client": "^0.4.5",
|
|
301967
|
-
"@wp-typia/project-tools": "0.24.
|
|
301945
|
+
"@wp-typia/project-tools": "0.24.3",
|
|
301968
301946
|
"better-result": "^2.7.0",
|
|
301969
301947
|
react: "^19.2.5",
|
|
301970
301948
|
"react-dom": "^19.2.5",
|
|
@@ -302441,12 +302419,12 @@ async function executeDoctorCommand(cwd, options = {}) {
|
|
|
302441
302419
|
}
|
|
302442
302420
|
}
|
|
302443
302421
|
// src/runtime-bridge-init.ts
|
|
302444
|
-
import
|
|
302422
|
+
import path113 from "path";
|
|
302445
302423
|
var loadCliInitRuntime = () => Promise.resolve().then(() => (init_cli_init(), exports_cli_init));
|
|
302446
302424
|
async function executeInitCommand({ apply, cwd, packageManager, projectDir }, options = {}) {
|
|
302447
302425
|
try {
|
|
302448
302426
|
const { runInitCommand: runInitCommand2 } = await loadCliInitRuntime();
|
|
302449
|
-
const resolvedProjectDir = projectDir ?
|
|
302427
|
+
const resolvedProjectDir = projectDir ? path113.resolve(cwd, projectDir) : cwd;
|
|
302450
302428
|
const plan = await runInitCommand2({
|
|
302451
302429
|
apply,
|
|
302452
302430
|
packageManager,
|
|
@@ -302564,7 +302542,7 @@ init_cli_diagnostics();
|
|
|
302564
302542
|
init_package_managers();
|
|
302565
302543
|
import { spawnSync as spawnSync3 } from "child_process";
|
|
302566
302544
|
import fs47 from "fs";
|
|
302567
|
-
import
|
|
302545
|
+
import path114 from "path";
|
|
302568
302546
|
var SYNC_INSTALL_MARKERS = [
|
|
302569
302547
|
"node_modules",
|
|
302570
302548
|
".pnp.cjs",
|
|
@@ -302594,7 +302572,7 @@ function readSyncPackageJson(packageJsonPath) {
|
|
|
302594
302572
|
}
|
|
302595
302573
|
}
|
|
302596
302574
|
function resolveSyncProjectContext(cwd) {
|
|
302597
|
-
const packageJsonPath =
|
|
302575
|
+
const packageJsonPath = path114.join(cwd, "package.json");
|
|
302598
302576
|
if (!fs47.existsSync(packageJsonPath)) {
|
|
302599
302577
|
throw getSyncRootError(cwd);
|
|
302600
302578
|
}
|
|
@@ -302629,12 +302607,12 @@ function resolveSyncProjectContext(cwd) {
|
|
|
302629
302607
|
};
|
|
302630
302608
|
}
|
|
302631
302609
|
function findInstalledDependencyMarkerDir(projectDir) {
|
|
302632
|
-
let currentDir =
|
|
302610
|
+
let currentDir = path114.resolve(projectDir);
|
|
302633
302611
|
while (true) {
|
|
302634
|
-
if (SYNC_INSTALL_MARKERS.some((marker) => fs47.existsSync(
|
|
302612
|
+
if (SYNC_INSTALL_MARKERS.some((marker) => fs47.existsSync(path114.join(currentDir, marker)))) {
|
|
302635
302613
|
return currentDir;
|
|
302636
302614
|
}
|
|
302637
|
-
const parentDir =
|
|
302615
|
+
const parentDir = path114.dirname(currentDir);
|
|
302638
302616
|
if (parentDir === currentDir) {
|
|
302639
302617
|
return null;
|
|
302640
302618
|
}
|
|
@@ -303443,7 +303421,7 @@ init_cli_diagnostics();
|
|
|
303443
303421
|
|
|
303444
303422
|
// src/mcp.ts
|
|
303445
303423
|
import fs48 from "fs/promises";
|
|
303446
|
-
import
|
|
303424
|
+
import path115 from "path";
|
|
303447
303425
|
|
|
303448
303426
|
// ../../node_modules/.bun/@bunli+plugin-mcp@0.2.5+ef72ce197b058209/node_modules/@bunli/plugin-mcp/src/errors.ts
|
|
303449
303427
|
class SchemaConversionError extends TaggedError("SchemaConversionError")() {
|
|
@@ -303978,7 +303956,7 @@ function getErrorCauseOptions(error48) {
|
|
|
303978
303956
|
return error48 instanceof Error ? { cause: error48 } : undefined;
|
|
303979
303957
|
}
|
|
303980
303958
|
async function readSchemaSource(cwd, source) {
|
|
303981
|
-
const schemaPath =
|
|
303959
|
+
const schemaPath = path115.resolve(cwd, source.path);
|
|
303982
303960
|
const raw = await fs48.readFile(schemaPath, "utf8");
|
|
303983
303961
|
let parsed;
|
|
303984
303962
|
try {
|
|
@@ -304000,7 +303978,7 @@ async function readSchemaSource(cwd, source) {
|
|
|
304000
303978
|
async function loadMcpToolGroups(cwd, schemaSources) {
|
|
304001
303979
|
return Promise.all(schemaSources.map((source) => readSchemaSource(cwd, source)));
|
|
304002
303980
|
}
|
|
304003
|
-
async function syncMcpSchemas(cwd, schemaSources, outputDir =
|
|
303981
|
+
async function syncMcpSchemas(cwd, schemaSources, outputDir = path115.join(cwd, ".bunli", "mcp")) {
|
|
304004
303982
|
const groups = await loadMcpToolGroups(cwd, schemaSources);
|
|
304005
303983
|
const result = await generateMCPTypes({
|
|
304006
303984
|
outputDir,
|
|
@@ -304023,7 +304001,7 @@ async function syncMcpSchemas(cwd, schemaSources, outputDir = path111.join(cwd,
|
|
|
304023
304001
|
}
|
|
304024
304002
|
}
|
|
304025
304003
|
await fs48.mkdir(outputDir, { recursive: true });
|
|
304026
|
-
await fs48.writeFile(
|
|
304004
|
+
await fs48.writeFile(path115.join(outputDir, "registry.json"), `${JSON.stringify(registry2, null, 2)}
|
|
304027
304005
|
`, "utf8");
|
|
304028
304006
|
return {
|
|
304029
304007
|
commandCount: registry2.reduce((count, group) => count + group.tools.length, 0),
|
|
@@ -304352,4 +304330,4 @@ export {
|
|
|
304352
304330
|
cli
|
|
304353
304331
|
};
|
|
304354
304332
|
|
|
304355
|
-
//# debugId=
|
|
304333
|
+
//# debugId=2AB06C2166C7F45664756E2164756E21
|