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.
@@ -21,19 +21,19 @@ import {
21
21
  resolvePackageManagerId,
22
22
  resolveTemplateId,
23
23
  scaffoldProject
24
- } from "./cli-4eqznv15.js";
24
+ } from "./cli-kfm9mm68.js";
25
25
  import"./cli-9fx0qgb7.js";
26
- import"./cli-vxd8eyax.js";
27
- import"./cli-wfvf3tv1.js";
26
+ import"./cli-377p86mf.js";
27
+ import"./cli-84c7wff4.js";
28
28
  import {
29
29
  OFFICIAL_WORKSPACE_TEMPLATE_PACKAGE,
30
30
  isBuiltInTemplateId
31
31
  } from "./cli-8hxf9qw6.js";
32
- import"./cli-6ys6d16y.js";
32
+ import"./cli-tj7ajdvf.js";
33
33
  import"./cli-e4bwd81c.js";
34
34
  import {
35
35
  pathExists
36
- } from "./cli-kbqztfkt.js";
36
+ } from "./cli-fv4h3ydt.js";
37
37
  import"./cli-cvxvcw7c.js";
38
38
  import {
39
39
  createManagedTempRoot
@@ -52,6 +52,12 @@ import"./cli-rdcga1bd.js";
52
52
  import"./cli-xnn9xjcy.js";
53
53
 
54
54
  // ../wp-typia-project-tools/src/runtime/cli-scaffold.ts
55
+ import path5 from "path";
56
+
57
+ // ../wp-typia-project-tools/src/runtime/cli-scaffold-emission.ts
58
+ import path2 from "path";
59
+
60
+ // ../wp-typia-project-tools/src/runtime/cli-scaffold-files.ts
55
61
  import { promises as fsp } from "fs";
56
62
  import path from "path";
57
63
  async function listRelativeProjectFiles(rootDir) {
@@ -79,58 +85,37 @@ async function assertDryRunTargetDirectoryReady(projectDir, allowExistingDir) {
79
85
  throw new Error(formatNonEmptyTargetDirectoryError(projectDir));
80
86
  }
81
87
  }
82
- async function buildScaffoldDryRunPlan({
83
- allowExistingDir,
84
- alternateRenderTargets,
85
- answers,
86
- cwd,
87
- dataStorageMode,
88
- externalLayerId,
89
- externalLayerSource,
90
- externalLayerSourceLabel,
91
- installDependencies,
92
- noInstall,
93
- onProgress,
94
- packageManager,
95
- persistencePolicy,
96
- profile,
97
- projectDir,
98
- templateId,
99
- variant,
100
- withMigrationUi,
101
- withTestPreset,
102
- withWpEnv
103
- }) {
104
- await assertDryRunTargetDirectoryReady(projectDir, allowExistingDir);
88
+ async function readGeneratedPackageScripts(projectDir) {
89
+ try {
90
+ const parsedPackageJson = await readJsonFile(path.join(projectDir, "package.json"), {
91
+ context: "generated package manifest"
92
+ });
93
+ const scripts = parsedPackageJson.scripts && typeof parsedPackageJson.scripts === "object" && !Array.isArray(parsedPackageJson.scripts) ? parsedPackageJson.scripts : {};
94
+ return Object.entries(scripts).filter(([, value]) => typeof value === "string").map(([scriptName]) => scriptName);
95
+ } catch {
96
+ return;
97
+ }
98
+ }
99
+
100
+ // ../wp-typia-project-tools/src/runtime/cli-scaffold-emission.ts
101
+ async function emitScaffoldProject(options) {
102
+ return scaffoldProject(options);
103
+ }
104
+ async function buildScaffoldDryRunPlan(options) {
105
+ await assertDryRunTargetDirectoryReady(options.projectDir, options.allowExistingDir);
105
106
  const { path: tempRoot, cleanup } = await createManagedTempRoot("wp-typia-scaffold-plan-");
106
- const previewProjectDir = path.join(tempRoot, "preview-project");
107
+ const previewProjectDir = path2.join(tempRoot, "preview-project");
107
108
  try {
108
- const result = await scaffoldProject({
109
+ const result = await emitScaffoldProject({
110
+ ...options,
109
111
  allowExistingDir: false,
110
- alternateRenderTargets,
111
- answers,
112
- cwd,
113
- dataStorageMode,
114
- externalLayerId,
115
- externalLayerSource,
116
- externalLayerSourceLabel,
117
- installDependencies,
118
112
  noInstall: true,
119
- onProgress,
120
- packageManager,
121
- persistencePolicy,
122
- profile,
123
- projectDir: previewProjectDir,
124
- templateId,
125
- variant,
126
- withMigrationUi,
127
- withTestPreset,
128
- withWpEnv
113
+ projectDir: previewProjectDir
129
114
  });
130
115
  const files = await listRelativeProjectFiles(previewProjectDir);
131
116
  return {
132
117
  plan: {
133
- dependencyInstall: noInstall ? "skipped-by-flag" : "would-install",
118
+ dependencyInstall: options.noInstall ? "skipped-by-flag" : "would-install",
134
119
  files
135
120
  },
136
121
  result
@@ -139,19 +124,67 @@ async function buildScaffoldDryRunPlan({
139
124
  await cleanup();
140
125
  }
141
126
  }
127
+
128
+ // ../wp-typia-project-tools/src/runtime/cli-scaffold-output.ts
129
+ import path3 from "path";
130
+ function quoteShellValue(value) {
131
+ if (!value.startsWith("-") && /^[A-Za-z0-9._/@:-]+(?:\/[A-Za-z0-9._@:-]+)*$/.test(value)) {
132
+ return value;
133
+ }
134
+ return `'${value.replace(/'/g, `'"'"'`)}'`;
135
+ }
136
+ function getNextSteps({
137
+ projectInput,
138
+ projectDir,
139
+ packageManager,
140
+ noInstall,
141
+ templateId
142
+ }) {
143
+ const cdTarget = path3.isAbsolute(projectInput) ? projectDir : projectInput;
144
+ const steps = [`cd ${quoteShellValue(cdTarget)}`];
145
+ if (noInstall) {
146
+ steps.push(formatInstallCommand(packageManager));
147
+ }
148
+ steps.push(formatRunScript(packageManager, getPrimaryDevelopmentScript(templateId)));
149
+ return steps;
150
+ }
151
+ function getOptionalOnboarding({
152
+ availableScripts,
153
+ packageManager,
154
+ templateId,
155
+ compoundPersistenceEnabled = false
156
+ }) {
157
+ return {
158
+ note: getOptionalOnboardingNote(packageManager, templateId, {
159
+ availableScripts,
160
+ compoundPersistenceEnabled
161
+ }),
162
+ shortNote: getOptionalOnboardingShortNote(packageManager, templateId, {
163
+ availableScripts,
164
+ compoundPersistenceEnabled
165
+ }),
166
+ steps: getOptionalOnboardingSteps(packageManager, templateId, {
167
+ availableScripts,
168
+ compoundPersistenceEnabled
169
+ })
170
+ };
171
+ }
172
+
173
+ // ../wp-typia-project-tools/src/runtime/cli-scaffold-validation.ts
174
+ import path4 from "path";
142
175
  function validateCreateProjectInput(projectInput) {
143
176
  const normalizedProjectInput = projectInput.trim();
144
177
  if (normalizedProjectInput.length === 0) {
145
178
  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).");
146
179
  }
147
- const normalizedProjectPath = path.normalize(normalizedProjectInput).replace(/[\\/]+$/u, "") || path.normalize(normalizedProjectInput);
180
+ const normalizedProjectPath = path4.normalize(normalizedProjectInput).replace(/[\\/]+$/u, "") || path4.normalize(normalizedProjectInput);
148
181
  if (normalizedProjectPath === "." || normalizedProjectPath === "..") {
149
182
  throw new Error("`wp-typia create` requires a new project directory. Use an explicit child directory instead of `.` or `..`.");
150
183
  }
151
184
  }
152
185
  function collectProjectDirectoryWarnings(projectDir) {
153
186
  const warnings = [];
154
- const projectName = path.basename(projectDir);
187
+ const projectName = path4.basename(projectDir);
155
188
  if (/\s/u.test(projectName)) {
156
189
  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.`);
157
190
  }
@@ -260,7 +293,7 @@ async function resolveOptionalSelection({
260
293
  if (!shouldResolve) {
261
294
  return;
262
295
  }
263
- if (explicitValue) {
296
+ if (explicitValue !== undefined) {
264
297
  return parseSelectableValue(label, explicitValue, isValue, allowedValues);
265
298
  }
266
299
  if (yes) {
@@ -293,48 +326,8 @@ async function resolveOptionalBooleanFlag({
293
326
  }
294
327
  return defaultValue;
295
328
  }
296
- function quoteShellValue(value) {
297
- if (!value.startsWith("-") && /^[A-Za-z0-9._/@:-]+(?:\/[A-Za-z0-9._@:-]+)*$/.test(value)) {
298
- return value;
299
- }
300
- return `'${value.replace(/'/g, `'"'"'`)}'`;
301
- }
302
- function getNextSteps({
303
- projectInput,
304
- projectDir,
305
- packageManager,
306
- noInstall,
307
- templateId
308
- }) {
309
- const cdTarget = path.isAbsolute(projectInput) ? projectDir : projectInput;
310
- const steps = [`cd ${quoteShellValue(cdTarget)}`];
311
- if (noInstall) {
312
- steps.push(formatInstallCommand(packageManager));
313
- }
314
- steps.push(formatRunScript(packageManager, getPrimaryDevelopmentScript(templateId)));
315
- return steps;
316
- }
317
- function getOptionalOnboarding({
318
- availableScripts,
319
- packageManager,
320
- templateId,
321
- compoundPersistenceEnabled = false
322
- }) {
323
- return {
324
- note: getOptionalOnboardingNote(packageManager, templateId, {
325
- availableScripts,
326
- compoundPersistenceEnabled
327
- }),
328
- shortNote: getOptionalOnboardingShortNote(packageManager, templateId, {
329
- availableScripts,
330
- compoundPersistenceEnabled
331
- }),
332
- steps: getOptionalOnboardingSteps(packageManager, templateId, {
333
- availableScripts,
334
- compoundPersistenceEnabled
335
- })
336
- };
337
- }
329
+
330
+ // ../wp-typia-project-tools/src/runtime/cli-scaffold.ts
338
331
  async function runScaffoldFlow({
339
332
  projectInput,
340
333
  cwd = process.cwd(),
@@ -456,8 +449,8 @@ async function runScaffoldFlow({
456
449
  select: selectWithMigrationUi,
457
450
  yes
458
451
  });
459
- const projectDir = path.resolve(cwd, projectInput);
460
- const projectName = path.basename(projectDir);
452
+ const projectDir = path5.resolve(cwd, projectInput);
453
+ const projectName = path5.basename(projectDir);
461
454
  const answers = await collectScaffoldAnswers({
462
455
  dataStorageMode: resolvedDataStorage,
463
456
  namespace,
@@ -473,7 +466,7 @@ async function runScaffoldFlow({
473
466
  if (resolvedTemplateId === "compound" && resolvedInnerBlocksPreset) {
474
467
  answers.compoundInnerBlocksPreset = resolvedInnerBlocksPreset;
475
468
  }
476
- const resolvedResult = dryRun ? await buildScaffoldDryRunPlan({
469
+ const emissionOptions = {
477
470
  allowExistingDir,
478
471
  alternateRenderTargets,
479
472
  answers,
@@ -494,43 +487,12 @@ async function runScaffoldFlow({
494
487
  withMigrationUi: resolvedWithMigrationUi,
495
488
  withTestPreset: resolvedWithTestPreset,
496
489
  withWpEnv: resolvedWithWpEnv
497
- }) : {
490
+ };
491
+ const resolvedResult = dryRun ? await buildScaffoldDryRunPlan(emissionOptions) : {
498
492
  plan: undefined,
499
- result: await scaffoldProject({
500
- alternateRenderTargets,
501
- answers,
502
- allowExistingDir,
503
- cwd,
504
- dataStorageMode: resolvedDataStorage,
505
- externalLayerId: resolvedExternalLayerSelection.externalLayerId,
506
- externalLayerSource: resolvedExternalLayerSelection.externalLayerSource,
507
- externalLayerSourceLabel: normalizedExternalLayerSource,
508
- installDependencies,
509
- noInstall,
510
- onProgress,
511
- packageManager: resolvedPackageManager,
512
- persistencePolicy: resolvedPersistencePolicy,
513
- profile: resolvedProfile,
514
- projectDir,
515
- templateId: resolvedTemplateId,
516
- variant,
517
- withMigrationUi: resolvedWithMigrationUi,
518
- withTestPreset: resolvedWithTestPreset,
519
- withWpEnv: resolvedWithWpEnv
520
- })
493
+ result: await emitScaffoldProject(emissionOptions)
521
494
  };
522
- let availableScripts;
523
- if (!dryRun) {
524
- try {
525
- const parsedPackageJson = await readJsonFile(path.join(projectDir, "package.json"), {
526
- context: "generated package manifest"
527
- });
528
- const scripts = parsedPackageJson.scripts && typeof parsedPackageJson.scripts === "object" && !Array.isArray(parsedPackageJson.scripts) ? parsedPackageJson.scripts : {};
529
- availableScripts = Object.entries(scripts).filter(([, value]) => typeof value === "string").map(([scriptName]) => scriptName);
530
- } catch {
531
- availableScripts = undefined;
532
- }
533
- }
495
+ const availableScripts = dryRun ? undefined : await readGeneratedPackageScripts(projectDir);
534
496
  return {
535
497
  dryRun,
536
498
  optionalOnboarding: getOptionalOnboarding({
@@ -573,4 +535,4 @@ export {
573
535
  getNextSteps
574
536
  };
575
537
 
576
- //# debugId=A4E8245E23045A1864756E2164756E21
538
+ //# debugId=3CB466F01953BF7F64756E2164756E21
@@ -47,7 +47,7 @@ import {
47
47
  } from "./cli-e4bwd81c.js";
48
48
  import {
49
49
  readWorkspaceInventory
50
- } from "./cli-kbqztfkt.js";
50
+ } from "./cli-fv4h3ydt.js";
51
51
  import {
52
52
  getInvalidWorkspaceProjectReason,
53
53
  tryResolveWorkspaceProject
package/dist-bunli/cli.js CHANGED
@@ -22,7 +22,7 @@ import {
22
22
  package_default,
23
23
  validateCliOutputFormatArgv,
24
24
  writeStructuredCliDiagnosticError
25
- } from "./cli-6mr6vja7.js";
25
+ } from "./cli-4pzxbk4s.js";
26
26
  import"./cli-03j0axbt.js";
27
27
  import {
28
28
  GLOBAL_FLAGS,
@@ -2460,7 +2460,7 @@ async function formatCliError(error) {
2460
2460
  }
2461
2461
  async function createWpTypiaCli(options = {}) {
2462
2462
  applyStandaloneSupportLayoutEnv();
2463
- const { wpTypiaCommands } = await import("./command-list-rqt03qqy.js");
2463
+ const { wpTypiaCommands } = await import("./command-list-bgwaa2f4.js");
2464
2464
  const cli = await createCLI({
2465
2465
  ...bunliConfig,
2466
2466
  description: package_default.description,
@@ -19,7 +19,7 @@ import {
19
19
  package_default,
20
20
  prefersStructuredCliOutput,
21
21
  resolveCommandOptionValues
22
- } from "./cli-6mr6vja7.js";
22
+ } from "./cli-4pzxbk4s.js";
23
23
  import {
24
24
  Result,
25
25
  TaggedError,
@@ -120,7 +120,9 @@ var PATTERN_CATALOG_VISIBLE_FIELDS = [
120
120
  "name",
121
121
  "scope",
122
122
  "section-role",
123
- "catalog-title"
123
+ "catalog-title",
124
+ "tags",
125
+ "thumbnail-url"
124
126
  ];
125
127
  var NAME_SOURCE_VISIBLE_FIELDS = [
126
128
  "kind",
@@ -820,7 +822,7 @@ var patternAddKindEntry = defineAddKindRegistryEntry({
820
822
  title: "Added workspace pattern"
821
823
  },
822
824
  description: "Add a PHP block pattern shell",
823
- hiddenStringSubmitFields: ["tag", "tags", "thumbnail-url"],
825
+ hiddenStringSubmitFields: ["tag"],
824
826
  nameLabel: "Pattern name",
825
827
  async prepareExecution(context) {
826
828
  const name = requireAddKindName(context, PATTERN_MISSING_NAME_MESSAGE);
@@ -1856,7 +1858,7 @@ function pushFlag(argv, name, value) {
1856
1858
  }
1857
1859
 
1858
1860
  // src/runtime-bridge-add.ts
1859
- var loadCliAddRuntime = () => import("./cli-add-r4c15g7g.js");
1861
+ var loadCliAddRuntime = () => import("./cli-add-mxxk5rep.js");
1860
1862
  var loadCliPromptRuntime = () => import("./cli-prompt-ncyg68rn.js");
1861
1863
  async function executeWorkspaceAddWithOptionalDryRun(options) {
1862
1864
  const simulated = options.dryRun ? await simulateWorkspaceAddDryRun({
@@ -1966,7 +1968,7 @@ async function executeAddCommand({
1966
1968
  }
1967
1969
  // src/runtime-bridge-create.ts
1968
1970
  var loadCliPromptRuntime2 = () => import("./cli-prompt-ncyg68rn.js");
1969
- var loadCliScaffoldRuntime = () => import("./cli-scaffold-b49zc1rw.js");
1971
+ var loadCliScaffoldRuntime = () => import("./cli-scaffold-0bb6pr3w.js");
1970
1972
  var loadCliTemplatesRuntime = () => import("./cli-templates-g8t4fm11.js");
1971
1973
  var loadCreateTemplateValidationRuntime = () => import("./create-template-validation-4fr851vg.js");
1972
1974
  var PACKAGE_MANAGER_PROMPT_OPTIONS = [
@@ -2087,7 +2089,7 @@ async function executeCreateCommand({
2087
2089
  }
2088
2090
  }
2089
2091
  // src/runtime-bridge-doctor.ts
2090
- var loadCliDoctorRuntime = () => import("./cli-doctor-fd6mfx0f.js");
2092
+ var loadCliDoctorRuntime = () => import("./cli-doctor-6fyxq940.js");
2091
2093
  async function executeDoctorCommand(cwd, options = {}) {
2092
2094
  try {
2093
2095
  const { runDoctor } = await loadCliDoctorRuntime();
@@ -2098,7 +2100,7 @@ async function executeDoctorCommand(cwd, options = {}) {
2098
2100
  }
2099
2101
  // src/runtime-bridge-init.ts
2100
2102
  import path2 from "path";
2101
- var loadCliInitRuntime = () => import("./cli-init-kmredfj7.js");
2103
+ var loadCliInitRuntime = () => import("./cli-init-7avk42dh.js");
2102
2104
  async function executeInitCommand({ apply, cwd, packageManager, projectDir }, options = {}) {
2103
2105
  try {
2104
2106
  const { runInitCommand } = await loadCliInitRuntime();
@@ -2124,7 +2126,7 @@ async function executeInitCommand({ apply, cwd, packageManager, projectDir }, op
2124
2126
  }
2125
2127
  }
2126
2128
  // src/runtime-bridge-migrate.ts
2127
- var loadMigrationsRuntime = () => import("./migrations-zhd03hvy.js");
2129
+ var loadMigrationsRuntime = () => import("./migrations-3vngdy51.js");
2128
2130
  var defaultPrintLine2 = (line) => {
2129
2131
  process.stdout.write(`${line}
2130
2132
  `);
@@ -3020,7 +3022,7 @@ var doctorCommand = defineCommand({
3020
3022
  createDoctorRunSummary,
3021
3023
  getDoctorChecks,
3022
3024
  getDoctorExitFailureDetailLines
3023
- } = await import("./cli-doctor-fd6mfx0f.js");
3025
+ } = await import("./cli-doctor-6fyxq940.js");
3024
3026
  const checks = await getDoctorChecks(args.cwd);
3025
3027
  const summary = createDoctorRunSummary(checks, {
3026
3028
  exitPolicy: doctorExitPolicy
@@ -3915,4 +3917,4 @@ export {
3915
3917
  wpTypiaCommands
3916
3918
  };
3917
3919
 
3918
- //# debugId=30271EF71AB322F564756E2164756E21
3920
+ //# debugId=F41601669F8057C564756E2164756E21
@@ -15,9 +15,9 @@ import {
15
15
  snapshotProjectVersion,
16
16
  verifyProjectMigrations,
17
17
  wizardProjectMigrations
18
- } from "./cli-6ys6d16y.js";
18
+ } from "./cli-tj7ajdvf.js";
19
19
  import"./cli-e4bwd81c.js";
20
- import"./cli-kbqztfkt.js";
20
+ import"./cli-fv4h3ydt.js";
21
21
  import"./cli-cvxvcw7c.js";
22
22
  import"./cli-bajwv85z.js";
23
23
  import"./cli-tq730sqt.js";
@@ -989,7 +989,9 @@ var PATTERN_CATALOG_VISIBLE_FIELDS = [
989
989
  "name",
990
990
  "scope",
991
991
  "section-role",
992
- "catalog-title"
992
+ "catalog-title",
993
+ "tags",
994
+ "thumbnail-url"
993
995
  ];
994
996
  var NAME_SOURCE_VISIBLE_FIELDS = [
995
997
  "kind",
@@ -1701,7 +1703,7 @@ var patternAddKindEntry = defineAddKindRegistryEntry({
1701
1703
  title: "Added workspace pattern"
1702
1704
  },
1703
1705
  description: "Add a PHP block pattern shell",
1704
- hiddenStringSubmitFields: ["tag", "tags", "thumbnail-url"],
1706
+ hiddenStringSubmitFields: ["tag"],
1705
1707
  nameLabel: "Pattern name",
1706
1708
  async prepareExecution(context) {
1707
1709
  const name = requireAddKindName(context, PATTERN_MISSING_NAME_MESSAGE);
@@ -2537,7 +2539,7 @@ function buildStructuredInitSuccessPayload(plan) {
2537
2539
  // package.json
2538
2540
  var package_default = {
2539
2541
  name: "wp-typia",
2540
- version: "0.24.2",
2542
+ version: "0.24.3",
2541
2543
  description: "Canonical CLI package for wp-typia scaffolding and project workflows",
2542
2544
  packageManager: "bun@1.3.11",
2543
2545
  type: "module",
@@ -2607,7 +2609,7 @@ var package_default = {
2607
2609
  "@bunli/tui": "0.6.0",
2608
2610
  "@bunli/utils": "0.6.0",
2609
2611
  "@wp-typia/api-client": "^0.4.5",
2610
- "@wp-typia/project-tools": "0.24.2",
2612
+ "@wp-typia/project-tools": "0.24.3",
2611
2613
  "better-result": "^2.7.0",
2612
2614
  react: "^19.2.5",
2613
2615
  "react-dom": "^19.2.5",
@@ -4360,4 +4362,4 @@ export {
4360
4362
  hasFlagBeforeTerminator
4361
4363
  };
4362
4364
 
4363
- //# debugId=925E6E8A01768B3B64756E2164756E21
4365
+ //# debugId=5AEE5FBC0C6CEA8264756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wp-typia",
3
- "version": "0.24.2",
3
+ "version": "0.24.3",
4
4
  "description": "Canonical CLI package for wp-typia scaffolding and project workflows",
5
5
  "packageManager": "bun@1.3.11",
6
6
  "type": "module",
@@ -70,7 +70,7 @@
70
70
  "@bunli/tui": "0.6.0",
71
71
  "@bunli/utils": "0.6.0",
72
72
  "@wp-typia/api-client": "^0.4.5",
73
- "@wp-typia/project-tools": "0.24.2",
73
+ "@wp-typia/project-tools": "0.24.3",
74
74
  "better-result": "^2.7.0",
75
75
  "react": "^19.2.5",
76
76
  "react-dom": "^19.2.5",