wp-typia 0.24.2 → 0.24.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 +382 -296
- package/dist-bunli/{cli-6mr6vja7.js → cli-368d4cgy.js} +8 -4
- package/dist-bunli/{cli-vxd8eyax.js → cli-377p86mf.js} +1 -1
- package/dist-bunli/{cli-wfvf3tv1.js → cli-84c7wff4.js} +1 -1
- package/dist-bunli/{cli-add-r4c15g7g.js → cli-add-qjd3ba8j.js} +21 -10
- 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-y3g7e9rb.js} +110 -15
- package/dist-bunli/{migrations-zhd03hvy.js → migrations-3vngdy51.js} +2 -2
- package/dist-bunli/node-cli.js +110 -11
- package/package.json +2 -2
|
@@ -239228,13 +239228,23 @@ var init_cli_add_workspace_binding_source_source_emitters = __esm(() => {
|
|
|
239228
239228
|
});
|
|
239229
239229
|
|
|
239230
239230
|
// ../wp-typia-project-tools/src/runtime/block-targets.ts
|
|
239231
|
-
function
|
|
239231
|
+
function resolveFullBlockNameDiagnostics(diagnostics) {
|
|
239232
|
+
if (typeof diagnostics !== "string") {
|
|
239233
|
+
return diagnostics;
|
|
239234
|
+
}
|
|
239235
|
+
return {
|
|
239236
|
+
empty: () => `\`${diagnostics}\` requires a block name.`,
|
|
239237
|
+
invalidFormat: () => `\`${diagnostics}\` must use <namespace/block-slug> format.`
|
|
239238
|
+
};
|
|
239239
|
+
}
|
|
239240
|
+
function assertFullBlockName(blockName, diagnostics) {
|
|
239241
|
+
const messages = resolveFullBlockNameDiagnostics(diagnostics);
|
|
239232
239242
|
const trimmed = blockName.trim();
|
|
239233
239243
|
if (!trimmed) {
|
|
239234
|
-
throw new Error(
|
|
239244
|
+
throw new Error(messages.empty());
|
|
239235
239245
|
}
|
|
239236
239246
|
if (!FULL_BLOCK_NAME_PATTERN.test(trimmed)) {
|
|
239237
|
-
throw new Error(
|
|
239247
|
+
throw new Error(messages.invalidFormat());
|
|
239238
239248
|
}
|
|
239239
239249
|
return trimmed;
|
|
239240
239250
|
}
|
|
@@ -241523,10 +241533,11 @@ async function writeCoreVariationRegistry(projectDir, targetBlockName, textDomai
|
|
|
241523
241533
|
async function runAddCoreVariationCommand({
|
|
241524
241534
|
cwd = process.cwd(),
|
|
241525
241535
|
targetBlockName,
|
|
241536
|
+
targetBlockNameDiagnostics = "core-variation target",
|
|
241526
241537
|
variationName
|
|
241527
241538
|
}) {
|
|
241528
241539
|
const workspace = resolveWorkspaceProject(cwd);
|
|
241529
|
-
const resolvedTargetBlockName = assertFullBlockName(targetBlockName,
|
|
241540
|
+
const resolvedTargetBlockName = assertFullBlockName(targetBlockName, targetBlockNameDiagnostics);
|
|
241530
241541
|
const variationSlug = assertValidGeneratedSlug("Core variation name", normalizeBlockSlug(variationName), CORE_VARIATION_USAGE);
|
|
241531
241542
|
const unknownCoreTargetWarning = getUnknownCoreVariationTargetWarning(resolvedTargetBlockName);
|
|
241532
241543
|
assertCoreVariationSlugIsNotRegistryIndex(variationSlug);
|
|
@@ -244163,13 +244174,7 @@ var init_cli_add = __esm(() => {
|
|
|
244163
244174
|
init_workspace_inventory();
|
|
244164
244175
|
});
|
|
244165
244176
|
|
|
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
|
-
});
|
|
244177
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-files.ts
|
|
244173
244178
|
import { promises as fsp43 } from "fs";
|
|
244174
244179
|
import path91 from "path";
|
|
244175
244180
|
async function listRelativeProjectFiles(rootDir) {
|
|
@@ -244197,58 +244202,43 @@ async function assertDryRunTargetDirectoryReady(projectDir, allowExistingDir) {
|
|
|
244197
244202
|
throw new Error(formatNonEmptyTargetDirectoryError(projectDir));
|
|
244198
244203
|
}
|
|
244199
244204
|
}
|
|
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
|
-
|
|
244205
|
+
async function readGeneratedPackageScripts(projectDir) {
|
|
244206
|
+
try {
|
|
244207
|
+
const parsedPackageJson = await readJsonFile(path91.join(projectDir, "package.json"), {
|
|
244208
|
+
context: "generated package manifest"
|
|
244209
|
+
});
|
|
244210
|
+
const scripts = parsedPackageJson.scripts && typeof parsedPackageJson.scripts === "object" && !Array.isArray(parsedPackageJson.scripts) ? parsedPackageJson.scripts : {};
|
|
244211
|
+
return Object.entries(scripts).filter(([, value2]) => typeof value2 === "string").map(([scriptName]) => scriptName);
|
|
244212
|
+
} catch {
|
|
244213
|
+
return;
|
|
244214
|
+
}
|
|
244215
|
+
}
|
|
244216
|
+
var init_cli_scaffold_files = __esm(() => {
|
|
244217
|
+
init_scaffold_bootstrap();
|
|
244218
|
+
init_fs_async();
|
|
244219
|
+
init_json_utils();
|
|
244220
|
+
});
|
|
244221
|
+
|
|
244222
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-emission.ts
|
|
244223
|
+
import path92 from "path";
|
|
244224
|
+
async function emitScaffoldProject(options) {
|
|
244225
|
+
return scaffoldProject(options);
|
|
244226
|
+
}
|
|
244227
|
+
async function buildScaffoldDryRunPlan(options) {
|
|
244228
|
+
await assertDryRunTargetDirectoryReady(options.projectDir, options.allowExistingDir);
|
|
244223
244229
|
const { path: tempRoot, cleanup } = await createManagedTempRoot("wp-typia-scaffold-plan-");
|
|
244224
|
-
const previewProjectDir =
|
|
244230
|
+
const previewProjectDir = path92.join(tempRoot, "preview-project");
|
|
244225
244231
|
try {
|
|
244226
|
-
const result = await
|
|
244232
|
+
const result = await emitScaffoldProject({
|
|
244233
|
+
...options,
|
|
244227
244234
|
allowExistingDir: false,
|
|
244228
|
-
alternateRenderTargets,
|
|
244229
|
-
answers,
|
|
244230
|
-
cwd,
|
|
244231
|
-
dataStorageMode,
|
|
244232
|
-
externalLayerId,
|
|
244233
|
-
externalLayerSource,
|
|
244234
|
-
externalLayerSourceLabel,
|
|
244235
|
-
installDependencies,
|
|
244236
244235
|
noInstall: true,
|
|
244237
|
-
|
|
244238
|
-
packageManager,
|
|
244239
|
-
persistencePolicy,
|
|
244240
|
-
profile,
|
|
244241
|
-
projectDir: previewProjectDir,
|
|
244242
|
-
templateId,
|
|
244243
|
-
variant,
|
|
244244
|
-
withMigrationUi,
|
|
244245
|
-
withTestPreset,
|
|
244246
|
-
withWpEnv
|
|
244236
|
+
projectDir: previewProjectDir
|
|
244247
244237
|
});
|
|
244248
244238
|
const files = await listRelativeProjectFiles(previewProjectDir);
|
|
244249
244239
|
return {
|
|
244250
244240
|
plan: {
|
|
244251
|
-
dependencyInstall: noInstall ? "skipped-by-flag" : "would-install",
|
|
244241
|
+
dependencyInstall: options.noInstall ? "skipped-by-flag" : "would-install",
|
|
244252
244242
|
files
|
|
244253
244243
|
},
|
|
244254
244244
|
result
|
|
@@ -244257,19 +244247,77 @@ async function buildScaffoldDryRunPlan({
|
|
|
244257
244247
|
await cleanup();
|
|
244258
244248
|
}
|
|
244259
244249
|
}
|
|
244250
|
+
var init_cli_scaffold_emission = __esm(() => {
|
|
244251
|
+
init_cli_scaffold_files();
|
|
244252
|
+
init_scaffold();
|
|
244253
|
+
init_temp_roots();
|
|
244254
|
+
});
|
|
244255
|
+
|
|
244256
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-output.ts
|
|
244257
|
+
import path93 from "path";
|
|
244258
|
+
function quoteShellValue(value2) {
|
|
244259
|
+
if (!value2.startsWith("-") && /^[A-Za-z0-9._/@:-]+(?:\/[A-Za-z0-9._@:-]+)*$/.test(value2)) {
|
|
244260
|
+
return value2;
|
|
244261
|
+
}
|
|
244262
|
+
return `'${value2.replace(/'/g, `'"'"'`)}'`;
|
|
244263
|
+
}
|
|
244264
|
+
function getNextSteps({
|
|
244265
|
+
projectInput,
|
|
244266
|
+
projectDir,
|
|
244267
|
+
packageManager,
|
|
244268
|
+
noInstall,
|
|
244269
|
+
templateId
|
|
244270
|
+
}) {
|
|
244271
|
+
const cdTarget = path93.isAbsolute(projectInput) ? projectDir : projectInput;
|
|
244272
|
+
const steps = [`cd ${quoteShellValue(cdTarget)}`];
|
|
244273
|
+
if (noInstall) {
|
|
244274
|
+
steps.push(formatInstallCommand(packageManager));
|
|
244275
|
+
}
|
|
244276
|
+
steps.push(formatRunScript(packageManager, getPrimaryDevelopmentScript(templateId)));
|
|
244277
|
+
return steps;
|
|
244278
|
+
}
|
|
244279
|
+
function getOptionalOnboarding({
|
|
244280
|
+
availableScripts,
|
|
244281
|
+
packageManager,
|
|
244282
|
+
templateId,
|
|
244283
|
+
compoundPersistenceEnabled = false
|
|
244284
|
+
}) {
|
|
244285
|
+
return {
|
|
244286
|
+
note: getOptionalOnboardingNote(packageManager, templateId, {
|
|
244287
|
+
availableScripts,
|
|
244288
|
+
compoundPersistenceEnabled
|
|
244289
|
+
}),
|
|
244290
|
+
shortNote: getOptionalOnboardingShortNote(packageManager, templateId, {
|
|
244291
|
+
availableScripts,
|
|
244292
|
+
compoundPersistenceEnabled
|
|
244293
|
+
}),
|
|
244294
|
+
steps: getOptionalOnboardingSteps(packageManager, templateId, {
|
|
244295
|
+
availableScripts,
|
|
244296
|
+
compoundPersistenceEnabled
|
|
244297
|
+
})
|
|
244298
|
+
};
|
|
244299
|
+
}
|
|
244300
|
+
var init_cli_scaffold_output = __esm(() => {
|
|
244301
|
+
init_package_managers();
|
|
244302
|
+
init_scaffold_onboarding();
|
|
244303
|
+
init_local_dev_presets();
|
|
244304
|
+
});
|
|
244305
|
+
|
|
244306
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold-validation.ts
|
|
244307
|
+
import path94 from "path";
|
|
244260
244308
|
function validateCreateProjectInput(projectInput) {
|
|
244261
244309
|
const normalizedProjectInput = projectInput.trim();
|
|
244262
244310
|
if (normalizedProjectInput.length === 0) {
|
|
244263
244311
|
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
244312
|
}
|
|
244265
|
-
const normalizedProjectPath =
|
|
244313
|
+
const normalizedProjectPath = path94.normalize(normalizedProjectInput).replace(/[\\/]+$/u, "") || path94.normalize(normalizedProjectInput);
|
|
244266
244314
|
if (normalizedProjectPath === "." || normalizedProjectPath === "..") {
|
|
244267
244315
|
throw new Error("`wp-typia create` requires a new project directory. Use an explicit child directory instead of `.` or `..`.");
|
|
244268
244316
|
}
|
|
244269
244317
|
}
|
|
244270
244318
|
function collectProjectDirectoryWarnings(projectDir) {
|
|
244271
244319
|
const warnings = [];
|
|
244272
|
-
const projectName =
|
|
244320
|
+
const projectName = path94.basename(projectDir);
|
|
244273
244321
|
if (/\s/u.test(projectName)) {
|
|
244274
244322
|
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
244323
|
}
|
|
@@ -244378,7 +244426,7 @@ async function resolveOptionalSelection({
|
|
|
244378
244426
|
if (!shouldResolve) {
|
|
244379
244427
|
return;
|
|
244380
244428
|
}
|
|
244381
|
-
if (explicitValue) {
|
|
244429
|
+
if (explicitValue !== undefined) {
|
|
244382
244430
|
return parseSelectableValue(label, explicitValue, isValue, allowedValues);
|
|
244383
244431
|
}
|
|
244384
244432
|
if (yes) {
|
|
@@ -244411,48 +244459,21 @@ async function resolveOptionalBooleanFlag({
|
|
|
244411
244459
|
}
|
|
244412
244460
|
return defaultValue;
|
|
244413
244461
|
}
|
|
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
|
-
}
|
|
244462
|
+
var init_cli_scaffold_validation = __esm(() => {
|
|
244463
|
+
init_alternate_render_targets();
|
|
244464
|
+
init_compound_inner_blocks();
|
|
244465
|
+
init_cli_validation();
|
|
244466
|
+
init_template_registry();
|
|
244467
|
+
});
|
|
244468
|
+
|
|
244469
|
+
// ../wp-typia-project-tools/src/runtime/cli-scaffold.ts
|
|
244470
|
+
var exports_cli_scaffold = {};
|
|
244471
|
+
__export(exports_cli_scaffold, {
|
|
244472
|
+
runScaffoldFlow: () => runScaffoldFlow,
|
|
244473
|
+
getOptionalOnboarding: () => getOptionalOnboarding,
|
|
244474
|
+
getNextSteps: () => getNextSteps
|
|
244475
|
+
});
|
|
244476
|
+
import path95 from "path";
|
|
244456
244477
|
async function runScaffoldFlow({
|
|
244457
244478
|
projectInput,
|
|
244458
244479
|
cwd = process.cwd(),
|
|
@@ -244574,8 +244595,8 @@ async function runScaffoldFlow({
|
|
|
244574
244595
|
select: selectWithMigrationUi,
|
|
244575
244596
|
yes
|
|
244576
244597
|
});
|
|
244577
|
-
const projectDir =
|
|
244578
|
-
const projectName =
|
|
244598
|
+
const projectDir = path95.resolve(cwd, projectInput);
|
|
244599
|
+
const projectName = path95.basename(projectDir);
|
|
244579
244600
|
const answers = await collectScaffoldAnswers({
|
|
244580
244601
|
dataStorageMode: resolvedDataStorage,
|
|
244581
244602
|
namespace,
|
|
@@ -244591,7 +244612,7 @@ async function runScaffoldFlow({
|
|
|
244591
244612
|
if (resolvedTemplateId === "compound" && resolvedInnerBlocksPreset) {
|
|
244592
244613
|
answers.compoundInnerBlocksPreset = resolvedInnerBlocksPreset;
|
|
244593
244614
|
}
|
|
244594
|
-
const
|
|
244615
|
+
const emissionOptions = {
|
|
244595
244616
|
allowExistingDir,
|
|
244596
244617
|
alternateRenderTargets,
|
|
244597
244618
|
answers,
|
|
@@ -244612,43 +244633,12 @@ async function runScaffoldFlow({
|
|
|
244612
244633
|
withMigrationUi: resolvedWithMigrationUi,
|
|
244613
244634
|
withTestPreset: resolvedWithTestPreset,
|
|
244614
244635
|
withWpEnv: resolvedWithWpEnv
|
|
244615
|
-
}
|
|
244636
|
+
};
|
|
244637
|
+
const resolvedResult = dryRun ? await buildScaffoldDryRunPlan(emissionOptions) : {
|
|
244616
244638
|
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
|
-
})
|
|
244639
|
+
result: await emitScaffoldProject(emissionOptions)
|
|
244639
244640
|
};
|
|
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
|
-
}
|
|
244641
|
+
const availableScripts = dryRun ? undefined : await readGeneratedPackageScripts(projectDir);
|
|
244652
244642
|
return {
|
|
244653
244643
|
dryRun,
|
|
244654
244644
|
optionalOnboarding: getOptionalOnboarding({
|
|
@@ -244687,19 +244677,16 @@ async function runScaffoldFlow({
|
|
|
244687
244677
|
}
|
|
244688
244678
|
var init_cli_scaffold = __esm(() => {
|
|
244689
244679
|
init_scaffold();
|
|
244690
|
-
init_alternate_render_targets();
|
|
244691
244680
|
init_compound_inner_blocks();
|
|
244692
244681
|
init_scaffold_template_variable_groups();
|
|
244693
|
-
|
|
244694
|
-
|
|
244695
|
-
|
|
244696
|
-
|
|
244697
|
-
init_scaffold_bootstrap();
|
|
244698
|
-
init_fs_async();
|
|
244699
|
-
init_json_utils();
|
|
244682
|
+
init_cli_scaffold_emission();
|
|
244683
|
+
init_cli_scaffold_files();
|
|
244684
|
+
init_cli_scaffold_output();
|
|
244685
|
+
init_cli_scaffold_validation();
|
|
244700
244686
|
init_template_registry();
|
|
244701
244687
|
init_external_layer_selection();
|
|
244702
244688
|
init_cli_validation();
|
|
244689
|
+
init_cli_scaffold_output();
|
|
244703
244690
|
});
|
|
244704
244691
|
|
|
244705
244692
|
// ../wp-typia-project-tools/src/runtime/cli-templates.ts
|
|
@@ -244861,7 +244848,7 @@ var init_cli_templates = __esm(() => {
|
|
|
244861
244848
|
|
|
244862
244849
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-shared.ts
|
|
244863
244850
|
import fs32 from "fs";
|
|
244864
|
-
import
|
|
244851
|
+
import path96 from "path";
|
|
244865
244852
|
function createDoctorCheck(label, status, detail, code) {
|
|
244866
244853
|
return code ? { code, detail, label, status } : { detail, label, status };
|
|
244867
244854
|
}
|
|
@@ -244872,10 +244859,10 @@ function getWorkspaceBootstrapRelativePath(packageName) {
|
|
|
244872
244859
|
return `${packageName.split("/").pop() ?? packageName}.php`;
|
|
244873
244860
|
}
|
|
244874
244861
|
function resolveWorkspaceBootstrapPath(projectDir, packageName) {
|
|
244875
|
-
return
|
|
244862
|
+
return path96.join(projectDir, getWorkspaceBootstrapRelativePath(packageName));
|
|
244876
244863
|
}
|
|
244877
244864
|
function checkExistingFiles(projectDir, label, filePaths) {
|
|
244878
|
-
const missing = filePaths.filter((filePath) => typeof filePath === "string").filter((filePath) => !fs32.existsSync(
|
|
244865
|
+
const missing = filePaths.filter((filePath) => typeof filePath === "string").filter((filePath) => !fs32.existsSync(path96.join(projectDir, filePath)));
|
|
244879
244866
|
return createDoctorCheck(label, missing.length === 0 ? "pass" : "fail", missing.length === 0 ? "All referenced files exist" : `Missing: ${missing.join(", ")}`);
|
|
244880
244867
|
}
|
|
244881
244868
|
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 +244882,7 @@ import { execFileSync as execFileSync3 } from "child_process";
|
|
|
244895
244882
|
import { access, constants as fsConstants, rm as rm2, writeFile as writeFile6 } from "fs/promises";
|
|
244896
244883
|
import fs33 from "fs";
|
|
244897
244884
|
import os5 from "os";
|
|
244898
|
-
import
|
|
244885
|
+
import path97 from "path";
|
|
244899
244886
|
function readCommandVersion(command, args = ["--version"]) {
|
|
244900
244887
|
try {
|
|
244901
244888
|
return execFileSync3(command, args, {
|
|
@@ -244919,7 +244906,7 @@ async function checkWritableDirectory(directory) {
|
|
|
244919
244906
|
}
|
|
244920
244907
|
}
|
|
244921
244908
|
async function checkTempDirectory() {
|
|
244922
|
-
const tempFile =
|
|
244909
|
+
const tempFile = path97.join(os5.tmpdir(), `wp-typia-${Date.now()}.tmp`);
|
|
244923
244910
|
try {
|
|
244924
244911
|
await writeFile6(tempFile, "ok", "utf8");
|
|
244925
244912
|
await rm2(tempFile, { force: true });
|
|
@@ -244933,7 +244920,7 @@ function getTemplateDoctorChecks() {
|
|
|
244933
244920
|
for (const template of listTemplates()) {
|
|
244934
244921
|
if (!isBuiltInTemplateId(template.id)) {
|
|
244935
244922
|
const templateDirExists = fs33.existsSync(template.templateDir);
|
|
244936
|
-
const hasAssets2 = templateDirExists && fs33.existsSync(
|
|
244923
|
+
const hasAssets2 = templateDirExists && fs33.existsSync(path97.join(template.templateDir, "package.json.mustache"));
|
|
244937
244924
|
checks3.push({
|
|
244938
244925
|
status: !templateDirExists || hasAssets2 ? "pass" : "fail",
|
|
244939
244926
|
label: `Template ${template.id}`,
|
|
@@ -244958,7 +244945,7 @@ function getTemplateDoctorChecks() {
|
|
|
244958
244945
|
])) : getBuiltInTemplateLayerDirs(builtInTemplateId);
|
|
244959
244946
|
const missingRequiredLayer = layerDirs.some((layerDir) => !fs33.existsSync(layerDir) && !isOmittableBuiltInTemplateLayerDir(builtInTemplateId, layerDir));
|
|
244960
244947
|
const existingLayerDirs = layerDirs.filter((layerDir) => fs33.existsSync(layerDir));
|
|
244961
|
-
const hasAssets = !missingRequiredLayer && existingLayerDirs.some((layerDir) => fs33.existsSync(
|
|
244948
|
+
const hasAssets = !missingRequiredLayer && existingLayerDirs.some((layerDir) => fs33.existsSync(path97.join(layerDir, "package.json.mustache"))) && existingLayerDirs.some((layerDir) => fs33.existsSync(path97.join(layerDir, "src")));
|
|
244962
244949
|
checks3.push({
|
|
244963
244950
|
status: hasAssets ? "pass" : "fail",
|
|
244964
244951
|
label: `Template ${template.id}`,
|
|
@@ -244990,12 +244977,12 @@ var init_cli_doctor_environment = __esm(() => {
|
|
|
244990
244977
|
|
|
244991
244978
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-bindings.ts
|
|
244992
244979
|
import fs34 from "fs";
|
|
244993
|
-
import
|
|
244980
|
+
import path98 from "path";
|
|
244994
244981
|
import { parseScaffoldBlockMetadata as parseScaffoldBlockMetadata2 } from "@wp-typia/block-runtime/blocks";
|
|
244995
244982
|
function checkWorkspaceBindingBootstrap(projectDir, packageName) {
|
|
244996
244983
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
244997
244984
|
if (!fs34.existsSync(bootstrapPath)) {
|
|
244998
|
-
return createDoctorCheck("Binding bootstrap", "fail", `Missing ${
|
|
244985
|
+
return createDoctorCheck("Binding bootstrap", "fail", `Missing ${path98.basename(bootstrapPath)}`);
|
|
244999
244986
|
}
|
|
245000
244987
|
const source = fs34.readFileSync(bootstrapPath, "utf8");
|
|
245001
244988
|
const hasServerGlob = source.includes(WORKSPACE_BINDING_SERVER_GLOB);
|
|
@@ -245005,11 +244992,11 @@ function checkWorkspaceBindingBootstrap(projectDir, packageName) {
|
|
|
245005
244992
|
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
244993
|
}
|
|
245007
244994
|
function checkWorkspaceBindingSourcesIndex(projectDir, bindingSources) {
|
|
245008
|
-
const indexRelativePath = [
|
|
244995
|
+
const indexRelativePath = [path98.join("src", "bindings", "index.ts"), path98.join("src", "bindings", "index.js")].find((relativePath) => fs34.existsSync(path98.join(projectDir, relativePath)));
|
|
245009
244996
|
if (!indexRelativePath) {
|
|
245010
244997
|
return createDoctorCheck("Binding sources index", "fail", "Missing src/bindings/index.ts or src/bindings/index.js");
|
|
245011
244998
|
}
|
|
245012
|
-
const indexPath =
|
|
244999
|
+
const indexPath = path98.join(projectDir, indexRelativePath);
|
|
245013
245000
|
const source = fs34.readFileSync(indexPath, "utf8");
|
|
245014
245001
|
const missingImports = bindingSources.filter((bindingSource) => !source.includes(`./${bindingSource.slug}/editor`));
|
|
245015
245002
|
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 +245013,8 @@ function checkWorkspaceBindingTarget(projectDir, workspace, registeredBlockSlugs
|
|
|
245026
245013
|
if (!registeredBlockSlugs.has(bindingSource.block)) {
|
|
245027
245014
|
return createDoctorCheck(`Binding target ${bindingSource.slug}`, "fail", `Binding target references unknown block "${bindingSource.block}".`);
|
|
245028
245015
|
}
|
|
245029
|
-
const blockJsonRelativePath =
|
|
245030
|
-
const blockJsonPath =
|
|
245016
|
+
const blockJsonRelativePath = path98.join("src", "blocks", bindingSource.block, "block.json");
|
|
245017
|
+
const blockJsonPath = path98.join(projectDir, blockJsonRelativePath);
|
|
245031
245018
|
const issues = [];
|
|
245032
245019
|
try {
|
|
245033
245020
|
const blockJson = parseScaffoldBlockMetadata2(readJsonFileSync(blockJsonPath, {
|
|
@@ -245045,7 +245032,7 @@ function checkWorkspaceBindingTarget(projectDir, workspace, registeredBlockSlugs
|
|
|
245045
245032
|
} catch (error48) {
|
|
245046
245033
|
issues.push(error48 instanceof Error ? `Unable to read ${blockJsonRelativePath}: ${error48.message}` : `Unable to read ${blockJsonRelativePath}.`);
|
|
245047
245034
|
}
|
|
245048
|
-
const serverPath =
|
|
245035
|
+
const serverPath = path98.join(projectDir, bindingSource.serverFile);
|
|
245049
245036
|
if (fs34.existsSync(serverPath)) {
|
|
245050
245037
|
const serverSource = fs34.readFileSync(serverPath, "utf8");
|
|
245051
245038
|
const supportedAttributesFilter = `block_bindings_supported_attributes_${workspace.workspace.namespace}/${bindingSource.block}`;
|
|
@@ -245058,7 +245045,7 @@ function checkWorkspaceBindingTarget(projectDir, workspace, registeredBlockSlugs
|
|
|
245058
245045
|
} else {
|
|
245059
245046
|
issues.push(`Missing ${bindingSource.serverFile}`);
|
|
245060
245047
|
}
|
|
245061
|
-
const editorPath =
|
|
245048
|
+
const editorPath = path98.join(projectDir, bindingSource.editorFile);
|
|
245062
245049
|
if (fs34.existsSync(editorPath)) {
|
|
245063
245050
|
const editorSource = fs34.readFileSync(editorPath, "utf8");
|
|
245064
245051
|
const blockName = `${workspace.workspace.namespace}/${bindingSource.block}`;
|
|
@@ -245098,7 +245085,7 @@ function checkWorkspaceBindingPostMeta(projectDir, inventory, bindingSource) {
|
|
|
245098
245085
|
} catch (error48) {
|
|
245099
245086
|
issues.push(error48 instanceof Error ? error48.message : String(error48));
|
|
245100
245087
|
}
|
|
245101
|
-
const serverPath =
|
|
245088
|
+
const serverPath = path98.join(projectDir, bindingSource.serverFile);
|
|
245102
245089
|
if (fs34.existsSync(serverPath)) {
|
|
245103
245090
|
const serverSource = fs34.readFileSync(serverPath, "utf8");
|
|
245104
245091
|
if (!serverSource.includes("get_post_meta")) {
|
|
@@ -245113,7 +245100,7 @@ function checkWorkspaceBindingPostMeta(projectDir, inventory, bindingSource) {
|
|
|
245113
245100
|
} else {
|
|
245114
245101
|
issues.push(`Missing ${bindingSource.serverFile}`);
|
|
245115
245102
|
}
|
|
245116
|
-
const editorPath =
|
|
245103
|
+
const editorPath = path98.join(projectDir, bindingSource.editorFile);
|
|
245117
245104
|
if (fs34.existsSync(editorPath)) {
|
|
245118
245105
|
const editorSource = fs34.readFileSync(editorPath, "utf8");
|
|
245119
245106
|
if (!editorSource.includes("POST_META_BINDING_FIELDS")) {
|
|
@@ -245161,7 +245148,7 @@ var init_cli_doctor_workspace_bindings = __esm(() => {
|
|
|
245161
245148
|
|
|
245162
245149
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-block-addons.ts
|
|
245163
245150
|
import fs35 from "fs";
|
|
245164
|
-
import
|
|
245151
|
+
import path99 from "path";
|
|
245165
245152
|
function isNestedPatternContentFile(patternFile) {
|
|
245166
245153
|
if (!patternFile) {
|
|
245167
245154
|
return false;
|
|
@@ -245172,7 +245159,7 @@ function isNestedPatternContentFile(patternFile) {
|
|
|
245172
245159
|
function checkWorkspacePatternBootstrap(projectDir, packageName, requiresNestedPatternGlob) {
|
|
245173
245160
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245174
245161
|
if (!fs35.existsSync(bootstrapPath)) {
|
|
245175
|
-
return createDoctorCheck("Pattern bootstrap", "fail", `Missing ${
|
|
245162
|
+
return createDoctorCheck("Pattern bootstrap", "fail", `Missing ${path99.basename(bootstrapPath)}`);
|
|
245176
245163
|
}
|
|
245177
245164
|
const source = fs35.readFileSync(bootstrapPath, "utf8");
|
|
245178
245165
|
const hasCategoryAnchor = source.includes("register_block_pattern_category");
|
|
@@ -245182,9 +245169,9 @@ function checkWorkspacePatternBootstrap(projectDir, packageName, requiresNestedP
|
|
|
245182
245169
|
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
245170
|
}
|
|
245184
245171
|
function checkVariationEntrypoint(projectDir, blockSlug) {
|
|
245185
|
-
const entryPath =
|
|
245172
|
+
const entryPath = path99.join(projectDir, "src", "blocks", blockSlug, "index.tsx");
|
|
245186
245173
|
if (!fs35.existsSync(entryPath)) {
|
|
245187
|
-
return createDoctorCheck(`Variation entrypoint ${blockSlug}`, "fail", `Missing ${
|
|
245174
|
+
return createDoctorCheck(`Variation entrypoint ${blockSlug}`, "fail", `Missing ${path99.relative(projectDir, entryPath)}`);
|
|
245188
245175
|
}
|
|
245189
245176
|
const source = fs35.readFileSync(entryPath, "utf8");
|
|
245190
245177
|
const hasImport = hasUncommentedPattern(source, WORKSPACE_VARIATIONS_IMPORT_PATTERN);
|
|
@@ -245192,9 +245179,9 @@ function checkVariationEntrypoint(projectDir, blockSlug) {
|
|
|
245192
245179
|
return createDoctorCheck(`Variation entrypoint ${blockSlug}`, hasImport && hasCall ? "pass" : "fail", hasImport && hasCall ? "Variations registration hook is present" : "Missing ./variations import or registerWorkspaceVariations() call");
|
|
245193
245180
|
}
|
|
245194
245181
|
function checkBlockStyleEntrypoint(projectDir, blockSlug) {
|
|
245195
|
-
const entryPath =
|
|
245182
|
+
const entryPath = path99.join(projectDir, "src", "blocks", blockSlug, "index.tsx");
|
|
245196
245183
|
if (!fs35.existsSync(entryPath)) {
|
|
245197
|
-
return createDoctorCheck(`Block style entrypoint ${blockSlug}`, "fail", `Missing ${
|
|
245184
|
+
return createDoctorCheck(`Block style entrypoint ${blockSlug}`, "fail", `Missing ${path99.relative(projectDir, entryPath)}`);
|
|
245198
245185
|
}
|
|
245199
245186
|
const source = fs35.readFileSync(entryPath, "utf8");
|
|
245200
245187
|
const hasImport = hasUncommentedPattern(source, WORKSPACE_BLOCK_STYLES_IMPORT_PATTERN);
|
|
@@ -245202,9 +245189,9 @@ function checkBlockStyleEntrypoint(projectDir, blockSlug) {
|
|
|
245202
245189
|
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
245190
|
}
|
|
245204
245191
|
function checkBlockTransformEntrypoint(projectDir, blockSlug) {
|
|
245205
|
-
const entryPath =
|
|
245192
|
+
const entryPath = path99.join(projectDir, "src", "blocks", blockSlug, "index.tsx");
|
|
245206
245193
|
if (!fs35.existsSync(entryPath)) {
|
|
245207
|
-
return createDoctorCheck(`Block transform entrypoint ${blockSlug}`, "fail", `Missing ${
|
|
245194
|
+
return createDoctorCheck(`Block transform entrypoint ${blockSlug}`, "fail", `Missing ${path99.relative(projectDir, entryPath)}`);
|
|
245208
245195
|
}
|
|
245209
245196
|
const source = fs35.readFileSync(entryPath, "utf8");
|
|
245210
245197
|
const hasImport = hasUncommentedPattern(source, WORKSPACE_BLOCK_TRANSFORMS_IMPORT_PATTERN);
|
|
@@ -245247,7 +245234,7 @@ function getWorkspaceBlockAddonDoctorChecks(workspace, inventory, registeredBloc
|
|
|
245247
245234
|
}
|
|
245248
245235
|
for (const blockSlug of blockStyleTargetBlocks) {
|
|
245249
245236
|
checks3.push(checkExistingFiles(workspace.projectDir, `Block style registry ${blockSlug}`, [
|
|
245250
|
-
|
|
245237
|
+
path99.join("src", "blocks", blockSlug, "styles", "index.ts")
|
|
245251
245238
|
]));
|
|
245252
245239
|
checks3.push(checkBlockStyleEntrypoint(workspace.projectDir, blockSlug));
|
|
245253
245240
|
}
|
|
@@ -245263,11 +245250,11 @@ function getWorkspaceBlockAddonDoctorChecks(workspace, inventory, registeredBloc
|
|
|
245263
245250
|
}
|
|
245264
245251
|
for (const blockSlug of blockTransformTargetBlocks) {
|
|
245265
245252
|
checks3.push(checkExistingFiles(workspace.projectDir, `Block transform registry ${blockSlug}`, [
|
|
245266
|
-
|
|
245253
|
+
path99.join("src", "blocks", blockSlug, "transforms", "index.ts")
|
|
245267
245254
|
]));
|
|
245268
245255
|
checks3.push(checkBlockTransformEntrypoint(workspace.projectDir, blockSlug));
|
|
245269
245256
|
}
|
|
245270
|
-
const shouldCheckPatternBootstrap = inventory.patterns.length > 0 || fs35.existsSync(
|
|
245257
|
+
const shouldCheckPatternBootstrap = inventory.patterns.length > 0 || fs35.existsSync(path99.join(workspace.projectDir, "src", "patterns"));
|
|
245271
245258
|
if (shouldCheckPatternBootstrap) {
|
|
245272
245259
|
const requiresNestedPatternGlob = inventory.patterns.some((pattern) => isNestedPatternContentFile(resolvePatternCatalogContentFile(pattern)));
|
|
245273
245260
|
checks3.push(checkWorkspacePatternBootstrap(workspace.projectDir, workspace.packageName, requiresNestedPatternGlob));
|
|
@@ -245299,10 +245286,10 @@ var init_cli_doctor_workspace_block_addons = __esm(() => {
|
|
|
245299
245286
|
|
|
245300
245287
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-block-iframe.ts
|
|
245301
245288
|
import fs36 from "fs";
|
|
245302
|
-
import
|
|
245289
|
+
import path100 from "path";
|
|
245303
245290
|
import { parseScaffoldBlockMetadata as parseScaffoldBlockMetadata3 } from "@wp-typia/block-runtime/blocks";
|
|
245304
245291
|
function normalizePathSeparators(relativePath) {
|
|
245305
|
-
return relativePath.split(
|
|
245292
|
+
return relativePath.split(path100.sep).join("/");
|
|
245306
245293
|
}
|
|
245307
245294
|
function hasRegisteredBlockAsset(value2) {
|
|
245308
245295
|
if (typeof value2 === "string") {
|
|
@@ -245314,8 +245301,8 @@ function hasRegisteredBlockAsset(value2) {
|
|
|
245314
245301
|
return false;
|
|
245315
245302
|
}
|
|
245316
245303
|
function readWorkspaceBlockIframeMetadata(projectDir, blockSlug) {
|
|
245317
|
-
const blockJsonRelativePath =
|
|
245318
|
-
const blockJsonPath =
|
|
245304
|
+
const blockJsonRelativePath = path100.join("src", "blocks", blockSlug, "block.json");
|
|
245305
|
+
const blockJsonPath = path100.join(projectDir, blockJsonRelativePath);
|
|
245319
245306
|
if (!fs36.existsSync(blockJsonPath)) {
|
|
245320
245307
|
return {
|
|
245321
245308
|
blockJsonRelativePath,
|
|
@@ -245342,8 +245329,8 @@ function isWorkspaceBlockEditorSource(relativePath) {
|
|
|
245342
245329
|
return false;
|
|
245343
245330
|
}
|
|
245344
245331
|
const normalizedRelativePath = normalizePathSeparators(relativePath);
|
|
245345
|
-
const normalizedDirName =
|
|
245346
|
-
const normalizedBaseName =
|
|
245332
|
+
const normalizedDirName = path100.posix.dirname(normalizedRelativePath);
|
|
245333
|
+
const normalizedBaseName = path100.posix.basename(normalizedRelativePath, path100.posix.extname(normalizedRelativePath));
|
|
245347
245334
|
if (WORKSPACE_BLOCK_EDITOR_SOURCE_BASENAMES.has(normalizedBaseName)) {
|
|
245348
245335
|
return true;
|
|
245349
245336
|
}
|
|
@@ -245351,11 +245338,11 @@ function isWorkspaceBlockEditorSource(relativePath) {
|
|
|
245351
245338
|
return pathSegments.some((segment) => WORKSPACE_BLOCK_EDITOR_SOURCE_DIRECTORIES.has(segment));
|
|
245352
245339
|
}
|
|
245353
245340
|
function isWorkspaceBlockSaveSource(relativePath) {
|
|
245354
|
-
const normalizedBaseName =
|
|
245341
|
+
const normalizedBaseName = path100.basename(relativePath, path100.extname(relativePath));
|
|
245355
245342
|
return normalizedBaseName === "save";
|
|
245356
245343
|
}
|
|
245357
245344
|
function collectWorkspaceBlockEditorSources(projectDir, blockSlug) {
|
|
245358
|
-
const blockDir =
|
|
245345
|
+
const blockDir = path100.join(projectDir, "src", "blocks", blockSlug);
|
|
245359
245346
|
if (!fs36.existsSync(blockDir)) {
|
|
245360
245347
|
return [];
|
|
245361
245348
|
}
|
|
@@ -245367,7 +245354,7 @@ function collectWorkspaceBlockEditorSources(projectDir, blockSlug) {
|
|
|
245367
245354
|
continue;
|
|
245368
245355
|
}
|
|
245369
245356
|
for (const entry of fs36.readdirSync(currentDir, { withFileTypes: true })) {
|
|
245370
|
-
const absolutePath =
|
|
245357
|
+
const absolutePath = path100.join(currentDir, entry.name);
|
|
245371
245358
|
if (entry.isDirectory()) {
|
|
245372
245359
|
queue.push(absolutePath);
|
|
245373
245360
|
continue;
|
|
@@ -245375,7 +245362,7 @@ function collectWorkspaceBlockEditorSources(projectDir, blockSlug) {
|
|
|
245375
245362
|
if (!entry.isFile()) {
|
|
245376
245363
|
continue;
|
|
245377
245364
|
}
|
|
245378
|
-
const relativePath =
|
|
245365
|
+
const relativePath = path100.relative(projectDir, absolutePath);
|
|
245379
245366
|
if (!isWorkspaceBlockEditorSource(relativePath)) {
|
|
245380
245367
|
continue;
|
|
245381
245368
|
}
|
|
@@ -245448,8 +245435,8 @@ function getWorkspaceBlockIframeCompatibilityChecks(projectDir, blockSlug) {
|
|
|
245448
245435
|
}
|
|
245449
245436
|
const blockJson = metadataResult.document;
|
|
245450
245437
|
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(
|
|
245438
|
+
const blockDir = path100.join(projectDir, "src", "blocks", blockSlug);
|
|
245439
|
+
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
245440
|
const hasRegisteredEditorStyles = hasRegisteredBlockAsset(blockJson.style) || hasRegisteredBlockAsset(blockJson.editorStyle);
|
|
245454
245441
|
const editorSources = collectWorkspaceBlockEditorSources(projectDir, blockSlug);
|
|
245455
245442
|
const editorWrapperSources = editorSources.filter((source) => !isWorkspaceBlockSaveSource(source.relativePath));
|
|
@@ -245501,21 +245488,21 @@ var init_cli_doctor_workspace_block_iframe = __esm(() => {
|
|
|
245501
245488
|
|
|
245502
245489
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-block-metadata.ts
|
|
245503
245490
|
import fs37 from "fs";
|
|
245504
|
-
import
|
|
245491
|
+
import path101 from "path";
|
|
245505
245492
|
import { parseScaffoldBlockMetadata as parseScaffoldBlockMetadata4 } from "@wp-typia/block-runtime/blocks";
|
|
245506
245493
|
function getWorkspaceBlockRequiredFiles(block) {
|
|
245507
|
-
const blockDir =
|
|
245494
|
+
const blockDir = path101.join("src", "blocks", block.slug);
|
|
245508
245495
|
return Array.from(new Set([
|
|
245509
245496
|
block.typesFile,
|
|
245510
245497
|
block.apiTypesFile,
|
|
245511
245498
|
block.openApiFile,
|
|
245512
|
-
|
|
245513
|
-
...WORKSPACE_GENERATED_BLOCK_ARTIFACTS.map((fileName) =>
|
|
245499
|
+
path101.join(blockDir, "index.tsx"),
|
|
245500
|
+
...WORKSPACE_GENERATED_BLOCK_ARTIFACTS.map((fileName) => path101.join(blockDir, fileName))
|
|
245514
245501
|
].filter((filePath) => typeof filePath === "string")));
|
|
245515
245502
|
}
|
|
245516
245503
|
function checkWorkspaceBlockMetadata(projectDir, workspace, block) {
|
|
245517
|
-
const blockJsonRelativePath =
|
|
245518
|
-
const blockJsonPath =
|
|
245504
|
+
const blockJsonRelativePath = path101.join("src", "blocks", block.slug, "block.json");
|
|
245505
|
+
const blockJsonPath = path101.join(projectDir, blockJsonRelativePath);
|
|
245519
245506
|
if (!fs37.existsSync(blockJsonPath)) {
|
|
245520
245507
|
return createDoctorCheck(`Block metadata ${block.slug}`, "fail", `Missing ${blockJsonRelativePath}`);
|
|
245521
245508
|
}
|
|
@@ -245538,8 +245525,8 @@ function checkWorkspaceBlockMetadata(projectDir, workspace, block) {
|
|
|
245538
245525
|
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
245526
|
}
|
|
245540
245527
|
function checkWorkspaceBlockHooks(projectDir, blockSlug) {
|
|
245541
|
-
const blockJsonRelativePath =
|
|
245542
|
-
const blockJsonPath =
|
|
245528
|
+
const blockJsonRelativePath = path101.join("src", "blocks", blockSlug, "block.json");
|
|
245529
|
+
const blockJsonPath = path101.join(projectDir, blockJsonRelativePath);
|
|
245543
245530
|
if (!fs37.existsSync(blockJsonPath)) {
|
|
245544
245531
|
return createDoctorCheck(`Block hooks ${blockSlug}`, "fail", `Missing ${blockJsonRelativePath}`);
|
|
245545
245532
|
}
|
|
@@ -245563,8 +245550,8 @@ function checkWorkspaceBlockHooks(projectDir, blockSlug) {
|
|
|
245563
245550
|
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
245551
|
}
|
|
245565
245552
|
function checkWorkspaceBlockCollectionImport(projectDir, blockSlug) {
|
|
245566
|
-
const entryRelativePath =
|
|
245567
|
-
const entryPath =
|
|
245553
|
+
const entryRelativePath = path101.join("src", "blocks", blockSlug, "index.tsx");
|
|
245554
|
+
const entryPath = path101.join(projectDir, entryRelativePath);
|
|
245568
245555
|
if (!fs37.existsSync(entryPath)) {
|
|
245569
245556
|
return createDoctorCheck(`Block collection ${blockSlug}`, "fail", `Missing ${entryRelativePath}`);
|
|
245570
245557
|
}
|
|
@@ -245607,7 +245594,7 @@ var init_cli_doctor_workspace_blocks = __esm(() => {
|
|
|
245607
245594
|
|
|
245608
245595
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-abilities.ts
|
|
245609
245596
|
import fs38 from "fs";
|
|
245610
|
-
import
|
|
245597
|
+
import path102 from "path";
|
|
245611
245598
|
function getWorkspaceAbilityRequiredFiles(ability) {
|
|
245612
245599
|
return Array.from(new Set([
|
|
245613
245600
|
ability.clientFile,
|
|
@@ -245620,7 +245607,7 @@ function getWorkspaceAbilityRequiredFiles(ability) {
|
|
|
245620
245607
|
]));
|
|
245621
245608
|
}
|
|
245622
245609
|
function checkWorkspaceAbilityConfig(projectDir, ability) {
|
|
245623
|
-
const configPath =
|
|
245610
|
+
const configPath = path102.join(projectDir, ability.configFile);
|
|
245624
245611
|
if (!fs38.existsSync(configPath)) {
|
|
245625
245612
|
return createDoctorCheck(`Ability config ${ability.slug}`, "fail", `Missing ${ability.configFile}`);
|
|
245626
245613
|
}
|
|
@@ -245640,7 +245627,7 @@ function checkWorkspaceAbilityConfig(projectDir, ability) {
|
|
|
245640
245627
|
function checkWorkspaceAbilityBootstrap(projectDir, packageName, phpPrefix) {
|
|
245641
245628
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245642
245629
|
if (!fs38.existsSync(bootstrapPath)) {
|
|
245643
|
-
return createDoctorCheck("Ability bootstrap", "fail", `Missing ${
|
|
245630
|
+
return createDoctorCheck("Ability bootstrap", "fail", `Missing ${path102.basename(bootstrapPath)}`);
|
|
245644
245631
|
}
|
|
245645
245632
|
const source = fs38.readFileSync(bootstrapPath, "utf8");
|
|
245646
245633
|
const loadFunctionName = `${phpPrefix}_load_workflow_abilities`;
|
|
@@ -245659,13 +245646,13 @@ function checkWorkspaceAbilityBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
245659
245646
|
}
|
|
245660
245647
|
function checkWorkspaceAbilityIndex(projectDir, abilities) {
|
|
245661
245648
|
const indexRelativePath = [
|
|
245662
|
-
|
|
245663
|
-
|
|
245664
|
-
].find((relativePath) => fs38.existsSync(
|
|
245649
|
+
path102.join("src", "abilities", "index.ts"),
|
|
245650
|
+
path102.join("src", "abilities", "index.js")
|
|
245651
|
+
].find((relativePath) => fs38.existsSync(path102.join(projectDir, relativePath)));
|
|
245665
245652
|
if (!indexRelativePath) {
|
|
245666
245653
|
return createDoctorCheck("Abilities index", "fail", "Missing src/abilities/index.ts or src/abilities/index.js");
|
|
245667
245654
|
}
|
|
245668
|
-
const indexPath =
|
|
245655
|
+
const indexPath = path102.join(projectDir, indexRelativePath);
|
|
245669
245656
|
const source = fs38.readFileSync(indexPath, "utf8");
|
|
245670
245657
|
const missingExports = abilities.filter((ability) => {
|
|
245671
245658
|
const exportPattern = new RegExp(`^\\s*export\\s+(?:\\*\\s+from|\\{[^}]+\\}\\s+from)\\s+['"\`]\\./${escapeRegex2(ability.slug)}\\/client['"\`]`, "mu");
|
|
@@ -245692,17 +245679,17 @@ var init_cli_doctor_workspace_features_abilities = __esm(() => {
|
|
|
245692
245679
|
|
|
245693
245680
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-admin-views.ts
|
|
245694
245681
|
import fs39 from "fs";
|
|
245695
|
-
import
|
|
245682
|
+
import path103 from "path";
|
|
245696
245683
|
function getWorkspaceAdminViewRequiredFiles(adminView) {
|
|
245697
|
-
const adminViewDir =
|
|
245684
|
+
const adminViewDir = path103.join("src", "admin-views", adminView.slug);
|
|
245698
245685
|
return Array.from(new Set([
|
|
245699
245686
|
adminView.file,
|
|
245700
245687
|
adminView.phpFile,
|
|
245701
|
-
|
|
245702
|
-
|
|
245703
|
-
|
|
245704
|
-
|
|
245705
|
-
|
|
245688
|
+
path103.join(adminViewDir, "Screen.tsx"),
|
|
245689
|
+
path103.join(adminViewDir, "config.ts"),
|
|
245690
|
+
path103.join(adminViewDir, "data.ts"),
|
|
245691
|
+
path103.join(adminViewDir, "style.scss"),
|
|
245692
|
+
path103.join(adminViewDir, "types.ts")
|
|
245706
245693
|
]));
|
|
245707
245694
|
}
|
|
245708
245695
|
function checkWorkspaceAdminViewConfig(adminView, inventory) {
|
|
@@ -245724,7 +245711,7 @@ function checkWorkspaceAdminViewConfig(adminView, inventory) {
|
|
|
245724
245711
|
function checkWorkspaceAdminViewBootstrap(projectDir, packageName, phpPrefix) {
|
|
245725
245712
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245726
245713
|
if (!fs39.existsSync(bootstrapPath)) {
|
|
245727
|
-
return createDoctorCheck("Admin view bootstrap", "fail", `Missing ${
|
|
245714
|
+
return createDoctorCheck("Admin view bootstrap", "fail", `Missing ${path103.basename(bootstrapPath)}`);
|
|
245728
245715
|
}
|
|
245729
245716
|
const source = fs39.readFileSync(bootstrapPath, "utf8");
|
|
245730
245717
|
const loadFunctionName = `${phpPrefix}_load_admin_views`;
|
|
@@ -245735,13 +245722,13 @@ function checkWorkspaceAdminViewBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
245735
245722
|
}
|
|
245736
245723
|
function checkWorkspaceAdminViewIndex(projectDir, adminViews) {
|
|
245737
245724
|
const indexRelativePath = [
|
|
245738
|
-
|
|
245739
|
-
|
|
245740
|
-
].find((relativePath) => fs39.existsSync(
|
|
245725
|
+
path103.join("src", "admin-views", "index.ts"),
|
|
245726
|
+
path103.join("src", "admin-views", "index.js")
|
|
245727
|
+
].find((relativePath) => fs39.existsSync(path103.join(projectDir, relativePath)));
|
|
245741
245728
|
if (!indexRelativePath) {
|
|
245742
245729
|
return createDoctorCheck("Admin views index", "fail", "Missing src/admin-views/index.ts or src/admin-views/index.js");
|
|
245743
245730
|
}
|
|
245744
|
-
const indexPath =
|
|
245731
|
+
const indexPath = path103.join(projectDir, indexRelativePath);
|
|
245745
245732
|
const source = fs39.readFileSync(indexPath, "utf8");
|
|
245746
245733
|
const missingImports = adminViews.filter((adminView) => {
|
|
245747
245734
|
const importPattern = new RegExp(`['"\`]\\./${escapeRegex2(adminView.slug)}(?:/[^'"\`]*)?['"\`]`, "u");
|
|
@@ -245750,7 +245737,7 @@ function checkWorkspaceAdminViewIndex(projectDir, adminViews) {
|
|
|
245750
245737
|
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
245738
|
}
|
|
245752
245739
|
function checkWorkspaceAdminViewPhp(projectDir, adminView) {
|
|
245753
|
-
const phpPath =
|
|
245740
|
+
const phpPath = path103.join(projectDir, adminView.phpFile);
|
|
245754
245741
|
if (!fs39.existsSync(phpPath)) {
|
|
245755
245742
|
return createDoctorCheck(`Admin view PHP ${adminView.slug}`, "fail", `Missing ${adminView.phpFile}`);
|
|
245756
245743
|
}
|
|
@@ -245783,14 +245770,14 @@ var init_cli_doctor_workspace_features_admin_views = __esm(() => {
|
|
|
245783
245770
|
|
|
245784
245771
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-ai.ts
|
|
245785
245772
|
import fs40 from "fs";
|
|
245786
|
-
import
|
|
245773
|
+
import path104 from "path";
|
|
245787
245774
|
function getWorkspaceAiFeatureRequiredFiles(aiFeature) {
|
|
245788
245775
|
return Array.from(new Set([
|
|
245789
245776
|
aiFeature.aiSchemaFile,
|
|
245790
245777
|
aiFeature.apiFile,
|
|
245791
|
-
|
|
245792
|
-
|
|
245793
|
-
|
|
245778
|
+
path104.join(path104.dirname(aiFeature.typesFile), "api-schemas", "feature-request.schema.json"),
|
|
245779
|
+
path104.join(path104.dirname(aiFeature.typesFile), "api-schemas", "feature-response.schema.json"),
|
|
245780
|
+
path104.join(path104.dirname(aiFeature.typesFile), "api-schemas", "feature-result.schema.json"),
|
|
245794
245781
|
aiFeature.clientFile,
|
|
245795
245782
|
aiFeature.dataFile,
|
|
245796
245783
|
aiFeature.openApiFile,
|
|
@@ -245806,7 +245793,7 @@ function checkWorkspaceAiFeatureConfig(aiFeature) {
|
|
|
245806
245793
|
function checkWorkspaceAiFeatureBootstrap(projectDir, packageName, phpPrefix) {
|
|
245807
245794
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245808
245795
|
if (!fs40.existsSync(bootstrapPath)) {
|
|
245809
|
-
return createDoctorCheck("AI feature bootstrap", "fail", `Missing ${
|
|
245796
|
+
return createDoctorCheck("AI feature bootstrap", "fail", `Missing ${path104.basename(bootstrapPath)}`);
|
|
245810
245797
|
}
|
|
245811
245798
|
const source = fs40.readFileSync(bootstrapPath, "utf8");
|
|
245812
245799
|
const registerFunctionName = `${phpPrefix}_register_ai_features`;
|
|
@@ -245833,16 +245820,16 @@ var init_cli_doctor_workspace_features_ai = __esm(() => {
|
|
|
245833
245820
|
|
|
245834
245821
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-editor-plugins.ts
|
|
245835
245822
|
import fs41 from "fs";
|
|
245836
|
-
import
|
|
245823
|
+
import path105 from "path";
|
|
245837
245824
|
function getWorkspaceEditorPluginRequiredFiles(editorPlugin) {
|
|
245838
|
-
const editorPluginDir =
|
|
245839
|
-
const surfaceFile = editorPlugin.slot === "PluginSidebar" ?
|
|
245825
|
+
const editorPluginDir = path105.join("src", "editor-plugins", editorPlugin.slug);
|
|
245826
|
+
const surfaceFile = editorPlugin.slot === "PluginSidebar" ? path105.join(editorPluginDir, "Sidebar.tsx") : path105.join(editorPluginDir, "Surface.tsx");
|
|
245840
245827
|
return Array.from(new Set([
|
|
245841
245828
|
editorPlugin.file,
|
|
245842
245829
|
surfaceFile,
|
|
245843
|
-
|
|
245844
|
-
|
|
245845
|
-
|
|
245830
|
+
path105.join(editorPluginDir, "data.ts"),
|
|
245831
|
+
path105.join(editorPluginDir, "types.ts"),
|
|
245832
|
+
path105.join(editorPluginDir, "style.scss")
|
|
245846
245833
|
]));
|
|
245847
245834
|
}
|
|
245848
245835
|
function checkWorkspaceEditorPluginConfig(editorPlugin) {
|
|
@@ -245853,7 +245840,7 @@ function checkWorkspaceEditorPluginConfig(editorPlugin) {
|
|
|
245853
245840
|
function checkWorkspaceEditorPluginBootstrap(projectDir, packageName, phpPrefix) {
|
|
245854
245841
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245855
245842
|
if (!fs41.existsSync(bootstrapPath)) {
|
|
245856
|
-
return createDoctorCheck("Editor plugin bootstrap", "fail", `Missing ${
|
|
245843
|
+
return createDoctorCheck("Editor plugin bootstrap", "fail", `Missing ${path105.basename(bootstrapPath)}`);
|
|
245857
245844
|
}
|
|
245858
245845
|
const source = fs41.readFileSync(bootstrapPath, "utf8");
|
|
245859
245846
|
const enqueueFunctionName = `${phpPrefix}_enqueue_editor_plugins_editor`;
|
|
@@ -245866,13 +245853,13 @@ function checkWorkspaceEditorPluginBootstrap(projectDir, packageName, phpPrefix)
|
|
|
245866
245853
|
}
|
|
245867
245854
|
function checkWorkspaceEditorPluginIndex(projectDir, editorPlugins) {
|
|
245868
245855
|
const indexRelativePath = [
|
|
245869
|
-
|
|
245870
|
-
|
|
245871
|
-
].find((relativePath) => fs41.existsSync(
|
|
245856
|
+
path105.join("src", "editor-plugins", "index.ts"),
|
|
245857
|
+
path105.join("src", "editor-plugins", "index.js")
|
|
245858
|
+
].find((relativePath) => fs41.existsSync(path105.join(projectDir, relativePath)));
|
|
245872
245859
|
if (!indexRelativePath) {
|
|
245873
245860
|
return createDoctorCheck("Editor plugins index", "fail", "Missing src/editor-plugins/index.ts or src/editor-plugins/index.js");
|
|
245874
245861
|
}
|
|
245875
|
-
const indexPath =
|
|
245862
|
+
const indexPath = path105.join(projectDir, indexRelativePath);
|
|
245876
245863
|
const source = fs41.readFileSync(indexPath, "utf8");
|
|
245877
245864
|
const missingImports = editorPlugins.filter((editorPlugin) => {
|
|
245878
245865
|
const importPattern = new RegExp(`['"\`]\\./${escapeRegex2(editorPlugin.slug)}(?:/[^'"\`]*)?['"\`]`, "u");
|
|
@@ -245899,7 +245886,7 @@ var init_cli_doctor_workspace_features_editor_plugins = __esm(() => {
|
|
|
245899
245886
|
|
|
245900
245887
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-post-meta.ts
|
|
245901
245888
|
import fs42 from "fs";
|
|
245902
|
-
import
|
|
245889
|
+
import path106 from "path";
|
|
245903
245890
|
function getWorkspacePostMetaRequiredFiles(postMeta) {
|
|
245904
245891
|
return Array.from(new Set([
|
|
245905
245892
|
postMeta.phpFile,
|
|
@@ -245921,7 +245908,7 @@ function checkWorkspacePostMetaConfig(postMeta) {
|
|
|
245921
245908
|
function checkWorkspacePostMetaBootstrap(projectDir, packageName, phpPrefix) {
|
|
245922
245909
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
245923
245910
|
if (!fs42.existsSync(bootstrapPath)) {
|
|
245924
|
-
return createDoctorCheck("Post meta bootstrap", "fail", `Missing ${
|
|
245911
|
+
return createDoctorCheck("Post meta bootstrap", "fail", `Missing ${path106.basename(bootstrapPath)}`);
|
|
245925
245912
|
}
|
|
245926
245913
|
const source = fs42.readFileSync(bootstrapPath, "utf8");
|
|
245927
245914
|
const registerFunctionName = `${phpPrefix}_register_post_meta_contracts`;
|
|
@@ -245931,7 +245918,7 @@ function checkWorkspacePostMetaBootstrap(projectDir, packageName, phpPrefix) {
|
|
|
245931
245918
|
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
245919
|
}
|
|
245933
245920
|
function checkWorkspacePostMetaPhp(projectDir, postMeta) {
|
|
245934
|
-
const phpPath =
|
|
245921
|
+
const phpPath = path106.join(projectDir, postMeta.phpFile);
|
|
245935
245922
|
if (!fs42.existsSync(phpPath)) {
|
|
245936
245923
|
return createDoctorCheck(`Post meta PHP ${postMeta.slug}`, "fail", `Missing ${postMeta.phpFile}`);
|
|
245937
245924
|
}
|
|
@@ -245962,7 +245949,7 @@ var init_cli_doctor_workspace_features_post_meta = __esm(() => {
|
|
|
245962
245949
|
|
|
245963
245950
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-features-rest.ts
|
|
245964
245951
|
import fs43 from "fs";
|
|
245965
|
-
import
|
|
245952
|
+
import path107 from "path";
|
|
245966
245953
|
function isManualRestResource(restResource) {
|
|
245967
245954
|
return restResource.mode === "manual";
|
|
245968
245955
|
}
|
|
@@ -245976,7 +245963,7 @@ function getWorkspaceRestResourceRequiredFiles(restResource) {
|
|
|
245976
245963
|
schemaNames.add("response");
|
|
245977
245964
|
return Array.from(new Set([
|
|
245978
245965
|
restResource.apiFile,
|
|
245979
|
-
...Array.from(schemaNames, (schemaName) =>
|
|
245966
|
+
...Array.from(schemaNames, (schemaName) => path107.join(path107.dirname(restResource.typesFile), "api-schemas", `${schemaName}.schema.json`)),
|
|
245980
245967
|
restResource.clientFile,
|
|
245981
245968
|
restResource.openApiFile,
|
|
245982
245969
|
restResource.typesFile,
|
|
@@ -246006,7 +245993,7 @@ function getWorkspaceRestResourceRequiredFiles(restResource) {
|
|
|
246006
245993
|
}
|
|
246007
245994
|
return Array.from(new Set([
|
|
246008
245995
|
restResource.apiFile,
|
|
246009
|
-
...Array.from(schemaNames, (schemaName) =>
|
|
245996
|
+
...Array.from(schemaNames, (schemaName) => path107.join(path107.dirname(restResource.typesFile), "api-schemas", `${schemaName}.schema.json`)),
|
|
246010
245997
|
restResource.clientFile,
|
|
246011
245998
|
...restResource.dataFile ? [restResource.dataFile] : [],
|
|
246012
245999
|
restResource.openApiFile,
|
|
@@ -246031,7 +246018,7 @@ function checkWorkspaceRestResourceConfig(restResource) {
|
|
|
246031
246018
|
function checkWorkspaceRestResourceBootstrap(projectDir, packageName, phpPrefix) {
|
|
246032
246019
|
const bootstrapPath = resolveWorkspaceBootstrapPath(projectDir, packageName);
|
|
246033
246020
|
if (!fs43.existsSync(bootstrapPath)) {
|
|
246034
|
-
return createDoctorCheck("REST resource bootstrap", "fail", `Missing ${
|
|
246021
|
+
return createDoctorCheck("REST resource bootstrap", "fail", `Missing ${path107.basename(bootstrapPath)}`);
|
|
246035
246022
|
}
|
|
246036
246023
|
const source = fs43.readFileSync(bootstrapPath, "utf8");
|
|
246037
246024
|
const registerFunctionName = `${phpPrefix}_register_rest_resources`;
|
|
@@ -246077,14 +246064,14 @@ var init_cli_doctor_workspace_features = __esm(() => {
|
|
|
246077
246064
|
});
|
|
246078
246065
|
|
|
246079
246066
|
// ../wp-typia-project-tools/src/runtime/cli-doctor-workspace-package.ts
|
|
246080
|
-
import
|
|
246067
|
+
import path108 from "path";
|
|
246081
246068
|
async function prepareWorkspacePackageDoctorSnapshot(workspace, packageJson) {
|
|
246082
246069
|
const packageName = packageJson.name;
|
|
246083
246070
|
const bootstrapRelativePath = getWorkspaceBootstrapRelativePath(typeof packageName === "string" && packageName.length > 0 ? packageName : workspace.packageName);
|
|
246084
|
-
const migrationConfigRelativePath =
|
|
246071
|
+
const migrationConfigRelativePath = path108.join("src", "migrations", "config.ts");
|
|
246085
246072
|
const [bootstrapExists, migrationConfigExists] = await Promise.all([
|
|
246086
|
-
pathExists(
|
|
246087
|
-
pathExists(
|
|
246073
|
+
pathExists(path108.join(workspace.projectDir, bootstrapRelativePath)),
|
|
246074
|
+
pathExists(path108.join(workspace.projectDir, migrationConfigRelativePath))
|
|
246088
246075
|
]);
|
|
246089
246076
|
return {
|
|
246090
246077
|
bootstrapExists,
|
|
@@ -246314,9 +246301,9 @@ var init_cli_doctor = __esm(() => {
|
|
|
246314
246301
|
|
|
246315
246302
|
// ../wp-typia-project-tools/src/runtime/cli-init-package-json.ts
|
|
246316
246303
|
import fs44 from "fs";
|
|
246317
|
-
import
|
|
246304
|
+
import path109 from "path";
|
|
246318
246305
|
function readProjectPackageJson(projectDir) {
|
|
246319
|
-
const packageJsonPath =
|
|
246306
|
+
const packageJsonPath = path109.join(projectDir, "package.json");
|
|
246320
246307
|
if (!fs44.existsSync(packageJsonPath)) {
|
|
246321
246308
|
return null;
|
|
246322
246309
|
}
|
|
@@ -246333,13 +246320,13 @@ function inferInitPackageManager(projectDir, packageJson) {
|
|
|
246333
246320
|
if (packageJson?.packageManager) {
|
|
246334
246321
|
return parseWorkspacePackageManagerId(packageJson.packageManager);
|
|
246335
246322
|
}
|
|
246336
|
-
if (fs44.existsSync(
|
|
246323
|
+
if (fs44.existsSync(path109.join(projectDir, "bun.lock")) || fs44.existsSync(path109.join(projectDir, "bun.lockb"))) {
|
|
246337
246324
|
return "bun";
|
|
246338
246325
|
}
|
|
246339
|
-
if (fs44.existsSync(
|
|
246326
|
+
if (fs44.existsSync(path109.join(projectDir, "pnpm-lock.yaml"))) {
|
|
246340
246327
|
return "pnpm";
|
|
246341
246328
|
}
|
|
246342
|
-
if (fs44.existsSync(
|
|
246329
|
+
if (fs44.existsSync(path109.join(projectDir, "yarn.lock")) || fs44.existsSync(path109.join(projectDir, ".yarnrc.yml"))) {
|
|
246343
246330
|
return "yarn";
|
|
246344
246331
|
}
|
|
246345
246332
|
return "npm";
|
|
@@ -246426,10 +246413,10 @@ function hasExistingWpTypiaProjectSurface(projectDir, packageJson) {
|
|
|
246426
246413
|
const scripts = packageJson?.scripts ?? {};
|
|
246427
246414
|
const hasSyncSurface = typeof scripts.sync === "string" || typeof scripts["sync-types"] === "string";
|
|
246428
246415
|
const hasHelperFiles = [
|
|
246429
|
-
|
|
246430
|
-
|
|
246431
|
-
|
|
246432
|
-
].every((relativePath) => fs44.existsSync(
|
|
246416
|
+
path109.join("scripts", "block-config.ts"),
|
|
246417
|
+
path109.join("scripts", "sync-project.ts"),
|
|
246418
|
+
path109.join("scripts", "sync-types-to-block-json.ts")
|
|
246419
|
+
].every((relativePath) => fs44.existsSync(path109.join(projectDir, relativePath)));
|
|
246433
246420
|
const hasRuntimeDeps = typeof getExistingDependencyVersion(packageJson, "@wp-typia/block-runtime") === "string" && typeof getExistingDependencyVersion(packageJson, "@wp-typia/block-types") === "string";
|
|
246434
246421
|
return hasSyncSurface && hasHelperFiles && hasRuntimeDeps;
|
|
246435
246422
|
}
|
|
@@ -246571,19 +246558,19 @@ var SUPPORTED_RETROFIT_LAYOUT_NOTE = "Supported retrofit layouts currently mirro
|
|
|
246571
246558
|
|
|
246572
246559
|
// ../wp-typia-project-tools/src/runtime/cli-init-plan.ts
|
|
246573
246560
|
import fs45 from "fs";
|
|
246574
|
-
import
|
|
246561
|
+
import path110 from "path";
|
|
246575
246562
|
import { analyzeSourceTypes } from "@wp-typia/block-runtime/metadata-parser";
|
|
246576
246563
|
function normalizeRelativePath2(value2) {
|
|
246577
246564
|
return value2.replace(/\\/gu, "/");
|
|
246578
246565
|
}
|
|
246579
246566
|
function buildGeneratedArtifactPaths(blockJsonFile, manifestFile) {
|
|
246580
|
-
const manifestDir =
|
|
246567
|
+
const manifestDir = path110.dirname(manifestFile);
|
|
246581
246568
|
const artifactPaths = [
|
|
246582
246569
|
blockJsonFile,
|
|
246583
246570
|
manifestFile,
|
|
246584
|
-
|
|
246585
|
-
|
|
246586
|
-
|
|
246571
|
+
path110.join(manifestDir, "typia.schema.json"),
|
|
246572
|
+
path110.join(manifestDir, "typia-validator.php"),
|
|
246573
|
+
path110.join(manifestDir, "typia.openapi.json")
|
|
246587
246574
|
];
|
|
246588
246575
|
return Array.from(new Set(artifactPaths.map((filePath) => normalizeRelativePath2(filePath))));
|
|
246589
246576
|
}
|
|
@@ -246604,7 +246591,7 @@ function isObjectLikeSourceType(projectDir, typesFile, sourceTypeName) {
|
|
|
246604
246591
|
return analyzedTypes[sourceTypeName]?.kind === "object";
|
|
246605
246592
|
}
|
|
246606
246593
|
function inferRetrofitAttributeTypeName(projectDir, block) {
|
|
246607
|
-
const typesPath =
|
|
246594
|
+
const typesPath = path110.join(projectDir, block.typesFile);
|
|
246608
246595
|
const typesSource = fs45.readFileSync(typesPath, "utf8");
|
|
246609
246596
|
const blockNameSegments = block.blockName.split("/");
|
|
246610
246597
|
const slug = blockNameSegments[blockNameSegments.length - 1] ?? block.key;
|
|
@@ -246697,17 +246684,17 @@ function buildPlannedFiles(projectDir, layoutKind) {
|
|
|
246697
246684
|
}
|
|
246698
246685
|
return [
|
|
246699
246686
|
{
|
|
246700
|
-
action: fs45.existsSync(
|
|
246687
|
+
action: fs45.existsSync(path110.join(projectDir, "scripts", "block-config.ts")) ? "update" : "add",
|
|
246701
246688
|
path: "scripts/block-config.ts",
|
|
246702
246689
|
purpose: "Declare the current retrofit block targets so sync-types can regenerate metadata from the existing TypeScript source of truth."
|
|
246703
246690
|
},
|
|
246704
246691
|
{
|
|
246705
|
-
action: fs45.existsSync(
|
|
246692
|
+
action: fs45.existsSync(path110.join(projectDir, "scripts", "sync-types-to-block-json.ts")) ? "update" : "add",
|
|
246706
246693
|
path: "scripts/sync-types-to-block-json.ts",
|
|
246707
246694
|
purpose: "Generate block.json and Typia metadata artifacts from the current TypeScript source of truth."
|
|
246708
246695
|
},
|
|
246709
246696
|
{
|
|
246710
|
-
action: fs45.existsSync(
|
|
246697
|
+
action: fs45.existsSync(path110.join(projectDir, "scripts", "sync-project.ts")) ? "update" : "add",
|
|
246711
246698
|
path: "scripts/sync-project.ts",
|
|
246712
246699
|
purpose: "Provide one shared sync entrypoint that can grow into sync-rest or workspace-aware refresh steps later."
|
|
246713
246700
|
}
|
|
@@ -246748,7 +246735,7 @@ function createRetrofitPlan(options) {
|
|
|
246748
246735
|
};
|
|
246749
246736
|
}
|
|
246750
246737
|
function getInitPlan(projectDir, options = {}) {
|
|
246751
|
-
const resolvedProjectDir =
|
|
246738
|
+
const resolvedProjectDir = path110.resolve(projectDir);
|
|
246752
246739
|
const packageJson = readProjectPackageJson(resolvedProjectDir);
|
|
246753
246740
|
const packageManager = resolveInitPackageManager(resolvedProjectDir, packageJson, options.packageManager);
|
|
246754
246741
|
const workspace = tryResolveWorkspaceProject(resolvedProjectDir);
|
|
@@ -246784,7 +246771,7 @@ function getInitPlan(projectDir, options = {}) {
|
|
|
246784
246771
|
status: "already-initialized"
|
|
246785
246772
|
});
|
|
246786
246773
|
}
|
|
246787
|
-
const projectName = typeof packageJson?.name === "string" && packageJson.name.length > 0 ? packageJson.name :
|
|
246774
|
+
const projectName = typeof packageJson?.name === "string" && packageJson.name.length > 0 ? packageJson.name : path110.basename(resolvedProjectDir);
|
|
246788
246775
|
const layout = buildInitLayoutDetails(resolvedProjectDir);
|
|
246789
246776
|
const dependencyChanges = buildDependencyChanges(packageJson);
|
|
246790
246777
|
const scriptChanges = buildScriptChanges(packageJson, packageManager);
|
|
@@ -246838,7 +246825,7 @@ var init_cli_init_plan = __esm(() => {
|
|
|
246838
246825
|
});
|
|
246839
246826
|
|
|
246840
246827
|
// ../wp-typia-project-tools/src/runtime/cli-init-templates.ts
|
|
246841
|
-
import
|
|
246828
|
+
import path111 from "path";
|
|
246842
246829
|
function buildRetrofitBlockConfigEntry(target) {
|
|
246843
246830
|
return [
|
|
246844
246831
|
"\t{",
|
|
@@ -247066,9 +247053,9 @@ main().catch( ( error ) => {
|
|
|
247066
247053
|
}
|
|
247067
247054
|
function buildRetrofitHelperFiles(blockTargets) {
|
|
247068
247055
|
return {
|
|
247069
|
-
[
|
|
247070
|
-
[
|
|
247071
|
-
[
|
|
247056
|
+
[path111.join("scripts", "block-config.ts")]: buildRetrofitBlockConfigSource(blockTargets),
|
|
247057
|
+
[path111.join("scripts", "sync-project.ts")]: buildRetrofitSyncProjectScriptSource(),
|
|
247058
|
+
[path111.join("scripts", "sync-types-to-block-json.ts")]: buildRetrofitSyncTypesScriptSource()
|
|
247072
247059
|
};
|
|
247073
247060
|
}
|
|
247074
247061
|
var init_cli_init_templates = __esm(() => {
|
|
@@ -247079,9 +247066,9 @@ var init_cli_init_templates = __esm(() => {
|
|
|
247079
247066
|
// ../wp-typia-project-tools/src/runtime/cli-init-apply.ts
|
|
247080
247067
|
import fs46 from "fs";
|
|
247081
247068
|
import { promises as fsp44 } from "fs";
|
|
247082
|
-
import
|
|
247069
|
+
import path112 from "path";
|
|
247083
247070
|
async function createRetrofitMutationSnapshot(projectDir, filePaths) {
|
|
247084
|
-
const scriptsDir =
|
|
247071
|
+
const scriptsDir = path112.join(projectDir, "scripts");
|
|
247085
247072
|
const scriptsDirExisted = fs46.existsSync(scriptsDir);
|
|
247086
247073
|
const fileSources = await snapshotWorkspaceFiles(filePaths);
|
|
247087
247074
|
const targetPaths = fileSources.filter((entry) => entry.source === null).map((entry) => entry.filePath);
|
|
@@ -247096,11 +247083,11 @@ async function createRetrofitMutationSnapshot(projectDir, filePaths) {
|
|
|
247096
247083
|
}
|
|
247097
247084
|
async function writeRetrofitFiles(options) {
|
|
247098
247085
|
const helperFiles = buildRetrofitHelperFiles(options.blockTargets);
|
|
247099
|
-
const scriptsDir =
|
|
247086
|
+
const scriptsDir = path112.join(options.projectDir, "scripts");
|
|
247100
247087
|
await fsp44.mkdir(scriptsDir, { recursive: true });
|
|
247101
|
-
await fsp44.writeFile(
|
|
247088
|
+
await fsp44.writeFile(path112.join(options.projectDir, "package.json"), buildProjectPackageJsonSource(options.packageJson), "utf8");
|
|
247102
247089
|
for (const [relativePath, source] of Object.entries(helperFiles)) {
|
|
247103
|
-
await fsp44.writeFile(
|
|
247090
|
+
await fsp44.writeFile(path112.join(options.projectDir, relativePath), source, "utf8");
|
|
247104
247091
|
}
|
|
247105
247092
|
}
|
|
247106
247093
|
function buildApplyFailureError(error48) {
|
|
@@ -247134,8 +247121,8 @@ async function applyInitPlan(projectDir, options = {}) {
|
|
|
247134
247121
|
});
|
|
247135
247122
|
const helperFiles = buildRetrofitHelperFiles(previewPlan.blockTargets);
|
|
247136
247123
|
const filePaths = [
|
|
247137
|
-
|
|
247138
|
-
...Object.keys(helperFiles).map((relativePath) =>
|
|
247124
|
+
path112.join(previewPlan.projectDir, "package.json"),
|
|
247125
|
+
...Object.keys(helperFiles).map((relativePath) => path112.join(previewPlan.projectDir, relativePath))
|
|
247139
247126
|
];
|
|
247140
247127
|
const mutationSnapshot = await createRetrofitMutationSnapshot(previewPlan.projectDir, filePaths);
|
|
247141
247128
|
try {
|
|
@@ -300167,7 +300154,11 @@ function resolveCommandOptionValues(metadata2, options) {
|
|
|
300167
300154
|
continue;
|
|
300168
300155
|
}
|
|
300169
300156
|
if (descriptor.repeatable && Array.isArray(value2)) {
|
|
300170
|
-
|
|
300157
|
+
if (!value2.every((item) => typeof item === "string")) {
|
|
300158
|
+
resolved[name2] = undefined;
|
|
300159
|
+
continue;
|
|
300160
|
+
}
|
|
300161
|
+
resolved[name2] = options.preserveArrays ? [...value2] : value2.join(",");
|
|
300171
300162
|
continue;
|
|
300172
300163
|
}
|
|
300173
300164
|
resolved[name2] = typeof value2 === "string" ? value2 : undefined;
|
|
@@ -300361,7 +300352,9 @@ var PATTERN_CATALOG_VISIBLE_FIELDS = [
|
|
|
300361
300352
|
"name",
|
|
300362
300353
|
"scope",
|
|
300363
300354
|
"section-role",
|
|
300364
|
-
"catalog-title"
|
|
300355
|
+
"catalog-title",
|
|
300356
|
+
"tags",
|
|
300357
|
+
"thumbnail-url"
|
|
300365
300358
|
];
|
|
300366
300359
|
var NAME_SOURCE_VISIBLE_FIELDS = [
|
|
300367
300360
|
"kind",
|
|
@@ -300834,6 +300827,10 @@ init_cli_diagnostics();
|
|
|
300834
300827
|
var CORE_VARIATION_MISSING_NAME_MESSAGE = "`wp-typia add core-variation` requires <name>. Usage: wp-typia add core-variation <block-name> <name> or wp-typia add core-variation <name> --block <namespace/block>.";
|
|
300835
300828
|
var CORE_VARIATION_MISSING_BLOCK_MESSAGE = "`wp-typia add core-variation` requires <block-name>. Usage: wp-typia add core-variation <block-name> <name> or wp-typia add core-variation <name> --block <namespace/block>.";
|
|
300836
300829
|
var CORE_VARIATION_BLOCK_NAME_PATTERN = /^[^/\s]+\/[^/\s]+$/u;
|
|
300830
|
+
var CORE_VARIATION_POSITIONAL_TARGET_DIAGNOSTICS = {
|
|
300831
|
+
empty: () => "The first positional argument (target block name) requires a block name.",
|
|
300832
|
+
invalidFormat: () => "The first positional argument (target block name) must use <namespace/block-slug> format."
|
|
300833
|
+
};
|
|
300837
300834
|
function formatCoreVariationMissingPositionalNameMessage(blockName) {
|
|
300838
300835
|
return [
|
|
300839
300836
|
`\`wp-typia add core-variation ${blockName}\` is missing <name>.`,
|
|
@@ -300851,6 +300848,7 @@ function resolveCoreVariationInputs(context) {
|
|
|
300851
300848
|
}
|
|
300852
300849
|
return {
|
|
300853
300850
|
targetBlockName: positionalTargetBlockName,
|
|
300851
|
+
targetBlockNameDiagnostics: CORE_VARIATION_POSITIONAL_TARGET_DIAGNOSTICS,
|
|
300854
300852
|
variationName: positionalVariationName
|
|
300855
300853
|
};
|
|
300856
300854
|
}
|
|
@@ -300865,6 +300863,7 @@ function resolveCoreVariationInputs(context) {
|
|
|
300865
300863
|
}
|
|
300866
300864
|
return {
|
|
300867
300865
|
targetBlockName: targetBlockFlag,
|
|
300866
|
+
targetBlockNameDiagnostics: "--block",
|
|
300868
300867
|
variationName
|
|
300869
300868
|
};
|
|
300870
300869
|
}
|
|
@@ -300884,11 +300883,12 @@ var coreVariationAddKindEntry = defineAddKindRegistryEntry({
|
|
|
300884
300883
|
description: "Add an editor-side variation for an existing core or external block",
|
|
300885
300884
|
nameLabel: "Variation name",
|
|
300886
300885
|
async prepareExecution(context) {
|
|
300887
|
-
const { targetBlockName, variationName } = resolveCoreVariationInputs(context);
|
|
300886
|
+
const { targetBlockName, targetBlockNameDiagnostics, variationName } = resolveCoreVariationInputs(context);
|
|
300888
300887
|
return createNamedExecutionPlan(context, {
|
|
300889
300888
|
execute: ({ cwd, name: name2 }) => context.addRuntime.runAddCoreVariationCommand({
|
|
300890
300889
|
cwd,
|
|
300891
300890
|
targetBlockName,
|
|
300891
|
+
targetBlockNameDiagnostics,
|
|
300892
300892
|
variationName: name2
|
|
300893
300893
|
}),
|
|
300894
300894
|
getValues: (result) => ({
|
|
@@ -301064,15 +301064,19 @@ var patternAddKindEntry = defineAddKindRegistryEntry({
|
|
|
301064
301064
|
title: "Added workspace pattern"
|
|
301065
301065
|
},
|
|
301066
301066
|
description: "Add a PHP block pattern shell",
|
|
301067
|
-
hiddenStringSubmitFields: ["tag"
|
|
301067
|
+
hiddenStringSubmitFields: ["tag"],
|
|
301068
301068
|
nameLabel: "Pattern name",
|
|
301069
301069
|
async prepareExecution(context) {
|
|
301070
301070
|
const name2 = requireAddKindName(context, PATTERN_MISSING_NAME_MESSAGE);
|
|
301071
|
+
const rawScope = typeof context.flags.scope === "string" ? context.flags.scope : undefined;
|
|
301072
|
+
const rawSectionRole = typeof context.flags["section-role"] === "string" ? context.flags["section-role"] : undefined;
|
|
301073
|
+
const rawCatalogTitle = typeof context.flags["catalog-title"] === "string" ? context.flags["catalog-title"] : undefined;
|
|
301074
|
+
const rawThumbnailUrl = typeof context.flags["thumbnail-url"] === "string" ? context.flags["thumbnail-url"] : undefined;
|
|
301071
301075
|
const scope = resolvePatternScopeFlag(context);
|
|
301072
301076
|
const sectionRole = resolvePatternSectionRoleFlag(context, scope);
|
|
301073
|
-
const catalogTitle =
|
|
301077
|
+
const catalogTitle = rawCatalogTitle;
|
|
301074
301078
|
const tags = normalizePatternTagFlags(context.flags.tags, context.flags.tag);
|
|
301075
|
-
const thumbnailUrl =
|
|
301079
|
+
const thumbnailUrl = rawThumbnailUrl;
|
|
301076
301080
|
return {
|
|
301077
301081
|
execute: (cwd) => context.addRuntime.runAddPatternCommand({
|
|
301078
301082
|
catalogTitle,
|
|
@@ -301083,6 +301087,13 @@ var patternAddKindEntry = defineAddKindRegistryEntry({
|
|
|
301083
301087
|
tags,
|
|
301084
301088
|
thumbnailUrl
|
|
301085
301089
|
}),
|
|
301090
|
+
getDryRunSummaryLines: (result) => buildPatternCatalogDryRunSummaryLines(result, {
|
|
301091
|
+
rawCatalogTitle,
|
|
301092
|
+
rawScope,
|
|
301093
|
+
rawSectionRole,
|
|
301094
|
+
rawTags: tags,
|
|
301095
|
+
rawThumbnailUrl
|
|
301096
|
+
}),
|
|
301086
301097
|
getValues: (result) => ({
|
|
301087
301098
|
contentFile: result.contentFile,
|
|
301088
301099
|
patternSlug: result.patternSlug,
|
|
@@ -301146,6 +301157,75 @@ function normalizePatternTagFlags(tagsFlag, tagFlag) {
|
|
|
301146
301157
|
];
|
|
301147
301158
|
return tags.length > 0 ? tags : undefined;
|
|
301148
301159
|
}
|
|
301160
|
+
function quoteValue(value2) {
|
|
301161
|
+
return `"${value2}"`;
|
|
301162
|
+
}
|
|
301163
|
+
function formatTags(tags) {
|
|
301164
|
+
return tags.length > 0 ? tags.join(", ") : "no tags";
|
|
301165
|
+
}
|
|
301166
|
+
function collectPatternTagTokens(tags) {
|
|
301167
|
+
return (tags ?? []).flatMap((tag) => tag.split(",")).map((tag) => tag.trim()).filter((tag) => tag.length > 0);
|
|
301168
|
+
}
|
|
301169
|
+
function valuesMatch(left, right) {
|
|
301170
|
+
return left.length === right.length && left.every((value2, index) => value2 === right[index]);
|
|
301171
|
+
}
|
|
301172
|
+
function createNormalizationNote(options) {
|
|
301173
|
+
const rawValue = options.rawValue;
|
|
301174
|
+
if (rawValue === undefined || rawValue.trim().length === 0 || !options.resolvedValue || rawValue === options.resolvedValue) {
|
|
301175
|
+
return;
|
|
301176
|
+
}
|
|
301177
|
+
return `${options.fieldLabel} normalized from ${quoteValue(rawValue)} to ${quoteValue(options.resolvedValue)}.`;
|
|
301178
|
+
}
|
|
301179
|
+
function collectPatternCatalogNormalizationNotes(result, options) {
|
|
301180
|
+
const notes = [
|
|
301181
|
+
createNormalizationNote({
|
|
301182
|
+
fieldLabel: "Scope",
|
|
301183
|
+
rawValue: options.rawScope,
|
|
301184
|
+
resolvedValue: result.patternScope
|
|
301185
|
+
}),
|
|
301186
|
+
createNormalizationNote({
|
|
301187
|
+
fieldLabel: "Section role",
|
|
301188
|
+
rawValue: options.rawSectionRole,
|
|
301189
|
+
resolvedValue: result.sectionRole
|
|
301190
|
+
}),
|
|
301191
|
+
createNormalizationNote({
|
|
301192
|
+
fieldLabel: "Title",
|
|
301193
|
+
rawValue: options.rawCatalogTitle,
|
|
301194
|
+
resolvedValue: result.title
|
|
301195
|
+
}),
|
|
301196
|
+
createNormalizationNote({
|
|
301197
|
+
fieldLabel: "Thumbnail URL",
|
|
301198
|
+
rawValue: options.rawThumbnailUrl,
|
|
301199
|
+
resolvedValue: result.thumbnailUrl
|
|
301200
|
+
})
|
|
301201
|
+
].filter((note) => typeof note === "string");
|
|
301202
|
+
const rawTags = collectPatternTagTokens(options.rawTags);
|
|
301203
|
+
if (rawTags.length > 0 && !valuesMatch(rawTags, result.tags)) {
|
|
301204
|
+
notes.push(`Tags normalized from ${quoteValue(formatTags(rawTags))} to ${quoteValue(formatTags(result.tags))}.`);
|
|
301205
|
+
}
|
|
301206
|
+
return notes;
|
|
301207
|
+
}
|
|
301208
|
+
function buildPatternCatalogDryRunSummaryLines(result, options) {
|
|
301209
|
+
const catalogLines = [
|
|
301210
|
+
"",
|
|
301211
|
+
"Catalog metadata:",
|
|
301212
|
+
` Scope: ${result.patternScope}`,
|
|
301213
|
+
...result.sectionRole ? [` Section role: ${result.sectionRole}`] : [],
|
|
301214
|
+
` Title: ${result.title}`,
|
|
301215
|
+
...result.tags.length > 0 ? [` Tags: ${formatTags(result.tags)}`] : [],
|
|
301216
|
+
...result.thumbnailUrl ? [` Thumbnail URL: ${result.thumbnailUrl}`] : []
|
|
301217
|
+
];
|
|
301218
|
+
const normalizationNotes = collectPatternCatalogNormalizationNotes(result, options);
|
|
301219
|
+
if (normalizationNotes.length === 0) {
|
|
301220
|
+
return catalogLines;
|
|
301221
|
+
}
|
|
301222
|
+
return [
|
|
301223
|
+
...catalogLines,
|
|
301224
|
+
"",
|
|
301225
|
+
"Normalization notes:",
|
|
301226
|
+
...normalizationNotes.map((note) => ` ${note}`)
|
|
301227
|
+
];
|
|
301228
|
+
}
|
|
301149
301229
|
|
|
301150
301230
|
// src/add-kinds/post-meta.ts
|
|
301151
301231
|
var POST_META_MISSING_NAME_MESSAGE = "`wp-typia add post-meta` requires <name>. Usage: wp-typia add post-meta <name> --post-type <post-type> [--type <ExportedTypeName>] [--meta-key <meta-key>].";
|
|
@@ -301894,7 +301974,7 @@ function buildStructuredInitSuccessPayload(plan) {
|
|
|
301894
301974
|
// package.json
|
|
301895
301975
|
var package_default2 = {
|
|
301896
301976
|
name: "wp-typia",
|
|
301897
|
-
version: "0.24.
|
|
301977
|
+
version: "0.24.4",
|
|
301898
301978
|
description: "Canonical CLI package for wp-typia scaffolding and project workflows",
|
|
301899
301979
|
packageManager: "bun@1.3.11",
|
|
301900
301980
|
type: "module",
|
|
@@ -301964,7 +302044,7 @@ var package_default2 = {
|
|
|
301964
302044
|
"@bunli/tui": "0.6.0",
|
|
301965
302045
|
"@bunli/utils": "0.6.0",
|
|
301966
302046
|
"@wp-typia/api-client": "^0.4.5",
|
|
301967
|
-
"@wp-typia/project-tools": "0.24.
|
|
302047
|
+
"@wp-typia/project-tools": "0.24.4",
|
|
301968
302048
|
"better-result": "^2.7.0",
|
|
301969
302049
|
react: "^19.2.5",
|
|
301970
302050
|
"react-dom": "^19.2.5",
|
|
@@ -302075,12 +302155,16 @@ function buildAddCompletionPayload(options, markerOptions) {
|
|
|
302075
302155
|
}
|
|
302076
302156
|
function buildAddDryRunPayload(options, markerOptions) {
|
|
302077
302157
|
const normalizedTitle = stripLeadingOutputMarker(options.completion.title, "success").replace(/^Added\s*/u, "");
|
|
302158
|
+
const summaryLines = [
|
|
302159
|
+
...options.completion.summaryLines ?? [],
|
|
302160
|
+
...options.summaryLines ?? []
|
|
302161
|
+
];
|
|
302078
302162
|
return {
|
|
302079
302163
|
optionalLines: options.fileOperations,
|
|
302080
302164
|
optionalNote: "No workspace files were changed because --dry-run was enabled. Re-run without --dry-run to apply this add command.",
|
|
302081
302165
|
optionalTitle: `Planned workspace updates (${options.fileOperations.length}):`,
|
|
302082
302166
|
preambleLines: options.completion.preambleLines,
|
|
302083
|
-
summaryLines:
|
|
302167
|
+
summaryLines: summaryLines.length > 0 ? summaryLines : undefined,
|
|
302084
302168
|
title: formatOutputMarker("dryRun", `Dry run for ${normalizedTitle || "workspace add command"}`, markerOptions),
|
|
302085
302169
|
warningLines: options.completion.warningLines
|
|
302086
302170
|
};
|
|
@@ -302218,7 +302302,8 @@ async function executeWorkspaceAddWithOptionalDryRun(options) {
|
|
|
302218
302302
|
}
|
|
302219
302303
|
return emitCompletion(buildAddDryRunPayload({
|
|
302220
302304
|
completion,
|
|
302221
|
-
fileOperations: simulated.fileOperations
|
|
302305
|
+
fileOperations: simulated.fileOperations,
|
|
302306
|
+
summaryLines: options.buildDryRunSummaryLines?.(result)
|
|
302222
302307
|
}), {
|
|
302223
302308
|
emitOutput: options.emitOutput ?? true,
|
|
302224
302309
|
printLine: options.printLine,
|
|
@@ -302233,6 +302318,7 @@ function executePreparedAddKind(kind, context, plan) {
|
|
|
302233
302318
|
values: plan.getValues(result),
|
|
302234
302319
|
warnings: plan.getWarnings?.(result)
|
|
302235
302320
|
}),
|
|
302321
|
+
buildDryRunSummaryLines: (result) => plan.getDryRunSummaryLines?.(result),
|
|
302236
302322
|
cwd: context.cwd,
|
|
302237
302323
|
dryRun: context.dryRun,
|
|
302238
302324
|
emitOutput: context.emitOutput,
|
|
@@ -302441,12 +302527,12 @@ async function executeDoctorCommand(cwd, options = {}) {
|
|
|
302441
302527
|
}
|
|
302442
302528
|
}
|
|
302443
302529
|
// src/runtime-bridge-init.ts
|
|
302444
|
-
import
|
|
302530
|
+
import path113 from "path";
|
|
302445
302531
|
var loadCliInitRuntime = () => Promise.resolve().then(() => (init_cli_init(), exports_cli_init));
|
|
302446
302532
|
async function executeInitCommand({ apply, cwd, packageManager, projectDir }, options = {}) {
|
|
302447
302533
|
try {
|
|
302448
302534
|
const { runInitCommand: runInitCommand2 } = await loadCliInitRuntime();
|
|
302449
|
-
const resolvedProjectDir = projectDir ?
|
|
302535
|
+
const resolvedProjectDir = projectDir ? path113.resolve(cwd, projectDir) : cwd;
|
|
302450
302536
|
const plan = await runInitCommand2({
|
|
302451
302537
|
apply,
|
|
302452
302538
|
packageManager,
|
|
@@ -302564,7 +302650,7 @@ init_cli_diagnostics();
|
|
|
302564
302650
|
init_package_managers();
|
|
302565
302651
|
import { spawnSync as spawnSync3 } from "child_process";
|
|
302566
302652
|
import fs47 from "fs";
|
|
302567
|
-
import
|
|
302653
|
+
import path114 from "path";
|
|
302568
302654
|
var SYNC_INSTALL_MARKERS = [
|
|
302569
302655
|
"node_modules",
|
|
302570
302656
|
".pnp.cjs",
|
|
@@ -302594,7 +302680,7 @@ function readSyncPackageJson(packageJsonPath) {
|
|
|
302594
302680
|
}
|
|
302595
302681
|
}
|
|
302596
302682
|
function resolveSyncProjectContext(cwd) {
|
|
302597
|
-
const packageJsonPath =
|
|
302683
|
+
const packageJsonPath = path114.join(cwd, "package.json");
|
|
302598
302684
|
if (!fs47.existsSync(packageJsonPath)) {
|
|
302599
302685
|
throw getSyncRootError(cwd);
|
|
302600
302686
|
}
|
|
@@ -302629,12 +302715,12 @@ function resolveSyncProjectContext(cwd) {
|
|
|
302629
302715
|
};
|
|
302630
302716
|
}
|
|
302631
302717
|
function findInstalledDependencyMarkerDir(projectDir) {
|
|
302632
|
-
let currentDir =
|
|
302718
|
+
let currentDir = path114.resolve(projectDir);
|
|
302633
302719
|
while (true) {
|
|
302634
|
-
if (SYNC_INSTALL_MARKERS.some((marker) => fs47.existsSync(
|
|
302720
|
+
if (SYNC_INSTALL_MARKERS.some((marker) => fs47.existsSync(path114.join(currentDir, marker)))) {
|
|
302635
302721
|
return currentDir;
|
|
302636
302722
|
}
|
|
302637
|
-
const parentDir =
|
|
302723
|
+
const parentDir = path114.dirname(currentDir);
|
|
302638
302724
|
if (parentDir === currentDir) {
|
|
302639
302725
|
return null;
|
|
302640
302726
|
}
|
|
@@ -303443,7 +303529,7 @@ init_cli_diagnostics();
|
|
|
303443
303529
|
|
|
303444
303530
|
// src/mcp.ts
|
|
303445
303531
|
import fs48 from "fs/promises";
|
|
303446
|
-
import
|
|
303532
|
+
import path115 from "path";
|
|
303447
303533
|
|
|
303448
303534
|
// ../../node_modules/.bun/@bunli+plugin-mcp@0.2.5+ef72ce197b058209/node_modules/@bunli/plugin-mcp/src/errors.ts
|
|
303449
303535
|
class SchemaConversionError extends TaggedError("SchemaConversionError")() {
|
|
@@ -303978,7 +304064,7 @@ function getErrorCauseOptions(error48) {
|
|
|
303978
304064
|
return error48 instanceof Error ? { cause: error48 } : undefined;
|
|
303979
304065
|
}
|
|
303980
304066
|
async function readSchemaSource(cwd, source) {
|
|
303981
|
-
const schemaPath =
|
|
304067
|
+
const schemaPath = path115.resolve(cwd, source.path);
|
|
303982
304068
|
const raw = await fs48.readFile(schemaPath, "utf8");
|
|
303983
304069
|
let parsed;
|
|
303984
304070
|
try {
|
|
@@ -304000,7 +304086,7 @@ async function readSchemaSource(cwd, source) {
|
|
|
304000
304086
|
async function loadMcpToolGroups(cwd, schemaSources) {
|
|
304001
304087
|
return Promise.all(schemaSources.map((source) => readSchemaSource(cwd, source)));
|
|
304002
304088
|
}
|
|
304003
|
-
async function syncMcpSchemas(cwd, schemaSources, outputDir =
|
|
304089
|
+
async function syncMcpSchemas(cwd, schemaSources, outputDir = path115.join(cwd, ".bunli", "mcp")) {
|
|
304004
304090
|
const groups = await loadMcpToolGroups(cwd, schemaSources);
|
|
304005
304091
|
const result = await generateMCPTypes({
|
|
304006
304092
|
outputDir,
|
|
@@ -304023,7 +304109,7 @@ async function syncMcpSchemas(cwd, schemaSources, outputDir = path111.join(cwd,
|
|
|
304023
304109
|
}
|
|
304024
304110
|
}
|
|
304025
304111
|
await fs48.mkdir(outputDir, { recursive: true });
|
|
304026
|
-
await fs48.writeFile(
|
|
304112
|
+
await fs48.writeFile(path115.join(outputDir, "registry.json"), `${JSON.stringify(registry2, null, 2)}
|
|
304027
304113
|
`, "utf8");
|
|
304028
304114
|
return {
|
|
304029
304115
|
commandCount: registry2.reduce((count, group) => count + group.tools.length, 0),
|
|
@@ -304352,4 +304438,4 @@ export {
|
|
|
304352
304438
|
cli
|
|
304353
304439
|
};
|
|
304354
304440
|
|
|
304355
|
-
//# debugId=
|
|
304441
|
+
//# debugId=C8CAA6A09EF0F81764756E2164756E21
|